iOS的签名机制

1、从keychain里“从这证书颁发机构请求证书”,这样就在本地生成了一对公私钥,保存的CertificateSigningRequest就是公钥,私钥保存在本地电脑里。

2、苹果自己有一对固定的公钥和私钥,苹果私钥在苹果后台,苹果公钥内置在iOS设备中。

3、CertificateSigningRequest(电脑公钥)上传到苹果后台,用苹果后台的苹果私钥去签名CertificateSigningRequest(电脑公钥),得到一份数据包括电脑公钥和签名,这份数据称为证书,并下载到本地。

4、在苹果后台申请好AppID,配置好设备ID列表,App权限开关,再加上上面生成的证书,组成的数据用苹果后台的苹果私钥签名,把数据和签名一起组成一个Provisioning Profile文件,下载到本地Mac。

5、xcode通过第三步下载下来的证书,去找对应的本地电脑私钥,用本地电脑私钥去签名App,并把Provisioning Profile文件一起打包进去,安装进iOS设备。

6、在安装时,就可以使用iOS设备里内置的苹果公钥来验证Provisioning Profile的数字签名是否正确。

7、iOS 设备在得到 ipa 之后,首先会把 ipa 进行解压,然后通过 APP 文件中的 mobileprovision 文件去下载其对应的证书,然后从证书中取得开发者的电脑公钥,从而对 ipa 进行了数字签名的认证。

posted @ 2018-11-21 14:52  程石亮  阅读(200)  评论(0编辑  收藏  举报