<?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.25 (Ruby 3.1.3) -->
<?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-08" category="std" consensus="true" submissionType="IETF" updates="6347, 9147" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.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-08"/>
    <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>Arm Limited</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="07"/>
    <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, 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 TLS 1.3 handshake shown in <xref target="fig-handshake"/>, a client
and a server successfully negotiate support for CID as well as 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 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 "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
Hanno Becker,
<contact fullname="Hanno Böck"/>,
<contact fullname="Manuel Pégourié-Gonnard"/>,
Martin Thomson,
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>
          </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" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Arm Limited</organization>
            </author>
            <date day="6" month="July" 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-05"/>
        </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-08</t>
      <ul spacing="normal">
        <li>Refresh document while queueing for WGLC</li>
      </ul>
      <t>draft-ietf-tls-dtls-rrc-07</t>
      <ul spacing="normal">
        <li>Fix ambiguous wording around timer settings</li>
        <li>Clarify that the detailed protocol flow describes "basic" RRC</li>
      </ul>
      <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:
H4sIAAAAAAAAA9V923IbR7Lge31FLRWxIm0AEinJ9tCy51AUNWIc3Vakx+t1
eMQCugD2UaMbp6ubFIbUfMu8nh/YD5j5sc1bVVdfQFG2d2IXEZaJRl2ysvJe
Wdnj8Vhd7OsHSlVpldl9/dZWdZnrt0VdmWmapdVaH57b2Xs9L0r99PTFid6d
7GmTJ/7LA2Wm09LCIPRgU3+VFLPcLGGGpDTzapzaaj6uMjdO8J+ynI3vf6Nm
prKLolzva1clalbkzuaudvu6KmurXD1dps6lRV6tVzDQ8dHpM1WvEugETb56
8PDrkf7D7sOvlUpXJfVx1d79+3+4v6dMac2+PrGzugSI1GVRvl+URb3a1wCz
em/X8CThFYz027eHI314/FQpV8FC35msyGG6tXVqle4rrcv5zCauWmfyVOuq
mEV/pnli88o/cEVZlXbuwvf1svW1KtNZaDwrlkvoG35N8yzNwzSAw6VZrdJ8
wU+UqavzokSYxtAUej2f6FM3Oy/mNk8X8FhrRvpzk+fWdX8rC1yCTdKqKOmB
XZo029fn1HpShdb/tlh+mOS2aiY6mOh/L03tojkOZufpMnoqgxl8/B6f9kc5
nehnhXOmSqNxTs+LpXGtH4pyYfL0r/C1yGGicqlfpMu0skk8UUX9JnPu92+m
XE4AnUoBPmHTEUknRy+e7eutt88Oq/PUbSk1Ho+1mcIWmFml1Ck8RBzXuAXa
rewsnaeANaNLpuoyoupZ4IraWVgNbF1e2Q+VLuYAiVWHBeBwhgDr46d6G+hp
B5vAXPWson7QSj81lVmUZqlPS5O7FZCKfmHWtgy0qreRKHfUqiyAsopMX9gS
WcAFPgQWnPBKlmmSZFapO/o4r8oiqWl6pY5zvTXLDLDOzGRbQuXOZghevoDl
OT9ZtAaTw6IAf9iCOLu0M2ASnTplZvB8laXu3Cb6Mq3OaSnnNlvJ4vWjcVWv
MjvS6cROgAPqcmb18RttkqS0zo38I1zwSFVh7X6VI51YB8AZxl/UEVcc/4bd
JhpkjMkXsFVVoXBr9SNNAOgZLOMcWMbmhHKjL0wJomcNqzEOsVgAPgnkLJ3b
Kl1avwRcs3KW5A1MADjEp8fFqUfSSL86OIVxpsDuiCSYFbkXYCKUuMza1Rpg
vUhnwEvqNXQvtf1gAHMAKOA2qxOrLaznvHCVXhZCWLjCZZ1V6ficsA+T/wgD
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
PvY4TT45lwfc62x5ubP6P044pxCXfQAA

-->

</rfc>
