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

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

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

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

uint64 Cookie;

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

struct {
    rrc_msg_type msg_type;
    select (return_routability_check.msg_type) {
        case path_challenge: Cookie;
        case path_response:  Cookie;
        case path_drop:      Cookie;
    };
} return_routability_check;
]]></sourcecode>
      </figure>
      <t>Future extensions to the RRC sub-protocol may
define new message types.
Implementations <bcp14>MUST</bcp14> be able to parse and understand the three RRC message types defined in this document.
In addition, implementations <bcp14>MUST</bcp14> be able to parse and gracefully ignore messages with an unknown <tt>msg_type</tt>.</t>
    </section>
    <section anchor="path-validation">
      <name>Path Validation Procedure</name>
      <t>A receiver that observes the peer's address change <bcp14>MUST</bcp14> stop sending
any buffered application data, or limit the data sent to the unvalidated
address to the anti-amplification limit.
It then initiates the return routability check.</t>
      <t>This document describes two kinds of checks: basic (<xref target="regular"/>) and enhanced (<xref target="enhanced"/>).
The choice of one or the other depends on whether the off-path attacker scenario described in <xref target="off-path"/> is to be considered.
(The decision on what strategy to choose depends mainly on the threat model, but
may also be influenced by other considerations.  Examples of impacting factors
include: the need to minimise implementation complexity, privacy concerns, and the
need to reduce the time it takes to switch path.  The choice may be offered as
a configuration option to the user of the TLS implementation.)</t>
      <t>After the path validation procedure is completed, any pending send operation is
resumed to the bound peer address.</t>
      <t><xref target="path-challenge-reqs"/> and <xref target="path-response-reqs"/> list the requirements for
the initiator and responder roles, broken down per protocol phase.</t>
      <t>Please note that the presented algorithms are not designed to handle nested rebindings, i.e. rebindings that may occur while a path is being validated following a previous rebinding.
If this happens (which should rarely occur), the <tt>path_response</tt> message is dropped, the address validation times out, and the address will not be updated.
A new path validation will start when new data is received.</t>
      <t>Also note that in the event of a NAT rebind, the initiator and responder will have different views of the path: the initiator will see a new path, while the responder will still see the old one.</t>
      <section anchor="regular">
        <name>Basic</name>
        <t>The basic return routability check comprises the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The receiver (i.e., the initiator) creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</t>
          </li>
          <li>
            <t>The message is sent to the observed new address and a timer T (see
<xref target="timer-choice"/>) is started.</t>
          </li>
          <li>
            <t>The peer (i.e., the responder) cryptographically verifies the received
<tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and responds by echoing the cookie value in a
<tt>return_routability_check</tt> message of type <tt>path_response</tt>.</t>
          </li>
          <li>
            <t>When the initiator receives the <tt>return_routability_check</tt>
message  of type <tt>path_response</tt> and verifies that it contains the sent cookie, it updates the peer
address binding.</t>
          </li>
          <li>
            <t>If T expires the peer address binding is not updated.</t>
          </li>
        </ol>
      </section>
      <section anchor="enhanced">
        <name>Enhanced</name>
        <t>The enhanced return routability check comprises the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The receiver (i.e., the initiator) creates a <tt>return_routability_check</tt> message of
type <tt>path_challenge</tt> and places the unpredictable cookie into the message.</t>
          </li>
          <li>
            <t>The message is sent to the previously valid address, which corresponds to the
old path. Additionally, a timer T is started, see <xref target="timer-choice"/>.</t>
          </li>
          <li>
            <t>If the path is still functional, the peer (i.e., the responder) cryptographically verifies the received
<tt>return_routability_check</tt> message of
type <tt>path_challenge</tt>.
The action to be taken depends on whether the path through which the message was received remains the preferred one.
            </t>
            <ul spacing="normal">
              <li>
                <t>If the path through which the message was received is preferred,
a <tt>return_routability_check</tt> message of type <tt>path_response</tt> <bcp14>MUST</bcp14> be returned. (Note that, from the responder's perspective, the preferred path and the old path coincide in the event of a NAT rebind.)</t>
              </li>
              <li>
                <t>If the path through which the message was received is no longer preferred,
a <tt>return_routability_check</tt> message of type <tt>path_drop</tt> <bcp14>MUST</bcp14> be returned.  (Note that the responder must have initiated a voluntary path migration in order to know that this path is no longer the preferred one.)</t>
              </li>
            </ul>
            <t>
In either case, the peer echoes the cookie value in the response.</t>
          </li>
          <li>
            <t>The initiator receives and verifies that the <tt>return_routability_check</tt>
message contains the previously sent cookie. The actions taken by the
initiator differ based on the received message:
            </t>
            <ul spacing="normal">
              <li>
                <t>When a <tt>return_routability_check</tt> message of type <tt>path_response</tt> was received,
the initiator <bcp14>MUST</bcp14> continue using the previously valid address, i.e., no switch
to the new path takes place and the peer address binding is not updated.</t>
              </li>
              <li>
                <t>When a <tt>return_routability_check</tt> message of type <tt>path_drop</tt> was received,
the initiator <bcp14>MUST</bcp14> perform a return routability check on the observed new
address, as described in <xref target="regular"/>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>If T expires the peer address binding is not updated. In this case, the
initiator <bcp14>MUST</bcp14> perform a return routability check on the observed new
address, as described in <xref target="regular"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="path-challenge-reqs">
        <name> Path Challenge Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The initiator <bcp14>MAY</bcp14> send multiple <tt>return_routability_check</tt> messages of type
<tt>path_challenge</tt> to cater for packet loss on the probed path.
            </t>
            <ul spacing="normal">
              <li>
                <t>Each <tt>path_challenge</tt> <bcp14>SHOULD</bcp14> go into different transport packets.  (Note that
the DTLS implementation may not have control over the packetization done by
the transport layer.)</t>
              </li>
              <li>
                <t>The transmission of subsequent <tt>path_challenge</tt> messages <bcp14>SHOULD</bcp14> be paced to
decrease the chance of loss.</t>
              </li>
              <li>
                <t>Each <tt>path_challenge</tt> message <bcp14>MUST</bcp14> contain random data.</t>
              </li>
              <li>
                <t>In general, the number of "backup" <tt>path_challenge</tt> messages depends on the application, since some are more sensitive to latency caused by changes in the path than others.
In the absence of application-specific requirements, the initiator can send a <tt>path_challenge</tt> message once per round-trip time (RTT), up to the anti-amplification limit.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The initiator <bcp14>MAY</bcp14> use padding using the record padding mechanism available in
DTLS 1.3 (and in DTLS 1.2, when CID is enabled on the sending direction) up
to the anti-amplification limit to probe if the path MTU (PMTU) for the new
path is still acceptable.</t>
          </li>
        </ul>
      </section>
      <section anchor="path-response-reqs">
        <name>Path Response/Drop Requirements</name>
        <ul spacing="normal">
          <li>
            <t>The responder <bcp14>MUST NOT</bcp14> delay sending an elicited <tt>path_response</tt> or
<tt>path_drop</tt> messages.</t>
          </li>
          <li>
            <t>The responder <bcp14>MUST</bcp14> send exactly one <tt>path_response</tt> or <tt>path_drop</tt> message
for each valid <tt>path_challenge</tt> it received.</t>
          </li>
          <li>
            <t>The responder <bcp14>MUST</bcp14> send the <tt>path_response</tt> or the <tt>path_drop</tt> to the address from
which the corresponding <tt>path_challenge</tt> was received.  This ensures that the
path is functional in both directions.</t>
          </li>
          <li>
            <t>The initiator <bcp14>MUST</bcp14> silently discard any invalid <tt>path_response</tt> or
<tt>path_drop</tt> it receives.</t>
          </li>
        </ul>
        <t>Note that RRC does not cater for PMTU discovery on the reverse path.  If the
responder wants to do PMTU discovery using RRC, it should initiate a new path
validation procedure.</t>
      </section>
      <section anchor="timer-choice">
        <name>Timer Choice</name>
        <t>When setting T, implementations are cautioned that the new path could have a
longer RTT than the original.</t>
        <t>In settings where there is external information about the RTT of the active
path (i.e., the old path), implementations <bcp14>SHOULD</bcp14> use T = 3xRTT.</t>
        <t>If an implementation has no way to obtain information regarding the RTT of the
active path, T <bcp14>SHOULD</bcp14> be set to 1s.</t>
        <t>Profiles for specific deployment environments -- for example, constrained
networks <xref target="I-D.ietf-uta-tls13-iot-profile"/> -- <bcp14>MAY</bcp14> specify a different, more
suitable value for T.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Example</name>
      <t><xref target="fig-handshake"/> shows an example of a DTLS 1.3 handshake in which a client and a server successfully negotiate support for both the CID and RRC extensions.</t>
      <figure anchor="fig-handshake">
        <name>Message Flow for Full DTLS Handshake</name>
        <artwork><![CDATA[
       Client                                           Server

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

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

              +  Indicates noteworthy extensions sent in the
                 previously noted message.

              {} Indicates 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 this 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 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 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
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="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="logging-anomalous-events">
        <name>Logging Anomalous Events</name>
        <t>Logging of RRC operations at both ends of the protocol can be generally useful for the users of an implementation.
In particular, for security information and event management (SIEM) and troubleshooting purposes, it is strongly advised that implementations collect statistics about any unsuccessful RRC operations, as they could represent security-relevant events when they coincide with attempts by an attacker to interfere with the end-to-end path.
It is also advisable to log instances where multiple responses to a single <tt>path_challenge</tt> are received, as this could suggest an off-path attack attempt.</t>
        <t>In some cases, the presence of frequent path probes could indicate a problem with the stability of the path.
This information can be used to identify any issues with the underlying connectivity service.</t>
      </section>
      <section anchor="middlebox-interference">
        <name>Middlebox Interference</name>
        <t>Since the DTLS 1.3 encrypted packet's record type is opaque to on-path observers, RRC messages are immune to middlebox interference when using DTLS 1.3.
In contrast, DTLS 1.2 RRC messages that are not wrapped in the <tt>tls12_cid</tt> record (e.g., in the server-to-client direction if the server negotiated a zero-length CID) have the <tt>return_routability_check</tt> content type in plain text, making them susceptible to interference (e.g., dropping of <tt>path_challenge</tt> messages), which would hinder the RRC functionality altogether.
Therefore, when using RRC in DTLS 1.2 and middlebox interference is a concern, it is recommended to enable CID in both directions.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Note that the return routability checks do not protect against flooding of
third-parties if the attacker is on-path, as the attacker can redirect the
return routability checks to the real peer (even if those datagrams are
cryptographically authenticated).  On-path adversaries can, in general, pose a
harm to connectivity.</t>
      <t>If the RRC challenger reuses a cookie that was previously used in the same connection and does not implement anti-replay protection (see <xref section="4.5.1" sectionFormat="of" target="RFC9147"/> and <xref section="4.1.2.6" sectionFormat="of" target="RFC6347"/>), an attacker could replay a previously sent <tt>path_response</tt> message containing the reused cookie to mislead the challenger into switching to a path of the attacker's choosing.
To prevent this, RRC cookies must be <em>freshly</em> generated using a reliable source of entropy <xref target="RFC4086"/>.
See <xref section="C.1" sectionFormat="of" target="RFC8446"/> for guidance.</t>
      <section anchor="attacker">
        <name>Attacker Model</name>
        <t>Two classes of attackers are considered, off-path and on-path, with increasing
capabilities (see <xref target="fig-attacker-capabilities"/>) partly following terminology
introduced in QUIC (<xref section="21.1" sectionFormat="of" target="RFC9000"/>):</t>
        <ul spacing="normal">
          <li>
            <t>An off-path attacker is not on the original path between the DTLS peers, but
is able to observe packets on the original path and has a faster forwarding path
compared to the DTLS peers, which allows it to make copies of the observed
packets, race its copies to either peer and consistently win the race.</t>
          </li>
          <li>
            <t>An on-path attacker is on the original path between the DTLS peers and is
therefore capable, compared to the off-path attacker, to also drop and delay
records at will.</t>
          </li>
        </ul>
        <t>Note that, in general, attackers cannot craft DTLS records in a way that would
successfully pass verification, due to the cryptographic protections applied by
the DTLS record layer.</t>
        <figure anchor="fig-attacker-capabilities">
          <name>Attacker capabilities</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="448" viewBox="0 0 448 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 40,32 L 40,80" fill="none" stroke="black"/>
                <path d="M 40,112 L 40,160" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,256" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,256" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,128" fill="none" stroke="black"/>
                <path d="M 416,160 L 416,256" fill="none" stroke="black"/>
                <path d="M 40,32 L 64,32" fill="none" stroke="black"/>
                <path d="M 80,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 392,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 80,64 L 376,64" fill="none" stroke="black"/>
                <path d="M 80,96 L 376,96" fill="none" stroke="black"/>
                <path d="M 80,128 L 376,128" fill="none" stroke="black"/>
                <path d="M 40,160 L 64,160" fill="none" stroke="black"/>
                <path d="M 80,160 L 376,160" fill="none" stroke="black"/>
                <path d="M 80,192 L 376,192" fill="none" stroke="black"/>
                <path d="M 80,224 L 376,224" fill="none" stroke="black"/>
                <path d="M 80,256 L 376,256" fill="none" stroke="black"/>
                <path d="M 392,256 L 416,256" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,256 388,250.4 388,261.6" fill="black" transform="rotate(180,392,256)"/>
                <polygon class="arrowhead" points="400,32 388,26.4 388,37.6" fill="black" transform="rotate(180,392,32)"/>
                <polygon class="arrowhead" points="72,160 60,154.4 60,165.6" fill="black" transform="rotate(0,64,160)"/>
                <polygon class="arrowhead" points="72,32 60,26.4 60,37.6" fill="black" transform="rotate(0,64,32)"/>
                <g class="text">
                  <text x="120" y="52">Inspect</text>
                  <text x="204" y="52">un-encrypted</text>
                  <text x="292" y="52">portions</text>
                  <text x="116" y="84">Inject</text>
                  <text x="36" y="100">off-path</text>
                  <text x="120" y="116">Reorder</text>
                  <text x="116" y="148">Modify</text>
                  <text x="212" y="148">un-authenticated</text>
                  <text x="316" y="148">portions</text>
                  <text x="416" y="148">on-path</text>
                  <text x="112" y="180">Delay</text>
                  <text x="108" y="212">Drop</text>
                  <text x="132" y="244">Manipulate</text>
                  <text x="192" y="244">the</text>
                  <text x="264" y="244">packetization</text>
                  <text x="344" y="244">layer</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
    .--> .------------------------------------. <--.
    |    | Inspect un-encrypted portions      |    |
    |    +------------------------------------+    |
    |    | Inject                             |    |
off-path +------------------------------------+    |
    |    | Reorder                            |    |
    |    +------------------------------------+    |
    |    | Modify un-authenticated portions   | on-path
    '--> +------------------------------------+    |
         | Delay                              |    |
         +------------------------------------+    |
         | Drop                               |    |
         +------------------------------------+    |
         | Manipulate the packetization layer |    |
         '------------------------------------' <--'
]]></artwork>
          </artset>
        </figure>
        <t>RRC is designed to defend against the following attacks:</t>
        <ul spacing="normal">
          <li>
            <t>On-path and off-path attackers that try to create an amplification attack by
spoofing the source address of the victim (<xref target="sec-amplification"/>).</t>
          </li>
          <li>
            <t>Off-path attackers that try to put themselves on-path (<xref target="off-path"/>),
provided that the enhanced path validation algorithm is used (<xref target="enhanced"/>).</t>
          </li>
        </ul>
        <section anchor="sec-amplification">
          <name>Amplification</name>
          <t>Both on-path and off-path attackers can send a packet (either by modifying it
on the fly, or by copying, injecting, and racing it, respectively) with the
source address modified to that of a victim host.  If the traffic generated by
the server in response is larger compared to the received packet (e.g., a CoAP
server returning an MTU's worth of data from a 20-bytes GET request <xref target="I-D.irtf-t2trg-amplification-attacks"/>) the
attacker can use the server as a traffic amplifier toward the victim.</t>
          <section anchor="mitigation-strategy">
            <name>Mitigation Strategy</name>
            <t>When receiving a packet with a known CID that has a source address different from the one currently associated with the DTLS connection, an
RRC-capable endpoint will not send a (potentially large) response but instead a
small <tt>path_challenge</tt> message to the victim host.  Since the host is not able
to decrypt it and generate a valid <tt>path_response</tt>, the address validation
fails, which in turn keeps the original address binding unaltered.</t>
            <t>Note that in case of an off-path attacker, the original packet still reaches
the intended destination; therefore, an implementation could use a different
strategy to mitigate the attack.</t>
          </section>
        </section>
        <section anchor="off-path">
          <name>Off-Path Packet Forwarding</name>
          <t>An off-path attacker that can observe packets might forward copies of
genuine packets to endpoints over a different path. If the copied packet arrives before
the genuine packet, this will appear as a path change, like in a genuine NAT rebinding occurrence. Any genuine
packet will be discarded as a duplicate. If the attacker is able to
continue forwarding packets, it might be able to cause migration to a
path via the attacker. This places the attacker on-path, giving it
the ability to observe or drop all subsequent packets.</t>
          <t>This style of attack relies on the attacker using a path that has
the same or better characteristics (e.g., due to a more favourable service level agreements) as the direct path between
endpoints. The attack is more effective if relatively few packets are
sent or if packet loss coincides with the attempted attack.</t>
          <t>A data packet received on the original path that increases the
maximum received packet number will cause the endpoint to move back
to that path. Therefore, eliciting packets on this path increases the
likelihood that the attack is unsuccessful. Note however that, unlike QUIC,
DTLS has no "non-probing" packets so this would require application specific
mechanisms.</t>
          <section anchor="mitigation-strategy-1">
            <name>Mitigation Strategy</name>
            <t><xref target="fig-off-path"/> illustrates the case where a receiver receives a
packet with a new source address. In order
to determine that this path change was not triggered
by an off-path attacker, the receiver will send an RRC message of type
<tt>path_challenge</tt> (1) on the old path.</t>
            <figure anchor="fig-off-path">
              <name>Off-Path Packet Forwarding Scenario</name>
              <artset>
                <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="256" viewBox="0 0 256 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 64,80 L 64,176" fill="none" stroke="black"/>
                    <path d="M 64,208 L 64,304" fill="none" stroke="black"/>
                    <path d="M 112,48 L 112,112" fill="none" stroke="black"/>
                    <path d="M 112,272 L 112,336" fill="none" stroke="black"/>
                    <path d="M 200,48 L 200,112" fill="none" stroke="black"/>
                    <path d="M 200,272 L 200,336" fill="none" stroke="black"/>
                    <path d="M 248,80 L 248,304" fill="none" stroke="black"/>
                    <path d="M 112,48 L 200,48" fill="none" stroke="black"/>
                    <path d="M 64,80 L 112,80" fill="none" stroke="black"/>
                    <path d="M 200,80 L 248,80" fill="none" stroke="black"/>
                    <path d="M 112,112 L 200,112" fill="none" stroke="black"/>
                    <path d="M 24,176 L 120,176" fill="none" stroke="black"/>
                    <path d="M 8,208 L 104,208" fill="none" stroke="black"/>
                    <path d="M 112,272 L 200,272" fill="none" stroke="black"/>
                    <path d="M 64,304 L 112,304" fill="none" stroke="black"/>
                    <path d="M 200,304 L 248,304" fill="none" stroke="black"/>
                    <path d="M 112,336 L 200,336" fill="none" stroke="black"/>
                    <path d="M 8,208 L 24,176" fill="none" stroke="black"/>
                    <path d="M 104,208 L 120,176" fill="none" stroke="black"/>
                    <g class="text">
                      <text x="72" y="36">new</text>
                      <text x="240" y="36">old</text>
                      <text x="76" y="52">path</text>
                      <text x="236" y="52">path</text>
                      <text x="156" y="84">Receiver</text>
                      <text x="64" y="196">Attacker?</text>
                      <text x="156" y="308">Sender</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art" align="center"><![CDATA[
        new                  old
        path  .----------.  path
              |          |
        .-----+ Receiver +-----.
        |     |          |     |
        |     '----------'     |
        |                      |
        |                      |
        |                      |
   .----+------.               |
  / Attacker? /                |
 '------+----'                 |
        |                      |
        |                      |
        |                      |
        |     .----------.     |
        |     |          |     |
        '-----+  Sender  +-----'
              |          |
              '----------'
]]></artwork>
              </artset>
            </figure>
            <t>Three cases need to be considered:</t>
            <t>Case 1: The old path is dead (e.g., due to a NAT rebinding), which leads to a
timeout of (1).</t>
            <t>As shown in <xref target="fig-old-path-dead"/>, a <tt>path_challenge</tt> (2) needs to be sent on
the new path.  If the sender replies with a <tt>path_response</tt> on the new path
(3), the switch to the new path is considered legitimate.</t>
            <figure anchor="fig-old-path-dead">
              <name>Old path is dead</name>
              <artset>
                <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="384" viewBox="0 0 384 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 80,64 L 80,112" fill="none" stroke="black"/>
                    <path d="M 80,144 L 80,320" fill="none" stroke="black"/>
                    <path d="M 96,80 L 96,176" fill="none" stroke="black"/>
                    <path d="M 96,208 L 96,304" fill="none" stroke="black"/>
                    <path d="M 112,96 L 112,224" fill="none" stroke="black"/>
                    <path d="M 112,256 L 112,288" fill="none" stroke="black"/>
                    <path d="M 144,48 L 144,112" fill="none" stroke="black"/>
                    <path d="M 144,272 L 144,336" fill="none" stroke="black"/>
                    <path d="M 232,48 L 232,112" fill="none" stroke="black"/>
                    <path d="M 232,272 L 232,336" fill="none" stroke="black"/>
                    <path d="M 296,64 L 296,112" fill="none" stroke="black"/>
                    <path d="M 296,144 L 296,176" fill="none" stroke="black"/>
                    <path d="M 144,48 L 232,48" fill="none" stroke="black"/>
                    <path d="M 80,64 L 136,64" fill="none" stroke="black"/>
                    <path d="M 232,64 L 296,64" fill="none" stroke="black"/>
                    <path d="M 96,80 L 144,80" fill="none" stroke="black"/>
                    <path d="M 112,96 L 144,96" fill="none" stroke="black"/>
                    <path d="M 144,112 L 232,112" fill="none" stroke="black"/>
                    <path d="M 56,176 L 72,176" fill="none" stroke="black"/>
                    <path d="M 88,176 L 104,176" fill="none" stroke="black"/>
                    <path d="M 120,176 L 288,176" fill="none" stroke="black"/>
                    <path d="M 304,176 L 320,176" fill="none" stroke="black"/>
                    <path d="M 40,208 L 72,208" fill="none" stroke="black"/>
                    <path d="M 88,208 L 104,208" fill="none" stroke="black"/>
                    <path d="M 120,208 L 304,208" fill="none" stroke="black"/>
                    <path d="M 144,272 L 232,272" fill="none" stroke="black"/>
                    <path d="M 112,288 L 136,288" fill="none" stroke="black"/>
                    <path d="M 96,304 L 144,304" fill="none" stroke="black"/>
                    <path d="M 80,320 L 144,320" fill="none" stroke="black"/>
                    <path d="M 144,336 L 232,336" fill="none" stroke="black"/>
                    <path d="M 40,208 L 56,176" fill="none" stroke="black"/>
                    <path d="M 304,208 L 320,176" fill="none" stroke="black"/>
                    <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(90,296,176)"/>
                    <polygon class="arrowhead" points="144,288 132,282.4 132,293.6" fill="black" transform="rotate(0,136,288)"/>
                    <polygon class="arrowhead" points="144,64 132,58.4 132,69.6" fill="black" transform="rotate(0,136,64)"/>
                    <g class="text">
                      <text x="88" y="36">new</text>
                      <text x="288" y="36">old</text>
                      <text x="92" y="52">path</text>
                      <text x="284" y="52">path</text>
                      <text x="188" y="84">Receiver</text>
                      <text x="260" y="84">......</text>
                      <text x="280" y="100">.</text>
                      <text x="280" y="116">.</text>
                      <text x="24" y="132">path-</text>
                      <text x="80" y="132">3</text>
                      <text x="280" y="132">.</text>
                      <text x="296" y="132">1</text>
                      <text x="328" y="132">path-</text>
                      <text x="36" y="148">response</text>
                      <text x="280" y="148">.</text>
                      <text x="344" y="148">challenge</text>
                      <text x="280" y="164">.</text>
                      <text x="184" y="196">NAT</text>
                      <text x="296" y="196">X</text>
                      <text x="352" y="196">timeout</text>
                      <text x="280" y="228">.</text>
                      <text x="112" y="244">2</text>
                      <text x="144" y="244">path-</text>
                      <text x="280" y="244">.</text>
                      <text x="160" y="260">challenge</text>
                      <text x="280" y="260">.</text>
                      <text x="280" y="276">.</text>
                      <text x="280" y="292">.</text>
                      <text x="188" y="308">Sender</text>
                      <text x="260" y="308">.....'</text>
                    </g>
                  </svg>
                </artwork>
                <artwork type="ascii-art" align="center"><![CDATA[
          new                      old
          path    .----------.    path
          .------>|          +-------.
          | .-----+ Receiver +...... |
          | | .---+          |     . |
          | | |   '----------'     . |
 path-    3 | |                    . 1 path-
 response | | |                    . | challenge
          | | |                    . |
       .--|-+-|----------------------v--.
      /   |   |       NAT            X / timeout
     '----|-+-|-----------------------'
          | | |                    .
          | | 2 path-              .
          | | | challenge          .
          | | |   .----------.     .
          | | '-->|          |     .
          | '-----+  Sender  +.....'
          '-------+          |
                  '----------'
]]></artwork>
              </artset>
            </figure>
            <t>Case 2: The old path is alive but not preferred.</t>
            <t>This case is shown in <xref target="fig-old-path-not-preferred"/> whereby the sender
replies with a <tt>path_drop</tt> message (2) on the old path.  This triggers
the receiver to send a <tt>path_challenge</tt> (3) on the new path. The sender
will reply with a <tt>path_response</tt> (4) on the new path, thus providing
confirmation for the path migration.</t>
            <figure anchor="fig-old-path-not-preferred">
              <name>Old path is not preferred</name>
              <artset>
                <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="424" viewBox="0 0 424 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 104,64 L 104,112" fill="none" stroke="black"/>
                    <path d="M 104,144 L 104,320" fill="none" stroke="black"/>
                    <path d="M 120,80 L 120,176" fill="none" stroke="black"/>
                    <path d="M 120,216 L 120,304" fill="none" stroke="black"/>
                    <path d="M 136,96 L 136,224" fill="none" stroke="black"/>
                    <path d="M 136,256 L 136,288" fill="none" stroke="black"/>
                    <path d="M 168,48 L 168,112" fill="none" stroke="black"/>
                    <path d="M 168,272 L 168,336" fill="none" stroke="black"/>
                    <path d="M 256,48 L 256,112" fill="none" stroke="black"/>
                    <path d="M 256,272 L 256,336" fill="none" stroke="black"/>
                    <path d="M 288,96 L 288,112" fill="none" stroke="black"/>
                    <path d="M 288,144 L 288,288" fill="none" stroke="black"/>
                    <path d="M 304,80 L 304,176" fill="none" stroke="black"/>
                    <path d="M 304,208 L 304,304" fill="none" stroke="black"/>
                    <path d="M 320,64 L 320,224" fill="none" stroke="black"/>
                    <path d="M 320,256 L 320,320" fill="none" stroke="black"/>
                    <path d="M 168,48 L 256,48" fill="none" stroke="black"/>
                    <path d="M 104,64 L 160,64" fill="none" stroke="black"/>
                    <path d="M 264,64 L 320,64" fill="none" stroke="black"/>
                    <path d="M 120,80 L 168,80" fill="none" stroke="black"/>
                    <path d="M 256,80 L 304,80" fill="none" stroke="black"/>
                    <path d="M 136,96 L 168,96" fill="none" stroke="black"/>
                    <path d="M 256,96 L 288,96" fill="none" stroke="black"/>
                    <path d="M 168,112 L 256,112" fill="none" stroke="black"/>
                    <path d="M 24,176 L 96,176" fill="none" stroke="black"/>
                    <path d="M 112,176 L 128,176" fill="none" stroke="black"/>
                    <path d="M 144,176 L 176,176" fill="none" stroke="black"/>
                    <path d="M 264,176 L 280,176" fill="none" stroke="black"/>
                    <path d="M 296,176 L 312,176" fill="none" stroke="black"/>
                    <path d="M 328,176 L 416,176" fill="none" stroke="black"/>
                    <path d="M 8,208 L 96,208" fill="none" stroke="black"/>
                    <path d="M 112,208 L 128,208" fill="none" stroke="black"/>
                    <path d="M 144,208 L 160,208" fill="none" stroke="black"/>
                    <path d="M 248,208 L 280,208" fill="none" stroke="black"/>
                    <path d="M 296,208 L 312,208" fill="none" stroke="black"/>
                    <path d="M 328,208 L 400,208" fill="none" stroke="black"/>
                    <path d="M 168,272 L 256,272" fill="none" stroke="black"/>
                    <path d="M 136,288 L 160,288" fill="none" stroke="black"/>
                    <path d="M 264,288 L 288,288" fill="none" stroke="black"/>
                    <path d="M 120,304 L 168,304" fill="none" stroke="black"/>
                    <path d="M 256,304 L 304,304" fill="none" stroke="black"/>
                    <path d="M 104,320 L 168,320" fill="none" stroke="black"/>
                    <path d="M 256,320 L 320,320" fill="none" stroke="black"/>
                    <path d="M 168,336 L 256,336" fill="none" stroke="black"/>
                    <path d="M 8,208 L 24,176" fill="none" stroke="black"/>
                    <path d="M 160,208 L 176,176" fill="none" stroke="black"/>
                    <path d="M 248,208 L 264,176" fill="none" stroke="black"/>
                    <path d="M 400,208 L 416,176" fill="none" stroke="black"/>
                    <polygon class="arrowhead" points="272,288 260,282.4 260,293.6" fill="black" transform="rotate(180,264,288)"/>
                    <polygon class="arrowhead" points="272,64 260,58.4 260,69.6" fill="black" transform="rotate(180,264,64)"/>
                    <polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(0,160,288)"/>
                    <polygon class="arrowhead" points="168,64 156,58.4 156,69.6" fill="black" transform="rotate(0,160,64)"/>
                    <g class="text">
                      <text x="112" y="36">new</text>
                      <text x="312" y="36">old</text>
                      <text x="116" y="52">path</text>
                      <text x="308" y="52">path</text>
                      <text x="212" y="84">Receiver</text>
                      <text x="48" y="132">path-</text>
                      <text x="104" y="132">4</text>
                      <text x="224" y="132">path-</text>
                      <text x="288" y="132">1</text>
                      <text x="60" y="148">response</text>
                      <text x="240" y="148">challenge</text>
                      <text x="64" y="196">NAT</text>
                      <text x="88" y="196">A</text>
                      <text x="344" y="196">NAT</text>
                      <text x="368" 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 | | |
            | | |                  | | |
  .---------|-+-|----.          .--|-+-|-----------.
 /    NAT A |   |   /          /   |   | NAT B    /
'-----------|---|--'          '----|-+-|---------'
            | | |                  | | |
            | | 3 path-            | | 2 path-
            | | | challenge        | | | drop
            | | |   .----------.   | | |
            | | '-->|          |<--' | |
            | '-----+  Sender  +-----' |
            '-------+          +-------'
                    '----------'
]]></artwork>
              </artset>
            </figure>
            <t>Case 3: The old path is alive and preferred.</t>
            <t>This is most likely the result of an off-path attacker trying to place itself
on path.  The receiver sends a <tt>path_challenge</tt> on the old path and the sender
replies with a <tt>path_response</tt> (2) on the old path. The interaction is shown in
<xref target="fig-old-path-preferred"/>. This results in the connection not being migrated
to the new path, thus thwarting the attack.</t>
            <figure anchor="fig-old-path-preferred">
              <name>Old path is preferred</name>
              <artset>
                <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="352" viewBox="0 0 352 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                    <path d="M 64,80 L 64,176" fill="none" stroke="black"/>
                    <path d="M 64,224 L 64,320" fill="none" stroke="black"/>
                    <path d="M 112,48 L 112,112" fill="none" stroke="black"/>
                    <path d="M 112,288 L 112,352" fill="none" stroke="black"/>
                    <path d="M 200,48 L 200,112" fill="none" stroke="black"/>
                    <path d="M 200,288 L 200,352" fill="none" stroke="black"/>
                    <path d="M 232,96 L 232,240" fill="none" stroke="black"/>
                    <path d="M 232,272 L 232,304" fill="none" stroke="black"/>
                    <path d="M 248,80 L 248,176" fill="none" stroke="black"/>
                    <path d="M 248,208 L 248,320" fill="none" stroke="black"/>
                    <path d="M 264,64 L 264,112" fill="none" stroke="black"/>
                    <path d="M 264,144 L 264,336" fill="none" stroke="black"/>
                    <path d="M 112,48 L 200,48" fill="none" stroke="black"/>
                    <path d="M 200,64 L 264,64" fill="none" stroke="black"/>
                    <path d="M 64,80 L 112,80" fill="none" stroke="black"/>
                    <path d="M 200,80 L 248,80" fill="none" stroke="black"/>
                    <path d="M 208,96 L 232,96" fill="none" stroke="black"/>
                    <path d="M 112,112 L 200,112" fill="none" stroke="black"/>
                    <path d="M 32,176 L 120,176" fill="none" stroke="black"/>
                    <path d="M 208,176 L 224,176" fill="none" stroke="black"/>
                    <path d="M 240,176 L 256,176" fill="none" stroke="black"/>
                    <path d="M 272,176 L 312,176" fill="none" stroke="black"/>
                    <path d="M 192,208 L 224,208" fill="none" stroke="black"/>
                    <path d="M 240,208 L 256,208" fill="none" stroke="black"/>
                    <path d="M 272,208 L 296,208" fill="none" stroke="black"/>
                    <path d="M 8,224 L 96,224" fill="none" stroke="black"/>
                    <path d="M 112,288 L 200,288" fill="none" stroke="black"/>
                    <path d="M 200,304 L 232,304" fill="none" stroke="black"/>
                    <path d="M 64,320 L 112,320" fill="none" stroke="black"/>
                    <path d="M 200,320 L 248,320" fill="none" stroke="black"/>
                    <path d="M 208,336 L 264,336" fill="none" stroke="black"/>
                    <path d="M 112,352 L 200,352" fill="none" stroke="black"/>
                    <path d="M 8,224 L 32,176" fill="none" stroke="black"/>
                    <path d="M 96,224 L 120,176" fill="none" stroke="black"/>
                    <path d="M 192,208 L 208,176" fill="none" stroke="black"/>
                    <path d="M 296,208 L 312,176" fill="none" stroke="black"/>
                    <polygon class="arrowhead" points="216,336 204,330.4 204,341.6" fill="black" transform="rotate(180,208,336)"/>
                    <polygon class="arrowhead" points="216,96 204,90.4 204,101.6" fill="black" transform="rotate(180,208,96)"/>
                    <g class="text">
                      <text x="72" y="36">new</text>
                      <text x="256" y="36">old</text>
                      <text x="76" y="52">path</text>
                      <text x="252" y="52">path</text>
                      <text x="156" y="84">Receiver</text>
                      <text x="264" y="132">1</text>
                      <text x="296" y="132">path-</text>
                      <text x="312" y="148">challenge</text>
                      <text x="68" y="196">off-path</text>
                      <text x="248" 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 /          /   |NAT|    /
  / attacker /          '----|-+-|---'
 '------+---'                | | |
        |                    | | |
        |           path-    2 | |
        |           response | | |
        |     .----------.   | | |
        |     |          +---' | |
        '-----+  Sender  +-----' |
              |          |<------'
              '----------'
]]></artwork>
              </artset>
            </figure>
            <t>Note that this defense is imperfect, but this is not considered a serious
problem. If the path via the attacker is reliably faster than the
old path despite multiple attempts to use that old path, it
is not possible to distinguish between an attack and an improvement
in routing.</t>
            <t>An endpoint could also use heuristics to improve detection of this
style of attack. For instance, NAT rebinding is improbable if
packets were recently received on the old path.
Endpoints can also look for duplicated
packets. Conversely, a change in connection ID is more likely to
indicate an intentional migration rather than an attack. Note that
changes in connection IDs are supported in DTLS 1.3 but not in
DTLS 1.2.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>When using DTLS 1.3, peers <bcp14>SHOULD</bcp14> avoid using the same CID on multiple network
paths, in particular when initiating connection migration or when probing a new
network path, as described in <xref target="path-validation"/>, as an adversary can otherwise
correlate the communication interaction across those different paths.  DTLS 1.3
provides mechanisms to ensure that a new CID can always be used.  In
general, an endpoint should proactively send a RequestConnectionId message to ask for new
CIDs as soon as the pool of spare CIDs is depleted (or goes below a threshold).
Also, in case a peer might have exhausted available CIDs, a migrating endpoint
could include NewConnectionId in packets sent on the new path to make sure that
the subsequent path validation can use fresh CIDs.</t>
      <t>Note that DTLS 1.2 does not offer the ability to request new CIDs during the session lifetime since CIDs have the same life-span
of the connection.  Therefore, deployments that use DTLS in multihoming
environments <bcp14>SHOULD</bcp14> refuse to use CIDs with DTLS 1.2
and switch to DTLS 1.3 if the correlation privacy threat is a concern.</t>
    </section>
    <section anchor="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 in the TLS <tt>ContentType</tt> registry within the "Transport Layer Security (TLS) Parameters" registry group <xref target="IANA.tls-parameters"/> for the <tt>return_routability_check(TBD2)</tt> message defined in this document.
IANA is requested to set the <tt>DTLS_OK</tt> column to <tt>Y</tt> and to add the following note prior to the table:</t>
        <ul empty="true">
          <li>
            <t>NOTE: The return_routability_check content type is only
applicable to DTLS 1.2 and 1.3.</t>
          </li>
        </ul>
      </section>
      <section anchor="new-tls-extensiontype">
        <name>New TLS ExtensionType</name>
        <t>IANA is requested to allocate the extension code point (TBD1) for the <tt>rrc</tt>
extension to the <tt>TLS ExtensionType Values</tt> registry as described in
<xref target="tbl-ext"/>.</t>
        <table align="left" anchor="tbl-ext">
          <name>rrc entry in the TLS ExtensionType Values registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Extension Name</th>
              <th align="left">TLS 1.3</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
              <th align="left">Comment</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">rrc</td>
              <td align="left">CH, SH</td>
              <td align="left">Y</td>
              <td align="left">N</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="new-tls-rrc-message-type-registry">
        <name>New "TLS RRC Message Type" Registry</name>
        <t>IANA is requested to create a new registry "TLS RRC Message Types" within the Transport Layer Security (TLS) Parameters registry group <xref target="IANA.tls-parameters"/>.
This registry will be administered under the "Expert Review" policy (<xref section="4.5" sectionFormat="of" target="RFC8126"/>).</t>
        <t>Follow the procedures in <xref section="16" sectionFormat="of" target="I-D.ietf-tls-rfc8447bis"/> to submit registration requests.</t>
        <t>Each entry in the registry must include the following fields:</t>
        <dl newline="true">
          <dt>Value:</dt>
          <dd>
            <t>A (decimal) number in the range 0 to 253</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description of the RRC message</t>
          </dd>
          <dt>DTLS-Only:</dt>
          <dd>
            <t>Whether the message applies only to DTLS.
Since RRC is only available in DTLS, this column will be set to <tt>Y</tt> for all the current entries in this registry.
Future work may define new RRC Message Types that also apply to TLS.</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>Whether the message is recommended for implementations to support.
The semantics for this field is defined in <xref section="5" sectionFormat="of" target="RFC8447"/> and updated in <xref section="3" sectionFormat="of" target="I-D.ietf-tls-rfc8447bis"/></t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>A reference to a publicly available specification for the value</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Any relevant notes or comments that relate to this entry</t>
          </dd>
        </dl>
        <t>The initial state of this sub-registry is as follows:</t>
        <table align="left" anchor="tbl-rrc-mt">
          <name>Initial Entries in TLS RRC Message Type registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
              <th align="left">Comment</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">path_challenge</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">path_response</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">path_drop</td>
              <td align="left">Y</td>
              <td align="left">Y</td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">3-253</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">254-255</td>
              <td align="left">Reserved for Private Use</td>
              <td align="left">Y</td>
              <td align="left"> </td>
              <td align="left">RFCthis</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to add the following note for additional information regarding the use of RRC message codepoints in experiments:</t>
        <dl>
          <dt>Note:</dt>
          <dd>
            <t>As specified in <xref target="RFC8126"/>, assignments made in the Private Use space are not generally useful for broad interoperability.
Those making use of the Private Use range are responsible for ensuring that no conflicts occur within the intended scope of use.
For widespread experiments, provisional registrations (<xref section="4.13" sectionFormat="of" target="RFC8126"/>) are available.</t>
          </dd>
        </dl>
        <section anchor="designated-expert-instructions">
          <name>Designated Expert Instructions</name>
          <t>To enable a broadly informed review of registration decisions, it is recommended that multiple Designated Experts be appointed who are able to represent the perspectives of both the transport and security areas.</t>
          <t>In cases where a registration decision could be perceived as creating a conflict of interest for a particular Expert, that Expert <bcp14>SHOULD</bcp14> defer to the judgment of the other Experts.</t>
        </section>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank
Colin Perkins,
Deb Cooley,
Eric Rescorla,
Éric Vyncke,
Erik Kline,
Hanno Becker,
<contact fullname="Hanno Böck"/>,
Joe Clarke,
<contact fullname="Manuel Pégourié-Gonnard"/>,
Marco Tiloca,
Martin Thomson,
Mike Bishop,
Mike Ounsworth,
Mohamed Boucadair,
Mohit Sahni,
Rich Salz,
Russ Housley,
Sean Turner, and
Yaron Sheffer
for their input to this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9146">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="IANA.tls-parameters" target="https://www.iana.org/assignments/tls-parameters">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="I-D.ietf-tls-rfc8447bis">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="16" month="June" year="2025"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   Recommended column of the selected TLS registries and adds a
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates RFC 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-14"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="I-D.ietf-uta-tls13-iot-profile">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="5" month="May" year="2025"/>
            <abstract>
              <t>   RFC 7925 offers guidance to developers on using TLS/DTLS 1.2 for
   Internet of Things (IoT) devices with resource constraints.  This
   document is a companion to RFC 7925, defining TLS/DTLS 1.3 profiles
   for IoT devices.  Additionally, it updates RFC 7925 with respect to
   the X.509 certificate profile and ciphersuite requirements.

Discussion Venues

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-14"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="I-D.irtf-t2trg-amplification-attacks">
          <front>
            <title>Amplification Attacks Using the Constrained Application Protocol (CoAP)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
              <organization>Energy Harvesting Solutions</organization>
            </author>
            <date day="18" month="June" year="2025"/>
            <abstract>
              <t>   Protecting Internet of Things (IoT) devices against attacks is not
   enough.  IoT deployments need to make sure that they are not used for
   Distributed Denial-of-Service (DDoS) attacks.  DDoS attacks are
   typically done with compromised devices or with amplification attacks
   using a spoofed source address.  This document gives examples of
   different theoretical amplification attacks using the Constrained
   Application Protocol (CoAP).  The goal with this document is to raise
   awareness and to motivate generic and protocol-specific
   recommendations on the usage of CoAP.  Some of the discussed attacks
   can be mitigated by not using NoSec or by using the Echo option.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-amplification-attacks-05"/>
        </reference>
      </references>
    </references>
    <?line 812?>



  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
