4. PQC接入架构总体设计
PQC接入架构的总体设计,核心不是“把RSA换成ML-KEM”这么简单,而是要在端到端链路上重新回答四个问题:分层边界在哪里、信任从哪里来、密钥从生成到销毁如何被管住、经典算法与PQC算法如何共存而不互相拖累。本节围绕这四个问题给出可落地的设计框架。
一、端到端架构分层
建议将PQC接入架构划分为五层,自下而上依次为:密码原语层、密钥与证书层、协议接入层、策略与信任决策层、业务与可观测层。分层的意义在于把“算法替换”与“业务改造”解耦——算法升级不应迫使业务系统重写。
- 密码原语层:提供ML-KEM(FIPS 203,密钥封装)、ML-DSA(FIPS 204,数字签名)、SLH-DSA(FIPS 205,无状态哈希签名)以及经典ECDHE/ECDSA/RSA。该层只暴露统一API,不暴露算法细节。
- 密钥与证书层:负责密钥生成、封装、存储、轮换、吊销,以及混合证书/双证书的签发与链验证。
- 协议接入层:在TLS 1.3、IPsec/IKEv2、SSH等协议中承载混合密钥交换与混合认证,是PQC能力真正“上线”的位置。
- 策略与信任决策层:决定某次接入使用纯经典、混合还是纯PQC,依据终端能力、资产等级、合规要求动态裁决。
- 业务与可观测层:记录握手算法协商结果、密钥生命周期事件、失败原因,为灰度与回滚提供依据。
分层的关键约束是:下层可替换,上层不感知。当ML-KEM参数集从768升级到1024时,业务层不应有任何改动。
二、信任模型:从“链式信任”到“混合信任锚”
传统PKI的信任是链式的:根CA→中间CA→终端证书,信任锚是单一根证书。PQC接入架构中,信任模型需要做三点调整。
第一,信任锚必须支持混合。过渡期最稳妥的做法是“双证书链”:终端同时持有经典证书(ECDSA)和PQC证书(ML-DSA),验证方要求两条链都通过才建立信任。这样即使ML-DSA未来被证明存在缺陷,经典链仍能兜底;反之经典算法被量子攻破时,PQC链提供保护。
第二,信任决策从“一次性”变为“持续”。零信任强调持续验证。在PQC场景下,这意味着每次会话都要重新评估:终端是否支持PQC、当前策略是否允许降级、证书链是否仍有效。建议在策略层维护一张“能力-策略矩阵”,例如:
| 终端能力 | 资产等级 | 裁决结果 | 降级保护 |
|---|---|---|---|
| 支持ML-KEM+ML-DSA | 高 | 纯PQC或混合 | 禁止降级到纯经典 |
| 仅支持ML-KEM | 高 | 混合密钥交换+经典签名 | 记录告警 |
| 不支持PQC | 低 | 纯经典 | 限制访问范围 |
| 不支持PQC | 高 | 拒绝接入 | — |
第三,信任不依赖单一算法假设。这是混合模式的设计哲学:安全性取“与”关系,可用性取“或”关系。即:混合密钥交换中,只要经典或PQC任一方未被攻破,会话密钥就安全;而握手只要任一方成功,连接就能建立。
三、密钥生命周期管理
PQC密钥与经典密钥在生命周期上有两个显著差异:密钥和密文体积更大(ML-KEM-768公钥约1184字节,密文约1088字节),部分算法对随机数质量更敏感。因此生命周期各阶段需要针对性设计。
- 生成:使用经认证的DRBG,ML-KEM密钥对生成需保证种子熵≥256位。建议在HSM或TEE内完成,避免私钥出边界。
- 分发与封装:ML-KEM公钥通过证书或带外方式分发;封装产生的密文随握手消息传输。注意TLS 1.3中ClientHello可能因携带大公钥而超过单个TCP段,需评估分片与重传影响。
- 使用:会话密钥由混合共享秘密经HKDF派生。建议派生时把“算法标识”作为info参数的一部分,防止算法混淆攻击。
- 轮换:PQC密钥建议轮换周期短于经典密钥。示例:经典ECDSA证书有效期1年,ML-DSA证书建议90天,混合部署时以较短周期为准。
- 吊销与销毁:吊销需同时覆盖两条证书链;私钥销毁应触发密钥材料清零,并记录审计事件。
四、混合模式设计原则
混合模式不是“两个算法简单拼接”,需要遵循四条原则。
原则一:组合器必须安全。密钥交换的混合不能简单异或或拼接,应使用标准KDF(如HKDF)将两个共享秘密与握手上下文一起派生。推荐参考IETF draft-ietf-tls-hybrid-design的做法:shared_secret = HKDF-Extract(0, ecdhe_secret || mlkem_secret),并绑定ClientHello/ServerHello随机数。
原则二:认证与密钥交换解耦。可以“混合密钥交换+经典签名”,也可以“经典密钥交换+混合签名”,两者独立选择。工程上通常先上混合密钥交换,因为签名证书链改造涉及CA体系,周期更长。
原则三:降级必须显式且可审计。当对端不支持PQC时,允许降级到纯经典,但必须记录事件、标记会话、并按策略限制权限。禁止“静默降级”。
原则四:算法敏捷内建。协议层应支持通过扩展字段协商算法套件,而不是硬编码。这样未来ML-KEM参数升级或新算法引入时,无需改动协议框架。
# 混合密钥交换派生示例(伪代码)
ecdh_ss = ECDHE(x25519_priv, peer_pub) # 32字节
mlkem_ss = MLKEM.Decaps(mlkem_priv, ciphertext) # 32字节
ikm = ecdh_ss || mlkem_ss
salt = client_random || server_random
prk = HKDF-Extract(salt, ikm)
session_key = HKDF-Expand(prk, "hybrid tls13 key", 32)
# 算法标识绑定,防止混淆
assert suite_id == "X25519MLKEM768"
总体而言,PQC接入架构的设计目标可以概括为:分层解耦、混合兜底、生命周期可控、降级可审计。这四点决定了架构能否在量子威胁真正到来之前平稳演进,而不是在最后一刻被迫整体替换。