draft-ietf-lwig-minimal-esp-08.txt | draft-ietf-lwig-minimal-esp-09.txt | |||
---|---|---|---|---|
Light-Weight Implementation Guidance (lwig) D.M. Migault | Light-Weight Implementation Guidance (lwig) D.M. Migault | |||
Internet-Draft Ericsson | Internet-Draft Ericsson | |||
Intended status: Informational T.G. Guggemos | Intended status: Informational T.G. Guggemos | |||
Expires: 12 May 2022 LMU Munich | Expires: 8 October 2022 LMU Munich | |||
8 November 2021 | 6 April 2022 | |||
Minimal IP Encapsulating Security Payload (ESP) | Minimal IP Encapsulating Security Payload (ESP) | |||
draft-ietf-lwig-minimal-esp-08 | draft-ietf-lwig-minimal-esp-09 | |||
Abstract | Abstract | |||
This document describes the minimal properties IP Encapsulating | This document describes the minimal properties IP Encapsulating | |||
Security Payload (ESP) implementation needs to meet to remain | Security Payload (ESP) implementation needs to meet to remain | |||
interoperable with the standard RFC4303 ESP. Such a minimal version | interoperable with the standard RFC4303 ESP. Such a minimal version | |||
of ESP is not intended to become a replacement of the RFC 4303 ESP. | of ESP is not intended to become a replacement of the RFC 4303 ESP. | |||
Instead, a minimal implementation is expected to be optimized for | Instead, a minimal implementation is expected to be optimized for | |||
constrained environment while remaining interoperable with | constrained environment while remaining interoperable with | |||
implementations of RFC 4303 ESP. In addition, this document also | implementations of RFC 4303 ESP. In addition, this document also | |||
skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
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 12 May 2022. | This Internet-Draft will expire on 8 October 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 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 Simplified BSD License text | extracted from this document must include Revised BSD License text as | |||
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 Simplified BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 3 | 2. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 3 | |||
2.1. Considerations over SPI generation . . . . . . . . . . . 4 | 2.1. Considerations over SPI generation . . . . . . . . . . . 4 | |||
3. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 5 | 3. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 5 | |||
4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
5. Next Header (8 bit) . . . . . . . . . . . . . . . . . . . . . 9 | 5. Next Header (8 bit) . . . . . . . . . . . . . . . . . . . . . 9 | |||
6. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
skipping to change at page 2, line 45 ¶ | skipping to change at page 2, line 45 ¶ | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
1. 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 (a form of partial | connectionless integrity, an anti-replay service (a form of partial | |||
sequence integrity) and limited traffic flow confidentiality (TFC) | sequence integrity) and limited traffic 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 major multipurpose Operating Systems (OS). The ESP and | |||
IPsec suite is usually implemented in a complete way to fit multiple | IPsec suite is usually implemented in a complete way to fit multiple | |||
purpose usage of these OS. However, completeness of the IPsec suite | purpose usage of these OSes. However, completeness of the IPsec | |||
as well as multipurpose scope of these OS is often performed at the | suite as well as multipurpose scope of these OSes is often performed | |||
expense of resources, or performance. As a result, constrained | at the expense of resources, or performance. As a result, | |||
devices are likely to have their own implementation of ESP optimized | constrained devices are likely to have their own implementation of | |||
and adapted to their specificities such as limiting the number of | ESP optimized and adapted to their specificities such as limiting the | |||
flash writes (for each packet or across wake time), handling frequent | number of flash writes (for each packet or across wake | |||
wakeup and sleep state, limiting wakeup time, or reducing the use of | time), handling frequent wakeup and sleep state, limiting wakeup | |||
random generation. With the adoption of IPsec by IoT devices with | time, or reducing the use of random generation. With the adoption of | |||
minimal 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], it becomes crucial that | [I-D.mglt-ipsecme-ikev2-diet-esp-extension], it becomes crucial that | |||
ESP implementation designed for constrained devices remains inter- | ESP implementation designed for constrained devices remain inter- | |||
operable with the standard ESP implementation to avoid a fragmented | operable with the standard ESP implementation to avoid a fragmented | |||
usage of ESP. This document describes the minimal properties an ESP | usage of ESP. This document describes the minimal properties an ESP | |||
implementation needs to meet to remain interoperable with [RFC4303] | implementation needs to meet to remain interoperable with [RFC4303] | |||
ESP. In addition, this document also provides a set of options to | ESP. In addition, this document also provides a set of options to | |||
implement these properties under certain constrained environments. | implement these properties under certain constrained environments. | |||
This document does not update or modify RFC 4303, but provides a | This document does not update or modify RFC 4303, but provides a | |||
compact description of how to implement the minimal version of the | compact description of how to implement the minimal version of the | |||
protocol. RFC 4303 remains the authoritative description. | 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 | |||
skipping to change at page 4, line 13 ¶ | skipping to change at page 4, line 13 ¶ | |||
is not allowed to be removed. | 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 only using the SPI. On the other | |||
hand, nodes supporting multicast communications must also use the IP | hand, nodes supporting multicast communications must also use the IP | |||
addresses and thus SA lookup needs to be performed using the longest | addresses and thus SA lookup needs to be performed using the longest | |||
match. | match. | |||
For nodes supporting only unicast communications, this document | For nodes supporting only unicast communications, this document | |||
recommends to index SA with the SPI only. The index may be based on | recommends indexing SA with the SPI only. The index may be based on | |||
the full 32 bits of SPI or a subset of these bits. The node may | the full 32 bits of SPI or a subset of these bits. The node may | |||
require a combination of the SPI as well as other parameters (like | require a combination of the SPI as well as other parameters (like | |||
the IP 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 internally | |||
and it must not be sent on the wire. | and it must not be sent on the wire. | |||
[RFC4303] does not require the SPI to be randomly generated over 32 | [RFC4303] does not require the SPI to be randomly generated over 32 | |||
bits. However, this is the recommended way to generate SPIs as it | bits. However, this is the recommended way to generate SPIs as it | |||
provides some privacy benefits and avoids, for example, correlation | provides some privacy benefits and avoids, for example, correlation | |||
between ESP communications. To randomly generate a 32 bit SPI, the | between ESP communications. To randomly generate a 32 bit SPI, the | |||
node generates a random 32 bit valueand checks it does not fall in | node generates a random 32 bit value and checks it does not fall in | |||
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 SPI is re-generated until an | |||
acceptable value is found. | acceptable value is found. | |||
However, some constrained nodes may be less concerned by the privacy | However, some constrained nodes may be less concerned by the privacy | |||
properties associated to SPIs randomly generated. Examples of such | properties associated to SPIs randomly generated. Examples of such | |||
nodes might include sensors looking to reduce their code complexity, | nodes might include sensors looking to reduce their code complexity, | |||
in which case the use of a predictive function to generate the SPI | in which case 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 example of such predictable function may consider the combination | |||
skipping to change at page 5, line 6 ¶ | skipping to change at page 5, line 6 ¶ | |||
SPI that are not randomly generated over 32 bits may lead to privacy | SPI that are not randomly generated over 32 bits may lead to 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 | Note that SPI value is used only for inbound traffic, as such the SPI | |||
negotiated with IKEv2 [RFC7296] or [RFC7815] by a peer, is the value | negotiated with IKEv2 [RFC7296] or [RFC7815] by a peer, is the value | |||
used by the remote peer when it sends traffic. As SPI is only used | used by the remote peer when it sends traffic. As SPI is only used | |||
for inbound traffic by the peer, this allows each peer to manage the | for inbound traffic by the peer, this allows each peer to manage the | |||
set of SPIs used for its inbound traffic. Similarly, the privacy | set of SPIs used for its inbound traffic. Similarly, the privacy | |||
concerns associated with the generation of nonrandom SPI is also | concerns associated with the generation of non random SPI is also | |||
limited to the incoming traffic. | limited to the incoming traffic. | |||
When alternate designs are considered, it is likely that the number | When alternate designs are considered, it is likely that the number | |||
of possible SPIs will be limited. This limit should both consider | of possible SPIs will be limited. This limit should both consider | |||
the number of inbound SAs - possibly per IP addresses - as well as | the number of inbound SAs - possibly per IP addresses - as well as | |||
the ability for the node to rekey. SPI can typically be used to | the ability for the node to rekey. SPI can typically be used to | |||
implement a key update with the SPI indicating the key is being used. | implement a key update with the SPI indicating the key is being used. | |||
For example, a SPI might be encoded with the Security Association | For example, a SPI might be encoded with the Security Association | |||
Database (SAD) entry on a subset of bytes (for example 3 bytes), | Database (SAD) entry on a subset of bytes (for example 3 bytes), | |||
while the remaining byte indicates the rekey index. | while the remaining byte indicates the rekey index. | |||
The use of a smaller number of SPIs across communications comes with | The use of a smaller number of SPIs across communications comes with | |||
privacy and security concerns. Typically some specific values or | privacy and security concerns. Typically, some specific values or | |||
subset of SPI values may reveal the models or manufacturer of the | subset of SPI values may reveal the models or manufacturer of the | |||
node implementing ESP. This may raise some privacy issues as an | node implementing ESP. This may raise some privacy issues as an | |||
observer is likely to be able to determine the constrained devices of | observer is likely to be able to determine the constrained devices of | |||
the network. In some cases, these nodes may host a very limited | the network. In some cases, these nodes may host a very limited | |||
number of applications - typically a single application - in which | number of applications - typically a single application - in which | |||
case the SPI would provide some information related to the | case the SPI would provide some information related to the | |||
application of the user. In addition, the device or application may | application of the user. In addition, the device or application may | |||
be associated with some vulnerabilities, in which case specific SPI | be associated with some vulnerabilities, in which case specific SPI | |||
values may be used by an attacker to discover vulnerabilities. | values may be used by an attacker to discover vulnerabilities. | |||
While the use of randomly generated SPIs may reduce the leakage or | While the use of randomly generated SPIs may reduce the leakage or | |||
privacy of security related information by ESP itself, these | privacy of security related information by ESP itself, these pieces | |||
information may also be leaked otherwise. As a result, a privacy | of information may also be leaked otherwise. As a result, a privacy | |||
analysis should consider at least the type of information as well the | analysis should consider at least the type of information as well the | |||
traffic pattern before determining non random SPI can be used. | traffic pattern before determining a non random SPI can be used. | |||
Typically, temperature sensors, wind sensors, used outdoors may not | Typically, temperature sensors, wind sensors, used outdoors may not | |||
leak privacy sensitive information and most of its traffic is | leak privacy sensitive information and most of its traffic is | |||
expected to be outbound traffic. When used indoors, a sensor that | expected to be outbound traffic. When used indoors, a sensor that | |||
reports every minute an encrypted status of the door (closed or | reports every minute an encrypted status of the door (closed or | |||
opened) may leak truly little privacy sensitive information outside | opened) may leak truly little privacy sensitive information outside | |||
the local network. In both cases, if the state of the sensor doesn't | the local network. In both cases, if the state of the sensor doesn't | |||
leak privacy info, a randomized SPI is not necessary. | leak privacy info, a randomized SPI is not necessary. | |||
3. Sequence Number(SN) (32 bit) | 3. Sequence Number(SN) (32 bit) | |||
skipping to change at page 7, line 40 ¶ | skipping to change at page 7, line 40 ¶ | |||
lifetime of a session may be considered. However, when the SN is | lifetime of a session may be considered. However, when the SN is | |||
incremented differently - such as when time is used - the maximum | incremented differently - such as when time is used - the maximum | |||
value SN needs to be considered instead. Note that the limit of | value SN needs to be considered instead. Note that the limit of | |||
messages being sent is primarily determined by the security | messages being sent is primarily determined by the security | |||
associated with the key rather than the SN. The security of all data | associated with the key rather than the SN. The security of all data | |||
protected under a given key decreases slightly with each message and | protected under a given key decreases slightly with each message 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 always challenging and as such should be considered | |||
cautiously as nodes could be online for much more time than expected. | cautiously as nodes could be online for much more time than expected. | |||
Even for constrained devices, this document recommends to implement | Even for constrained devices, this document recommends implementing | |||
some rekey mechanisms (see Section 9). | some rekey mechanisms (see Section 9). | |||
4. Padding | 4. Padding | |||
The purpose of padding is to respect the 32 bit alignment of ESP or | The purpose of padding is to respect the 32 bit alignment of ESP or | |||
block size expected by an encryption transform - such as AES-CBC for | block size expected by an encryption transform - such as AES-CBC for | |||
example. ESP must have at least one padding byte Pad Length that | example. ESP must have at least one padding byte Pad Length that | |||
indicates the padding length. ESP padding bytes are generated by a | indicates the padding length. ESP padding bytes are generated by a | |||
succession of unsigned bytes starting with 1, 2, 3 with the last byte | 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 | set to Pad Length, where Pad Length designates the length of the | |||
padding bytes. | padding bytes. | |||
Checking the padding structure is not mandatory, so the constrained | Checking the padding structure is not mandatory, so the constrained | |||
device may not proceed to such checks, however, in order to | device may omit such checks, however, in order to interoperate with | |||
interoperate with existing ESP implementations, it must build the | existing ESP implementations, it must build the padding bytes as | |||
padding bytes as recommended 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 fix 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] also provides Traffic Flow Confidentiality (TFC) as a | |||
way to perform padding to hide traffic characteristics, which differs | way to perform padding to hide traffic characteristics, which differs | |||
from respecting a 32 bit alignment. TFC is not mandatory and must be | from respecting a 32 bit alignment. TFC is not mandatory and must be | |||
negotiated with the SA management protocol. TFC has not yet being | negotiated with the SA management protocol. TFC has not yet being | |||
widely adopted for standard ESP traffic. One possible reason is that | widely adopted for standard ESP traffic. One possible reason is that | |||
it requires to shape the traffic according to one traffic pattern | it requires to shape the traffic according to one traffic pattern | |||
that needs to be maintained. This is likely to require extra | that needs to be maintained. This is likely to require extra | |||
processing as well as providing a "well recognized" traffic shape | processing as well as providing a "well recognized" traffic shape | |||
which could end up being counterproductive. As such, this document | which could end up being counterproductive. As such, this document | |||
skipping to change at page 8, line 39 ¶ | skipping to change at page 8, line 39 ¶ | |||
disclosed on the specific device. In addition, some application use | disclosed on the specific device. In addition, some application use | |||
- such as health applications - may also reveal important privacy | - such as health applications - may also reveal important privacy | |||
oriented information. | oriented information. | |||
Some constrained nodes that have limited battery lifetime may also | Some constrained nodes that have limited battery lifetime may also | |||
prefer avoiding sending extra padding bytes. However, the same nodes | prefer avoiding sending extra padding bytes. However, the same nodes | |||
may also be very specific to an application and device. As a result, | may also be very specific to an application and device. As a result, | |||
they are also likely to be the main target for traffic shaping. In | they are also likely to be the main target for traffic shaping. In | |||
most cases, the payload carried by these nodes is quite small, and | most cases, the payload carried by these nodes is quite small, and | |||
the standard padding mechanism may also be used as an alternative to | the standard padding mechanism may also be used as an alternative to | |||
TFC, with a sufficient tradeoff between the require energy to send | TFC, with a sufficient tradeoff between the required energy to send | |||
additional payload and the exposure to traffic shaping attacks. In | additional payload and the exposure to traffic shaping attacks. In | |||
addition, the information leaked by the traffic shaping may also be | addition, the information leaked by the traffic shaping may also be | |||
addressed by the application level. For example, it is preferred to | addressed by the application level. For example, it is preferred to | |||
have a sensor sending some information at regular time interval, | have a sensor sending some information at regular time interval, | |||
rather than when a specific event is happening. Typically, a sensor | rather than when a specific event is happening. Typically, a sensor | |||
monitoring the temperature, or a door is expected to send regularly | monitoring the temperature, or a door is expected to send regularly | |||
the information - i.e. the temperature of the room or whether the | the information - i.e. the temperature of the room or whether the | |||
door is closed or open) instead of only sending the information when | door is closed or open) instead of only sending the information when | |||
the temperature has raised or when the door is being opened. | the temperature has raised or when the door is being opened. | |||
skipping to change at page 9, line 45 ¶ | skipping to change at page 9, line 45 ¶ | |||
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. | |||
6. ICV | 6. ICV | |||
The ICV depends on the cryptographic suite used. Currently [RFC8221] | The ICV depends on the cryptographic suite used. Currently, | |||
only recommends cryptographic suites with an ICV which makes the ICV | [RFC8221] only recommends cryptographic suites with an ICV which | |||
a mandatory field. | makes the ICV a mandatory field. | |||
As detailed in [RFC8221] authentication or authenticated encryption | As detailed in [RFC8221] authentication or authenticated encryption | |||
are recommended and as such the ICV field must be present with a size | are recommended and as such the ICV field must be present with a size | |||
different from zero. It length is defined by the security | different from zero. Its length is defined by the security | |||
recommendations only. | recommendations only. | |||
7. Cryptographic Suites | 7. Cryptographic Suites | |||
The cryptographic suites implemented are an important component of | The cryptographic suites implemented are an important component of | |||
ESP. The recommended algorithms to use are expected to evolve over | ESP. The recommended algorithms to use are expected to evolve over | |||
time 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. The | This section lists some of the criteria that may be considered. The | |||
skipping to change at page 10, line 32 ¶ | skipping to change at page 10, line 32 ¶ | |||
outdated ciphers). ESP can be used to authenticate only or to | outdated ciphers). ESP can be used to authenticate only or to | |||
encrypt the communication. In the latter case, authenticated | encrypt the communication. In the latter case, authenticated | |||
encryption must always be considered [RFC8221]. | encryption must always be considered [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 very sensitive to nonce collision with a given key. While | |||
the generation of the nonce may prevent such collision during a | the 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 reboot. This causes an issue for devices that are | |||
configured with a key. When the key is likely to be re-used | configured with a key. When the key is likely to be re-used | |||
across reboots, this document recommends to consider algorithms | across reboots, this document recommends considering algorithms | |||
that are nonce misuse resistant such as, for example, AES-SIV | that are nonce misuse resistant such as, for example, AES-SIV | |||
[RFC5297], AES-GCM-SIV [RFC8452] or Deoxys-II [DeoxysII]. Note | [RFC5297], AES-GCM-SIV [RFC8452] or Deoxys-II [DeoxysII]. Note | |||
however that currently none of them has yet been defined for ESP. | however that currently none of them has yet been defined for ESP. | |||
3. Interoperability: Interoperability considers the encryption | 3. Interoperability: Interoperability considers the encryption | |||
algorithm transforms shared with the other nodes. Note that it | algorithm transforms shared with the other nodes. Note that it | |||
is not because an encryption algorithm transform is widely | is not because an encryption algorithm transform is widely | |||
deployed that it is secured. As a result, security should not be | deployed that it is secured. As a result, security should not be | |||
weakened for interoperability. [RFC8221] and successors consider | weakened for interoperability. [RFC8221] and successors consider | |||
the life cycle of encryption algorithm transforms sufficiently | the life cycle of encryption algorithm transforms sufficiently | |||
skipping to change at page 12, line 10 ¶ | skipping to change at page 12, line 10 ¶ | |||
management protocols such as for example IKEv2 [RFC7296] or minimal | management protocols such as for example IKEv2 [RFC7296] or minimal | |||
IKEv2 [RFC7815]. Such mechanisms are responsible for negotiating | IKEv2 [RFC7815]. Such mechanisms are responsible for negotiating | |||
fresh session keys as well as prevent a session key being use beyond | fresh session keys as well as prevent a session key being use beyond | |||
its lifetime. When such mechanisms cannot be implemented and the | its lifetime. When such mechanisms cannot be implemented and the | |||
session key is, for example, provisioned, the nodes must ensure that | session key is, for example, provisioned, the nodes must ensure that | |||
keys are not used beyond their lifetime and that the appropriate use | keys are not used beyond their lifetime and that the appropriate use | |||
of the key remains across reboots - e.g. conditions on counters and | of the key remains across reboots - e.g. conditions on counters and | |||
nonces remains valid. | nonces remains valid. | |||
When a node generates its key or when random value such as nonces are | When a node generates its key or when random value such as nonces are | |||
generated, the random generation must follow [RFC4086]. In addition | generated, the random generation must follow [RFC4086]. In addition, | |||
[SP-800-90A-Rev-1] provides appropriated guidance to build random | [SP-800-90A-Rev-1] provides appropriated guidance to build random | |||
generators based on deterministic random functions. | generators based on deterministic random functions. | |||
10. Acknowledgment | 10. 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 to include 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 provided also 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. | |||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
End of changes. 23 change blocks. | ||||
40 lines changed or deleted | 40 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/ |