xcode – Mac OS X代码签名和可执行验证

前端之家收集整理的这篇文章主要介绍了xcode – Mac OS X代码签名和可执行验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在垂直市场的Mac应用程序上工作,该应用程序使用USB加密狗来确保用户付费.它足够昂贵,并且在足够的需求下,“黑帽子”试图破解加密狗方案,因此应用程序在运行时检查可执行文件和关键资源文件,如果某些东西被篡改,程序将无法运行.

随着基于PKI(公钥基础设施)的代码签名在Mac世界中变得越来越普遍,我正在考虑转而使用它来进行运行时验证,这将产生使Gatekeeper高兴的良好副作用.

然而,Apple的兴趣与我的非常不同.他们的重点是让用户满意,因此如果应用程序的签名不正确,Mac OS X只会询问用户是否要运行它.我的重点是阻止破解者,所以如果我的应用程序签名不正确,我根本不希望它做任何对最终用户有用的事情.

所以我希望我的应用程序能够在运行时使用Apple的签名验证自己的可执行文件和资源.

另外,从我读过的Mac OS X提供的用于验证的库中,他们只是对验证可执行文件的请求给出“是”或“否”的答案.令我感到震惊的是,它很容易受到“黑帽”攻击的影响 – 例如,人们可以简单地将Apple的工具替换为总是说“是的,这是有效的”,无论是在系统目录中还是通过改变这些工具的搜索路径.所以我认为在我的应用程序中构建完整的签名验证代码可能是个好主意.

所以我有几个问题:

>有哪些PKI库/ API可以让应用程序验证自己的可执行文件和使用Apple的代码签名系统签名的资源?
>这些库是否有可用的源代码
>我的安全问题是关于使用Apple随Mac OS X提供的PKI库有效,还是比我想的更安全?
>有没有人有这种他们愿意分享的东西的经验?还有其他问题或提示吗?

在此先感谢您的帮助.

解决方法

为了回答上面的#1和#2,Apple已经开放了用于创建和验证数字签名的代码作为libsecurity_codesigning.因此,开发人员可以将其构建到他们的应用程序中,以使其验证自己的签名.

或者,MacOS的这个库版本可以被应用程序使用 – 但API是私有的,所以这是一个问题.有一个brief discussion at this link.

原文链接:https://www.f2er.com/iOS/333910.html

猜你在找的iOS相关文章