iOS 何时检查企业证书的有效性?

信息安全 tls IOS 证书吊销 验证 供应
2021-08-19 17:48:32

这是一篇应该提供更多上下文的文章(有关其他信息,请参阅我对它的评论,相同的用户名)。

iOS 开发人员能够使用企业配置文件在 App Store 之外分发应用程序。这允许甚至直接从 Safari 安装应用程序,而无需 App Store 的批准,使非开发人员能够测试 beta 版本,公司能够将内部应用程序分发给员工等。

但是,Apple 和企业帐户持有人都保留撤销支持配置文件的证书的能力,这将阻止更多用户安装应用程序(在上面链接的文章中,Apple 撤销了用于签署模拟器的企业配置文件因为他们认为它滥用了企业分发所授予的自由)......当然,不包括用于绕过该检查的“漏洞”:只需将您的系统日期更改为过去的任何日期。

这引发了很多关于如何实现证书验证的问题,但我最好奇的是当漏洞没有被利用时会发生什么。设备在什么时候实际联系 Apple 以确保证书没有被吊销?在安装应用程序的那一刻?如果是这种情况,它是“软”(除非明确检测到撤销允许安装)还是“硬”(除非证书被绝对证明仍然有效,否则禁止安装)?或者设备是否定期与 Apple 签入以获取更新的企业证书身份黑名单/白名单?还是有什么不同?

2个回答

来自iOS 7 部署技术参考文档(打开 PDF):

证书验证
用户第一次打开应用程序时,分发证书通过联系 Apple 的 OCSP 服务器进行验证。除非证书已被吊销,否则应用程序可以运行。无法联系或从 OCSP 服务器获得响应不会被解释为撤销。要验证状态,设备必须能够访问 ocsp.apple.com。请参阅本附录前面的“网络配置要求”。

OCSP 响应在 OCSP 服务器指定的时间段内缓存在设备上,目前为 3 到 7 天。在设备重新启动并且缓存的响应过期之前,不会再次检查证书的有效性。

如果此时收到撤销,应用程序将无法运行。

撤销分发证书会使您使用它签名的所有应用程序无效。您应该仅在万不得已的情况下吊销证书——如果您确定私钥丢失或证书被认为已泄露。

最新的答案可以在 Apple 的企业 iOS 部署参考中找到:

http://help.apple.com/deployment/ios/#/apda0e3426d7 请参阅:证书验证

用户第一次打开应用程序时,分发证书会通过联系 Apple 的 OCSP 服务器进行验证。如果证书已被吊销,应用程序将无法启动。要验证状态,设备必须能够访问 ocsp.apple.com。