苹果签名的机制是什么?

发布时间:2022-07-04 09:04 来源:http://www.bjxo.cn/ 作者:北极星苹果企业签名

苹果签名是苹果为开发人员提出的机制。开发人员使用企业开发人员账户App签名后,可以让App免上架AppStore即可安装到ios在设备上,苹果的签名机制是什么?

在iOS出来前,以前的主流操作系统(Mac/Windows)软件可以在任何地方下载,系统存在安全风险、盗版软件、病毒入侵、无声安装等。

要解决这样的问题,苹果必须确保每个问题都安装好iOS上的App都是苹果官方允许的,那么如何保证呢?通过苹果签名。

我相信很多朋友都听说过苹果签名,但是苹果签名的机制是什么呢?今天,小伟将带您了解苹果签名的机制。

苹果签名机制

要实现验证,最简单的方法就是通过苹果官方生成一对不对称加密的公私钥。iOS公钥内置在系统中,私钥由苹果后台保存,我们传播App到AppStore当苹果后台用私钥对齐时,App数据签名,iOS下载此设备App之后,用公钥验证签名。如果签名正确,就证明了这一点App苹果后台认证,未修改,这达到了苹果的目的,保证了每一个App都是官方允许的。

如果我们iOS设备安装App只是从AppStore这个入口,所以事情很简单,一个数字签名。

但是实际上iOS安装App还有其他渠道,比如对于开发者来说,需要真机调试,苹果业内部分发渠道和企业证书签名App还需要顺利安装。

苹果需要打开这些安装方法App,那么简单的代码签名就无法实现。

双层签名认证

iOS这里简单梳理一下双层代码签名流程,这不是最后的iOS签名原理,iOS在此基础上,最终签名应稍加一些。

首先,这里有两个角色:一个是iOS另一个系统是我们的Mac系统,因为iOS的APP开发环境在Mac系统下。所以这个依赖关系成为了苹果双层签名的基础。

Mac可生成一对公钥:公钥Mac 和 私钥Mac

iPhone公钥内置在设备即公钥Apple,苹果服务器上的私钥对应Apple

签名流程如下:

1、Mac创建密钥对 (公钥Mac 和 私钥Mac),即通过钥匙串 从证书颁发机构申请证书 创建,私钥存在于本机中,公钥包含在内CertificateSigningRequest文件中。

2、将CSR上传到苹果服务器的文件 私钥Apple 对CSR的哈希值进行加密,生成一个证书(证书里包含了公钥Mac并通过私钥Apple加密哈希值)

在开发编译阶段,每次编译结束,Mac会用 私钥Mac(p12文件) 对App签名并将上一步获得的证书打包App,此时App上一步生成的证书(证书包含公钥)Mac并通过私钥Apple加密哈希值)

4、iPhone设备安装App当设备内置公钥首先通过Apple解密上一步的哈希值以获得证书,然后获得公钥Mac,如果解密成功,说明证书是苹果服务器颁发的,然后就可以拿到了 公钥Mac 对App解密包的签名,因为App是通过 私钥Mac此时时,可验证安装成功。

App重签名

根据上述签名原则,App本地签名Xcode所以我们可以做一些IPA将装在我们的工程编译目录中,让它完成Xcode误认为此IPA它是由我们的工程编译产生的,然后使用我们自己的bundleid、签署自己的证书,从而实现App的重签名。

以上是本期苹果签名机制是什么的相关答案。如有其他问题,请咨询微导流!