7.3.1. Cryptography and Signature Collision (密码学与签名碰撞)
7.3.1. Cryptography and Signature Collision (密码学与签名碰撞)
本文档不定义自己的密码学原语, 而依赖其他规范定义此类元素. 若用于处理签名基的签名算法或密钥易受任何攻击, 所得签名也将同样易受这些攻击.
针对签名系统的常见攻击是强制签名碰撞, 即同一签名值成功对多个不同输入验证. 由于本规范依赖从 HTTP 消息与签名组成部分列表重建签名基, 攻击者难以但非不可能造成此类碰撞. 攻击者需要操纵 HTTP 消息及其被覆盖消息组成部分以使碰撞生效.
为对抗此点, 仅应使用经审查的密钥与签名算法对 HTTP 消息签名. "HTTP Signature Algorithms" 注册表是应用可用于消息的受信任签名算法来源之一.
虽然攻击者可能分别替换签名参数值或签名值, 签名基生成算法 (第 2.5 节) 始终将签名参数作为签名基的最终值以确定性序列化方法覆盖. 此步骤将签名基与签名值强烈绑定, 使攻击者对签名基进行部分替换困难得多.