前言:对于一个iOS开发入门来说,一定会被一堆诸如:csr文件、私钥、Provisioning Profile、p12等名词搞的一头雾水。当年我也如此,但相信我,iOS的签名机制其实并不复杂,而了解这套机制对于iOS攻防的研究有很大帮助
何为签名
假设A和B进行通讯,A向B发送了一个讯息,B收到后,会有一个问题?如何证明这个信息来自于A?
了解过非对称加密算法的同学应该不难想出解决方法,利用非对称加密算法的特性:私钥加密内容,只有公钥能解密。只要保证私钥不泄露,把公钥发给需要通讯的对象。利用私钥加密数据,而收到数据的人利用公钥去解密,如果能解出正常的内容,那就证明这段讯息是来自对方。
实际上,网络上普遍使用的数字签名技术,就是基于这样的机制实现的:
图片来自于网络:
签名机制根本上要解决两个问题:
- 你正在安装的应用来自苹果授权
- 你正在安装的应用确实是你的应用
基于这两个问题,苹果搞出了一套双签名机制。首先,真对第一个问题,怎么证明应用是经过苹果授权的?这就牵扯出了第二个概念:证书
何为证书
每个iOS开发人员都会接触过发布证书,这东西到底干嘛的&