iOS签名机制
2019-02-28 本文已影响0人
昵称是乱起的
签名阶段
1.从钥匙串里面请求的一个CertificateSigningRequest.certSigningRequest文件,这个就是mac电脑的公钥
2.把这个mac公钥和一些其它信息传给Apple,Apple私钥签名后返回,这个就是开发证书,里面包含被签名的公钥和hash值。
3.生成mobileprovision文件,里面是把devices、appid、Entitlements(iCloud/PUSH/后台运行/调试器附加这些权限)还有经过签名的mac公钥一起经过Apple私钥的签名生成的mobileprovision。
4.打包的时候是mac私钥对App可执行文件MachO进行签名,然后跟mobileprovision文件一起打包到App里面。
验证阶段
1.苹果手机内置Apple的公钥,用Apple公钥对mobileprovision进行验证,得到appid、devices、Entitlements。
2.用Apple公钥验证打包在里面的证书得到mac公钥
3.用mac公钥对签名的可执行文件就行验证是否被篡改
只有appid、devieces、可执行文件全部被验证通过后才可以按照到手机上面。
image.png
App Store里面安装的应用,不需要验证mobileprovision。
企业级开发证书只不过Apple私钥换成了企业账号私钥