PKI 基础概念:公钥基础设施的定义、核心组件、信任模型概述

做 PKI 审计日志,你得先明白 PKI 这玩意到底是什么。我见过不少同事上来就对着日志格式死磕,结果连 CA 和 RA 的关系都没搞清楚,分析日志时总跑偏。所以这一章我们先打打地基。

到底什么是 PKI?

公钥基础设施,英文 Public Key Infrastructure,缩写 PKI。说白了,它是一套完整的体系,用来管理公钥和数字证书的生成、分发、存储、吊销。你想想看,互联网上两个人想安全通信,怎么确认对方的身份?凭密码?太容易泄露。凭指纹?不现实。PKI 就是干这个的——通过数字证书把公钥绑定到真实实体(人、设备、服务)上。

我记得最早接触 PKI 是在一个政府项目里。甲方要求所有公文传输必须用数字签名,当时我们直接用 OpenSSL 撸了一套自签 CA。嗯,后来审计的时候被怼了——因为没有完整的密钥生命周期管理流程。从那以后我就明白,PKI 不只是一把钥匙和一张证书,而是一整套 信任基础设施。

核心要点:PKI ≠ 证书。证书是 PKI 的载体,而 PKI 是管理证书背后信任关系的整套机制。

PKI 的核心组件

一个典型的 PKI 系统,至少包含下面这几个角色。我习惯把它们分成三块:签发端、存储端、使用端。

组件 英文缩写 主要职责
证书颁发机构 CA 签发、吊销数字证书;是整个信任链的根
注册机构 RA 审核申请人身份,把通过的信息发给 CA 去签证书
证书存储库 Repository 保存已签发证书和吊销列表(CRL),让客户端能查到
密钥管理系统 KMS 负责密钥生成、存储、备份、恢复、销毁

CA —— 信任的根

CA 是整个 PKI 最核心的角色。它自己有一个根证书,自己签自己。然后所有下级证书都由它直接或间接签发。在审计日志里,CA 的签名操作、证书签发记录、根密钥生成记录都是最高优先级的审计事件。

我踩过一个坑:某个客户 CA 的硬件安全模块(HSM)日志没接入审计系统。结果后来怀疑根密钥被泄露,我们从软件日志里根本看不到密钥何时被操作过。所以一定要记住:CA 的所有操作都必须有不可否认的审计踪迹。

RA —— 把审核和签发分离

RA 是一个可选的组件,但大型 PKI 里几乎必用。RA 负责跟申请人打交道,审核身份信息,然后把审核结果传给 CA。这样做的好处是:CA 可以放在最安全的隔离区,不直接暴露给外界。审计日志里,RA 产生的日志主要是注册请求、审核结果,而 CA 的日志才是真正的证书签发记录。

证书存储库

存放证书和 CRL(证书吊销列表)的地方。常见形式是 LDAP 目录或 HTTP 服务器。审计重点在于:CRL 的发布频率、是否被篡改、客户端的访问记录。

密钥管理

密钥管理是最容易被忽略的环节。很多审计失败案例都是因为密钥生命周期没有记录。比如私钥什么时候生成的?谁有访问权限?有没有备份?销毁时是否彻底?这些信息在标准审计格式里都有专门的字段。

我的建议:做 PKI 审计日志设计时,先把组件清单写清楚。RA 和 CA 是分开的记录还是合并的?密钥管理用硬件还是软件?这些细节决定你日志字段的粒度。

信任模型概述

不同的场景会选用不同的信任模型。我在一个跨国项目里同时见过层次型和桥接型混用,日志格式差点没统一,调了一个月。所以理解信任模型对日志分析非常重要——你看到的证书链长度不同、验证路径不同,记录的审计字段也会有差异。

1. 层次型(Hierarchical)

最经典的模型:一个根 CA 在最上面,下面有中间 CA,再下面是终端实体证书。所有信任都从根开始。优点:结构清晰,验证路径简单。缺点:根 CA 一旦被攻破,全完蛋。

审计日志里,层次型的证书链通常有 2–4 级。每条链的顶点是根 CA 的自签证书。

2. 网状型(Mesh / Cross-certification)

多个 CA 之间互相交叉认证。A 给 B 签一个证书,B 也给 A 签一个。这样两个信任域的人可以互信。但是路径选择变复杂了,审计日志里你需要记录路径构建的过程。

3. 桥接型(Bridge CA)

用一个桥 CA 连接多个独立的 PKI 域。桥 CA 不签发实体证书,只做交叉认证。我在一个政府统一认证平台里用过这种模型,日志要区分是桥 CA 内部的交叉证书还是各域自己的证书。

4. 分布式 / 无中心型(Web of Trust)

PGP 用的模型,没有中心 CA,每个人自己签名别人的公钥。审计日志几乎不存在,因为根本没人管。PKI 审计标准一般不考虑这种模型。

注意:即使同一个组织内部,不同业务系统可能使用不同的信任模型。你设计的日志格式必须能够标记信任模型类型,否则后续审计分析时根本不知道这条链该怎么验证。

下面我把四种模型的核心特征整理成一张表,方便你快速对比。

模型 信任链长度 验证复杂度 适用场景 审计日志关注点
层次型 固定(2–4 级) 低 企业内部 PKI 根 CA 密钥操作、中间 CA 签发
网状型 可能多路径 高 联盟组织 交叉证书签发、路径选择算法
桥接型 通过桥 CA 形成 中 跨部门、跨机构 桥 CA 的交叉证书、策略映射
分布式 无限/不固定 极高 个人/开源社区 无标准审计(不常用)

PKI 组件与信任关系全景图

说了这么多理论,我们画张图把概念串起来。下面这张图展示了最常用的层次型信任模型中,CA、RA、存储库、终端实体之间的交互关系。

PKI 核心组件与信任关系(层次型) 根 CA 中间 CA RA 证书存储库 终端实体 A 终端实体 B 注册请求 发布证书/CRL 获取对方证书 签发证书 说明: 实线箭头表示证书签发/信任传递,虚线箭头表示注册请求和证书获取。 RA 审核用户信息后通知 CA 签发证书;CA 把签名后的证书发布到存储库;终端实体从存储库获取对方证书进行验证。

在这张图里,你可以看到:根 CA 自签后信任向下传递到中间 CA;RA 负责注册但不签发;证书存储库充当“公告板”;终端实体彼此通过证书链建立信任。每一个箭头上的操作,在审计日志里都会对应一条或多条记录。

讲到这里,PKI 的基础概念应该差不多了。你可能会问:“这些跟审计日志格式有什么关系?”关系太大了——日志里每一行记录的发送方、接收方、操作类型、证书序列号、签发者信息,都是基于这些组件和信任模型来定义的。下一部分我们会深入到具体字段,但先把骨架搭好,后面才不晕。

本章小结:PKI = 公钥 + 基础设施。核心组件包括 CA(发证)、RA(审核)、存储库(存证)、密钥管理系统。信任模型决定证书链的验证路径和日志记录粒度。审计日志必须能反映组件身份、信任方向和证书生命周期状态。