<?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 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-intarea-challenge-icmpv4-04" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="ICMP Challenge-Confirm">Enhancing ICMP Error Message Validation Using a Challenge-Confirm Mechanism</title>
    <seriesInfo name="Internet-Draft" value="draft-xu-intarea-challenge-icmpv4-04"/>
    <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="October" day="19"/>
    <area>Internet</area>
    <workgroup>Internet Area Working Group</workgroup>
    <keyword>ICMP validation</keyword>
    <keyword>off-path attack</keyword>
    <keyword>challenge-confirm</keyword>
    <keyword>IPv4 options</keyword>
    <abstract>
      <?line 113?>

<t>ICMP error messages provide feedback used by hosts to manage network communication. Existing validation of the quoted invoking packet is essential, but its resistance to blind off-path forgery depends on the information quoted and the communication state available to the receiver.</t>
      <t>This document describes a Challenge-Confirm mechanism that supplements existing ICMP validation. After an eligible initial error passes existing checks, the host can mark the associated flow and include an unpredictable token in an IPv4 option of a subsequent packet that would otherwise be transmitted. Receipt of the initial error does not immediately generate a probe or a separate ICMP Echo Request. A later ICMP error can return the token by quoting the invoking packet.</t>
      <t>The token is computed using a secret local to the validating host. No key is shared with routers or peer hosts, and no per-challenge nonce cache is required. Successful token validation provides evidence of access to a valid token; it does not authenticate a router's identity or the semantics of the reported error. This document specifies bounded triggering, replay limitations, and deployment considerations, including the need to evaluate IPv4 option traversal and quotation. It does not report Internet-wide deployment measurements.</t>
    </abstract>
  </front>
  <middle>
    <?line 121?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Internet Control Message Protocol (ICMP) <xref target="RFC792"/> reports conditions such as an unreachable destination or a packet that cannot be forwarded without fragmentation. These reports can influence transport behavior, Path MTU Discovery, and routing decisions. A forged report can therefore affect communication beyond the processing of an individual packet.</t>
      <t>Research has demonstrated attacks involving forged fragmentation-related feedback and shared network-stack state <xref target="NDSS2022MTU"/> <xref target="CCS2020IPID"/>, as well as attacks involving ICMP Redirect processing <xref target="USENIXSECURITY2023ICMP"/> <xref target="SP2023MITM"/>. These examples motivate careful validation; they do not imply that every implementation is vulnerable or that one additional mechanism addresses every attack.</t>
      <t>Validation of the quoted invoking packet is the first line of defense. A host can check whether the quotation corresponds to local communication and, where available, compare it with transport state or recently transmitted data. The strength of this evidence varies with the protocol, implementation, quotation length, and attacker knowledge. In particular, matching plausible flow identifiers is not always sufficient to establish that the sender of an error observed a transmitted packet.</t>
      <t>The mechanism in this document adds an unpredictable token to a subsequent packet of an eligible flow. The token is carried in an IPv4 option so that it can be included in the original IPv4 header quoted by a later ICMP error. A router need not implement a challenge protocol: it only performs its normal ICMP quotation behavior. Reliable forwarding and quotation of the option are deployment assumptions, not established properties of all paths.</t>
      <t>The host computes and verifies the token using a host-local secret, taking inspiration from the avoidance of per-request state in SYN-cookie designs <xref target="RFC4987"/>. It retains bounded trigger state, rather than a nonce cache for every challenge. The aim is to improve resistance to blind off-path forgery while making the associated resource costs, availability tradeoffs, and validation limits explicit.</t>
    </section>
    <section anchor="terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. These requirements describe an implementation of the proposed mechanism; this document does not require its deployment by all IPv4 hosts.</t>
      <dl>
        <dt>Validating host:</dt>
        <dd>
          <t>The host that transmits the original traffic, receives ICMP errors about that traffic, and generates and verifies tokens.</t>
        </dd>
        <dt>Invoking packet:</dt>
        <dd>
          <t>The packet whose processing caused an ICMP error. A quotation is the portion of that packet included in the error.</t>
        </dd>
        <dt>Initial error:</dt>
        <dd>
          <t>An otherwise eligible ICMP error whose quotation does not carry a Challenge-Confirm option.</t>
        </dd>
        <dt>Challenge-bearing packet:</dt>
        <dd>
          <t>A normally scheduled outgoing packet to which the validating host adds a Challenge-Confirm option. It is not a separately generated probe.</t>
        </dd>
        <dt>Confirmation:</dt>
        <dd>
          <t>A later ICMP error that quotes a challenge-bearing packet and passes token validation. It remains subject to the ordinary checks for its type and code.</t>
        </dd>
        <dt>Token (challenge nonce):</dt>
        <dd>
          <t>The 128-bit value defined in <xref target="token-construction"/>. The term "nonce" is retained for continuity with earlier revisions, but the value is deterministic for a flow within a key epoch and is not guaranteed to be unique per packet.</t>
        </dd>
        <dt>Flow:</dt>
        <dd>
          <t>The locally identified communication described in <xref target="flow-identification"/>. A socket and a flow are not necessarily interchangeable: one UDP socket can communicate with several destinations.</t>
        </dd>
      </dl>
    </section>
    <section anchor="existing-validation">
      <name>Existing Validation and Residual Limitations</name>
      <section anchor="existing-checks">
        <name>Existing Checks</name>
        <t>An implementation first checks the ICMP message and its quotation for validity, associates the quotation with local communication, and applies the relevant protocol-specific checks. Depending on the implementation, these include transport sequence information, randomized ports or identifiers, recent transmission records, and application-specific data.</t>
        <t>Section 5.2 of <xref target="RFC8085"/> recommends that UDP applications validate that an ICMP error corresponds to a datagram actually sent by the application. It notes that this requires context and that the necessary state or APIs are not always available. Section 5.2 of <xref target="RFC4443"/> provides a related recommendation for upper-layer validation of ICMPv6 messages, while leaving the particular checks to the upper layer. That recommendation is relevant background; the mechanism specified here is for IPv4 only.</t>
        <t>For TCP, sequence-number checks can reject errors that do not relate to data in flight, as discussed in Section 4.1 of <xref target="RFC5927"/>. Their strength depends on implementation behavior and the information available to an attacker. The minimum IPv4 quotation includes the TCP ports and sequence number, but need not include the acknowledgment number. TCP is not treated as inherently immune to forged ICMP.</t>
      </section>
      <section anchor="residual-limitations">
        <name>Residual Limitations</name>
        <t>UDP and ICMP Echo traffic can have useful local state. Randomized ports, Echo identifiers, application tokens, and records of recently transmitted packets can all increase the difficulty of forgery. The absence of a connection-oriented transport does not imply the absence of validation state.</t>
        <t>Nevertheless, that information may be predictable, unavailable for comparison, or absent from the quotation. The IPv4 ICMP format in <xref target="RFC792"/> includes the original IP header and the first 64 bits of its data. For UDP, these eight bytes contain the UDP header and need not expose an application-specific token. Longer quotations can support additional checks. A UDP checksum provides error detection and is not a cryptographic authenticator.</t>
        <t>This proposal targets cases where existing checks are performed but the available quoted information provides insufficient resistance to blind off-path forgery. For example, an attacker that knows the endpoints and ports may be able to construct a quotation that passes flow association if the remaining checked fields are also known or predictable. That example does not apply when the receiver already verifies additional information that the attacker cannot supply.</t>
        <t>An implementation MUST NOT use Challenge-Confirm as a reason to omit existing validation. A report that fails those checks is rejected without creating challenge state. Evaluation of this mechanism needs to distinguish a missing implementation of an existing check from a residual limitation after that check is applied.</t>
      </section>
    </section>
    <section anchor="scope">
      <name>Scope and Threat Model</name>
      <t>The attacker considered here can inject ICMP messages and may know flow identifiers, but cannot observe the challenge-bearing packet, obtain a valid token by another channel, or learn the host-local secret. The keyed-hash function is assumed to retain its security properties. Under these assumptions, a valid token provides additional evidence against blind forgery.</t>
      <t>The mechanism does not authenticate the identity or routing authority of the sender of an ICMP error. An observer of a token can copy it. The token does not cryptographically protect the outer ICMP Type, Code, reported MTU, Redirect gateway, or other error-specific fields. A malicious on-path node or peer that obtains a token is outside the blind-attacker model.</t>
      <t>Successful validation also does not establish that the initial error was authentic, that two errors came from the same node or path, or that an error condition persisted between them. In this revision, a token is bound to a flow and an accepted key epoch, not to one packet or one error condition. The replay consequences are described in <xref target="replay"/>.</t>
      <t>This revision defines flow identification for IPv4 UDP, TCP, and ICMP Echo Requests. TCP use is optional and supplements its existing protections. Candidate ICMP messages are Destination Unreachable (Type 3), Redirect (Type 5), Time Exceeded (Type 11), and Parameter Problem (Type 12), with handling constrained by <xref target="error-types"/> and existing code-specific rules. Other ICMP types do not trigger this mechanism. Multicast, broadcast, fragmented quotations, and transport protocols without a defined flow identifier are outside the validation procedure in this revision.</t>
      <t>The mechanism is a candidate for controlled evaluation on selected traffic and paths. Requiring a confirmation can suppress legitimate error feedback. Implementations therefore need an explicit local enablement policy, resource limits, and a documented failure policy as described in <xref target="deployment"/>. It is not a drop-in replacement for all existing ICMP processing.</t>
      <t>Enablement MUST be determined by local policy and communication context, rather than solely by fields supplied in an incoming quotation. If a state change requires confirmation, an unsupported or incomplete quotation MUST NOT authorize that change through a fallback path. This includes an alleged fragment that cannot be validated by this revision.</t>
    </section>
    <section anchor="mechanism">
      <name>Challenge-Confirm Mechanism</name>
      <section anchor="overview">
        <name>Overview and Host-Local Secret</name>
        <t>The secret is local to the validating host. It is not shared with routers or peer hosts. A router neither computes nor verifies the token; it only quotes the invoking packet according to the applicable ICMP specification. The validating host recomputes the token from that quotation and its local key.</t>
        <t>An eligible initial error can mark a flow, subject to the limits in <xref target="resource-limits"/>. The marking does not immediately cause a transmission. The host attempts to add a token when that flow next transmits a packet that would otherwise be sent. A later error containing a valid token is evaluated as a new report.</t>
        <artwork><![CDATA[
Validating host                         Router or destination
      |                                          |
      |----------- Ordinary packet ------------->|
      |<---------- Initial ICMP error -----------|
      |                                          |
      | Check quotation and local context        |
      | Mark eligible flow within budget         |
      | Do not act on this error or send a probe |
      |                                          |
      |------ Next ordinary packet + token ----->|
      |       (if insertion is possible)         |
      |                                          |
      |       If processing causes a new error:  |
      |<-------- ICMP quoting the token ---------|
      |                                          |
      | Validate token and local context         |
      | Apply type-specific checks to NEW error  |
      | No confirmation: no additional evidence  |
]]></artwork>
      </section>
      <section anchor="flow-identification">
        <name>Eligible Flows and Local Context</name>
        <t>Before marking a flow or accepting a token, the implementation MUST associate the quotation with an existing local communication context. It MUST apply the available checks on recent transmissions and transport or application state. Merely locating a listening socket does not establish that a packet was sent to the quoted destination.</t>
        <t>For UDP and TCP, the flow identifier consists of the source IPv4 address, destination IPv4 address, IP Protocol value, source port, and destination port of the outgoing traffic. For ICMP Echo Requests, it consists of the two IPv4 addresses, IP Protocol value 1, Echo Identifier, and Echo Type and Code (8 and 0). The Echo Sequence Number can be used in ordinary request validation but is not part of the flow identifier used to compute the token.</t>
        <t>An unconnected UDP socket can serve multiple flows. A pending mark MUST identify the particular destination and selectors; it MUST NOT automatically cause a packet to an unrelated destination to carry a token. Implementations can attach bounded per-destination metadata to existing socket state or use a capacity-limited table. If the required association cannot be made within the configured budget, the error does not create a mark.</t>
        <t>ICMP Echo can have socket or request state and is not assumed to lack it. A probabilistic structure, if used as a trigger hint, MUST NOT establish the existence of local communication or substitute for exact flow association and token verification. Its capacity, aging, saturation behavior, and possible false triggers MUST be bounded and documented. A received error alone MUST NOT create an otherwise nonexistent communication context.</t>
      </section>
      <section anchor="token-construction">
        <name>Token Construction and Key Lifetime</name>
        <t>The validating host generates an independent 256-bit secret key using a cryptographically secure random source consistent with <xref target="RFC4086"/>. Keys MUST be separate for different local network namespaces or other routing/security compartments, and MUST NOT be disclosed to peers.</t>
        <t>The token is the first 16 octets of HMAC-SHA-256 <xref target="RFC2104"/> <xref target="RFC6234"/>:</t>
        <artwork><![CDATA[
Token = first_16_octets(HMAC-SHA-256(K, Label || Flow_ID))

Label = ASCII("ICMP-CC-IPv4-v1")    ; no terminating NUL

Flow_ID = Source_Address          ; 4 octets
       || Destination_Address     ; 4 octets
       || Protocol                ; 1 octet
       || Selector_1              ; 2 octets
       || Selector_2              ; 2 octets
]]></artwork>
        <t>All addresses and multi-octet integers are encoded in network byte order. For UDP and TCP, Selector_1 and Selector_2 are the source and destination ports. For Echo Requests, Selector_1 is the Echo Identifier and Selector_2 is the two octets Type followed by Code, namely 0x08 and 0x00. The source and destination are those of the outgoing invoking packet, not those of the outer ICMP message. Flow_ID is exactly 13 octets; no padding or implementation-dependent structures are included.</t>
        <t>The option format in <xref target="option-format"/> identifies this construction once its Option Type is assigned. Its Reserved field is not an epoch or version field. The label provides domain separation for the construction; a future incompatible construction requires a separately specified encoding or negotiation and MUST NOT silently reuse this definition.</t>
        <t>Each deployment MUST configure a finite key epoch duration E &gt; 0 and a finite previous-key grace duration G, where 0 &lt;= G &lt;= E. A fresh, independent key is generated at each epoch transition. The host MAY accept the immediately preceding key until G time units after that transition; no older key is accepted. Expired keys MUST be erased. At most two keys are tried for any report. Key retention deadlines MUST NOT be extended by incoming traffic. A key MUST NOT generate tokens after its epoch ends, and MUST NOT validate tokens after the end of its configured grace interval, even if a scheduled rotation was missed.</t>
        <t>No epoch number is transmitted. The host verifies against the current key and, during its grace interval, the previous key. Token comparison MUST use a constant-time equality operation. E and G are local parameters, since no other node computes the token. Their values and rationale MUST be documented for an evaluation. A token generated near the start of an epoch can remain acceptable for up to E + G; a small G can reject legitimate delayed errors around rotation.</t>
        <t>This construction deliberately provides no per-packet uniqueness or single-use property. A new packet with the same Flow_ID during an epoch receives the same token. Addresses or ports reused during an acceptance window can also yield the same token. Existing communication checks and error-specific handling remain necessary; key rotation limits the window but does not remove these effects.</t>
      </section>
      <section anchor="receive-error">
        <name>Receiving an Error</name>
        <t>The following procedure applies to traffic for which the mechanism is enabled. ICMP processing outside that scope follows existing policy.</t>
        <ol spacing="normal" type="1"><li>
            <t>Validate message lengths, checksum, Type and Code, and the structural consistency of the quotation. Require the complete quoted IPv4 header, using its IHL, and sufficient quoted upper-layer bytes to identify the flow. Apply existing protocol-specific validation and establish local communication context. Unsupported traffic and reports that fail these checks do not create a mark.</t>
          </li>
          <li>
            <t>Parse the quoted IPv4 options, subject to their length bounds. If exactly one well-formed Challenge-Confirm option is present, attempt token verification within the configured verification budget. A malformed, duplicate, unsupported, or invalid token option MUST NOT be treated as a token-free initial error. Failure terminates this mechanism's processing of that report without scheduling a challenge.</t>
          </li>
          <li>
            <t>If the token validates under an accepted key, recheck any local context that may have changed and pass the new report to the type-specific handling in <xref target="error-types"/>. A pending mark is not required for verification. Successful token validation alone MUST NOT update PMTU, route, or application error state.</t>
          </li>
          <li>
            <t>If the quotation contains no Challenge-Confirm option, treat the report as an initial error only if it is eligible and passes existing checks. Subject to <xref target="resource-limits"/>, record or coalesce a pending mark for that flow. Do not act on the initial error to make the protected state change. The initial error is discarded and is not saved for later acceptance.</t>
          </li>
        </ol>
        <t>In particular, a later valid token MUST NOT retroactively authenticate the discarded initial error. An invalid token, an expired key, or a spent verification budget supplies no confirmation. Implementations MUST NOT fall back to accepting that same report solely because Challenge-Confirm could not validate it.</t>
      </section>
      <section anchor="send-challenge">
        <name>Sending the Challenge-Bearing Packet</name>
        <t>A mark has a finite local lifetime L &gt; 0 and applies only to its associated flow. When that flow next attempts an ordinary transmission before the mark expires, the host checks the insertion conditions and the relevant rate budget. If they allow insertion, it computes the token and adds the option defined in <xref target="option-format"/>. The mark is consumed by this attempt whether or not insertion succeeds. If no transmission occurs, the mark expires without producing a packet.</t>
        <t>The mechanism MUST NOT generate a separate probe, change the packet into an Echo Request, or initiate an application retransmission merely because an initial error arrived. The original flow can itself be an Echo Request flow; the distinction is that this mechanism adds no independently generated Echo exchange.</t>
        <t>Insertion MUST preserve the existing application payload, transport selectors, IP destination, and DF policy. The option is inserted before any End of Option List marker, with valid padding; it updates IHL, Total Length, and the IPv4 header checksum. It MUST fit within the maximum IPv4 header and total lengths and the locally applicable packet-size limit without requiring new local fragmentation solely to carry the option. A packet already fragmented, already containing the option, or otherwise unsuitable for insertion is sent or rejected according to ordinary transmission rules, without forcing insertion. Transports using segmentation offload need equivalent per-wire-packet behavior.</t>
        <t>If insertion is skipped because of a size, key, or resource limit, the attempt does not obtain a challenge. The original error remains unconfirmed. This revision does not alter the DF policy or define confirmation for fragmented quotations; downstream fragmentation is a limitation discussed in <xref target="packet-size"/>.</t>
      </section>
      <section anchor="resource-limits">
        <name>Bounded State and Resource Limits</name>
        <t>The mechanism has no per-challenge nonce cache, but it does have keys, pending marks, and accounting state. Calling the entire implementation stateless would obscure those resources.</t>
        <t>An implementation MUST impose fixed memory budgets for pending marks and for any additional flow, destination, or rate-accounting entries used by this mechanism. Incoming errors MUST NOT grow those structures without a bound. Only locally established communication can acquire a mark. At capacity, a new mark is declined or an existing mark is evicted according to documented policy; the unconfirmed error is not accepted as a consequence.</t>
        <t>Repeated initial errors for a pending flow SHOULD be coalesced. They MUST NOT extend that mark's original expiry indefinitely. Per-flow and per-destination limits, together with a global limit, MUST bound the rate of marking and option insertion. A global verification budget MUST also bound processing of reports carrying alleged tokens. Token verification requires at most two HMAC calculations per admitted report. Budget exhaustion produces no confirmation and no new challenge from that report.</t>
        <t>Limit values and overload behavior are local policy and MUST be specified for a deployment. Accounting itself needs bounded storage; creating an unlimited rate-limit entry for each attacker-supplied tuple would defeat the memory limit. Rate limits can suppress legitimate confirmations, including under attack, and are not a guarantee of availability.</t>
      </section>
    </section>
    <section anchor="option-format">
      <name>Challenge-Confirm IPv4 Option</name>
      <t>The proposed option occupies 20 octets. The Option Length follows <xref target="RFC791"/> and includes the Type and Length octets as well as the data. It is not a data-only length.</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Option Type  |  Length = 20  |         Reserved = 0            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 +                                                               +
 |                       Token (128 bits)                        |
 +                                                               +
 |                                                               |
 +                                                               +
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      <dl>
        <dt>Option Type:</dt>
        <dd>
          <t>An 8-bit identifier awaiting IANA assignment. The proposed Copy bit is 0 and Class is 0 (control); the option number remains TBD, as described in <xref target="iana"/>.</t>
        </dd>
        <dt>Option Length:</dt>
        <dd>
          <t>An 8-bit unsigned integer with value 20. Other lengths are not valid for this definition.</t>
        </dd>
        <dt>Reserved:</dt>
        <dd>
          <t>A 16-bit field. The sender MUST set it to zero. A validating host MUST ignore its value when verifying this version of the option. It is not an input to the token computation.</t>
        </dd>
        <dt>Token:</dt>
        <dd>
          <t>The 16 octets computed in <xref target="token-construction"/>.</t>
        </dd>
      </dl>
      <t>A validating host MUST require exactly one complete occurrence of the option before attempting verification. It MUST bound option parsing by the quoted IHL and by the actual available quotation length, and follow the IPv4 End of Option List and No Operation rules. An invalid length, truncated field, or duplicate occurrence fails this mechanism's validation.</t>
      <t>The option is in the header of the invoking packet, which is in turn quoted inside the returning ICMP error. It is not an option added to the outer IP header of that error. The general layout is:</t>
      <artwork><![CDATA[
 Outer IPv4 header
 ICMP Type | Code | Checksum
 ICMP type-specific fields
 Quoted IPv4 header, including Challenge-Confirm option
 Quoted upper-layer header and any additional quoted data
]]></artwork>
      <t>The ICMP type-specific fields are not universally unused. For example, a Fragmentation Needed message includes the Next-Hop MTU field specified in <xref target="RFC1191"/>, while a Redirect includes a gateway address. This mechanism does not redefine either format.</t>
    </section>
    <section anchor="error-types">
      <name>Error-Type-Specific Processing</name>
      <t>Token validation supplements the ordinary processing of a new error. The baseline requirements of <xref target="RFC792"/> and <xref target="RFC1122"/>, applicable updates, and existing transport/application checks continue to apply. A valid token MUST NOT authorize an otherwise invalid Type/Code combination or an otherwise prohibited state change.</t>
      <section anchor="fragmentation-needed">
        <name>Fragmentation Needed</name>
        <t>For Type 3, Code 4, the host processes the newly received report according to its applicable PMTU validation rules and <xref target="RFC1191"/>. It checks the quoted packet, the reported MTU, and their relationship to the affected path and local state. The token does not authenticate the reported MTU.</t>
        <t>The host MUST evaluate the report against the challenge-bearing packet actually quoted. Adding the option increases that packet's IP length by 20 octets. Consequently, it can encounter an MTU limitation that the earlier ordinary packet did not encounter. A confirmation of that new condition MUST NOT be interpreted as proof that the initial report was correct. The reported Next-Hop MTU describes an IP packet-size limit; it is not adjusted by blindly subtracting 20 from the reported value. Packetization must instead account for the actual headers of packets subsequently sent.</t>
        <t>Packetization Layer PMTU Discovery <xref target="RFC4821"/> and Datagram PLPMTUD <xref target="RFC8899"/> provide related approaches based on packetization-layer feedback. This mechanism neither replaces them nor implies that they are available for every application. Withholding an unconfirmed ICMP error can impair conventional PMTUD, particularly when the application does not transmit again.</t>
      </section>
      <section anchor="unreachable">
        <name>Other Destination Unreachable Messages</name>
        <t>For supported codes of Type 3 other than Code 4, existing checks associate the new report with the relevant local communication and interpret the code. In particular, a UDP Port Unreachable (Code 3) remains subject to the socket and application's existing error-delivery and recovery policy. A valid token MUST NOT convert a report normally treated as a soft error into an unconditional connection failure. UDP applications should retain the robustness to transient errors discussed in <xref target="RFC8085"/>.</t>
        <t>One-shot requests may not generate a subsequent packet and therefore may never obtain a confirmation. Deployments need to consider this loss of error feedback when selecting traffic for the mechanism.</t>
      </section>
      <section anchor="redirect">
        <name>Redirect</name>
        <t>For Type 5, the host MUST retain its ordinary Redirect validation and local policy. Section 3.2.2.2 of <xref target="RFC1122"/> describes rejection when the new gateway is not on the connected subnet through which the Redirect arrived or when the source is not the current first-hop gateway for the destination. A valid token MUST NOT bypass those checks or override a local policy that disables Redirect processing.</t>
        <t>An observer of the token can still forge the outer source address or the advertised gateway. Thus, token validation alone does not establish authority to redirect traffic. In particular, the mechanism provides no new protection against a malicious peer or on-path node that can see the challenge. The new Redirect, if otherwise acceptable, is evaluated on its own contents; a gateway advertised only in the discarded initial error is never installed on the strength of a later token.</t>
      </section>
      <section anchor="other-errors">
        <name>Time Exceeded and Parameter Problem</name>
        <t>For Type 11 and Type 12, the host retains the ordinary code-specific checks and interpretation of the newly quoted packet. A Parameter Problem pointer, for example, is checked against that packet's header, including its options. An error involving the Challenge-Confirm option itself is not evidence that the earlier option-free packet was erroneous and MUST NOT be used to accept the earlier report.</t>
        <t>Fragment reassembly behavior and quotations of fragments are outside this revision's validation scope. Reports without a usable local flow association do not gain one merely by containing an alleged token.</t>
      </section>
    </section>
    <section anchor="deployment">
      <name>Failure and Deployment Considerations</name>
      <section anchor="loss">
        <name>Loss, No Further Traffic, and ICMP Rate Limiting</name>
        <t>There is no timer that retransmits a challenge-bearing packet on behalf of this mechanism. A pending mark expires or is consumed by a transmission attempt. After transmission, the host does not retain a per-challenge waiting record.</t>
        <t>The absence of a confirmation is inconclusive. The packet may have been delivered successfully, the error condition may have disappeared, either packet may have been lost, or ICMP generation may have been rate-limited. With no later eligible traffic, the process cannot complete. Continuing traffic and a recurring network problem can cause another initial error, but neither retry opportunities nor eventual confirmation are guaranteed.</t>
        <t>An implementation MUST distinguish its policy for ordinary data transmission from its policy for accepting ICMP errors. Sending later packets without the option does not validate a discarded error. For traffic on which confirmation is required, a missing confirmation MUST NOT be treated as evidence that the initial error was authentic. Ordinary transport and application recovery can continue, with the possibility of persistent loss or delayed error feedback.</t>
      </section>
      <section anchor="multipath">
        <name>Multiple Paths</name>
        <t>A challenge-bearing packet can take a different path from the packet quoted in the initial error. It may reach its destination successfully, encounter another error, or receive an error from a different node. Only a new report with a valid token and acceptable semantics can be acted on.</t>
        <t>For example, per-packet load balancing can repeatedly send an ordinary packet over a problematic path and the following challenge-bearing packet over a working path. The host can then fail to confirm a persistent condition indefinitely. Repeating the procedure does not guarantee convergence. The impact depends on packet scheduling, the traffic, and the paths; this document gives no general throughput bound for that case.</t>
      </section>
      <section anchor="option-traversal">
        <name>Option Traversal and Quotation</name>
        <t>Existing ICMP quotation rules provide the basis for returning the option in the quoted IPv4 header. However, reliable forwarding and quotation of a new option are deployment assumptions that require evaluation. Routers, firewalls, and other middleboxes can filter, rate-limit, or process packets carrying IPv4 options differently. <xref target="RFC7126"/> discusses configurable handling of unrecognized options, including operational filtering behavior.</t>
        <t>No Internet-wide traversal or quotation measurement is reported here. The mechanism therefore does not claim universal backward compatibility or that intermediate routers are unaffected operationally. Protocol-format compatibility does not establish successful traversal of a particular path.</t>
        <t>An attacker that can pass initial checks and repeatedly trigger marks can cause ordinary application packets to carry an option that receives different treatment on the path. Such packets may be lost where option-free packets would succeed. Coalescing, expiry, and rate budgets limit triggering, but do not remove this availability risk. Deployment policy should select environments and traffic for which this cost has been evaluated.</t>
      </section>
      <section anchor="packet-size">
        <name>Packet Size and Fragmentation</name>
        <t>The 20-octet option consumes half the maximum IPv4 option space and increases the packet length. Existing options can leave insufficient space. Local MTU limits can prevent insertion, and a downstream MTU can cause a new error even when insertion was locally possible. The checks in <xref target="send-challenge"/> preserve ordinary packetization and DF policy.</t>
        <t>The proposed Copy bit is 0: the option is not copied into every fragment if downstream IPv4 fragmentation occurs. This revision does not validate quotations with a nonzero Fragment Offset or with the More Fragments flag set. It MUST NOT infer a flow or token from an incomplete fragment quotation. Deployments that allow downstream fragmentation must account for the resulting lack of confirmation; changing the Copy bit alone would not provide flow identifiers in non-initial fragments.</t>
      </section>
      <section anchor="translation">
        <name>NATs, Tunnels, and Local Processing Order</name>
        <t>Token generation and verification MUST use the same address and selector representation. This typically requires insertion at an appropriate point in the local output path and verification after the existing processing of an incoming ICMP quotation. A NAT may rewrite the invoking packet's addresses or ports and may translate the quoted copy on return. If that processing does not restore a consistent Flow_ID, the token will fail verification.</t>
        <t>The token excludes mutable fields such as TTL and IPv4 header checksum, but this does not establish general NAT compatibility. An implementation MUST NOT disable Flow_ID binding to accommodate a translation mismatch. It must either arrange a consistent representation using its established local context or treat that configuration as unsupported.</t>
        <t>For tunnels, this revision applies only when the quoted IP layer is the layer where the token was inserted and the host can recover the corresponding local context. It does not define validation of an outer tunnel error from a token present only in an inner packet. Insertion and verification order, option preservation, translation behavior, and tunnel scope need to be included in deployment evaluation.</t>
      </section>
      <section anchor="evaluation">
        <name>Evaluation to Be Reported</name>
        <t>Evaluation should compare the mechanism against a baseline that already performs applicable quoted-packet checks. Reports should identify which flow fields the attacker knows, which additional information the baseline checks, and whether the quotation includes any application token.</t>
        <t>Useful measurements include legitimate confirmation success and delay; traversal and quotation of the option; behavior with no subsequent traffic, packet loss, ICMP rate limiting, multiple paths, and translation; option-induced packet-size effects; and normal-traffic impact under repeated triggering. Memory use, cryptographic work, insertion rates, configured E/G/L values, and overload behavior should also be reported. These are evaluation requirements and open deployment questions, not results established by this document.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="token-security">
        <name>Token Guessing and Error Semantics</name>
        <t>With a suitable HMAC construction and uncompromised key, a blind attacker has negligible success in guessing a 128-bit token for a specified flow within a bounded number of admitted attempts. Verification against up to two accepted keys and the total number of attempts must be considered when evaluating that probability. Token unpredictability does not replace structural checks, local communication checks, or error-specific validation.</t>
        <t>Possession of a token is a bearer capability within its acceptance context. It does not prove router identity, current path membership, or truth of every field of an error. The limitations in <xref target="scope"/> are part of the security model, not exceptions to be bypassed after a match.</t>
      </section>
      <section anchor="replay">
        <name>Replay and Flow Reuse</name>
        <t>Key rotation bounds the time for which an observed token can be accepted; it does not prevent replay during that time. The same flow receives the same token within an epoch, and a token is not bound to an individual packet, ICMP Type/Code, or claimed MTU or gateway. An observer can transplant it among plausible quotations for that flow. Legitimate delayed or duplicated errors also need to be handled by ordinary protocol checks.</t>
        <t>Reusing an address/port tuple or an Echo Identifier during the acceptance window can expose a new communication instance to an old token-bearing report. The host MUST apply available checks on the current communication instance and MUST NOT interpret the token alone as evidence of a recent transmission in that instance. Shorter key lifetimes reduce, but do not eliminate, this issue. A packet-bound or single-use token design would require additional specification and potentially additional state; neither property is claimed here.</t>
      </section>
      <section anchor="dos">
        <name>Resource Exhaustion and Availability</name>
        <t>Avoiding a per-challenge nonce cache removes one source of unbounded allocation. It does not eliminate parsing work, HMAC computation, trigger-state pressure, probabilistic false positives, or traffic disruption caused by repeated option insertion. The resource limits in <xref target="resource-limits"/> are required parts of the mechanism, and their own accounting structures must be bounded.</t>
        <t>Receipt of an initial error produces no immediate packet and therefore no immediate challenge reflection. However, adding an option increases the byte count of an ordinary packet and can alter forwarding, generate subsequent errors, or contribute to application retransmissions. This document does not claim zero traffic overhead or immunity to all amplification or denial-of-service effects.</t>
        <t>Requiring confirmation can suppress legitimate network feedback during attack or failure. Availability and validation policy must be evaluated together. The mechanism provides no guarantee that communication progresses when confirmations are lost or filtered.</t>
      </section>
      <section anchor="shared-state">
        <name>Shared Network State</name>
        <t>Route and PMTU state can be shared across flows. Requiring confirmation for one flow while allowing an unconfirmed report about another flow to change the same protected state can defeat the intended protection. A deployment MUST define its policy at the granularity of the state being protected and cover every ICMP processing path that can make that protected change. The presence of a valid token for one flow does not expand the scope of state that its error is permitted to modify under the ordinary protocol rules.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests a new entry in the IPv4 "IP Option Numbers" registry, following the applicable allocation procedures described in <xref target="RFC2780"/>. The requested layout is:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Copy</th>
            <th align="left">Class</th>
            <th align="left">Number</th>
            <th align="left">Value</th>
            <th align="left">Name</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">0</td>
            <td align="left">TBD</td>
            <td align="left">TBD</td>
            <td align="left">Challenge-Confirm</td>
          </tr>
        </tbody>
      </table>
      <t>The Option Length is 20 octets, as defined in <xref target="option-format"/>. The registry reference would be this document. No option number is assigned by this draft, and the TBD value is not usable as an on-wire value.</t>
      <t>Controlled experiments can use the experimental IPv4 option code points allocated by <xref target="RFC4727"/>, subject to the experimental-use guidance in <xref target="RFC3692"/>. The code point matching Copy 0 and Class 0 is 30. An experiment using it must document its scope, configuration, and collision avoidance; a host MUST NOT interpret all uses of that shared experimental code point as Challenge-Confirm without the corresponding local experiment configuration. Such use does not allocate code point 30 exclusively to this mechanism or authorize unrestricted deployment.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC791">
          <front>
            <title>Internet 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="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC791"/>
        </reference>
        <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/RFC792"/>
        </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="RFC1191">
          <front>
            <title>Path MTU discovery</title>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="November" year="1990"/>
            <abstract>
              <t>This memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path. It specifies a small change to the way routers generate one type of ICMP message. For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1191"/>
          <seriesInfo name="DOI" value="10.17487/RFC1191"/>
        </reference>
        <reference anchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </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="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="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="RFC3692">
          <front>
            <title>Assigning Experimental and Testing Numbers Considered Useful</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>When experimenting with or extending protocols, it is often necessary to use some sort of protocol number or constant in order to actually test or experiment with the new function, even when testing in a closed environment. For example, to test a new DHCP option, one needs an option number to identify the new function. This document recommends that when writing IANA Considerations sections, authors should consider assigning a small range of numbers for experimentation purposes that implementers can use when testing protocol extensions or other new features. This document reserves some ranges of numbers for experimentation purposes in specific protocols where the need to support experimentation has been identified.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="82"/>
          <seriesInfo name="RFC" value="3692"/>
          <seriesInfo name="DOI" value="10.17487/RFC3692"/>
        </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="RFC4727">
          <front>
            <title>Experimental Values In IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers</title>
            <author fullname="B. Fenner" initials="B." surname="Fenner"/>
            <date month="November" year="2006"/>
            <abstract>
              <t>When experimenting with or extending protocols, it is often necessary to use some sort of protocol number or constant in order to actually test or experiment with the new function, even when testing in a closed environment. This document reserves some ranges of numbers for experimentation purposes in specific protocols where the need to support experimentation has been identified, and it describes the numbers that have already been reserved by other documents. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4727"/>
          <seriesInfo name="DOI" value="10.17487/RFC4727"/>
        </reference>
        <reference anchor="RFC4821">
          <front>
            <title>Packetization Layer Path MTU Discovery</title>
            <author fullname="M. Mathis" initials="M." surname="Mathis"/>
            <author fullname="J. Heffner" initials="J." surname="Heffner"/>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document describes a robust method for Path MTU Discovery (PMTUD) that relies on TCP or some other Packetization Layer to probe an Internet path with progressively larger packets. This method is described as an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Discovery for IP versions 4 and 6, respectively. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4821"/>
          <seriesInfo name="DOI" value="10.17487/RFC4821"/>
        </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="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>
        <reference anchor="RFC7126">
          <front>
            <title>Recommendations on Filtering of IPv4 Packets Containing IPv4 Options</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="February" year="2014"/>
            <abstract>
              <t>This document provides advice on the filtering of IPv4 packets based on the IPv4 options they contain. Additionally, it discusses the operational and interoperability implications of dropping packets based on the IP options they contain.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="186"/>
          <seriesInfo name="RFC" value="7126"/>
          <seriesInfo name="DOI" value="10.17487/RFC7126"/>
        </reference>
        <reference anchor="RFC8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert"/>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
              <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. They may also need to implement additional mechanisms, depending on how they use UDP.</t>
              <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
              <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="145"/>
          <seriesInfo name="RFC" value="8085"/>
          <seriesInfo name="DOI" value="10.17487/RFC8085"/>
        </reference>
        <reference anchor="RFC8899">
          <front>
            <title>Packetization Layer Path MTU Discovery for Datagram Transports</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="T. Jones" initials="T." surname="Jones"/>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
            <author fullname="I. Rüngeler" initials="I." surname="Rüngeler"/>
            <author fullname="T. Völker" initials="T." surname="Völker"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document specifies Datagram Packetization Layer Path MTU Discovery (DPLPMTUD). This is a robust method for Path MTU Discovery (PMTUD) for datagram Packetization Layers (PLs). It allows a PL, or a datagram application that uses a PL, to discover whether a network path can support the current size of datagram. This can be used to detect and reduce the message size when a sender encounters a packet black hole. It can also probe a network path to discover whether the maximum packet size can be increased. This provides functionality for datagram transports that is equivalent to the PLPMTUD specification for TCP, specified in RFC 4821, which it updates. It also updates the UDP Usage Guidelines to refer to this method for use with UDP datagrams and updates SCTP.</t>
              <t>The document provides implementation notes for incorporating Datagram PMTUD into IETF datagram transports or applications that use datagram transports.</t>
              <t>This specification updates RFC 4960, RFC 4821, RFC 6951, RFC 8085, and RFC 8261.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8899"/>
          <seriesInfo name="DOI" value="10.17487/RFC8899"/>
        </reference>
        <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" value="NDSS"/>
        </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 SIGSAC Conference on Computer and Communications Security" value="CCS"/>
        </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" value="Security"/>
        </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" value="SP"/>
        </reference>
      </references>
    </references>
    <?line 450?>

<section anchor="changes">
      <name>Changes since -03</name>
      <ul spacing="normal">
        <li>
          <t>Reframed the mechanism as supplemental validation against blind off-path forgery and clarified its relationship to existing TCP, UDP, and ICMP checks.</t>
        </li>
        <li>
          <t>Clarified that the key is host-local and that the initial error does not generate an immediate probe or a separate Echo Request.</t>
        </li>
        <li>
          <t>Defined token input encoding, bounded key acceptance, and the lack of per-packet uniqueness and single-use replay protection.</t>
        </li>
        <li>
          <t>Specified exact flow association, bounded trigger state, coalescing, expiry, and verification/insertion budgets.</t>
        </li>
        <li>
          <t>Distinguished validation of a new error from acceptance of the initial error and retained type-specific handling for PMTU, Redirect, and other errors.</t>
        </li>
        <li>
          <t>Corrected the IPv4 Option Length definition, specified a 20-octet layout and proposed Copy/Class bits, and clarified quotation parsing.</t>
        </li>
        <li>
          <t>Expanded discussion of packet size, fragmentation, no further traffic, multipath, option filtering, NATs, and tunnels; removed unconditional compatibility and DoS-resistance claims.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank the IETF community, particularly participants in the Internet Area Working Group, for feedback on quoted-packet validation, challenge transmission, key handling, and multipath behavior. The discussion has helped clarify the scope and limitations of this proposal.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAOYC1WoAA819bXPcxrHu9/0VKKnqxqrs0iQly7IUnwpN0TbLemFMKo7z
JYXdBUlEWGCDF1IMpfz200+/zPRgdx2nfHPrKuckJAgMBj09/fp0z2w2m/Rl
XxXPswcn9XVeL8r6Kjs9fn2WnbRt02avi67Lr4rsz3lVLvO+bOrsXYd78uz4
Oq+qor4qZsdNfVm2K7p5QUOU3erBJJ/P2+KGRuWxNm59MFnkfXHVtHfPs7K+
bCbLZlHnK5rGss0v+9mHYVbWfd4W+WwRni0Xq/XNk9n+k0k3zFdl19Fs+rs1
PXR6cvHthKZHPx7uHz6dHezPDr6a0OsfTzAG3VD3RVsX/eS2ad9ftc2wjtey
I7ol+4n+gO/6Dn+cvC/u6M7l80k2E2rchO/HpebycrbO++ss7/t88R6X4jQX
8on86NnNk6xZ47FuMsmH/rppeczLoarke38osr8MkyzLmvaKaPdPfsfz7AJE
vh7y7F1d3hRtV/Z32f/J/nrd1FdXAy3TUGev8nnT5j3REI8vmqHuQc7j67LO
+Qo98zz7pij/TkPhQrHKy+p59mF4X/yx1/H3iuWwt6jTOf1lKG6LMvu2kOf+
7cz+s/df0rAfbvef/vHg8Oneolml7/55+FDmtA4/5/+Vl9/RsHcfDg//iF+7
vV8kw5/K7FX5/3Rp/lGV+wcbazOpm3ZFL78piHeyH789/vKrg/DTof50cHAY
fwx/PzzYfxJ+PPhKf3yy/+yp/vj08LHd8OzgS/pxgu2Yvu7wy2f7+uPjp+GF
T548eWw/fnn4pf347NDe/eSrZ3b1i6/CDV/SqtsL9599YT8++4on9+bl+Tnt
4MPXF+/wa5aZcDqjKy+zssvqps/O8jpfYFv/WNyURH+WWWfZt21+tSpIbLCY
OuKt2WX5VV7WXZ9dHJ894CGDnDjkX7uiLYsOXy1vpEkUPcREltfL7GXZ9W05
H/pimZ3fdX2xys6LxdBi0c/vVuumK4fVc543Px32OP+bkXDraD/thb0UL/5p
T7krXvphLzsf6o1rIh/ipW/w5LDxir9eb3uH7aN48fu97CXxaXrxr3vE7nzx
+BgrsH96dvoyXYK3JvSIklnxYV01Zd+RKMz66yJblR+IQngoy0kwX9VYiBG9
93fQ++j4dXZ++t350XEG9VC0Rb0oMlrC42a1Jsq3vBL0y2qoywWvbhdW4Tkm
/B+S/pguDr9pNd6dn7w5/cv5yfG7H08vfqZvewwtsUmvM9DL+OmCVNtluche
kzBZD5Ww6U2ZMxv3pGD+CRJC2/xYLMu2WPTGxCNCPt5BSJnVVga1a/8dJo3c
88tU/g5cmjcbL/5h2OBSo/T5GT749enF65S6REQyEWbEe7NVuVxWheriLrst
6euGPmubq6HIjs6eZz/Rzsh+OjvqslVB+p5J3CqJfy1tT09OTiJBwZ2BzODO
s7a8yRfEjedn/x0S/7xtKwuRJrPZLMvnJKjyRT+Z8OcVbL2txHrrsnXb3JTL
gnRvsZwTlbKhI16b32XXTUebuG+yFclUsvNq5dWF32172ckHkoMQs9EOsp3/
j6GBcCzrm4YNqDUNT0QmUU0vJyFQ5tU0IwGaQVq0RNSuz7G/6Z3zqiTSBWOK
9M5V0d5ly2Jd1MsONMYLgkKi3/VloDj+lMwyo4F7YoMbUqX5vOI34CZa5QKK
em8yubimaZGpOUA60Xu6Bcl2Is82Y3ZlxiwNkvdZN6zXVYHn6MOMGiPTcC87
uhRxlRVVeVViEmVdggS6IGsSjoUbYHFdEMtOeZ5YimxBz65yWgBcoZubRZnj
iy+r5pY/u6wX1UArSfcN9RpcvOj1a98Tl5c1/uLsTixTTrOfd8U/Bny1rg9/
1G0zVLQA9K72tuyKbE7DtHndrcqeXrpHcohIt+5tqdNvWTaFqONytaJp0DSr
u+yqqIuWlwE8R+PRjfT6Yp3zVfEsFtcNDU3T6XoiWUaSkIjm2BZEaIt+aIUB
5MuIWbH6oJrMJeE3XtxAhA6csWalPai30hULGjKrmgV9gHKGrRzdAOLvZW+a
jCx/PN9dk+OwZFlCggRKqMOnrAuaKe+ZKa9G3dClNvoodAG8vcgXmCL4/R8D
iZklNvRiQRuCrEudpNtJujuJL/A/rPxo0fh+TDWXe+W5F7SPIukhZrDHFkJy
menvugzD9JBNNGd8aUcGJm4L+rot1k0L+jDF97J0Z3TrYlFekgTM5mS7Luk2
MoKuaHMSqaZ4tsrvsqokNhFtLMSgfVs1dzwA+UAdzaG1PwvX2trVBUZs6HPz
amC2cPxKDAirmlYJY2LJdW+duu+W6QcXbnYL4ebevyrybmhlu+6JgBQtMZk8
xFNtsxwW/Lr7h6X79ZOwUXANSRjQH6vgBp+1Td8s6MJnYNdH2f29GOGfPumU
wHn1shQbpRsW5CJ2slfJySQ2wU6llSaeUyGK7eG3JPE+PpB2Dkm927xdKhdC
o116AxdrVnRFfG+O3X9ZDcxAvI2ZRvPiOr8pm3aasTFCdjSM2kVDRL6TdQPX
YGmWtOjwqTtsShbGSyM0BoeUKOgyMdrlJYyTVPrOi7tGxTLxM3gXY4KRMa9l
Saw90KKG7fojTT5viUDXRKFlsaL39i3LOlPk2OLVDUbRySTfP2uLSkSj6TR8
i+5bVWOzDiOpYri/d94FLdj9vTN1P32aYqVui6riFduYQmqXuS+8v99uDPIb
ovXy6ZMtWPEhX5EqIWOEpNkNZragOUMwRJHwAnQkTdiogF2TaGX2KLBsfKGI
rg5t3ZuhguAFe/GWp1ubmlZqKbxIhI/6jC62heghHk0+lpbkz/+BcsdfSU+S
yiIlzgJrWZBn3xVgnqDKWL9lt9cFmCeMKK9YNC1NY91A1ZMwEMmc8hSt6BRP
t06tT1m2E8UgCFk+R16XhSYCQOfXPYgW1RlsvJwXge4jH+OKHuXPLJ3gvclh
+Om4wsq84acjmk/dh1Q8luwloSV96/u6ua2K5RXR45QkfN6S9CWbn7YhmTKL
ayZmlZN2wpKxdheZTVKXVI06unl1m99BjsBvKCHYIDU7KPyyu5ZlFvFOQrrV
zSY6tCGF395gNyU0SLRlZImyFjoEDUA80u2yMVglbVoU+nYzfPBNQu2olPOW
qLvcYqR0jXxMKWwzL8zOWcrUsKg0LviYH7sucnywsieZBvmGFQE+FH0o+sY2
UiHfFwN2YY2f4/VNTVxDOh02Z8c2K0dfKhk5LrqJVRhJVcnUUYHN9oZXXbaZ
9FvBuk5VkZE3rNaqJzHJsL5YrrahufRgSZC3gvzsrztdP9lmYul0/E7az6K3
o91kBhBunskmE1uIrM6cNzW5EutSVDWJ2GYltudNQ7JAbRHYOK0YbLrHaFXO
f34zWzQkF1ijkcvfiTpE3AfS7hRqukfwZWxFyBhkSOQqFmjJ88R0IlKqcArL
JLyUlyuWPg3Wksym4te5FLfXJS3QSr53ZFrTAM3Q4tVq14mkKSvYT7R3lgUN
pyaOM9rY/Ok4EEJ7E1vqIcyFG2xiKH/cflG0q7JuqubqjgyNPv6mdgaMTcSZ
O/Jn351fPJjK/2Zv3vLPP5786d3pjycv8fP590evXoUf7I7z79++e/Uy/hSf
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
qlxk0TDtwj15tTf5X6/2vT13qgAA

-->

</rfc>
