Day20-02|4.5.2 公钥加密体制的密钥管理:让公钥可信、私钥可控、证书可验证

本文对应《系统架构设计师教程(第2版)》第4章“信息安全技术基础知识”4.5.2“公钥加密体制的密钥管理”。公钥密码解决了密钥公开分发和数字签名问题,但公钥本身如何证明属于某个主体、私钥如何保护、证书如何更新和吊销,仍需要完整的密钥管理体系。

一、学习目标

完成本节后,应能够:

  1. 解释公钥加密体制中公钥、私钥和证书的管理要求;
  2. 说明PKI、CA、RA、证书目录和吊销服务的作用;
  3. 掌握证书申请、签发、部署、验证、更新和吊销流程;
  4. 设计私钥保护、信任链、时间戳和长期验证机制;
  5. 在案例和论文中处理多组织、跨域、云化和高并发证书管理问题。

二、公钥公开为什么仍然需要管理

公钥可以公开,私钥必须保密,但“公开的公钥”并不天然可信。攻击者可以生成自己的密钥对,并把自己的公钥伪装成某个网站、企业或用户的公钥。如果通信方没有办法确认公钥归属,就可能遭遇中间人攻击。

公钥管理要解决三个基本问题:公钥属于谁;公钥在什么时间、什么用途内有效;对应私钥是否仍由合法主体控制。数字证书把主体身份、公钥、有效期、用途和签发机构签名绑定起来,PKI则围绕证书和密钥建立申请、签发、验证、吊销和审计体系。

管理对象 主要问题 典型控制
公钥 如何确认归属和用途 证书、信任链、目录和验证
私钥 如何防泄露、滥用和丢失 密钥设备、访问控制、备份和审计
证书 如何签发、更新、撤销和保存 CA、RA、CRL、OCSP、时间戳
信任根 如何建立和维护信任起点 根CA保护、信任库、策略管理
签名证据 如何长期验证 时间戳、证书链、历史算法和归档

三、密钥对的生成与登记

公钥密码首先需要生成公钥和私钥。密钥生成应使用安全随机源、符合要求的算法参数和经过评估的密码库。高价值私钥可以在硬件安全模块或智能密码设备中生成,使私钥从未以明文离开安全边界。

生成后,主体需要登记身份、密钥用途、责任人、有效期和关联系统。服务器证书要绑定域名或服务身份,用户证书要绑定个人或法人身份,代码签名证书要绑定软件发布主体,设备证书要绑定设备编号和制造或运营主体。

登记信息必须经过可靠核验。不能仅凭一个邮箱就向企业签发高权限证书,也不能把设备序列号当作唯一可信身份而忽略设备注册和供应链验证。不同类型证书的核验强度、有效期和审批流程应与风险匹配。

四、PKI的组成

公钥基础设施(PKI)通常由证书认证机构CA、注册机构RA、证书目录、证书策略、密钥管理和证书状态服务组成。

CA负责签发、更新和吊销证书,并使用自己的签名私钥对证书进行签名;RA负责申请者身份审核和注册,可以独立于CA;证书目录提供证书查询和分发;证书策略规定身份核验、算法、用途、生命周期和责任;状态服务通过证书撤销列表(CRL)或在线证书状态协议(OCSP)帮助验证证书是否仍有效。

根CA是信任链的起点,私钥保护等级最高,通常采用离线、专用设备、分权和双人控制。中间CA可以承接不同组织、业务或环境的证书签发,降低根CA直接暴露的风险。根CA或中间CA发生泄露时,影响可能非常大,需要预先制定信任迁移和紧急吊销方案。

五、数字证书的主要内容

数字证书通常包含主体名称、公钥、序列号、签发者、有效期、密钥用途、扩展属性和CA签名。验证者通过信任根验证证书链,再检查证书是否适用于当前通信、签名或加密用途。

证书验证至少要考虑:签名是否有效;证书链是否能连接到可信根;主体名称是否匹配;当前时间是否在有效期内;密钥用途是否符合场景;证书是否被吊销;算法和参数是否满足安全要求;证书策略是否允许当前主体使用。

仅检查“证书存在且没有报错”是不够的。开发环境中常见的关闭证书校验、忽略主机名、信任所有根证书和跳过吊销检查,会让中间人攻击变得容易。特殊场景确实需要离线验证时,也要保存证书状态和验证依据。

六、证书申请与签发流程

典型流程包括:主体生成密钥对和证书签名请求;向RA或CA提交申请、身份材料和用途;RA进行身份和权限核验;CA根据策略签发证书;证书部署到服务、设备或签名工具;运行时由客户端或验证者检查证书链和状态。

申请信息要明确主体、域名或设备、密钥用途、有效期和责任人。申请者不能为了方便把同一私钥复制给多个服务,也不能使用一个证书覆盖完全不同的身份和权限。服务证书、用户证书、签名证书和加密证书可能需要不同生命周期和保护等级。

签发后要验证证书是否部署正确、私钥是否匹配、证书链是否完整、用途是否符合、过期时间是否合理,并将证书元数据登记到资产清单。证书到期前应提前提醒和自动更新,避免生产服务突然因证书过期中断。

七、私钥保护

私钥泄露比公钥泄露严重得多。服务器私钥泄露后,攻击者可能冒充服务;签名私钥泄露后,攻击者可能伪造合同、软件包或审批;用户私钥泄露后,攻击者可能冒充用户;CA私钥泄露后,攻击者可能签发伪造证书。

私钥保护措施包括硬件安全模块、密码设备、操作系统密钥库、访问控制、分权管理、双人控制、密码保护、备份加密和使用审计。签名服务可以只提供“对摘要签名”的接口,不允许应用导出私钥。私钥使用要绑定主体、用途、时间、设备和审批。

备份私钥要谨慎。私钥丢失可能造成历史数据无法解密或无法恢复签名服务,但备份副本增加泄露面。应根据密钥用途选择是否备份、备份位置、恢复审批和销毁期限。CA私钥通常需要离线备份、分片保管和严格恢复演练。

八、证书更新与密钥轮换

证书具有有效期,到期后不能继续作为有效身份凭据。更新可以保持原密钥,也可以同时生成新密钥。长期使用同一私钥会扩大泄露影响,因此更推荐根据风险和策略定期进行密钥轮换。

证书更新流程要支持平滑切换。服务端可以先部署新证书和私钥,验证连接后再切换;客户端信任库要提前更新;旧证书在过渡期内受控保留;依赖方要能够识别新旧证书。对于大量设备和微服务,证书自动化管理应支持批量签发、自动续期、分批发布、失败重试和回滚。

密钥轮换不能只替换文件。还要更新配置、容器镜像、负载均衡、网关、缓存、密钥服务、监控和审计,验证新证书链、主机名和用途。轮换失败时,系统需要安全回退到仍然有效的旧证书,但不能无限期推迟旧证书淘汰。

九、证书吊销与状态验证

当私钥泄露、主体身份变化、设备报废、服务下线、证书误签发或证书用途改变时,需要吊销证书。吊销后,依赖方必须能够获知状态,否则攻击者可能继续使用已泄露私钥。

CRL是由CA定期发布的撤销列表,适合批量获取,但列表可能较大且存在更新延迟;OCSP允许在线查询单个证书状态,时效较好,但依赖在线服务并可能泄露查询对象。高可用系统要考虑状态服务故障时的安全策略,不能简单地“查不到就一律信任”,也不能让短暂状态服务故障导致所有业务不可用。

对长期签名和离线归档,要保存签署时的证书状态、时间戳和验证证据。证书过期不等于历史签名自动无效,关键是能否证明签署时证书有效且私钥未被吊销。不同业务要根据法律、合同和合规要求设计长期验证策略。

十、信任链与跨组织信任

证书链通常从终端证书连接到中间CA,再连接到根CA。验证者需要建立可信根和策略,检查每一级证书的签名、有效期、用途、路径长度和状态。中间CA可以按组织、业务、地域和环境隔离,降低单一CA的影响范围。

跨组织通信可能涉及不同PKI和信任根。可以通过交叉认证、桥接CA、信任列表或应用层明确绑定公钥建立信任,但要评估信任扩散、证书策略冲突和撤销联动问题。供应商证书不能因为被某个外部CA签发就自动获得内部所有服务访问权限,还要经过组织、设备和业务授权。

十一、证书自动化与云原生环境

云原生系统中服务数量多、实例生命周期短、地址动态变化,手工颁发和部署证书难以维持。证书自动化平台可以按照服务身份自动申请、签发、注入、续期和撤销,并通过服务网格或密钥管理服务实现服务间双向认证。

自动化不能降低治理要求。服务身份要与工作负载、命名空间、租户和部署环境绑定;证书有效期可较短,以降低泄露影响;自动续期失败要告警并有安全回退;证书私钥不能写入镜像或日志;平台管理员和服务使用者要分权;证书签发、读取、轮换和吊销都要审计。

十二、案例分析:集团统一身份与服务证书平台

某集团有总部、子公司和云上业务,分别使用不同证书工具。近期发生服务证书过期、测试环境使用生产私钥和供应商证书权限过大的问题。

改进方案:建立统一证书目录和证书资产清单,登记主体、用途、责任人、有效期、环境和关联服务;建立根CA、中间CA和业务证书层次,根CA离线保护,子公司和云环境使用受控中间CA;服务证书和用户签名证书分开管理,生产、测试和开发使用不同信任域;服务身份与工作负载、组织和环境绑定,供应商只能获得指定系统和时间窗的证书;通过自动化平台完成申请、审批、签发、部署、续期和撤销,失败时告警和重试;私钥在密钥服务或硬件设备中保护,应用只能调用签名或解密能力;运行时验证证书链、主机名、用途和状态;通过CRL/OCSP或受控状态缓存处理吊销;证书轮换采用平滑切换和回滚;所有证书和私钥操作纳入审计,定期清理过期和闲置证书。

十三、综合知识练习

选择题1

PKI中负责签发和管理数字证书的核心机构是( )。

A. CA B. DNS服务器 C. 普通缓存 D. 文件压缩工具

答案:A。解析:CA负责证书签发、更新和吊销等核心工作。

选择题2

下列最能保护CA私钥的是( )。

A. 写入普通配置文件 B. 复制到所有应用服务器 C. 离线、专用设备、分权和双人控制 D. 放入公开代码仓库

答案:C。解析:CA私钥是信任体系根资产,需要极高等级的隔离和分权保护。

选择题3

证书吊销主要用于处理( )。

A. 私钥泄露或主体不再可信 B. 提高硬盘容量 C. 修改网页样式 D. 增加数据库索引

答案:A。解析:私钥泄露、身份变化和证书误签发等情况需要及时吊销。

简答题

为什么公钥加密体制需要数字证书?

参考答案:公钥可以公开,但公开的公钥本身不能证明属于哪个主体。数字证书由可信CA签发,将主体身份、公钥、有效期和用途绑定,并通过CA签名和证书链供验证者检查,从而降低中间人攻击风险。证书还支持密钥用途管理、状态验证、更新、吊销和审计。

十四、论文素材与今日复盘

论文可写:“在公钥密钥管理设计中,我通过PKI建立主体身份、公钥和用途的可信绑定。根CA采用离线和分权保护,中间CA按组织、业务和环境隔离,终端证书经过身份核验、审批、签发、部署、验证、续期和吊销;服务私钥由硬件安全模块或密钥服务保护,应用只能通过受控接口使用,不能导出;运行时验证证书链、主机名、用途、有效期和吊销状态;对云原生服务采用短周期证书自动化续期,并将证书、私钥和状态操作全程审计,保留时间戳和历史证据支持长期验证。”

今日复盘:公钥公开不等于公钥可信,证书和PKI解决归属与信任问题;CA私钥、服务私钥和用户私钥需要分级保护;证书管理必须覆盖申请、签发、部署、验证、更新、吊销和长期保存。第4.5.2节完成,下一篇进入 4.5.3 公钥加密分配单钥密码体制的密钥。