4. Cryptographic Algorithms for Key Management (Algoritmi crittografici per la gestione delle chiavi)
JWE utilizza algoritmi crittografici per cifrare o determinare la Content Encryption Key (CEK) (Chiave di cifratura del contenuto).
4.1 "alg" Header Parameter Values for JWE (Valori del parametro di intestazione "alg" per JWE)
Algoritmi di gestione delle chiavi supportati da JWE (riepilogo):
| ID algoritmo | Algoritmo di gestione delle chiavi | Parametri di intestazione aggiuntivi | Requisiti di implementazione |
|---|---|---|---|
| RSA1_5 | RSAES-PKCS1-v1_5 | - | Recommended- (Raccomandato-) |
| RSA-OAEP | RSAES OAEP (parametri predefiniti) | - | Recommended+ (Raccomandato+) |
| RSA-OAEP-256 | RSAES OAEP (SHA-256) | - | Optional (Opzionale) |
| A128KW / A192KW / A256KW | AES Key Wrap (Avvolgimento chiave AES) | - | Recommended (Raccomandato) |
| dir | Direct use of shared symmetric key (Uso diretto di chiave simmetrica condivisa) | - | Recommended (Raccomandato) |
| ECDH-ES | ECDH key agreement (Accordo di chiave ECDH) | epk, apu, apv | Recommended+ (Raccomandato+) |
| ECDH-ES+A128KW/A192KW/A256KW | ECDH + AES Key Wrap | epk, apu, apv | Recommended/Optional (Raccomandato/Opzionale) |
| A128GCMKW / A192GCMKW / A256GCMKW | AES GCM Key Wrap (Avvolgimento chiave AES GCM) | iv, tag | Optional (Opzionale) |
| PBES2-HS256/384/512+A128/192/256KW | Password-based key encryption (Cifratura chiave basata su password) | p2s, p2c | Optional (Opzionale) |
Note:
- "+" indica che il requisito può essere rafforzato nelle versioni future
- "-" indica che il requisito può essere indebolito nelle versioni future
- Tutti gli algoritmi tranne "dir" e "ECDH-ES" generano una JWE Encrypted Key (Chiave cifrata JWE)
4.2-4.8 Descrizioni dettagliate degli algoritmi
4.2 Cifratura della chiave RSA (RSAES-PKCS1-v1_5)
- ID algoritmo: RSA1_5
- Dimensione minima della chiave: 2048 bit
4.3 Cifratura della chiave RSA-OAEP
- RSA-OAEP: Utilizza SHA-1 e MGF1
- RSA-OAEP-256: Utilizza SHA-256 e MGF1
- Dimensione minima della chiave: 2048 bit
4.4 AES Key Wrap (Avvolgimento chiave AES)
- A128KW: Chiave a 128 bit
- A192KW: Chiave a 192 bit
- A256KW: Chiave a 256 bit
- Utilizza l'algoritmo AES Key Wrap definito nella RFC 3394
4.5 Cifratura diretta (dir)
- Utilizza direttamente una chiave simmetrica pre-condivisa come CEK
- Non produce una JWE Encrypted Key (Chiave cifrata JWE)
4.6 Accordo di chiave ECDH-ES
- Utilizza l'accordo di chiave Elliptic Curve Diffie-Hellman Ephemeral Static (Diffie-Hellman a curva ellittica effimero statico)
- Parametri di intestazione aggiuntivi:
- epk (Ephemeral Public Key) (Chiave pubblica effimera): Chiave pubblica effimera
- apu (Agreement PartyUInfo) (Informazioni sulla parte U dell'accordo): Informazioni sulla parte U
- apv (Agreement PartyVInfo) (Informazioni sulla parte V dell'accordo): Informazioni sulla parte V
- Utilizza Concat KDF per la derivazione della chiave
4.7 Cifratura della chiave AES GCM
- Utilizza l'algoritmo AES GCM per l'avvolgimento della chiave
- Parametri di intestazione aggiuntivi:
- iv (Initialization Vector) (Vettore di inizializzazione): Vettore di inizializzazione
- tag (Authentication Tag) (Tag di autenticazione): Tag di autenticazione
4.8 Cifratura della chiave basata su password PBES2
- Utilizza PBES2 (Password-Based Encryption Scheme 2) (Schema di cifratura basato su password 2)
- Combina HMAC-SHA2 e AES Key Wrap
- Parametri di intestazione aggiuntivi:
- p2s (PBES2 Salt Input) (Input salt PBES2): Input salt
- p2c (PBES2 Count) (Conteggio PBES2): Numero di iterazioni
Raccomandazioni di implementazione:
- Preferire l'utilizzo di ECDH-ES e RSA-OAEP
- Evitare algoritmi con debolezze note (come RSA1_5)
- Scegliere dimensioni di chiave appropriate per la propria applicazione