2.17. Generating Keying Material for Child SAs (Schlüsselmaterial für Child SAs)
2.17. Generating Keying Material for Child SAs (Schlüsselmaterial für Child SAs)
Eine Child SA entsteht durch IKE_AUTH; weitere optional durch CREATE_CHILD_SA. Schlüsselmaterial:
KEYMAT = prf+(SK_d, Ni | Nr)
Ni und Nr stammen von IKE_SA_INIT beim ersten Child oder von frischen Ni/Nr aus CREATE_CHILD_SA bei späteren.
Mit optionalem Diffie-Hellman in CREATE_CHILD_SA:
KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)
g^ir (new) ist das ephemere DH-Shared-Secret dieses Austauschs (big-endian-Oktettfolge, bei Bedarf mit führenden Nullen bis Modullänge).
Ein CREATE_CHILD_SA kann mehrere Security Associations erzeugen. ESP- und AH-SAs sind paarweise; künftige IPsec-Protokolle (z. B. ROHC_INTEG [ROHCV2]) können zusätzlich ausgehandelt werden. Für jede Child SA MUSS Material aus dem erweiterten KEYMAT nach diesen Regeln genommen werden:
-
Alle Schlüssel für SA vom Initiator zum Responder vor SA in Gegenrichtung.
-
Bei mehreren IPsec-Protokollen: Reihenfolge wie die Protokollheader im gekapselten Paket.
-
Mehrere Schlüssel pro Protokoll: Reihenfolge in der Protokollspezifikation. Für ESP und AH definiert [IPSECARCH]: Verschlüsselungsschlüssel (falls vorhanden) aus den ersten Bits, Integritätsschlüssel (falls vorhanden) aus dem Rest.
Jeder Algorithmus nutzt eine feste Bitanzahl aus dem Algorithmus oder den SA-Nutzlasten (Schlüssellängen Abschnitt 2.13, Key Length Abschnitt 3.3.5).