跳到主要内容

3.2.1. Enforcing Application Requirements (强制应用需求)

3.2.1. Enforcing Application Requirements (强制应用需求)

本文档规定的验证需求旨在作为普遍适用于所有用例的基线限制集合. 使用 HTTP 消息签名的应用可以根据其用例在本文档规定之外施加额外需求.

应用可能定义的附加需求的非规范性示例包括:

  • 要求对特定头字段集合签名 (例如 Authorization, Content-Digest).

  • created 时间戳起强制最大签名存活时间.

  • 拒绝超过 expires 时间戳中过期时间的签名. 注意过期时间是签名者的提示, 验证者始终可以在过期时间之前拒绝签名.

  • 禁止某些签名元数据参数, 例如当算法从密钥信息确定时禁止使用 alg 参数进行运行时算法声明.

  • 确保将 keyid 参数成功解引用到有效且适当的密钥材料.

  • 禁止使用某些算法或强制使用特定算法.

  • 要求密钥具有特定大小 (例如 2048 位相对 1024 位).

  • 强制 nonce 参数唯一.

  • 要求 tag 参数取应用专用值.

预期并鼓励应用专用需求. 当应用定义附加需求时, 必须在签名验证过程中强制这些需求, 若签名不符合应用需求, 签名验证必须失败.

应用必须强制本文档定义的需求. 无论用例如何, 应用不得接受不符合这些需求的签名.