iOS签名原理

为什么要签名?

  • 保证这个APP是经过苹果官方授权的

iOS签名原理

    1. MAC端
    • 生成CSR文件(公钥M)
    • 创建CSR文件的同时会在kehchain中生成私钥M
    1. Apple后台签名
    • 生成证书文件
        1. 将公钥M上传至Apple后台
        1. Apple后台使用私钥A对公钥M进行签名
        1. 生成.cert证书文件
    • 生成描述文件
      • 1.关联App描述信息,appiddeviceID
      • 2.选择证书
      • 3.使用私钥A对证书和描述信息进行签名
    • 4.生成描述文件provisionfile
  • 3.下载证书和描述文件到MAC本地,安装证书(包含公钥和签名),此时keychanin中就会存在一个证书文件,直接导出的话,会生成一个.p12文件,p12文件包含了公钥M,私钥M,和签名
  • 4.编译项目,生成.app文件,XCode使用私钥M对.app进行签名,然后.app和描述文件一起压缩成安装.ipa文件
  • 5.Xcode准备把安装包装在iPhone上
  • 6.iPhone对安装进行验证,用公钥A验证描述文件的签名,验证通过,则说明描述文件里的数据苹果授权的
  • 7.用公钥A验证证书中的签名,验证通过,说明公钥M是安全可信任的
  • 8.上述步骤验证通过后,取出描述文件里的数据进行元数据验证
    • 公钥M验证App签名
    • 验证iPhone时是否在设备列表中
    • 验证appid是否正确
    • 验证使用权限是否跟Entitlement对应等

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