<?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.26 (Ruby 3.3.6) -->
<?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-13" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <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-13"/>
    <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="March" day="25"/>
    <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 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 then goes on describing 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.</t>
    </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 arbitrary data.</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 ignore
messages with an unknown <tt>msg_type</tt>.
(Naturally, implementation <bcp14>MUST</bcp14> be able to parse and understand the three RRC message types defined in this document.)</t>
    </section>
    <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 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 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 and a spoofed source address, 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 reliable 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 whether 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 update <bcp14>MUST</bcp14> stop sending
any buffered application data, or limit the data sent to the unvalidated
address to the anti-amplification limit.</t>
      <t>It then initiates the return routability check that proceeds as described
either in <xref target="enhanced"/> or <xref target="regular"/>, depending on whether the off-path
attacker scenario described in <xref target="off-path"/> is to be taken into account or not.</t>
      <t>(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.)</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, see <xref target="timer-choice"/>, is started.</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.</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-and-privacy-considerations">
      <name>Security and Privacy 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>
      <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="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>
            </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>
            </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 sub-registry for RRC Message Types in the TLS
Parameters registry <xref target="IANA.tls-parameters"/>, with the policy "Standards Action"
<xref target="RFC8126"/>.</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Value:</dt>
          <dd>
            <t>A number in the range from 0 to 255 (decimal)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>a brief description of the message</t>
          </dd>
          <dt>DTLS-Only:</dt>
          <dd>
            <t>RRC is only available in DTLS, therefore this column will be set to <tt>Y</tt> for
all the entries in this registry</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>a reference document</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">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">path_challenge</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">path_response</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">path_drop</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">3-253</td>
              <td align="left">Unassigned</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">RFCthis</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>Issues against this document are tracked at https://github.com/tlswg/dtls-rrc/issues</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank
Hanno Becker,
<contact fullname="Hanno Böck"/>,
<contact fullname="Manuel Pégourié-Gonnard"/>,
Marco Tiloca,
Martin Thomson,
Mohit Sahni,
Rich Salz,
Yaron Sheffer and
Sean Turner
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>
      </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="3" month="March" 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-13"/>
        </reference>
      </references>
    </references>
    <?line 760?>

<section anchor="history">
      <name>History</name>
      <t><cref>RFC EDITOR: PLEASE REMOVE THIS SECTION</cref></t>
      <t>draft-ietf-tls-dtls-rrc-10:</t>
      <ul spacing="normal">
        <li>
          <t>WGLC comments from Marco Tiloca</t>
        </li>
        <li>
          <t>Change registration policy for new RRC messages to STD action (from expert review)</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-09:</t>
      <ul spacing="normal">
        <li>
          <t>Refresh document while queueing for WGLC</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-08</t>
      <ul spacing="normal">
        <li>
          <t>Refresh document while queueing for WGLC</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-07</t>
      <ul spacing="normal">
        <li>
          <t>Fix ambiguous wording around timer settings</t>
        </li>
        <li>
          <t>Clarify that the detailed protocol flow describes "basic" RRC</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-06</t>
      <ul spacing="normal">
        <li>
          <t>Add Achim as co-author</t>
        </li>
        <li>
          <t>Added IANA registry for RRC message types (#14)</t>
        </li>
        <li>
          <t>Small fix in the path validation algorithm (#15)</t>
        </li>
        <li>
          <t>Renamed <tt>path_delete</tt> to <tt>path_drop</tt> (#16)</t>
        </li>
        <li>
          <t>Added an "attacker model" section (#17, #31, #44, #45, #48)</t>
        </li>
        <li>
          <t>Add criteria for choosing between basic and enhanced path validation (#18)</t>
        </li>
        <li>
          <t>Reorganise Section 4 a bit (#19)</t>
        </li>
        <li>
          <t>Small fix in Path Response/Drop Requirements section (#20)</t>
        </li>
        <li>
          <t>Add privacy considerations wrt CID reuse (#30)</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-05</t>
      <ul spacing="normal">
        <li>
          <t>Added text about off-path packet forwarding</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-04</t>
      <ul spacing="normal">
        <li>
          <t>Re-submitted draft to fix references</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-03</t>
      <ul spacing="normal">
        <li>
          <t>Added details for challenge-response exchange</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-02</t>
      <ul spacing="normal">
        <li>
          <t>Undo the TLS flags extension for negotiating RRC, use a new extension type</t>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-01</t>
      <ul spacing="normal">
        <li>
          <t>Use the TLS flags extension for negotiating RRC</t>
        </li>
        <li>
          <t>Enhanced IANA consideration section</t>
        </li>
        <li>
          <t>Expanded example section</t>
        </li>
        <li>
          <t>Revamp message layout:
          </t>
          <ul spacing="normal">
            <li>
              <t>Use 8-byte fixed size cookies</t>
            </li>
            <li>
              <t>Explicitly separate path challenge from response</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-00</t>
      <ul spacing="normal">
        <li>
          <t>Draft name changed after WG adoption</t>
        </li>
      </ul>
      <t>draft-tschofenig-tls-dtls-rrc-01</t>
      <ul spacing="normal">
        <li>
          <t>Removed text that overlapped with draft-ietf-tls-dtls-connection-id</t>
        </li>
      </ul>
      <t>draft-tschofenig-tls-dtls-rrc-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial version</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
5DXl6v8BHkl2N5WAAAA=

-->

</rfc>
