<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.23 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-intarea-challenge-icmpv6-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="challenge-icmpv6">Enhancing ICMPv6 Error Message Authentication Using Challenge-Confirm Mechanism</title>
    <seriesInfo name="Internet-Draft" value="draft-xu-intarea-challenge-icmpv6-00"/>
    <author fullname="Ke Xu">
      <organization>Tsinghua University &amp; Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xuke@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Xuewei Feng">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>fengxw06@126.com</email>
      </address>
    </author>
    <author fullname="Ao Wang">
      <organization>Southeast University</organization>
      <address>
        <postal>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>wangao@seu.edu.cn</email>
      </address>
    </author>
    <date year="2025" month="February" day="26"/>
    <area>AREA</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>off-path attack</keyword>
    <keyword>redirect</keyword>
    <keyword>fragmentation</keyword>
    <abstract>
      <?line 97?>

<t>As well as the Internet Control Message Protocol for IPv4 (ICMPv4), the Internet Control Message Protocol for IPv6 (ICMPv6) is significant for network diagnostics and error reporting. However, like ICMPv4, ICMPv6 is also vulnerable to off-path forgery, making it difficult for the receiver to verify the legitimacy of a received ICMPv6 error message, particularly when the message contains stateless protocol data (e.g., the message includes a UDP/ICMPv6 packet). Consequently, adversaries on the Internet can forge ICMPv6 error messages carrying stateless protocol data, leading the receiver to erroneously accept the forged message and respond to it. This document proposes enhancement to ICMPv6 by introducing a challenge-confirm mechanism that leverages random numbers embedded in the IPv6 Extension Headers. The enhancement aims to strengthen the authentication of ICMPv6 error messages, thereby mitigating the risks associated with forged messages and improving the overall robustness of the protocol.</t>
    </abstract>
  </front>
  <middle>
    <?line 102?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Internet Control Message Protocol for IPv6 (ICMPv6) serves as the cornerstone of operational signaling in IPv6 networks. It performs critical functions such as Path MTU Discovery <xref target="RFC8201"/>, Neighbor Discovery <xref target="RFC4861"/>, and reporting errors encountered during packet processing <xref target="RFC4443"/>. However, the legitimate verification of ICMPv6 error messages is inherently vulnerable by design. To enable senders to correlate error reports with the original packets for effective network diagnostics, ICMPv6 error messages, as specified in <xref target="RFC4443"/>, MUST include the header information and a portion of the payload of the original message that triggered the error. When the original message originates from stateless protocols like UDP or ICMPv6, the embedded original message header lacks contextual information (e.g., sequence numbers, acknowledgement numbers, and ports in stateful protocols like TCP). This makes it difficult for the receiver to effectively verify the legitimacy of the error messages. Consequently, attackers can forge ICMPv6 error messages embedded with stateless protocol payloads to bypass the legitimate verification of the receiver, tricking the receiver into erroneously accepting and responding to the message, which can lead to malicious activities.</t>
      <t>For example, off-path attackers can forge ICMPv6 "Packet Too Big" messages, embedding stateless protocols like UDP or ICMP Echo Reply, to lower hosts' Path MTU to the IPv6 minimum of 1280 bytes <xref target="RFC8200"/>, disrupting network throughput and latency-sensitive applications like video conferencing. This manipulation also simplifies off-path TCP hijacking <xref target="Feng2021"/>. Additionally, attackers can exploit forged ICMPv6 Redirect messages to tamper with a victim's gateway, enabling Man-in-the-Middle (MitM) attacks. Even with WPA/WPA2/WPA3 security, attackers can impersonate legitimate APs, bypass encryption, and hijack traffic <xref target="Feng2023"/>. These diverse attack vectors starkly underscore the critical and urgent necessity for robust authentication mechanisms in ICMPv6 for error message processing.</t>
      <t>To address the vulnerability in ICMPv6 error message legitimacy verification, this document proposes a Challenge-Confirm mechanism. Specifically, when an IPv6 host receives an ICMPv6 error message carrying a stateless protocol payload (e.g., embedded with a UDP or ICMPv6 packet), the host first ignores the error message and issues a challenge by sending a subsequent UDP or ICMPv6 packet (the challenge packet) on the established session. Specifically, the challenge packet contains a randomly generated number embedded in an IPv6 Option. If the previously ignored ICMPv6 error message was legitimate, the sender will respond with another ICMPv6 error message to the challenge packet, reflecting the random number. The IPv6 host then verifies the response, and a valid match on the random number confirms the message's authenticity. This mechanism ensures only legitimate sources can correctly respond, preventing off-path attackers from forging ICMPv6 error messages, while remaining backward compatible with residual devices.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"/>.  TCP terminology should be interpreted as described in <xref target="RFC9293"/>.</t>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Current ICMPv6 specifications have inherent limitations that allow off-path attackers to forge ICMPv6 error messages, undermining network security and reliability. The primary issues are:</t>
      <section anchor="source-based-blocking-ineffectiveness">
        <name>Source-Based Blocking Ineffectiveness</name>
        <t>Certain ICMPv6 error messages, such as Packet Too Big messages, can originate from any intermediate router along the packet's path. This ubiquity makes source-based blocking ineffective, as legitimate messages can come from multiple sources.</t>
      </section>
      <section anchor="authentication-evasion-based-on-embedded-packet-state">
        <name>Authentication Evasion based on Embedded Packet State</name>
        <t>Although <xref target="RFC4443"/> stipulates that "Every ICMPv6 error message (type &lt; 128) MUST include as much of the IPv6 offending (invoking) packet (the packet that caused the error) as possible without making the error message packet exceed the minimum IPv6 MTU", the inherent characteristics of the embedded packet protocol directly influence the difficulty of authenticating ICMPv6 error messages and their overall security strength.</t>
        <section anchor="stateful-embedded-packets-eg-tcp">
          <name>Stateful Embedded Packets (e.g., TCP)</name>
          <t>When attackers embed stateful protocol packets, such as TCP segments, in forged ICMPv6 error messages, receivers can theoretically utilize the inherent state information of the TCP protocol for a certain degree of verification. The TCP protocol establishes and maintains state between communicating parties through sequence numbers, acknowledgment numbers, and ports. These connection-based TCP state information are difficult for attackers to accurately guess. Receivers can attempt to verify whether these connection-specific secret information in the embedded TCP header matches their maintained TCP connection state, thereby judging the authenticity of the ICMPv6 error message <xref target="RFC5927"/>.</t>
        </section>
        <section anchor="stateless-embedded-packets-eg-udp-icmpv6">
          <name>Stateless Embedded Packets (e.g., UDP, ICMPv6)</name>
          <t>In contrast to stateful TCP, when attackers embed stateless protocol packets, such as UDP or ICMPv6 messages, in forged ICMPv6 error messages, receivers lose the ability to perform effective state verification. UDP and ICMPv6 protocols are inherently designed as stateless protocols, where the source does not maintain any session state information. The UDP or ICMPv6 messages embedded in ICMPv6 error messages contain almost no state information that can be used for context verification. In addition to performing some basic protocol format checks, receivers have virtually no way to determine the authenticity of ICMPv6 error messages based on the embedded stateless packet header. This lack of state verification greatly reduces the authentication strength of ICMPv6 error messages, making it easier for attackers to implement authentication evasion and use forged error messages for malicious attacks.</t>
        </section>
      </section>
    </section>
    <section anchor="proposed-solution">
      <name>Proposed Solution</name>
      <section anchor="challenge-confirm-mechanism">
        <name>Challenge-Confirm Mechanism</name>
        <t>To mitigate the vulnerabilities described in Section 2, this document proposes a Challenge-Confirm mechanism to verify the authenticity of ICMPv6 error messages. The message flow of the Challenge-Confirm mechanism is depicted in Figure 1:</t>
        <artwork><![CDATA[
  IPv6 Host                                                 Sender
  -----                                                    -------
  1. Reception of ICMPv6 Error Message <----- ICMPv6 Error Message
                                      (Stateless Embedded Payload)

  2. IGNORING

  3. ISSUING CHALLENGE PKT -----------> Reception of CHALLENGE PKT
     (IPv6_Options=Random_X)

  4. RECV NEW ICMPv6 ERROR <----------------- ICMPv6 Error Message
                                           (IPv6_Options=Random_X)

  5. Verification 
     (IPv6_Options=Random_X)
     (Verification Success)
]]></artwork>
        <artwork><![CDATA[
                    Figure 1: Challenge-Confirm Message Flow
]]></artwork>
        <t>The details are described below:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Reception of ICMPv6 Error Message</strong>: When a IPv6 host receives an ICMPv6 error message embedded with a stateless protocol payload (e.g., UDP or ICMPv6), it cannot reliably verify the message's authenticity due to the aforementioned limitations.</t>
          </li>
          <li>
            <t><strong>Ignoring the ICMPv6 Error Message</strong>: The IPv6 host ignores and discard the received ICMPv6 error message.</t>
          </li>
          <li>
            <t><strong>Issuing a Challenge</strong>: To authenticate the received ICMPv6 error message, the receiver sends a subsequent UDP or ICMPv6 packet on the established session (i.e., a challenge packet). Particularly, this packet includes a randomly generated number embedded within an IPv6 Option.</t>
          </li>
          <li>
            <t><strong>Response to Challenge</strong>: If the previously ignored ICMPv6 error message was legitimate, the sender will respond to the challenge packet by sending another ICMPv6 error message containing the embedded random number within an IPv6 Option.</t>
          </li>
          <li>
            <t><strong>Verification</strong>: The receiver verifies the presence and correctness of the random number in the response. A valid match confirms the authenticity of the original ICMPv6 error message.</t>
          </li>
        </ol>
        <t>This mechanism ensures that only legitimate sources can respond correctly to the challenge, thereby preventing off-path attackers from successfully forging ICMPv6 error messages.</t>
      </section>
      <section anchor="state-machine">
        <name>State Machine</name>
        <t>To manage the Challenge-Confirm process, hosts implementing this specification should maintain a state machine. This state machine, as depicted in Figure 2, defines the operational states and state transitions for handling ICMPv6 error messages and conducting Challenge-Confirm exchanges.</t>
        <artwork><![CDATA[
                      +-----------------+
                      |   Idle State    |
                      +-------+---------+
                              |  
                              | Receive ICMPv6 Error
                              | (stateless embedded payload)
                              |
                      +-----------------+
                      |  ICMP Received  |
                      +-----------------+
                              |
                              |Send Subsequent Packet
                              v  
                      +-------+---------+
                      |  Challenge Sent |
                      +-------+---------+
                       _____/ | \________________
                      /       |                  \
         (Valid Response)   (Invalid Response)  (Timeout)
                    /          |                   \
                   v           |                    v
        +--------+-------+     +-----------+---------+
        |Process & Accept|     |   Discard & Log     |
        +--------+-------+     +-----------+---------+
                  |            |                     |
                  +------------+---------------------+
                              |
                              v  
                      +-------+---------+
                      |   Idle State    |
                      +-----------------+       

                  Figure 2: Protocol State Machine
]]></artwork>
        <t>In the Idle State, the IPv6 host is in a standby mode, waiting for ICMPv6 error messages. Once it receives an ICMPv6 error message with a stateless embedded payload, it enters the ICMP Received state and wait for a subsequent packet. Once a subsequent packet with challenge is sent, it enters the Challenge Sent state. If a valid response (with the correct random number) is received within the predefined timeout period, the host transitions to the Process &amp; Accept state. Here, it acknowledges the original ICMPv6 error message as genuine and processes it accordingly. If the response is invalid (either the random number is incorrect or there are other discrepancies) or a timeout occurs, the host moves to the Discard &amp; Log state. In this state, it discards the ICMPv6 error message, considering it potentially forged, and logs the event. This log can be used later for security audits and to identify potential attack patterns. After either accepting or discarding the message, the host returns to the Idle State, prepared to handle new ICMPv6 error messages. This state-machine-based approach provides a structured and reliable way to manage the authentication process for ICMPv6 error messages.</t>
      </section>
      <section anchor="random-number-generation-and-management">
        <name>Random Number Generation and Management</name>
        <ul spacing="normal">
          <li>
            <t><strong>Generation</strong>: The IPv6 host generates a high-entropy random number (minimum 128 bits) using a secure pseudorandom number generator (PRNG) to ensure unpredictability and resistance to guessing attacks.</t>
          </li>
          <li>
            <t><strong>Management</strong>: Each challenge utilizes a unique random number to prevent replay attacks. The IPv6 host maintains a cache of pending challenges, each associated with an expiration timer to manage resources effectively and avoid indefinite waiting periods.</t>
          </li>
        </ul>
      </section>
      <section anchor="challenge-confirm-option">
        <name>Challenge-Confirm Option</name>
        <t>To support the Challenge-Confirm mechanism, this document defines a new Challenge-Confirm Option. The challenge packet for a received ICMPv6 error message containing a stateless protocol payload includes the following option (as shown in Figure 3) in the IPv6 header. Similarly, the ICMPv6 error message triggered in response to this challenge packet should also include the same option in the header of the embedded IPv6 challenge packet (as shown in Figure 4).</t>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                         Source Address                        +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      Destination Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Next Header  |  Hdr Ext Len  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
.                                                               .
.                            Options                            .
.                                                               .
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option Type  |  Opt Data Len |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                   Challenge Nonce (128 bits)                  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|             Stateless Protocol Data (UDP/ICMP packet)         |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Figure 3: The IPv6 Challenge Packet with Challenge-Confirm Option</t>
        <t>The fields in Challenge-Confirm Option are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Option Type</strong>: 8-bit identifier for the challenge-confirm option. The final value requires IANA assignment.</t>
          </li>
          <li>
            <t><strong>Opt Data Len</strong>: 8-bit unsigned integer specifying the length of the option data field in bytes.</t>
          </li>
          <li>
            <t><strong>Reserved</strong>: 16-bit field reserved for future use. MUST be set to zero on transmission and ignored on reception.</t>
          </li>
          <li>
            <t><strong>Challenge Nonce</strong>: 128-bit random number generated according to <xref target="RFC4086"/> requirements.</t>
          </li>
        </ul>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        MTU / Reserved                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                         Source Address                        +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      Destination Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Next Header  |  Hdr Ext Len  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
.                                                               .
.                            Options                            .
.                                                               .
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Option Type  |  Opt Data Len |          Reserved             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                   Challenge Nonce (128 bits)                  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|             Stateless Protocol Data (UDP/ICMP packet)         |
|                        (Variable Length)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 4: New ICMPv6 Error Responding to the Challenge Packet
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The proposed enhancements aim to bolster ICMPv6 security by addressing specific vulnerabilities related to message authentication. Key security aspects include:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Authentication Strength</strong>: Utilizing high-entropy random numbers ensures that challenges are unpredictable and resistant to forgery, effectively preventing unauthorized ICMPv6 error message spoofing.</t>
        </li>
        <li>
          <t><strong>Replay Attack Mitigation</strong>: Assigning unique random numbers to each challenge and implementing expiration timers mitigates the risk of replay attacks, where attackers attempt to reuse valid challenges to authenticate malicious messages.</t>
        </li>
        <li>
          <t><strong>Denial of Service (DoS) Prevention</strong>: To prevent potential DoS attacks, where adversaries flood a host with fake challenges, rate limiting and challenge frequency controls should be implemented.</t>
        </li>
        <li>
          <t><strong>Backward Compatibility</strong>: The proposed mechanism maintains backward compatibility by requiring updates solely to the ICMPv6 error message verification on end hosts. Intermediate routing devices remain unaffected, ensuring seamless integration with existing network infrastructure.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The Challenge-Confirm Option Type should be assigned in IANA's "Destination Options and Hop-by-Hop Options" registry <xref target="RFC2780"/>.</t>
      <t>This draft requests the following IPv6 Option Type assignments from the Destination Options and Hop-by-Hop Options sub-registry of Internet Protocol Version 6 (IPv6) Parameters (https://www.iana.org/assignments/ipv6-parameters/).</t>
      <table>
        <thead>
          <tr>
            <th align="left">Hex Value</th>
            <th align="left">Binary Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left"> </td>
            <td align="left">act  chg  rest</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">00   0    -</td>
            <td align="left"> </td>
            <td align="left">This draft</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2780">
          <front>
            <title>IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <date month="March" year="2000"/>
            <abstract>
              <t>This memo provides guidance for the IANA to use in assigning parameters for fields in the IPv4, IPv6, ICMP, UDP and TCP protocol headers. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="37"/>
          <seriesInfo name="RFC" value="2780"/>
          <seriesInfo name="DOI" value="10.17487/RFC2780"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8201">
          <front>
            <title>Path MTU Discovery for IP version 6</title>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="R. Hinden" initials="R." role="editor" surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes Path MTU Discovery (PMTUD) for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4. It obsoletes RFC 1981.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="87"/>
          <seriesInfo name="RFC" value="8201"/>
          <seriesInfo name="DOI" value="10.17487/RFC8201"/>
        </reference>
        <reference anchor="RFC9293">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="Feng2021">
          <front>
            <title>Off-path TCP hijacking attacks via the side channel of downgraded IPID</title>
            <author initials="X." surname="Feng">
              <organization/>
            </author>
            <author initials="Q." surname="Li">
              <organization/>
            </author>
            <author initials="K." surname="Sun">
              <organization/>
            </author>
            <author initials="C." surname="Fu">
              <organization/>
            </author>
            <author initials="K." surname="Xu">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="IEEE/ACM transactions on networking" value=""/>
        </reference>
        <reference anchor="Feng2023">
          <front>
            <title>Man-in-the-middle attacks without rogue AP: When WPAs meet ICMP redirects</title>
            <author initials="X." surname="Feng">
              <organization/>
            </author>
            <author initials="Q." surname="Li">
              <organization/>
            </author>
            <author initials="K." surname="Sun">
              <organization/>
            </author>
            <author initials="Y." surname="Yang">
              <organization/>
            </author>
            <author initials="K." surname="Xu">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="IEEE Symposium on Security and Privacy (SP)" value=""/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5927">
          <front>
            <title>ICMP Attacks against TCP</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>This document discusses the use of the Internet Control Message Protocol (ICMP) to perform a variety of attacks against the Transmission Control Protocol (TCP). Additionally, this document describes a number of widely implemented modifications to TCP's handling of ICMP error messages that help to mitigate these issues. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5927"/>
          <seriesInfo name="DOI" value="10.17487/RFC5927"/>
        </reference>
      </references>
    </references>
    <?line 360?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the IETF community, particularly members of the INT-AREA working groups, for their valuable feedback and insights during the development of this proposal.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
hfu3zhshTTc7/i8G1ziO9WAAAA==

-->

</rfc>
