Skip to content

Commit 3bd3cb6

Browse files
committed
Make replay protection mandatory if SNs are negotiated
1 parent 80e0249 commit 3bd3cb6

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

eesp-ikev2.org

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ prior to decryption. EESP also enables the establishment of Sub SAs
5151
with independent keys and sequence number spaces. Additionally, it
5252
supports the use of 64-bit sequence numbers transmitted in each
5353
packet or the omission of sequence numbers when the Replay Protection
54-
service is not needed. EESP packets carry a version number, enabling
55-
easier support for future extensions.
54+
service is not needed or cannot be achieved (e.g. in some multicast
55+
scenarios). EESP packets carry a version number, enabling easier
56+
support for future extensions.
5657

5758
This document specifies the negotiation of EESP Security
5859
Associations (SAs) within the Internet Key Exchange Protocol
@@ -234,15 +235,15 @@ Use of Sub SAs is optional in EESP and can be negotiated using IKEv2.
234235

235236
** EESP Sequence Numbers
236237

237-
Unlike ESP, EESPv0 header allows to transmit 64-bit sequence numbers.
238-
In addition, the Sequence Number field in the EESPv0 header is
239-
optional and can be omitted from the packet if replay protection
240-
service is not needed. Note that while possible, disabling the
241-
replay protection service is generally NOT RECOMMENDED and should
242-
only be done if the upper level protocol provides this service. See
243-
[[Security Considerations]] for details.
238+
Unlike ESP, the EESPv0 header transmits 64-bit sequence numbers if
239+
replay protection is used. In addition, the Sequence Number field in
240+
the EESPv0 header is optional and can be omitted from the packet if
241+
replay protection is not needed. Note that while possible, disabling
242+
replay protection is generally NOT RECOMMENDED and should only
243+
be done in case of multicast scenarios or if the upper level protocol
244+
provides this service. See [[Security Considerations]] for details.
244245

245-
# [VS] I believe this is covered below in the discssion about
246+
# [VS] I believe this is covered below in the discussion about
246247
# [VS] restrictions on negotiated parameters
247248

248249
# ** Explicit Initialization Vector
@@ -345,19 +346,16 @@ The type of the Sub SA Key Derivation Function transform is <TBA2>.
345346
This document defines two new Transform IDs for the Sequence Numbers
346347
transform type: ~64-bit Sequential Numbers~ (<TBD4>) and ~None~ (<TBD5>).
347348

348-
To enable presence of sequence numbers in the EESP header the
349-
initiator MUST propose SN = (64-bit Sequential Numbers) in the
350-
Proposal Substructure inside the Security Association (SA) payload.
351-
When the responder selects 64-bit Sequential Numbers, the Sequence Number
352-
field is included into the EESP header, that allows peers to
353-
achieve replay protection.
354-
355-
# NOTE STK: I'd say MUST above as we want to negotiate Anti-Replay
356-
# service and not just the presense of the seq nr field.
349+
To enable the presence of sequence numbers in the EESP header and
350+
enabling replay protection, the initiator MUST propose SN = (64-bit
351+
Sequential Numbers) in the Proposal Substructure inside the Security
352+
Association (SA) payload. When the responder selects 64-bit Sequential
353+
Numbers, the Sequence Number field MUST be included into the EESP
354+
header and peers MUST perform replay protection.
357355

358356
To disable sequence numbering, and thus replay protection based on
359357
sequence numbers, the initiator MUST propose SN=None (<TBD5>).
360-
When the responder selects None, Sequence Number field is omitted
358+
When the responder selects None, the Sequence Number field is omitted
361359
from the EESP header.
362360

363361
** Transforms Consistency
@@ -399,15 +397,15 @@ Sequence Numbers transform type (32-bit Sequential Numbers and
399397
Partially Transmitted 64-bit Sequential Numbers)
400398
are unspecified for EESPv0 and MUST NOT be used in EESPv0 proposals.
401399

402-
Implemenattions MUST ignore transforms containing invalid
400+
Implementations MUST ignore transforms containing invalid
403401
values for the current proposal (as if they are unrecognized,
404402
in accordance with Section 3.3.6 of [[RFC7296]]).
405403

406-
The use of the None Transform ID for the SN transform
404+
The use of the ~None~ Transform ID for the SN transform
407405
if further limited by the ENCR transform. In particular,
408406
if the selected ENCR transform defines use of implicit IV
409-
(as transforms defined in [[RFC8750]]), then the value None MUST NOT
410-
be selected for the SN transform.
407+
(as transforms defined in [[RFC8750]]), then the value ~None~ MUST
408+
NOT be selected for the SN transform.
411409

412410
** Example of SA Payload Negotiating EESP
413411

0 commit comments

Comments
 (0)