<?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.1 (Ruby 3.2.2) -->
<?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-10" category="std" consensus="true" submissionType="IETF" updates="6347, 9147" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.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-10"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig" role="editor">
      <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="2023" month="October" day="09"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>DTLS, RRC, CID</keyword>
    <abstract>
      <?line 45?>

<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 51?>

<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>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 protocol messages.</t>
      <t>The 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 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-model">
      <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>
        <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 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>
        <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 attack 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 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>
        <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>
        <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. The <tt>return_routability_check</tt> content type is only
applicable to DTLS 1.2 and 1.3.</t>
      </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-255</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </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 and
Rich Salz
for their input to this document.</t>
    </section>
  </middle>
  <back>
    <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="http://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="12" month="April" year="2023"/>
            <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-02"/>
        </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">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="14" month="September" year="2023"/>
            <abstract>
              <t>   This document is a companion to RFC 7925 and defines TLS/DTLS 1.3
   profiles for Internet of Things devices.  It also updates RFC 7925
   with regards to the X.509 certificate profile.

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

<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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

-->

</rfc>
