Aller au contenu principal

2.17. Generating Keying Material for Child SAs (Matériel de clé pour les Child SA)

2.17. Generating Keying Material for Child SAs (Matériel de clé pour les Child SA)

Une Child SA est créée par IKE_AUTH; d'autres peuvent l'être dans CREATE_CHILD_SA. Le matériel de clé:

KEYMAT = prf+(SK_d, Ni | Nr)

Ni et Nr viennent de IKE_SA_INIT pour la première Child SA, ou des Ni et Nr frais de CREATE_CHILD_SA pour les suivantes.

Avec échange Diffie-Hellman optionnel dans CREATE_CHILD_SA:

KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)

g^ir (new) est le secret partagé DH éphémère de cet échange (chaîne d'octets big-endian, zéros en tête si besoin jusqu'à la longueur du module).

Une négociation CREATE_CHILD_SA peut produire plusieurs associations de sécurité. Les SA ESP et AH sont par paires; une négociation Child peut aussi inclure d'autres protocoles IPsec futurs (ex. ROHC_INTEG [ROHCV2]). Dans tous les cas, le matériel de chaque Child SA DOIT être extrait du KEYMAT étendu selon:

  • Toutes les clés des SA initiator→responder avant celles responder→initiator.

  • Si plusieurs protocoles IPsec, l'ordre suit l'ordre des en-têtes dans le paquet encapsulé.

  • Si un protocole exige plusieurs clés, l'ordre d'extraction est défini dans sa spécification. Pour ESP et AH, [IPSECARCH]: la clé de chiffrement (si présente) des premiers bits, la clé d'intégrité (si présente) du reste.

Chaque algorithme prend un nombre fixe de bits défini par l'algorithme ou négocié dans les charges SA (longueurs section 2.13, attribut Key Length section 3.3.5).