<?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-icmpv4-03" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="challenge-icmpv4">Enhancing ICMP Error Message Authentication Using Challenge-Confirm Mechanism</title>
    <seriesInfo name="Internet-Draft" value="draft-xu-intarea-challenge-icmpv4-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="Yuxiang Yang">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>yangyx22@mails.tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Qi Li">
      <organization>Tsinghua University &amp; Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>qli01@tsinghua.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="April" day="27"/>
    <area>AREA</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>off-path attack</keyword>
    <keyword>redirect</keyword>
    <keyword>fragmentation</keyword>
    <abstract>
      <?line 124?>

<t>The Internet Control Message Protocol (ICMP) 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 ICMP 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 ICMP error messages while inherently resisting both off-path spoofing and state-exhaustion DoS attacks, thus improving the robustness of ICMP.</t>
    </abstract>
  </front>
  <middle>
    <?line 130?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Internet Control Message Protocol (ICMP) <xref target="RFC792"/> is an integral part of network operations, providing essential feedback on transmission issues. However, the legitimate verification of ICMP error messages is inherently vulnerable by design. To enable senders to correlate error reports with the original packets for effective network diagnostics, ICMP error messages, as specified in <xref target="RFC792"/>, 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 ICMP, 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 ICMP 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 ICMP "Fragmentation Needed" messages to degrade throughput and harm latency-sensitive applications. This can also induce TCP segment fragmentation <xref target="NDSS2022MTU"/> and enable IP ID-based TCP session hijacking <xref target="CCS2020IPID"/>. Moreover, forged ICMP Redirect messages embedded with stateless protocol data can be used to trick victims into modifying their routing, facilitating off-path traffic interception, modification, and credential theft <xref target="USENIXSECURITY2023ICMP"/>, <xref target="SP2023MITM"/>. These diverse attack vectors starkly underscore the critical and urgent necessity for robust authentication mechanisms in ICMP for error message processing.</t>
      <t>This document proposes a stateless challenge-confirm mechanism that authenticates these ICMP 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 ICMP specifications have inherent limitations that allow off-path attackers to forge ICMP 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 ICMP error messages, such as "Fragmentation Needed" 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="RFC792"/> and <xref target="RFC1122"/> stipulate that error messages should include as much of the original (offending) packet as possible, the inherent characteristics of the embedded packet protocol directly influence the difficulty of authenticating ICMP 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 ICMP 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 details in the embedded TCP header match their maintained TCP connection state, thereby judging the authenticity of the ICMP error message.</t>
        </section>
        <section anchor="stateless-embedded-packets-eg-udp-icmp">
          <name>Stateless Embedded Packets (e.g., UDP, ICMP)</name>
          <t>In contrast to stateful TCP, when attackers embed stateless protocol packets, such as UDP or ICMP messages, in forged ICMP error messages, receivers lose the ability to perform effective state verification. UDP and ICMP protocols are inherently designed as stateless protocols. The UDP or ICMP messages embedded in ICMP 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 ICMP error messages based on the embedded stateless packet header. This lack of state verification greatly reduces the authentication strength of ICMP 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 ICMP 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 ICMP 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 IP Option, and the packet is sent.</t>
          </li>
          <li>
            <t>Receive and Verify Confirmation: If a legitimate on-path node returns a new ICMP 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, e.g., MTU exceeded)
  |<--[ 1. ICMP 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 ICMP 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>
        <ul spacing="normal">
          <li>
            <t><strong>UDP</strong>: Upon receiving a validatable ICMP error, the host sets a flag on the corresponding UDP socket's control block.</t>
          </li>
          <li>
            <t><strong>TCP</strong>: While TCP has its own protections, this mechanism can supplement it. A flag can be set on the TCB.</t>
          </li>
          <li>
            <t><strong>ICMP</strong>: 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.  </t>
            <ul spacing="normal">
              <li>
                <t>On Error Reception: The host hashes a flow identifier (e.g., source IP, destination IP, ICMP Identifier) and increments the corresponding counter(s) in the sketch.</t>
              </li>
              <li>
                <t>On Packet Transmission: When sending a new ICMP 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>
              </li>
            </ul>
          </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 IP Option. The challenge packet for a received ICMP error message containing a stateless protocol payload includes this option in the IP header (as shown in Figure 2). Similarly, the ICMP error message triggered in response to this challenge packet should also include the same option in the header of the embedded IP 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|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Option Type  |  Opt Data Len |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                   Challenge Nonce (128 bits)                  |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |             Stateless Protocol Data (UDP/ICMP packet)         |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 2: The IPv4 Challenge Packet with Challenge-Confirm Option
]]></artwork>
        <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 number computed as described in Section 4.1.</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             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             unused                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Version |  IHL  | Type of Service  |       Total Length       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Identification         | Flags |   Fragment Offset     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Time to Live    |  Protocol  |      Header Checksum        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Source Address                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Destination Address                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Option Type  |  Opt Data Len  |         Reserved            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |               Challenge Nonce (128 bits)                      |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Stateless Protocol Data (UDP/ICMP packet)             |
      |                     (Variable Length)                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 3: New ICMP 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 ICMP 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 ICMP 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 ICMP 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 ICMP 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 ICMP 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:
          </t>
          <ol spacing="normal" type="1"><li>
              <t>It creates no state for ICMP errors that do not correspond to an existing, active transport-layer socket.</t>
            </li>
            <li>
              <t>For valid flows, the state added is minimal (a flag) or probabilistically bounded (a sketch), preventing uncontrolled resource consumption.</t>
            </li>
          </ol>
        </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 ICMP 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 ICMP 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 IP Option as per standard IP header processing rules <xref target="RFC1122"/>. 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 "IP Option Numbers" registry <xref target="RFC2780"/>.</t>
      <t>This draft requests the following IP Option Type assignments from the IP Option Numbers registry in the Internet Protocol (IP) Parameters registry group (https://www.iana.org/assignments/ip-parameters).</t>
      <artwork><![CDATA[
+======+=======+========+=======+======================+============+
| Copy | Class | Number | Value | Name                 | Reference  |
+======+=======+========+=======+======================+============+
| TBD  | TBD   | TBD    | TBD   | Challenge-Confirm    | This draft |
+------+-------+--------+-------+----------------------+------------+
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC792">
          <front>
            <title>Internet Control Message Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="792"/>
          <seriesInfo name="DOI" value="10.17487/RFC0792"/>
        </reference>
        <reference anchor="RFC1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </reference>
        <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="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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NDSS2022MTU">
          <front>
            <title>PMTUD is not Panacea: Revisiting IP Fragmentation Attacks against TCP</title>
            <author initials="X." surname="Feng">
              <organization/>
            </author>
            <author initials="Q." surname="Li">
              <organization/>
            </author>
            <author initials="K." surname="Sun">
              <organization/>
            </author>
            <author initials="K." surname="Xu">
              <organization/>
            </author>
            <author initials="B." surname="Liu">
              <organization/>
            </author>
            <author initials="X." surname="Zheng">
              <organization/>
            </author>
            <author initials="Q." surname="Yang">
              <organization/>
            </author>
            <author initials="H." surname="Duan">
              <organization/>
            </author>
            <author initials="Z." surname="Qian">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="Network and Distributed System Security Symposium (NDSS)" value=""/>
        </reference>
        <reference anchor="CCS2020IPID">
          <front>
            <title>Off-path TCP exploits of the mixed IPID assignment</title>
            <author initials="X." surname="Feng">
              <organization/>
            </author>
            <author initials="C." surname="Fu">
              <organization/>
            </author>
            <author initials="Q." surname="Li">
              <organization/>
            </author>
            <author initials="K." surname="Sun">
              <organization/>
            </author>
            <author initials="K." surname="Xu">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="ACM Conference on Computer and Communications Security (CCS)" value=""/>
        </reference>
        <reference anchor="USENIXSECURITY2023ICMP">
          <front>
            <title>Off-Path Network Traffic Manipulation via Revitalized ICMP Redirect Attacks</title>
            <author initials="X." surname="Feng">
              <organization/>
            </author>
            <author initials="Q." surname="Li">
              <organization/>
            </author>
            <author initials="K." surname="Sun">
              <organization/>
            </author>
            <author initials="Z." surname="Qian">
              <organization/>
            </author>
            <author initials="C." surname="Fu">
              <organization/>
            </author>
            <author initials="G." surname="Zhao">
              <organization/>
            </author>
            <author initials="X." surname="Kuang">
              <organization/>
            </author>
            <author initials="K." surname="Xu">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="USENIX Security Symposium (Security)" value=""/>
        </reference>
        <reference anchor="SP2023MITM">
          <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>
    <?line 359?>

<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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
/ws0xfAV32IAAA==

-->

</rfc>
