@@ -101,6 +101,16 @@ Encapsulating Security Payload (ESP).
101101This document uses the following terms defined in
102102[[I-D.mrossberg-ipsecme-multiple-sequence-counters]]: Sub-Child SA.
103103
104+ * EESP SA IKEv2 Negotiation
105+ To negotiate of EESP Security Associations (SAs), as specified
106+ in [[I-D.klassert-ipsecme-eesp]]. Propose ~Protocol ID~ EESP input
107+ SA Payload, Proposal payload.
108+ These extensions provide the ability to establish EESP SAs using
109+ the IKE_AUTH or the CREATE_CHILD_SA exchanges. The initiator includes
110+ EESP-specific transforms and attributes in the proposal, allowing
111+ the responder to evaluate and establish the SA if supported.
112+
113+
104114* EESP SA IKEv2 negotiation
105115EESP IKEv2 is an extension to IKEv2 [[RFC7296]] to negotiate
106116on EESP SA specified in [[I-D.klassert-ipsecme-eesp]].
@@ -248,22 +258,27 @@ ID, SUB_SA_SN.
248258[[RFC7296]] section 2.17 specifies Child SA key generation.
249259When the EESP SA is negotiated with a Sub SA Keys (SUB_SA_K), each
250260Sub SA need to derive its own unique key. This allows each Sub SA
251- its own Sequence Number space, or IV space when using AEAD counter
252- mode algorithm.
253-
254- This section specifies two methods for Sub SA key derivation.
261+ its own Sequence Number space, and independent IV space when using
262+ AEAD counter mode algorithm.
255263
256- Initially we are proposing two Key Derivation Functions for Sub SAs.
264+ Initially we are proposing two Key Derivation Functions(KDF) for Sub SAs.
257265Based on community feedback, further research and advise from
258266cryptographers one method will be chosen.
259267
268+ The requirements:
269+ - Independent keys for each Sub SA
270+ - Ability to derive Sub SA keys on the fly
271+ - Minimal meomory requirements
272+ - Keyderviation support multiple SAs, such as EESP, AH
273+
260274**** Iterative key derivation
261275To iteratively derive keys create a large keymt. e.g. for the nth
262- Sub SA
263276
264277KEYMAT = prf+(SK_d, Ni | Nr)
278+ When there is no additional Key Exchange.
265279
266280KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)
281+ When there is additional Key Exchange Paload, a.k.a. PFS.
267282
268283Where SK_d is derived from IKE negotiation, as specified in Section
2692842.14 of [[RFC7296]]
@@ -301,9 +316,10 @@ implemented in hardware.
301316
302317**** Hierarchical key derivation
303318
304- KEYMAT = prf+(SK_child, FLOWID)
305- # Note STK: We encodes the Subspace ID on the Session ID,
306- # so I think that's the needed input here.
319+ Hierarchical key derivation use Sub SA ID, either carried in EESP
320+ Seesion ID or EESP Flow ID, as an input the key dervivation.
321+
322+ KEYMAT = prf+(SK_child, Sub SA ID)
307323
308324Where SK_child is the key derived for the Child SA as specified in
309325[[RFC7296]] section 2.17
@@ -312,18 +328,36 @@ An alternative key derivation :
312328
313329KEYMAT = prf+(SK_d, Ni | Nr | Flow ID)
314330
331+ Does using using Ni|Nr|g^ir matters is there perfernece?
332+
315333*** Rekey Key Derivation.
316334During the EESP SA rekey, a new key is derived using the new Ni, Nr,
317335and possibly g^ir, depending on whether a Key Exchange (KE) method
318336was used during the CREATE_CHILD_SA exchange.
319337
320- KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr | Flow ID)
338+ KEYMAT = prf+(SK_child, Sub SA ID)
339+
340+ or
341+
342+ KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr | Sub SA ID)
343+
344+ Even though each Sub SA can be independently rekeyed, for
345+ simplicity and security, all Sub SAs MUST be rekeyed together
346+ when either a cryptographic limit or a time-based limit is
347+ reached.
348+
349+ The cryptographic limit ensures that keys are replaced after
350+ processing a maximum number of packets or bytes, as specified in
351+ Section 2.8 of [RFC7296]. This prevents the reuse of keys beyond
352+ their safe operational bounds.
353+
354+ The time-based limit, also described in Section 2.8 of
355+ [RFC7296], ensures periodic key replacement to minimize the risks
356+ associated with long-term key exposure, even if the cryptographic
357+ limit has not been reached.
321358
322- Even though each Sub SA could be independently rekeyed, for the ease
323- of use when any one of the Sub SA need rekeying when reaching packet
324- limited all Sub SAs MUST be reakeyed immediately following the first
325- rekey. First replace the outgoing SAs. And incoming SAs could be
326- replace whenever the peer received new Sub SA.
359+ Rekeying is triggered by whichever limit—cryptographic or time-
360+ based—is reached first.
327361
328362** Session ID
329363
@@ -360,7 +394,7 @@ same. USE_EESP_CRYPTOFFSET is not supported in Tunnel mode or BEET mode.
360394** Changes in the Existing IKEv2 Registries
361395
362396*** IKEv2 Security Protocol Identifiers registry
363- This document defines new Exchange Type in the
397+ This document defines new Protocol ID in the
364398"IKEv2 Security Protocol Identifiers" registry, [[IKEv2-SP]]:
365399
366400| Protocol ID | Protocol | Reference |
0 commit comments