在非对称加密中,公钥则可以通过证书机制来进行保护,如何管理和分发证书则可以通过 PKI(Public Key Infrastructure)来保障。
顾名思义,PKI 体系在现代密码学应用领域处于十分基础的地位,解决了十分核心的证书管理问题。
PKI 并不代表某个特定的密码学技术和流程,PKI 是建立在公私钥基础上实现安全可靠传递消息和身份确认的一个通用框架。实现了 PKI 的平台可以安全可靠地管理网络中用户的密钥和证书,包括多个实现和变种,知名的有 RSA 公司的 PKCS(Public Key Cryptography Standards)标准和 X.509 规范等。
一般情况下,PKI 至少包括如下组件:
- CA(Certification Authority):负责证书的颁发和作废,接收来自 RA 的请求,是最核心的部分;
- RA(Registration Authority):对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给 CA;
- 证书数据库:存放证书,一般采用 LDAP 目录服务,标准格式采用 X.500 系列。
CA 是最核心的组件,主要完成对证书的管理。
常见的流程为,用户通过 RA 登记申请证书,CA 完成证书的制造,颁发给用户。用户需要撤销证书则向 CA 发出申请。
之前章节内容介绍过,密钥有两种类型:用于签名和用于加解密,对应称为 签名密钥对
和 加密密钥对
。
用户证书可以有两种方式。一般可以由 CA 来生成证书和私钥;也可以自己生成公钥和私钥,然后由 CA 来对公钥进行签发。后者情况下,当用户私钥丢失后,CA 无法完成恢复。