摘要

  • RFC 9640 为密码、密钥、证书、加密值和证书签名请求提供可复用的 YANG 类型与分组,但它不是完整密钥保管系统。
  • 删除节点与验证归零不是同一件事;实现版本、存储边界、复制路径、备份期限和销毁机制决定结论能走多远。
  • 可信回执必须把模型状态同会话身份、NACM 决策、生成或导入仪式、运行时使用及生命周期证据连接起来。

操作员删除了私钥节点。下一次查询返回空值,工单随即写上“密钥已销毁”。这个结论跨过了最关键的一层:管理树已经不再引用密钥,并不等于所有可恢复副本都已消失。

RFC 9640 规定,明文密钥值在删除时应当归零。这一要求十分重要,却不会自动产生执行证明。进程内存、事务日志、候选数据存储、复制节点、交换空间、崩溃转储、硬件缓存与备份各有生命周期。只有把这些边界逐一纳入,删除回执才可能升级为销毁回执。

共同语言的合理边界

RFC 9640 由 IETF NETCONF 工作组制定,于 2024 年 10 月作为标准轨 RFC 发布。ietf-crypto-types 模块定义身份、typedef 和分组,供其他 YANG 模块组合密码、对称密钥、公私钥、非对称密钥对、证书、加密值与 CSR 操作。

其中的二进制类型承载 DER 编码的 ASN.1 对象,包括 PKCS #10 请求、X.509 证书、CRL、OCSP 和 CMS 结构。统一格式减少了每个应用重复发明表示法的成本,也使结构检查成为可能。但模块本身不是完整 truststore 或 keystore;相邻职责分别由 RFC 9641 与 RFC 9642 承担。

早期通用密钥生成 RPC 因算法标识没有形成共识而被移除。协议专用模块可以补充生成动作。这意味着树中存在一个密钥,能够证明服务器接受了某种状态,却不能反推密钥从何而来、熵源是什么、谁见证了导入、是否在可信硬件中生成。

“隐藏”只界定管理接口

RFC 9640 区分明文、隐藏和加密形式。明文存储由特性开关控制,而且明确不推荐;可读秘密使用 nacm:default-deny-all。隐藏密钥不会通过管理接口返回,但服务器仍可用它执行密码学操作,密钥如何产生则不在该分组范围内。

所以,“查询不到”不能直接等于“不可导出”。本地 API、特权调试口、内存转储或备份工具可能具有不同权限。要宣称 HSM 驻留或不可提取,必须记录可信边界、对象属性、固件与策略版本、可用接口、管理员角色、证明材料以及负面测试。YANG 的缺席证明只能覆盖它观察到的接口。

加密形式也没有消除保管问题。RFC 9640 使用 CMS EncryptedData 或 EnvelopedData,并要求对称加密采用 AEAD 或带随机 IV 的 CBC,禁止 ECB。通用的 encrypted-by 容器需要消费模块补上包装密钥引用。密文格式正确,不证明包装密钥仍可用、受到适当保护、完成轮换或有权解密。

默认拒绝不是历史事实

密码和密钥写操作受到 default-deny-write 约束,明文秘密读取受到更严格的默认拒绝。即使证书可能公开,其身份和通信元数据仍可能敏感;改变公钥或证书也足以改写信任路径。

这些注解建立安全起点,却没有记下某次操作。审计必须包括 NETCONF 或 RESTCONF 的安全会话身份、通道绑定、实际装载的 NACM 规则版本、命中的规则、请求路径与动作、变更前后数据存储、提交结果以及业务批准。传输认证、模型授权和组织授权不可互相替代。

数学匹配只回答一个问题

当客户端同时提供公钥与私钥时,服务器必须确认二者匹配;密钥对附带证书时,还必须确认其中公钥一致。这个检查能够阻止拼错对象,却不能证明私钥生成合规、证书签发正当、证书当前有效,或后续操作确实用了这把钥匙。

通用分组也不限制用途。签名、解密、验证或加密权限需要由具体协议模型与本地政策定义。结构一致的密钥对仍可能拥有过宽能力。

CSR 操作同理。generate-csr 使用 default-deny-all,RFC 还建议通道绑定,让应用请求者与安全传输所认证的设备一致。返回一个合法 CSR,只能证明请求对象产生了。CA 是否接受、证书是否安装、首次使用是否成功,都要继续追踪。

把删除写成可验证过程

真正的退役记录从密钥版本和指纹开始,列出运行数据存储、候选区、缓存、复制节点、备份与灾备介质。它记录删除事务、内存归零或硬件销毁机制、离线副本回归后的处理、备份自然失效日期以及验证方法。

如果某一层无法提供法证级证明,应当缩小声明,例如“管理树已删除,备份将于某日到期”,而不是继续使用“已彻底销毁”。精确的不确定性比宽泛的绿色状态更有用。

完整保管回执还需向前延伸:模块修订与特性、会话身份、NACM、批准、数据存储提交、生成或导入来源、可信边界、提取属性、允许操作、包装依赖、实际使用、轮换与撤销。模型负责描述,协议负责传输,访问控制负责筛选,密码引擎负责执行,审计负责把不同现实层连接起来。

来源