@@ -128,7 +128,7 @@ section is normative.
128128** Top-Level EESP format
129129
130130The (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
132132its [[Protocol]] (IPv4) or Next Header (IPv6, Extension) field.
133133[[eesp-top-level-packet-format]] illustrates the top-level format of
134134an 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
163163The packet starts with a ~Base Header~ that can be used by protocol
164164parsing 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
166166correct cryptographic context.
167167
168168The ~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
246247The 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
428429specifies a full and an optimized packet format. The Payload Info
429430Header is present in the Full EESP packet format, but not in the
430431optimized 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
702703number subspace (see [[Key Derivation for Sub SAs]]). In this case, the full
70370464 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 .
706707Sub SAs streamline traffic flow management, reduce overhead, and
707708enable more efficient lifecycle operations.
708709
@@ -726,8 +727,7 @@ unique key.
726727
727728Particularly implementations with hardware offload, MAY derive Sub SA
728729keys 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
732732AEAD transforms such as AES-GCM [[RFC4106]], [[RFC8750]] requires
733733that the IV never repeat within a single Sub SA. Because each
@@ -768,7 +768,7 @@ requirements.
768768
769769This section defines the IPsec sender's behavior when transmitting
770770packets 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
772772subspace IDs.
773773
774774The sender MAY set the sequence number subspace ID to any value
@@ -811,7 +811,10 @@ and counter associated with the sequence number subspace identified
811811with the subspace ID field.
812812
813813The 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
816819Note: Since the sender may decide to only use a subset of the
817820available N subspace values, the receiver MAY reactively allocate an
@@ -906,7 +909,7 @@ zero-valued octets.
906909
907910Flow Identifier (FID) Options are used to carry characteristic
908911information 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.
910913The Flow Identifier SHOULD be negotiated by IKEv2 or another
911914suitable protocol. The detailed specification of FIDs MAY be provided
912915in subsequent documents. The precise meaning of a FID is opaque to
@@ -1230,7 +1233,7 @@ algorithms, no payload substructure is defined.
12301233To allow an EESP implementation to determine the MTU impact of a
12311234combined mode algorithm, the RFC for each algorithm used with EESP
12321235must 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]]).
12631266The Sender proceeds for combined confidentiality/integrity algorithm as follows:
12641267
126512681. 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.
13211324The sender checks to ensure
13221325that the counter has not cycled before inserting the new value in the
13231326Sequence 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.
13251328An attempt to transmit a packet that would result in sequence number
13261329overflow 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
13301333Typical behavior of an EESP implementation calls for the sender to
13311334establish a new SA when the Sequence Number of the SA cycles, or if
@@ -1342,8 +1345,7 @@ replaced.
13421345*** Fragmentation
13431346
13441347If 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
13471349whole IP datagrams (not to IP fragments). An IP packet to which EESP
13481350has been applied may itself be fragmented by routers en route, and
13491351such 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,
13851387i.e., the OFFSET field is non-zero or the MORE FRAGMENTS flag is set,
13861388the receiver MUST discard the packet; this is an auditable event.
13871389The 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
13911393NOTE: For packet reassembly, the current IPv4 spec does NOT require
13921394either the zeroing of the OFFSET field or the clearing of the MORE
@@ -1412,20 +1414,17 @@ computation (if applicable).
14121414
14131415If no valid Security Association exists for this packet, the receiver
14141416MUST 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
14231425All EESP implementations MUST support the anti-replay service, though
14241426its 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.
14311430However, this standard specifies
@@ -1437,11 +1436,11 @@ for the SA be disabled (via negotiation or manual configuration), as
14371436noted below.
14381437
14391438If 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
14421441verify 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
14451444packet after it has been matched to an SA, to speed rejection of
14461445duplicate packets.
14471446
@@ -1468,19 +1467,18 @@ text describes the functionality that the implementation must
14681467exhibit.
14691468
14701469The "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
14721471sequence numbers lower than the "left" edge of the window are
14731472rejected. Packets falling within the window are checked against a
14741473list of received packets within the window.
14751474
14761475If 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
14821480received 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,
14841482date/time received, Source Address, Destination Address, the Sequence
14851483Number, and (in IPv6) the Flow ID. The receive window is updated
14861484only 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
15491547The exact steps for reconstructing the original datagram
15501548depend 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?
15531551At a minimum, in an
15541552IPv6 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
17191717keyed.
17201718
17211719The 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
17231723requirements independently from the protocol per se. Additional
17241724algorithms, 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
18261826this section, advising the Editor to remove the entire section before
18271827publication, 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
18361831TBD
0 commit comments