打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
苹果签名的原理是什么?

苹果签名是苹果面向开发者提出的一项机制,开发者使用企业开发者账号对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加密过的哈希值)

3、在开发编译阶段,每次编译结束,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的重签名。

以上就是本期“苹果签名的机制是什么”的相关解答,如有其它问题欢迎咨询亥著

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ios苹果签名的ipa文件的应用签名原理和签名稳定性分析
未上架App Store的APP应用,可以通过苹果企业签名是什么原理
【安全圈】CryptoRom诈骗利用Apple Enterprise功能赚了140万美元
xcode7+iphone免费账号打包详解
iOS应用发布流程(一)
谨慎点击:苹果今晚WWDC大会全内容剧透
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服