Skip to content

Commit f30989e

Browse files
committed
Fix some inconsistencies in the document.
1 parent 353ade2 commit f30989e

File tree

1 file changed

+57
-62
lines changed

1 file changed

+57
-62
lines changed

eesp.org

Lines changed: 57 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ section is normative.
128128
** Top-Level EESP format
129129

130130
The (outer) protocol header (IPv4, IPv6, or Extension) that
131-
immediately precedes the ESP header SHALL contain the value TBD in
131+
immediately precedes the EESP header SHALL contain the value TBD in
132132
its [[Protocol]] (IPv4) or Next Header (IPv6, Extension) field.
133133
[[eesp-top-level-packet-format]] illustrates the top-level format of
134134
an EESP packet. The EESP header is split into multiple parts.
@@ -162,7 +162,7 @@ an EESP packet. The EESP header is split into multiple parts.
162162

163163
The packet starts with a ~Base Header~ that can be used by protocol
164164
parsing engines of middleboxes such as routers or firewalls in
165-
addition to the IPsec peer that use it to route the packet to the
165+
addition to the IPsec peers that use it to route the packet to the
166166
correct cryptographic context.
167167

168168
The ~Peer Header~ follows the ~Base Header~. The ~Peer Header~ is
@@ -240,8 +240,9 @@ The fixed portion of the base header is defined as follows.
240240
as a Subs SA ID. Other use cases are not covered in this document.
241241
- Security Parameter Index (SPI) :: 32 bits: The SPI is an arbitrary
242242
32-bit value that is used by a receiver to identify the SA to which
243-
an incoming packet is bound. This combined with the 16-bit Session
244-
ID is the Enhanced SPI.
243+
an incoming packet is bound.
244+
# XXX: Enhanced SPI is not explained!
245+
#This combined with the 16-bit Session ID is the Enhanced SPI.
245246

246247
The Flags field in the fixed Base Header is defined as follows:
247248

@@ -428,8 +429,8 @@ can be derived from the inner IPv4 or IPv6 header. This document
428429
specifies a full and an optimized packet format. The Payload Info
429430
Header is present in the Full EESP packet format, but not in the
430431
optimized format see [[Full and Optimized Packet Formats]].
431-
IPsec peers and middleboxes MAY act upon the Payload Info
432-
Header.
432+
IPsec peers and middleboxes (if Crypt Offset is positive, see
433+
[[EESP Crypt Offset Option]]) MAY act upon the Payload Info Header.
433434

434435
#+caption: Payload Info Header
435436
#+name: payload-info-header
@@ -702,7 +703,7 @@ a KDF MUST be used used to derive a separate key for each anti-replay sequence
702703
number subspace (see [[Key Derivation for Sub SAs]]). In this case, the full
703704
64 bits of each anti-replay sequence number subspace can be used.
704705

705-
Sub SAs can be created "on the fly" within the kernel IPsec subsystem.
706+
Sub SAs can be created "on the fly" within the IPsec data-plane.
706707
Sub SAs streamline traffic flow management, reduce overhead, and
707708
enable more efficient lifecycle operations.
708709

@@ -726,8 +727,7 @@ unique key.
726727

727728
Particularly implementations with hardware offload, MAY derive Sub SA
728729
keys dynamically on a per-packet basis. This mitigates the risk of
729-
data-plane performance degradation caused by a large number of keys
730-
[[I-D.ponchon-ipsecme-anti-replay-subspaces]].
730+
data-plane performance degradation caused by a large number of keys.
731731

732732
AEAD transforms such as AES-GCM [[RFC4106]], [[RFC8750]] requires
733733
that the IV never repeat within a single Sub SA. Because each
@@ -768,7 +768,7 @@ requirements.
768768

769769
This section defines the IPsec sender's behavior when transmitting
770770
packets using an IPsec Child SA that has been previously configured or
771-
negotiated with IKE to use at most N different sequence number
771+
negotiated with IKEv2 to use at most N different sequence number
772772
subspace IDs.
773773

774774
The sender MAY set the sequence number subspace ID to any value
@@ -811,7 +811,10 @@ and counter associated with the sequence number subspace identified
811811
with the subspace ID field.
812812

813813
The receiver MUST drop any packet received with a subpace ID value
814-
greater or equal to N. Such packets SHOULD be counted for reporting.
814+
greater or equal to N. i Receiving such packets is an auditable
815+
event. The audit log entry for this event SHOULD include the SPI value,
816+
subpace ID value, current date/time, Source Address, Destination Address,
817+
and (in IPv6) the cleartext Flow ID.
815818

816819
Note: Since the sender may decide to only use a subset of the
817820
available N subspace values, the receiver MAY reactively allocate an
@@ -906,7 +909,7 @@ zero-valued octets.
906909

907910
Flow Identifier (FID) Options are used to carry characteristic
908911
information of the inner flow and SHOULD NOT change on per packet
909-
basis inside any inner flow to avoid packet reordering.
912+
basis inside any inner flow. # to avoid packet reordering.
910913
The Flow Identifier SHOULD be negotiated by IKEv2 or another
911914
suitable protocol. The detailed specification of FIDs MAY be provided
912915
in subsequent documents. The precise meaning of a FID is opaque to
@@ -1230,7 +1233,7 @@ algorithms, no payload substructure is defined.
12301233
To allow an EESP implementation to determine the MTU impact of a
12311234
combined mode algorithm, the RFC for each algorithm used with EESP
12321235
must specify a (simple) formula that yields encrypted payload size,
1233-
as a function of the plaintext payload and sequence number sizes.
1236+
as a function of the plaintext payload and EESP header sizes.
12341237

12351238
** Outbound Packet Processing
12361239

@@ -1263,7 +1266,7 @@ by using the AES-CMAC algorithm ([[RFC4494]]).
12631266
The Sender proceeds for combined confidentiality/integrity algorithm as follows:
12641267

12651268
1. Encapsulate into the EESP Payload Data field:
1266-
- for transport, beet and payload encryption mode -- just the original next layer
1269+
- for transport and beet mode -- just the original next layer
12671270
protocol information.
12681271
- for tunnel mode -- the entire original IP datagram.
12691272

@@ -1291,10 +1294,10 @@ The Sender proceeds for combined confidentiality/integrity algorithm as follows:
12911294
employed. If one is not used, an analogous field
12921295
usually will be a part of the ciphertext payload.
12931296
The location of any integrity fields, and the means
1294-
by which the Sequence Number and SPI are included in
1297+
by which the EESP header fields are included in
12951298
the integrity computation, MUST be defined in an RFC
12961299
that defines the use of the combined mode algorithm
1297-
with EESP.
1300+
with EESP. # XXX: We don't have this!!!
12981301

12991302
# NOTE STK: Do we need to update RFC4106, RFC 4543, RFC 6054 etc.?
13001303

@@ -1321,11 +1324,11 @@ number is strictly monotonic increasing.
13211324
The sender checks to ensure
13221325
that the counter has not cycled before inserting the new value in the
13231326
Sequence Number field. In other words, the sender MUST NOT send a
1324-
packet on an SA. If doing so would cause the sequence number to cycle.
1327+
packet on such an SA. If doing so would cause the sequence number to cycle.
13251328
An attempt to transmit a packet that would result in sequence number
13261329
overflow is an auditable event. The audit log entry for this event
1327-
SHOULD include the SPI value, current date/time, Source Address,
1328-
Destination Address, and (in IPv6) the cleartext Flow ID.
1330+
SHOULD include the SPI value, Session ID value, current date/time,
1331+
Source Address, Destination Address, and (in IPv6) the cleartext Flow ID.
13291332

13301333
Typical behavior of an EESP implementation calls for the sender to
13311334
establish a new SA when the Sequence Number of the SA cycles, or if
@@ -1342,8 +1345,7 @@ replaced.
13421345
*** Fragmentation
13431346

13441347
If necessary, fragmentation is performed after EESP processing within
1345-
an IPsec implementation. Thus, transport, beet and payload encryption
1346-
mode, EESP is applied only to
1348+
an IPsec implementation. Thus, transport and beet mode, EESP is applied only to
13471349
whole IP datagrams (not to IP fragments). An IP packet to which EESP
13481350
has been applied may itself be fragmented by routers en route, and
13491351
such fragments must be reassembled prior to EESP processing at a
@@ -1385,8 +1387,8 @@ packet offered to EESP for processing appears to be an IP fragment,
13851387
i.e., the OFFSET field is non-zero or the MORE FRAGMENTS flag is set,
13861388
the receiver MUST discard the packet; this is an auditable event.
13871389
The audit log entry for this event SHOULD include the SPI value,
1388-
date/time received, Source Address, Destination Address, Sequence
1389-
Number, and (in IPv6) the Flow ID.
1390+
Session ID value, date/time received, Source Address, Destination
1391+
Address, Sequence Number, and (in IPv6) the Flow ID.
13901392

13911393
NOTE: For packet reassembly, the current IPv4 spec does NOT require
13921394
either the zeroing of the OFFSET field or the clearing of the MORE
@@ -1412,20 +1414,17 @@ computation (if applicable).
14121414

14131415
If no valid Security Association exists for this packet, the receiver
14141416
MUST discard the packet; this is an auditable event. The audit log
1415-
entry for this event SHOULD include the SPI value, date/time
1416-
received, Source Address, Destination Address, Sequence Number, and
1417-
(in IPv6) the cleartext Flow ID.
1417+
entry for this event SHOULD include the SPI value, Session ID value,
1418+
date/time received, Source Address, Destination Address, Sequence Number,
1419+
and (in IPv6) the cleartext Flow ID.
14181420

14191421
*** Sequence Number Verification
14201422

14211423
# FIXME: This section needs review.
14221424

14231425
All EESP implementations MUST support the anti-replay service, though
14241426
its use may be enabled or disabled by negotiation on a per-SA basis.
1425-
This service MUST NOT be enabled unless the EESP integrity service
1426-
also is enabled for the SA, because otherwise the Sequence Number
1427-
field has not been integrity protected. Anti-replay is applicable to
1428-
unicast as well as multicast SAs.
1427+
Anti-replay is applicable to unicast as well as multicast SAs.
14291428

14301429
# Note STK: This might change when we introduce the Sender ID option.
14311430
However, this standard specifies
@@ -1437,11 +1436,11 @@ for the SA be disabled (via negotiation or manual configuration), as
14371436
noted below.
14381437

14391438
If anti-replay service is enabled for this SA, the
1440-
receive packet counter for the SA MUST be initialized to zero when
1441-
the SA is established. For each received packet, the receiver MUST
1439+
receive packet counter for each used Sub SA MUST be initialized to zero when
1440+
the SA is established. For each received packet on a Sub SA, the receiver MUST
14421441
verify that the packet contains a Sequence Number that does not
1443-
duplicate the Sequence Number of any other packets received during
1444-
the life of this SA. This SHOULD be the first ESP check applied to a
1442+
duplicate the Sequence Number of any other packets received on this Sub SA during
1443+
the life of the SA. This SHOULD be the first ESP check applied to a
14451444
packet after it has been matched to an SA, to speed rejection of
14461445
duplicate packets.
14471446

@@ -1468,19 +1467,18 @@ text describes the functionality that the implementation must
14681467
exhibit.
14691468

14701469
The "right" edge of the window represents the highest, validated
1471-
Sequence Number value received on this SA. Packets that contain
1470+
Sequence Number value received on this Sub SA. Packets that contain
14721471
sequence numbers lower than the "left" edge of the window are
14731472
rejected. Packets falling within the window are checked against a
14741473
list of received packets within the window.
14751474

14761475
If the received packet falls within the window and is not a
1477-
duplicate, or if the packet is to the right of the window, and if a
1478-
separate integrity algorithm is employed, then the receiver proceeds
1479-
to integrity verification. If a combined mode algorithm is employed,
1480-
the integrity check is performed along with decryption. In either
1481-
case, if the integrity check fails, the receiver MUST discard the
1476+
duplicate, or if the packet is to the right of the window,
1477+
receiver proceeds with cryptographic processing, i.e.
1478+
integrity check along with decryption.
1479+
If the integrity check fails, the receiver MUST discard the
14821480
received IP datagram as invalid; this is an auditable event. The
1483-
audit log entry for this event SHOULD include the SPI value,
1481+
audit log entry for this event SHOULD include the SPI value, Session ID value,
14841482
date/time received, Source Address, Destination Address, the Sequence
14851483
Number, and (in IPv6) the Flow ID. The receive window is updated
14861484
only if the integrity verification succeeds. (If a combined mode
@@ -1530,7 +1528,7 @@ The receiver proceeds for combined mode algorithms as follows:
15301528
- If the integrity check performed by the combined mode
15311529
algorithm fails, the receiver MUST discard the received IP
15321530
datagram as invalid; this is an auditable event. The log
1533-
data SHOULD include the SPI value, date/time received,
1531+
data SHOULD include the SPI value, Session ID value, date/time received,
15341532
Source Address, Destination Address, the Sequence Number,
15351533
and (in IPv6) the cleartext Flow ID.
15361534

@@ -1548,7 +1546,7 @@ The receiver proceeds for combined mode algorithms as follows:
15481546

15491547
The exact steps for reconstructing the original datagram
15501548
depend on the mode and are described in the Security
1551-
Architecture document.
1549+
Architecture document. # XXX: What about BEET mode?
15521550
# FIXME: What to do here?
15531551
At a minimum, in an
15541552
IPv6 context, the receiver SHOULD ensure that the decrypted
@@ -1668,29 +1666,29 @@ included in an audit log is defined.
16681666

16691667
- No valid Security Association exists for a session. The
16701668
audit log entry for this event SHOULD include the SPI value,
1671-
date/time received, Source Address, Destination Address,
1669+
Session ID value, date/time received, Source Address, Destination Address,
16721670
Sequence Number, and (for IPv6) the cleartext Flow ID.
16731671

16741672
- A packet offered to EESP for processing appears to be an IP
16751673
fragment, i.e., the OFFSET field is non-zero or the MORE
16761674
FRAGMENTS flag is set. The audit log entry for this event
1677-
SHOULD include the SPI value, date/time received, Source
1675+
SHOULD include the SPI value, Session ID value, date/time received, Source
16781676
Address, Destination Address, Sequence Number, and (in IPv6)
16791677
the Flow ID.
16801678

16811679
- Attempt to transmit a packet that would result in Sequence
16821680
Number overflow. The audit log entry for this event SHOULD
1683-
include the SPI value, current date/time, Source Address,
1681+
include the SPI value, Session ID value, current date/time, Source Address,
16841682
Destination Address, Sequence Number, and (for IPv6) the
16851683
cleartext Flow ID.
16861684

16871685
- The received packet fails the anti-replay checks. The audit
1688-
log entry for this event SHOULD include the SPI value,
1686+
log entry for this event SHOULD include the SPI value, Session ID value,
16891687
date/time received, Source Address, Destination Address, the
16901688
Sequence Number, and (in IPv6) the Flow ID.
16911689

16921690
- The integrity check fails. The audit log entry for this
1693-
event SHOULD include the SPI value, date/time received,
1691+
event SHOULD include the SPI value, Session ID value, date/time received,
16941692
Source Address, Destination Address, the Sequence Number, and
16951693
(for IPv6) the Flow ID.
16961694

@@ -1719,18 +1717,20 @@ provide anti-replay service in conjunction with SAs that are manually
17191717
keyed.
17201718

17211719
The mandatory-to-implement algorithms for use with EESP are described
1722-
in a separate document [[RFC4305]], to facilitate updating the algorithm
1720+
in a separate document RFC (TBD),
1721+
# [[RFC4305]] is for ESP
1722+
to facilitate updating the algorithm
17231723
requirements independently from the protocol per se. Additional
17241724
algorithms, beyond those mandated for EESP, MAY be supported.
17251725

1726-
Because use of encryption in EESP is optional, support for the "NULL"
1727-
encryption algorithm also is required to maintain consistency with
1728-
the way ESP services are negotiated. Support for the
1729-
confidentiality-only service version of EESP is optional. If an
1730-
implementation offers this service, it MUST also support the
1731-
negotiation of the "NULL" integrity algorithm. NOTE that although
1732-
integrity and encryption may each be "NULL" under the circumstances
1733-
noted above, they MUST NOT both be "NULL".
1726+
#Because use of encryption in EESP is optional, support for the "NULL"
1727+
#encryption algorithm also is required to maintain consistency with
1728+
#the way ESP services are negotiated. Support for the
1729+
#confidentiality-only service version of EESP is optional. If an
1730+
#implementation offers this service, it MUST also support the
1731+
#negotiation of the "NULL" integrity algorithm. NOTE that although
1732+
#integrity and encryption may each be "NULL" under the circumstances
1733+
#noted above, they MUST NOT both be "NULL".
17341734

17351735
* Security Considerations
17361736

@@ -1826,11 +1826,6 @@ Authors are requested to add a note to the RFC Editor at the top of
18261826
this section, advising the Editor to remove the entire section before
18271827
publication, as well as the reference to [[RFC7942]].
18281828

1829-
1830-
* Security Considerations
1831-
1832-
In this section we discuss the security properties of EESP: TBD
1833-
18341829
* Acknowledgments
18351830

18361831
TBD

0 commit comments

Comments
 (0)