iOS的App签名原理(一)

阅读解释:

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

本机的公钥(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项目开发时,由于采用的是自己的开发者账号,在Xcode的General配置中勾选上Aut...
    YesWeCan阅读 2,007评论 0 14
  • 学习路线 学前须知 如何防止被窃听? 如何加解密 密码的类型 根据秘钥的使用方法,可以将密码分为了两类 对称密码 ...
    Rathen阅读 1,419评论 1 4
  • 笔者接触打包已经一段时间了,但一直对签名都是似懂非懂,最近从加密数论知识起回看这部分知识,感觉还是有很多不懂的地方...
    luonaerduo阅读 1,230评论 0 3
  • 一、预备知识 1、常见英文encrypt:加密decrypt:解密plaintext:明文ciphertext:密...
    迷心迷阅读 2,437评论 2 4
  • iOS签名原理 在iOS真机调试和发布上线的时候,我们可能已经习惯了配置各种证书、描述文件,等这一繁琐的步骤。但是...
    进击的阿牛哥阅读 5,235评论 2 22