Appendix D. Notes on Key Selection (鍵選択に関する注記)
JWSを検証するために使用される鍵を識別する方法は複数あります。相互運用性を最大化するために、アプリケーションは"kid" (key ID、鍵ID) Header Parameterを使用して、JWSの検証に使用される鍵を示すべきです (SHOULD)。あるいは、アプリケーションは"jku" (JWK Set URL) や"x5c" (X.509 certificate chain、X.509証明書チェーン) などの他のHeader Parametersを使用できます (MAY)。
鍵選択戦略
アプリケーションは、検証鍵を選択するために次の戦略のいずれかを使用できます:
-
"kid"パラメータの使用: "kid" Header Parameterが存在する場合、その値を使用して利用可能な鍵セット内の対応する鍵を検索します。
-
"jku"パラメータの使用: "jku" Header Parameterが存在する場合、指定されたURLからJWK Setを取得し、その中の鍵の1つを検証に使用します。
-
"jwk"パラメータの使用: "jwk" Header Parameterが存在する場合、埋め込まれたJWKを直接検証に使用します。
-
"x5u"または"x5c"パラメータの使用: X.509関連のHeader Parametersが存在する場合、証明書内の公開鍵を検証に使用します。
-
アプリケーション固有の方法: アプリケーションは、発行者、オーディエンス、またはその他のコンテキスト情報に基づくなど、検証鍵を決定するために他の方法を使用できます (MAY)。
セキュリティに関する考慮事項
鍵を選択する際、アプリケーションは次のことを行うべきです:
- 鍵の起源と真正性を検証する
- 鍵が予期されるアルゴリズムと互換性があることを確認する
- 鍵の有効期限と失効状態を確認する
- 適切な鍵管理ポリシーを実装する
鍵の識別の詳細については、セクション6を参照してください。