idnits 2.17.1 draft-ietf-lwig-minimal-esp-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (November 2, 2020) is 1263 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: A later version (-12) exists of draft-mglt-ipsecme-diet-esp-07 == Outdated reference: A later version (-04) exists of draft-mglt-ipsecme-ikev2-diet-esp-extension-01 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Light-Weight Implementation Guidance (lwig) D. Migault 3 Internet-Draft Ericsson 4 Intended status: Informational T. Guggemos 5 Expires: May 6, 2021 LMU Munich 6 November 2, 2020 8 Minimal ESP 9 draft-ietf-lwig-minimal-esp-02 11 Abstract 13 This document describes a minimal implementation of the IP 14 Encapsulation Security Payload (ESP) defined in RFC 4303. Its 15 purpose is to enable implementation of ESP with a minimal set of 16 options to remain compatible with ESP as described in RFC 4303. A 17 minimal version of ESP is not intended to become a replacement of the 18 RFC 4303 ESP, but instead to enable a limited implementation to 19 interoperate with implementations of RFC 4303 ESP. 21 This document describes what is required from RFC 4303 ESP as well as 22 various ways to optimize compliance with RFC 4303 ESP. 24 This document does not update or modify RFC 4303, but provides a 25 compact description of how to implement the minimal version of the 26 protocol. If this document and RFC 4303 conflicts then RFC 4303 is 27 the authoritative description. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at https://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on May 6, 2021. 46 Copyright Notice 48 Copyright (c) 2020 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (https://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Requirements Notation . . . . . . . . . . . . . . . . . . . . 2 64 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 65 3. Security Parameter Index (SPI) (32 bit) . . . . . . . . . . . 4 66 4. Sequence Number(SN) (32 bit) . . . . . . . . . . . . . . . . 6 67 5. Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 68 6. Next Header (8 bit) . . . . . . . . . . . . . . . . . . . . . 8 69 7. ICV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 70 8. Cryptographic Suites . . . . . . . . . . . . . . . . . . . . 9 71 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 72 10. Security Considerations . . . . . . . . . . . . . . . . . . . 11 73 11. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 11 74 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 75 12.1. Normative References . . . . . . . . . . . . . . . . . . 11 76 12.2. Informative References . . . . . . . . . . . . . . . . . 12 77 Appendix A. Document Change Log . . . . . . . . . . . . . . . . 14 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 80 1. Requirements Notation 82 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 83 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 84 "OPTIONAL" in this document are to be interpreted as described in 85 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 86 capitals, as shown here. 88 2. Introduction 90 ESP [RFC4303] is part of the IPsec protocol suite [RFC4301]. IPsec 91 is used to provide confidentiality, data origin authentication, 92 connectionless integrity, an anti-replay service (a form of partial 93 sequence integrity) and limited traffic flow confidentiality. 95 Figure 1 describes an ESP Packet. Currently ESP is implemented in 96 the kernel of major multi purpose Operating Systems (OS). The ESP 97 and IPsec suite is usually implemented in a complete way to fit 98 multiple purpose usage of these OS. However, completeness of the 99 IPsec suite as well as multi purpose scope of these OS is often 100 performed at the expense of resources, or a lack of performance. As 101 a result, constraint devices are likely to have their own 102 implementation of ESP optimized and adapted to their specificities. 103 With the adoption of IPsec by IoT devices with minimal IKEv2 104 [RFC7815] and ESP Header Compression (EHC) with 105 [I-D.mglt-ipsecme-diet-esp] or 106 [I-D.mglt-ipsecme-ikev2-diet-esp-extension], it becomes crucial that 107 ESP implementation designed for constraint devices remain inter- 108 operable with the standard ESP implementation to avoid a fragmented 109 usage of ESP. This document describes the the minimal properties and 110 ESP implementation needs to meet. 112 For each field of the ESP packet represented in Figure 1 this 113 document provides recommendations and guidance for minimal 114 implementations. The primary purpose of Minimal ESP is to remain 115 interoperable with other nodes implementing RFC 4303 ESP, while 116 limiting the standard complexity of the implementation. 118 0 1 2 3 119 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 120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- 121 | Security Parameters Index (SPI) | ^Int. 122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- 123 | Sequence Number | |ered 124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ---- 125 | Payload Data* (variable) | | ^ 126 ~ ~ | | 127 | | |Conf. 128 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- 129 | | Padding (0-255 bytes) | |ered* 130 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 131 | | Pad Length | Next Header | v v 132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------ 133 | Integrity Check Value-ICV (variable) | 134 ~ ~ 135 | | 136 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 138 Figure 1: ESP Packet Description 140 3. Security Parameter Index (SPI) (32 bit) 142 According to the [RFC4303], the SPI is a mandatory 32 bits field and 143 is not allowed to be removed. 145 The SPI has a local significance to index the Security Association 146 (SA). From [RFC4301] section 4.1, nodes supporting only unicast 147 communications can index their SA only using the SPI. On the other 148 hand, nodes supporting multicast communications must also use the IP 149 addresses and thus SA lookup needs to be performed using the longest 150 match. 152 For nodes supporting only unicast communications, it is RECOMMENDED 153 to index SA with the SPI only. The index MAY be based on the full 32 154 bits of SPI or a subset of these bits. Some other local constraints 155 on the node may require a combination of the SPI as well as other 156 parameters to index the SA. 158 Values 0-255 MUST NOT be used. As per section 2.1 of [RFC4303], 159 values 1-255 are reserved and 0 is only allowed to be used internal 160 and it MUST NOT be send on the wire. 162 It is RECOMMENDED to index each inbound session with a SPI randomly 163 generate over 32 bits. Upon the generation of a SPI the peer checks 164 the SPI is not already used and does not fall in the 0-255 range. If 165 the SPI has an acceptable value, it is used to index the inbound 166 session, otherwise the SPI is re-generated until an acceptable value 167 is found. A random generation provides a stateless way to generate 168 the SPIs, while keeping the probability of collision between SPIs 169 relatively low. 171 However, for some constrained nodes, generating and handling 32 bit 172 random SPI may consume too much resource, in which case SPI can be 173 generated using predictable functions or end up in a using a subset 174 of the possible values for SPI. In fact, the SPI does not 175 necessarily need to be randomly generated. A node provisioned with 176 keys by a third party - e.g. that does not generate them - and that 177 uses a transform that does not needs random data may not have such 178 random generators. However, non random SPI and restricting their 179 possible values MAY lead to privacy and security concerns. As a 180 result, this alternative should be considered for devices that would 181 be strongly impacted by the generation of a random SPI and after 182 understanding the privacy and security impact of generating non 183 random SPI. 185 When a constrained node limits the number of possible SPIs this limit 186 should both consider the number of inbound SAs - possibly per IP 187 addresses - as well as the ability for the node to rekey. SPI can 188 typically be used to proceed to clean key update and the SPI value 189 may be used to indicate which key is being used. This can typically 190 be implemented by a SPI being encoded with the SAD entry on a subset 191 of bytes (for example 3 bytes), while the remaining byte is left to 192 indicate the rekey index. 194 Note that SPI value is used only for inbound traffic, as such the SPI 195 negotiated with IKEv2 [RFC7296] or [RFC7815] by a peer, is the value 196 used by the remote peer when its sends traffic. As SPI are only used 197 for inbound traffic by the peer, this allows each peer to manage the 198 set of SPIs used for its inbound traffic. 200 The use of a limited number of SPIs or non random SPIs come with 201 security or privacy drawbacks. Typically, a passive attacker may 202 derive information such as the number of constraint devices 203 connecting the remote peer, and in conjunction with data rate, the 204 attacker may eventually determine the application the constraint 205 device is associated to. If the SPIs are set by a manufacturer or by 206 some software application, the SPI may leak in an obvious way the 207 type of sensor, the application involved or the model of the 208 constraint device. When identification of the application or the 209 hardware is associated to privacy, the SPI MUST be randomly 210 generated. However, one needs to realize that in this case this is 211 likely to be sufficient and a thorough privacy analysis is required. 212 More specifically, traffic pattern may leak sufficient information in 213 itself. In other words, privacy leakage is a complex and the use of 214 random SPI is unlikely to be sufficient. 216 As the general recommendation is to randomly generate the SPI, 217 constraint devices that will use a (very) limited number of SPIs are 218 expected to be very constraint devices with very limited 219 capabilities, where the use of randomly generated SPI may prevent 220 them to implement IPsec. In this case the ability to provision non 221 random SPI enables these devices to secure their communications. 222 These devices, due to there limitations, are expected to provide 223 limited information and how the use of non random SPI impacts privacy 224 requires further analysis. Typically temperature sensors, wind 225 sensors, used outdoor do not leak privacy sensitive information. 226 When used indoor, privacy leakage outside the local network may be 227 limited. 229 As far as security is concerned, revealing the type of application or 230 model of the constraint device could be used to identify the 231 vulnerabilities the constraint device is subject to. This is 232 especially sensitive for constraint devices where patches or software 233 updates will be challenging to operate. As a result, these devices 234 may remain vulnerable for relatively long period. In addition, 235 predictable SPIs enable an attacker to forge packets with a valid 236 SPI. Such packet will not be rejected due to an SPI mismatch, but 237 instead after the signature check which requires more resource and 238 thus make DoS more efficient, especially for devices powered by 239 batteries. 241 4. Sequence Number(SN) (32 bit) 243 According to [RFC4303], the Sequence Number (SN) is a mandatory 32 244 bits field in the packet. 246 The SN is set by the sender so the receiver can implement anti-replay 247 protection. The SN is derived from any strictly increasing function 248 that guarantees: if packet B is sent after packet A, then SN of 249 packet B is strictly greater then the SN of packet A. 251 Some constraint devices may establish communication with specific 252 devices, like a specific gateway, or nodes similar to them. As a 253 result, the sender may know whereas the receiver implements anti- 254 replay protection or not. Even though the sender may know the 255 receiver does not implement anti replay protection, the sender MUST 256 implement a always increasing function to generate the SN. 258 Usually, SN is generated by incrementing a counter for each packet 259 sent. A constraint device may avoid maintaining this context and use 260 another source that is known to always increase. Typically, 261 constraint nodes using 802.15.4 Time Slotted Channel Hopping (TSCH), 262 whose communication is heavily dependent on time, can take advantage 263 of their clock to generate the SN. This would guarantee a strictly 264 increasing function, and avoid storing any additional values or 265 context related to the SN. When the use of a clock is considered, 266 one should take care that packets associated to a given SA are not 267 sent with the same time value. Note however that standard receivers 268 are generally configured with incrementing counters and, if not 269 appropriately configured, the use of a significantly larger SN may 270 result in the packet out of the receiver's windows and that packet 271 being discarded. 273 For inbound traffic, it is RECOMMENDED that any receiver provide a 274 anti-replay protection, and the size of the window depends on the 275 ability of the network to deliver packet out of order. As a result, 276 in environment where out of order packets is not possible the window 277 size can be set to one. However, while RECOMMENDED, there is no 278 requirements to implement an anti replay protection mechanism 279 implemented by IPsec. A node MAY drop anti-replay protection 280 provided by IPsec, and instead implement its own internal mechanism. 282 SN can be encoded over 32 bits or 64 bits - known as Extended 283 Sequence Number (ESN). As per [RFC4303], the support ESN is not 284 mandatory. The determination of the use of ESN is based on the 285 largest possible value a SN can take over a session. When SN is 286 incremented for each packet, the number of packets sent over the life 287 time of a session may be considered. However, when the SN is 288 incremented differently - such as when time is used - the maximum 289 value SN needs to be considered instead. Note that the limit of 290 messages being sent is primary determined by the security associated 291 to the key rather than the SN. The security of all data protected 292 under a given key decreases slightly with each message and a node 293 MUST ensure the limit is not reached - even though the SN would 294 permit it. In a constrainted environment, it is likely that the 295 implementation of a rekey mechanism is preferred over the use of ESN. 297 5. Padding 299 The purpose of padding is to respect the 32 bit alignment of ESP or 300 block size expected by an encryption transform - such as AES-CBC for 301 example. ESP MUST have at least one padding byte Pad Length that 302 indicates the padding length. ESP padding bytes are generated by a 303 succession of unsigned bytes starting with 1, 2, 3 with the last byte 304 set to Pad Length, where Pad Length designates the length of the 305 padding bytes. 307 Checking the padding structure is not mandatory, so the constraint 308 device may not proceed to such checks, however, in order to 309 interoperate with existing ESP implementations, it MUST build the 310 padding bytes as recommended by ESP. 312 In some situation the padding bytes may take a fix value. This would 313 typically be the case when the Data Payload is of fix size. 315 ESP [RFC4303] also provides Traffic Flow Confidentiality (TFC) as a 316 way to perform padding to hide traffic characteristics, which differs 317 from respecting a 32 bit alignment. TFC is not mandatory and MUST be 318 negotiated with the SA management protocol. TFC has not yet being 319 widely adopted for standard ESP traffic. One possible reason is that 320 it requires to shape the traffic according to one traffic pattern 321 that needs to be maintained. This is likely to require extra 322 processing as well as providing a "well recognized" traffic shape 323 which could end up being counterproductive. As such TFC is not 324 expected to be supported by a minimal ESP implementation. 326 As a result, TFC cannot be enabled with minimal ESP, and 327 communication protection that were rely on TFC will be more sensitive 328 to traffic shaping. This could expose the application as well as the 329 devices used to a passive monitoring attacker. Such information 330 could be used by the attacker in case a vulnerability is disclosed on 331 the specific device. In addition, some application use - such as 332 health applications - may also reveal important privacy oriented 333 informations. 335 Some constrained nodes that have limited battery life time may also 336 prefer avoiding sending extra padding bytes. However the same nodes 337 may also be very specific to an application and device. As a result, 338 they are also likely to be the main target for traffic shaping. In 339 most cases, the payload carried by these nodes is quite small, and 340 the standard padding mechanism may also be used as an alternative to 341 TFC, with a sufficient trade off between the require energy to send 342 additional payload and the exposure to traffic shaping attacks. In 343 addition, the information leaked by the traffic shaping may also be 344 addressed by the application level. For example, it is preferred to 345 have a sensor sending some information at regular time interval, 346 rather when an specific event is happening. Typically a sensor 347 monitoring the temperature, or a door is expected to send regularly 348 the information - i.e. the temperature of the room or whether the 349 door is closed or open) instead of only sending the information when 350 the temperature has raised or when the door is being opened. 352 6. Next Header (8 bit) 354 According to [RFC4303], the Next Header is a mandatory 8 bits field 355 in the packet. Next header is intended to specify the data contained 356 in the payload as well as dummy packet. In addition, the Next Header 357 may also carry an indication on how to process the packet 358 [I-D.nikander-esp-beet-mode]. 360 The ability to generate and receive dummy packet is required by 361 [RFC4303]. For interoperability, it is RECOMMENDED a minimal ESP 362 implementation discards dummy packets. Note that such recommendation 363 only applies for nodes receiving packets, and that nodes designed to 364 only send data may not implement this capability. 366 As the generation of dummy packets is subject to local management and 367 based on a per-SA basis, a minimal ESP implementation may not 368 generate such dummy packet. More especially, in constraint 369 environment sending dummy packets may have too much impact on the 370 device life time, and so may be avoided. On the other hand, 371 constrained nodes may be dedicated to specific applications, in which 372 case, traffic pattern may expose the application or the type of node. 373 For these nodes, not sending dummy packet may have some privacy 374 implication that needs to be measured. However, for the same reasons 375 exposed in Section 5 traffic shaping at the IPsec layer may also 376 introduce some traffic pattern, and on constraint devices the 377 application is probably the most appropriated layer to limit the risk 378 of leaking information by traffic shaping. 380 In some cases, devices are dedicated to a single application or a 381 single transport protocol, in which case, the Next Header has a fix 382 value. 384 Specific processing indications have not been standardized yet 385 [I-D.nikander-esp-beet-mode] and is expected to result from an 386 agreement between the peers. As a result, it is not expected to be 387 part of a minimal implementation of ESP. 389 7. ICV 391 The ICV depends on the crypto-suite used. Currently [RFC8221] only 392 recommends crypto-suites with an ICV which makes the ICV a mandatory 393 field. 395 As detailed in Section 8 we recommend to use authentication, the ICV 396 field is expected to be present that is to say with a size different 397 from zero. This makes it a mandatory field which size is defined by 398 the security recommendations only. 400 8. Cryptographic Suites 402 The cryptographic suites implemented are an important component of 403 ESP. The recommended suites to use are expected to evolve over time 404 and implementers SHOULD follow the recommendations provided by 405 [RFC8221] and updates. Recommendations are provided for standard 406 nodes as well as constrained nodes. 408 This section lists some of the criteria that may be considered. The 409 list is not expected to be exhaustive and may also evolve overtime. 410 As a result, the list is provided as indicative: 412 1. Security: Security is the criteria that should be considered 413 first for the selection of encryption algorithm transform. The 414 security of encryption algorithm transforms is expected to evolve 415 over time, and it is of primary importance to follow up-to-date 416 security guidances and recommendations. The chosen encryption 417 algorithm transforms MUST NOT be known vulnerable or weak (see 418 [RFC8221] for outdated ciphers). ESP can be used to authenticate 419 only or to encrypt the communication. In the later case, 420 authenticated encryption must always be considered [RFC8221]. 422 2. Resilience to nonce re-use: Some transforms -including AES-GCM - 423 are very sensitive to nonce collision with a given key. While 424 the generation of the nonce may prevent such collision during a 425 session, the mechanisms are unlikely to provide such protection 426 across reboot. This causes an issue for devices that are 427 configured with a key. When the key is likely to be re-used 428 across reboots, it is RECOMMENDED to consider transforms that are 429 nonce misuse resistant such as AES-GCM-SIV for example[RFC8452] 431 3. Interoperability: Interoperability considers the encryption 432 algorithm transforms shared with the other nodes. Note that it 433 is not because an encryption algorithm transform is widely 434 deployed that is secured. As a result, security SHOULD NOT be 435 weaken for interoperability. [RFC8221] and successors consider 436 the life cycle of encryption algorithm transforms sufficiently 437 long to provide interoperability. Constraint devices may have 438 limited interoperability requirements which makes possible to 439 reduces the number of encryption algorithm transforms to 440 implement. 442 4. Power Consumption and Cipher Suite Complexity: Complexity of the 443 encryption algorithm transform or the energy associated to it are 444 especially considered when devices have limited resources or are 445 using some batteries, in which case the battery determines the 446 life of the device. The choice of a cryptographic function may 447 consider re-using specific libraries or to take advantage of 448 hardware acceleration provided by the device. For example if the 449 device benefits from AES hardware modules and uses AES-CTR, it 450 may prefer AUTH_AES-XCBC for its authentication. In addition, 451 some devices may also embed radio modules with hardware 452 acceleration for AES-CCM, in which case, this mode may be 453 preferred. 455 5. Power Consumption and Bandwidth Consumption: Similarly to the 456 encryption algorithm transform complexity, reducing the payload 457 sent, may significantly reduce the energy consumption of the 458 device. As a result, encryption algorithm transforms with low 459 overhead may be considered. To reduce the overall payload size 460 one may for example: 462 1. Use of counter-based ciphers without fixed block length (e.g. 463 AES-CTR, or ChaCha20-Poly1305). 465 2. Use of ciphers with capability of using implicit IVs 466 [RFC8750]. 468 3. Use of ciphers recommended for IoT [RFC8221]. 470 4. Avoid Padding by sending payload data which are aligned to 471 the cipher block length - 2 for the ESP trailer. 473 9. IANA Considerations 475 There are no IANA consideration for this document. 477 10. Security Considerations 479 Security considerations are those of [RFC4303]. In addition, this 480 document provided security recommendations an guidances over the 481 implementation choices for each fields. 483 The security of a communication provided by ESP is closely related to 484 the security associated to the management of that key. This usually 485 include mechanisms to prevent a nonce to repeat for example. When a 486 node is provisioned with a session key that is used across reboot, 487 the implementer MUST ensure that the mechanisms put in place remain 488 valid across reboot as well. 490 It is RECOMMENDED to use ESP in conjunction of key management 491 protocols such as for example IKEv2 [RFC7296] or minimal IKEv2 492 [RFC7815]. Such mechanisms are responsible to negotiate fresh 493 session keys as well as prevent a session key being use beyond its 494 life time. When such mechanisms cannot be implemented and the 495 session key is, for example, provisioned, the nodes MUST ensure that 496 keys are not used beyond their life time and that the appropriated 497 use of the key remains across reboots - e.g. conditions on counters 498 and nonces remains valid. 500 When a node generates its key or when random value such as nonces are 501 generated, the random generation MUST follow [RFC4086]. In addition 502 [SP-800-90A-Rev-1] provides appropriated guidances to build random 503 generators based on deterministic random functions. 505 11. Acknowledgment 507 The authors would like to thank Daniel Palomares, Scott Fluhrer, Tero 508 Kivinen, Valery Smyslov, Yoav Nir, Michael Richardson for their 509 valuable comments. In particular Scott Fluhrer suggested to include 510 the rekey index in the SPI as well as the use of transform resilient 511 to nonce misuse. 513 12. References 515 12.1. Normative References 517 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 518 Requirement Levels", BCP 14, RFC 2119, 519 DOI 10.17487/RFC2119, March 1997, 520 . 522 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 523 "Randomness Requirements for Security", BCP 106, RFC 4086, 524 DOI 10.17487/RFC4086, June 2005, 525 . 527 [RFC4301] Kent, S. and K. Seo, "Security Architecture for the 528 Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, 529 December 2005, . 531 [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", 532 RFC 4303, DOI 10.17487/RFC4303, December 2005, 533 . 535 [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. 536 Kivinen, "Internet Key Exchange Protocol Version 2 537 (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October 538 2014, . 540 [RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2 541 (IKEv2) Initiator Implementation", RFC 7815, 542 DOI 10.17487/RFC7815, March 2016, 543 . 545 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 546 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 547 May 2017, . 549 [RFC8221] Wouters, P., Migault, D., Mattsson, J., Nir, Y., and T. 550 Kivinen, "Cryptographic Algorithm Implementation 551 Requirements and Usage Guidance for Encapsulating Security 552 Payload (ESP) and Authentication Header (AH)", RFC 8221, 553 DOI 10.17487/RFC8221, October 2017, 554 . 556 [RFC8750] Migault, D., Guggemos, T., and Y. Nir, "Implicit 557 Initialization Vector (IV) for Counter-Based Ciphers in 558 Encapsulating Security Payload (ESP)", RFC 8750, 559 DOI 10.17487/RFC8750, March 2020, 560 . 562 12.2. Informative References 564 [I-D.mglt-ipsecme-diet-esp] 565 Migault, D., Guggemos, T., Bormann, C., and D. Schinazi, 566 "ESP Header Compression and Diet-ESP", draft-mglt-ipsecme- 567 diet-esp-07 (work in progress), March 2019. 569 [I-D.mglt-ipsecme-ikev2-diet-esp-extension] 570 Migault, D., Guggemos, T., and D. Schinazi, "Internet Key 571 Exchange version 2 (IKEv2) extension for the ESP Header 572 Compression (EHC) Strategy", draft-mglt-ipsecme-ikev2- 573 diet-esp-extension-01 (work in progress), June 2018. 575 [I-D.nikander-esp-beet-mode] 576 Nikander, P. and J. Melen, "A Bound End-to-End Tunnel 577 (BEET) mode for ESP", draft-nikander-esp-beet-mode-09 578 (work in progress), August 2008. 580 [RFC8452] Gueron, S., Langley, A., and Y. Lindell, "AES-GCM-SIV: 581 Nonce Misuse-Resistant Authenticated Encryption", 582 RFC 8452, DOI 10.17487/RFC8452, April 2019, 583 . 585 [SP-800-90A-Rev-1] 586 Elain, E. and J. Kelsey, "Recommendation for Random Number 587 Generation Using Deterministic Random Bit Generators", 588 . 591 Appendix A. Document Change Log 593 [RFC Editor: This section is to be removed before publication] 595 -00: First version published. 597 -01: Clarified description 599 -02: Clarified description 601 Authors' Addresses 603 Daniel Migault 604 Ericsson 605 8400 boulevard Decarie 606 Montreal, QC H4P 2N2 607 Canada 609 EMail: daniel.migault@ericsson.com 611 Tobias Guggemos 612 LMU Munich 613 MNM-Team 614 Oettingenstr. 67 615 80538 Munich, Bavaria 616 Germany 618 EMail: guggemos@mnm-team.org