iOS签名原理

121631619312_.pic.jpg
  1. 每个mac上都会有一对公私钥
  2. 当我们申请证书时,会将公钥M通过csr 传给苹果服务器
  3. 苹果服务器讲公钥M 经过apple 私钥A加密然后生成证书
  4. app打包,Xcode会利用codesign工具,用私钥M给app签名(包括资源签名,代码签名)
  5. 每台手机会在操作系统内置一个跟苹果服务器私钥A,对应的公钥A
  6. 当iPhone 要安装app时,会用公钥A解密app内的证书得到公钥M
  7. 用解密得到的公钥M验证签名是否合法,是否是官方认证的

其实上边的流程是有问题的
那么经过签名的app可以安装在任意一台手机上,这是苹果不愿看到的,所以就有了mobileProvisioning profile 文件,里边包含了appid 在苹果后台注册过的设备,以及包含的证书. 只有对应的app和注册过的设备才能安装在iPhone上(上线appstore,企业签名除外).

流程变成了如下图:


131631619335_.pic.jpg

你可能感兴趣的:(iOS签名原理)