2.14. Generating Keying Material for the IKE SA (Schlüsselmaterial für die IKE SA)
2.14. Generating Keying Material for the IKE SA (Schlüsselmaterial für die IKE SA)
Die gemeinsamen Schlüssel werden wie folgt berechnet. SKEYSEED ergibt sich aus den während IKE_SA_INIT ausgetauschten Nonces und dem dort etablierten Diffie-Hellman-Shared-Secret. SKEYSEED dient zur Berechnung von sieben weiteren Geheimnissen: SK_d zur Ableitung neuer Schlüssel für Child SAs dieser IKE SA; SK_ai und SK_ar als Schlüssel für den Integritätsschutz späterer Nachrichten; SK_ei und SK_er zur Verschlüsselung (und Entschlüsselung) aller folgenden Austausche; SK_pi und SK_pr bei der AUTH-Nutzlast. Die Längen von SK_d, SK_pi und SK_pr MÜSSEN der bevorzugten Schlüssellänge der vereinbarten PRF entsprechen.
SKEYSEED und Ableitungen:
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)
(d. h. die genannten Größen werden in dieser Reihenfolge aus den prf+-Bits genommen). g^ir ist das Shared Secret des ephemeren Diffie-Hellman-Austauschs, als Oktettfolge big-endian, bei Bedarf mit Nullen bis zur Modullänge aufgefüllt. Ni und Nr sind die Nonces ohne Header. Aus Abwärtskompatibilität werden zwei PRFs speziell behandelt: Bei AES-XCBC-PRF-128 [AESXCBCPRF128] oder AES-CMAC-PRF-128 [AESCMACPRF128] dienen nur die ersten 64 Bits von Ni und Nr zur SKEYSEED-Berechnung, für prf+ jedoch alle Bits.
Die beiden Richtungen verwenden unterschiedliche Schlüssel. SK_ai und SK_ei schützen Nachrichten vom ursprünglichen Initiator; SK_ar und SK_er die Gegenrichtung.