Passa al contenuto principale

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 algoritmoAlgoritmo di gestione delle chiaviParametri di intestazione aggiuntiviRequisiti di implementazione
RSA1_5RSAES-PKCS1-v1_5-Recommended- (Raccomandato-)
RSA-OAEPRSAES OAEP (parametri predefiniti)-Recommended+ (Raccomandato+)
RSA-OAEP-256RSAES OAEP (SHA-256)-Optional (Opzionale)
A128KW / A192KW / A256KWAES Key Wrap (Avvolgimento chiave AES)-Recommended (Raccomandato)
dirDirect use of shared symmetric key (Uso diretto di chiave simmetrica condivisa)-Recommended (Raccomandato)
ECDH-ESECDH key agreement (Accordo di chiave ECDH)epk, apu, apvRecommended+ (Raccomandato+)
ECDH-ES+A128KW/A192KW/A256KWECDH + AES Key Wrapepk, apu, apvRecommended/Optional (Raccomandato/Opzionale)
A128GCMKW / A192GCMKW / A256GCMKWAES GCM Key Wrap (Avvolgimento chiave AES GCM)iv, tagOptional (Opzionale)
PBES2-HS256/384/512+A128/192/256KWPassword-based key encryption (Cifratura chiave basata su password)p2s, p2cOptional (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