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时,业务层不应有任何改动。

PQC接入架构五层模型与信任/密钥流 业务与可观测层 握手算法协商日志 · 密钥事件审计 · 灰度与回滚指标 策略与信任决策层 终端能力探测 · 资产分级 · 纯经典/混合/纯PQC裁决 协议接入层 TLS 1.3 · IPsec/IKEv2 · SSH · 混合密钥交换与混合认证 密钥与证书层 密钥生成/封装/存储/轮换/吊销 · 混合证书链验证 密码原语层 ML-KEM · ML-DSA · SLH-DSA · ECDHE/ECDSA/RSA 能力下沉 / 算法替换 信任上浮 / 决策依据 信任模型 零信任基线 持续验证 最小权限 混合信任锚 双证书链 算法敏捷 信任不依赖 单一算法 假设 抗量子 降级保护 密钥生命周期 生成 分发/封装 使用 轮换 吊销 销毁

二、信任模型:从“链式信任”到“混合信任锚”

传统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天,混合部署时以较短周期为准。
  • 吊销与销毁:吊销需同时覆盖两条证书链;私钥销毁应触发密钥材料清零,并记录审计事件。
教学示例参数:某接入网关配置ML-KEM-768 + X25519混合密钥交换,ML-DSA-65 + ECDSA P-256双证书。实测握手字节数从纯经典的约4KB增至约9KB,首包时延增加约1个RTT。该数据为示例假设,实际值需按具体实现测量。

四、混合模式设计原则

混合模式不是“两个算法简单拼接”,需要遵循四条原则。

原则一:组合器必须安全。密钥交换的混合不能简单异或或拼接,应使用标准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接入架构的设计目标可以概括为:分层解耦、混合兜底、生命周期可控、降级可审计。这四点决定了架构能否在量子威胁真正到来之前平稳演进,而不是在最后一刻被迫整体替换。