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

<t>The Internet Control Message Protocol (ICMP) plays a crucial role in network diagnostics and error reporting. However, it is a challenge to verify the legitimacy of a received ICMP error message, particularly when the ICMP error message is embedded with stateless protocol data. As a result, adversaries can forge ICMP error messages, leading to potential exploitation and off-path attacks. This document proposes a novel method to enhance ICMP authentication by introducing a challenge-confirm mechanism. This mechanism embeds random numbers in the IP options field to strengthen the authentication of ICMP error messages. By doing so, it mitigates the risks associated with forged messages, improves the overall robustness of the protocol, and enhances network security. The proposed solution includes details on the challenge-confirm mechanism, random number generation and management, and integration with IP options. Additionally, it discusses security and deployment considerations to ensure its practical implementation.</t>
    </abstract>
  </front>
  <middle>
    <?line 135?>

<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 such as unreachable destinations or packet fragmentation requirements. Despite its importance, ICMP is susceptible to various attacks, particularly the forgery of error messages by off-path attackers. Notably, off-path attackers can forge ICMP error messages embedded with stateless protocol data, making it difficult for receivers to verify their legitimacy. Unlike stateful protocols such as TCP, where embedded connection-related details (e.g., sequence numbers) in the ICMP error messages can be checked by the receiver against an ongoing connection <xref target="RFC5927"/>, stateless protocol data lacks inherent mechanisms for verification. Consequently, the receiver may erroneously accept the forged message, enabling off-path attackers to manipulate network behavior. For example, in an MTU manipulation attack, forged ICMP Packet Too Big messages with stateless protocols (e.g., UDP, ICMP Echo Reply) force hosts to reduce their PMTU, degrading throughput and harming latency-sensitive applications. This can also induce TCP segment fragmentation <xref target="NDSS2022MTU"/> and enabling 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"/>.</t>
      <t>To enhance ICMP error message authentication, this document presents a novel method by introducing a challenge-confirm mechanism. This mechanism embeds random challenges within the IP options field. Particularly, when a receiver gets an ICMP error message embedded with a stateless protocol payload (like a UDP/ICMP payload) for the first time, it ignores the message and sends a subsequent (UDP/ICMP) packet (i.e., a challenge packet) on the established network session to the destination, embedding a randomly generated number in the IP options field. If the prior ignored ICMP error message was legitimate, this new packet will trigger another ICMP error message containing the randomly generated number, allowing the receiver to verify authenticity and respond correctly. This challenge-confirm mechanism strengthens ICMP security by effectively mitigating off-path forged error messages, making it more resistant to forgery and various attacks, thereby enhancing the overall robustness of the network protocol. It requires minimal changes to the TCP/IP protocol suite, involving only updates to the ICMP error message verification code on end hosts while remaining backward compatible and without modifying intermediate routing devices.</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 limitations that enable off-path attackers to forge ICMP error messages embedded with stateless protocol data, compromising network security and reliability. The key issues are as follows:</t>
      <section anchor="source-based-blocking-ineffectiveness">
        <name>Source-Based Blocking Ineffectiveness</name>
        <t>Certain ICMP error messages, like the "Fragmentation Needed" messages, can originate from any intermediate router along the packet's path. Given this wide range of possible sources, legitimate messages can come from numerous locations. As a result, source-based blocking is rendered ineffective because it becomes difficult to distinguish between legitimate and forged messages based on the source address alone.</t>
      </section>
      <section anchor="authentication-evasion-based-on-embedded-packet-state">
        <name>Authentication Evasion based on Embedded Packet State</name>
        <t>Although ICMP requires including as much of the original (offending) packet as possible in error messages without exceeding the appropriate MTU limits, the stateful or stateless nature of the embedded packet protocol directly impacts the authentication difficulty and security strength of ICMP error messages. According to ICMP specifications <xref target="RFC792"/>, <xref target="RFC1122"/>, error messages should include at least the first 28 octets of the original packet to aid in identifying the affected process and verifying legitimacy.</t>
        <section anchor="stateful-embedded-packets-eg-tcp">
          <name>Stateful Embedded Packets (e.g., TCP)</name>
          <t>When off-path attackers embed stateful protocol packets, such as TCP segments, in forged ICMP error messages, the receiver has some means of verification. The TCP protocol uses sequence numbers, acknowledgment numbers, and ports to establish and maintain a connection state between communicating parties. This connection-specific information is difficult for off-path attackers to accurately guess. Receivers can check if the connection-related details in the embedded TCP header match the TCP connection state they maintain. For example, they can verify if the sequence number in the TCP segment embedded in the ICMP error message aligns with the expected sequence number for an ongoing TCP connection. This way, they can make an informed judgment about the authenticity of the ICMP error message.</t>
        </section>
        <section anchor="stateless-embedded-packets-eg-udp-icmpv6">
          <name>Stateless Embedded Packets (e.g., UDP, ICMPv6)</name>
          <t>In contrast to stateful TCP packets, when off-path attackers embed stateless protocol packets, like UDP or ICMP packets, in forged ICMP error messages, receivers face significant challenges in authenticating the messages. UDP and ICMP are stateless protocols by design. The source end does not keep track of any session-state information, and each message is independent. This means that the UDP or ICMP headers embedded in ICMP error messages lack crucial state information, such as sequence numbers, that could be used for context-based verification. Beyond basic protocol-format checks, receivers have few reliable ways to determine the authenticity of the ICMP error message based on the embedded stateless packet header. This lack of state-based verification severely weakens the authentication of ICMP error messages, enabling attackers to easily bypass authentication and use forged error messages for malicious purposes.</t>
          <t>These vulnerabilities enable off-path attackers to manipulate network behavior, exploit protocol weaknesses, and potentially disrupt communication without being detected or mitigated by existing security measures.</t>
        </section>
      </section>
    </section>
    <section anchor="proposed-solution">
      <name>Proposed Solution</name>
      <section anchor="challenge-confirm-mechanism">
        <name>Challenge-Confirm Mechanism</name>
        <t>To counteract the vulnerabilities in ICMP error messages validation, this document presents a Challenge-Confirm Mechanism aimed at validating the authenticity of ICMP error messages.</t>
        <t>The message flow of the challenge - confirm mechanism is depicted in Figure 1:</t>
        <artwork><![CDATA[
  Host                                                 Sender
  -----                                                    -------
  1. Reception of ICMP Error Message <----- ICMP Error Message
                                      (Stateless Embedded Payload)

  2. IGNORING

  3. ISSUING CHALLENGE PKT -----------> Reception of CHALLENGE PKT
     (IP_Options=Random_X)

  4. RECV NEW ICMP ERROR <----------------- ICMP Error Message
                                           (IP_Options=Random_X)

  5. Verification 
     (IP_Options=Random_X)
     (Verification Success)
]]></artwork>
        <artwork><![CDATA[
                    Figure 1: Challenge-Confirm Message Flow
]]></artwork>
        <t>The operation of this mechanism is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Receiving an ICMP Error Message</strong>: When a host receives an ICMP error message containing a stateless protocol payload (like UDP or ICMP), it cannot be certain of the message's authenticity due to the issues previously mentioned. The receiving host, based on the existing ICMP design, lacks the means to verify whether the message is from legitimate senders or the message is forged by off-path attackers.</t>
          </li>
          <li>
            <t><strong>Ignoring the ICMP Error Message</strong>: The host ignores and discard the received ICMP error message.</t>
          </li>
          <li>
            <t><strong>Issuing a Challenge</strong>: To authenticate the received ICMP error message, the receiving host first ignores the received ICMP message and then sends a subsequent UDP or ICMP packet (i.e., a challenge packet) on the established session to the original sender. This packet embeds a randomly generated number within the IP options field. The choice of the IP options field allows for the seamless addition of authentication-related data without modifying the fundamental structure of the ICMP message, ensuring compatibility with the existing network setup. This random number serves as a unique identifier for this particular authentication attempt.</t>
          </li>
          <li>
            <t><strong>Response to Challenge</strong>: If the original ICMP error message was legitimate, the sender will again respond by sending another new ICMP error message. This response message will carry the same random number within its IP options field. For instance, a legitimate router that generated the initial ICMP error message in the normal course of packet-handling will, upon receiving the challenge packet, extract the random number and incorporate it into its response ICMP error message as a proof of authenticity. While the off-path attackers will not be able to catch the challenge packet and it is hard for them to respond with a new ICMP error message with the right number.</t>
          </li>
          <li>
            <t><strong>Verification</strong>: The receiving host then checks for the presence and correctness of the random number in the response. If the random number in the response matches the one it initially sent, the original ICMP error message is confirmed as authentic. This verification step acts as a crucial defense against forged ICMP error messages. If the numbers do not match or the random number is absent, the receiving host can infer that the original message may be forged. In such a case, it can take appropriate actions, such as discarding the message, logging the event for security analysis, or notifying the network administrator.</t>
          </li>
        </ol>
      </section>
      <section anchor="protocol-state-machine">
        <name>Protocol State Machine</name>
        <t>To effectively manage the challenge-confirm process, hosts implementing this specification need to maintain a state machine. The state machine, as shown in Figure 2, defines the operational states and state transitions for handling ICMP error messages and conducting challenge - confirm exchanges.</t>
        <artwork><![CDATA[
                      +-----------------+
                      |   Idle State    |
                      +-------+---------+
                              |  
                              | Receive ICMP Error
                              | (stateless embedded payload)
                              |
                      +-----------------+
                      |  ICMP Received  |
                      +-----------------+
                              |
                              |Send Subsequent Packet
                              v  
                      +-------+---------+
                      |  Challenge Sent |
                      +-------+---------+
                       _____/ | \________________
                      /       |                  \
         (Valid Response)   (Invalid Response)  (Timeout)
                    /          |                   \
                   v           |                    v
        +--------+-------+     +-----------+---------+
        |Process & Accept|     |   Discard & Log     |
        +--------+-------+     +-----------+---------+
                  |            |                     |
                  +------------+---------------------+
                              |
                              v  
                      +-------+---------+
                      |   Idle State    |
                      +-----------------+       

                  Figure 2: Protocol State Machine
]]></artwork>
        <t>In the Idle State, the host is in a standby mode, waiting for ICMP error messages. Once it receives an ICMP error message with a stateless embedded payload, it enters the ICMP Received tate and wait for a subsequent packet. Once a subsequent packet with challenge is sent, it enters  the Challenge Sent state. If a valid response (with the correct random number) is received within the predefined timeout period, the host transitions to the Process &amp; Accept state. Here, it acknowledges the original ICMP error message as genuine and processes it accordingly. If the response is invalid (either the random number is incorrect or there are other discrepancies) or a timeout occurs, the host moves to the Discard &amp; Log state. In this state, it discards the original ICMP error message, considering it potentially forged, and logs the event. This log can be used later for security audits and to identify potential attack patterns. After either accepting or discarding the message, the host returns to the Idle State, prepared to handle new ICMP error messages. This state-machine-based approach provides a structured and reliable way to manage the authentication process for ICMP error messages.</t>
      </section>
      <section anchor="random-number-generation-and-management">
        <name>Random Number Generation and Management</name>
        <ul spacing="normal">
          <li>
            <t><strong>Generation</strong>: The receiver generates a high-entropy random number (minimum 128 bits) using a secure pseudorandom number generator (PRNG) to ensure unpredictability and resistance to guessing attacks.</t>
          </li>
          <li>
            <t><strong>Management</strong>: Each challenge utilizes a unique random number to prevent replay attacks. The receiver maintains a cache of pending challenges, each associated with an expiration timer to manage resources effectively and avoid indefinite waiting periods.</t>
          </li>
        </ul>
      </section>
      <section anchor="integration-with-ip-options">
        <name>Integration with IP Options</name>
        <t>To support the Challenge-Confirm mechanism, this document defines a new Challenge-Confirm Option. The challenge packet for a received ICMP error message containing a stateless protocol payload includes the following option (as shown in Figure 3) in the IP header. Similarly, the ICMP error message triggered in response to this challenge packet should also include the same option in the header of the embedded challenge packet (as shown in Figure 4).</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)         |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Figure 3: The Challenge Packet Header with Random Number in IP Options</t>
        <t>The fields in Challenge-Confirm Option are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Option Type</strong>: 8-bit identifier for the challenge-confirm option. The final value requires IANA assignment.</t>
          </li>
          <li>
            <t><strong>Opt Data Len</strong>: 8-bit unsigned integer specifying the length of the option data field in bytes.</t>
          </li>
          <li>
            <t><strong>Reserved</strong>: 16-bit field reserved for future use. MUST be set to zero on transmission and ignored on reception.</t>
          </li>
          <li>
            <t><strong>Challenge Nonce</strong>: 128-bit random number generated according to <xref target="RFC4086"/> requirements.</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)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Figure 4: New ICMP Error Responding to the Challenge Packet</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>: Utilizing high-entropy random numbers ensures that challenges are unpredictable and resistant to forgery, effectively preventing unauthorized ICMP error message spoofing.</t>
        </li>
        <li>
          <t><strong>Replay Attack Mitigation</strong>: Assigning unique random numbers to each challenge and implementing expiration timers mitigates the risk of replay attacks, where attackers attempt to reuse valid challenges to authenticate malicious messages.</t>
        </li>
        <li>
          <t><strong>Denial of Service (DoS) Prevention</strong>: To prevent potential DoS attacks, where adversaries flood a host with fake challenges, rate limiting and challenge frequency controls are implemented. These measures ensure that the system can handle legitimate challenges without being overwhelmed by malicious traffic.</t>
        </li>
        <li>
          <t><strong>Backward Compatibility</strong>: The proposed mechanism maintains backward compatibility by requiring updates solely to the ICMP error message verification on end hosts. Intermediate routing devices remain unaffected, ensuring seamless integration with existing network infrastructure.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The Challenge-Confirm Option Type should be assigned in IANA's "IPv4 Option Type field" registry <xref target="RFC2780"/>.</t>
      <t>This draft requests the following IP Option Type assignments from the IP Option Numbers sub-registry of Internet Protocol (IP) Parameters (https://www.iana.org/assignments/ip-parameters/ip-parameters).</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>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">TBD</td>
            <td align="left">TBD</td>
            <td align="left">TBD</td>
            <td align="left">TBD</td>
            <td align="left">This draft</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="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="RFC9293">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="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="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="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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5927">
          <front>
            <title>ICMP Attacks against TCP</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>This document discusses the use of the Internet Control Message Protocol (ICMP) to perform a variety of attacks against the Transmission Control Protocol (TCP). Additionally, this document describes a number of widely implemented modifications to TCP's handling of ICMP error messages that help to mitigate these issues. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5927"/>
          <seriesInfo name="DOI" value="10.17487/RFC5927"/>
        </reference>
      </references>
    </references>
    <?line 354?>

<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:
H4sIAAAAAAAAA81ca3PbuNX+npn8B4wz07WzkpI42d2se5k6tpN4NnZc29lL
pzM7EAlJbChCJUg7apL+9p4bQJCifNl1+r7qbGNRJHBwbnjOBRwOh/fvPXjw
AP5PHRaVKQtTDfdLPanUkS7fp/ayUOdmvsh1ZeAevO3UFHpuVDXLnJpkuVGT
0s5Vis8MK5va4dLWJd4yXJS2sonNR/NUVVZNTaVcpcvKpCMciKehwSa2nOtK
wYgbPNCf/CB/Gf7p0pbvp6WtF/A3XYLxNkZCzUtbqqzIqkznypmqXgwUPKps
kS9VYQxNbNKsAnphmqx0lRrnNnmv7AS+mjx1RMtbvH+jyqrcbNBzDh8cG5XM
dDE16R9VanJTGbWhx+PSXGyobIITlYqeQcrdzJYVDbZbLJWF+UqVWOBpUalE
FzgYEmLSgRrXFY2tSzOpc1XYCmfLiqq0aZ3AfWVpSybszCJ7iFB1meU5Pgfr
VLquLLAsS3QOlKd1mRVTZgBSBpMvFYyu6kIW4Pm1b4uvgNFFktcprGb4+PGG
AhZuDFHCroJ1FcKqnORMRLzRY5O78BMIS91ATDIk0+FAFOMlDoZDVNbmxGFg
ALAJ/sCrSV2WyK0LU7rMFn+E9QCJqU1wuA2cV5kPGpTR+NWcoxJWop84iVPv
Sz1HtR2Wk2RHzapq4XYePZpm1awejxI7f5TosX0U34UD/QI6g0IqDQyVGCIH
SMlK5oRIWy2YXq3SbAJ/ILGsusSmPWJ1YB8QC8LHleAC4aZkFvgHyr45+jDP
aVE/H70ZKFMlo9FoixeGBkmKtaM2DgoYNkHxHu4dnagD1A11ZJzTMNduDSMW
qAYVzvPO4X1ARw7Sm5rhni1A5+dwO6pB5uYb9++xAsPASbgtS+aLi2fwGwxj
prZc7oCsJ/b+vfv3hPs7IvAP9RDUFCSqh93HQZXu33P1eJ45XHO1XMBThwfn
L9X9e0U9H5tyB4aDCeAfsAsHrKkd/A2kPAWqYMgdtXt6sHv/XtCkneCT1C78
rn6CH3CBr/DH+/femyXcmsIYagj2PBkudDVTuqp08p6uBRLp26TU0zkwi1gF
85qiRlpgbmCiLWkY+A8+YJQ5r/oHo36u+aItp8DCf9PTO+ocOT2rtXpXZKSv
1VL9Qf19ZovptAZ51QVajS11BexUPEJiazBxYO7eLCu0XIMHd9QLk/0TxuNL
Zq6zfEd9qN+bv1Yyzcik9Sgp+kj8uTaXJlMvjX/+WkJ/CzUTGP7D5eNv//pk
+1s0oz5Kfqk/ZGAB6hf9RUlZwvDLD9vbf8WvbnQDFv0tU2+y/xsp/ivPHj9Z
FSP/ryBPADOj7qnTl3vffb/d+CywFV2VoMumHGWmmoyA9kdgj4/AZ8GNj+SZ
J0+2b/gQ3umf2n7y5PubPYV3hqe+e/74hk/Bnf6pZ4+ff3uzp/BO/9T3298/
vdlTeCc9tbd3tv14+/HhyeH+DkvBO9G33juc752AX17kNqscYgB0yPPsA+xO
+JTS4LumBXqJDR6AHJbCUfm7M2VmHHpHGHV370ihi8WdADYNcMB7dr6oK9wi
ihS/zOtCfLNTZwY2ONSwTaBzS8ZvfA99huB4Hdj0KLLncHUPrtada38bBdUO
134YqbO6WL2IngyvHu+fIZ+2j87fddh0Apf2EcwgJDnRBWyF4JVPzUUGpkFb
0Il6GbtRtUve1ik91TBNhfztcm67h3PHpkIvT2zaz1xVZoCJQAhnSwfbecOq
s+V8YV1Wz9UmUv1buHZbDrWuvcCHuxdhnr/PeidqPF+4+nqk9sGVdK7+fQRO
SRcsj3dnB8eHP58d7L07PTz/BTj2FHf6Hg0+QQ32rDuHDXmSJYDTi2xR5yyO
i0yTuCqdZ/9GpUbIcAq4szRJ5YXVFdDTHgExTb2C8Ne+qDACg661gFcoDW1X
p/+hXpVGkDH+d3aCiz86PD/q8BpYCjBnCL5hOM/SFKCcFjW/BBxpAb2XdloD
+jrZUT+BJqifTnadmhvAKcTwUhh+I04fHhwcROwFIQamo3WclNmFTsBpnJ18
UYb/0qu9wWsgsZ3N6pvvt7+7mYPGOx/xljccDpUeO7yzwu/n4H8DyANfCiFQ
HtDtiQSQahPZuqUAmy/B1aikrBMM+OBeg1FJISaRZnpaWAdw2BHvKI5CTA+R
GXivkXptLw3s8wOVUbCpG4SIEB1+ySZL2hJyAxFDNkfGwyahYYzEwNLFoHjc
OVM5UAuIabMETLCEUOwS9QGHWL0TpzQAhNMUBkJNwnC4grjSOeVjZdQVPVK7
jiZ1dV4NlE4Rm2jUGQpSQBLTvvHdAOjWKfppWM3CYuiJbJL9jj0E8qWDld2I
AymQVo2eHYkBbTRIQ2EvTA4TgMZxLE3RiMyu29HHeBliWKQh4u4wkUBk7gMR
mTJ8Z8Y4VQJ9dq44YAghJ2w7dsG7KMXCSAnoEAxdeXZ3aAGp9TBopF5AsGwp
VrakBXMQ8xTjVBqkzBzuZc5Z0K/KS4n4nUZczubAoQt5Bv4oYZmgjOPaVQUK
U3CFl+mAlZE554K2OjFzZIXxPE+BsLymJUiQDnIxFSJddA0UJq/n6qDNPzU1
BRAX5D6HHX1qUMRMEkjLTOV3WmnDZ1DBNM3wT0wwEKvSzCW1Q7VwsYNKIWS2
S9IbDOuyVGZ0rC6uhhgawdYCTR7zFci+3AQIMWocAztb/EbZKNIkDtZu5SY+
fmQo/fkzGXnh15mTpaJ0vAjswhM7QAFcZGQ8MKxYzsSYdKwxWwSsB9Y6CW5h
XFcjI2qI6bVTdQHhKchgDP4IJAbORlgAurdAn1i1o08w7X/VsEXgBWD1vnGL
rGI2AXPAW6GmDFiDMbVUu8SAXHB49FPgCmztvPV2HJCkGKamJN/VNgC00Y71
g5mN1LGtgHiQ8+qPV7ucmzm0AageRe6kRghbwLFR7kMca+naDjgrIxc8gvAs
z94bHh0zZn7wRgKAOwfoe0HZAkWgjoUhBRqWJid79qa0aUbT0QAU+V81QXfx
N1vB4fSsVJJ4ycwAXzCbxS5DFhAQMNwF4SP5mIYA1kncBz9/HqzjksoJY2TF
jFNLwawdsYq4I/5thEbA1FcothYlc70k2gsDWgIaoRPUnkYx0mbrMgWIHUnt
kTslrQRbmmAyYzPTF5ktR5R6lXzcAPkGC4fwoXmGvA6NNvDzEltP2CDOrVUv
smnD3zUKFIT1bv9ETOIgmVlAtYt8uYUjg/xmsOtLQpEyqKxCGM4MQOZg+7wr
zkpbT2cQoZHnmulyjpdxfUWyHGJKKkOEo/Rikfu4TXYqlL7OHaZpaQYMJJ0h
k+7Y9sePUYAFPoidv/AZPOzh/nCs0dPzEOxQZtk/gS14x8ePURj7+fNIHdnS
WEItMRcDqL+dJXotpoQs5l3LDNzbRQZaOkfVQ6FbMNEl8wu5CDxD9ATT6yTL
CUfEClNJHIJOtiQ3ZYsBDyIs5M0mAdGIW4VxJxUstD/wQQv5+LEB58ADQood
8NGGVu3tf8DliQjQGHTpK4DmDhFLeJIVeQ1wGYH2N756wGhRN6Y7NRXtWD0r
bItX9wl4oZe51anaJG+p0WIe0UjyA1lLVAkBmRvGwgCbS8EzgaMgM2Baikxz
9Vicjdr0g275nW0zGxkwzxhM8y9bHrHAjojq72ZAfYN+nE+N4y3RrjmQpbJE
mL3gxQTL4BAMbtay+NDDrwyLQ7S0PuCuLmHf8LtMZURnCnPpF0b1FjCQ6ZQS
OlzS6RkHqzzg+8Vi1lMMPMpzexnu80Jvdr6gxR5cgVAWFo3Hlmjs+dJ7o/V6
GgFjx9QGuAbqbiYT3JHABpYe+7asWVxMN65otu85cBPJykCmBdWtPNhAeleg
CfLM4LyhinE1ZvbqEWqH6rDyaAmMD7g8BwfCRS3nlQcc6SNQg2AHrs4q2pMu
bH5By8PyXr1IGejbdfFZvMMCy1NK6RncKWh7uZxhVafEzC4JG5HhpS5ROnNg
HsEzZIJPEjSOlHzjHDw27qTiT0Hlwe0aN2K8e25wM7K5nS59XPzeQDhpS7DA
jaN3Z+cbA/5XHb+lv08P/vbu8PRgH/8+e7375k34w99x9vrtuzf7zV/Nk3tv
j44Ojvf54aPdXzbYR2+8PTk/fHu8+0bqgLEPxTIe10RpNeBSUbM1hicuKTOw
WHyGcA6mjHHnoh2uahaGNdIaorebjIFJXfH8yB7A+MDeuTpDr4f04OU9KRiy
li9MEqTnYHOHfTzP5hL3om/TFe/DZg3a+d0gF/WgtBAjoHi7YZ7Yc57pMe6i
EvahjCWYQAZrhHroJBxVph5gAbiGXXX4ghDDCyxdE4wogiGj9RAzTIleaE1e
ADcE1PqNdvr2GAIck25EdyI+sODz0BlLbV8Xy1UNRpeYW7FndphfAUOAqSP1
Csli9bmEeBA94hSZriDCdWQmjlZFCQvvf9tAO6G6d8mhrCnRp8DaPSJrpUd4
LMFUY88hmBt0A4JR0qnALdC9RAP4QVcGf8IsLopIQAkgykXrrGG3ghuqSwMr
iYhEIXbyAYpnlr2OqVE6TUvUEOSRGYksO9XagwtNW2B4/sCrmUBkUnZ8djdH
jzKd+fSiuEPOENA+Cb4RIyHxoiJAiIhB04ELcEvYruHWIAZQl46me99lPiSg
Gt5fAx4uLeynyAHE+GRX7N2boAyGaSwDtAcDf6En2I/Q0NhNxtsahr06qVxf
KieIZymYROzJ73Nrcz27CWybPh3W5yOaRMGA/8YKGX7pMEXclu+aAD+SG+3i
npLt58omlWlqSkECsmKgQGfk3TJCwQFgK02qibwpbUIqg/so4QEKTpowmLXo
AasFcryjLyFSAre7hTdTbrrH15E4VqNpoRXkGkXVPshxFOPFEUjXx7QwzQye
dmjDc6ML4ko7fD3nbbuZu+bEUjseh10peV/Yy9ykHGk114FJmCjhLJPHl5Ll
ygiPISJtAnBabbDopCnNAY8pf2JCpNekDby+qJD+ptxPJ4fRv5tA1F0j+kMg
CO4dRj8NuQ7ycJhHkGadq1IVAnODCSHXZkanFOj7nhK8uLJY6gLy3OjE6/Qb
kiHIU+joCMBPHge7gZC1qRJweoC6JaAn2j8sWMW7wyP3onxJexUijku9jMgF
IGo4pYcCgSH/WYtq6DH6rZb/QC8h9rhKZducyGmts6eQebj4luzqsCDMX5IP
sI0hkUJ7G7q83vi60Zs8SZs1zIkeVcI3+eUaC2ySaRNsYsJSNpkcpmab8BQt
I/Kw4oYat4kzox1xir80vTkZgPSA2WACNmXZ9RArp9Zw/fi9MQtFJSGqoQCI
kJhvyOoZ2ZRkyDVoc1QryWD7XuAeXlQh+NYeySHNMY/YJFxLPfugHObYQgGp
hxDv+lZdEU2beABLCRTUX+rx+1AJ/mh7uRdmidEb/AQ+xDNvKA1g5ABaUiPM
OoEAlGFijiHqkpwJOAOC0eYWCt7GJYEvkTR5a2LOCYdzERfd1bMm4At8Rad2
acAUi94du39DjrKNLUcJW2mWY3C60Lj7tYdCvUC41huXEv8hHgRGIEBc1CWV
rUZKIih47qLOMQgnyI31sysDgCvSnQNfRWvsFRmA4NuE7UgKbtiQmbmyXlTx
PiM1Fku9nxz/VewVcRFShqKUlPnAGLSBOqD3WEdxcTjE1aIzqRYJwryi9U9y
aNS+ZLAWQ5Lr8meN1VwAk9PrUmtXTA7gB501aL0fyaOfjir3AjkfEHvFnkCA
5PW+SToN1WouBCk1i4zYDEt7mU0RlT6h4Oo///kPVrJfQ2yvbvs5o9ACHx/i
59bPK3lwSL1qTxgbLFrG0270/BPPs/qLL9hf99ns3eY4LchtKNsjdfjq+O3p
4fErvvAULpydvYPvag/TCgfHrw7UyQ/nnnT8/KVNees+IW3z8OTXt5yh+/Mp
5cZ+/VmmfAYLP9j7UR0f/CRLOz19eyqLjT+/Y+HX0fDNSP0YO7irqebfWg+c
1Qni9q2gUf2foHu9dsJSfgmKzSaO6h6qk6zrreQzFjbbuQJQoocPGWKSiy16
ePbwoTSsaEpp+a1nXco5SmzeIN8c7cZblFUG4IE4AGtmkpvwDXc8/leubf5p
bXxyTlIi4FwuMi5iobMBVpiUAUcZFooLGXT2Ou9AaU2MUwZSXeP5dREXHAGq
UW43Tn/j6QZMP0SxvyOjp6Ju907enfqLqyicbRTOIaaivePrFw4ujSTjM/JU
Yc9cgmnGKMDqA4A00VOaCLjHQguqRoPbeHc1140XR3Se0RLuxvWC9ghx9YB6
M3pKCKvQ9pY1hE7tIMTaLCBBMjKyVGmuKiRcWa85pz3GZklIZqw0o1BW34Xa
ijN6TnaipYOC4G8L1jRBHpbkVvPFlFioi1RTpg5xKgDWOKES83rAXRZccOZE
NCUY4/hL7KHJSVb1QvjU7hhxpiR/gBwD4AIC8wmLTOK1ipnrq1grgK3C8xgV
KeMzdklYwnBk2i11POxkSm5UofFWyMUZqrmHIsl4ST+y9+NqDVZzeixFVu4p
C9PhmGBqJZf2HR5NarNHVAUbNVZVhc8iOWne0LHrkIwphRCN/pGnk8NLfe1i
rJPUJZ4jcCsdZ1FJs4ewE6SEppHsgaoX1FfirbWNjfgRBLFVgH7tlXE/UGIB
QpcUFFVcDcalBkb1xfqoKbAjAF2xmlOC+ycqmJCQV/E2MVv2By2dLUlIaHRJ
Z/qoa2+GvlCMbc41f5a/FEb7Zd5YA+jbzGeSSE2/QTWNt3TviTu+j/wZR23B
2Bn+JuzwpEoX17PaTBaJen6GUuWVd3Gax3ebFSKaTCINR91c1xkSp7UQa3C9
JchJTKEd4lUQuFM2VsfdlqmZGCTHN7qsz0SEdfk2vtSSpDlfJZzrrNlhW2hY
S4fzCWd8vAW1VuuXiF0vYx8oAgWFhPLwsDMej6iK8kdROlsn0v/lA3/ZbTt5
EYAPdjr1FyEG5qNfcXVH50uXwUBwFRYbeXLvdXWK9Uvsfa1sOfKHQB48aBrY
CKOrI52AkzG+6SGu2FID35ouQMkfD6RaGbrsmAxsI4uz3+F0ZJQu5XTInKeX
xE58aUCJkRkeCm2CqW3ssJnAr6KgHrT69ApjGMlIYg9dJk7TYpZYXFhfzMkW
VVAPIO5tPYGe+SCV4FEU0PV9vl6JKL5ed+sn+O8Qe75ZGHjlulG/vn7UaPTr
b5FEcYQRr39ms8HnUbXFx3fXPH03bJO+JIGDdzLqtRSGGzAih1AsgExO4V73
2MV6cdxCuLD2gGwwNVDdjcr8ip9HMPo/fu181j3yqCGo+/lH9Mzmj5iEUR6Z
beGlw+Kie3HzPJsbAC5r9OdR82fPfK0Jm89F9HffU+qieSzwKDCtfXkdGz+d
SCXtD1gCNIvqU5huX0KpP6g3dspXf/98a1bUu7x+zWhZxKp53I2J3Jmu39Y9
RouQXzjz0v34DWVn7YZIHp7qLxQEBTIYNHDgzAUO3HCKFCICCKrg50vN59cm
tq+DCwDLW8Rw2bUZkZXeu66vJaBhMMPqmkAt+MTKtxAgPVz9igNjhrpCTM8v
PH2zEeKeTpCpmZMm7TgjopYwmeb0awMtNwMqFuzahmVb3EYh1Edx8gKbOXHT
T6mJEKNX2Pczm0aSiDd7idS7hulJe21KhmhNudfDiStALYARiKVqrIpQ/p0H
xyQ2DiS1f2yZ8yjbr5p0hDmxabKQ+llBpBQPEVcYs2KDDsbg9ATixNIssKvN
uC1FsvS8sFj7dREv5nxchLnQdkJeOtIw41if5byFxu6va/gwCOcupEUvLkQw
HOYCBSBY18BXX/ABEuKeYMxLlB1oW6dZxXgMA0LpX4gOGHFQh80/eEIDOy8m
OIiwltvPqQ2vXIuuA6dKU9VlozGxjS+Q3SWjVkKOZk2s5yv5XMQS8CrFLML+
WGjk8x50yCmkV9KoSYurb1IW8qi7k+zwLRtr3YoAfE4gq2PWrFftUzlH4VQO
nYOBWLS5oR2JNid6iOwZBLJDg/3Li2VHeTepU7Keqyfbz9UYpLcF0pU8LooV
LNiZOrW9x4VgBZsnp8evtqITPHWBJp8llXSv+e7UjNMd9H4X7HJoqnuMyXE5
zQJxOQfI/MaH1VWGR1WjfFObJjzJVnK8RS/nWMaH1lqHHjiMoYgVpuBMiaSD
mur3gKvM3SNeYADmwyITqaAZl5HkYZ3cr9YKxpAD+sJSVw85QzzC4zca9obO
d34d9py0kuqChHmuXmA/S9t/hwJBdMKrXX7zoRenPVYf5El8GrOTU+EN6IoU
8I0rAOGsGmUurW9z5gSZ2uwJG582Z21OQgn6LJtn0hm/pqYt7dhcziuj1GLV
aov2K5TOLTm4we1bIbUn1AkZ0lPT7VhbGbJvMc+24gD0cQ8WetJzbbvnGp4Q
fgx3b6un6pn6Rn2rvlPP1fe3uXb/3tfD3/m/+/c+/cgv4cGw7vUbAHnnywWZ
1JkpsW05ArfnFlPUb7gXL8DEu6EijHcoSWhxvH6Wl7meOrnLd7aqt5MJviLp
LqnASAi17A2G5TRfgKgx0H/NOrRHOULwvl+GF+0PNwjjcU1qOF37+YJU7DeH
N66j486oYMemSC0Vf1f7WE0BRYxDL4hnsaSR/q94cYvPp/4hGvR+bHFr3Wz2
8JsOcUsq/j/yomlXCJZG4t2MDjVxgXDtEL+JijvgBW0Dfptj/NbIVFq7xVMQ
FmijQ+zAaYODWXgDHPy2bounyMTHZJ3WgIewtIcPI4tBHPZ8OMZCQre415dZ
thGImFAUAsETIjXfiH64e7wbvTtnFE0ZjLKZsy7wRiPnz7HoSInpkC/PQ1s3
J5S5CxyH4Xprhq8aqCjpy9N4G8cpnnxLc/CdpTd+XNukpgpqjXUXOkcjr9ID
t/5vU9qVM95UcZLTY1JaW8iBdZ62Y6g0+zYvsRdXo2DilnRqOcdXHn3+3D4Q
3kpm/140QUP8TkChMJnzu+1C+a2SnbYK3/fwqFX0nS+2N9FgoHdMy7pPXVA4
fMXnbmkRvKUC4FIdxNUQ3AO4vghf+jEX/E6oi+7rwVx3T0sLfPHFBn0Jtf3I
68vry03R1xen5RYY7AvQciUai6jtQ2P/O5u+/vOpd5TbILL1o/w2Wu6aL7fH
VdetaPNHXXK+jF3SGqbc5YpihPVsRx37LCD303EJy++yVQ/84ibq8J6tvdZ7
azzmCm/kkdcOzLnNOaOek7HNXeWPg8cHrOXgH7Vv+9ND3SZr3/2FGabe9xeM
1A9mGSVgcaTKn/fjl5ZiYq1znvBMDsQhEHlHaTVqoFibJXSS3JMTFdEREd3O
+Mm55r5T34NWSkwydThtXfBryprX0LUTOSAiO8GXcvnFnHJ2j99Rp47kbDqn
QHcJWvKwqzlCOUXQSisSeIs7ILrpPdfz6ifcbdtJRv9OmaZtSfrbuO8ITyZw
HSFiXtVps2wOKIS8sF/zvikwfx5t8pv79mwLTJP5KAngJgXa5NzhvhUio/eE
TXJrU9/my2+xws6XOBFKbV50kpM75uJc16Tk4y9LPuiEJ35QJwJHpQ2Xeuf4
aIJPFIcGHcevcsTagiTro364ztsymkMR+GYAWE0+53bahnfympHAuhf+8P1e
3PPo8+XBdpuO6SZBvHJunzPaMB2jcNIzeVmAszkq9g3fGRC/LmDEL6xac+pf
XiOAZiLnP6M2ztBBuvKCrpVOzqyY4DE0qV+E8yEUkPW7tbUBJG3ezQl9Dufk
IBUM95VTG4cnF89at1OYtQGLmWJf01KO/3/3/LF/aQslq+lF76RRruqmiEOs
ywM2QaT0X0uGWO45FoN39XgYJsUTE/7dYNG7wE628GUrem6oMLrpX1R4eXk5
ynSh6QWF0XSPssVwEe5vf+P07ifgKPhQ2Ab3cjyq9MmH7IDeKR6GC5hX9rsd
bET+1bBK0hNUBVedf1cv9Hwb8gDnL/Zp6Pa/0QV/Ra42/MevvucMhxvTW7Lp
ffWtM7agKB932LGa9M8bE507s/HZaw87dbBaUhN+rQDahi7es6jwhd9y6qla
dl5NNjcsPd/EfHw+xDd+40su6Mw+vfTbDXwmIispz0D7T3gTG/epOuzhdP69
9zgY2JXJ7YKCEX9cgr2AzkF6/wW4uuvc6WAAAA==

-->

</rfc>
