メインコンテンツまでスキップ

4. Cryptographic Algorithms for Key Management (鍵管理の暗号アルゴリズム)

JWE は、Content Encryption Key (CEK) (コンテンツ暗号化鍵) を暗号化または決定するために暗号アルゴリズムを使用します。

4.1 "alg" Header Parameter Values for JWE (JWE の "alg" パラメータ値)

JWE がサポートする鍵管理アルゴリズム(概要):

アルゴリズム ID鍵管理アルゴリズム追加ヘッダーパラメータ実装要件
RSA1_5RSAES-PKCS1-v1_5-Recommended- (推奨-)
RSA-OAEPRSAES OAEP (デフォルトパラメータ)-Recommended+ (推奨+)
RSA-OAEP-256RSAES OAEP (SHA-256)-Optional (任意)
A128KW / A192KW / A256KWAES Key Wrap (AES 鍵ラッピング)-Recommended (推奨)
dirDirect use of shared symmetric key (共有対称鍵の直接使用)-Recommended (推奨)
ECDH-ESECDH key agreement (ECDH 鍵合意)epk, apu, apvRecommended+ (推奨+)
ECDH-ES+A128KW/A192KW/A256KWECDH + AES Key Wrapepk, apu, apvRecommended/Optional (推奨/任意)
A128GCMKW / A192GCMKW / A256GCMKWAES GCM Key Wrap (AES GCM 鍵ラッピング)iv, tagOptional (任意)
PBES2-HS256/384/512+A128/192/256KWPassword-based key encryption (パスワードベースの鍵暗号化)p2s, p2cOptional (任意)

注記:

  • "+" は要件が将来のバージョンで強化される可能性があることを示します
  • "-" は要件が将来のバージョンで弱められる可能性があることを示します
  • "dir" と "ECDH-ES" を除くすべてのアルゴリズムは JWE Encrypted Key (JWE 暗号化鍵) を生成します

4.2-4.8 アルゴリズムの詳細説明

4.2 RSA 鍵暗号化 (RSAES-PKCS1-v1_5)

  • アルゴリズム ID: RSA1_5
  • 最小鍵サイズ: 2048 ビット

4.3 RSA-OAEP 鍵暗号化

  • RSA-OAEP: SHA-1 と MGF1 を使用
  • RSA-OAEP-256: SHA-256 と MGF1 を使用
  • 最小鍵サイズ: 2048 ビット

4.4 AES Key Wrap (AES 鍵ラッピング)

  • A128KW: 128 ビット鍵
  • A192KW: 192 ビット鍵
  • A256KW: 256 ビット鍵
  • RFC 3394 で定義された AES Key Wrap アルゴリズムを使用

4.5 直接暗号化 (dir)

  • 事前共有された対称鍵を CEK として直接使用します
  • JWE Encrypted Key (JWE 暗号化鍵) を生成しません

4.6 ECDH-ES 鍵合意

  • Elliptic Curve Diffie-Hellman Ephemeral Static (楕円曲線 Diffie-Hellman 一時的静的) 鍵合意を使用します
  • 追加ヘッダーパラメータ:
    • epk (Ephemeral Public Key) (一時的公開鍵): 一時的公開鍵
    • apu (Agreement PartyUInfo) (合意当事者 U 情報): 当事者 U 情報
    • apv (Agreement PartyVInfo) (合意当事者 V 情報): 当事者 V 情報
  • 鍵導出に Concat KDF を使用します

4.7 AES GCM 鍵暗号化

  • 鍵ラッピングに AES GCM アルゴリズムを使用します
  • 追加ヘッダーパラメータ:
    • iv (Initialization Vector) (初期化ベクトル): 初期化ベクトル
    • tag (Authentication Tag) (認証タグ): 認証タグ

4.8 PBES2 パスワードベースの鍵暗号化

  • PBES2 (Password-Based Encryption Scheme 2) (パスワードベース暗号化方式 2) を使用します
  • HMAC-SHA2 と AES Key Wrap を組み合わせます
  • 追加ヘッダーパラメータ:
    • p2s (PBES2 Salt Input) (PBES2 ソルト入力): ソルト入力
    • p2c (PBES2 Count) (PBES2 カウント): 反復回数

実装の推奨事項:

  • ECDH-ES と RSA-OAEP の使用を優先してください
  • 既知の弱点があるアルゴリズム (RSA1_5 など) の使用を避けてください
  • アプリケーションに適した鍵サイズを選択してください