行业动态
image.png关于iOS应用签名我想一起探讨一下它的原理
2021-03-14

image.png

关于IOS应用程序签名,我想一起讨论其原理。首先,我们需要了解一件事,称为数字签名

数字签名

名词解释:为什么要使用单词签名。因为外国人喜欢使用支票,所以支票上的签名可以证明这东西是您的。顾名思义,数字签名就是一种认证数字信息的方法。

接下来,让我们考虑一下。如果要证明数字信息(即二进制数据,计算机中的任何数据)的有效性,哪种方法最合适?

我们可以想到称为“信息指纹”的HASH算法。在上一篇文章中,提到了HASH算法用于识别文件数据。然后在网络数据传输过程中,我们可以传输明文数据,并将数据的HASH值传递给另一方。对方可以取出HASH值进行验证。

但是在此过程中,如何保护数据?如果直接发送明文数据和HASH值,则有被篡改的风险。因此,这里我们需要对数据进行加密。明文数据有时相对较大。由于使用RSA非对称加密算法是合适的,因此数据的HASH值相对较小。此数据用于验证,可以使用RSA加密。因此,在传输数据时,我们将纯文本数据添加到RSA。加密的验证数据将传递给另一方。然后将通过RSA加密的验证数据称为签名。

数字签名

数字签名的验证过程

当另一方获取数据时,如何进行验证?

数字签名验证

代码签名

名称说明:代码签名是对可执行文件或脚本进行数字签名。这是一种用于在签名后确认软件没有被修改或损坏的措施。原理与数字签名相同,区别在于签名的数据是代码。

简单的代码签名

在IOS出现之前,可以从任何地方下载以前的主流操作系统(Mac / Windows)软件,并且在系统安全性,盗版软件,病毒入侵,静默安装等方面存在隐患。解决此问题ios开发数字签名代码,以确保IOS上安装的每个APP都经过Apple的正式批准,如何确保通过代码签名来实现

如果要进行验证。实际上,最简单的方法是通过Apple的官方网站生成一对非对称加密的公钥和私钥。在IOS系统中内置了公用密钥,而专用密钥则存储在Apple后台中。在AppStore中,Apple后端使用私钥对APP数据进行签名。 IOS系统下载APP之后,它将使用公共密钥来验证签名。如果签名正确,则必须由Apple后端对APP进行身份验证,并且尚未对其进行修改。它还可以满足Apple的需求:确保安装的每个APP都经过Apple的正式批准。

如果我们的IOS设备仅从App Store安装了APP,则可以简单地解决此问题,而无需任何复杂的事情ios开发数字签名代码,只需一个数字签名即可。但是实际上IOS还有其他安装APP的渠道。例如,对于我们的开发人员IOS ER,我们在开发APP时需要直接调试真实机器。此外,苹果还开辟了企业内部分销的渠道,由企业证书签名的APP也需要顺利安装。

苹果需要打开这些方式来安装APP,这些要求无法通过简单的代码签名来实现。然后让我们分析一下它的要求。

为了达到这些要求,IOS签名的复杂性也开始增加。苹果在这里给出的方案是一个两层签名。

IOS的双重代码签名

IOS的两层代码签名过程在此处简要列出,这不是最终的IOS签名原理。在此基础上,IOS的最终签名需要更多一点,我将在本文结尾处进行讨论。

首先,这里有两个角色。一个是IOS系统,另一个是我们的Mac系统。因为IOS的APP开发环境在Mac系统下。因此,这种依赖性已成为Apple两层签名的基础。


393701618