摘要

  • RFC 9958 建议开发者寻找硬编码的算法使用点,并让运维、政策和合规角色记录应用暴露的密码配置。
  • 发现一处算法引用,既不等于该算法在生产路径上被选中,也不等于旧路径已经退出,更不等于谁已接受迁移期间的剩余风险。

“密码清单完成”很容易被听成“后量子迁移完成”。这两个句子只差几个字,承担的命题却完全不同。RFC 9958《Post-Quantum Cryptography for Engineers》要求工程团队增强密码敏捷性,并维护密码清单。它提出两个互补的观察面:应用开发者应在可能时寻找写死在代码中的算法;管理员、政策负责人和合规团队应记录应用暴露出来的密码配置,并以书面或自动化政策管理它们。

这是一种重要的可见性,不是一纸验收。清单行只能说明:在某个范围、某种发现方法和某个时间点,某人或某个工具找到了一个引用。它可能是编译依赖、默认值、证书模板、测试夹具、恢复程序、旧版兼容开关,或一次尚未部署的设计。即使它是有效配置,也仍然不能回答生产连接实际协商了什么、对端接受什么、旁路设备如何处理、何种数据曾经或仍在经过这个路径。

RFC 9958 特意反对把迁移理解为一对一的算法替换。后量子算法的密钥、密文、签名尺寸、计算特性和接口可能要求协议或应用重新设计。它还区分公钥密码用途与对称密码、散列函数所面对的不同问题。比如 KEM 的封装和解封装角色并不相同;在清单中写下 ML-KEM,并没有说明它是可达运行路径的一部分、承担哪个角色、由谁控制失败处理,或是否还有经典的恢复路径。

因此,成熟的记录不能只保留一个“已发现”状态。发现记录交代在哪里、怎样找到;功能记录说明它承担签名、密钥协商、封装、传输还是别的作用;运行记录绑定一次已观察的实际执行;互操作记录描述对端和中间环节;例外记录写明被保留的旧路径、理由、到期日和负责人;决策记录标注谁授权变更或接受风险;结果记录保存变更后的观察。清单可以为这些记录提供索引,却不能替它们作结论。

NIST 的 FIPS 203 和 FIPS 204 定义 ML-KEM 与 ML-DSA,并不证明某个组织的流量正在使用它们。RFC 7696 所说的算法敏捷性是改变算法选择的能力,不是已完成变更的证明。RFC 9958 也是 Informational 文档:它在发表时提供工程指导,不是部署普查、合规证书,更不是对可破译量子计算机何时出现的预言。它还明确表示,若其密码学建议与持续演进的 CFRG 指导冲突,后者优先。

卢恒“运行中的代码优先”的判断在这里不是反对文档,而是给文档定边界。清单让调查有了入口;真正执行的路径提供了可复核的技术证据;是否迁移、延期、回滚或接受例外,则仍须由承担后果的主体明确决定。把这三层混成一个“已准备好”的标签,反而让最需要审计的部分消失。

Sources