PKI
2022-10-12
PKI概述 #
-
PKI(public key infrastructure)公钥基础设施,指为了有效运用公钥而制定一系列规范和规格的总称。
-
PKI组成:
- 用户:使用证书的人。
- 认证机构:颁发证书。
- 仓储:保存证书。
-
-
证书:全称是公钥证书,包括此人的一些信息、此人的公钥,并由认证机对公钥施加的数字签名。
-
数字签名(假设Alice要发送一条消息给Bob):
- Alice用单向散列函数计算消息的散列值。
- Alice用自己的私钥对散列值进行加密。
- Alice将消息和签名发送给Bob。
- Bob用Alice的公钥对接收到的签名进行解密。
- Bob将签名解密后得到的散列值和Alice直接发送的消息的散列值进行对比。
-
-
CA(Certification Authority)认证机构,管理证书,包括如下功能:
- 生成密钥对(也可以由用户生成)
- 对个人身份进行认证
- 生成并颁发证书
- 作废证书
-
RA(Registration Authority)注册机构,生成密钥对和个人身份认证可以交给RA来做,这样CA就只用颁发证书。
-
仓库是保存证书的数据库,PKI用户需要的时候从中获取证书。仓库也叫证书目录。
认证机构的工作 #
- 在认证机构生成证书密钥对的情况下,认证机构需要将私钥发送给用户。
- 在用户自行生成密钥对的情况下,用户会请求认证机构生成证书。认证机构会用私钥进行数字签名来生成证书,证书的格式由X.509定义。
- 如果认证机构要作废证书,即使从仓库中删除证书也无法作废,因为用户会保存证书的副本,而认证机构又不能入侵用户电脑删除副本。
- 如果需要作废证书,认证机构需要制作一张证书作废清单(Certificate Revocation List),简称CRL。
- PKI用户需要从认证机构获取最新的CRL,查询证书是否已经作废。
- 假如我由Bob的证书,该证书有合法的认证机构签名,而且也在有效期内,仅凭这些不能说明该证书是有效的,还需要查询认证机构最新的CRL,来确认该证书是否有效(但很多软件并没有及时更新CRL)。
证书的层级关系 #
- 认证机构使用私钥对用户的公钥进行数字签名,并生成了证书。用户需要使用认证机构的公钥,对数字签名进行验证。用来验证数字签名的认证机构的公钥的合法性可以由其他的认证机构施加以数字签名,从而形成了一个证书链。证书链的终点是根CA。根机构一般给自己颁发证书,叫做自签名(self-signature)。
-
- 浏览器可以保存根机构的证书。