iOS签名机制原理

2021-05-27  本文已影响0人  喜歡w

iOS签名机制流程图

image

不管是真机调试,还是发布APP,开发者都需要经过一系列复杂的步骤

  1. 生成CertificateSigningRequest.certSigningRequest文件

  2. 获得ios_development.cer\ios_distribution.cer证书文件

  3. 注册device、添加App ID

  4. 获得*.mobileprovision文件

首先有三个角色mac 设备 apple后台 iOS设备

首先mac设备生成一对mac公钥mac私钥

apple后台就是apple的服务器也会生成一对公钥私钥,私钥保存在apple的后台,公钥在每一天iOS设备上,相当于每一台iOS设备都有一个相同的苹果公钥

这时候假设要把上面步骤生成的ipa文件装到我们的手机上他会进行一个验证操作,由于我们的iOS设备有一个apple官方的公钥,他会拿到apple官方的公钥去验证moblieProvision文件里的那个签名,为什么要验证这个签名,因为当初这个签名是拿apple私钥签的,如果这个签名没有问题,说明步骤三里的签名加上原来那一堆设备ID(devices),app id,entitlements和证书没有问题,那么接下来他就要验证设备ID(devices),app id,entitlements,会验证设备ID(devices)是不是包含,app id和你步骤一里面的app文件里的id是不是相同,然后看entitlements和你app文件里执行的文件是不是相同

接下来他需要用apple公钥验证一下moblieProvision文件的证书(就是)第二步里生产的mac公钥和mac公钥经过apple私钥签名的的文件那个证书。如果这步没问题说明mac的公钥是合法的 ,然后拿到这个mac合法公钥进行验证签名,进行app签名文件代码验证签名,为什么要用mac公钥验证,因为当初这个app签名文件是用mac私钥进行的签名,如果没问题的话说明代码是没问题的,说明代码没被别人修改,那么程序就可以安装了

上一篇下一篇

猜你喜欢

热点阅读