4. 后量子密钥的存储安全

后量子密码(PQC)解决了“密钥交换与签名算法能否抵抗量子攻击”的问题,但密钥本身仍要落地存放。如果一把 ML-KEM 私钥以明文形式躺在磁盘上,攻击者根本不需要量子计算机——直接读文件即可。因此本节的核心问题是:PQC 密钥生成之后,存放在哪里、由谁保护、以什么形式加密、边界在哪里。我们围绕硬件安全模块(HSM)与可信平台模块(TPM)两条主线展开,并给出可落地的密钥封装与加密存储方案。

一、HSM 与 TPM 的定位差异

两者都提供“密钥不出硬件”的保护,但设计目标不同。HSM 是独立的密码设备(PCIe 卡、网络设备或云服务),具备高吞吐、多租户、密钥备份与集群能力,通常通过 PKCS#11、KMIP 或厂商 API 访问,适合保护 CA 根密钥、签名密钥、批量密钥封装等场景。TPM 是焊接在主板上的低成本安全芯片,遵循 TCG 规范,核心能力是平台度量(PCR)、密封存储(Seal/Unseal)和受限的密钥操作,适合保护设备本地密钥、磁盘加密密钥、启动链相关秘密。

关键区别在于:HSM 通常允许在内部生成并长期持有通用密钥,支持对称与非对称运算的完整集合;TPM 的密钥槽有限、运算能力弱,且密钥往往与平台状态绑定。因此 PQC 迁移中,HSM 承担“密钥生产与密码服务”,TPM 承担“平台信任根与本地密钥解封”。

二、PQC 算法支持现状

截至当前工程实践,支持情况可概括为三层:

  • 算法层:ML-KEM(FIPS 203)、ML-DSA(FIPS 204)、SLH-DSA(FIPS 205)已标准化,主流密码库(OpenSSL 3.5+、BoringSSL、liboqs)已提供实现。
  • HSM 层:部分厂商通过固件升级支持 ML-KEM/ML-DSA 的密钥生成与运算,但普遍存在密钥长度、API 结构、性能上的适配问题;不少设备仍只支持“导入导出”而非“内部生成”。
  • TPM 层:TCG 已发布 PQC 相关规范草案,但商用 TPM 2.0 芯片对 ML-KEM/ML-DSA 的原生支持仍不普及,多数设备只能通过“TPM 保护对称密钥 + 软件实现 PQC”的混合方式落地。
迁移时务必确认 HSM 固件版本与 PKCS#11 机制标识是否真正支持目标算法,而不是仅支持密钥导入。若私钥必须导入,则“密钥不出硬件”的保护承诺已被削弱。

三、密钥封装与加密存储方案

在硬件原生支持不完整时,工程上常用“信封加密 + 硬件根密钥”的组合。其思路是:PQC 私钥不直接交给 HSM/TPM 长期保存,而是用一把由硬件保护的对称密钥(KEK)加密后落盘;使用时在硬件内部解封 KEK,再在受控内存中解密私钥。下图展示了这一数据流与信任边界。

PQC 私钥的信封加密存储与硬件解封流程 硬件信任边界(HSM / TPM 内部) 主机侧(受操作系统与访问控制保护) 硬件根密钥 KEK 由 HSM/TPM 生成,永不出芯片 解封 / 解密引擎 AES-256-GCM 解封 KEK PQC 私钥(受控内存) ML-KEM / ML-DSA 私钥,用后清零 加密后的 PQC 私钥文件 密文 + IV + 认证标签 密钥封装数据 ML-KEM 封装密文 + 元数据 应用 / 密码服务 请求解封、执行签名或解封装 读取密文 提交封装数据 返回运算结果 虚线为信任边界:私钥明文与 KEK 均不跨越边界

具体实现可参考以下步骤(示例参数,非实测结果):

  1. 生成 KEK:在 HSM 内生成 AES-256 密钥,标记为不可导出;若用 TPM,则创建一个受 PCR 策略约束的对称密钥对象。
  2. 生成 PQC 密钥对:在主机侧用 OpenSSL 生成 ML-KEM-768 密钥对,私钥仅存在于内存。
  3. 封装私钥:用 KEK 以 AES-256-GCM 加密私钥,随机 96 位 IV,得到密文与 128 位认证标签,写入磁盘。
  4. 解封使用:应用请求签名时,将密文送入 HSM 解封,私钥在受控内存中完成运算后立即清零。
  5. 密钥轮换:KEK 按周期轮换,旧 KEK 解密后由新 KEK 重新加密,密文文件同步更新。

四、方案选择与判断依据

若业务要求高吞吐、多租户、集中审计,优先选择支持 PQC 的 HSM,并确认其固件与 API 真正支持目标算法;若场景是终端设备、边缘节点或启动链保护,TPM 更合适,但需接受“TPM 保护对称密钥、PQC 由软件实现”的混合模式。无论哪种,都应遵循三条底线:私钥明文不落盘、KEK 不出硬件、解封操作有审计日志。迁移初期可采用“双栈”策略——传统算法与 PQC 并行,逐步将密钥生命周期迁入硬件信任边界,避免一次性切换带来的兼容性风险。

评估 HSM/TPM 时,重点核对三项:是否支持目标 PQC 算法的内部密钥生成、是否支持密钥属性不可导出、是否提供解封操作的审计与访问控制。三项缺一,保护强度都会打折扣。