美文网首页
iOS的App签名原理(一)

iOS的App签名原理(一)

作者: 客三消 | 来源:发表于2020-03-08 18:16 被阅读0次

    阅读解释:

    本字体代表计算式子
    本字体代表关键名词

    本机的公钥(LocalPublicKey)
    本机的私钥(LocalPrivateKey)
    Apple公钥(ApplePublicKey)
    Apple私钥(ApplePrivateKey)

    AppStore发布

    1.通过 钥匙串 - 从颁发机构申请证书,生成 本机的公钥(LocalPublicKey).

    2.登陆 AppleDeveloper 后台提交公钥,下载 Distribution.cer 并且导入匙串.

      • Apple私钥(ApplePrivateKey) Encryption 本机的公钥(LocalPublicKey) + 本机的公钥指纹(本机的公钥进行sha256计算后的hash值,也称摘要) = Distribution.cer.
      • 可通过 Apple公钥(ApplePublicKey)解密出 本机的公钥(LocalPublicKey) + 公钥指纹,再对本机的公钥(LocalPublicKey)进行sha256,并且与 公钥指纹 对比,相同则本机的公钥(LocalPublicKey)没有被篡改.可以放心使用.

    3.登陆 AppleDeveloper 后台新建App.生成AppID.

      • Team ID + 应用的BundleID + 应用的权利(如内部付费等) = AppID

    4.选择对应AppID,创建 DistributionProfile.mobileprovision 文件,下载导入Xcode.

      • AppID + Distribution.cer = DistributionProfile.mobileprovision.
      • AppID + Develop.cer + 设备列表 = DevelopProfile.mobileprovision

    5.打包App上传到AppStore.

    • (1)Xcode 使用Apple公钥(ApplePublicKey) Decrypt DistributionProfile.mobileprovision = AppID + Distribution.cer 验证其是否遭到篡改.如果正确,则继续.
    • (2)判断解密出来的 AppIDDistribution.cer是否与当前编译的工程匹配.包括各种应用权利是否匹配.
    • (3)提交到Apple后台.生成IPA.
    • (4)认证审核通过后,IPA使用Apple私钥(ApplePrivateKey)加密,并公布到AppStore.

    6.下载IPA到iPhone.

    • IPA由Apple私钥(ApplePrivateKey)加密
    • iPhone内置Apple公钥(ApplePublicKey)
    • (1)Apple公钥(ApplePublicKey) 解密 IPA ,验证IPAsha256摘要是否与解密出来的指纹相同.相同则表示未篡改,此IPA是Apple认证的.可以进行安装.
    • (2)如果证书过期,则直接失败,导致不可安装.

    相关文章

      网友评论

          本文标题:iOS的App签名原理(一)

          本文链接:https://www.haomeiwen.com/subject/yaxjdhtx.html