ASVS Issue #3352 — OAuth PAR/JARの適切な実装検証要件の追加提案
ASVS Issue #3352 — OAuth PAR/JARの実装検証要件追加
概要
OAuth Pushed Authorization Requests (PAR) および JWT-Secured Authorization Requests (JAR) の正しい実装を検証する要件の追加提案。
詳細
ASVS v5.0 では PAR/JAR の使用を L3 要件 (10.4.12, 10.4.15) で推奨しているが、実装の正当性を検証する要件が存在しない。
提案される検証要件:
-
request_uri と client_id のバインディング (RFC 9126準拠)
- あるクライアント用に発行された request_uri が、異なるクライアントによって提示された場合は拒否すること
-
request_uri のワンタイム使用と有効期限
- request_uri はワンタイム使用とし、有効期限は短く(通常 ≤ 90秒、最大 600秒)
-
JAR の jti クレームとリプレイ保護
- 一意の jti クレームを要求し、有効期間内の既使用 jti 値を拒否
- exp クレームは短寿命であること
セキュリティ影響
- カテゴリ: V10 OAuth and OIDC
- 重要度: High — OAuth 認可フローの認証コード注入攻撃を防止
- 関連RFC: RFC 9126 (PAR), RFC 9101 (JAR)
原文
Currently, ASVS v5.0 recommends the use of Pushed Authorization Requests (PAR) or JWT-Secured Authorization Requests (JAR) in two Level 3 requirements...
But, there are no verification requirements to ensure these are implemented correctly.