2.17. Generating Keying Material for Child SAs (Materiale di chiave per le Child SA)
2.17. Generating Keying Material for Child SAs (Materiale di chiave per le Child SA)
Una Child SA è creata da IKE_AUTH; altre opzionalmente da CREATE_CHILD_SA.
KEYMAT = prf+(SK_d, Ni | Nr)
Ni e Nr da IKE_SA_INIT per la prima Child, o Ni/Nr freschi da CREATE_CHILD_SA per le successive.
Con Diffie-Hellman opzionale in CREATE_CHILD_SA:
KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)
g^ir (new) è il segreto DH effimero di quello scambio (ottetti big-endian, zeri in alto se necessario).
Una negoziazione CREATE_CHILD_SA può produrre più Security Association. ESP e AH sono a coppie; possono esserci protocolli IPsec futuri (es. ROHC_INTEG [ROHCV2]). Per ogni Child SA il materiale DEVE essere preso da KEYMAT espanso con queste regole:
-
Chiavi per SA da iniziatore a rispondente prima di quelle nella direzione opposta.
-
Se più protocolli IPsec, ordine come gli header nel pacchetto incapsulato.
-
Se un protocollo richiede più chiavi, l'ordine è nella sua specifica. Per ESP e AH, [IPSECARCH]: chiave di cifratura (se presente) dai primi bit, chiave di integrità (se presente) dal resto.
Ogni algoritmo prende un numero fisso di bit dall'algoritmo o dai payload SA (lunghezze sezione 2.13, Key Length 3.3.5).