跳到主要内容

7.3.1. Cryptography and Signature Collision (密码学与签名碰撞)

7.3.1. Cryptography and Signature Collision (密码学与签名碰撞)​

本文档不定义自己的密码学原语, 而依赖其他规范定义此类元素. 若用于处理签名基的签名算法或密钥易受任何攻击, 所得签名也将同样易受这些攻击.

针对签名系统的常见攻击是强制签名碰撞, 即同一签名值成功对多个不同输入验证. 由于本规范依赖从 HTTP 消息与签名组成部分列表重建签名基, 攻击者难以但非不可能造成此类碰撞. 攻击者需要操纵 HTTP 消息及其被覆盖消息组成部分以使碰撞生效.

为对抗此点, 仅应使用经审查的密钥与签名算法对 HTTP 消息签名. "HTTP Signature Algorithms" 注册表是应用可用于消息的受信任签名算法来源之一.

虽然攻击者可能分别替换签名参数值或签名值, 签名基生成算法 (第 2.5 节) 始终将签名参数作为签名基的最终值以确定性序列化方法覆盖. 此步骤将签名基与签名值强烈绑定, 使攻击者对签名基进行部分替换困难得多.