ios - 签署应用程序时究竟如何使用 WWDR 中间证书?

标签 ios certificate code-signing codesign

问题:

对于 iOS 开发中使用的 WWDR 中间证书的用途,我有点困惑。完成以下步骤后:

  1. 生成公钥/私钥对;
  2. 根据生成的对生成证书签名请求 (CSR),并将其发送给 Apple;
  3. 收到由 Apple 签名的证书,验证我拥有与提交的公钥关联的私钥,

我似乎已经拥有签署应用程序所需的一切(使用我的私钥)并且已经向 Apple 证明我是私钥的所有者。因此,我得出以下相关问题:

  • 为什么需要 WWDR 中级证书?
  • WWDR 中级证书封装了哪些信息?
  • 在代码签名过程的哪个阶段使用 WWDR 中间证书封装的信息,以及如何使用?

上下文:

我是一名 Android 开发者,过去 3 个月一直在做 iOS 开发。到目前为止,我已经了解了:

  • 公钥密码学的基本原理;
  • PKC 如何允许实体签名;
  • 个人和 CA 之间需要信任链才能使签名有用。

我已阅读问题like this one表示需要 WWDR 中间证书来验证通过发送给 Apple 的 CSR 获取的所有其他证书是否有效。该验证是如何执行的?下载中间证书是验证另一个证书的签署者是否为 CA 的典型方法吗?

最佳答案

您在 CSR 中提供了一些详细信息,包括 Apple 的公钥。从技术上讲,这并不能向 Apple 证明您拥有私钥,但签名信息可用于验证您的公钥。只要你的私钥是保密的,那么用你的公钥解密的东西一定是用相应的私钥加密的。这意味着 iOS 设备可以信任您生成的配置文件和应用,因为您的身份可以得到验证并链接到他们信任的东西。

您的 CSR 由 WWDR 中间证书签名的原因是为了帮助 Apple 的根 key 对的安全性。根 key 对是一个非常重要和敏感​​的东西。访问它的权限将仅限于 Apple 的极少数人。将它放在连接互联网的计算机上以便它可以签署您的 CSR 将是非常危险的。

为避免根证书在线,使用中间 CA。根证书用于在离线过程中生成中间 CA。

然后,如果中间 CA 证书遭到破坏,则可以撤销并重新颁发该证书,而无需更新数百万设备中保存的根公钥或破坏 Apple 可能为不同目的颁发的许多其他证书

关于ios - 签署应用程序时究竟如何使用 WWDR 中间证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32685974/

相关文章:

xcode - 代码签名身份 <名称> 与任何有效、未过期的代码签名证书不匹配

iphone - 我怎样才能准确找到我的代码设计身份?

ios - native 从 UIImage 扫描条形码(即不使用 ZBar)

ios - 状态栏、导航栏边距

ios - 如何格式化 UITextfield 以在 iOS 中获取电话号码字符串

javascript - 在 Web 浏览器中,JavaScript 是否可以获取有关当前页面使用的 HTTPS 证书的信息?

ios - 自定义标注 View 内的按钮没有响应(Swift)

openssl - openssl 如何在没有根 CA 证书的情况下验证服务器证书链

ssl - 我可以只购买一个证书并使用它来签署/保护许多资源吗?

c - 您希望应用程序接受传入的网络连接吗?