10.8. Cross-JWT Confusion (跨 JWT 混淆)
10.8. Cross-JWT Confusion (跨 JWT 混淆)
如 [RFC8725] 第 2.8 节所述, 攻击者可能试图将为一目的签发的 JWT 用于非预期上下文. 针对这些攻击的缓解措施可应用于 Request Object.
攻击者可能试图将 Request Object 挪作客户端认证 JWT, 见 [RFC7523] 第 2.2 节. 简单防范是在 Request Object 中绝不将客户端 ID 用作 sub 值.
另一防范跨 JWT 混淆的方式是使用显式类型, 见 [RFC8725] 第 3.11 节. 可在 Request Object 中包含 typ 头参数, 值为 oauth-authz-req+jwt (在 第 9.4.1 节 注册). 但若在既有授权服务器上强制显式类型 Request Object, 将破坏大多数既有部署, 因既有客户端已普遍使用无类型 Request Object, 尤其是与 OpenID Connect [OpenID.Core] 一起使用时. 对于无需与既有部署兼容的新 OAuth 部署配置文件, 要求显式类型则是好主意.
再一防范方式是采用密钥管理机制, 使用于签名 Request Object 的密钥与其他用途密钥可明确区分. 若攻击者试图在其他上下文中挪用 Request Object, 将出现密钥不匹配, 从而挫败攻击.