4. Cryptographic Algorithms for Key Management (Kryptografische Algorithmen für die Schlüsselverwaltung)
JWE verwendet kryptografische Algorithmen, um den Content Encryption Key (CEK) (Inhaltsverschlüsselungsschlüssel) zu verschlüsseln oder zu bestimmen.
4.1 "alg" Header Parameter Values for JWE ("alg" Header-Parameterwerte für JWE)
Von JWE unterstützte Schlüsselverwaltungsalgorithmen (Zusammenfassung):
| Algorithmus-ID | Schlüsselverwaltungsalgorithmus | Zusätzliche Header-Parameter | Implementierungsanforderungen |
|---|---|---|---|
| RSA1_5 | RSAES-PKCS1-v1_5 | - | Recommended- (Empfohlen-) |
| RSA-OAEP | RSAES OAEP (Standardparameter) | - | Recommended+ (Empfohlen+) |
| RSA-OAEP-256 | RSAES OAEP (SHA-256) | - | Optional (Optional) |
| A128KW / A192KW / A256KW | AES Key Wrap (AES-Schlüsselumhüllung) | - | Recommended (Empfohlen) |
| dir | Direct use of shared symmetric key (Direkte Verwendung eines gemeinsamen symmetrischen Schlüssels) | - | Recommended (Empfohlen) |
| ECDH-ES | ECDH key agreement (ECDH-Schlüsselvereinbarung) | epk, apu, apv | Recommended+ (Empfohlen+) |
| ECDH-ES+A128KW/A192KW/A256KW | ECDH + AES Key Wrap | epk, apu, apv | Recommended/Optional (Empfohlen/Optional) |
| A128GCMKW / A192GCMKW / A256GCMKW | AES GCM Key Wrap (AES GCM-Schlüsselumhüllung) | iv, tag | Optional (Optional) |
| PBES2-HS256/384/512+A128/192/256KW | Password-based key encryption (Passwortbasierte Schlüsselverschlüsselung) | p2s, p2c | Optional (Optional) |
Hinweise:
- "+" zeigt an, dass die Anforderung in zukünftigen Versionen verschärft werden kann
- "-" zeigt an, dass die Anforderung in zukünftigen Versionen abgeschwächt werden kann
- Alle Algorithmen außer "dir" und "ECDH-ES" erzeugen einen JWE Encrypted Key (JWE verschlüsselter Schlüssel)
4.2-4.8 Detaillierte Algorithmenbeschreibungen
4.2 RSA-Schlüsselverschlüsselung (RSAES-PKCS1-v1_5)
- Algorithmus-ID: RSA1_5
- Minimale Schlüsselgröße: 2048 Bits
4.3 RSA-OAEP-Schlüsselverschlüsselung
- RSA-OAEP: Verwendet SHA-1 und MGF1
- RSA-OAEP-256: Verwendet SHA-256 und MGF1
- Minimale Schlüsselgröße: 2048 Bits
4.4 AES Key Wrap (AES-Schlüsselumhüllung)
- A128KW: 128-Bit-Schlüssel
- A192KW: 192-Bit-Schlüssel
- A256KW: 256-Bit-Schlüssel
- Verwendet den in RFC 3394 definierten AES Key Wrap-Algorithmus
4.5 Direkte Verschlüsselung (dir)
- Verwendet direkt einen vorgeteilten symmetrischen Schlüssel als CEK
- Erzeugt keinen JWE Encrypted Key (JWE verschlüsselter Schlüssel)
4.6 ECDH-ES-Schlüsselvereinbarung
- Verwendet Elliptic Curve Diffie-Hellman Ephemeral Static (Elliptische-Kurven-Diffie-Hellman ephemeral statisch) Schlüsselvereinbarung
- Zusätzliche Header-Parameter:
- epk (Ephemeral Public Key) (Ephemerer öffentlicher Schlüssel): Ephemerer öffentlicher Schlüssel
- apu (Agreement PartyUInfo) (Vereinbarungspartei-U-Informationen): Partei-U-Informationen
- apv (Agreement PartyVInfo) (Vereinbarungspartei-V-Informationen): Partei-V-Informationen
- Verwendet Concat KDF für die Schlüsselableitung
4.7 AES GCM-Schlüsselverschlüsselung
- Verwendet den AES GCM-Algorithmus für die Schlüsselumhüllung
- Zusätzliche Header-Parameter:
- iv (Initialization Vector) (Initialisierungsvektor): Initialisierungsvektor
- tag (Authentication Tag) (Authentifizierungs-Tag): Authentifizierungs-Tag
4.8 PBES2 passwortbasierte Schlüsselverschlüsselung
- Verwendet PBES2 (Password-Based Encryption Scheme 2) (Passwortbasiertes Verschlüsselungsschema 2)
- Kombiniert HMAC-SHA2 und AES Key Wrap
- Zusätzliche Header-Parameter:
- p2s (PBES2 Salt Input) (PBES2-Salzeingabe): Salzeingabe
- p2c (PBES2 Count) (PBES2-Zähler): Iterationszähler
Implementierungsempfehlungen:
- Priorisieren Sie die Verwendung von ECDH-ES und RSA-OAEP
- Vermeiden Sie Algorithmen mit bekannten Schwachstellen (wie RSA1_5)
- Wählen Sie Schlüsselgrößen, die für Ihre Anwendung geeignet sind