draft-ietf-lwig-minimal-esp-10.txt   draft-ietf-lwig-minimal-esp-11.txt 
Light-Weight Implementation Guidance (lwig) D. Migault Light-Weight Implementation Guidance (lwig) D. Migault
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Informational T. Guggemos Intended status: Informational T. Guggemos
Expires: 10 October 2022 LMU Munich Expires: 25 November 2022 LMU Munich
8 April 2022 24 May 2022
Minimal IP Encapsulating Security Payload (ESP) Minimal IP Encapsulating Security Payload (ESP)
draft-ietf-lwig-minimal-esp-10 draft-ietf-lwig-minimal-esp-11
Abstract Abstract
This document describes the minimal properties IP Encapsulating This document describes the minimal properties that an IP
Security Payload (ESP) implementation needs to meet to remain Encapsulating Security Payload (ESP) implementation needs to meet to
interoperable with the standard RFC4303 ESP. Such a minimal version remain interoperable with the standard RFC4303 ESP. Such a minimal
of ESP is not intended to become a replacement of the RFC 4303 ESP. version of ESP is not intended to become a replacement of the RFC
Instead, a minimal implementation is expected to be optimized for 4303 ESP. Instead, a minimal implementation is expected to be
constrained environment while remaining interoperable with optimized for constrained environments while remaining interoperable
implementations of RFC 4303 ESP. In addition, this document also with implementations of RFC 4303 ESP. In addition, this document
provides some considerations to implement minimal ESP in a also provides some considerations for implementing minimal ESP in a
constrained environment which includes limiting the number of flash constrained environment which includes limiting the number of flash
writes, handling frequent wakeup / sleep states, limiting wakeup writes, handling frequent wakeup / sleep states, limiting wakeup
time, or reducing the use of random generation. time, and reducing the use of random generation.
This document does not update or modify RFC 4303, but provides a This document does not update or modify RFC 4303. It provides a
compact description of how to implement the minimal version of the compact description of how to implement the minimal version of that
protocol. RFC 4303 remains the authoritative description. protocol. RFC 4303 remains the authoritative description.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 10 October 2022. This Internet-Draft will expire on 25 November 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . . 2 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 4 3. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 4
3.1. Considerations over SPI generation . . . . . . . . . . . 5 3.1. Considerations over SPI generation . . . . . . . . . . . 4
4. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 6 4. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 6
5. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6. Next Header (8 bit) . . . . . . . . . . . . . . . . . . . . . 9 6. Next Header (8 bit) and Dummy Packets . . . . . . . . . . . . 9
7. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8. Cryptographic Suites . . . . . . . . . . . . . . . . . . . . 10 8. Cryptographic Suites . . . . . . . . . . . . . . . . . . . . 10
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
10. Security Considerations . . . . . . . . . . . . . . . . . . . 12 10. Security Considerations . . . . . . . . . . . . . . . . . . . 11
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 13 11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 12
12. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 13 12. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 12
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
13.1. Normative References . . . . . . . . . . . . . . . . . . 13 13.1. Normative References . . . . . . . . . . . . . . . . . . 13
13.2. Informative References . . . . . . . . . . . . . . . . . 14 13.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Requirements notation 1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Introduction 2. Introduction
ESP [RFC4303] is part of the IPsec protocol suite [RFC4301]. IPsec ESP [RFC4303] is part of the IPsec protocol suite [RFC4301]. IPsec
is used to provide confidentiality, data origin authentication, is used to provide confidentiality, data origin authentication,
connectionless integrity, an anti-replay service (a form of partial connectionless integrity, an anti-replay service and limited traffic
sequence integrity) and limited traffic flow confidentiality (TFC) flow confidentiality (TFC) padding.
padding.
Figure 1 describes an ESP Packet. Currently, ESP is implemented in Figure 1 describes an ESP Packet. Currently, ESP is implemented in
the kernel of major multipurpose Operating Systems (OS). The ESP and the kernel of most major multipurpose Operating Systems (OS). ESP is
IPsec suite is usually implemented in a complete way to fit multiple usually implemented with all of its features to fit the multiple
purpose usage of these OSes. However, completeness of the IPsec purpose usage of these OSes, at the expense of resources and with no
suite as well as multipurpose scope of these OSes is often performed considerations for code size. Constrained devices are likely to have
at the expense of resources, or performance. As a result, their own implementation of ESP optimized and adapted to their
constrained devices are likely to have their own implementation of specific use, such as limiting the number of flash writes (for each
ESP optimized and adapted to their specificities such as limiting the packet or across wake time), handling frequent wakeup and sleep
number of flash writes (for each packet or across wake state, limiting wakeup time, and reducing the use of random
time), handling frequent wakeup and sleep state, limiting wakeup generation. With the adoption of IPsec by IoT devices with minimal
time, or reducing the use of random generation. With the adoption of IKEv2 [RFC7815] and ESP Header Compression (EHC) with
IPsec by IoT devices with minimal IKEv2 [RFC7815] and ESP Header [I-D.mglt-ipsecme-diet-esp] or
Compression (EHC) with [I-D.mglt-ipsecme-diet-esp] or [I-D.mglt-ipsecme-ikev2-diet-esp-extension], these ESP
[I-D.mglt-ipsecme-ikev2-diet-esp-extension], it becomes crucial that implementations MUST remain interoperable with standard ESP
ESP implementation designed for constrained devices remain inter- implementations. This document describes the minimal properties an
operable with the standard ESP implementation to avoid a fragmented ESP implementation needs to meet to remain interoperable with
usage of ESP. This document describes the minimal properties an ESP [RFC4303] ESP. In addition, this document also provides advise to
implementation needs to meet to remain interoperable with [RFC4303] implementers for implementing ESP within constrained environments.
ESP. In addition, this document also provides a set of options to This document does not update or modify RFC 4303.
implement these properties under certain constrained environments.
This document does not update or modify RFC 4303, but provides a
compact description of how to implement the minimal version of the
protocol. RFC 4303 remains the authoritative description.
For each field of the ESP packet represented in Figure 1 this For each field of the ESP packet represented in Figure 1 this
document provides recommendations and guidance for minimal document provides recommendations and guidance for minimal
implementations. The primary purpose of Minimal ESP is to remain implementations. The primary purpose of Minimal ESP is to remain
interoperable with other nodes implementing RFC 4303 ESP, while interoperable with other nodes implementing RFC 4303 ESP, while
limiting the standard complexity of the implementation. limiting the standard complexity of the implementation.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ----
skipping to change at page 4, line 29 skipping to change at page 4, line 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------
| Integrity Check Value-ICV (variable) | | Integrity Check Value-ICV (variable) |
~ ~ ~ ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: ESP Packet Description Figure 1: ESP Packet Description
3. Security Parameter Index (SPI) (32 bit) 3. Security Parameter Index (SPI) (32 bit)
According to the [RFC4303], the SPI is a mandatory 32 bits field and [RFC4303] defines the SPI as a mandatory 32 bits field.
is not allowed to be removed.
The SPI has a local significance to index the Security Association The SPI has a local significance to index the Security Association
(SA). From [RFC4301] section 4.1, nodes supporting only unicast (SA). From [RFC4301] section 4.1, nodes supporting only unicast
communications can index their SA only using the SPI. On the other communications can index their SA using only the SPI. Nodes
hand, nodes supporting multicast communications must also use the IP supporting multicast communications also require to use the IP
addresses and thus SA lookup needs to be performed using the longest addresses and thus SA lookup need to be performed using the longest
match. match.
For nodes supporting only unicast communications, this document For nodes supporting only unicast communications, it is RECOMMENDED
recommends indexing SA with the SPI only. The index may be based on indexing the SA using only the SPI. The index may be based on the
the full 32 bits of SPI or a subset of these bits. The node may full 32 bits of SPI or a subset of these bits. The node may require
require a combination of the SPI as well as other parameters (like a combination of the SPI as well as other parameters (like the IP
the IP address) to index the SA. address) to index the SA.
Values 0-255 must not be used. As per section 2.1 of [RFC4303], Values 0-255 MUST NOT be used. As per section 2.1 of [RFC4303],
values 1-255 are reserved and 0 is only allowed to be used internally values 1-255 are reserved and 0 is only allowed to be used internally
and it must not be sent on the wire. and it MUST NOT be sent over the wire.
[RFC4303] does not require the SPI to be randomly generated over 32 [RFC4303] does not require the 32 bit SPI to be randomly generated,
bits. However, this is the recommended way to generate SPIs as it although that is the RECOMMENDED way to generate SPIs as it provides
provides some privacy benefits and avoids, for example, correlation some privacy and security benefits and avoids correlation between ESP
between ESP communications. To randomly generate a 32 bit SPI, the communications. To obtain a usable random 32 bit SPI, the node
node generates a random 32 bit value and checks it does not fall in generates a random 32 bit value and checks it does not fall within
the 0-255 range. If the SPI has an acceptable value, it is used to the 0-255 range. If the SPI has an acceptable value, it is used to
index the inbound session, otherwise the SPI is re-generated until an index the inbound session. Otherwise the generated value is
acceptable value is found. discarded and the process repeats until a valid value is found.
However, some constrained nodes may be less concerned by the privacy Some constrained devices are less concerned with the privacy
properties associated to SPIs randomly generated. Examples of such properties associated to randomly generated SPIs. Examples of such
nodes might include sensors looking to reduce their code complexity, devices might include sensors looking to reduce their code
in which case the use of a predictive function to generate the SPI complexity. The use of a predictive function to generate the SPI
might be preferred over the generation and handling of random values. might be preferred over the generation and handling of random values.
An example of such predictable function may consider the combination An implementation of such predictable function could use the
of a fixed value and the memory address of the SAD structure. For combination of a fixed value and the memory address of the SAD
every incoming packet, the node will be able to point the SAD structure. For every incoming packet, the node will be able to point
structure directly from the SPI value. This avoids having a separate to the SAD structure directly from the SPI value. This avoids having
and additional binding between SPI and SAD entries that is involved a separate and additional binding and lookup function for the SPI to
for every incoming packet. its SAD entry for every incoming packet.
3.1. Considerations over SPI generation 3.1. Considerations over SPI generation
SPI that are not randomly generated over 32 bits may lead to privacy SPIs that are not randomly generated over 32 bits may have privacy
and security concerns. As a result, the use of alternative designs and security concerns. As a result, the use of alternative designs
requires careful security and privacy reviews. This section provides requires careful security and privacy reviews. This section provides
some considerations upon the adoption of alternative designs. some considerations upon the adoption of alternative designs.
Note that SPI value is used only for inbound traffic, as such the SPI The SPI value is only looked up for inbound traffic. The SPI
negotiated with IKEv2 [RFC7296] or [RFC7815] by a peer, is the value negotiated with IKEv2 [RFC7296] or Minimal IKEv2 [RFC7815] by a peer
used by the remote peer when it sends traffic. As SPI is only used is the value used by the remote peer when it sends traffic. The main
for inbound traffic by the peer, this allows each peer to manage the advantage of using a rekeying mechanism is to enable a rekey, that is
set of SPIs used for its inbound traffic. Similarly, the privacy performed by replacing an old SA by a new SA, both indexed with
concerns associated with the generation of non random SPI is also distinct SPIs. As the SPI is only used for inbound traffic by the
peer, this allows each peer to manage the set of SPIs used for its
inbound traffic. The necessary number of SPI reflects the number of
inbound SAs as well as the ability to rekey these SAs. Typically,
rekeying a SA is performed by creating a new SA (with a dedicated
SPI) before the old SA is deleted. This results in an additional SA
and the need to support an additional SPI. Similarly, the privacy
concerns associated with the generation of non-random SPIs is also
limited to the incoming traffic. limited to the incoming traffic.
When alternate designs are considered, it is likely that the number Alternatively, some constrained devices will not implement IKEv2 or
of possible SPIs will be limited. This limit should both consider Minimal IKEv2 and as such will not be able to manage a roll-over
the number of inbound SAs - possibly per IP addresses - as well as between two distinct SAs. In addition, some of these constrained
the ability for the node to rekey. SPI can typically be used to devices are also likely to have a limited number of SAs - likely to
implement a key update with the SPI indicating the key is being used. be indexed over 3 bytes only for example. One possible way to enable
For example, a SPI might be encoded with the Security Association a rekey mechanism with these devices is to use the SPI where for
Database (SAD) entry on a subset of bytes (for example 3 bytes), example the first 3 bytes designates the SA while the remaining byte
while the remaining byte indicates the rekey index. indicates a rekey index. SPI numbers can be used to implement
tracking the inbound SAs when rekeying is taking place. When
rekeying a SPI, the new SPI could use the SPI bytes to indicate the
rekeying index.
The use of a smaller number of SPIs across communications comes with The use of a small limited set of SPI numbers across communications
privacy and security concerns. Typically, some specific values or comes with privacy and security concerns. Some specific values or
subset of SPI values may reveal the models or manufacturer of the subset of SPI values could reveal the models or manufacturer of the
node implementing ESP. This may raise some privacy issues as an node implementing ESP. It could also reveal some state such as "not
observer is likely to be able to determine the constrained devices of yet rekeyed" or "rekeyed 10 times". If a constrained host uses a
the network. In some cases, these nodes may host a very limited very limited or even just one application, the SPI itself could
number of applications - typically a single application - in which indicate what kind of traffic (eg the kind of application typically
case the SPI would provide some information related to the running) is transmitted. This could be further correlated by
application of the user. In addition, the device or application may encrypted data size to further leak information to an observer on the
be associated with some vulnerabilities, in which case specific SPI network. In addition, use of specific hardcoded SPI numbers could
values may be used by an attacker to discover vulnerabilities. reveal a manufacturer or device version. If updated devices use
different SPI numbers, an attacker could locate vulnerable devices by
their use of specific SPI numbers.
While the use of randomly generated SPIs may reduce the leakage or A privacy analysis should consider at least the type of information
privacy of security related information by ESP itself, these pieces as well the traffic pattern before deciding whether non-random SPIs
of information may also be leaked otherwise. As a result, a privacy are safe to use. Typically temperature sensors, wind sensors, used
analysis should consider at least the type of information as well the outdoors may not leak privacy sensitive information and most of its
traffic pattern before determining a non random SPI can be used. traffic is expected to be outbound traffic. When used indoors, a
Typically, temperature sensors, wind sensors, used outdoors may not sensor that reports an encrypted status of a door (closed or opened)
leak privacy sensitive information and most of its traffic is every minute, might not leak sensitive information outside the local
expected to be outbound traffic. When used indoors, a sensor that network. In these examples, the privacy aspect of the information
reports every minute an encrypted status of the door (closed or itself might be limited. Being able to determine the version of the
opened) may leak truly little privacy sensitive information outside sensor to potentially take control of it may also have some limited
the local network. In these examples, the privacy aspect of the security consequences. Of course this depends on the context these
information itself might be limited. Being able to determine the sensors are being used. If the risks associated to privacy and
version of the sensor to potentially take control of it may also have security are acceptable, a non-randomized SPI can be used.
some limited security consequences. Of course this depends on the
context these sensors are being used. If the risks associated to
privacy and security are acceptable, a randomized SPI is not
necessary. In any case, for such constrained sensors, it remains
better to have secure communications with non random SPI as opposed
to no security.
4. Sequence Number(SN) (32 bit) 4. Sequence Number(SN) (32 bit)
According to [RFC4303], the Sequence Number (SN) is a mandatory 32 The Sequence Number (SN) in [RFC4303] is a mandatory 32 bits field in
bits field in the packet. the packet.
The SN is set by the sender so the receiver can implement anti-replay The SN is set by the sender so the receiver can implement anti-replay
protection. The SN is derived from any strictly increasing function protection. The SN is derived from any strictly increasing function
that guarantees: if packet B is sent after packet A, then SN of that guarantees: if packet B is sent after packet A, then SN of
packet B is strictly greater than the SN of packet A. packet B is higher than the SN of packet A.
Some constrained devices may establish communication with specific Some constrained devices may establish communication with specific
devices, like a specific gateway, or nodes similar to them. As a devices where it is known whether or not the peer implements anti-
result, the sender may know whether the receiver implements anti- replay protection. As per [RFC4303], the sender MUST still implement
replay protection or not. Even though the sender may know the a strictly increasing function to generate the SN.
receiver does not implement anti-replay protection, the sender must
implement an always increasing function to generate the SN.
Usually, SN is generated by incrementing a counter for each packet The RECOMMENDED way for multipurpose ESP implementation is to
sent. A constrained device may avoid maintaining this context and increment a counter for each packet sent. However, a constrained
use another source that is known to always increase. Typically, device may avoid maintaining this context and use another source that
constrained nodes using 802.15.4 Time Slotted Channel Hopping (TSCH), is known to always increase. Typically, constrained devices use
whose communication is heavily dependent on time, can take advantage 802.15.4 Time Slotted Channel Hopping (TSCH). This communication is
of their clock to generate the SN. A lot of IoT devices are in a heavily dependent on time. A contrained device can take advantage of
sleep state most of the time wake up and are only awake to perform a this clock mechanism to generate the SN. A lot of IoT devices are in
specific operation before going back to sleep. They do have separate a sleep state most of the time and wake up only to perform a specific
hardware that allows them to wake up after a certain timeout, and operation before going back to sleep. These devices do have separate
most likely also timers that start running when the device was booted hardware that allows them to wake up after a certain timeout and
typically also timers that start running when the device was booted
up, so they might have a concept of time with certain granularity. up, so they might have a concept of time with certain granularity.
This requires to store any information in a stable storage - such as This requires to store any information in a stable storage - such as
flash memory - that can be restored across sleeps. Storing flash memory - that can be restored across sleeps. Storing
information associated with the SA such as SN requires some read and information associated with the SA such as SN requires some read and
writing operation on a stable storage after each packet is sent as write operation on a stable storage after each packet is sent as
opposed to SPI or keys that are only written at the creation of the opposed to a SPI number or cryptographic keys that are only written
SA. Such operations are likely to wear out the flash, and slow down to stable storage at the creation of the SA. Write operations wear
the system greatly, as writing to flash is not as fast as reading. out the flash storage. Write operations also slow down the system
Their internal clocks/timers might not be very accurate, but they significantly, as writing to flash is much slower than reading from
should be enough to know that each time they wake up their time is flash. While these devices have internal clocks or timers that might
greater than what it was last time they woke up. Using time for SN not be very accurate, these are good enough to guarantee that each
time the device wakes up from sleep that their time is greater than
what it was before the device went to sleep. Using time for the SN
would guarantee a strictly increasing function and avoid storing any would guarantee a strictly increasing function and avoid storing any
additional values or context related to the SN. Of course, one additional values or context related to the SN on flash. In addition
should only consider use of a clock to generate SNs if the to the time value, a RAM based counter can be used to ensure that if
application will inherently ensure that no two packets with a given the device sends multiple packets over an SA within one wake up
SA are sent with the same time value. Note however that standard period, that the serial numbers are still increasing and unique.
receivers are generally configured with incrementing counters and, if Note that standard receivers are generally configured with
not appropriately configured, the use of a significantly larger SN incrementing counters and, if not appropriately configured, the use
difference may result in the packet out of the receiver's windows and of a significantly larger SN than the previous packet can result in
that packet being discarded. that packet falling outside of the peer's receiver window which could
cause that packet to be discarded.
For inbound traffic, this document recommends that receivers For inbound traffic, it is RECOMMENDED that receivers implement anti-
implements anti-replay protection, and the size of the window depends replay protection. The size of the window should depend on the
on the ability of the network to deliver packets out of order. As a property of the network to deliver packets out of order. In an
result, in an environment where out of order packets is not possible environment where out of order packets are not possible, the window
the window size can be set to one. However, while recommended, there size can be set to one. An ESP implementation may choose to not
are no requirements to implement an anti-replay protection mechanism implement an anti-replay protection. An implementation of anti-
implemented by IPsec. Similarly to the SN the implementation of anti
replay protection may require the device to write the received SN for replay protection may require the device to write the received SN for
every packet, which may in some cases come with the same drawbacks as every packet to stable storage. This will have the same issues as
those exposed for SN. As a result, some implementations may drop a discussed earlier with the SN. Some constrained device
non required anti replay protection especially when the necessary implementations may choose to not implement the optional anti-replay
resource involved overcomes the benefit of the mechanism. These protection. A typical example might consider an IoT device such as a
resources need also to balance that absence of anti-replay mechanism, temperature sensor that is sending a temperature measurement every 60
may lead to unnecessary integrity check operations that might be seconds, and that receives an acknowledgment from the receiver. In
significantly more expensive as well. A typical example might such cases, the ability to spoof and replay an acknowledgement is of
consider an IoT device such as a temperature sensor that is sending a limited interest and might not justify the implementation of an anti-
temperature measurement every 60 seconds, and that receives an replay mechanism. Receiving peers may also use ESP anti-replay
acknowledgment from the receiver. In such cases, the ability to mechanism adapted to a specific application. Typically, when the
spoof and replay an acknowledgement is of limited interest and might sending peer is using SN based on time, anti-replay may be
not justify the implementation of an anti replay mechanism. implemented by discarding any packets that present a SN whose value
Receiving peers may also use ESP anti-replay mechanism adapted to a is too much in the past. Such mechanisms may consider clock drifting
specific application. Typically, when the sending peer is using SN in various ways in addition to acceptable delay induced by the
based on time, anti-replay may be implemented by discarding any network to avoid the anti replay windows rejecting legitimate
packets that present a SN whose value is too much in the past. Note packets. It could accept any SN as long as it is higher than the
that such mechanisms may consider clock drifting in various ways in previously received SN. Another mechanism could be used where only
addition to acceptable delay induced by the network to avoid the anti the received time on the device is used to consider a packet as
replay windows rejecting legitimate packets. When a packet is valid, without looking at the SN at all.
received at a regular time interval, some variant of time based
mechanisms may not even use the value of the SN, but instead only
consider the receiving time of the packet.
SN can be encoded over 32 bits or 64 bits - known as Extended The SN can be represented as a 32 bit number, or as a 64 bit number,
Sequence Number (ESN). As per [RFC4303], the support of ESN is not known as Extended Sequence Number (ESN). As per [RFC4303], support
mandatory. The determination of the use of ESN is based on the of ESN is not mandatory and its use is negotiated via IKEv2
largest possible value a SN can take over a session. When SN is [RFC7296]. A ESN is used for high speed links to ensure there can be
incremented for each packet, the number of packets sent over the more than 2^32 packets before the SA needs to be rekeyed to prevent
lifetime of a session may be considered. However, when the SN is the SN from rolling over. This assumes the SN is incremented by 1
incremented differently - such as when time is used - the maximum for each packet. When the SN is incremented differently - such as
value SN needs to be considered instead. Note that the limit of when time is used - rekeying needs to happen based on how the SN is
messages being sent is primarily determined by the security incremented to prevent the SN from rolling over. The security of all
associated with the key rather than the SN. The security of all data data protected under a given key decreases slightly with each message
protected under a given key decreases slightly with each message and and a node must ensure the limit is not reached - even though the SN
a node must ensure the limit is not reached - even though the SN
would permit it. Estimation of the maximum number of packets to be would permit it. Estimation of the maximum number of packets to be
sent by a node is always challenging and as such should be considered sent by a node is not always predicatable and large margins should be
cautiously as nodes could be online for much more time than expected. used espcially as nodes could be online for much more time than
Even for constrained devices, this document recommends implementing expected. Even for constrained devices, it is RECOMMENDED to
some rekey mechanisms (see Section 10). implement some rekey mechanisms (see Section 10).
5. Padding 5. Padding
The purpose of padding is to respect the 32 bit alignment of ESP or Padding is required to keep the 32 bit alignment of ESP. It is also
block size expected by an encryption transform - such as AES-CBC for required for some encryption transforms that need a specific block
example. ESP must have at least one padding byte Pad Length that size of input, such as ENCR_AES_CBC. ESP specifies padding in the
indicates the padding length. ESP padding bytes are generated by a Pad Length byte, followed by up to 255 bytes of padding.
succession of unsigned bytes starting with 1, 2, 3 with the last byte
set to Pad Length, where Pad Length designates the length of the
padding bytes.
Checking the padding structure is not mandatory, so the constrained Checking the padding structure is not mandatory, so constrained
device may omit such checks, however, in order to interoperate with devices may omit these checks on received ESP packets. For outgoing
existing ESP implementations, it must build the padding bytes as ESP packets, padding must be applied as required by ESP.
recommended by ESP.
In some situation the padding bytes may take a fixed value. This In some situation the padding bytes may take a fixed value. This
would typically be the case when the Data Payload is of fixed size. would typically be the case when the Data Payload is of fixed size.
ESP [RFC4303] also provides Traffic Flow Confidentiality (TFC) as a ESP [RFC4303] additionally provides Traffic Flow Confidentiality
way to perform padding to hide traffic characteristics, which differs (TFC) as a way to perform padding to hide traffic characteristics.
from respecting a 32 bit alignment. TFC is not mandatory and must be TFC is not mandatory and is negotiated with the SA management
negotiated with the SA management protocol. TFC has not been widely protocol, such as IKEv2. TFC has been widely implemented but it is
adopted for standard ESP traffic. One possible reason is that it not widely deployed for ESP traffic. It is NOT RECOMMENDED to
requires to shape the traffic according to one traffic pattern that implement TFC for a minimal ESP.
needs to be maintained. This is likely to require extra processing
as well as providing a "well recognized" traffic shape which could
end up being counterproductive. As such, this document does not
recommend that minimal ESP implementation supports TFC.
As a result, communication protection that was relying on TFC will be As a consequence, communication protection that relies on TFC would
more sensitive to traffic shaping. This could expose the application be more sensitive to traffic patterns without TFC. This can leak
as well as the devices used to a passive monitoring attacker. Such application information as well as the manifacturor or model of the
information could be used by the attacker in case a vulnerability is device used to a passive monitoring attacker. Such information can
disclosed on the specific device. In addition, some application use be used, for example, by an attacker in case a vulnerability is known
- such as health applications - may also reveal important privacy for the specific device or application. In addition, some
oriented information. application use - such as health applications - could leak important
privacy oriented information.
Some constrained nodes that have limited battery lifetime may also Constrained devices that have limited battery lifetime may prefer to
prefer avoiding sending extra padding bytes. However, the same nodes avoid sending extra padding bytes. In most cases, the payload
may also be very specific to an application and device. As a result, carried by these devices is quite small, and the standard padding
they are also likely to be the main target for traffic shaping. In mechanism can be used as an alternative to TFC. Alternatively, any
most cases, the payload carried by these nodes is quite small, and information leak based on the size - or presence - of the packet can
the standard padding mechanism may also be used as an alternative to also be addressed at the application level, before the packet is
TFC, with a sufficient tradeoff between the required energy to send encrypted with ESP. If application packets vary between 1 to 30
additional payload and the exposure to traffic shaping attacks. In bytes, the application could always send 32 byte responses to ensure
addition, the information leaked by the traffic shaping may also be all traffic sent is of identical length. To prevent leaking
addressed by the application level. For example, it is preferred to information that a sensor changed state, such as "temperature
have a sensor sending some information at regular time interval, changed" or "door opened", an application could send this information
rather than when a specific event is happening. Typically, a sensor at regular time interval, rather than when a specific event is
monitoring the temperature, or a door is expected to send regularly happening, even if the sensor state did not change.
the information - i.e. the temperature of the room or whether the
door is closed or open) instead of only sending the information when
the temperature has raised or when the door is being opened.
6. Next Header (8 bit) 6. Next Header (8 bit) and Dummy Packets
According to [RFC4303], the Next Header is a mandatory 8 bits field ESP [RFC4303] defines the Next Header as a mandatory 8 bits field in
in the packet. Next header specifies the data contained in the the packet. The Next header, only visible after decryption,
payload as well as dummy packet, i.e. packets with the Next Header specifies the data contained in the payload. In addition, the Next
with a value 59 meaning "no next header". In addition, the Next
Header may also carry an indication on how to process the packet Header may also carry an indication on how to process the packet
[I-D.nikander-esp-beet-mode]. [I-D.nikander-esp-beet-mode]. The Next Header can point to a dummy
packet, i.e. packets with the Next Header value set to 59 meaning "no
next header". The data following to "no next header" is unstructured
dummy data.
The ability to generate and receive dummy packets is required by The ability to generate and to receive and ignore dummy packets is
[RFC4303]. For interoperability, a minimal ESP implementation must required by [RFC4303]. An implementation can omit ever generating
discard dummy packets without indicating an error. Note that such and sending dummy packets. For interoperability, a minimal ESP
recommendation only applies for nodes receiving packets, and that implementation MUST be able to process and discard dummy packets
nodes designed to only send data might not implement this capability. without indicating an error.
As the generation of dummy packets is subject to local management and In constrained environments, sending dummy packets may have too much
based on a per-SA basis, a minimal ESP implementation may not impact on the device lifetime, in which case dummy packets should not
generate such dummy packet. Specifically, in constrained environment be generated and sent. On the other hand, Constrained devices
sending dummy packets may have too much impact on the device running specific applications that would leak too much information by
lifetime, and should be avoided. On the other hand, constrained not generating and sending dummy packets may implement this
nodes may be dedicated to specific applications, in which case, functionality or even implement something similar at the application
traffic pattern may expose the application or the type of node. For layer. Note also that similarly to padding and TFC that can be used
these nodes, not sending dummy packet may have some privacy to hide some traffic characteristics (see Section 5), dummy packet
implication that needs to be measured. However, for the same reasons may also reveal some patterns that can be used to identify the
exposed in Section 5 traffic shaping at the IPsec layer may also application. For example, an application may send dummy data to hide
introduce some traffic pattern, and on constrained devices the some traffic pattern. Suppose such such application sends a 1 byte
application is probably the most appropriated layer to limit the risk data when a change occurs. This results in sending a packet
of leaking information by traffic shaping. notifying a change has occurred. Dummy packet may be used to prevent
such information to be leaked by sending a 1 byte packet every second
when the information is not changed. After an upgrade the data
becomes two bytes. At that point, the dummy packets do not hide
anything and having 1 byte regularly versus 2 bytes make even the
identification of the application, version easier to identify. This
generaly makes the use of dummy packets more appropriated on high
speed links.
In some cases, devices are dedicated to a single application or a In some cases, devices are dedicated to a single application or a
single transport protocol, in which case, the Next Header has a fixed single transport protocol, in which case, the Next Header has a fixed
value. value.
Specific processing indications have not been standardized yet Specific processing indications have not been standardized yet
[I-D.nikander-esp-beet-mode] and is expected to result from an [I-D.nikander-esp-beet-mode] and is expected to result from an
agreement between the peers. As a result, it should not be part of a agreement between the peers. As a result, it SHOULD NOT be part of a
minimal implementation of ESP. minimal implementation of ESP.
7. ICV 7. ICV
The ICV depends on the cryptographic suite used. Currently, The ICV depends on the cryptographic suite used. As detailed in
[RFC8221] only recommends cryptographic suites with an ICV which [RFC8221] authentication or authenticated encryption are RECOMMENDED
makes the ICV a mandatory field. and as such the ICV field must be present with a size different from
zero. Its length is defined by the security recommendations only.
As detailed in [RFC8221] authentication or authenticated encryption
are recommended and as such the ICV field must be present with a size
different from zero. Its length is defined by the security
recommendations only.
8. Cryptographic Suites 8. Cryptographic Suites
The cryptographic suites implemented are an important component of The recommended algorithms to use are expected to evolve over time
ESP. The recommended algorithms to use are expected to evolve over and implementers SHOULD follow the recommendations provided by
time and implementers should follow the recommendations provided by
[RFC8221] and updates. [RFC8221] and updates.
This section lists some of the criteria that may be considered to This section lists some of the criteria that may be considered to
select the appropriate cryptographic suite. The list is not expected select an appropriate cryptographic suite. The list is not expected
to be exhaustive and may also evolve over time: to be exhaustive and may also evolve over time:
1. Security: Security is the criteria that should be considered 1. Security: Security is the criteria that should be considered
first for the selection of encryption algorithm transform. The first for the selection of encryption algorithm transform. The
security of encryption algorithm transforms is expected to evolve security of encryption algorithm transforms is expected to evolve
over time, and it is of primary importance to follow up-to-date over time, and it is of primary importance to follow up-to-date
security guidance and recommendations. The chosen encryption security guidance and recommendations. The chosen encryption
algorithm must not be vulnerable or weak (see [RFC8221] for algorithm MUST NOT be vulnerable or weak (see [RFC8221] for
outdated ciphers). ESP can be used to authenticate only or to outdated ciphers). ESP can be used to authenticate only
encrypt the communication. In the latter case, authenticated (ENCR_NULL) or to encrypt the communication. In the latter case,
encryption is RECOMMENDED [RFC8221]. authenticated encryption (AEAD) is RECOMMENDED [RFC8221].
2. Resilience to nonce re-use: Some transforms -including AES-GCM - 2. Resilience to nonce re-use: Some transforms -including AES-GCM -
are very sensitive to nonce collision with a given key. While are vulnerable to nonce collision with a given key. While the
the generation of the nonce may prevent such collision during a generation of the nonce may prevent such collision during a
session, the mechanisms are unlikely to provide such protection session, the mechanisms are unlikely to provide such protection
across reboot. This causes an issue for devices that are across sleep states or reboot. This causes an issue for devices
configured with a key. When the key is likely to be re-used that are configured using static keys (called manual keying) and
across reboots, algorithms that are nonce misuse resistant such manual keying should not be used with these encryption
as, for example, AES-SIV [RFC5297], AES-GCM-SIV [RFC8452] or algorithms. When the key is likely to be re-used across reboots,
Deoxys-II [DeoxysII] are RECOMMENDED. Note however that algorithms that are nonce misuse resistant such as, for example,
currently none of them has yet been defined for ESP. AES-SIV [RFC5297], AES-GCM-SIV [RFC8452] or Deoxys-II [DeoxysII]
are RECOMMENDED. Note however that currently none of these are
yet defined for use with ESP.
3. Interoperability: Interoperability considers the encryption 3. Interoperability: constrained devices usually only implement one
algorithm transforms shared with the other nodes. Note that it or very few different encryption algorithm transforms. [RFC8221]
is not because an encryption algorithm transform is widely takes the life cycle of encryption algorithm transforms and
deployed that it is secured. As a result, security should not be device manufactoring into consideration in its recommendations
weakened for interoperability. [RFC8221] and successors consider for mandatory-to-implement ("MTI") algorithms.
the life cycle of encryption algorithm transforms sufficiently
long to provide interoperability. Constrained devices may have
limited interoperability requirements which makes possible to
reduces the number of encryption algorithm transforms to
implement.
4. Power Consumption and Cipher Suite Complexity: Complexity of the 4. Power Consumption and Cipher Suite Complexity: Complexity of the
encryption algorithm transform or the energy associated with it encryption algorithm transform and the energy cost associated
are especially considered when devices have limited resources or with it are especially important considerations for devices that
are using some batteries, in which case the battery determines have limited resources or are battery powered. The battery life
the life of the device. The choice of a cryptographic function might determine the lifetime of the entire device. The choice of
may consider re-using specific libraries or to take advantage of a cryptographic function should consider re-using specific
hardware acceleration provided by the device. For example, if libraries or to take advantage of hardware acceleration provided
the device benefits from AES hardware modules and uses AES-CTR, by the device. For example, if the device benefits from AES
it may prefer AUTH_AES-XCBC for its authentication. In addition, hardware modules and uses ENCR_AES_CTR, it may prefer AUTH_AES-
some devices may also embed radio modules with hardware XCBC for its authentication. In addition, some devices may also
acceleration for AES-CCM, in which case, this mode may be embed radio modules with hardware acceleration for AES-CCM, in
preferred. which case, this transform may be preferred.
5. Power Consumption and Bandwidth Consumption: Similarly to the 5. Power Consumption and Bandwidth Consumption: Reducing the payload
encryption algorithm transform complexity, reducing the payload sent may significantly reduce the energy consumption of the
sent, may significantly reduce the energy consumption of the device. Encryption algorithm transforms with low overhead are
device. As a result, encryption algorithm transforms with low strongly preferred. To reduce the overall payload size one may,
overhead may be considered. To reduce the overall payload size for example:
one may, for example:
1. Use of counter-based ciphers without fixed block length (e.g. 1. Use of counter-based ciphers without fixed block length (e.g.
AES-CTR, or ChaCha20-Poly1305). AES-CTR, or ChaCha20-Poly1305).
2. Use of ciphers with capability of using implicit IVs 2. Use of ciphers with capability of using implicit IVs
[RFC8750]. [RFC8750].
3. Use of ciphers recommended for IoT [RFC8221]. 3. Use of ciphers recommended for IoT [RFC8221].
4. Avoid Padding by sending payload data which are aligned to 4. Avoid Padding by sending payload data which are aligned to
the cipher block length - 2 for the ESP trailer. the cipher block length - 2 for the ESP trailer.
9. IANA Considerations 9. IANA Considerations
There are no IANA consideration for this document. There are no IANA consideration for this document.
10. Security Considerations 10. Security Considerations
Security considerations are those of [RFC4303]. In addition, this Security Considerations are those of [RFC4303]. In addition, this
document provided security recommendations and guidance over the document provided security recommendations and guidance over the
implementation choices for each ESP field. implementation choices for each ESP field.
The security of a communication provided by ESP is closely related to The security of a communication provided by ESP is closely related to
the security associated with the management of that key. This the security associated with the management of that key. This
usually includes mechanisms to prevent a nonce from repeating, for usually includes mechanisms to prevent a nonce from repeating, for
example. When a node is provisioned with a session key that is used example. When a node is provisioned with a session key that is used
across reboot, the implementer must ensure that the mechanisms put in across reboot, the implementer MUST ensure that the mechanisms put in
place remain valid across reboot as well. place remain valid across reboot as well.
This document recommends to use ESP in conjunction with key It is RECOMMENDED to use ESP in conjunction with key management
management protocols such as for example IKEv2 [RFC7296] or minimal protocols such as for example IKEv2 [RFC7296] or minimal IKEv2
IKEv2 [RFC7815]. Such mechanisms are responsible for negotiating [RFC7815]. Such mechanisms are responsible for negotiating fresh
fresh session keys as well as prevent a session key being use beyond session keys as well as prevent a session key being use beyond its
its lifetime. When such mechanisms cannot be implemented and the lifetime. When such mechanisms cannot be implemented, such as when
session key is, for example, provisioned, the nodes must ensure that the the session key is provisioned, the device MUST ensure that keys
keys are not used beyond their lifetime and that the appropriate use are not used beyond their lifetime and that the the key remains used
of the key remains across reboots - e.g. conditions on counters and in compliance will all security requirements across reboots - e.g.
nonces remains valid. conditions on counters and nonces remains valid.
When a node generates its key or when random value such as nonces are When a device generates its own key or when random value such as
generated, the random generation must follow [RFC4086]. In addition, nonces are generated, the random generation MUST follow [RFC4086].
[SP-800-90A-Rev-1] provides appropriated guidance to build random In addition, [SP-800-90A-Rev-1] provides guidance on how to build
generators based on deterministic random functions. random generators based on deterministic random functions.
11. Privacy Considerations 11. Privacy Considerations
Preventing the leakage of privacy sensitive information is a hard Preventing the leakage of privacy sensitive information is a hard
problem to solve and usually result in balancing the information problem to solve and usually result in balancing the information
potentially being leaked to the cost associated with the counter potentially being leaked to the cost associated with the counter
measures. This problem is not inherent to the minimal ESP described measures. This problem is not inherent to the minimal ESP described
in this document and also concerns the use of ESP in general. in this document and also concerns the use of ESP in general.
This document targets minimal implementations of ESP and as such This document targets minimal implementations of ESP and as such
describes some minimalistic way to implement ESP. In some cases, describes some minimalistic way to implement ESP. In some cases,
this may result in potentially exposing privacy sensitive pieces of this may result in potentially revealing privacy sensitive pieces of
information. This document describes these privacy implications so information. This document describes these privacy implications so
the designer can take the appropriate decisions given the the implementer can take the appropriate decisions given the
specificities of a given environment and deployment. specificities of a given environment and deployment.
The main risks associated with privacy is the ability to identify an The main risks associated with privacy is the ability to identify an
application or a device by analyzing the traffic which is designated application or a device by analyzing the traffic which is designated
as traffic shaping. As discussed in Section 3, the use in some very as traffic shaping. As discussed in Section 3, the use in some very
specific context of non randomly generated SPI might in some cases specific context of non randomly generated SPI might in some cases
ease the determination of the device of the application. Similarly, ease the determination of the device or the application. Similarly,
padding provides limited capabilities to obfuscate the traffic padding provides limited capabilities to obfuscate the traffic
compared to those provided by TFC. Such consequence on privacy as compared to those provided by TFC. Such consequence on privacy as
detailed in Section 5. detailed in Section 5.
12. Acknowledgment 12. Acknowledgment
The authors would like to thank Daniel Palomares, Scott Fluhrer, Tero The authors would like to thank Daniel Palomares, Scott Fluhrer, Tero
Kivinen, Valery Smyslov, Yoav Nir, Michael Richardson, Thomas Peyrin, Kivinen, Valery Smyslov, Yoav Nir, Michael Richardson, Thomas Peyrin,
Eric Thormarker, Nancy Cam-Winget and Bob Briscoe for their valuable Eric Thormarker, Nancy Cam-Winget and Bob Briscoe for their valuable
comments. In particular Scott Fluhrer suggested including the rekey comments. In particular Scott Fluhrer suggested including the rekey
index in the SPI. Tero Kivinen provided also multiple clarifications index in the SPI. Tero Kivinen also provided multiple clarifications
and examples of deployment ESP within constrained devices with their and examples of deployment ESP within constrained devices with their
associated optimizations. Thomas Peyrin Eric Thormarker and Scott associated optimizations. Thomas Peyrin Eric Thormarker and Scott
Fluhrer suggested and clarified the use of transform resilient to Fluhrer suggested and clarified the use of transform resilient to
nonce misuse. nonce misuse.
13. References 13. References
13.1. Normative References 13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at page 14, line 28 skipping to change at page 13, line 39
[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
Kivinen, "Internet Key Exchange Protocol Version 2 Kivinen, "Internet Key Exchange Protocol Version 2
(IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
2014, <https://www.rfc-editor.org/info/rfc7296>. 2014, <https://www.rfc-editor.org/info/rfc7296>.
[RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2 [RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2
(IKEv2) Initiator Implementation", RFC 7815, (IKEv2) Initiator Implementation", RFC 7815,
DOI 10.17487/RFC7815, March 2016, DOI 10.17487/RFC7815, March 2016,
<https://www.rfc-editor.org/info/rfc7815>. <https://www.rfc-editor.org/info/rfc7815>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8221] Wouters, P., Migault, D., Mattsson, J., Nir, Y., and T. [RFC8221] Wouters, P., Migault, D., Mattsson, J., Nir, Y., and T.
Kivinen, "Cryptographic Algorithm Implementation Kivinen, "Cryptographic Algorithm Implementation
Requirements and Usage Guidance for Encapsulating Security Requirements and Usage Guidance for Encapsulating Security
Payload (ESP) and Authentication Header (AH)", RFC 8221, Payload (ESP) and Authentication Header (AH)", RFC 8221,
DOI 10.17487/RFC8221, October 2017, DOI 10.17487/RFC8221, October 2017,
<https://www.rfc-editor.org/info/rfc8221>. <https://www.rfc-editor.org/info/rfc8221>.
[RFC8750] Migault, D., Guggemos, T., and Y. Nir, "Implicit [RFC8750] Migault, D., Guggemos, T., and Y. Nir, "Implicit
Initialization Vector (IV) for Counter-Based Ciphers in Initialization Vector (IV) for Counter-Based Ciphers in
Encapsulating Security Payload (ESP)", RFC 8750, Encapsulating Security Payload (ESP)", RFC 8750,
skipping to change at page 14, line 50 skipping to change at page 14, line 20
13.2. Informative References 13.2. Informative References
[DeoxysII] Jeremy, J. J., Ivica, I. N., Thomas, T. P., and Y. S. [DeoxysII] Jeremy, J. J., Ivica, I. N., Thomas, T. P., and Y. S.
Yannick, "Deoxys v1.41", October 2016, Yannick, "Deoxys v1.41", October 2016,
<https://competitions.cr.yp.to/round3/deoxysv141.pdf>. <https://competitions.cr.yp.to/round3/deoxysv141.pdf>.
[I-D.mglt-ipsecme-diet-esp] [I-D.mglt-ipsecme-diet-esp]
Migault, D., Guggemos, T., Bormann, C., and D. Schinazi, Migault, D., Guggemos, T., Bormann, C., and D. Schinazi,
"ESP Header Compression and Diet-ESP", Work in Progress, "ESP Header Compression and Diet-ESP", Work in Progress,
Internet-Draft, draft-mglt-ipsecme-diet-esp-07, 11 March Internet-Draft, draft-mglt-ipsecme-diet-esp-08, 13 May
2019, <https://www.ietf.org/archive/id/draft-mglt-ipsecme- 2022, <https://www.ietf.org/archive/id/draft-mglt-ipsecme-
diet-esp-07.txt>. diet-esp-08.txt>.
[I-D.mglt-ipsecme-ikev2-diet-esp-extension] [I-D.mglt-ipsecme-ikev2-diet-esp-extension]
Migault, D., Guggemos, T., and D. Schinazi, "Internet Key Migault, D., Guggemos, T., and D. Schinazi, "Internet Key
Exchange version 2 (IKEv2) extension for the ESP Header Exchange version 2 (IKEv2) extension for the ESP Header
Compression (EHC) Strategy", Work in Progress, Internet- Compression (EHC) Strategy", Work in Progress, Internet-
Draft, draft-mglt-ipsecme-ikev2-diet-esp-extension-01, 26 Draft, draft-mglt-ipsecme-ikev2-diet-esp-extension-02, 13
June 2018, <https://www.ietf.org/archive/id/draft-mglt- May 2022, <https://www.ietf.org/archive/id/draft-mglt-
ipsecme-ikev2-diet-esp-extension-01.txt>. ipsecme-ikev2-diet-esp-extension-02.txt>.
[I-D.nikander-esp-beet-mode] [I-D.nikander-esp-beet-mode]
Nikander, P. and J. Melen, "A Bound End-to-End Tunnel Nikander, P. and J. Melen, "A Bound End-to-End Tunnel
(BEET) mode for ESP", Work in Progress, Internet-Draft, (BEET) mode for ESP", Work in Progress, Internet-Draft,
draft-nikander-esp-beet-mode-09, 5 August 2008, draft-nikander-esp-beet-mode-09, 5 August 2008,
<https://www.ietf.org/archive/id/draft-nikander-esp-beet- <https://www.ietf.org/archive/id/draft-nikander-esp-beet-
mode-09.txt>. mode-09.txt>.
[RFC5297] Harkins, D., "Synthetic Initialization Vector (SIV) [RFC5297] Harkins, D., "Synthetic Initialization Vector (SIV)
Authenticated Encryption Using the Advanced Encryption Authenticated Encryption Using the Advanced Encryption
 End of changes. 67 change blocks. 
345 lines changed or deleted 338 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/