Passa al contenuto principale

3.14. Payload cifrato

3.14. Payload cifrato​

Il payload cifrato contiene dati di payload cifrati. Questo payload è cifrato utilizzando l'algoritmo di cifratura e la chiave della IKE SA.

Il formato del payload cifrato è il seguente:

                 1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Initialization Vector (IV) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Plaintext Encrypted Payload ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Integrity Checksum Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 18: Formato del payload cifrato

o Initialization Vector (IV) (lunghezza variabile) - Vettore di inizializzazione richiesto dall'algoritmo di cifratura. La sua lunghezza è determinata dall'algoritmo di cifratura negoziato (ad esempio, l'IV di AES-CBC è di 16 ottetti).

o Plaintext Encrypted Payload (lunghezza variabile) - Dati di payload cifrati. Contiene una serie di payload IKE cifrati.

o Integrity Checksum Data (lunghezza variabile) - Dati di checksum di integrità, calcolati utilizzando l'algoritmo di integrità della IKE SA. La sua lunghezza è determinata dall'algoritmo di integrità negoziato (ad esempio, 12 ottetti per HMAC-SHA1, 16 ottetti per HMAC-SHA256).

Nota: il payload cifrato è il payload principale negli scambi IKE_AUTH, CREATE_CHILD_SA e INFORMATIONAL. Dopo lo scambio IKE_SA_INIT, l'intero corpo dei messaggi IKE è incapsulato in un payload cifrato.

Il processo di cifratura è il seguente:

  1. Costruzione del testo in chiaro: una serie di payload IKE (a partire dal primo header di payload).
  2. Se necessario, riempire il testo in chiaro in modo che la sua lunghezza sia un multiplo della dimensione del blocco dell'algoritmo di cifratura.
  3. Cifrare il testo in chiaro utilizzando l'algoritmo e la chiave di cifratura della IKE SA.
  4. Calcolare il valore di controllo di integrità del testo in chiaro (o del testo cifrato, a seconda dell'algoritmo) utilizzando l'algoritmo e la chiave di integrità della IKE SA.
  5. Concatenare IV, testo cifrato e dati di checksum di integrità per formare il payload cifrato.

Il ricevitore decifra e verifica l'integrità utilizzando le chiavi corrispondenti. Se la verifica di integrità fallisce, la messaggio DEVE essere scartato.