• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS 代码签名

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:16:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

  • 我的个人 key 对
  • Apple 的 key 对
  • 我的开发证书
  • 我的分发证书
  • Apple 的 Apple 全局开发者关系证书
  • 我的开发配置文件
  • 我的分发配置文件

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

  • 从 App Store 运行应用
  • 运行为 Beta 测试而分发的应用
  • 在开发环境中运行应用/调试

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

我现在的刺是:

  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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap