<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-intarea-challenge-icmpv6-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.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-01"/>
    <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="June" day="30"/>
    <area>AREA</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>off-path attack</keyword>
    <keyword>redirect</keyword>
    <keyword>fragmentation</keyword>
    <abstract>
      <?line 98?>

<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 explores solutions to this problem by first presenting a straightforward but flawed stateful challenge-response mechanism. It explains how this "strawman" approach, while preventing simple spoofing, introduces a severe vulnerability to state-exhaustion Denial-of-Service (DoS) attacks.</t>
      <t>Building on this analysis, the document then proposes a robust, stateless challenge-response mechanism inspired by TCP SYN-Cookies. This proposal eliminates the need to store per-challenge state by computationally generating challenges. 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 107?>

<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 explores how to securely authenticate these ICMPv6 error messages. It first examines an intuitive challenge-confirm solution but demonstrates its fatal flaw: vulnerability to Denial-of-Service (DoS) attacks. It then presents a refined, stateless mechanism that solves the original problem without introducing new 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="a-strawman-proposal-stateful-challenge-confirm">
      <name>A Strawman Proposal: Stateful Challenge-Confirm</name>
      <t>A logical way to verify that an ICMPv6 error originates from an on-path entity is to issue a challenge and await a correct confirm. This proves that the entity that sent the error is also on the path of subsequent traffic for that flow.</t>
      <t>Let's consider a simple, stateful challenge-Confirm mechanism.</t>
      <t>The operational flow would be as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>Receive Error: Host A receives an ICMPv6 error message (e.g., Packet Too Big) that claims to be from an on-path router R, regarding a UDP flow to Host B.</t>
        </li>
        <li>
          <t>Generate and Store Challenge: Host A does not trust the message. It generates a large, unpredictable random number (a nonce). It then stores this nonce in a local cache, associating it with the flow's identifiers (e.g., the 4-tuple) and a timeout.</t>
        </li>
        <li>
          <t>Issue Challenge: Host A sends the next UDP packet for that flow to Host B. This packet includes the nonce in a new IPv6 Destination Option.</t>
        </li>
        <li>
          <t>Receive Confirmation: If router R is legitimately on the path and the error condition persists, it will drop the challenge packet and generate a new ICMPv6 error message. This new message will contain the header of the challenge packet, including the IPv6 Option with the nonce.</t>
        </li>
        <li>
          <t>Validate: Host A receives the new error message, extracts the nonce, and looks it up in its cache. If the nonce is found and matches the one stored for that flow, the error is deemed authentic. Host A can now safely process the error (e.g., update its PMTU for that flow).</t>
        </li>
      </ol>
      <section anchor="the-flaw-in-the-strawman-denial-of-service-vulnerability">
        <name>The Flaw in the Strawman: Denial-of-Service Vulnerability</name>
        <t>The stateful approach, while functionally correct, introduces a critical security vulnerability: state-exhaustion Denial-of-Service (DoS) attacks.</t>
        <t>An attacker can exploit the behavior described in Step 2. The attacker can send a high volume of forged ICMPv6 error messages to Host A, each for a different (and possibly non-existent) flow. For each of these forged messages, Host A is forced to perform the following actions:</t>
        <ul spacing="normal">
          <li>
            <t>Generate a cryptographically secure random number.</t>
          </li>
          <li>
            <t>Allocate memory for a cache entry to store the nonce, flow identifiers, and a timer.</t>
          </li>
          <li>
            <t>Manage the timer for this entry.</t>
          </li>
        </ul>
        <t>By sending thousands of such messages per second, the attacker can force the victim host to exhaust its memory or CPU resources dedicated to managing the challenge cache. This is a classic state-exhaustion DoS attack, analogous to a TCP SYN flood. A solution that opens up such a significant DoS vector is not suitable for deployment on the public Internet.</t>
        <t>One might consider rate-limiting the processing of incoming ICMP error messages as a potential mitigation. However, this is insufficient. The fundamental problem lies in the host's inability to distinguish legitimate ICMP errors from forged ones before expending processing resources. As a result, an attacker can easily saturate the rate limit with fake messages, effectively preventing the host from receiving and responding to genuine network errors. This turns the rate limit mechanism into an amplifier of denial, suppressing critical feedback from the network while consuming system resources. Therefore, any viable defense must allow for early authentication of ICMP messages before the host allocates significant per-message state.</t>
      </section>
    </section>
    <section anchor="the-proposed-solution-a-stateless-challenge-confirm-mechanism">
      <name>The Proposed Solution: A Stateless Challenge-Confirm Mechanism</name>
      <t>To solve the DoS vulnerability, we must remove the requirement to store per-challenge state. The solution is 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-mechanism">
        <name>Challenge-Confirm Mechanism</name>
        <t>The refined, 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 same anti-spoofing goal as the strawman but without creating state for unverified messages, thus defeating the DoS attack. Figure 1 illustrates the complete interaction, including both the legitimate process and how an off-path attacker's attempts are thwarted.</t>
        <artwork><![CDATA[
Host A                                 On-Path Router R
  |                                          |
  |--------[ Original UDP Packet ]---------->|
  |                                          X (Error, e.g., 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" in Step 2 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 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 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>:  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>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>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="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 399?>

<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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
J1H4P/q6mJpKawAA

-->

</rfc>
