<?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.6.13 (Ruby 3.1.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-06" category="std" consensus="true" submissionType="IETF" updates="6347, 9147" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.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-06"/>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig" role="editor">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@arm.com</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>Arm Limited</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="06"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>DTLS, RRC, CID</keyword>
    <abstract>
      <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>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>In "classical" DTLS, selecting a security context of an incoming DTLS record is
accomplished with the help of the 5-tuple, i.e. source IP address, source port,
transport protocol, destination IP address, and destination port.  Changes to
this 5 tuple can happen for a variety reasons over the lifetime of the DTLS
session.  In the IoT context, NAT rebinding is common with sleepy devices.
Other examples include end host mobility and multi-homing.  Without CID, 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.  As a result, the DTLS handshake has to be re-run.  Of course, it is
not necessary to re-run the full handshake if session resumption is supported
and negotiated.</t>
      <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 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.  This document standardizes a return
routability check (RRC) as part of the DTLS protocol itself.</t>
      <t>The return routability check is performed by the receiving peer before the
CID-to-IP address/port binding is updated in that peer's session state
database.  This is done in order to provide more confidence to the receiving
peer that the sending peer is reachable at the indicated address and port.</t>
      <t>Note however that, irrespective of CID, if RRC has been successfully negotiated
by the peers, path validation can be used at any time by either endpoint. For
instance, an endpoint might use RRC to check that a peer is still in possession
of its 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>
      <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>
    </section>
    <section anchor="rrc-extension">
      <name>RRC Extension</name>
      <t>The use of RRC is negotiated via the <tt>rrc</tt> DTLS-only extension.  On connecting,
the client includes the <tt>rrc</tt> extension in its ClientHello if it wishes to use
RRC.  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>
      <t>Note that the RRC extension applies to both DTLS 1.2 and DTLS 1.3.</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, a 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 or additions 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>.</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 of the enclosing UDP datagram different from the one
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.</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>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.</li>
        <li>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.</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>Attackers 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">
              <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>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"/>).</li>
        <li>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"/>).</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) 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">
                <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">
                <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">
                <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 264,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,320 260,314.4 260,325.6 " fill="black" transform="rotate(180,264,320)"/>
                <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">
                <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, 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>The receiver creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</li>
          <li>The message is sent to the observed new address and a timer T (see
<xref target="timer-choice"/>) is started.</li>
          <li>The peer endpoint 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>.</li>
          <li>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.</li>
          <li>If T expires the peer address binding is not updated.</li>
        </ol>
      </section>
      <section anchor="enhanced">
        <name>Enhanced</name>
        <ol spacing="normal" type="1"><li>The receiver creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</li>
          <li>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.</li>
          <li>
            <t>If the path is still functional, the peer endpoint 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>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.</li>
              <li>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 endpoint echoes the cookie value in the response.</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>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.</li>
              <li>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"/>.</li>
            </ul>
          </li>
          <li>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"/>.</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>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.)</li>
              <li>The transmission of subsequent <tt>path_challenge</tt> messages <bcp14>SHOULD</bcp14> be paced to
decrease the chance of loss.</li>
              <li>Each <tt>path_challenge</tt> message <bcp14>MUST</bcp14> contain random data.</li>
            </ul>
          </li>
          <li>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.</li>
        </ul>
      </section>
      <section anchor="path-response-reqs">
        <name>Path Response/Drop Requirements</name>
        <ul spacing="normal">
          <li>The responder <bcp14>MUST NOT</bcp14> delay sending an elicited <tt>path_response</tt> or
<tt>path_drop</tt> messages.</li>
          <li>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>.</li>
          <li>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.</li>
          <li>The initiator <bcp14>MUST</bcp14> silently discard any invalid <tt>path_response</tt> or
<tt>path_drop</tt> it receives.</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, a value of 1s <bcp14>SHOULD</bcp14> be used.</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>The example TLS 1.3 handshake shown in <xref target="fig-handshake"/> shows a client
and a server negotiating the support for CID and for the RRC extension.</t>
      <figure anchor="fig-handshake">
        <name>Message Flow for Full TLS 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 an unilaterally used
CIDs. 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 his new IP address.</t>
      <figure anchor="fig-rrc-example">
        <name>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 "expert review"
<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
Achim Kraus,
Hanno Becker,
Hanno Boeck,
Manuel Pegourie-Gonnard,
Mohit Sahni and
Rich Salz
for their input to this document.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="T. Fossati" initials="T." surname="Fossati">
              <organization/>
            </author>
            <author fullname="A. Kraus" initials="A." surname="Kraus">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
            <date/>
          </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">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <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>
        <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">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <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="I-D.ietf-uta-tls13-iot-profile">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati">
              <organization>Arm Limited</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <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.

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

-->

</rfc>
