不对称加密中的公钥是公开的,谁都可以得到,这样也就存在了不安全性。比如主动攻击者 C 冒充数据发送者 A,将自己伪装后的公钥分发给数据接收者 B,从而达到监听 A、B 之间通信的目的,又或者是对 A、B 之间的通信数据进行注入攻击。
那为了保证获取公钥的安全性,这里引入 CA 认证(Certificate Authority)。CA 是证明公钥合法性的权威机构(Apple 就属于 CA 认证机构),它为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。用户使用 CA 的公钥对数字证书上的签名进行验证,如果验证通过,也就认为证书内包含的公钥是有效的。
CA 认证确保了用户公钥使用过程中的安全性,iOS 打包需要向苹果开发者中心上传.certSigningRequest
文件,然后配置得到各种.cer
证书,这些流程中便包括了开发者向 Apple CA 认证中心注册公钥的过程。