iOS应用签名原理
基本签名原理:
App签名使用到了数字签名,通过hash算法提取摘要,使用苹果私钥加密,形成签名,然后将原始数据,加密的的摘要(签名)及相关信息放到一起,形成已签名的数据(数字证书)。
iOS App 签名机制:
CertificateSigningRequest.certSigningRequest
在PKI系统中,Certificate siging request(CSR)是用于到Certificate Authority申请证书的,包含申请证书的一些必要信息
*.certSigningRequest包含了如下信息:
- 申请者信息
- 申请者公钥
- 摘要算法和公钥加密算法
发布证书
在苹果服务端上传了*.certSigningRequest后,苹果服务端会取出CertSigningRequest中的公钥,添加账号信息,通过哈希算法生成一个摘要,使用苹果私钥对摘要加密,形成数字签名。发布证书包含如下信息:
- 申请者信息
- 申请者公钥
- 通过苹果私钥加密的摘要—-数字签名
Provision Profile
签名文件在苹果开发者网站生成,生成时需要关联App ID,发布证书。*.mobileprovision文件主要包含了如下信息:
- APP ID(Bundle ID/application-identifier)
- Entitlements (权限列表)
- DeveloperCertificates(使用的证书)
- ExpirationDate(签名文件过期时间点)
- ProvisionedDevices(可安装的设备列表的UDID,development证书特有,distribution是ProvisionAllDevices)
参考
[] (http://www.youdzone.com/signature.html)
[] (https://www.objc.io/issues/17-security/inside-code-signing/)
[] (http://blog.cnbang.net/tech/3386/)
[] (http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!