zoukankan      html  css  js  c++  java
  • iOS App 签名的原理

    因为步骤有小变动,这里我们不辞啰嗦重新再列一遍整个流程:

    1.在你的 Mac 开发机器生成一对公私钥,这里称为公钥L,私钥L。L:Local

    2.苹果自己有固定的一对公私钥,跟上面 AppStore 例子一样,私钥在苹果后台,公钥在每个 iOS 设备上。这里称为公钥A,私钥A。A:Apple

    3.把公钥 L 传到苹果后台,用苹果后台里的私钥 A 去签名公钥 L。得到一份数据包含了公钥 L 以及其签名,把这份数据称为证书。

    4.在苹果后台申请 AppID,配置好设备 ID 列表和 APP 可使用的权限,再加上第③步的证书,组成的数据用私钥 A 签名,把数据和签名一起组成一个 Provisioning Profile 文件,下载到本地 Mac 开发机。

    5.在开发时,编译完一个 APP 后,用本地的私钥 L 对这个 APP 进行签名,同时把第④步得到的 Provisioning Profile 文件打包进 APP 里,文件名为embedded.mobileprovision,把 APP 安装到手机上。

    6.在安装时,iOS 系统取得证书,通过系统内置的公钥 A,去验证embedded.mobileprovision的数字签名是否正确,里面的证书签名也会再验一遍。

    7.确保了embedded.mobileprovision里的数据都是苹果授权以后,就可以取出里面的数据,做各种验证,包括用公钥 L 验证APP签名,验证设备 ID 是否在 ID 列表上,AppID 是否对应得上,权限开关是否跟 APP 里的 Entitlements 对应等。

    开发者证书从签名到认证最终苹果采用的流程大致是这样,还有一些细节像证书有效期/证书类型等就不细说了。

    RSA加密解密和签名验证机制以及其区别和联系

    https://blog.csdn.net/wangjianno2/article/details/68965299

    http://www.cocoachina.com/ios/20170602/19427.html

  • 相关阅读:
    Inno Setup 6.0.4
    使用Microsoft Enterprise Library 5.0记录日志信息
    Log4net用法
    继续接着上一篇写:使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)[搜片神器]
    磁力王:种子磁力搜索神器使用教程
    C# WebBrowser 网页缩放的方法
    Mysql5.7修改root密码教程
    【MAVEN】maven项目下载更新pom jar包速度慢 解决方案
    C# DataGridView自动保存列的宽度和位置
    Java实现敏感词过滤
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/8949967.html
Copyright © 2011-2022 走看看