Passa al contenuto principale

2.14. Generazione del materiale di chiave per la IKE SA

2.14. Generazione del materiale di chiave per la IKE SA​

Le chiavi condivise sono calcolate come segue. Una quantità chiamata SKEYSEED è calcolata dai nonce scambiati durante lo scambio IKE_SA_INIT e dal segreto condiviso Diffie-Hellman stabilito durante quello scambio. SKEYSEED è usato per calcolare altri sette segreti: SK_d usato per derivare nuove chiavi per le Child SA stabilite con questa IKE SA; SK_ai e SK_ar usati come chiave per l'algoritmo di protezione di integrità per autenticare i messaggi componenti degli scambi successivi; SK_ei e SK_er usati per cifrare (e ovviamente decifrare) tutti gli scambi successivi; e SK_pi e SK_pr, che sono usati quando si genera un payload AUTH. Le lunghezze di SK_d, SK_pi, e SK_pr DEVONO essere la lunghezza di chiave preferita della PRF concordata.

SKEYSEED e i suoi derivati sono calcolati come segue:

SKEYSEED = prf(Ni | Nr, g^ir)

{SK_d | SK_ai | SK_ar | SK_ei | SK_er | SK_pi | SK_pr } = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr )

( indicando che le quantità SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi, e SK_pr sono prese in ordine dai bit generati dal prf+). g^ir è il segreto condiviso dallo scambio ephemeral Diffie-Hellman. g^ir è rappresentato come una stringa di ottetti in ordine big endian riempita con zeri se necessario per renderla della lunghezza del modulo. Ni e Nr sono i nonce, spogliati di qualsiasi header. Per ragioni di compatibilità con versioni precedenti storiche, ci sono due PRF che sono trattate specialmente in questo calcolo. Se la PRF negoziata è AES-XCBC-PRF-128 [AESXCBCPRF128] o AES-CMAC-PRF-128 [AESCMACPRF128], solo i primi 64 bit di Ni e i primi 64 bit di Nr sono usati nel calcolo di SKEYSEED, ma tutti i bit sono usati come input alla funzione prf+.

Le due direzioni del flusso di traffico usano chiavi diverse. Le chiavi usate per proteggere i messaggi dall'iniziatore originale sono SK_ai e SK_ei. Le chiavi usate per proteggere i messaggi nell'altra direzione sono SK_ar e SK_er.