跳到主要内容

5. Security Considerations

本节讨论 unsigned certificates 对密钥复用, 签名验证绕过和完整性检查的安全影响.

RFC 文本

5.  安全考虑

最佳实践是将每个 cryptographic key 限制为单一用途. 如果一个 key 在多个
上下文中复用, 当两种用途发生冲突时, 应用程序会面临 cross-protocol
attacks 风险. 然而, 在使用 self-signed end entity certificates 的应用
程序中, subject 的 key 必然以两种方式使用: X.509 self-signature 和
end entity protocol. Unsigned certificates 通过移除 X.509 self-signature
来修复这种 key reuse.

如果应用程序在认证路径中接受 id-alg-unsigned, 或在任何其他必须验证
X.509 signature 的上下文中接受 id-alg-unsigned, 则签名检查会被绕过.
因此, 第 4 节禁止这种行为, 并建议应用程序将 id-alg-unsigned 视为与
任何其他先前无法识别的 signature algorithm 相同. 不合规的应用程序会
面临与 [JWT] 和 [JOSE] 第 1.1 节所述问题类似的漏洞风险.

self-signed certificate 中的 signature 是自派生的, 因而在传递信任方面
用途有限. 不过, 有些应用程序可能会将其用作 integrity check, 以防止
意外的存储损坏. unsigned certificate 不提供任何 integrity check.
为完整性而检查 self-signature 的应用程序应当改用其他机制, 例如
通过带外方式验证的外部 hash.