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