2.14. Generating Keying Material for the IKE SA (Matériel de clé pour l'IKE SA)
2.14. Generating Keying Material for the IKE SA (Matériel de clé pour l'IKE SA)
Les clés partagées se calculent comme suit. Une quantité SKEYSEED est calculée à partir des nonces échangés pendant IKE_SA_INIT et du secret partagé Diffie-Hellman établi lors de cet échange. SKEYSEED sert à calculer sept autres secrets: SK_d pour dériver de nouvelles clés pour les Child SA de cette IKE SA; SK_ai et SK_ar comme clés de l'algorithme de protection d'intégrité des messages des échanges suivants; SK_ei et SK_er pour chiffrer (et déchiffrer) tous les échanges suivants; SK_pi et SK_pr pour générer les charges AUTH. Les longueurs de SK_d, SK_pi et SK_pr DOIVENT être la longueur de clé préférée de la PRF convenue.
SKEYSEED et ses dérivés:
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)
(les quantités SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi et SK_pr sont prises dans l'ordre dans les bits générés par prf+). g^ir est le secret partagé de l'échange Diffie-Hellman éphémère, représenté en octets big-endian, complété par des zéros si nécessaire à la longueur du module. Ni et Nr sont les nonces sans en-têtes. Pour compatibilité ascendante, deux PRF sont traitées spécialement: si la PRF négociée est AES-XCBC-PRF-128 [AESXCBCPRF128] ou AES-CMAC-PRF-128 [AESCMACPRF128], seuls les 64 premiers bits de Ni et de Nr servent au calcul de SKEYSEED, mais tous les bits entrent dans prf+.
Les deux directions utilisent des clés différentes. SK_ai et SK_ei protègent les messages de l'initiateur d'origine; SK_ar et SK_er l'autre sens.