<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-dtls-rrc-15" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="DTLS Return Routability Check">Return Routability Check for DTLS 1.2 and DTLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-dtls-rrc-15"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig" role="editor">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="A." surname="Kraus" fullname="Achim Kraus">
      <organization/>
      <address>
        <email>achimkraus@gmx.net</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <date year="2025" month="June" day="11"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>DTLS, RRC, CID</keyword>
    <abstract>
      <?line 46?>

<t>This document specifies a return routability check for use in context of the
Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS)
protocol versions 1.2 and 1.3.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Transport Layer Security Working Group mailing list (tls@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/tlswg/dtls-rrc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A Connection ID (CID) is an identifier carried in the record layer header of a DTLS datagram
that gives the receiver additional information for selecting the appropriate
security context.  The CID mechanism has been specified in <xref target="RFC9146"/> for
DTLS 1.2 and in <xref target="RFC9147"/> for DTLS 1.3.</t>
      <t>Section 6 of <xref target="RFC9146"/> describes how the use of CID increases the attack
surface of DTLS 1.2 and 1.3 by providing both on-path and off-path attackers an opportunity for
(D)DoS.  It also describes the steps a DTLS principal must take when a
record with a CID is received that has a source address (and/or port) different
from the one currently associated with the DTLS connection.  However, the
actual mechanism for ensuring that the new peer address is willing to receive
and process DTLS records is left open.  To address the gap, this document defines a return
routability check (RRC) sub-protocol for DTLS 1.2 and 1.3.</t>
      <t>The return routability check is performed by the receiving endpoint before the
CID-address binding is updated in that endpoint's session state.
This is done in order to give the receiving endpoint confidence
that the sending peer is in fact reachable at the source address (and port) indicated in the received datagram.</t>
      <t><xref target="regular"/> of this document explains the fundamental mechanism that aims to reduce the DDoS attack surface.
Additionally, in <xref target="enhanced"/>, a more advanced address validation mechanism is discussed.
This mechanism is designed to counteract off-path attackers trying to place themselves on-path by racing packets that trigger address rebinding at the receiver.
To gain a detailed understanding of the attacker model, please refer to <xref target="attacker"/>.</t>
      <t>Apart from of its use in the context of CID-address binding updates,
the path validation capability offered by RRC can be used at any time by either endpoint. For
instance, an endpoint might use RRC to check that a peer is still reachable at
its last known address after a period of quiescence.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
      <?line -18?>

<t>This document assumes familiarity with the CID format and protocol defined for
DTLS 1.2 <xref target="RFC9146"/> and for DTLS 1.3 <xref target="RFC9147"/>.  The presentation language
used in this document is described in Section 4 of <xref target="RFC8446"/>.</t>
      <t>This document reuses the definition of "anti-amplification limit" from
<xref target="RFC9000"/> to mean three times the amount of data received from an
unvalidated address.  This includes all DTLS records originating from that
source address, excluding discarded ones.</t>
      <t>The terms "peer" and "endpoint" are defined in <xref section="1.1" sectionFormat="of" target="RFC8446"/>.</t>
    </section>
    <section anchor="rrc-extension">
      <name>RRC Extension</name>
      <t>The use of RRC is negotiated via the <tt>rrc</tt> extension.
The <tt>rrc</tt> extension is only defined for DTLS 1.2 and DTLS 1.3.
On connecting, a client wishing to use RRC includes the <tt>rrc</tt> extension in its ClientHello.
If the server is capable of meeting this requirement, it responds with a
<tt>rrc</tt> extension in its ServerHello.  The <tt>extension_type</tt> value for this
extension is TBD1 and the <tt>extension_data</tt> field of this extension is empty.
The client and server <bcp14>MUST NOT</bcp14> use RRC unless both sides have successfully
exchanged <tt>rrc</tt> extensions.
A client offering the <tt>rrc</tt> extension <bcp14>MUST</bcp14> also offer the <tt>connection_id</tt> extension <xref target="RFC9146"/>.
A client offering the <tt>connection_id</tt> extension <bcp14>SHOULD</bcp14> also offer the <tt>rrc</tt> extension, unless the application using DTLS has its own address validation mechanism.</t>
      <section anchor="rrc-and-cid-interplay">
        <name>RRC and CID Interplay</name>
        <t>RRC offers an in-protocol mechanism to perform peer address validation that
complements the "peer address update" procedure described in <xref section="6" sectionFormat="of" target="RFC9146"/>.  Specifically, when both CID <xref target="RFC9146"/> and RRC have been
successfully negotiated for the session, if a record with CID is received that
has the source address and/or source port number of the enclosing UDP datagram different from what is
currently associated with that CID value, the receiver <bcp14>SHOULD</bcp14> perform a return
routability check as described in <xref target="path-validation"/>, unless an application
layer specific address validation mechanism can be triggered instead (e.g., CoAP Echo <xref target="RFC9175"/>).</t>
      </section>
    </section>
    <section anchor="return-routability-check-message-types">
      <name>Return Routability Check Message Types</name>
      <t>This document defines the <tt>return_routability_check</tt> content type
(<xref target="fig-rrc-msg"/>) to carry Return Routability Check messages.</t>
      <t>The RRC sub-protocol consists of three message types: <tt>path_challenge</tt>, <tt>path_response</tt>
and <tt>path_drop</tt> that are used for path validation and selection as described in
<xref target="path-validation"/>.</t>
      <t>Each message carries a Cookie, an 8-byte field containing 64 bits of entropy (e.g., obtained from the CSPRNG used by the TLS implementation, see <xref section="C.1" sectionFormat="of" target="RFC8446"/>).</t>
      <t>The <tt>return_routability_check</tt> message <bcp14>MUST</bcp14> be authenticated and encrypted
using the currently active security context.</t>
      <figure anchor="fig-rrc-msg">
        <name>Return Routability Check Message</name>
        <sourcecode type="tls-msg"><![CDATA[
enum {
    invalid(0),
    change_cipher_spec(20),
    alert(21),
    handshake(22),
    application_data(23),
    heartbeat(24),  /* RFC 6520 */
    tls12_cid(25),  /* RFC 9146, DTLS 1.2 only */
    return_routability_check(TBD2), /* NEW */
    (255)
} ContentType;

uint64 Cookie;

enum {
    path_challenge(0),
    path_response(1),
    path_drop(2),
    (255)
} rrc_msg_type;

struct {
    rrc_msg_type msg_type;
    select (return_routability_check.msg_type) {
        case path_challenge: Cookie;
        case path_response:  Cookie;
        case path_drop:      Cookie;
    };
} return_routability_check;
]]></sourcecode>
      </figure>
      <t>Future extensions to the Return Routability Check sub-protocol may
define new message types.
Implementations <bcp14>MUST</bcp14> be able to parse and understand the three RRC message types defined in this document.
In addition, implementations <bcp14>MUST</bcp14> be able to parse and gracefully ignore messages with an unknown <tt>msg_type</tt>.</t>
    </section>
    <section anchor="attacker">
      <name>Attacker Model</name>
      <t>We define two classes of attackers, off-path and on-path, with increasing
capabilities (see <xref target="fig-attacker-capabilities"/>) partly following terminology
introduced in QUIC (<xref section="21.1" sectionFormat="of" target="RFC9000"/>:</t>
      <ul spacing="normal">
        <li>
          <t>An off-path attacker is not on the original path between the DTLS peers, but
is able to observe packets on the original path and has faster routing
compared to the DTLS peers, which allows it to make copies of the observed
packets, race its copies to either peer and consistently win the race.</t>
        </li>
        <li>
          <t>An on-path attacker is on the original path between the DTLS peers and is
therefore capable, compared to the off-path attacker, to also drop and delay
records at will.</t>
        </li>
      </ul>
      <t>Note that, in general, attackers cannot craft DTLS records in a way that would
successfully pass verification, due to the cryptographic protections applied by
the DTLS record layer.</t>
      <figure anchor="fig-attacker-capabilities">
        <name>Attacker capabilities</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="448" viewBox="0 0 448 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,32 L 40,80" fill="none" stroke="black"/>
              <path d="M 40,112 L 40,160" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,256" fill="none" stroke="black"/>
              <path d="M 376,32 L 376,256" fill="none" stroke="black"/>
              <path d="M 416,32 L 416,128" fill="none" stroke="black"/>
              <path d="M 416,160 L 416,256" fill="none" stroke="black"/>
              <path d="M 40,32 L 64,32" fill="none" stroke="black"/>
              <path d="M 80,32 L 376,32" fill="none" stroke="black"/>
              <path d="M 392,32 L 416,32" fill="none" stroke="black"/>
              <path d="M 80,64 L 376,64" fill="none" stroke="black"/>
              <path d="M 80,96 L 376,96" fill="none" stroke="black"/>
              <path d="M 80,128 L 376,128" fill="none" stroke="black"/>
              <path d="M 40,160 L 64,160" fill="none" stroke="black"/>
              <path d="M 80,160 L 376,160" fill="none" stroke="black"/>
              <path d="M 80,192 L 376,192" fill="none" stroke="black"/>
              <path d="M 80,224 L 376,224" fill="none" stroke="black"/>
              <path d="M 80,256 L 376,256" fill="none" stroke="black"/>
              <path d="M 392,256 L 416,256" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="400,256 388,250.4 388,261.6" fill="black" transform="rotate(180,392,256)"/>
              <polygon class="arrowhead" points="400,32 388,26.4 388,37.6" fill="black" transform="rotate(180,392,32)"/>
              <polygon class="arrowhead" points="72,160 60,154.4 60,165.6" fill="black" transform="rotate(0,64,160)"/>
              <polygon class="arrowhead" points="72,32 60,26.4 60,37.6" fill="black" transform="rotate(0,64,32)"/>
              <g class="text">
                <text x="120" y="52">Inspect</text>
                <text x="204" y="52">un-encrypted</text>
                <text x="292" y="52">portions</text>
                <text x="116" y="84">Inject</text>
                <text x="36" y="100">off-path</text>
                <text x="120" y="116">Reorder</text>
                <text x="116" y="148">Modify</text>
                <text x="212" y="148">un-authenticated</text>
                <text x="316" y="148">portions</text>
                <text x="416" y="148">on-path</text>
                <text x="112" y="180">Delay</text>
                <text x="108" y="212">Drop</text>
                <text x="132" y="244">Manipulate</text>
                <text x="192" y="244">the</text>
                <text x="264" y="244">packetization</text>
                <text x="344" y="244">layer</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
    .--> .------------------------------------. <--.
    |    | Inspect un-encrypted portions      |    |
    |    +------------------------------------+    |
    |    | Inject                             |    |
off-path +------------------------------------+    |
    |    | Reorder                            |    |
    |    +------------------------------------+    |
    |    | Modify un-authenticated portions   | on-path
    '--> +------------------------------------+    |
         | Delay                              |    |
         +------------------------------------+    |
         | Drop                               |    |
         +------------------------------------+    |
         | Manipulate the packetization layer |    |
         '------------------------------------' <--'
]]></artwork>
        </artset>
      </figure>
      <t>RRC is designed to defend against the following attacks:</t>
      <ul spacing="normal">
        <li>
          <t>On-path and off-path attackers that try to create an amplification attack by
spoofing the source address of the victim (<xref target="sec-amplification"/>).</t>
        </li>
        <li>
          <t>Off-path attackers that try to put themselves on-path (<xref target="off-path"/>),
provided that the enhanced path validation algorithm is used (<xref target="enhanced"/>).</t>
        </li>
      </ul>
      <section anchor="sec-amplification">
        <name>Amplification</name>
        <t>Both on-path and off-path attackers can send a packet (either by modifying it
on the fly, or by copying, injecting, and racing it, respectively) with the
source address modified to that of a victim host.  If the traffic generated by
the server in response is larger compared to the received packet (e.g., a CoAP
server returning an MTU's worth of data from a 20-bytes GET request <xref target="I-D.irtf-t2trg-amplification-attacks"/>) the
attacker can use the server as a traffic amplifier toward the victim.</t>
        <section anchor="mitigation-strategy">
          <name>Mitigation Strategy</name>
          <t>When receiving a packet with a known CID that has a source address different from the one currently associated with the DTLS connection, an
RRC-capable endpoint will not send a (potentially large) response but instead a
small <tt>path_challenge</tt> message to the victim host.  Since the host is not able
to decrypt it and generate a valid <tt>path_response</tt>, the address validation
fails, which in turn keeps the original address binding unaltered.</t>
          <t>Note that in case of an off-path attacker, the original packet still reaches
the intended destination; therefore, an implementation could use a different
strategy to mitigate the attack.</t>
        </section>
      </section>
      <section anchor="off-path">
        <name>Off-Path Packet Forwarding</name>
        <t>An off-path attacker that can observe packets might forward copies of
genuine packets to endpoints over a different path. If the copied packet arrives before
the genuine packet, this will appear as a path change, like in a genuine NAT rebinding occurrence. Any genuine
packet will be discarded as a duplicate. If the attacker is able to
continue forwarding packets, it might be able to cause migration to a
path via the attacker. This places the attacker on-path, giving it
the ability to observe or drop all subsequent packets.</t>
        <t>This style of attack relies on the attacker using a path that has
the same or better characteristics (e.g., due to a more favourable service level agreements) as the direct path between
endpoints. The attack is more effective if relatively few packets are
sent or if packet loss coincides with the attempted attack.</t>
        <t>A data packet received on the original path that increases the
maximum received packet number will cause the endpoint to move back
to that path. Therefore, eliciting packets on this path increases the
likelihood that the attack is unsuccessful. Note however that, unlike QUIC,
DTLS has no "non-probing" packets so this would require application specific
mechanisms.</t>
        <section anchor="mitigation-strategy-1">
          <name>Mitigation Strategy</name>
          <t><xref target="fig-off-path"/> illustrates the case where a receiver receives a
packet with a new source IP address and/or new port number. In order
to determine that this path change was not triggered
by an off-path attacker, the receiver will send a RRC message of type
<tt>path_challenge</tt> (1) on the old path.</t>
          <figure anchor="fig-off-path">
            <name>Off-Path Packet Forwarding Scenario</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="256" viewBox="0 0 256 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 64,80 L 64,176" fill="none" stroke="black"/>
                  <path d="M 64,208 L 64,304" fill="none" stroke="black"/>
                  <path d="M 112,48 L 112,112" fill="none" stroke="black"/>
                  <path d="M 112,272 L 112,336" fill="none" stroke="black"/>
                  <path d="M 200,48 L 200,112" fill="none" stroke="black"/>
                  <path d="M 200,272 L 200,336" fill="none" stroke="black"/>
                  <path d="M 248,80 L 248,304" fill="none" stroke="black"/>
                  <path d="M 112,48 L 200,48" fill="none" stroke="black"/>
                  <path d="M 64,80 L 112,80" fill="none" stroke="black"/>
                  <path d="M 200,80 L 248,80" fill="none" stroke="black"/>
                  <path d="M 112,112 L 200,112" fill="none" stroke="black"/>
                  <path d="M 24,176 L 120,176" fill="none" stroke="black"/>
                  <path d="M 8,208 L 104,208" fill="none" stroke="black"/>
                  <path d="M 112,272 L 200,272" fill="none" stroke="black"/>
                  <path d="M 64,304 L 112,304" fill="none" stroke="black"/>
                  <path d="M 200,304 L 248,304" fill="none" stroke="black"/>
                  <path d="M 112,336 L 200,336" fill="none" stroke="black"/>
                  <path d="M 8,208 L 24,176" fill="none" stroke="black"/>
                  <path d="M 104,208 L 120,176" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="72" y="36">new</text>
                    <text x="240" y="36">old</text>
                    <text x="76" y="52">path</text>
                    <text x="236" y="52">path</text>
                    <text x="156" y="84">Receiver</text>
                    <text x="64" y="196">Attacker?</text>
                    <text x="156" y="308">Sender</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
        new                  old
        path  .----------.  path
              |          |
        .-----+ Receiver +-----.
        |     |          |     |
        |     '----------'     |
        |                      |
        |                      |
        |                      |
   .----+------.               |
  / Attacker? /                |
 '------+----'                 |
        |                      |
        |                      |
        |                      |
        |     .----------.     |
        |     |          |     |
        '-----+  Sender  +-----'
              |          |
              '----------'
]]></artwork>
            </artset>
          </figure>
          <t>Three cases need to be considered:</t>
          <t>Case 1: The old path is dead (e.g., due to a NAT rebinding), which leads to a
timeout of (1).</t>
          <t>As shown in <xref target="fig-old-path-dead"/>, a <tt>path_challenge</tt> (2) needs to be sent on
the new path.  If the sender replies with a <tt>path_response</tt> on the new path
(3), the switch to the new path is considered legitimate.</t>
          <figure anchor="fig-old-path-dead">
            <name>Old path is dead</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="384" viewBox="0 0 384 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 80,64 L 80,112" fill="none" stroke="black"/>
                  <path d="M 80,144 L 80,320" fill="none" stroke="black"/>
                  <path d="M 96,80 L 96,176" fill="none" stroke="black"/>
                  <path d="M 96,208 L 96,304" fill="none" stroke="black"/>
                  <path d="M 112,96 L 112,224" fill="none" stroke="black"/>
                  <path d="M 112,256 L 112,288" fill="none" stroke="black"/>
                  <path d="M 144,48 L 144,112" fill="none" stroke="black"/>
                  <path d="M 144,272 L 144,336" fill="none" stroke="black"/>
                  <path d="M 232,48 L 232,112" fill="none" stroke="black"/>
                  <path d="M 232,272 L 232,336" fill="none" stroke="black"/>
                  <path d="M 296,64 L 296,112" fill="none" stroke="black"/>
                  <path d="M 296,144 L 296,176" fill="none" stroke="black"/>
                  <path d="M 144,48 L 232,48" fill="none" stroke="black"/>
                  <path d="M 80,64 L 136,64" fill="none" stroke="black"/>
                  <path d="M 232,64 L 296,64" fill="none" stroke="black"/>
                  <path d="M 96,80 L 144,80" fill="none" stroke="black"/>
                  <path d="M 112,96 L 144,96" fill="none" stroke="black"/>
                  <path d="M 144,112 L 232,112" fill="none" stroke="black"/>
                  <path d="M 56,176 L 72,176" fill="none" stroke="black"/>
                  <path d="M 88,176 L 104,176" fill="none" stroke="black"/>
                  <path d="M 120,176 L 288,176" fill="none" stroke="black"/>
                  <path d="M 304,176 L 320,176" fill="none" stroke="black"/>
                  <path d="M 40,208 L 72,208" fill="none" stroke="black"/>
                  <path d="M 88,208 L 104,208" fill="none" stroke="black"/>
                  <path d="M 120,208 L 304,208" fill="none" stroke="black"/>
                  <path d="M 144,272 L 232,272" fill="none" stroke="black"/>
                  <path d="M 112,288 L 136,288" fill="none" stroke="black"/>
                  <path d="M 96,304 L 144,304" fill="none" stroke="black"/>
                  <path d="M 80,320 L 144,320" fill="none" stroke="black"/>
                  <path d="M 144,336 L 232,336" fill="none" stroke="black"/>
                  <path d="M 40,208 L 56,176" fill="none" stroke="black"/>
                  <path d="M 304,208 L 320,176" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(90,296,176)"/>
                  <polygon class="arrowhead" points="144,288 132,282.4 132,293.6" fill="black" transform="rotate(0,136,288)"/>
                  <polygon class="arrowhead" points="144,64 132,58.4 132,69.6" fill="black" transform="rotate(0,136,64)"/>
                  <g class="text">
                    <text x="88" y="36">new</text>
                    <text x="288" y="36">old</text>
                    <text x="92" y="52">path</text>
                    <text x="284" y="52">path</text>
                    <text x="188" y="84">Receiver</text>
                    <text x="260" y="84">......</text>
                    <text x="280" y="100">.</text>
                    <text x="280" y="116">.</text>
                    <text x="24" y="132">path-</text>
                    <text x="80" y="132">3</text>
                    <text x="280" y="132">.</text>
                    <text x="296" y="132">1</text>
                    <text x="328" y="132">path-</text>
                    <text x="36" y="148">response</text>
                    <text x="280" y="148">.</text>
                    <text x="344" y="148">challenge</text>
                    <text x="280" y="164">.</text>
                    <text x="184" y="196">NAT</text>
                    <text x="296" y="196">X</text>
                    <text x="352" y="196">timeout</text>
                    <text x="280" y="228">.</text>
                    <text x="112" y="244">2</text>
                    <text x="144" y="244">path-</text>
                    <text x="280" y="244">.</text>
                    <text x="160" y="260">challenge</text>
                    <text x="280" y="260">.</text>
                    <text x="280" y="276">.</text>
                    <text x="280" y="292">.</text>
                    <text x="188" y="308">Sender</text>
                    <text x="260" y="308">.....'</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
          new                      old
          path    .----------.    path
          .------>|          +-------.
          | .-----+ Receiver +...... |
          | | .---+          |     . |
          | | |   '----------'     . |
 path-    3 | |                    . 1 path-
 response | | |                    . | challenge
          | | |                    . |
       .--|-+-|----------------------v--.
      /   |   |       NAT            X / timeout
     '----|-+-|-----------------------'
          | | |                    .
          | | 2 path-              .
          | | | challenge          .
          | | |   .----------.     .
          | | '-->|          |     .
          | '-----+  Sender  +.....'
          '-------+          |
                  '----------'
]]></artwork>
            </artset>
          </figure>
          <t>Case 2: The old path is alive but not preferred.</t>
          <t>This case is shown in <xref target="fig-old-path-not-preferred"/> whereby the sender
replies with a <tt>path_drop</tt> message (2) on the old path.  This triggers
the receiver to send a <tt>path_challenge</tt> (3) on the new path. The sender
will reply with a <tt>path_response</tt> (4) on the new path, thus providing
confirmation for the path migration.</t>
          <figure anchor="fig-old-path-not-preferred">
            <name>Old path is not preferred</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="424" viewBox="0 0 424 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 104,64 L 104,112" fill="none" stroke="black"/>
                  <path d="M 104,144 L 104,320" fill="none" stroke="black"/>
                  <path d="M 120,80 L 120,176" fill="none" stroke="black"/>
                  <path d="M 120,216 L 120,304" fill="none" stroke="black"/>
                  <path d="M 136,96 L 136,224" fill="none" stroke="black"/>
                  <path d="M 136,256 L 136,288" fill="none" stroke="black"/>
                  <path d="M 168,48 L 168,112" fill="none" stroke="black"/>
                  <path d="M 168,272 L 168,336" fill="none" stroke="black"/>
                  <path d="M 256,48 L 256,112" fill="none" stroke="black"/>
                  <path d="M 256,272 L 256,336" fill="none" stroke="black"/>
                  <path d="M 288,96 L 288,112" fill="none" stroke="black"/>
                  <path d="M 288,144 L 288,288" fill="none" stroke="black"/>
                  <path d="M 304,80 L 304,176" fill="none" stroke="black"/>
                  <path d="M 304,208 L 304,304" fill="none" stroke="black"/>
                  <path d="M 320,64 L 320,224" fill="none" stroke="black"/>
                  <path d="M 320,256 L 320,320" fill="none" stroke="black"/>
                  <path d="M 168,48 L 256,48" fill="none" stroke="black"/>
                  <path d="M 104,64 L 160,64" fill="none" stroke="black"/>
                  <path d="M 264,64 L 320,64" fill="none" stroke="black"/>
                  <path d="M 120,80 L 168,80" fill="none" stroke="black"/>
                  <path d="M 256,80 L 304,80" fill="none" stroke="black"/>
                  <path d="M 136,96 L 168,96" fill="none" stroke="black"/>
                  <path d="M 256,96 L 288,96" fill="none" stroke="black"/>
                  <path d="M 168,112 L 256,112" fill="none" stroke="black"/>
                  <path d="M 24,176 L 96,176" fill="none" stroke="black"/>
                  <path d="M 112,176 L 128,176" fill="none" stroke="black"/>
                  <path d="M 144,176 L 176,176" fill="none" stroke="black"/>
                  <path d="M 264,176 L 280,176" fill="none" stroke="black"/>
                  <path d="M 296,176 L 312,176" fill="none" stroke="black"/>
                  <path d="M 328,176 L 416,176" fill="none" stroke="black"/>
                  <path d="M 8,208 L 96,208" fill="none" stroke="black"/>
                  <path d="M 112,208 L 128,208" fill="none" stroke="black"/>
                  <path d="M 144,208 L 160,208" fill="none" stroke="black"/>
                  <path d="M 248,208 L 280,208" fill="none" stroke="black"/>
                  <path d="M 296,208 L 312,208" fill="none" stroke="black"/>
                  <path d="M 328,208 L 400,208" fill="none" stroke="black"/>
                  <path d="M 168,272 L 256,272" fill="none" stroke="black"/>
                  <path d="M 136,288 L 160,288" fill="none" stroke="black"/>
                  <path d="M 264,288 L 288,288" fill="none" stroke="black"/>
                  <path d="M 120,304 L 168,304" fill="none" stroke="black"/>
                  <path d="M 256,304 L 304,304" fill="none" stroke="black"/>
                  <path d="M 104,320 L 168,320" fill="none" stroke="black"/>
                  <path d="M 256,320 L 320,320" fill="none" stroke="black"/>
                  <path d="M 168,336 L 256,336" fill="none" stroke="black"/>
                  <path d="M 8,208 L 24,176" fill="none" stroke="black"/>
                  <path d="M 160,208 L 176,176" fill="none" stroke="black"/>
                  <path d="M 248,208 L 264,176" fill="none" stroke="black"/>
                  <path d="M 400,208 L 416,176" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="272,288 260,282.4 260,293.6" fill="black" transform="rotate(180,264,288)"/>
                  <polygon class="arrowhead" points="272,64 260,58.4 260,69.6" fill="black" transform="rotate(180,264,64)"/>
                  <polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(0,160,288)"/>
                  <polygon class="arrowhead" points="168,64 156,58.4 156,69.6" fill="black" transform="rotate(0,160,64)"/>
                  <g class="text">
                    <text x="112" y="36">new</text>
                    <text x="312" y="36">old</text>
                    <text x="116" y="52">path</text>
                    <text x="308" y="52">path</text>
                    <text x="212" y="84">Receiver</text>
                    <text x="48" y="132">path-</text>
                    <text x="104" y="132">4</text>
                    <text x="224" y="132">path-</text>
                    <text x="288" y="132">1</text>
                    <text x="60" y="148">response</text>
                    <text x="240" y="148">challenge</text>
                    <text x="52" y="196">AP/NAT</text>
                    <text x="88" y="196">A</text>
                    <text x="356" y="196">AP/NAT</text>
                    <text x="392" y="196">B</text>
                    <text x="136" y="244">3</text>
                    <text x="168" y="244">path-</text>
                    <text x="320" y="244">2</text>
                    <text x="352" y="244">path-</text>
                    <text x="184" y="260">challenge</text>
                    <text x="348" y="260">drop</text>
                    <text x="212" y="308">Sender</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
            new                      old
            path    .----------.    path
            .------>|          |<------.
            | .-----+ Receiver +-----. |
            | | .---+          +---. | |
            | | |   '----------'   | | |
   path-    4 | |        path-     1 | |
   response | | |        challenge | | |
            | | |                  | | |
  .---------|-+-|----.          .--|-+-|-----------.
 / AP/NAT A |   |   /          /   |   | AP/NAT B /
'-----------|---|--'          '----|-+-|---------'
            | | |                  | | |
            | | 3 path-            | | 2 path-
            | | | challenge        | | | drop
            | | |   .----------.   | | |
            | | '-->|          |<--' | |
            | '-----+  Sender  +-----' |
            '-------+          +-------'
                    '----------'
]]></artwork>
            </artset>
          </figure>
          <t>Case 3: The old path is alive and preferred.</t>
          <t>This is most likely the result of an off-path attacker trying to place itself
on path.  The receiver sends a <tt>path_challenge</tt> on the old path and the sender
replies with a <tt>path_response</tt> (2) on the old path. The interaction is shown in
<xref target="fig-old-path-preferred"/>. This results in the connection not being migrated
to the new path, thus thwarting the attack.</t>
          <figure anchor="fig-old-path-preferred">
            <name>Old path is preferred</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="352" viewBox="0 0 352 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 64,80 L 64,176" fill="none" stroke="black"/>
                  <path d="M 64,224 L 64,320" fill="none" stroke="black"/>
                  <path d="M 112,48 L 112,112" fill="none" stroke="black"/>
                  <path d="M 112,288 L 112,352" fill="none" stroke="black"/>
                  <path d="M 200,48 L 200,112" fill="none" stroke="black"/>
                  <path d="M 200,288 L 200,352" fill="none" stroke="black"/>
                  <path d="M 232,96 L 232,240" fill="none" stroke="black"/>
                  <path d="M 232,272 L 232,304" fill="none" stroke="black"/>
                  <path d="M 248,80 L 248,176" fill="none" stroke="black"/>
                  <path d="M 248,208 L 248,320" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,112" fill="none" stroke="black"/>
                  <path d="M 264,144 L 264,336" fill="none" stroke="black"/>
                  <path d="M 112,48 L 200,48" fill="none" stroke="black"/>
                  <path d="M 200,64 L 264,64" fill="none" stroke="black"/>
                  <path d="M 64,80 L 112,80" fill="none" stroke="black"/>
                  <path d="M 200,80 L 248,80" fill="none" stroke="black"/>
                  <path d="M 208,96 L 232,96" fill="none" stroke="black"/>
                  <path d="M 112,112 L 200,112" fill="none" stroke="black"/>
                  <path d="M 32,176 L 120,176" fill="none" stroke="black"/>
                  <path d="M 208,176 L 224,176" fill="none" stroke="black"/>
                  <path d="M 240,176 L 256,176" fill="none" stroke="black"/>
                  <path d="M 272,176 L 312,176" fill="none" stroke="black"/>
                  <path d="M 192,208 L 224,208" fill="none" stroke="black"/>
                  <path d="M 240,208 L 256,208" fill="none" stroke="black"/>
                  <path d="M 272,208 L 296,208" fill="none" stroke="black"/>
                  <path d="M 8,224 L 96,224" fill="none" stroke="black"/>
                  <path d="M 112,288 L 200,288" fill="none" stroke="black"/>
                  <path d="M 200,304 L 232,304" fill="none" stroke="black"/>
                  <path d="M 64,320 L 112,320" fill="none" stroke="black"/>
                  <path d="M 200,320 L 248,320" fill="none" stroke="black"/>
                  <path d="M 208,336 L 264,336" fill="none" stroke="black"/>
                  <path d="M 112,352 L 200,352" fill="none" stroke="black"/>
                  <path d="M 8,224 L 32,176" fill="none" stroke="black"/>
                  <path d="M 96,224 L 120,176" fill="none" stroke="black"/>
                  <path d="M 192,208 L 208,176" fill="none" stroke="black"/>
                  <path d="M 296,208 L 312,176" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="216,336 204,330.4 204,341.6" fill="black" transform="rotate(180,208,336)"/>
                  <polygon class="arrowhead" points="216,96 204,90.4 204,101.6" fill="black" transform="rotate(180,208,96)"/>
                  <g class="text">
                    <text x="72" y="36">new</text>
                    <text x="256" y="36">old</text>
                    <text x="76" y="52">path</text>
                    <text x="252" y="52">path</text>
                    <text x="156" y="84">Receiver</text>
                    <text x="264" y="132">1</text>
                    <text x="296" y="132">path-</text>
                    <text x="312" y="148">challenge</text>
                    <text x="68" y="196">off-path</text>
                    <text x="220" y="196">AP</text>
                    <text x="248" y="196">/</text>
                    <text x="280" y="196">NAT</text>
                    <text x="60" y="212">attacker</text>
                    <text x="176" y="260">path-</text>
                    <text x="232" y="260">2</text>
                    <text x="188" y="276">response</text>
                    <text x="156" y="324">Sender</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
        new                    old
        path  .----------.    path
              |          +-------.
        .-----+ Receiver +-----. |
        |     |          |<--. | |
        |     '----------'   | | |
        |                    | | 1 path-
        |                    | | | challenge
        |                    | | |
    .---+------.          .--|-+-|-----.
   / off-path /          / AP| / |NAT /
  / attacker /          '----|-+-|---'
 '------+---'                | | |
        |                    | | |
        |           path-    2 | |
        |           response | | |
        |     .----------.   | | |
        |     |          +---' | |
        '-----+  Sender  +-----' |
              |          |<------'
              '----------'
]]></artwork>
            </artset>
          </figure>
          <t>Note that this defense is imperfect, but this is not considered a serious
problem. If the path via the attacker is reliably faster than the
old path despite multiple attempts to use that old path, it
is not possible to distinguish between an attack and an improvement
in routing.</t>
          <t>An endpoint could also use heuristics to improve detection of this
style of attack. For instance, NAT rebinding is improbable if
packets were recently received on the old path; similarly, rebinding
is rare on IPv6 paths. Endpoints can also look for duplicated
packets. Conversely, a change in connection ID is more likely to
indicate an intentional migration rather than an attack. Note that
changes in connection IDs are supported in DTLS 1.3 but not in
DTLS 1.2.</t>
        </section>
      </section>
    </section>
    <section anchor="path-validation">
      <name>Path Validation Procedure</name>
      <t>The receiver that observes the peer's address or port change <bcp14>MUST</bcp14> stop sending
any buffered application data, or limit the data sent to the unvalidated
address to the anti-amplification limit.
It then initiates the return routability check.</t>
      <t>This document describes two kinds of checks: basic (<xref target="regular"/>) and enhanced (<xref target="enhanced"/>).
The choice of one or the other depends on whether the off-path attacker scenario described in <xref target="off-path"/> is to be considered.
(The decision on what strategy to choose depends mainly on the threat model, but
may also be influenced by other considerations.  Examples of impacting factors
include: the need to minimise implementation complexity, privacy concerns, and the
need to reduce the time it takes to switch path.  The choice may be offered as
a configuration option to the user of the TLS implementation.)</t>
      <t>After the path validation procedure is completed, any pending send operation is
resumed to the bound peer address.</t>
      <t><xref target="path-challenge-reqs"/> and <xref target="path-response-reqs"/> list the requirements for
the initiator and responder roles, broken down per protocol phase.</t>
      <section anchor="regular">
        <name>Basic</name>
        <t>The basic return routability check comprises the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The receiver (i.e., the initiator) creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</t>
          </li>
          <li>
            <t>The message is sent to the observed new address and a timer T (see
<xref target="timer-choice"/>) is started.</t>
          </li>
          <li>
            <t>The peer (i.e., the responder) cryptographically verifies the received
<tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and responds by echoing the cookie value in a
<tt>return_routability_check</tt> message of type <tt>path_response</tt>.</t>
          </li>
          <li>
            <t>When the initiator receives the <tt>return_routability_check</tt>
message  of type <tt>path_response</tt> and verifies that it contains the sent cookie, it updates the peer
address binding.</t>
          </li>
          <li>
            <t>If T expires the peer address binding is not updated.</t>
          </li>
        </ol>
      </section>
      <section anchor="enhanced">
        <name>Enhanced</name>
        <t>The enhanced return routability check comprises the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The receiver (i.e., the initiator) creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</t>
          </li>
          <li>
            <t>The message is sent to the previously valid address, which corresponds to the
old path. Additionally, a timer T is started, see <xref target="timer-choice"/>.</t>
          </li>
          <li>
            <t>If the path is still functional, the peer (i.e., the responder) cryptographically verifies the received
<tt>return_routability_check</tt> message of
type <tt>path_challenge</tt>.
The action to be taken depends on whether the path through which
the message was received is the preferred one or not anymore:
            </t>
            <ul spacing="normal">
              <li>
                <t>If the path through which the message was received is preferred,
a <tt>return_routability_check</tt> message of type <tt>path_response</tt> <bcp14>MUST</bcp14> be returned.</t>
              </li>
              <li>
                <t>If the path through which the message was received is not preferred,
a <tt>return_routability_check</tt> message of type <tt>path_drop</tt> <bcp14>MUST</bcp14> be returned.
In either case, the peer echoes the cookie value in the response.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The initiator receives and verifies that the <tt>return_routability_check</tt>
message contains the previously sent cookie. The actions taken by the
initiator differ based on the received message:
            </t>
            <ul spacing="normal">
              <li>
                <t>When a <tt>return_routability_check</tt> message of type <tt>path_response</tt> was received,
the initiator <bcp14>MUST</bcp14> continue using the previously valid address, i.e., no switch
to the new path takes place and the peer address binding is not updated.</t>
              </li>
              <li>
                <t>When a <tt>return_routability_check</tt> message of type <tt>path_drop</tt> was received,
the initiator <bcp14>MUST</bcp14> perform a return routability check on the observed new
address, as described in <xref target="regular"/>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>If T expires the peer address binding is not updated. In this case, the
initiator <bcp14>MUST</bcp14> perform a return routability check on the observed new
address, as described in <xref target="regular"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="path-challenge-reqs">
        <name> Path Challenge Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The initiator <bcp14>MAY</bcp14> send multiple <tt>return_routability_check</tt> messages of type
<tt>path_challenge</tt> to cater for packet loss on the probed path.
            </t>
            <ul spacing="normal">
              <li>
                <t>Each <tt>path_challenge</tt> <bcp14>SHOULD</bcp14> go into different transport packets.  (Note that
the DTLS implementation may not have control over the packetization done by
the transport layer.)</t>
              </li>
              <li>
                <t>The transmission of subsequent <tt>path_challenge</tt> messages <bcp14>SHOULD</bcp14> be paced to
decrease the chance of loss.</t>
              </li>
              <li>
                <t>Each <tt>path_challenge</tt> message <bcp14>MUST</bcp14> contain random data.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The initiator <bcp14>MAY</bcp14> use padding using the record padding mechanism available in
DTLS 1.3 (and in DTLS 1.2, when CID is enabled on the sending direction) up
to the anti-amplification limit to probe if the path MTU (PMTU) for the new
path is still acceptable.</t>
          </li>
        </ul>
      </section>
      <section anchor="path-response-reqs">
        <name>Path Response/Drop Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The responder <bcp14>MUST NOT</bcp14> delay sending an elicited <tt>path_response</tt> or
<tt>path_drop</tt> messages.</t>
          </li>
          <li>
            <t>The responder <bcp14>MUST</bcp14> send exactly one <tt>path_response</tt> or <tt>path_drop</tt> message
for each received <tt>path_challenge</tt>.</t>
          </li>
          <li>
            <t>The responder <bcp14>MUST</bcp14> send the <tt>path_response</tt> or the <tt>path_drop</tt> on the path
where the corresponding <tt>path_challenge</tt> has been received, so that validation
succeeds only if the path is functional in both directions. The initiator
<bcp14>MUST NOT</bcp14> enforce this behaviour.</t>
          </li>
          <li>
            <t>The initiator <bcp14>MUST</bcp14> silently discard any invalid <tt>path_response</tt> or
<tt>path_drop</tt> it receives.</t>
          </li>
        </ul>
        <t>Note that RRC does not cater for PMTU discovery on the reverse path.  If the
responder wants to do PMTU discovery using RRC, it should initiate a new path
validation procedure.</t>
      </section>
      <section anchor="timer-choice">
        <name>Timer Choice</name>
        <t>When setting T, implementations are cautioned that the new path could have a
longer round-trip time (RTT) than the original.</t>
        <t>In settings where there is external information about the RTT of the active
path, implementations <bcp14>SHOULD</bcp14> use T = 3xRTT.</t>
        <t>If an implementation has no way to obtain information regarding the RTT of the
active path, T <bcp14>SHOULD</bcp14> be set to 1s.</t>
        <t>Profiles for specific deployment environments -- for example, constrained
networks <xref target="I-D.ietf-uta-tls13-iot-profile"/> -- <bcp14>MAY</bcp14> specify a different, more
suitable value for T.</t>
      </section>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>In the example DTLS 1.3 handshake shown in <xref target="fig-handshake"/>, a client
and a server successfully negotiate support for both CID and the RRC
extension.</t>
      <figure anchor="fig-handshake">
        <name>Message Flow for Full DTLS Handshake</name>
        <artwork><![CDATA[
       Client                                           Server

Key  ^ ClientHello
Exch | + key_share
     | + signature_algorithms
     | + rrc
     v + connection_id=empty
                               -------->
                                                  ServerHello  ^ Key
                                                 +  key_share  | Exch
                                          + connection_id=100  |
                                                        + rrc  v
                                        {EncryptedExtensions}  ^  Server
                                         {CertificateRequest}  v  Params
                                                {Certificate}  ^
                                          {CertificateVerify}  | Auth
                               <--------           {Finished}  v

     ^ {Certificate}
Auth | {CertificateVerify}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]

              +  Indicates noteworthy extensions sent in the
                 previously noted message.

              *  Indicates optional or situation-dependent
                 messages/extensions that are not always sent.

              {} Indicates messages protected using keys
                 derived from a [sender]_handshake_traffic_secret.

              [] Indicates messages protected using keys
                 derived from [sender]_application_traffic_secret_N.
]]></artwork>
      </figure>
      <t>Once a connection has been established, the client and the server
exchange application payloads protected by DTLS with a unilaterally used
CID. In our case, the client is requested to use CID 100 for records
sent to the server.</t>
      <t>At some point in the communication interaction, the IP address used by
the client changes and, thanks to the CID usage, the security context to
interpret the record is successfully located by the server.  However, the
server wants to test the reachability of the client at its new IP address.</t>
      <t><xref target="fig-rrc-example"/> shows the server initiating a "basic" RRC exchange
(see <xref target="regular"/>) that establishes reachability of the client at the new
IP address.</t>
      <figure anchor="fig-rrc-example">
        <name>"Basic" Return Routability Example</name>
        <artwork><![CDATA[
      Client                                             Server
      ------                                             ------

      Application Data            ========>
      <CID=100>
      Src-IP=A
      Dst-IP=Z
                                  <========        Application Data
                                                       Src-IP=Z
                                                       Dst-IP=A


                              <<------------->>
                              <<   Some      >>
                              <<   Time      >>
                              <<   Later     >>
                              <<------------->>


      Application Data            ========>
      <CID=100>
      Src-IP=B
      Dst-IP=Z

                                             <<< Unverified IP
                                                 Address B >>

                                  <--------  Return Routability Check
                                             path_challenge(cookie)
                                                    Src-IP=Z
                                                    Dst-IP=B

      Return Routability Check    -------->
      path_response(cookie)
      Src-IP=B
      Dst-IP=Z

                                             <<< IP Address B
                                                 Verified >>


                                  <========        Application Data
                                                       Src-IP=Z
                                                       Dst-IP=B
]]></artwork>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Note that the return routability checks do not protect against flooding of
third-parties if the attacker is on-path, as the attacker can redirect the
return routability checks to the real peer (even if those datagrams are
cryptographically authenticated).  On-path adversaries can, in general, pose a
harm to connectivity.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>When using DTLS 1.3, peers <bcp14>SHOULD</bcp14> avoid using the same CID on multiple network
paths, in particular when initiating connection migration or when probing a new
network path, as described in <xref target="path-validation"/>, as an adversary can otherwise
correlate the communication interaction across those different paths.  DTLS 1.3
provides mechanisms to ensure that a new CID can always be used.  In
general, an endpoint should proactively send a RequestConnectionId message to ask for new
CIDs as soon as the pool of spare CIDs is depleted (or goes below a threshold).
Also, in case a peer might have exhausted available CIDs, a migrating endpoint
could include NewConnectionId in packets sent on the new path to make sure that
the subsequent path validation can use fresh CIDs.</t>
      <t>Note that DTLS 1.2 does not offer the ability to request new CIDs during the session lifetime since CIDs have the same life-span
of the connection.  Therefore, deployments that use DTLS in multihoming
environments <bcp14>SHOULD</bcp14> refuse to use CIDs with DTLS 1.2
and switch to DTLS 1.3 if the correlation privacy threat is a concern.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="logging-anomalous-events">
        <name>Logging Anomalous Events</name>
        <t>Logging of RRC operations at both ends of the protocol can be generally useful for the users of an implementation.
In particular, for security information and event management (SIEM) and troubleshooting purposes, it is strongly advised that implementations collect statistics about any unsuccessful RRC operations, as they could represent security-relevant events when they coincide with attempts by an attacker to interfere with the end-to-end path.</t>
      </section>
      <section anchor="middlebox-interference">
        <name>Middlebox Interference</name>
        <t>Since the DTLS 1.3 encrypted packet's record type is opaque to on-path observers, RRC messages are immune to middlebox interference when using DTLS 1.3.
In contrast, DTLS 1.2 RRC messages that are not wrapped in the <tt>tls12_cid</tt> record (e.g., in the server-to-client direction if the server didn't negotiate a CID or it negotiated a zero-length CID) have the <tt>return_routability_check</tt> content type in plain text, making them susceptible to interference (e.g., dropping of <tt>path_challenge</tt> messages), which would hinder the RRC functionality altogether.
Therefore, when using RRC in DTLS 1.2, it is recommended to enable CID in both directions.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFCthis with this RFC number and remove this note.</cref></t>
      <section anchor="new-tls-contenttype">
        <name>New TLS ContentType</name>
        <t>IANA is requested to allocate an entry to the TLS <tt>ContentType</tt>
registry, for the <tt>return_routability_check(TBD2)</tt> message defined in
this document.  IANA is requested to set the <tt>DTLS_OK</tt> column to <tt>Y</tt> and
to add the following note prior to the table:</t>
        <ul empty="true">
          <li>
            <t>NOTE: The return_routability_check content type is only
applicable to DTLS 1.2 and 1.3.</t>
          </li>
        </ul>
      </section>
      <section anchor="new-tls-extensiontype">
        <name> New TLS ExtensionType</name>
        <t>IANA is requested to allocate the extension code point (TBD1) for the <tt>rrc</tt>
extension to the <tt>TLS ExtensionType Values</tt> registry as described in
<xref target="tbl-ext"/>.</t>
        <table align="left" anchor="tbl-ext">
          <name>rrc entry in the TLS ExtensionType Values registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Extension Name</th>
              <th align="left">TLS 1.3</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
              <th align="left">Comment</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">rrc</td>
              <td align="left">CH, SH</td>
              <td align="left">Y</td>
              <td align="left">N</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="new-rrc-message-type-sub-registry">
        <name>New RRC Message Type Sub-registry</name>
        <t>IANA is requested to create a new registry for RRC Message Types within the TLS Parameters registry group <xref target="IANA.tls-parameters"/>.
This registry will be administered under the "Expert Review" policy (<xref section="4.5" sectionFormat="of" target="RFC8126"/>).</t>
        <t>Follow the procedures in <xref section="16" sectionFormat="of" target="I-D.ietf-tls-rfc8447bis"/> to submit registration requests.</t>
        <t>Each entry in the registry must include the following fields:</t>
        <dl newline="true">
          <dt>Value:</dt>
          <dd>
            <t>A (decimal) number in the range 0 to 253</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description of the RRC message</t>
          </dd>
          <dt>DTLS-Only:</dt>
          <dd>
            <t>Whether the message applies only to DTLS.
Since RRC is only available in DTLS, this column will be set to <tt>Y</tt> for all the entries in this registry</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>Whether the message is recommended for implementations to support.
The semantics for this field is defined in <xref section="5" sectionFormat="of" target="RFC8447"/> and updated in <xref section="3" sectionFormat="of" target="I-D.ietf-tls-rfc8447bis"/></t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>A reference to a publicly available specification for the value</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Any relevant notes or comments that relate to this entry</t>
          </dd>
        </dl>
        <t>The initial state of this sub-registry is as follows:</t>
        <table align="left" anchor="tbl-rrc-mt">
          <name>Initial Entries in RRC Message Type registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
              <th align="left">Comment</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">path_challenge</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">path_response</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">path_drop</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">3-253</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">254-255</td>
              <td align="left">Reserved for Private Use</td>
              <td align="left">Y</td>
              <td align="left"> </td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to add the following note for additional information regarding the use of RRC message codepoints in experiments:</t>
        <dl>
          <dt>Note:</dt>
          <dd>
            <t>As specified in <xref target="RFC8126"/>, assignments made in the Private Use space are not generally useful for broad interoperability.
Those making use of the Private Use range are responsible for ensuring that no conflicts occur within the intended scope of use.
For widespread experiments, provisional registrations (<xref section="4.13" sectionFormat="of" target="RFC8126"/>) are available.</t>
          </dd>
        </dl>
        <section anchor="designated-expert-instructions">
          <name>Designated Expert Instructions</name>
          <t>To enable a broadly informed review of registration decisions, it is recommended that multiple Designated Experts be appointed who are able to represent the perspectives of both the transport and security areas.</t>
          <t>In cases where a registration decision could be perceived as creating a conflict of interest for a particular Expert, that Expert <bcp14>SHOULD</bcp14> defer to the judgment of the other Experts.</t>
        </section>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank
Eric Rescorla,
Hanno Becker,
<contact fullname="Hanno Böck"/>,
Joe Clarke,
<contact fullname="Manuel Pégourié-Gonnard"/>,
Marco Tiloca,
Martin Thomson,
Mike Ounsworth,
Mohit Sahni,
Rich Salz,
Russ Housley,
Sean Turner, and
Yaron Sheffer
for their input to this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9146">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </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="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>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="IANA.tls-parameters" target="https://www.iana.org/assignments/tls-parameters">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-tls-rfc8447bis">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="29" month="May" year="2025"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   Recommended column of the selected TLS registries and adds a
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates the following RFCs: 3749, 5077, 4680, 5246,
   5705, 5878, 6520, 7301, and 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-13"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="I-D.irtf-t2trg-amplification-attacks">
          <front>
            <title>Amplification Attacks Using the Constrained Application Protocol (CoAP)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
              <organization>Energy Harvesting Solutions</organization>
            </author>
            <date day="8" month="December" year="2024"/>
            <abstract>
              <t>   Protecting Internet of Things (IoT) devices against attacks is not
   enough.  IoT deployments need to make sure that they are not used for
   Distributed Denial-of-Service (DDoS) attacks.  DDoS attacks are
   typically done with compromised devices or with amplification attacks
   using a spoofed source address.  This document gives examples of
   different theoretical amplification attacks using the Constrained
   Application Protocol (CoAP).  The goal with this document is to raise
   awareness and to motivate generic and protocol-specific
   recommendations on the usage of CoAP.  Some of the discussed attacks
   can be mitigated by not using NoSec or by using the Echo option.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-amplification-attacks-04"/>
        </reference>
        <reference anchor="I-D.ietf-uta-tls13-iot-profile">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="5" month="May" year="2025"/>
            <abstract>
              <t>   RFC 7925 offers guidance to developers on using TLS/DTLS 1.2 for
   Internet of Things (IoT) devices with resource constraints.  This
   document is a companion to RFC 7925, defining TLS/DTLS 1.3 profiles
   for IoT devices.  Additionally, it updates RFC 7925 with respect to
   the X.509 certificate profile and ciphersuite requirements.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/thomas-fossati/draft-tls13-iot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-14"/>
        </reference>
      </references>
    </references>
    <?line 795?>



  </back>
  <!-- ##markdown-source:
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
/P3c2LOGnoOnRfEhZYvi2/F0XRnh5wg4sLIQkb95BIYOr9CgG2+1dttaTLGN
UzZIXzt58/bVH3jm4idA/pU6bkHzGcHkDWDCASjJYEB91E9Z6Dc61I6A+4ad
dUshfg64hx5stErYTkcIASmW6xV8U8xJyZBrCA6Ah9Kl6+BT6u9//7vGuAHg
iDJA3fqS/LopK1LbD3ZG9J0F0fs4XYEu/x7pZHvP/RZlpqy293blK7RM7CL6
YLb39lyLhtJIjm7vPXSNwXCopiaC9x/tjLS+/xVqQ/qbr/ce6K/uUxOY3e4e
jJxs730dNEHeOGr0F9Js5I1NcNwG2Q5Twh5eHf3ZtYZuv95R12jpIfUgAX6n
VA2aG+ACY8x3KoRNG8c9iFqIvr0bPkVU33bAcOMBZb4HqJNK8h1GTcg1zUOE
v+mmEf7EpKC3Ny1y4prvSF+0fegMaM9736+t38itYl/f0AgXtc8Pw0bX3+Ha
NkzuO8Q3dbmv7wS8CRAoneffb6E/cAv7oADa91uf4pVb10o9qyuUuI1mhFwO
cX/jyy2GtgRVgZkrOTRb3Aw01RYh24b6UFtF5SEqARhIfY1PhgZn3ojss9Vj
aAS07C0YKvcu+1GHgdw0Lojb2LAWACBEL5hj4aIkg2KVs8fjzOHFGQmiA+cw
eokOI315x/uHlPqzM1d0dQEyIwNxbYgjeufXKHCIkUOA/h7xoOKXBy6kvDsI
+e82M0LcedfROGyAMgr9Uhl62kF7vyA+FvhbUomrMAT/5d3xU73dqFd7jTXF
VuS+Ul/pg7zvuyMjqgDFlv1dYv9lLHmmprrA8IZ3laOyBwue1hg3w7CN7EIx
Jd3eu/YGe0PooHY1iyw6mpAgEC4UsoS1sp+xO9TFIgXxFSEIUBMmaxhjB3Gx
So11ypeMnyjtpjBCb6Mh3VmawpviXGOVNU+cDGe5cOFcvORnFXDlfWh9BqQ4
4EMxXXT7kI9cLLxRb9W9rRnhLxxXAfZCfQF6ApVqb65HFQUaYLqvisqQAkFO
4bnJTRllo8BFC5oa7nOMcfJO+AFdqhfRmvWPi6LOkrZSvYpQ/QO7xzkrRjqp
jZs3ydoCqG8FW0WOGkZCy6KO9AHl4RLG8kTkRpE956jwZDz+Af/59GeiH8M/
9NIV/3OcoySugMbHXv6Tnk5T0U3L5qV7txnpXuclHOnfcaCbPjKS39IvHOmt
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
2Fw0ST5k20wA2elE/W/yMnY4l4YAAA==

-->

</rfc>
