<?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-icmpv4-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-02"/>
    <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="2025" month="November" day="02"/>
    <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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
e/8L0QBpbt9iAAA=

-->

</rfc>
