3大步骤简单介绍一下iOS签名验证流程

时间:2019-11-06 21:22 作者:ios签名
  随着科技的发展,现如今基本上人手都是有一部智能手机,说起苹果手机大家都不陌生,但是大家对于iOS签名验证流程了解有多少呢?接下来跟随苹果企业签名小编来了解一下吧:
 
 
  一. 证书申请
 
  用我们自己的机器生成 CertificateSigningRequest.certSigningRequest 文件,在生成的过程中会产生一对公钥和私钥,私钥已经保存在我们的机器上,这个文件包含了我们的公钥,具体内容如下:
 
  申请者信息,此信息是用申请者的 私钥 加密的。
 
  申请者公钥,此信息是申请者使用的 私钥 对应的公钥。
 
  摘要算法和公钥加密算法
 
  上传 CertificateSigningRequest.certSigningRequest 到 MemberCenter 。 MemberCenter 根据获取到的 公钥 和我们的用户信息,通过 Apple 自己的私钥进行数字签名生成证书,这个证书可以通过安装 Xcode 过程中安装的根证书进行验证。具体证书包含内容如下:
 
  用户的公钥
 
  用户信息
 
  证书机构名称
 
  证书有效期
 
  苹果数字签名 : 通过根证书验证以上信息下载生成的证书,双击安装就会出现在 钥匙串 中, 钥匙串 会根据证书中的公钥对应上本机器上的私钥。
 
  二. 打包签名
 
  在 MemberCenter 上生成 mobileprovision 下载安装, mobileprovision 包含如下信息:
 
  appid: 每个 app 在 MemberCenter 创建的对应的 id 。
 
  包含哪些证书: 不同证书对应不同功能。
 
  功能授权列表
 
  可安装的设备列表: iOS设备的UDID列表,发布证书应该是通配。
 
  苹果数字签名: 苹果用来验证以上的信息。
 
  通过 Xcode 指定要使用的证书,其实是 指定了签名过程中要使用的 私钥 ,这个私钥是和证书中的公钥相对应的。然后指定对应的 mobileprovision ,由于 mobileprovision 文件中包含了证书,实际上本地证书就是 Xcode 用来指定对应 私钥 用的。
 
  最后通过指定的私钥对需要签名的数据进行数字签名(编译过程在签名之前,这里省略了编译过程,编译后的二进制文件也是要签名的内容),最终将 ipa 包的形式输出, ipa 的文件结构
 
  如下:
 
  资源文件: 例如图片、html、等等。
 
  _CodeSignature/CodeResources: plist文件,内容是包内所有数据的数字签名。
 
  可执行文件: 编译后的二进制文件。
 
  mobileprovision: 我们之前通过Xcode指定的包含了证书的文件。
 
  Frameworks: 程序引用的非系统自带的Frameworks。每个Framework的结构跟app其实差不多
 
  三. 验证安装
 
  解压 ipa 包,获取 embedded.mobileprovision ,通过设备上的 Apple 公钥验证该文件的完整性和安全性。
 
  embedded.mobileprovision 文件验证通过,获取该文件内的用户证书,再通过设备上的 Apple 公钥验证该证书的完整性和安全性。
 
  证书验证通过后,获取证书内的我们开发者的公钥。然后通过开发者的公钥验证应用程序包内的数据的完整性和安全性。通过后即可安装。
LINKS友情链接