iOS 应用的签名原理是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 应用的签名原理是啥?相关的知识,希望对你有一定的参考价值。

ios签名可分为企业签名、超级签名

业签名就是使用企业开发者账号生成的企业证书进行签名的,其中涉及到公钥密钥的概念,企业开发者账号是不能在App Store发布应用的,它一般用于大型企业内安装苹果APP,不必上架到App Store,就可以直接安装,它的权限是比较大的。

超级签名是使用个人开发者账号,添加苹果设备的udid,实现真机测试,一个个人开发者账号最多只能添加100个udid。

从原理上来看,超级签名一般比企业签名更加稳定,因企业签名中真正起到签名作用的是企业发布证书,而这个证书是可以复制的,当有大量签名商复制了这个证书,给成千上万个APP签名,风险就会很大,这也是企业签名掉签的重要原因。

参考技术A 作者:Edison Z
链接:http://www.zhihu.com/question/22153061/answer/26238013
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在公钥密码体制里面,密钥被分为了私钥和公钥两个部分,最出名的是RSA所形成的PKCS标准,由于密钥不对称,在原本可以支持加密的基础上,又支持了一种认证的方式,就是签名。
其实签名就是加密的逆过程,加密是用公钥加密,私钥解密,这样就只有私钥拥有者才可以查看明文,其他人都可以给私钥拥有者发信息。一般来说,密钥对是由私钥拥有者产生的,自己保留私钥,公钥公开出来。

如果反过来,用私钥进行加密,那么公钥也可以解密,这个就叫签名。因为私钥只有私钥拥有者一个人知道(不泄露的前提下),但是公钥是可以公开出来的,大家可以验证是不是由正确私钥加密的(这里可以简单的考虑为固定了一个明文签名,这样只有私钥拥有者的签名大家才可以正确解密得到这个明文,其他人是无法伪造的)。至于怎么签名,是对整个程序签名还是片段签名,这个就是基于实际的 考虑。

在实际中应用,由于还要考虑到重放攻击等,一般来说是有一个完整的证书体制,比较出名的就是rsa基础上建立的PKCS。证书本身的构成是比较复杂的,而且需要一个大家公认的第三方来维护证书,当然,在苹果的体制下,自然这个第三方就是苹果公司,他为每一个开发者维护了每个开放者的证书(当然包括身份信息,密钥对等等很多信息),也为自己维护了一个机构证书。

如果按我判断,上传的时候利用开发者的证书对程序签名上传,apple验证签名的有效性,如果有效,apple用机构证书再次对程序签名。

用户下载的时候,会验证是否是apple签名的。至于如何签名,这个很难说,很可能是对每一个程序页都签名了,这样可以保证程序完全无法被修改。
参考技术B

iOS应用的签名方式有两种:企业签名,TF签名。

苹果企业签名直接下载APP的原理

TF签名的机制原理解析

这两种方式都是可以帮助应用在iOS系统直接安装的,如果对其原理感兴趣,可以参考上面的文章,希望对你有帮助。

ios签名原理详解

参考技术A ios企业签名是非常常用的内测应用分发渠道,但我们在使用ios签名之前,还需要了解其中的签名原理,只有这样我们才能知道企业签名为什么会掉签?如何根据自己的实际情况选择更稳定的签名?

三种iOS签名的原理详解:

1、 企业ios签名

ios签名中的企业签名是使用企业开发者账号生成的企业发布证书来进行签名的。企业开发者账号是一种比较特殊的账号,它不能在App Store中发布应用,最大的作用就是进行签名。而在签名过程中真正起到作用的企业发布证书是可以被复制的,所以很多签名服务商就可能会使用同一本发布证书对众多不同的应用进行签名,这也就是企业签名频繁掉签的主要原因。

2、 超级签名

ios签名中的超级签名是使用个人开发者账号,通过添加苹果设备的udid来实现真机测试,这种ios签名方式是有一个很明显的限制的,了解过苹果开发者账号的人应该知道,一个个人开发者账号最多只能添加100个udid,这个数量上的限制决定了这种ios签名方式比企业ios签名更加稳定。

3、 tf签名

tf签名是目前三种ios签名方式中最稳定、也是最安全的一种。实际上,它是指将应用上架到testflight,而testflight是苹果官方的内测分发渠道,需要苹果审核,受到苹果官方加持,稳定性和安全性自然都有很大保障,所以很多ios开发者更倾向于使用这种ios签名方式来进行内测。

通过对以上三种ios签名的原理介绍,我们可以了解到,企业ios签名之所以频繁掉签,就是因为其原理中的发布证书具有可复制性,ios签名应用越多,风险就越大,ios签名就越不稳定。而超级签名在这三种ios签名中属于比较稳定的一种,但是现在市场非常不稳定,而且市面上的超级签名源头很难判断,目前不是很推荐使用。而tf签名是三种ios签名中最稳定的一种方式,很多人选择这种ios签名方式就是看中了它受到苹果官方的认可。 ios上架为什么要选择tf上架?

当我们在选择ios签名方式的时候,要结合自己的实际情况,不同类型的签名,其稳定性和价格都是不一样的,结合自己的应用特点和内测需求选择合适自己的ios签名。

以上是关于iOS 应用的签名原理是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ios签名原理详解

iOS 应用签名原理&重签名

ios - 要从 iTunes 传输到设备的 Ad-Hoc 构建的正确代码签名配置是啥?

iOS开发逆向之应用签名!

RSA数字签名是啥?

iOS包重签名技术知识