iOS证书大全

2022-07-21  本文已影响0人  Mr_Baymax

一. 前言

iOS各类证书一直很复杂,即使拥有多年开发经验的开发者,还是会搞混淆。本文从全方面来剖析iOS证书机制。

二.iOS 签名机制

我们先来了解一下 ipa 包的签名机制 image.png

开发者 Mac 系统中生成一对非对称加密算法的公私钥 M,将公钥和开发者信息生成 CSR 文件给到苹果服务器 苹果有自己的公私钥 K,其中公钥 K 存在每一台的 iPhone 设备上,私钥 K 则保存在苹果服务器。根据 CSR 内容利用私钥 K 进行签名并生成证书,同时也根据在开发者后台填写的信息(Bundle ID,权限等)和证书生成描述文件(mobileprovision) 在开发者设备上打包时,会把描述文件一并打包到 ipa 中,并利用私钥 M 对包的内容进行签名 在安装到设备上时,会进行两次验证:利用设备上的公钥 K 校验 ipa 包内的证书文件(证书是通过苹果私钥 K 签名),校验证书是否有效 上一步证书校验通过后,会拿出证书内的公钥 M 来校验 ipa 包(ipa 包是通过开发者私钥 M签名),校验 ipa 包是否可安装

苹果通过以上的双重验证机制,来确保在开发阶段 App 的安装行为的合法性。当将 App 提交到 App Store 后,苹果会对 App 重新加密签名,安装时就只需验证苹果的签名。
推荐一个重签名工具:iOS-App-Signer

三.各种证书详解

1.开发者账号

个人:99 美元/年,不需要邓白氏码,可上线AppStore
公司:99 美元/年,需要邓白氏码,可上线AppStore,允许团队协作
企业:299 美元/年,需要邓白氏码,不可上线AppStore,允许团队协作

2.iOS证书

iOS证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的

普通个人开发账号最多可注册iOS Development/Distribution证书各2个,用户可在网站上删除(Revoke)已注册的Certificate

3.App ID和设备

4.CSR描述文件

从Apple Member Center网站下载证书到Mac上双击即可安装(当然也可在Xcode中添加开发账号自动同步证书和[生成]配置文件)。证书安装成功后,在KeychainAccess|登录|密钥 中展开创建CSR时生成的Key Pair中的私钥前面的箭头,可以查看到包含其对应公钥的证书(Your requested certificate will be the public half of the key pair.);在Keychain Access|登录|证书 中展开安装的证书(ios_development.cer)前面的箭头,可以看到其对应的私钥。

image.png
image.png

4.配置文件Provisioning Profile

5.团队配置文件Team Provisioning Profile

Team Provisioning Profile包含一个为Xcode iOS Wildcard App ID()生成的iOS Team Provisioning Profile:(匹配所有应用程序),账户里所有的Development Certificates和Devices都可以使用它在这个team注册的所有设备上调试所有的应用程序(不管bundle identifier是什么)。同时,它还会为开发者自己创建的Wildcard/Explicit App IDs创建对应的iOS Team Provisioning Profile。

6.证书与签名

  • 若用WWDRCA公钥能成功解密出证书并得到公钥(Public Key)和内容摘要(Signature),证明此证书确乃AppleWWDRCA发布,即证书来源可信;
  • 再对证书本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此证书未被篡改过,即证书完整。
  • 若用证书公钥能成功解密出App(executable code)的内容摘要(Signature),证明此App确乃认证开发者发布,即来源可信;
  • 再对App(executable code)本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此App(executable code)未被篡改过,即内容完整。

7.在多台机器上共享开发账户/证书

image.png

8.其他

上一篇 下一篇

猜你喜欢

热点阅读