rfc9333.original   rfc9333.txt 
Light-Weight Implementation Guidance (lwig) D. Migault Internet Engineering Task Force (IETF) D. Migault
Internet-Draft Ericsson Request for Comments: 9333 Ericsson
Intended status: Informational T. Guggemos Category: Informational T. Guggemos
Expires: 27 March 2023 LMU Munich ISSN: 2070-1721 LMU Munich
23 September 2022 December 2022
Minimal IP Encapsulating Security Payload (ESP) Minimal IP Encapsulating Security Payload (ESP)
draft-ietf-lwig-minimal-esp-12
Abstract Abstract
This document describes the minimal properties that an IP This document describes the minimal properties that an IP
Encapsulating Security Payload (ESP) implementation needs to meet to Encapsulating Security Payload (ESP) implementation needs to meet to
remain interoperable with the standard RFC4303 ESP. Such a minimal remain interoperable with the standard ESP as defined in RFC 4303.
version of ESP is not intended to become a replacement of the RFC Such a minimal version of ESP is not intended to become a replacement
4303 ESP. Instead, a minimal implementation is expected to be of ESP in RFC 4303. Instead, a minimal implementation is expected to
optimized for constrained environments while remaining interoperable be optimized for constrained environments while remaining
with implementations of RFC 4303 ESP. In addition, this document interoperable with implementations of ESP. In addition, this
also provides some considerations for implementing minimal ESP in a document provides some considerations for implementing minimal ESP in
constrained environment which includes limiting the number of flash a constrained environment, such as limiting the number of flash
writes, handling frequent wakeup / sleep states, limiting wakeup writes, handling frequent wakeup and sleep states, limiting wakeup
time, and reducing the use of random generation. time, and reducing the use of random generation.
This document does not update or modify RFC 4303. It provides a This document does not update or modify RFC 4303. It provides a
compact description of how to implement the minimal version of that 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 document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for informational purposes.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are candidates for any level of Internet
Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on 27 March 2023. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9333.
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
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Requirements Notation
3. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 4 3. Security Parameters Index (SPI)
3.1. Considerations over SPI generation . . . . . . . . . . . 4 3.1. Considerations for SPI Generation
4. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 6 4. Sequence Number (SN)
5. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Padding
6. Next Header (8 bit) and Dummy Packets . . . . . . . . . . . . 9 6. Next Header and "Dummy" Packets
7. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7. ICV
8. Cryptographic Suites . . . . . . . . . . . . . . . . . . . . 10 8. Cryptographic Suites
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 9. IANA Considerations
10. Security Considerations . . . . . . . . . . . . . . . . . . . 11 10. Security Considerations
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 12 11. Privacy Considerations
12. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 12 12. References
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 12.1. Normative References
13.1. Normative References . . . . . . . . . . . . . . . . . . 13 12.2. Informative References
13.2. Informative References . . . . . . . . . . . . . . . . . 14 Acknowledgments
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses
1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"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 1. 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 and limited traffic connectionless integrity, an anti-replay service, and limited Traffic
flow confidentiality (TFC) padding. Flow Confidentiality (TFC) 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 most major multipurpose Operating Systems (OS). ESP is the kernel of most major multipurpose Operating Systems (OSes). ESP
usually implemented with all of its features to fit the multiple is usually implemented with all of its features to fit the
purpose usage of these OSes, at the expense of resources and with no multipurpose usage of these OSes, at the expense of resources and
considerations for code size. Constrained devices are likely to have with no considerations for code size. Constrained devices are likely
their own implementation of ESP optimized and adapted to their to have their own implementation of ESP optimized and adapted to
specific use, such as limiting the number of flash writes (for each their specific use, such as limiting the number of flash writes (for
packet or across wake time), handling frequent wakeup and sleep each packet or across wake time), handling frequent wakeup and sleep
state, limiting wakeup time, and reducing the use of random states, limiting wakeup time, and reducing the use of random
generation. With the adoption of IPsec by IoT devices with minimal generation. With the adoption of IPsec by Internet of Things (IoT)
IKEv2 [RFC7815] and ESP Header Compression (EHC) with devices with minimal IKEv2 [RFC7815] and ESP Header Compression (EHC)
[I-D.mglt-ipsecme-diet-esp] or [EHC-DIET-ESP] [EHC-IKEv2], these ESP implementations MUST remain
[I-D.mglt-ipsecme-ikev2-diet-esp-extension], these ESP interoperable with standard ESP implementations. This document
implementations MUST remain interoperable with standard ESP describes the minimal properties an ESP implementation needs to meet
implementations. This document describes the minimal properties an to remain interoperable with ESP [RFC4303]. In addition, this
ESP implementation needs to meet to remain interoperable with document provides advice to implementers for implementing ESP within
[RFC4303] ESP. In addition, this document also provides advise to constrained environments. This document does not update or modify
implementers for implementing ESP within constrained environments. [RFC4303].
This document does not update or modify RFC 4303.
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 ESP [RFC4303], 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ----
| Security Parameters Index (SPI) | ^Int. | Security Parameters Index (SPI) | ^Int.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov-
| Sequence Number | |ered | Sequence Number | |ered
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ---- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ----
| Payload Data* (variable) | | ^ | Payload Data* (variable) | | ^
~ ~ | | ~ ~ | |
| | |Conf. | | |Conf.
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov-
| | Padding (0-255 bytes) | |ered* | | Padding (0-255 bytes) | |ered*
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Pad Length | Next Header | v v | | Pad Length | Next Header | v v
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------
| 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) 2. Requirements Notation
[RFC4303] defines the SPI as a mandatory 32 bits field. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"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.
The SPI has a local significance to index the Security Association 3. Security Parameters Index (SPI)
(SA). From [RFC4301] section 4.1, nodes supporting only unicast
communications can index their SA using only the SPI. Nodes [RFC4303] defines the SPI as a mandatory 32-bit field.
supporting multicast communications also require to use the IP
addresses and thus SA lookup need to be performed using the longest The SPI has local significance to index the Security Association
(SA). As described in Section 4.1 of [RFC4301], nodes supporting
only unicast communications can index their SA using only the SPI.
Nodes supporting multicast communications also require the use of IP
addresses; thus, SA lookup needs to be performed using the longest
match. match.
For nodes supporting only unicast communications, it is RECOMMENDED For nodes supporting only unicast communications, indexing the SA
indexing the SA using only the SPI. The index may be based on the using only the SPI is RECOMMENDED. The index may be based on the
full 32 bits of SPI or a subset of these bits. The node may require full 32 bits of the SPI or a subset of these bits. The node may
a combination of the SPI as well as other parameters (like the IP require a combination of the SPI as well as other parameters (like
address) to index the SA. the IP 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
and it MUST NOT be sent over the wire. internally and MUST NOT be sent over the wire.
[RFC4303] does not require the 32 bit SPI to be randomly generated, [RFC4303] does not require the 32-bit SPI to be randomly generated,
although that is the RECOMMENDED way to generate SPIs as it provides although that is the RECOMMENDED way to generate SPIs as it provides
some privacy and security benefits and avoids correlation between ESP some privacy and security benefits and avoids correlation between ESP
communications. To obtain a usable random 32 bit SPI, the node communications. To obtain a usable random 32-bit SPI, the node
generates a random 32 bit value and checks it does not fall within 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 generated value is index the inbound session. Otherwise, the generated value is
discarded and the process repeats until a valid value is found. discarded, and the process repeats until a valid value is found.
Some constrained devices are less concerned with the privacy Some constrained devices are less concerned with the privacy
properties associated to randomly generated SPIs. Examples of such properties associated with randomly generated SPIs. Examples of such
devices might include sensors looking to reduce their code devices might include sensors looking to reduce their code
complexity. 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 implementation of such predictable function could use the An implementation of such predictable function could use the
combination of a fixed value and the memory address of the SAD combination of a fixed value and the memory address of the Security
structure. For every incoming packet, the node will be able to point Association Database (SAD) structure. For every incoming packet, the
to the SAD structure directly from the SPI value. This avoids having node will be able to point to the SAD structure directly from the SPI
a separate and additional binding and lookup function for the SPI to value. This avoids having a separate and additional binding and
its SAD entry for every incoming packet. lookup function for the SPI to its SAD entry for every incoming
packet.
3.1. Considerations over SPI generation 3.1. Considerations for SPI Generation
SPIs that are not randomly generated over 32 bits may have 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 for the adoption of alternative designs.
The SPI value is only looked up for inbound traffic. The SPI The SPI value is only looked up for inbound traffic. The SPI
negotiated with IKEv2 [RFC7296] or Minimal IKEv2 [RFC7815] by a peer negotiated with IKEv2 [RFC7296] or minimal IKEv2 [RFC7815] by a peer
is the value used by the remote peer when it sends traffic. The main is the value used by the remote peer when it sends traffic. The main
advantage of using a rekeying mechanism is to enable a rekey, that is advantage of using a rekeying mechanism is to enable a rekey, which
performed by replacing an old SA by a new SA, both indexed with is performed by replacing an old SA with a new SA, both indexed with
distinct SPIs. As the SPI is only used for inbound traffic by the distinct SPIs. The SPI is only used for inbound traffic by the peer,
peer, this allows each peer to manage the set of SPIs used for its which allows each peer to manage the set of SPIs used for its inbound
inbound traffic. The necessary number of SPI reflects the number of traffic. The necessary number of SPIs reflects the number of inbound
inbound SAs as well as the ability to rekey these SAs. Typically, SAs as well as the ability to rekey those SAs. Typically, rekeying
rekeying a SA is performed by creating a new SA (with a dedicated an SA is performed by creating a new SA (with a dedicated SPI) before
SPI) before the old SA is deleted. This results in an additional SA the old SA is deleted. This results in an additional SA and the need
and the need to support an additional SPI. Similarly, the privacy to support an additional SPI. Similarly, the privacy concerns
concerns associated with the generation of non-random SPIs is also associated with the generation of non-random SPIs is also limited to
limited to the incoming traffic. the incoming traffic.
Alternatively, some constrained devices will not implement IKEv2 or Alternatively, some constrained devices will not implement IKEv2 or
Minimal IKEv2 and as such will not be able to manage a roll-over minimal IKEv2 and, as such, will not be able to manage a rollover
between two distinct SAs. In addition, some of these constrained between two distinct SAs. In addition, some of these constrained
devices are also likely to have a limited number of SAs - likely to devices are likely to have a limited number of SAs; for example, they
be indexed over 3 bytes only for example. One possible way to enable are likely to be indexed over 3 bytes only. One possible way to
a rekey mechanism with these devices is to use the SPI where for enable a rekeying mechanism with these devices is to use the SPI
example the first 3 bytes designates the SA while the remaining byte where, for example, the first 3 bytes designates the SA while the
indicates a rekey index. SPI numbers can be used to implement remaining byte indicates a rekey index. SPI numbers can be used to
tracking the inbound SAs when rekeying is taking place. When implement tracking the inbound SAs when rekeying is taking place.
rekeying a SPI, the new SPI could use the SPI bytes to indicate the When rekeying an SPI, the new SPI could use the SPI bytes to indicate
rekeying index. the rekeying index.
The use of a small limited set of SPI numbers across communications The use of a small, limited set of SPI numbers across communications
comes with privacy and security concerns. Some specific values or comes with privacy and security concerns. Some specific values or
subset of SPI values could reveal the models or manufacturer of the subsets of SPI values could reveal the model or manufacturer of the
node implementing ESP. It could also reveal some state such as "not node implementing ESP or reveal a state such as "not yet rekeyed" or
yet rekeyed" or "rekeyed 10 times". If a constrained host uses a "rekeyed 10 times". If a constrained host uses a very limited number
very limited or even just one application, the SPI itself could of applications, eventually a single one, the SPI itself could
indicate what kind of traffic (eg the kind of application typically indicate what kind of traffic is transmitted (e.g., the kind of
running) is transmitted. This could be further correlated by application typically running). This could also be correlated with
encrypted data size to further leak information to an observer on the encrypted data size to further leak information to an observer on the
network. In addition, use of specific hardcoded SPI numbers could network. In addition, use of specific hardcoded SPI numbers could
reveal a manufacturer or device version. If updated devices use reveal a manufacturer or device version. If updated devices use
different SPI numbers, an attacker could locate vulnerable devices by different SPI numbers, an attacker could locate vulnerable devices by
their use of specific SPI numbers. their use of specific SPI numbers.
A privacy analysis should consider at least the type of information A privacy analysis should consider at least the type of information
as well the traffic pattern before deciding whether non-random SPIs as well as the traffic pattern before deciding whether non-random
are safe to use. Typically temperature sensors, wind sensors, used SPIs are safe to use. Typically, temperature and wind sensors that
outdoors may not leak privacy sensitive information and most of its are used outdoors do not leak privacy-sensitive information, and most
traffic is expected to be outbound traffic. When used indoors, a of their traffic is expected to be outbound traffic. When used
sensor that reports an encrypted status of a door (closed or opened) indoors, a sensor that reports an encrypted status of a door (closed
every minute, might not leak sensitive information outside the local or opened) every minute might not leak sensitive information outside
network. In these examples, the privacy aspect of the information the local network. In these examples, the privacy aspect of the
itself might be limited. Being able to determine the version of the information itself might be limited. Being able to determine the
sensor to potentially take control of it may also have some limited version of the sensor to potentially take control of it may also have
security consequences. Of course this depends on the context these some limited security consequences. Of course, this depends on the
sensors are being used. If the risks associated to privacy and context in which these sensors are being used. If the risks
security are acceptable, a non-randomized SPI can be used. associated to privacy and security are acceptable, a non-randomized
SPI can be used.
4. Sequence Number(SN) (32 bit) 4. Sequence Number (SN)
The Sequence Number (SN) in [RFC4303] is a mandatory 32 bits field in The Sequence Number (SN) in [RFC4303] is a mandatory 32-bit 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 the following: if packet B is sent after packet A,
packet B is higher than the SN of packet A. then the SN of 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 where it is known whether or not the peer implements anti- devices where it is known whether or not the peer implements anti-
replay protection. As per [RFC4303], the sender MUST still implement replay protection. As per [RFC4303], the sender MUST still implement
a strictly increasing function to generate the SN. a strictly increasing function to generate the SN.
The RECOMMENDED way for multipurpose ESP implementation is to It is RECOMMENDED that multipurpose ESP implementations increment a
increment a counter for each packet sent. However, a constrained counter for each packet sent. However, a constrained device may
device may avoid maintaining this context and use another source that avoid maintaining this context and use another source that is known
is known to always increase. Typically, constrained devices use to always increase. Typically, constrained devices use 802.15.4 Time
802.15.4 Time Slotted Channel Hopping (TSCH). This communication is Slotted Channel Hopping (TSCH). This communication is heavily
heavily dependent on time. A contrained device can take advantage of dependent on time. A constrained device can take advantage of this
this clock mechanism to generate the SN. A lot of IoT devices are in clock mechanism to generate the SN. A lot of IoT devices are in a
a sleep state most of the time and wake up only to perform a specific sleep state most of the time and wake up only to perform a specific
operation before going back to sleep. These devices do have separate operation before going back to sleep. These devices have separate
hardware that allows them to wake up after a certain timeout and hardware that allows them to wake up after a certain timeout and
typically also timers that start running when the device was booted typically also have timers that start running when the device is
up, so they might have a concept of time with certain granularity. booted up, so they might have a concept of time with certain
This requires to store any information in a stable storage - such as granularity. This requires devices to store any information in
flash memory - that can be restored across sleeps. Storing stable storage that can be restored across sleeps (e.g., flash
information associated with the SA such as SN requires some read and memory). Storing information associated with the SA (such as the SN)
write operation on a stable storage after each packet is sent as requires some read and write operations on stable storage after each
opposed to a SPI number or cryptographic keys that are only written packet is sent as opposed to an SPI number or cryptographic keys that
to stable storage at the creation of the SA. Write operations wear are only written to stable storage at the creation of the SA. Write
out the flash storage. Write operations also slow down the system operations wear out the flash storage. Write operations also slow
significantly, as writing to flash is much slower than reading from down the system significantly, as writing to flash is much slower
flash. While these devices have internal clocks or timers that might than reading from flash. While these devices have internal clocks or
not be very accurate, these are good enough to guarantee that each timers that might not be very accurate, they are good enough to
time the device wakes up from sleep that their time is greater than guarantee that each time the device wakes up from sleep, the time is
what it was before the device went to sleep. Using time for the SN greater than what it was before the device went to sleep. Using time
would guarantee a strictly increasing function and avoid storing any for the SN would guarantee a strictly increasing function and avoid
additional values or context related to the SN on flash. In addition storing any additional values or context related to the SN on flash.
to the time value, a RAM based counter can be used to ensure that if In addition to the time value, a RAM-based counter can be used to
the device sends multiple packets over an SA within one wake up ensure that the serial numbers are still increasing and unique if the
period, that the serial numbers are still increasing and unique. device sends multiple packets over an SA within one wakeup period.
For inbound traffic, it is RECOMMENDED that receivers implement anti- For inbound traffic, it is RECOMMENDED that receivers implement anti-
replay protection. The size of the window should depend on the replay protection. The size of the window should depend on the
property of the network to deliver packets out of order. In an network characteristic to deliver packets out of order. In an
environment where out of order packets are not possible, the window environment where out-of-order packets are not possible, the window
size can be set to one. An ESP implementation may choose to not size can be set to one. An ESP implementation may choose to not
implement an anti-replay protection. An implementation of anti- implement anti-replay protection. An implementation of anti-replay
replay protection may require the device to write the received SN for protection may require the device to write the received SN for every
every packet to stable storage. This will have the same issues as packet to stable storage. This will have the same issues as
discussed earlier with the SN. Some constrained device discussed earlier with the SN. Some constrained device
implementations may choose to not implement the optional anti-replay implementations may choose to not implement the optional anti-replay
protection. A typical example might consider an IoT device such as a protection. A typical example is an IoT device such as a temperature
temperature sensor that is sending a temperature measurement every 60 sensor that sends a temperature measurement every 60 seconds and
seconds, and that receives an acknowledgment from the receiver. In receives an acknowledgment from the receiver. In a case like this,
such cases, the ability to spoof and replay an acknowledgement is of the ability to spoof and replay an acknowledgement is of limited
limited interest and might not justify the implementation of an anti- interest and might not justify the implementation of an anti-replay
replay mechanism. Receiving peers may also use ESP anti-replay mechanism. Receiving peers may also use an ESP anti-replay mechanism
mechanism adapted to a specific application. Typically, when the adapted to a specific application. Typically, when the sending peer
sending peer is using SN based on time, anti-replay may be is using an SN based on time, anti-replay may be implemented by
implemented by discarding any packets that present a SN whose value discarding any packets that present an SN whose value is too much in
is too much in the past. Such mechanisms may consider clock drifting the past. Such mechanisms may consider clock drifting in various
in various ways in addition to acceptable delay induced by the ways in addition to acceptable delay induced by the network to avoid
network to avoid the anti replay windows rejecting legitimate the anti-replay windows rejecting legitimate packets. Receiving
packets. It could accept any SN as long as it is higher than the peers could accept any SN as long as it is higher than the previously
previously received SN. Another mechanism could be used where only received SN. Another mechanism could be used where only the received
the received time on the device is used to consider a packet as time on the device is used to consider a packet to be valid, without
valid, without looking at the SN at all. looking at the SN at all.
The SN can be represented as a 32 bit number, or as a 64 bit number, The SN can be represented as a 32-bit number or as a 64-bit number,
known as Extended Sequence Number (ESN). As per [RFC4303], support known as an "Extended Sequence Number (ESN)". As per [RFC4303],
of ESN is not mandatory and its use is negotiated via IKEv2 support of ESN is not mandatory, and its use is negotiated via IKEv2
[RFC7296]. A ESN is used for high speed links to ensure there can be [RFC7296]. An ESN is used for high-speed links to ensure there can
more than 2^32 packets before the SA needs to be rekeyed to prevent be more than 2^32 packets before the SA needs to be rekeyed to
the SN from rolling over. This assumes the SN is incremented by 1 prevent the SN from rolling over. This assumes the SN is incremented
for each packet. When the SN is incremented differently - such as by 1 for each packet. When the SN is incremented differently -- such
when time is used - rekeying needs to happen based on how the SN is as when time is used -- rekeying needs to happen based on how the SN
incremented to prevent the SN from rolling over. The security of all is incremented to prevent the SN from rolling over. The security of
data protected under a given key decreases slightly with each message all data protected under a given key decreases slightly with each
and a node must ensure the limit is not reached - even though the SN message, and a node must ensure the limit is not reached, even though
would permit it. Estimation of the maximum number of packets to be the SN would permit it. Estimation of the maximum number of packets
sent by a node is not always predicatable and large margins should be to be sent by a node is not always predictable, and large margins
used espcially as nodes could be online for much more time than should be used, especially as nodes could be online for much more
expected. Even for constrained devices, it is RECOMMENDED to time than expected. Even for constrained devices, it is RECOMMENDED
implement some rekey mechanisms (see Section 10). to implement some rekeying mechanisms (see Section 10).
5. Padding 5. Padding
Padding is required to keep the 32 bit alignment of ESP. It is also Padding is required to keep the 32-bit alignment of ESP. It is also
required for some encryption transforms that need a specific block required for some encryption transforms that need a specific block
size of input, such as ENCR_AES_CBC. ESP specifies padding in the size of input, such as ENCR_AES_CBC. ESP specifies padding in the
Pad Length byte, followed by up to 255 bytes of padding. Pad Length byte, followed by up to 255 bytes of padding.
Checking the padding structure is not mandatory, so constrained Checking the padding structure is not mandatory, so constrained
devices may omit these checks on received ESP packets. For outgoing devices may omit these checks on received ESP packets. For outgoing
ESP packets, padding must be applied as required by ESP. ESP packets, padding must be applied as required by ESP.
In some situation the padding bytes may take a fixed value. This In some situations, 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 Payload Data is of fixed size.
ESP [RFC4303] additionally provides Traffic Flow Confidentiality ESP [RFC4303] additionally provides Traffic Flow Confidentiality
(TFC) as a way to perform padding to hide traffic characteristics. (TFC) as a way to perform padding to hide traffic characteristics.
TFC is not mandatory and is negotiated with the SA management TFC is not mandatory and is negotiated with the SA management
protocol, such as IKEv2. TFC has been widely implemented but it is protocol, such as IKEv2. TFC has been widely implemented, but it is
not widely deployed for ESP traffic. It is NOT RECOMMENDED to not widely deployed for ESP traffic. It is NOT RECOMMENDED to
implement TFC for a minimal ESP. implement TFC for minimal ESP.
As a consequence, communication protection that relies on TFC would As a consequence, communication protection that relies on TFC would
be more sensitive to traffic patterns without TFC. This can leak be more sensitive to traffic patterns without TFC. This can leak
application information as well as the manifacturor or model of the application information as well as the manufacturer or model of the
device used to a passive monitoring attacker. Such information can device used to a passive monitoring attacker. Such information can
be used, for example, by an attacker in case a vulnerability is known be used, for example, by an attacker if a vulnerability is known for
for the specific device or application. In addition, some the specific device or application. In addition, some applications
application use - such as health applications - could leak important (such as health applications) could leak important privacy-oriented
privacy oriented information. information.
Constrained devices that have limited battery lifetime may prefer to Constrained devices that have a limited battery lifetime may prefer
avoid sending extra padding bytes. In most cases, the payload to avoid sending extra padding bytes. In most cases, the payload
carried by these devices is quite small, and the standard padding carried by these devices is quite small, and the standard padding
mechanism can be used as an alternative to TFC. Alternatively, any mechanism can be used as an alternative to TFC. Alternatively, any
information leak based on the size - or presence - of the packet can information leak based on the size -- or presence -- of the packet
also be addressed at the application level, before the packet is can also be addressed at the application level before the packet is
encrypted with ESP. If application packets vary between 1 to 30 encrypted with ESP. If application packets vary between 1 to 30
bytes, the application could always send 32 byte responses to ensure bytes, the application could always send 32-byte responses to ensure
all traffic sent is of identical length. To prevent leaking all traffic sent is of identical length. To prevent leaking
information that a sensor changed state, such as "temperature information that a sensor changed state, such as "temperature
changed" or "door opened", an application could send this information changed" or "door opened", an application could send this information
at regular time interval, rather than when a specific event is at regular time intervals, rather than when a specific event is
happening, even if the sensor state did not change. happening, even if the sensor state did not change.
6. Next Header (8 bit) and Dummy Packets 6. Next Header and "Dummy" Packets
ESP [RFC4303] defines the Next Header as a mandatory 8 bits field in ESP [RFC4303] defines the Next Header as a mandatory 8-bit field in
the packet. The Next header, only visible after decryption, the packet. The Next Header, only visible after decryption,
specifies the data contained in the payload. In addition, the Next specifies the data contained in the payload. In addition, the Next
Header may also carry an indication on how to process the packet Header may carry an indication on how to process the packet
[I-D.nikander-esp-beet-mode]. The Next Header can point to a dummy [BEET-ESP]. The Next Header can point to a "dummy" packet, i.e., a
packet, i.e. packets with the Next Header value set to 59 meaning "no packet with the Next Header value set to 59, meaning "no next
next header". The data following to "no next header" is unstructured header". The data following "no next header" is unstructured "dummy"
dummy data. data. (Note that this document uses the term "dummy" for consistency
with [RFC4303].)
The ability to generate and to receive and ignore dummy packets is The ability to generate, receive, and ignore "dummy" packets is
required by [RFC4303]. An implementation can omit ever generating required by [RFC4303]. An implementation can omit ever generating
and sending dummy packets. For interoperability, a minimal ESP and sending "dummy" packets. For interoperability, a minimal ESP
implementation MUST be able to process and discard dummy packets implementation MUST be able to process and discard "dummy" packets
without indicating an error. without indicating an error.
In constrained environments, sending dummy packets may have too much In constrained environments, sending "dummy" packets may have too
impact on the device lifetime, in which case dummy packets should not much impact on the device lifetime, in which case, "dummy" packets
be generated and sent. On the other hand, Constrained devices should not be generated and sent. On the other hand, constrained
running specific applications that would leak too much information by devices running specific applications that would leak too much
not generating and sending dummy packets may implement this information by not generating and sending "dummy" packets may
functionality or even implement something similar at the application implement this functionality or even implement something similar at
layer. Note also that similarly to padding and TFC that can be used the application layer. Note also that similarly to padding and TFC
to hide some traffic characteristics (see Section 5), dummy packet that can be used to hide some traffic characteristics (see
may also reveal some patterns that can be used to identify the Section 5), "dummy" packets may also reveal some patterns that can be
application. For example, an application may send dummy data to hide used to identify the application. For example, an application may
some traffic pattern. Suppose such such application sends a 1 byte send "dummy" data to hide a traffic pattern. Suppose such an
data when a change occurs. This results in sending a packet application sends a 1-byte data when a change occurs. This results
notifying a change has occurred. Dummy packet may be used to prevent in sending a packet notifying a change has occurred. "Dummy" packets
such information to be leaked by sending a 1 byte packet every second may be used to prevent such information from being leaked by sending
when the information is not changed. After an upgrade the data a 1-byte packet every second when the information is not changed.
becomes two bytes. At that point, the dummy packets do not hide After an upgrade, the data becomes 2 bytes. At that point, the
anything and having 1 byte regularly versus 2 bytes make even the "dummy" packets do not hide anything, and having 1 byte regularly
identification of the application, version easier to identify. This versus 2 bytes makes even the identification of the application
generaly makes the use of dummy packets more appropriated on high version easier to identify. This generally makes the use of "dummy"
speed links. packets more appropriate 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 this 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 [BEET-ESP] and are expected to result from an agreement between the
agreement between the peers. As a result, it SHOULD NOT be part of a peers. As a result, they SHOULD NOT be part of a minimal
minimal implementation of ESP. implementation of ESP.
7. ICV 7. ICV
The ICV depends on the cryptographic suite used. As detailed in The ICV depends on the cryptographic suite used. As detailed in
[RFC8221] authentication or authenticated encryption are RECOMMENDED [RFC8221], authentication or authenticated encryption is RECOMMENDED,
and as such the ICV field must be present with a size different from and as such, the ICV field must be present with a size different from
zero. Its length is defined by the security recommendations only. zero. Its length is defined by the security recommendations only.
8. Cryptographic Suites 8. Cryptographic Suites
The recommended algorithms to use are expected to evolve over time The recommended algorithms to use are expected to evolve over time,
and implementers SHOULD follow the recommendations provided by 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 an 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 transforms. 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 outdated ciphers). ESP can be used to authenticate only
(ENCR_NULL) or to encrypt the communication. In the latter case, (ENCR_NULL) or to encrypt the communication. In the latter case,
authenticated encryption (AEAD) is RECOMMENDED [RFC8221]. Authenticated Encryption with Associated Data (AEAD) is
RECOMMENDED [RFC8221].
2. Resilience to nonce re-use: Some transforms -including AES-GCM - 2. Resilience to Nonce Reuse: Some transforms, including AES-GCM,
are vulnerable to nonce collision with a given key. While the are vulnerable to nonce collision with a given key. While 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 sleep states or reboot. This causes an issue for devices across sleep states or reboot. This causes an issue for devices
that are configured using static keys (called manual keying) and that are configured using static keys (called "manual keying"),
manual keying should not be used with these encryption and manual keying should not be used with these encryption
algorithms. When the key is likely to be re-used across reboots, algorithms. When the key is likely to be reused across reboots,
algorithms that are nonce misuse resistant such as, for example, algorithms that are resistant to nonce misuse (for example, AES-
AES-SIV [RFC5297], AES-GCM-SIV [RFC8452] or Deoxys-II [DeoxysII] SIV [RFC5297], AES-GCM-SIV [RFC8452], and Deoxys-II [DeoxysII])
are RECOMMENDED. Note however that currently none of these are are RECOMMENDED. Note, however, that none of these are currently
yet defined for use with ESP. defined for use with ESP.
3. Interoperability: constrained devices usually only implement one 3. Interoperability: Constrained devices usually only implement one
or very few different encryption algorithm transforms. [RFC8221] or very few different encryption algorithm transforms. [RFC8221]
takes the life cycle of encryption algorithm transforms and takes the life cycle of encryption algorithm transforms and
device manufactoring into consideration in its recommendations device manufacturing into consideration in its recommendations
for mandatory-to-implement ("MTI") algorithms. for mandatory-to-implement (MTI) algorithms.
4. Power Consumption and Cipher Suite Complexity: Complexity of the 4. Power Consumption and Cipher Suite Complexity: Complexity of the
encryption algorithm transform and the energy cost associated encryption algorithm transform and the energy cost associated
with it are especially important considerations for devices that with it are especially important considerations for devices that
have limited resources or are battery powered. The battery life have limited resources or are battery powered. The battery life
might determine the lifetime of the entire device. The choice of might determine the lifetime of the entire device. When choosing
a cryptographic function should consider re-using specific a cryptographic function, reusing specific libraries or taking
libraries or to take advantage of hardware acceleration provided advantage of hardware acceleration provided by the device should
by the device. For example, if the device benefits from AES be considered. For example, if the device benefits from AES
hardware modules and uses ENCR_AES_CTR, it may prefer AUTH_AES- hardware modules and uses ENCR_AES_CTR, it may prefer AUTH_AES-
XCBC for its authentication. In addition, some devices may also XCBC for its authentication. In addition, some devices may embed
embed radio modules with hardware acceleration for AES-CCM, in radio modules with hardware acceleration for AES-CCM, in which
which case, this transform may be preferred. case, this transform may be preferred.
5. Power Consumption and Bandwidth Consumption: Reducing the payload 5. Power Consumption and Bandwidth Consumption: 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. Encryption algorithm transforms with low overhead are
strongly preferred. To reduce the overall payload size one may, strongly preferred. To reduce the overall payload size, one may,
for example: for example:
1. Use of counter-based ciphers without fixed block length (e.g. * Use 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 * Use ciphers capable of using implicit Initialization Vectors
[RFC8750]. (IVs) [RFC8750].
3. Use of ciphers recommended for IoT [RFC8221]. * Use ciphers recommended for IoT [RFC8221].
4. Avoid Padding by sending payload data which are aligned to * Avoid padding by sending payload data that are aligned to the
the cipher block length - 2 for the ESP trailer. cipher block length -- 2 bytes for the ESP trailer.
9. IANA Considerations 9. IANA Considerations
There are no IANA consideration for this document. This document has no IANA actions.
10. Security Considerations 10. Security Considerations
Security Considerations are those of [RFC4303]. In addition, this The security considerations in [RFC4303] apply to this document as
document provided security recommendations and guidance over the well. In addition, this document provides security recommendations
implementation choices for each ESP field. and guidance for the 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.
It is RECOMMENDED to use ESP in conjunction with key management It is RECOMMENDED to use ESP in conjunction with key management
protocols such as for example IKEv2 [RFC7296] or minimal IKEv2 protocols such as, for example, IKEv2 [RFC7296] or minimal IKEv2
[RFC7815]. Such mechanisms are responsible for negotiating fresh [RFC7815]. Such mechanisms are responsible for negotiating fresh
session keys as well as prevent a session key being use beyond its session keys as well as preventing a session key being used beyond
lifetime. When such mechanisms cannot be implemented, such as when its lifetime. When such mechanisms cannot be implemented, such as
the the session key is provisioned, the device MUST ensure that keys when the session key is provisioned, the device MUST ensure that keys
are not used beyond their lifetime and that the the key remains used are not used beyond their lifetime and that the key remains used in
in compliance will all security requirements across reboots - e.g. compliance with all security requirements across reboots (e.g.,
conditions on counters and nonces remains valid. conditions on counters and nonces remain valid).
When a device generates its own key or when random value such as When a device generates its own key or when random values such as
nonces are generated, the random generation MUST follow [RFC4086]. nonces are generated, the random generation MUST follow [RFC4086].
In addition, [SP-800-90A-Rev-1] provides guidance on how to build In addition, [SP-800-90A-Rev-1] provides guidance on how to build
random 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 results 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 a minimalistic way to implement ESP. In some cases, this
this may result in potentially revealing privacy sensitive pieces of 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 implementer can take the appropriate decisions given the the implementer can make 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 risk 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 a very
specific context of non randomly generated SPI might in some cases specific context of non-randomly generated SPIs might ease the
ease the determination of the device or the application. Similarly, determination of the device or the application in some cases.
padding provides limited capabilities to obfuscate the traffic Similarly, padding provides limited capabilities to obfuscate the
compared to those provided by TFC. Such consequence on privacy as traffic compared to those provided by TFC. Such consequences on
detailed in Section 5. privacy are detailed in Section 5.
12. Acknowledgment
The authors would like to thank Daniel Palomares, Scott Fluhrer, Tero
Kivinen, Valery Smyslov, Yoav Nir, Michael Richardson, Thomas Peyrin,
Eric Thormarker, Nancy Cam-Winget and Bob Briscoe for their valuable
comments. In particular Scott Fluhrer suggested including the rekey
index in the SPI. Tero Kivinen also provided multiple clarifications
and examples of deployment ESP within constrained devices with their
associated optimizations. Thomas Peyrin Eric Thormarker and Scott
Fluhrer suggested and clarified the use of transform resilient to
nonce misuse.
13. References 12. References
13.1. Normative References 12.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
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker,
"Randomness Requirements for Security", BCP 106, RFC 4086, "Randomness Requirements for Security", BCP 106, RFC 4086,
DOI 10.17487/RFC4086, June 2005, DOI 10.17487/RFC4086, June 2005,
<https://www.rfc-editor.org/info/rfc4086>. <https://www.rfc-editor.org/info/rfc4086>.
skipping to change at page 14, line 11 skipping to change at line 610
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,
DOI 10.17487/RFC8750, March 2020, DOI 10.17487/RFC8750, March 2020,
<https://www.rfc-editor.org/info/rfc8750>. <https://www.rfc-editor.org/info/rfc8750>.
13.2. Informative References 12.2. Informative References
[DeoxysII] Jeremy, J. J., Ivica, I. N., Thomas, T. P., and Y. S. [BEET-ESP] Nikander, P. and J. Melen, "A Bound End-to-End Tunnel
Yannick, "Deoxys v1.41", October 2016, (BEET) mode for ESP", Work in Progress, Internet-Draft,
draft-nikander-esp-beet-mode-09, 5 August 2008,
<https://datatracker.ietf.org/doc/html/draft-nikander-esp-
beet-mode-09>.
[DeoxysII] Jean, J., Nikolić, I., Peyrin, T., and Y. Seurin, "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] [EHC-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-08, 13 May Internet-Draft, draft-mglt-ipsecme-diet-esp-08, 13 May
2022, <https://www.ietf.org/archive/id/draft-mglt-ipsecme- 2022, <https://datatracker.ietf.org/doc/html/draft-mglt-
diet-esp-08.txt>. ipsecme-diet-esp-08>.
[I-D.mglt-ipsecme-ikev2-diet-esp-extension] [EHC-IKEv2]
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-02, 13 Draft, draft-mglt-ipsecme-ikev2-diet-esp-extension-02, 13
May 2022, <https://www.ietf.org/archive/id/draft-mglt- May 2022, <https://datatracker.ietf.org/doc/html/draft-
ipsecme-ikev2-diet-esp-extension-02.txt>. mglt-ipsecme-ikev2-diet-esp-extension-02>.
[I-D.nikander-esp-beet-mode]
Nikander, P. and J. Melen, "A Bound End-to-End Tunnel
(BEET) mode for ESP", Work in Progress, Internet-Draft,
draft-nikander-esp-beet-mode-09, 5 August 2008,
<https://www.ietf.org/archive/id/draft-nikander-esp-beet-
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
Standard (AES)", RFC 5297, DOI 10.17487/RFC5297, October Standard (AES)", RFC 5297, DOI 10.17487/RFC5297, October
2008, <https://www.rfc-editor.org/info/rfc5297>. 2008, <https://www.rfc-editor.org/info/rfc5297>.
[RFC8452] Gueron, S., Langley, A., and Y. Lindell, "AES-GCM-SIV: [RFC8452] Gueron, S., Langley, A., and Y. Lindell, "AES-GCM-SIV:
Nonce Misuse-Resistant Authenticated Encryption", Nonce Misuse-Resistant Authenticated Encryption",
RFC 8452, DOI 10.17487/RFC8452, April 2019, RFC 8452, DOI 10.17487/RFC8452, April 2019,
<https://www.rfc-editor.org/info/rfc8452>. <https://www.rfc-editor.org/info/rfc8452>.
[SP-800-90A-Rev-1] [SP-800-90A-Rev-1]
Elain, E. B. and J. K. Kelsey, "Recommendation for Random Barker, E. and J. Kelsey, "Recommendation for Random
Number Generation Using Deterministic Random Bit Number Generation Using Deterministic Random Bit
Generators", <https://csrc.nist.gov/publications/detail/ Generators", NIST SP 800-90A Rev 1,
sp/800-90a/rev-1/final>. DOI 10.6028/NIST.SP.800-90Ar1, June 2015,
<https://csrc.nist.gov/publications/detail/sp/800-90a/rev-
1/final>.
Acknowledgments
The authors would like to thank Daniel Palomares, Scott Fluhrer, Tero
Kivinen, Valery Smyslov, Yoav Nir, Michael Richardson, Thomas Peyrin,
Eric Thormarker, Nancy Cam-Winget, and Bob Briscoe for their valuable
comments. In particular, Scott Fluhrer suggested including the rekey
index in the SPI. Tero Kivinen also provided multiple clarifications
and examples of ESP deployment within constrained devices with their
associated optimizations. Thomas Peyrin, Eric Thormarker, and Scott
Fluhrer suggested and clarified the use of transform resilient to
nonce misuse. The authors would also like to thank Mohit Sethi for
his support as the LWIG Working Group Chair.
Authors' Addresses Authors' Addresses
Daniel Migault Daniel Migault
Ericsson Ericsson
8400 boulevard Decarie 8275 Rte Transcanadienne
Montreal, QC H4P 2N2 Saint-Laurent QC H4S 0B6
Canada Canada
Email: daniel.migault@ericsson.com Email: daniel.migault@ericsson.com
Tobias Guggemos Tobias Guggemos
LMU Munich LMU Munich
MNM-Team MNM-Team
Oettingenstr. 67 Oettingenstr. 67
80538 Munich 80538 Munich
Germany Germany
Email: guggemos@mnm-team.org Email: guggemos@mnm-team.org
 End of changes. 96 change blocks. 
365 lines changed or deleted 369 lines changed or added

This html diff was produced by rfcdiff 1.48.