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:
- Costruzione del testo in chiaro: una serie di payload IKE (a partire dal primo header di payload).
- Se necessario, riempire il testo in chiaro in modo che la sua lunghezza sia un multiplo della dimensione del blocco dell'algoritmo di cifratura.
- Cifrare il testo in chiaro utilizzando l'algoritmo e la chiave di cifratura della IKE SA.
- 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.
- 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.