美文网首页
iOS应用签名原理

iOS应用签名原理

作者: 十年开发初学者 | 来源:发表于2021-04-15 15:15 被阅读0次

思考:苹果是如何保证iPhone上运行的App都是经过官方允许的呢?

回答:最简单的方式就是通过官方生成的非对称加密的一对公私钥。在iOS系统中内置一个公钥,私钥有苹果后台保存,我门传App到AppStore时,苹果后台用私钥对App数据进行签名,iOS系统下载App后,用公钥验证这个签名。如果签名正确,这个App肯定是由苹果后台认证的,并且没有修改过。

但是如果苹果只有这一个入口的话,这个解决方案时可以的,但是我们实际中,还有开发者的debug模式,企业级证书的App,这样做显然是不可以的

那么我们来分析一下,它有些什么需求:

1.安装包不需要上传到App Store,可以直接安装到手机上.

2.苹果为了保证系统的安全性,又必须对安装的APP有绝对的控制权

3.经过苹果允许才可以安装

4.不能被滥用导致非开发APP也能被安装

为了实现这些需求,iOS签名的复杂度也就开始增加了,苹果这里给出的方案是双层签名.

步骤:
1.在Mac系统中生成非对称加密算法的一对公钥\私钥(你的Xcode帮你代办了).这里称为公钥M 私钥M . M = Mac

2.苹果自己有固定的一对公私钥,跟之前App Store原理一样,私钥在苹果后台,公钥在每个iOS系统中.这里称为公钥A , 私钥A. A=Apple

3.把公钥M 以及一些你开发者的信息,传到苹果后台(这个就是CSR文件),用苹果后台里的私钥 A 去签名公钥M。得到一份数据包含了公钥M 以及其签名,把这份数据称为证书。

4.在开发时,编译完一个 APP 后,用本地的私钥 M(今后你导出的P12) 对这个 APP 进行签名,同时把第三步得到的证书一起打包进 APP 里,安装到手机上。

5.在安装时,iOS 系统取得证书,通过系统内置的公钥 A,去验证证书的数字签名是否正确。

6.验证证书后确保了钥 M 是苹果认证过的,再用公钥 M 去验证 APP 的签名,这里就间接验证了这个 APP 安装行为是否经过苹果官方允许。(这里只验证安装行为,不验证APP 是否被改动,因为开发阶段 APP 内容总是不断变化的,苹果不需要管。)

WX20210415-111707.png

相关文章

  • IOS 逆向开发(四)App重签名

    1. 应用签名 应用签名原理回顾 上一篇博客“IOS 逆向开发(三)应用签名”中详细讲解了IOS 应用签名,证书的...

  • iOS签名机制

    应用签名的原理iOS APP签名机制详解iOS逆向之旅(基础篇) — App的签名机制【Xcode是如何将App安...

  • iOS应用签名原理

    前言 iOS真机调试、App打包等过程涉及到各种证书,CertificateSigningRequest、p12、...

  • iOS 应用签名原理

    本文将讲解苹果的应用签名原理,旨在理解了应用签名后可以对非自己的应用进行重签名。 下面将从三个方面去讲解应用的签名...

  • iOS应用签名原理

    一、代码签名 代码签名是对可执行文件或脚本进行数字签名,用来确认软件在签名后未被修改或损坏的措施。和 数字签名原理...

  • iOS 应用签名原理

    一. 代码签名 代码签名是对可执行文件或脚本进行数字签名.用来确认软件在签名后未被修改或损坏的措施。和数字签名原理...

  • iOS 应用签名原理

    欢迎访问我的博客原文 不少果粉对 Apple 钟情,与它的纯净、安全有很大关系,我们发现在苹果的设备上下载应用时,...

  • iOS应用签名原理

    1. 应用签名原理 以前操作系统上是不需要签名的,软件下载下来就能用,盗版横行。苹果希望解决这样的问题,保证每一个...

  • iOS应用签名原理

    代码签名是对可执行文件或脚本进行数字签名.用来确认软件在签名后未被修改或损坏的措施。和数字签名原理一样,只不过签名...

  • iOS应用签名原理

    什么是数字签名 数字签名介绍[http://www.ruanyifeng.com/blog/2011/08/wha...

网友评论

      本文标题:iOS应用签名原理

      本文链接:https://www.haomeiwen.com/subject/gywdlltx.html