<?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.35 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-intarea-challenge-icmpv6-03" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-03"/>
    <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="2026" month="April" day="26"/>
    <area>AREA</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>off-path attack</keyword>
    <keyword>redirect</keyword>
    <keyword>fragmentation</keyword>
    <abstract>
      <?line 96?>

<t>The Internet Control Message Protocol for IPv6 (ICMPv6) is essential for network diagnostics but is vulnerable to off-path spoofing attacks, especially when error messages relate to stateless transport protocols like UDP. An attacker can forge these messages to degrade performance or enable Man-in-the-Middle attacks.</t>
      <t>This document proposes a robust, stateless challenge-response mechanism to authenticate ICMPv6 error messages. Traditional stateful challenge mechanisms are vulnerable to state-exhaustion Denial-of-Service (DoS) attacks. To avoid this, the proposed solution is inspired by TCP SYN-Cookies, eliminating the need to store per-challenge state by using cryptographic computation. It limits state management to minimal flags on existing sockets or a bounded probabilistic data structure. This approach effectively authenticates ICMPv6 error messages while inherently resisting both off-path spoofing and state-exhaustion DoS attacks, thus improving the robustness of ICMPv6.</t>
    </abstract>
  </front>
  <middle>
    <?line 103?>

<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>This document proposes a stateless challenge-confirm mechanism that authenticates these ICMPv6 error messages. The mechanism is designed to prove that the source of an error is on the path of the associated data flow, thwarting off-path attackers without introducing new Denial-of-Service vulnerabilities.</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="stateless-challenge-confirm-mechanism">
      <name>Stateless Challenge-Confirm Mechanism</name>
      <t>A simple stateful challenge-response mechanism, where a host stores a nonce while waiting for a confirmation, would introduce a critical state-exhaustion Denial-of-Service (DoS) vulnerability. An attacker could flood a target with forged error messages, forcing it to allocate state for each one. To solve this, the mechanism proposed here is stateless and inspired by TCP SYN-Cookies <xref target="RFC4987"/>, where state is not stored but is instead encoded cryptographically and later re-computed for validation.</t>
      <section anchor="core-principle-eliminating-state-with-cryptographic-computation">
        <name>Core Principle: Eliminating State with Cryptographic Computation</name>
        <t>Instead of generating and storing a random nonce, the host computes a deterministic nonce on demand. This nonce is a cryptographic hash of information that defines the flow, combined with a secret key known only to the host.</t>
        <t>Challenge Nonce = F(secret_key, src_IP, dest_IP, [other_flow_info])</t>
        <ul spacing="normal">
          <li>
            <t>secret_key: A high-entropy secret value held by the host's operating system. This key MUST be rotated periodically (e.g., every few minutes) to limit the impact of any potential key compromise and to mitigate replay attacks.</t>
          </li>
          <li>
            <t>F: A keyed-hash function, such as HMAC-SHA256, truncated to the size of the nonce field.</t>
          </li>
        </ul>
        <t>With this approach, a nonce can be generated when needed (for an outgoing challenge) and verified later (on a returning confirmation) by simply re-computing it. There is no need to store it in a cache.</t>
      </section>
      <section anchor="challenge-confirm-procedure">
        <name>Challenge-Confirm Procedure</name>
        <t>The stateless process is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Receive and Validate Error: Host A receives an ICMPv6 error message. It first validates the embedded header's 4-tuple against its list of active sockets/connections. If no matching socket exists, the message is silently discarded. No state is created.</t>
          </li>
          <li>
            <t>Mark Flow for Challenge: If a matching socket is found, Host A does not create new state. Instead, it sets a simple flag on the existing socket control block, marking it as "requires challenge". The initial ICMPv6 error is then discarded.</t>
          </li>
          <li>
            <t>Issue Computed Challenge: The next time the application sends a packet on this marked socket, the networking stack intercepts it. It computes the challenge nonce using the secret key and the packet's flow information. This nonce is placed in a Challenge-Confirm IPv6 Destination Option, and the packet is sent.</t>
          </li>
          <li>
            <t>Receive and Verify Confirmation: If a legitimate on-path node returns a new ICMPv6 error, it will contain the challenge packet. Host A receives this new error, extracts the embedded nonce, and recomputes the expected nonce using the same secret key and flow information.</t>
          </li>
          <li>
            <t>Process or Discard: If the received nonce matches the re-computed one, the error is authentic, and Host A can act on it. If it does not match, the message is a forgery or is stale, and it is discarded.</t>
          </li>
        </ul>
        <t>This flow achieves the anti-spoofing goal without creating state for unverified messages, thus defeating potential DoS attacks. Figure 1 illustrates the complete interaction.</t>
        <artwork><![CDATA[
Host A                                 On-Path Router R
  |                                          |
  |--------[ Original UDP Packet ]---------->|
  |                                          X (Error, MTU exceeded)
  |<--[ 1. ICMPv6 Error (Original) ]---------|
  |                                          |
  |  [Internal Action on Host A:]            |
  |  - Validate 4-tuple -> OK                |
  |  - Mark socket for challenge             |
  |  - Discard original error msg            |
  |  (No per-challenge state is stored)      |
  |                                          |
  |--------[ 2. Next UDP Packet + ]--------->|
  |        [  Challenge Option (Nonce N)  ]  |
  |        (Nonce N computed on-the-fly)     |
  |                                          |
  |                                          X (Same error condition)
  |<--[ 3. New ICMPv6 Error (contains N) ]---|
  |                                          |
  |  [Internal Action on Host A:]            |
  |  - Extract received Nonce N              |
  |  - Re-compute expected Nonce N'          |
  |  - IF (N == N') THEN:                    |
  |      Process error (SUCCESS)             |
  |    ELSE:                                 |
  |      Discard message (FAILURE)           |
  |                                          |

Figure 1: Challenge-Confirm Mechanism
]]></artwork>
      </section>
      <section anchor="protocol-specific-state-management">
        <name>Protocol-Specific State Management</name>
        <t>The mechanism for "marking a flow" is lightweight and transport-specific.</t>
        <t>UDP: Upon receiving a validatable ICMPv6 error, the host sets a flag on the corresponding UDP socket's control block.</t>
        <t>TCP: While TCP has its own protections, this mechanism can supplement it. A flag can be set on the TCB.</t>
        <t>ICMP: For connectionless protocols like ICMP Echo, which lack a socket state, a probabilistic, fixed-size data structure like a Sketch or Bloom Filter should be used.
On Error Reception: The host hashes a flow identifier (e.g., source IP, destination IP, ICMPv6 Identifier) and increments the corresponding counter(s) in the sketch.
On Packet Transmission: When sending a new ICMPv6 packet, the host queries the sketch. If the query indicates this flow has likely received a recent error, it attaches the computed challenge. This probabilistic approach ensures that state remains bounded, preventing DoS attacks against ICMP-based applications.</t>
      </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 2) 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 3).</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 2: The IPv6 Challenge Packet with Challenge-Confirm Option</t>
        <t>The fields in the 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 computed.</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 3: New ICMPv6 Error Responding to the Challenge Packet
]]></artwork>
      </section>
    </section>
    <section anchor="exception-handling-and-edge-cases">
      <name>Exception Handling and Edge Cases</name>
      <section anchor="packet-loss">
        <name>Packet Loss</name>
        <t>The proposed mechanism is inherently resilient to packet loss due to its stateless design. It does not maintain timers or retransmission states for the challenge-confirm exchange itself. The <tt>requires challenge</tt> flag is cleared as soon as the challenge packet is transmitted, meaning the host does not enter a state of "waiting for a confirmation".</t>
        <t>Whether the outgoing challenge packet or the returning ICMP confirmation is lost in transit, the outcome is the same: the host that issued the challenge does not receive a confirmation and takes no special action. The exchange silently fails.</t>
        <t>Recovery is not driven by a timer, but by the persistence of the underlying network issue. If the condition that caused the initial ICMP error persists, a subsequent data packet from the application will likely trigger a new, initial ICMP error, naturally restarting the challenge process. This "fire-and-forget" approach avoids adding stateful complexity for the challenge itself.</t>
      </section>
      <section anchor="multi-path-routing-scenarios">
        <name>Multi-Path Routing Scenarios</name>
        <t>The mechanism's performance, but not its security, can be affected in networks that employ per-packet load balancing across multiple paths. Consider a scenario where a flow's packets alternate between a "bad" path that triggers an ICMPv6 error and a "good" path that does not.</t>
        <t>A recurring cycle could emerge:
1. A data packet is routed to the "bad" path, triggering an initial ICMPv6 error and causing the host to set the <tt>requires challenge</tt> flag.
2. The next packet (now a challenge packet) is routed to the "good" path and reaches its destination successfully. No ICMPv6 confirmation is returned.
3. The host, having sent its challenge, clears the flag. The next data packet is a normal packet, which is again routed to the "bad" path, restarting the cycle.</t>
        <t>This cycle does not compromise the security of the mechanism. The host never acts on an unvalidated ICMPv6 error, so spoofing attacks remain ineffective. However, it creates a performance degradation. In this specific scenario, the effective throughput for the flow could be halved. This is a performance cost in certain network topologies, not a security vulnerability.</t>
      </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>:  The security of the authentication depends on the unguessability of the computed nonce, which is guaranteed by the use of a strong keyed-hash function and a secret key with sufficient entropy <xref target="RFC4086"/>.</t>
        </li>
        <li>
          <t><strong>Denial of Service (DoS) Resistance</strong>: This is the principal security advantage over stateful designs. The mechanism is resilient to state-exhaustion attacks because:
1. It creates no state for ICMPv6 errors that do not correspond to an existing, active transport-layer socket.
2. For valid flows, the state added is minimal (a flag) or probabilistically bounded (a sketch), preventing uncontrolled resource consumption.</t>
        </li>
        <li>
          <t><strong>Replay Attack Mitigation</strong>: The periodic rotation of the secret_key provides the primary defense against replay attacks. A captured nonce-confirmation pair will become invalid after the key is changed. The rotation interval presents a trade-off between security and the maximum legitimate round-trip time for a challenge-confirm exchange.</t>
        </li>
        <li>
          <t><strong>Reflection and Amplification Attacks</strong>: The mechanism is designed to be immune to reflection and amplification attacks. An attacker cannot use this protocol to turn a victim into a traffic amplifier. The critical design choice preventing this is that the receipt of an initial, unverified ICMPv6 error message does NOT trigger the immediate transmission of a new packet. Instead, the host's response is limited to two low-cost internal actions: silently discarding the incoming message and setting a lightweight flag on an existing socket's control block. The challenge packet itself is not a new, separately generated packet; it is the <em>next application packet</em> for that flow, modified on-the-fly to include the Challenge-Confirm option. Therefore, an attacker sending a flood of forged ICMPv6 messages cannot compel the target to generate any network traffic beyond what its applications would have sent anyway. The victim does not become a reflector.</t>
        </li>
        <li>
          <t><strong>Backward Compatibility</strong>: The mechanism is fully backward-compatible. Hosts not implementing this specification will ignore the Destination Option as per <xref target="RFC8200"/>. Intermediate routers are unaffected. Only end hosts wishing to enhance their security need to implement the changes.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This draft requests the following IPv6 Option Type assignments for "The Challenge-Confirm Option Type" 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="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="RFC4987">
          <front>
            <title>TCP SYN Flooding Attacks and Common Mitigations</title>
            <author fullname="W. Eddy" initials="W." surname="Eddy"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This document describes TCP SYN flooding attacks, which have been well-known to the community for several years. Various countermeasures against these attacks, and the trade-offs of each, are described. This document archives explanations of the attack and common defense techniques for the benefit of TCP implementers and administrators of TCP servers or networks, but does not make any standards-level recommendations. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4987"/>
          <seriesInfo name="DOI" value="10.17487/RFC4987"/>
        </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 369?>

<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:
H4sIAAAAAAAAA+1da3Mbx7H9rir9hym46ppUAFCiHEVm7FQoiopYFiWGpGL7
ulzOYHcAbrTYRfZBErGc3377dPfMzgKgRL9yXSnRiU2CuzM9Pf043dM9HI1G
d+989NFH9C9zVDSuKlwzelrZaWOObfUmLa8Kc+7mi9w2jp7BY6eusHNnmous
NtMsd2ZalXOT4p1RU6blaFm2FR4ZLaqyKZMyH89T05Rm5hpTN7ZqXDrGQDIN
DzYtq7ltDI04kIE+84P8afTZVVm9mVVlu6Dv+SMabzBWap6VlcmKrMlsbmrX
tIuhoVdNWeRLUzjHE7s0a4hemiar6sZM8jJ5Y8op/ejytGZaXuH5QZM1uRvw
ezVenDiTXNhi5tI/mtTlrnFmYCeTyl0OTDbFRJXhd0B5fVFWDQ+2XyxNSfNV
JimJp0VjEltgMBDi0qGZtA2PbSs3bXNTlA1my4qmKtM2oeeqqqyEsLMS7GFC
zVWW53iP1mls25TEsiyxOVGetlVWzIQBoIwmXxoa3bSFLsDz62lZfEyMLpK8
TWk1o/v3B4ZYOBhhh+uG1lUoq3LeZybihZ24vA6/os0yt9gmHVLoqGkrJksM
hiGassyZw8QAYhN9g0+TtqrArUtX1VlZ/JHWQySmZYLhBpjXuGtLwuj8as4h
hI3KJyapzZvKziG2o2qa7JmLplnUezs7s6y5aCfjpJzvJHZS7sRPYaCvSWaw
SZWjoRLH5BApWSWc0N02C6HXmjSb0jcgVkSX2XTArA7sI2Jp87ESLJAeSi4C
/0jYt8bX85wX9dXxi6FxTTIej7dlYVBIFqw9MzgsaNgE23t0cHxy+cgcQjrM
satrS7PttzRmAUFoMNPrGk8SJTnt38yNDsqCpH5Oj0MQsno+uHtHRJiGTsJj
WTJfXD6i39EwblZWyz3a7Wl5987dO8r/Pd3y63ZEgkp7akerr4/uP7x7p2jn
E1ft0Xs0Ev2HVKAmLrQ1fU9z0hN4d8/snx7u370ThGYvmB+zT783X9IvsJK/
4Jd377xxS3o0pTHMiFR3OlrY5sLYprHJG/6sIt2qXNLwD9PKzubEFGYJTeuK
FqTQ1MSssuJR6P/0ReqXy+q+cOarVj4sqxmx6l/89p45B0cvWmteFxlLZrM0
/2P+96IsZrOWdqYtoB9lZRtim5ERkrIlZSYmHlxkhdXP6MU988Rl/6Dx5CM3
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
FN7Z1rwQIQ4+69mwe1rYt0WRumLImlchZPpjVMgUReY1k8qnTrWe8vWQqYDO
SHj+2XIJeTyuR3r4Fc7V0lDe4HEURAQc5bhXzZPlb0kQOvDLCOgiAjts+YMn
U3Dfr1jtilOLuq386af4vAo9JmSLtdZ1iL6uS3CSVhkhrhCMYs16ABRXA42D
lq+bA/FlpBMlyzbKsUH8+oNRKrRffOBzTcL2m2aQGG81GNBcaeDpxoMadUmy
tTeXrfkzYM16cY6AS0LUW1tufbzi8yc1kLtBwjiS8mnys2ye5bbigq6bTo+6
esesMCFfzHmcrF5fpyoc11rFNZgcoiiFSooeha2eAzOFa+NuWtXD7Q5Tm/sb
fMSDDZ/tbvjsIb//gH730Hxifm8emT+Yx+bTH/PZ3Tu/G/3Mf+7eefs3abR8
C63n0quDHPVZsVvk/Af3f270ib8EFWG8ExW4F3IS4mcxAiify/4xdc/LhXnB
qcZfnoqf9gUqfuYQvzYVUniDEsMKev7/RMXtvn4hKj7IxfuoiLNc75SM/ype
/CJysWqVnqcVgi2Yr/eHFreh4j/Ci/HPHGL8niEEptxobm4zxO2o+M3IhaYx
zlFLZ+Rn8xRRBAQjovLUcbdQ+utQ8XN5sWmI1WPLrQe7j82EYrzt9WdvGOJH
UvFb5EVXChEawXh7tyg83uGAU0Dk9s1D/CQqfgFeMHb1IF0iUca/3cZqGCjH
9DdGNZKx0GtJFF/f9LRUx3Ewk66fMhpz716kMPfu7ZnHowmy71047Lt81qvo
yygGmnIOVI67w2HY0f7LfRS3Z7NiLic1Ycqgk92cbaGVV8ijzxDPc15l6Q8+
8lCiw81XQrbUy4MV4AQ3nYRpvIpjigePeA55svK6j7VNW04ttDVFsv7oHTkP
inr+5aqScx9RWC6R/qzgMg7N8iw05S/Trugpz74rS/SVE1zyGGLp/7bAhqkR
A8zKw/8+wDFb9LN8yIVk7fxXULYbVR7HFzubzf+vQMWHIO/9O3LLr98OgL3x
lx+CvA9ysfb1Ici73T/jdbn4EOTh60OQtyoXH4K8dwzxI6n4LfLilw3ytv5m
q4yPXgX2bGDlL8cLvjDJn1nsrdcinK7dDLAa/oUj7I/I1mlwYZ5T5JD7UuzD
lB4+sLWr/Tm3xI0vSvRunseX4vR6lVfufMkzvZxGj11yet2kLR/4hHtseBf8
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
YI3h8cXrUpBi8/Gd/wNh7V/klmkAAA==

-->

</rfc>
