4. Cryptographic Algorithms for Key Management (鍵管理の暗号アルゴリズム)
JWE は、Content Encryption Key (CEK) (コンテンツ暗号化鍵) を暗号化または決定するために暗号アルゴリズムを使用します。
4.1 "alg" Header Parameter Values for JWE (JWE の "alg" パラメータ値)
JWE がサポートする鍵管理アルゴリズム(概要):
| アルゴリズム ID | 鍵管理アルゴリズム | 追加ヘッダーパラメータ | 実装要件 |
|---|---|---|---|
| RSA1_5 | RSAES-PKCS1-v1_5 | - | Recommended- (推奨-) |
| RSA-OAEP | RSAES OAEP (デフォルトパラメータ) | - | Recommended+ (推奨+) |
| RSA-OAEP-256 | RSAES OAEP (SHA-256) | - | Optional (任意) |
| A128KW / A192KW / A256KW | AES Key Wrap (AES 鍵ラッピング) | - | Recommended (推奨) |
| dir | Direct use of shared symmetric key (共有対称鍵の直接使用) | - | Recommended (推奨) |
| ECDH-ES | ECDH key agreement (ECDH 鍵合意) | epk, apu, apv | Recommended+ (推奨+) |
| ECDH-ES+A128KW/A192KW/A256KW | ECDH + AES Key Wrap | epk, apu, apv | Recommended/Optional (推奨/任意) |
| A128GCMKW / A192GCMKW / A256GCMKW | AES GCM Key Wrap (AES GCM 鍵ラッピング) | iv, tag | Optional (任意) |
| PBES2-HS256/384/512+A128/192/256KW | Password-based key encryption (パスワードベースの鍵暗号化) | p2s, p2c | Optional (任意) |
注記:
- "+" は要件が将来のバージョンで強化される可能性があることを示します
- "-" は要件が将来のバージョンで弱められる可能性があることを示します
- "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 など) の使用を避けてください
- アプリケーションに適した鍵サイズを選択してください