OGeek|极客世界-中国程序员成长平台

标题: iOS 代码签名 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 18:16
标题: iOS 代码签名

我了解 RSA 加密背后的数学原理,但是,我无法将其与 Apple 的术语和身份验证过程相协调。我们有以下实体:

以及以下不同的运行模式:

所有这些如何协同工作以实现目标?我所说的“一起工作”,是指明确表示什么、何时、何地的标志。

我现在的刺是:

  1. 我生成了一个公钥/私钥
  2. 我向 Apple 发出证书请求:我向他们发送我的公钥和一些关于我是谁的信息,并使用我的私钥对其进行签名。然后,Apple 使用一些加密哈希来验证信息,并且我确实拥有该公钥。然后,Apple 将我的信息与注册的 Apple 开发人员核对,如果一切顺利,则颁发证书(包括我的公钥),并使用他们的私钥对整个事情进行签名。可以拥有由 Apple 签署的用于不同目的的不同证书。
  3. 我将此证书包含在我想在其上运行代码的任何配置文件中(作为 ipa 的一部分,或以其他方式)
  4. 当我尝试在设备上运行应用时,如果设备意识到它不是由 Apple 直接签名的,它会查看我安装在其上的配置文件
  5. 如果 App ID checkout ,并且它是列出的注册设备之一,它会查看证书
  6. 它使用 Apple 的公钥检查证书的签名,以验证证书是否由 Apple 签名,从而设备可以信任证书的真实性
  7. 然后它使用证书中包含的我的公钥检查代码签名的应用程序,如果匹配,则它知道受信任的开发人员对应用程序进行了代码签名
  8. 现在可以运行应用了

我不知道 Apple 的全局证书是干什么用的?



Best Answer-推荐答案


通过开发者门户创建的配置文件由 Apple 签名。 您的配置文件中包含您的证书,因此 ipa 的协同签名身份必须与配置文件中的身份匹配。 当应用程序启动时,iOS 可能会检查代码设计是否与配置文件匹配,以及配置文件是否有效。 当配置文件是 development/ad-hoc 时,它还会检查设备是否具有启动应用程序的权限。 此外,当应用程序提交给 ITC(用于 AppStore 或 TestFlight)时,Apple 会使用其证书/ key 对其进行签名和加密。

关于iOS 代码签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40981694/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4