跳到主要内容

6.2. HTTP Signature Algorithms Registry (HTTP 签名算法注册表)

6.2. HTTP Signature Algorithms Registry (HTTP 签名算法注册表)

本文档定义 HTTP 签名算法, IANA 已创建并维护标题为 "HTTP Signature Algorithms" 的新注册表. 此注册表的初始值在第 6.2.2 节给出. 未来分配与对现有分配的修改通过 Specification Required 注册策略 [RFC8126] 进行.

此注册表中列出的算法标识应用可与本规范一起使用的某些可能密码学算法, 但条目既不表示可能算法的穷举列表, 也不表示与任何特定应用适配性. 应用可以自由实现适合其需求的任意算法, 前提是签名者与验证者能够以安全且确定性的方式就该算法的参数达成一致. 当应用需要在运行时使用 alg 签名参数表明使用特定算法时, 此注册表提供该参数值与特定算法之间的映射. 然而, 使用 alg 参数需谨慎以避免各种算法混淆与替换攻击, 见第 7 节.

Status 值应反映标准化状态以及 IETF 或安全相关标准开发组织 (SDO) 等相关利益群体的广泛意见. 当首次注册算法时, 指定专家 (DE) 若共识认为算法一般推荐为安全应将 Status 设为 "Active", 若算法尚未达到该共识 (例如实验性算法) 应设为 "Provisional". "Provisional" 不表示算法已知不安全, 而是表示尚未就其属性达成共识. 若将来发现已注册算法存在缺陷, 可更新注册表条目并将算法标为 "Deprecated" 以表明已发现问题. 此状态不阻止应用使用特定算法, 而是对应用就算法可能已知问题提供警告. DE 可进一步确保注册包含 Status 值的解释与参考, 对已弃用算法尤其重要.

DE 预期执行下列工作:

  • 确保注册算法标识符所引用的算法已完全定义且所有参数 (如盐, 哈希, 所需密钥长度) 由定义文本固定.

  • 确保算法定义完全指定 HTTP_SIGN 与 HTTP_VERIFY 原语函数, 包括所有定义输入输出如何映射到底层密码学算法.

  • 拒绝作为现有注册别名的任何注册.

  • 确保所有注册遵循第 6.2.1 节呈现的模板, 包括确保名称长度不过度但仍唯一可识别.

本规范通过在标识符 String 中包含主要参数创建算法标识符, 以使算法名称对开发者唯一可识别. 然而, 此注册表中的算法标识符应解释为完整 String 值而非各部分组合. 即实现者将 rsa-pss-sha512 理解为具有定义文本中为该标识符设定的哈希, 掩码与盐值的特定算法. 实现者不从标识符 String 解析 rsa, pss, sha512 部分来确定签名算法参数, 且一种参数组合的注册不暗示其他组合的注册.