签名原理

Apple为了APP的安全, 每个APP都对其进行非对称加密, 其中公钥内置在每个iPhone/iPad内部, 私钥放在苹果服务器.
所有上架的APP都使用私钥进行加密, 然后从App Store下载APP后在设备中解密就可以使用了

但是以上的办法缺点就是开发者没有办法真机调试, 不可能每次调试都要上架一次. 当然可能还有别的原因, 但结果就是有了苹果开发者证书.

原理.png

上图为APP签名原理, 思路如下:

  1. 一对RSA秘钥, 苹果服务器持有私钥, iPhone/iPad持有公钥
  2. 为了控制APP的测试设备数量和权限, Apple使用描述文件(Provision profile)控制
  3. 在Mac电脑上生成RSA的私钥和公钥, 私钥保存在Mac电脑中, 公钥以CSR文件的形式交由苹果服务器. 苹果服务器对此公钥使用其持有的私钥进行加密, 和此公钥的HASH值组成开发/生产证书, 开发者下载到电脑中, 和其持有的私钥关联.
  4. 在真机调试或APP打包时, Mac/Xcode使用其持有私钥对APP进行签名, 连同证书和描述文件和APP打包在一起, 通过真机运行或App Store交由运行设备.
  5. iPhone/iPad使用其持有的公钥解密证书中的加密后的公钥, 得到公钥用来解密APP数据, 通过一系列校验验证后, 就可以在真机中运行了.

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