ios签名原理(ios方法签名有什么作用)

前言

相信很多同学对于iOS的真机调试,App的打包发布等过程中的各种证书、Provisioning Profile、 CertificateSigningRequest、p12的概念是模糊的,导致在实际操作过程中也很容易出错。好在Xcode8.0出现了Automatically manage signing,让我们在这步操作中减少了难度。虽然说我们在Xcode8.0之后可以选择让Xcode自动管理了,但是我们还是应该知道App签名的原理。本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解iOS App签名的原理和流程。

签名目的

先来看看苹果采用签名机制的目的。在iOS出来之前,在主流操作系统(Mac/Windows/Linux)上开发和运行软件是不需要签名的,软件随便从哪里下载都能运行,导致平台对第三方软件难以控制,盗版流行。苹果就希望在iOS平台对第三方App有绝对的控制权,一定要保证每一个安装到iOS上的App都必须经过苹果官方认证的。那么问题来了,怎么保证呢?就是通过签名这种机制。

非对称加密

通常我们所说的签名就是数字签名,它是基于非对称加密算法实现的。对称加密是通过同一份密钥加密和解密数据,而非对称加密则有两份密钥,分别是公钥和私钥,用公钥加密的数据,要用私钥才能解密;用私钥加密的数据,要用公钥才能解密。

简单说一下常用的非对称加密算法RSA的数学原理,理解简单的数学原理,就可以理解非对称加密是怎么做到的,为什么是安全的:

1. 选两个质数`p`和`q`,相乘得出一个大整数`n`,例如:p=61,q=53,n=p*q=3233
2. 选 1-`n` 间的随便一个质数`e`,例如:e=17
3. 经过一系列数学公式,算出一个数字`d`,满足:
 a. 通过`n`和`e`这两个数据进行数学运算后,可以通过`n`和`d`去反解运算,反过来也可以。
 b. 如果只知道`n`和`e`,要推导出`d`,需要知道`p`和`q`,也就是需要把`n`因数分解。
 

上述的(n,e)这两个数据在一起就是公钥,(n,d)这两个数据就是私钥,满足用公钥加密,私钥解密,或者反过来私钥加密,公钥解密;也满足在只暴露公钥(只知道n和e)的情况下,要推导出私钥(n,d)需要把大整数n因数分解,目前因数分解只能靠暴力穷举,而n数字越大,越难以用穷举计算出因数p和q,也就越安全,当n大到二进制1024位或2048位时,以目前技术要破解几乎不可能,所以非常安全。

若对数字d是怎样计算出来的感兴趣,可以详读这两篇文章:RSA 算法原理(一)(二)

提供长期稳定不掉线、可带推送功能的ios企业签名服务,跳过漫长艰难审核过程,直接为用户提供高速下载安装服务: https://ds.fubi.hk/

ios签名原理(ios方法签名有什么作用)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论