乔治于2021年08月19日 应用商店 私钥 公钥 非对称加密 证书 数字签名

众所周知,苹果的应用商店是苹果自己的独家的,而且也不允许第三方应用商店的存在。所以开发者想要让苹果手机用户能用自己的应用,就必须要遵守苹果的规则。现在我们从苹果的角度看一下,苹果要如何做到这个呢?核心就是数字签名,而数字签名的基础就是非对称加密

非对称加密

非对称加密(RSA)数学原理以及证明的过程主要是欧拉函数和中国剩余定理,其安全性以及证明暂时略去。

RSA工作起来就是生成一对公钥和私钥,这一对密钥有个重要的特性是公钥加密的数据只能用配对的私钥解密;反过来,私钥加密的数据也只能用配对的公钥解密。这样就可以放心的把公钥公开,然后私钥自己安全的保存起来。

大部分的加密过程是使用公钥加密数据,然后使用私钥解密数据。这样就允许了不共享密钥的情况下,让许多人可以安全的发送数据。

数字签名

数字签名其实也是RSA,只不过是用私钥加密数据。因为私钥是安全保存,不对外公开的,如果私钥对应的公钥能够解密这个密文,我们就知道这个数据一定是私钥的拥有者发出来的。这也是数字签名的本意,证明数据的归属。

苹果应用商店的规则

苹果要求应用开发者必须先注册成功苹果的开发者,然后开发者所开发的APP必须经过苹果的审核才能安装到苹果设备上。也就是:

  1. 认证过的开发者才能发App

  2. App必须经过苹果的审核

但是APP开发都有一个开发测试的过程,这期间APP会频繁的变化,都要审核吗?不需要。苹果的解决方案是可以不经过苹果审核,但是限制APP只能安装到一定数量的已知设备(Device)上用来测试。

这样整个流程就涉及开发者、苹果、设备以及APP。

这两个过程都需要用到数字签名。苹果和开发者各自都有自己的公钥和私钥对,苹果在这个过程中还充当了CA的角色。

开发者

首先开发者需要有一对公钥和私钥。然后把公钥交给苹果签发一个证书。这就是苹果认证过的开发者凭证了。 这个证书是可以用到签名APP签名的过程。

苹果

苹果也有自己的公钥和私钥对。苹果审核过的APP可以通过苹果的私钥进行签名,安装过程中使用设备上已经预置的公钥进行验证。通过就能肯定这是苹果签发的APP的。

这样就控制了App的生命周期。