3.2.1. アプリケーション要件の強制
3.2.1. アプリケーション要件の強制
本文書で指定する検証要件は, すべてのユースケースに一般に適用可能な制限のベースライン集合として意図されている. HTTP メッセージ署名を用いるアプリケーションは, ユースケースに応じて本文書を超える要件を課してもよい (MAY).
アプリケーションが定義し得る追加要件の非規範的な例:
-
特定のヘッダフィールド集合の署名を必須とする (例: Authorization, Content-Digest).
-
created タイムスタンプからの最大署名経過時間を強制する.
-
expires タイムスタンプの有効期限を過ぎた署名を拒否する. 有効期限は署名者からのヒントであり, 検証者は有効期限前であっても署名を拒否し得ることに注意すること.
-
alg パラメータによる実行時アルゴリズム通知など, 特定の署名メタデータパラメータの使用を禁止する (アルゴリズムが鍵情報から決まる場合).
-
keyid パラメータの逆参照が有効かつ適切な鍵素材に成功することを保証する.
-
特定アルゴリズムの使用を禁止する, または特定アルゴリズムの使用を必須とする.
-
鍵が一定のサイズであることを必須とする (例: 2048 ビット対 1024 ビット).
-
nonce パラメータの一意性を強制する.
-
tag パラメータにアプリケーション固有の値を必須とする.
アプリケーション固有の要件は想定され, 奨励される. アプリケーションが追加要件を定義する場合, 署名検証過程でそれらを強制しなければならず (MUST), 署名がアプリケーションの要件に適合しない場合は署名検証は失敗しなければならない (MUST).
アプリケーションは本文書で定義される要件を強制しなければならない (MUST). ユースケースに関わらず, アプリケーションはこれらの要件に適合しない署名を受け入れてはならない (MUST NOT).