Skip to content

Commit 8af4faf

Browse files
committed
eesp-ikev2.org: expand KDF
- fix IANA protocol registry
1 parent e355ed8 commit 8af4faf

File tree

1 file changed

+50
-16
lines changed

1 file changed

+50
-16
lines changed

eesp-ikev2.org

Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ Encapsulating Security Payload (ESP).
101101
This 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
105115
EESP IKEv2 is an extension to IKEv2 [[RFC7296]] to negotiate
106116
on 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.
249259
When the EESP SA is negotiated with a Sub SA Keys (SUB_SA_K), each
250260
Sub 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.
257265
Based on community feedback, further research and advise from
258266
cryptographers 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
261275
To iteratively derive keys create a large keymt. e.g. for the nth
262-
Sub SA
263276

264277
KEYMAT = prf+(SK_d, Ni | Nr)
278+
When there is no additional Key Exchange.
265279

266280
KEYMAT = prf+(SK_d, g^ir (new) | Ni | Nr)
281+
When there is additional Key Exchange Paload, a.k.a. PFS.
267282

268283
Where SK_d is derived from IKE negotiation, as specified in Section
269284
2.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

308324
Where 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

313329
KEYMAT = 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.
316334
During the EESP SA rekey, a new key is derived using the new Ni, Nr,
317335
and possibly g^ir, depending on whether a Key Exchange (KE) method
318336
was 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

Comments
 (0)