<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-westerlund-tsvwg-sctp-dtls-chunk-02" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="SCTP DTLS Chunk">Stream Control Transmission Protocol (SCTP) DTLS Chunk</title>
    <seriesInfo name="Internet-Draft" value="draft-westerlund-tsvwg-sctp-dtls-chunk-02"/>
    <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
      <organization>Ericsson</organization>
      <address>
        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
      <organization>Ericsson</organization>
      <address>
        <email>claudio.porfiri@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Transport</area>
    <workgroup>TSVWG</workgroup>
    <abstract>
      <?line 71?>

<t>This document describes a method for adding Cryptographic protection
to the Stream Control Transmission Protocol (SCTP). The SCTP DTLS
chunk defined in this document is intended to enable communications
privacy for applications that use SCTP as their transport protocol and
allows applications to communicate in a way that is designed to
prevent eavesdropping and detect tampering or message forgery.</t>
      <t>Applications using SCTP DTLS chunk can use all transport
features provided by SCTP and its extensions but with some limitations.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-westerlund-tsvwg-sctp-dtls-chunk/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Area Working Group (tsvwg) Working Group mailing list (<eref target="mailto:tsvwg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tsvwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tsvwg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/gloinul/draft-westerlund-tsvwg-sctp-DTLS-chunk"/>.</t>
    </note>
  </front>
  <middle>
    <?line 83?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a DTLS chunk for the Stream Control
   Transmission Protocol (SCTP), as defined in <xref target="RFC9260"/>.</t>
      <t>This specification defines the actual DTLS chunk, how to enable
   it usage, how it interacts with the SCTP association establishment
   to enable endpoint authentication, key-establishment, and key
   updates.</t>
      <t>The DTLS chunk is designed to enable mutual
   authentication of endpoints, data confidentiality, data origin
   authentication, data integrity protection, and data replay
   protection for SCTP packets after the SCTP association has been
   established. It is dependent on a key management function that is
   defined seperately to achieve all these capabilities. The
   key management function uses an API to provision the SCTP
   association's DTLS chunk protection with key-material to enable and
   rekey the protection operations.</t>
      <t>Applications using SCTP DTLS chunk can use most transport features
   provided by SCTP and its extensions. However, there can be some
   limitations or additional requirements for them to function such as
   those noted for SCTP restart and use of Dynamic Address
   Reconfiguration, see <xref target="sec-asconf"/> and <xref target="sec-restart"/>. Due to its
   level of integration as discussed in next section it will provide
   its security functions on all content of the SCTP packet, and will
   thus not impact the potential to utilize any SCTP functionalities
   or extensions that are possible to use between two SCTP peers with
   full security and SCTP association state.</t>
      <t>DTLS is considered version 1.3 as specified in <xref target="RFC9147"/> whereas
   other versions are explicitely not part of this document.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The DTLS chunk is defined as a method for secure and confidential
transfer for SCTP packets.  This is implemented inside the SCTP
protocol, in a sublayer between the SCTP common header handling and
the SCTP chunk handling.  Once an SCTP packet has been received and
the SCTP common header has been used to identify the SCTP association,
the DTLS chunk is sent to the DTLS Protection Operator that will
return the SCTP payload containing the unprotected SCTP chunks, those
chunks will then be handled according to their SCTP protocol
specifications. <xref target="sctp-DTLS-chunk-layering"/> illustrates the DTLS
chunk layering in regard to SCTP and the Upper Layer Protocol (ULP).</t>
        <figure anchor="sctp-DTLS-chunk-layering">
          <name>DTLS Chunk Layering in Regard to SCTP and ULP</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="496" viewBox="0 0 496 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,336" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,96" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,96" fill="none" stroke="black"/>
                <path d="M 184,96 L 184,336" fill="none" stroke="black"/>
                <path d="M 224,208 L 224,272" fill="none" stroke="black"/>
                <path d="M 320,32 L 320,96" fill="none" stroke="black"/>
                <path d="M 400,208 L 400,272" fill="none" stroke="black"/>
                <path d="M 440,80 L 440,224" fill="none" stroke="black"/>
                <path d="M 8,32 L 136,32" fill="none" stroke="black"/>
                <path d="M 152,32 L 320,32" fill="none" stroke="black"/>
                <path d="M 320,64 L 424,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 424,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 336,128 L 352,128" fill="none" stroke="black"/>
                <path d="M 200,176 L 216,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 224,208 L 400,208" fill="none" stroke="black"/>
                <path d="M 192,240 L 216,240" fill="none" stroke="black"/>
                <path d="M 408,240 L 424,240" fill="none" stroke="black"/>
                <path d="M 8,272 L 184,272" fill="none" stroke="black"/>
                <path d="M 224,272 L 400,272" fill="none" stroke="black"/>
                <path d="M 200,304 L 216,304" fill="none" stroke="black"/>
                <path d="M 8,336 L 184,336" fill="none" stroke="black"/>
                <path d="M 184,272 L 200,304" fill="none" stroke="black"/>
                <path d="M 320,96 L 336,128" fill="none" stroke="black"/>
                <path d="M 184,208 L 200,176" fill="none" stroke="black"/>
                <path d="M 424,64 C 432.83064,64 440,71.16936 440,80" fill="none" stroke="black"/>
                <path d="M 424,240 C 432.83064,240 440,232.83064 440,224" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="416,240 404,234.4 404,245.6" fill="black" transform="rotate(180,408,240)"/>
                <polygon class="arrowhead" points="224,240 212,234.4 212,245.6" fill="black" transform="rotate(0,216,240)"/>
                <polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(180,192,240)"/>
                <g class="text">
                  <text x="228" y="52">DTLS</text>
                  <text x="264" y="52">1.3</text>
                  <text x="356" y="52">Keys</text>
                  <text x="72" y="68">ULP</text>
                  <text x="192" y="84">Key</text>
                  <text x="252" y="84">Management</text>
                  <text x="480" y="100">API</text>
                  <text x="380" y="116">User</text>
                  <text x="384" y="132">Level</text>
                  <text x="36" y="148">SCTP</text>
                  <text x="84" y="148">Chunks</text>
                  <text x="144" y="148">Handler</text>
                  <text x="396" y="148">Messages</text>
                  <text x="244" y="180">SCTP</text>
                  <text x="312" y="180">Unprotected</text>
                  <text x="392" y="180">Payload</text>
                  <text x="92" y="228">DTLS</text>
                  <text x="300" y="228">DTLS</text>
                  <text x="336" y="228">1.3</text>
                  <text x="96" y="244">Chunk</text>
                  <text x="96" y="260">Handler</text>
                  <text x="276" y="260">Protection</text>
                  <text x="356" y="260">Operator</text>
                  <text x="36" y="308">SCTP</text>
                  <text x="84" y="308">Header</text>
                  <text x="144" y="308">Handler</text>
                  <text x="244" y="308">SCTP</text>
                  <text x="304" y="308">Protected</text>
                  <text x="376" y="308">Payload</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+---------------+ +--------------------+
|               | |       DTLS 1.3     |  Keys
|      ULP      | |                    +-------------.
|               | |   Key Management   |              |
+---------------+-+---+----------------+            --+-- API
|                     |                 \    User     |
|                     |                  +-- Level    |
| SCTP Chunks Handler |                      Messages |
|                     |                               |
|                     | +-- SCTP Unprotected Payload  |
|                     |/                              |
+---------------------+    +---------------------+    |
|        DTLS         |    |       DTLS 1.3      |    |
|        Chunk        |<-->|                     |<--'
|       Handler       |    | Protection Operator |
+---------------------+    +---------------------+
|                     |\
| SCTP Header Handler | +-- SCTP Protected Payload
|                     |
+---------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Use of the DTLS chunk is defined per SCTP association.</t>
        <t>On the outgoing direction, once the SCTP stack has created the
unprotected SCTP packet payload containing control and/or DATA chunks,
that payload will be sent to the DTLS Protection Operator to be
protected. The format of the protected payload is a DTLS 1.3 record
encapsulated in a SCTP chunk which is named the DTLS chunk.</t>
        <t>The SCTP Protection Operator performs protection operations on the
whole unprotected SCTP packet payload, i.e., all chunks after the SCTP
common header. Information protection is kept during the lifetime of
the association and no information is sent unprotected except than the
initial SCTP handshake, DTLS handshake, the SCTP common
header, the SCTP DTLS chunk header, the INIT and INIT-ACK of an SCTP
association restart, and the SHUTDOWN-COMPLETE chunk.</t>
        <t>SCTP DTLS chunk capability is agreed by the peers at the
initialization of the SCTP association. Until the DTLS protection has
been keyed only plain text key-management traffic using a dedicated
PPID (4242) may flow, no ULP traffic. The key management function uses
an API to key the DTLS protection operation function. Usage of the
DTLS 1.3 handshake for initial mutual authentication and key
establishment as well as periodic re-authentication and rekeying with
Diffe-Hellman of the DTLS chunk protection is defied in a seperate
document <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>.</t>
        <t>When the endpoint authentication and key establishment has been
completed, the association is considered to be secured and the ULP is
informed about that. From this time on it's possible for the ULPs to
exchange data securely.</t>
        <t>A DTLS chunk will never be retransmitted, retransmission is implemented
by SCTP endpoint at chunk level as specified in <xref target="RFC9260"/>. DTLS replay
protection will be used to supress duplicated DTLS chunks, however a
failure to prevent replay will only result in duplicated SCTP chunks and
will be handled as duplicated chunks by SCTP endpoint in the same way
a duplicated SCTP packet with those SCTP chunks would have been.</t>
      </section>
      <section anchor="DTLS-engines">
        <name>DTLS Considerations</name>
        <t>The DTLS Chunk architecture splits DTLS 1.3 as shown in
<xref target="sctp-DTLS-chunk-layering"/>, where there's a Key Management functionality
on top of SCTP Chunks Handler and a Protection Operator functionality
interfacing DTLS Chunk Handler.</t>
        <t>Key Management is the set of data and procedures that take care of key
distribution, verification, and update, DTLS connection setup, update and
maintenance.</t>
        <t>Protection Operator functionality is the set of data and procedures
taking care of User Data encryption into DTLS Record and DTLS record
decryption into User Data.</t>
        <t>DTLS 1.3 operations requires to directly handshake messages
with the remote peer for connection setup and other features,
this kind of handshake is part of the Key Management functionality.
Key Management function achieves these features behaving as a SCTP User.
Key Management sends and receives its own data via the SCTP User Level interface.
Key Management's own data are distinguished from any other data by
means of a dedicated PPID using the value 4242 (see <xref target="iana-payload-protection-id"/>).</t>
        <t>Once the Key Management has established the DTLS 1.3 connection,
it can set the Protection Operator for User Data encryption/decription
via the API shown in <xref target="sctp-DTLS-chunk-layering"/>.</t>
        <t>DTLS 1.3 handshake messages, that are transported as SCTP
User Data with dedicated PPID = 4242, SHALL be sent and received as plain
DATA chunks.</t>
      </section>
      <section anchor="buffering">
        <name>SCTP DTLS Chunk Buffering and Flow Control</name>
        <t>DTLS 1.3 operations and SCTP are asynchronous, meaning that the
Protection Operator may deliver the decrypted SCTP Payload to the SCTP
endpoint without respecting the reception order.  It's up to SCTP
endpoint to reorder the chunks in the reception buffer and to take
care of the flow control according to what specified in
<xref target="RFC9260"/>. From SCTP perspective the DTLS chunk processing is part
of the transport network.</t>
        <t>Even though the above allows the implementors to adopt a
multithreading design of the Protection Operators, the actual
implementation should consider that out-of-order handling of SCTP
chunks is not desired and may cause false congestion signals and
trigger retransmissions.</t>
      </section>
      <section anchor="pmtu">
        <name>PMTU Considerations</name>
        <t>The addition of the DTLS chunk to SCTP reduces the room for payload,
due to the size of the DTLS chunk header, padding, and authentication
tag.  Thus, the SCTP layer creating the plain text payload needs to
know about the overhead to adjust its target payload size
appropriately.</t>
        <t>A path MTU discovery function in SCTP will need to know the actual
sent and received size of packets for the SCTP packets. This to
correctly handle PMTUD probe packets.</t>
        <t>From SCTP perspective, if there is a maximum size of plain text data
that can be protected by the Protection Operator that must be
communicated to SCTP. As such a limit will limit the PMTU for SCTP to
the maximum plain text plus DTLS chunk and algorithm overhead plus
the SCTP common header.</t>
      </section>
      <section anchor="congestion">
        <name>Congestion Control Considerations</name>
        <t>The SCTP mechanism for handling congestion control does depend on
successful data transfer for enlarging or reducing the congestion
window CWND (see <xref target="RFC9260"/> Section 7.2).</t>
        <t>It may happen that Protection Operator discards packets due to internal
checks or because it has detected a malicious attempt. As those
packets do not represent what the peer sent, it is acceptable to
ignore them, although in-situ modification on the path of a packet
resulting in discarding due to integrity failure will leave a gap, but
has to be accepted as part of the path behavior.</t>
        <t>The Protection Operator will not interfere with the SCTP congestion
control mechanism, this basically means that from SCTP perspective
the congestion control is exactly the same as how specified
in <xref target="RFC9260"/>.</t>
      </section>
      <section anchor="icmp">
        <name>ICMP Considerations</name>
        <t>The SCTP implementation will be responsible for handling ICMP messages
and their validation as specified in <xref target="RFC9260"/> Section 10. This
means that the ICMP validation needs to be done in relation to the
actual sent SCTP packets with the DTLS chunk and not the unprotected
payload.</t>
      </section>
      <section anchor="multipath">
        <name>Path Selection Considerations</name>
        <t>When an Association is multihomed there are multiple paths between
Endpoints.  The selection of the specific path to be used at a certain
time belongs to SCTP protocol that will decide according to
<xref target="RFC9260"/>.  The Protection Operator shall not influence the path
selection algorithm, actually the Protection Operator will not even
know what path is being used.</t>
        <t>Replay window for DTLS Sequence Number will need to take into account
that heartbeat (HB) chunks are sent concurrently over all paths in
multihomed Associations, thus it needs to be large enough to
accomodate latency differencies.</t>
      </section>
      <section anchor="sec-asconf">
        <name>Dynamic Address Reconfiguration Considerations</name>
        <t>When using Dynamic Address Reconfiguration <xref target="RFC5061"/> in an SCTP
association using DTLS Chunk the ASCONF chunk is protected, thus it
needs to be unprotected first, furthermore it MAY come from an unknown
IP Address.  In order to properly address the ASCONF chunk to the
relevant Association for being unprotected, Destination Address,
Source, Destination ports and VTag shall be used. If the
combination of those parameters is not unique the implementor MAY
choose to send the DTLS Chunk to all Associations that fit with the
parameters in order to find the right one. The association will
attempt de-protection operations on the DTLS chunk, and if that is
successful the ASCONF chunk can be processed.</t>
        <t>The section 4.1.1 of <xref target="RFC5061"/> specifies that ASCONF message are
required to be sent authenticated with SCTP-AUTH <xref target="RFC4895"/>.  For
SCTP associations using DTLS Chunk this results in the use of
redundant mechanism for Authentication with both SCTP-AUTH and the
DTLS Chunk. We recommend to amend <xref target="RFC5061"/> for including DTLS
Chunks as Authentication mechanism for ASCONF chunks.</t>
      </section>
      <section anchor="sec-restart">
        <name>SCTP Restart Considerations</name>
        <t>This section deals with the handling of an unexpected INIT chunk
during an Association lifetime as described in <xref target="RFC9260"/> section 5.2
with the purpose of achieving a Restart of the current Association.</t>
        <t>The SCTP Restart procedure is defined to maintain the security
characteristics of a SCTP Association using DTLS Chunk, this requires
that SCTP Restart procedure is modified in regards to how it is
described in <xref target="RFC9260"/>.</t>
        <t>In order to support SCTP Restart, the SCTP Endpoints shall allocate
and maintain dedicated DTLS connections, those connection will be
identified in the DTLS chunk with DCIs with the R (restart) bit set
(see <xref target="DTLS-chunk"/>).  Both SCTP Endpoints shall guarantee that
Restart DTLS connections and related keys are preserved for supporting
the SCTP Restart use case.</t>
        <t>In order to be available for SCTP Restart purposes, the Restart DTLS
connection must be kept in a well-known state so that both SCTP
Endpoints are aware of the DTLS sequence numbers and replay window. An
SCTP Endpoint SHALL NEVER use the SCTP Restart DTLS connection for any
other use case than SCTP Restart.</t>
        <t>The DTLS Restart Connections, the related key materials, the
information related to the sequence numbers and replay window SHALL be
stored in a safe way that survives the events that are causing SCTP
Restart procedure to be used, for instance a crash of the SCTP stack.</t>
        <t>The SCTP Restart handshakes INIT/INIT-ACK exactly as in legacy SCTP
whilst COOCKIE-ECHO/COOKIE-ACK SHALL be sent as DTLS chunk protected
using the keying material for the restart DTLS connection, that is the
DTLS Restart Connection and its DCI.</t>
        <t>A Restart DCI is identified by having the Restart Indicator bit set in
the DTLS Chunk (see <xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>).
There's exactly one active Restart DCI at a time, the newest. Whereas
a number of Restart DTLS connection MAY exist at the same time with
the purpose of replace the aging active Restart DTLS connection.</t>
        <figure anchor="DTLS-chunk-restart">
          <name>Handshake of SCTP Restart for DTLS in SCTP</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="536" viewBox="0 0 536 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 40,48 L 40,160" fill="none" stroke="black"/>
                <path d="M 408,48 L 408,160" fill="none" stroke="black"/>
                <path d="M 440,64 L 440,80" fill="none" stroke="black"/>
                <path d="M 440,128 L 440,144" fill="none" stroke="black"/>
                <path d="M 40,64 L 200,64" fill="none" stroke="black"/>
                <path d="M 256,64 L 400,64" fill="none" stroke="black"/>
                <path d="M 48,80 L 184,80" fill="none" stroke="black"/>
                <path d="M 272,80 L 408,80" fill="none" stroke="black"/>
                <path d="M 440,80 L 528,80" fill="none" stroke="black"/>
                <path d="M 40,128 L 112,128" fill="none" stroke="black"/>
                <path d="M 320,128 L 400,128" fill="none" stroke="black"/>
                <path d="M 48,144 L 112,144" fill="none" stroke="black"/>
                <path d="M 312,144 L 408,144" fill="none" stroke="black"/>
                <path d="M 440,144 L 520,144" fill="none" stroke="black"/>
                <path d="M 424,48 C 432.83064,48 440,55.16936 440,64" fill="none" stroke="black"/>
                <path d="M 424,96 C 432.83064,96 440,88.83064 440,80" fill="none" stroke="black"/>
                <path d="M 424,112 C 432.83064,112 440,119.16936 440,128" fill="none" stroke="black"/>
                <path d="M 424,160 C 432.83064,160 440,152.83064 440,144" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="408,128 396,122.4 396,133.6" fill="black" transform="rotate(0,400,128)"/>
                <polygon class="arrowhead" points="408,64 396,58.4 396,69.6" fill="black" transform="rotate(0,400,64)"/>
                <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
                <polygon class="arrowhead" points="56,80 44,74.4 44,85.6" fill="black" transform="rotate(180,48,80)"/>
                <g class="text">
                  <text x="40" y="36">Initiator</text>
                  <text x="408" y="36">Responder</text>
                  <text x="228" y="68">[INIT]</text>
                  <text x="472" y="68">Plain</text>
                  <text x="516" y="68">SCTP</text>
                  <text x="228" y="84">[INIT-ACK]</text>
                  <text x="136" y="132">[DTLS</text>
                  <text x="212" y="132">CHUNK(COOKIE</text>
                  <text x="292" y="132">ECHO)]</text>
                  <text x="488" y="132">Encrypted</text>
                  <text x="136" y="148">[DTLS</text>
                  <text x="212" y="148">CHUNK(COOKIE</text>
                  <text x="288" y="148">ACK)]</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
Initiator                                     Responder
    |                                             | -.
    +--------------------[INIT]------------------>|   | Plain SCTP
    |<-----------------[INIT-ACK]-----------------+   +-----------
    |                                             | -'
    |                                             | -.
    +---------[DTLS CHUNK(COOKIE ECHO)]---------->|   | Encrypted
    |<--------[DTLS CHUNK(COOKIE ACK)]------------+   +----------
    |                                             | -'

]]></artwork>
          </artset>
        </figure>
        <t>The <xref target="DTLS-chunk-restart"/> shows how the control chunks being
used for SCTP Association Restart are transported within DTLS in SCTP.</t>
        <t>Sending INIT and INIT-ACK plain text guarantees the compliance with
the legacy SCTP Restart, whilst the transport of the COOCKIE-ECHO
and COOCKIE-ACK by means of DTLS chunk ensures that the
peer requesting the restart has been previously validated.</t>
        <t>A restarted SCTP Association SHALL use the Restart DCI, thus the
Restart DTLS connection, for User Traffic until a new traffic
DTLS connection will be available.
The implementors SHOULD guarantee that a new replacement
Restart DTLS connection as well as a new Restart DCI are handshaked
as soon as possible so that the time when no Restart DCI are available
is kept to a minimum.</t>
      </section>
    </section>
    <section anchor="new-parameter-type">
      <name>New Parameter Type</name>
      <t>This section defines the new parameter type that will be used to
negotiate the use of the DTLS 1.3 chunk during
association setup. <xref target="sctp-DTLS-chunk-init-parameter"/> illustrates
the new parameter type.</t>
      <table anchor="sctp-DTLS-chunk-init-parameter">
        <name>New INIT/INIT-ACK Parameter</name>
        <thead>
          <tr>
            <th align="right">Parameter Type</th>
            <th align="left">Parameter Name</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">0x80xx</td>
            <td align="left">DTLS 1.3 Chunk Protected Association</td>
          </tr>
        </tbody>
      </table>
      <t>Note that the parameter format requires the receiver to ignore the
parameter and continue processing if the parameter is not understood.
This is accomplished (as described in <xref target="RFC9260"/>, Section 3.2.1.)  by
the use of the upper bits of the parameter type.</t>
      <section anchor="protectedassoc-parameter">
        <name>DTLS 1.3 Chunk Protected Association</name>
        <t>This parameter is only used to indicate the request and acknowledge of
support of DTLS 1.3 Chunk during INIT/INIT-ACK handshake.</t>
        <figure anchor="sctp-DTLS-chunk-init-options">
          <name>Protected Association Parameter</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="528" viewBox="0 0 528 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="80" y="84">Parameter</text>
                  <text x="140" y="84">Type</text>
                  <text x="168" y="84">=</text>
                  <text x="204" y="84">0x80XX</text>
                  <text x="360" y="84">Parameter</text>
                  <text x="428" y="84">Length</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Parameter Type = 0x80XX    |       Parameter Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Parameter Type: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value MUST be set to 0x80XX.</t>
          </dd>
          <dt>Parameter Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This field has value equal to 4.</t>
          </dd>
        </dl>
        <t>RFC-Editor Note: Please replace 0x08XX with the actual parameter type
value assigned by IANA and then remove this note.</t>
      </section>
    </section>
    <section anchor="new-chunk-types">
      <name>New Chunk Types</name>
      <section anchor="DTLS-chunk">
        <name>DTLS Chunk (DTLS)</name>
        <t>This section defines the new chunk type that will be used to
transport the DTLS 1.3 record containing protected SCTP payload.
<xref target="sctp-DTLS-chunk-newchunk-crypt"/> illustrates the new chunk type.</t>
        <table anchor="sctp-DTLS-chunk-newchunk-crypt">
          <name>DTLS Chunk Type</name>
          <thead>
            <tr>
              <th align="right">Chunk Type</th>
              <th align="left">Chunk Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0x4X</td>
              <td align="left">DTLS Chunk (DTLS)</td>
            </tr>
          </tbody>
        </table>
        <t>RFC-Editor Note: Please replace 0x4x with the actual chunk type value
assigned by IANA and then remove this note.</t>
        <t>It should be noted that the DTLS chunk format requires the receiver
stop processing this SCTP packet, discard the unrecognized chunk and
all further chunks, and report the unrecognized chunk in an ERROR
chunk using the 'Unrecognized Chunk Type' error cause.  This is
accomplished (as described in <xref target="RFC9260"/> Section 3.2.) by the use of
the upper bits of the chunk type.</t>
        <t>The DTLS chunk is used to hold the DTLS 1.3 record with the protected
payload of a plain SCTP packet.</t>
        <figure anchor="sctp-DTLS-chunk-newchunk-crypt-struct">
          <name>DTLS Chunk Structure</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 216,64 L 216,96" fill="none" stroke="black"/>
                <path d="M 232,64 L 232,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="36" y="84">Type</text>
                  <text x="64" y="84">=</text>
                  <text x="92" y="84">0x4x</text>
                  <text x="172" y="84">reserved</text>
                  <text x="224" y="84">R</text>
                  <text x="248" y="84">DCI</text>
                  <text x="360" y="84">Chunk</text>
                  <text x="412" y="84">Length</text>
                  <text x="264" y="132">Payload</text>
                  <text x="384" y="180">Padding</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x4x   |reserved |R|DCI|         Chunk Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                            Payload                            |
|                                                               |
|                               +-------------------------------+
|                               |           Padding             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl>
          <dt>reserved: 5 bits</dt>
          <dd>
            <t>Reserved bits for future use. Sender MUST set these bits to 0 and
MUST be ignored on reception.</t>
          </dd>
          <dt>R: 1 bit (boolean)</dt>
          <dd>
            <t>Restart indicator. If this bit is set this DTLS chunk is protected
with by an restart DTLS Connection with the index indicated by the
DCI. If not set, then a traffic DCI is indicated.</t>
          </dd>
          <dt>DCI: 2 bits (unsigned integer)</dt>
          <dd>
            <t>DTLS Connection Index is the lower two bits of an DTLS Connection
 Index counter for the traffic or restart DTLS connection index.
 This is a counter implemented in DTLS in
 SCTP that is used to identify which DTLS connection instance that
 is capable of processing any received packet or DTLS message over
 an user message. This counter is recommended to be the lower part
 of a larger variable.
 DCI is unrelated to the DTLS Connection ID (CID) <xref target="RFC9147"/>.</t>
          </dd>
          <dt>Chunk Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the Payload in bytes plus 4.</t>
          </dd>
          <dt>Payload: variable length</dt>
          <dd>
            <t>This holds the encrypted data as one DTLS 1.3 Records <xref target="RFC9147"/>.</t>
          </dd>
          <dt>Padding: 0, 8, 16, or 24 bits</dt>
          <dd>
            <t>If the length of the Payload is not a multiple of 4 bytes, the sender
MUST pad the chunk with all zero bytes to make the chunk 32-bit
aligned.  The Padding MUST NOT be longer than 3 bytes and it MUST
be ignored by the receiver.</t>
          </dd>
        </dl>
      </section>
      <section anchor="pvalid-chunk">
        <name>Protection Solution Validation Chunk (PVALID)</name>
        <t>This section defines the new chunk types that will be used to validate
the Init/Init-ACK negotiation that selected the DTLS 1.3 chunk.  This
to prevent down grade attacks on the negotiation if other protection
solutions where offered. <xref target="sctp-DTLS-chunk-newchunk-pvalid-chunk"/>
illustrates the new chunk type.</t>
        <table anchor="sctp-DTLS-chunk-newchunk-pvalid-chunk">
          <name>PVALID Chunk Type</name>
          <thead>
            <tr>
              <th align="right">Chunk Type</th>
              <th align="left">Chunk Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0x4X</td>
              <td align="left">Protection Solution Validation (PVALID)</td>
            </tr>
          </tbody>
        </table>
        <t>It should be noted that the PVALID chunk format requires the receiver
stop processing this SCTP packet, discard the unrecognized chunk and
all further chunks, and report the unrecognized chunk in an ERROR
chunk using the 'Unrecognized Chunk Type' error cause.  This is
accomplished (as described in <xref target="RFC9260"/> Section 3.2.) by the use of
the upper bits of the chunk type.</t>
        <t>The PVALID chunk is used to hold a 32-bit vector of offered protection
solutions in the INIT.</t>
        <figure anchor="sctp-DTLS-chunk-newchunk-PVALID">
          <name>PVALID Chunk Structure</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="44" y="84">Type</text>
                  <text x="72" y="84">=</text>
                  <text x="100" y="84">0x4X</text>
                  <text x="184" y="84">Flags</text>
                  <text x="216" y="84">=</text>
                  <text x="232" y="84">0</text>
                  <text x="360" y="84">Chunk</text>
                  <text x="412" y="84">Length</text>
                  <text x="68" y="116">Protection</text>
                  <text x="152" y="116">Solutions</text>
                  <text x="232" y="116">Indicator</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Type = 0x4X  |   Flags = 0   |         Chunk Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protection Solutions Indicator                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Chunk Type: 8 bits (unsigned integer)</dt>
          <dd>
            <t>This value MUST be set to 0x4X.</t>
          </dd>
          <dt>Chunk Flags: 8 bits</dt>
          <dd>
            <t>MUST be set to zero on transmit and MUST be ignored on receipt.</t>
          </dd>
          <dt>Chunk Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the Protection Solutions Indicator
field in bytes plus 4.</t>
          </dd>
          <dt>Protection Solutions Indicator: array of 32 bits (unsigned integer)</dt>
          <dd>
            <t>The array has at least one element.
The value is set by default to zero. It uses the different
bit-values to indicate that the INIT contained an offer of the
indiacted protection solutions. Value 0x1 is used to indicate that
one offered DTLS 1.3 Chunk.</t>
          </dd>
        </dl>
        <t>RFC-Editor Note: Please replace 0x4X with the actual chunk type value
assigned by IANA and then remove this note.</t>
      </section>
    </section>
    <section anchor="error_handling">
      <name>Error Handling</name>
      <t>This specification introduces a new set of error causes that are to be
used when SCTP endpoint detects a faulty condition. The special case is
when the error is detected by the DTLS 1.3 Protection that may provide
additional information.</t>
      <section anchor="enoprotected">
        <name>Mandatory Protected Association Parameter Missing</name>
        <t>When an initiator SCTP endpoint sends an INIT chunk that doesn't
contain the DTLS 1.3 Chunk Protected Association or other protection
solutions towards an SCTP endpoint that only accepts protected
associations, the responder endpoint SHALL raise a Missing Mandatory
Parameter error. The ERROR chunk will contain the cause code 'Missing
Mandatory Parameter' (2) (see <xref target="RFC9260"/> Section 3.3.10.7) and the
DTLS 1.3 chunk protected association parameter identifier
<xref target="protectedassoc-parameter"/> in the missing param Information
field. It may also include additional parameters representing other
supported protection mechanisms that are acceptable per endpoint
security policy.</t>
        <figure anchor="sctp-DTLS-init-chunk-missing-protected">
          <name>ERROR Missing Protected Association Paramater</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="96" y="84">Cause</text>
                  <text x="140" y="84">Code</text>
                  <text x="168" y="84">=</text>
                  <text x="184" y="84">2</text>
                  <text x="360" y="84">Cause</text>
                  <text x="412" y="84">Length</text>
                  <text x="172" y="116">Number</text>
                  <text x="212" y="116">of</text>
                  <text x="256" y="116">missing</text>
                  <text x="316" y="116">params</text>
                  <text x="352" y="116">=</text>
                  <text x="368" y="116">N</text>
                  <text x="44" y="148">DTLS</text>
                  <text x="80" y="148">1.3</text>
                  <text x="120" y="148">Chunk</text>
                  <text x="184" y="148">Protected</text>
                  <text x="240" y="148">Asc</text>
                  <text x="336" y="148">Missing</text>
                  <text x="392" y="148">Param</text>
                  <text x="436" y="148">Type</text>
                  <text x="468" y="148">#2</text>
                  <text x="72" y="180">Missing</text>
                  <text x="128" y="180">Param</text>
                  <text x="172" y="180">Type</text>
                  <text x="212" y="180">#N-1</text>
                  <text x="336" y="180">Missing</text>
                  <text x="392" y="180">Param</text>
                  <text x="436" y="180">Type</text>
                  <text x="468" y="180">#N</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Cause Code = 2         |         Cause Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Number of missing params = N                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DTLS 1.3 Chunk Protected Asc |     Missing Param Type #2     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Missing Param Type #N-1    |     Missing Param Type #N     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <t>Note: Cause Length is equal to the number of missing parameters 8 + N
* 2 according to <xref target="RFC9260"/>, section 3.3.10.2. Also the Protection
Association ID may be present in any of the N missing params, no order
implied by the example in <xref target="sctp-DTLS-init-chunk-missing-protected"/>.</t>
      </section>
      <section anchor="eprotect">
        <name>Error in DTLS Chunk</name>
        <t>A new Error Type is defined for DTLS Chunk, it's used for any error
related to the DTLS chunk's protection mechanism described in this
document and has a structure that allows detailed information to be
added as extra causes.</t>
        <t>This specification describes some of the causes whilst the key
establishment specification MAY add further causes.</t>
        <t>When detecting an error, SCTP will send an ABORT chunk containing
the relevant Error Type and Causes.</t>
        <figure anchor="sctp-eprotect-error-structure">
          <name>Error in DTLS Chunk Cause Format</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="72" y="84">Cause</text>
                  <text x="116" y="84">Code</text>
                  <text x="144" y="84">=</text>
                  <text x="172" y="84">TBA9</text>
                  <text x="360" y="84">Cause</text>
                  <text x="412" y="84">Length</text>
                  <text x="104" y="116">Extra</text>
                  <text x="152" y="116">Cause</text>
                  <text x="188" y="116">#1</text>
                  <text x="360" y="116">Extra</text>
                  <text x="408" y="116">Cause</text>
                  <text x="444" y="116">#2</text>
                  <text x="96" y="148">Extra</text>
                  <text x="144" y="148">Cause</text>
                  <text x="188" y="148">#N-1</text>
                  <text x="360" y="148">Extra</text>
                  <text x="408" y="148">Cause</text>
                  <text x="444" y="148">#N</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Cause Code = TBA9         |         Cause Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Extra Cause #1        |         Extra Cause #2        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Extra Cause #N-1       |         Extra Cause #N        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Cause Code: 16 bits (unsigned integer)</dt>
          <dd>
            <t>The SCTP Error Chunk Cause Code indicating "Error in Protection" is TBA9.</t>
          </dd>
          <dt>Cause Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>Is for N extra Causes equal to  4 + N * 2</t>
          </dd>
          <dt>Extra Cause: 16 bits (unsigned integer)</dt>
          <dd>
            <t>Each Extra Cause indicate an additional piece of information as part
of the error. There MAY be zero to as many as can fit in the extra
cause field in the ERROR Chunk (A maximum of 32764).</t>
          </dd>
        </dl>
        <t>Editor's Note: Please replace TBA9 above with what is assigned by IANA.</t>
        <t>Below a number of defined Error Causes are defined, additional causes
can be registered with IANA following the rules in <xref target="IANA-Extra-Cause"/>.</t>
        <section anchor="ekeyhandshake">
          <name>Error During Protection Handshake</name>
          <t>The usage of the DTLS Chunk can specify a handshake, for example
<xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>, in which case that
procedure may encounter an error. In such case an ABORT chunk will be
sent with error in protection cause code (specified in <xref target="eprotect"/>)
and extra cause "Error During Protection Handshake" identifier
0x01. DTLS may provide a more granular information detailing the
reason that drove the protection to fail.  Such granular information
can be added to the Error List.</t>
        </section>
        <section anchor="evalidate">
          <name>Failure in Protection Solution Validation</name>
          <t>A Failure may occur during protection solution validation, i.e. when
the PVALID chunks <xref target="pvalid-chunk"/> are exchanged to validate the
initialization.  In such case an ABORT chunk will be sent with error
in protection cause code (specified in <xref target="eprotect"/>) and extra cause
"Failure in Validation" identifier 0x02 to indicate this failure.</t>
        </section>
        <section anchor="etmout">
          <name>Timeout During Protection Handshake or Validation</name>
          <t>Whenever a T-valid timeout occurs, the SCTP endpoint will send an
ABORT chunk with "Error in Protection" cause (specified in
<xref target="eprotect"/>) and extra cause "Timeout During Protection Handshake or
Validation" identifier 0x03 to indicate this failure.  To indicate in
which phase the timeout occurred an additional extra cause code is
added. If the protection solution specifies that key management is
implemented in-band and the T-valid timeout occurs during the
handshake the Cause-Specific code to add is "Error During Protection
Handshake" identifier 0x01.  If the T-valid timeout occurs during the
protection association parameter validation, the extra cause code to
use is "Failure in Validation" identifier 0x02.</t>
        </section>
      </section>
      <section anchor="eengine">
        <name>Critical Error from DTLS</name>
        <t>DTLS 1.3 MAY inform local SCTP endpoint about errors.  When an Error
in the DTLS 1.3 compromises the protection mechanism, the protection
operator may stop processing data altogether, thus the local SCTP
endpoint will not be able to send or receive any chunk for the
specified Association.  This will cause the Association to be closed
by legacy timer-based mechanism. Since the Association protection is
compromised no further data will be sent and the remote peer will also
experience timeout on the Association.</t>
      </section>
      <section anchor="non-critical-errors">
        <name>Non-critical Error in the Protection</name>
        <t>A non-critical error in DTLS 1.3 means that the
Protection Operator is capable of recovering without the need
of the whole Association to be restarted.</t>
        <t>From SCTP perspective, a non-critical error will be perceived
as a temporary problem in the transport and will be handled
with retransmissions and SACKS according to <xref target="RFC9260"/>.</t>
        <t>When the Protection Operator will experience a non-critical error,
an ABORT chunk SHALL NOT be sent.</t>
      </section>
    </section>
    <section anchor="procedures">
      <name>Procedures</name>
      <section anchor="establishment-procedure">
        <name>Establishment of a Protected Association</name>
        <t>An SCTP Endpoint acting as initiator willing to create a DTLS 1.3
chunk protected association shall send to the remote peer an INIT
chunk containing the DTLS 1.3 Chunk Protected Association parameter
(see <xref target="protectedassoc-parameter"/>) whith the optional information, if
any (see <xref target="sctp-DTLS-chunk-init-options"/>).</t>
        <t>An SCTP Endpoint acting as responder, when receiving an INIT chunk
with DTLS 1.3 Chunk Protected Association parameter, will reply with
INIT-ACK with its own DTLS 1.3 Chunk Protected Association parameter
and any optional information.</t>
        <t>Additionally, an SCTP Endpoint acting as responder willing to support
only protected associations shall consider INIT chunk not containing
the DTLS 1.3 Chunk Protected Association parameter or another by
security policy accepted security solution as an error, thus it will
reply with an ABORT chunk according to what specified in
<xref target="enoprotected"/> indicating that for this endpoint mandatory DTLS 1.3
Chunk Protected Association parameter is missing.</t>
        <t>When initiator and responder have agreed on a protected association by
means of handshaking INIT/INIT-ACK the SCTP association establishment
continues until it has reached the ESTABLISHED state. However, before
the SCTP assocation is protected by the DTLS 1.3 Chunk some additional
states needs to be passed. First DTLS Chunk needs be initializied
in the PROTECTION INTILIZATION state. This MAY be accomplished by the
procedure defined in <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>, or
through other methods that results in at least one DCI has
initialized state. When that has been accomplished one
enters the VALIDATION state where one validates the exchange of the
DTLS 1.3 Chunk Protected Association Parameter and any alternative
protection solutions. If that is successful one enters the PROTECTED
state. This state sequence is depicted in <xref target="init-state-machine"/>.</t>
        <t>Until the procedure has reached the PROTECTED state the only usage of
DATA Chunks that is accepted is DATA Chunks with the SCTP-DTLS PPID
value 4242 used to exchange in-band key establishment messages for
DTLS. Any other DATA chunk being received in a Protected association
SHALL be silently discarded.</t>
        <t>DTLS 1.3 initializes itself by transferring its own handshake messages
as payload of the DATA chunk necessary
<xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>. The DTLS Chunk
initialization SHOULD be supervised by a T-valid timer that fits DTLS
1.3 handshake and may also be further adjusted based on whether
expected RTT values are outside of the ones commonly occurring on the
general Internet, see <xref target="t-valid-considerations"/>. At completion of
DTLS Chunk initialization the setup of the Protected association is
complete and one enters the VALIDATION state, and from that time on
only DTLS chunks will be exchanged. Any plain text chunk will be
silently discarded.</t>
        <t>In case of T-valid timeout, the endpoint will generate an ABORT chunk.
The ERROR handling follows what specified in <xref target="ekeyhandshake"/>.</t>
        <t>When entering the VALIDATION state, the initiator MUST send to the
responder a PVALID chunk (see
<xref target="sctp-DTLS-chunk-newchunk-pvalid-chunk"/>) containing indication of
all offered protection solutions previously sent in the INIT chunk,
including the 0x1 value indicating that DTLS 1.3 Chunk Protected
Association parameter was included. The transmission of the PVALID
chunk MUST be done reliably. The responder receiving the PVALID chunk
will compare the indicated solutions with the ones previously received
as parameters in the INIT chunk, if they are exactly the same, it will
reply to the initiator with a PVALID chunk containing the chosen
proteciton solution, otherwise it will reply with an ABORT
chunk. ERROR CAUSE will indicate "Failure in Validation" and the SCTP
association will be terminated. If the association was not aborted the
protected association is considered successfully established and the
PROTECTED state is entered.</t>
        <t>When the initiator receives the PVALID chunk, it will compare with the
previous chosen option and in case of mismatch with the one received
previously in the protected association parameter in the INIT-ACK
chunk, it will reply with ABORT with the ERROR CAUSE "Failure in
Validation", otherwise the protected association is successfully
established and the initiator enters the PROTECTED state.</t>
        <t>PVALID chunk will be sent by the initiator every RTO time (see section
6.3.1 of <xref target="RFC9260"/>) until a PVALID or an ABORT chunk is received
from the responder or T-valid timer expires.</t>
        <t>If T-valid timer expires either at initiator or responder, it will
generate an ABORT chunk.  The ERROR handling follows what specified in
<xref target="etmout"/>.</t>
        <t>In the PROTECTED state any ULP SCTP messages for any PPID MAY be
exchanged in the protected SCTP association.</t>
        <t>When entering the PROTECTED state, a Restart DTLS connection
SHOULD be created.</t>
      </section>
      <section anchor="termination-procedure">
        <name>Termination of a Protected Association</name>
        <t>Besides the procedures for terminating an association explained in
<xref target="RFC9260"/>, DTLS 1.3 SHALL ask SCTP endpoint for
terminating an association when having an internal error or by
detecting a security violation.
During the termination procedure all Control Chunks SHALL be protected
except SHUTDOWN-COMPLETE. The internal design of Protection
Engines and their capability is out of the scope of the current
document.</t>
      </section>
      <section anchor="init-state-machine">
        <name>Protection Initialization State Machine</name>
        <figure anchor="sctp-DTLS-state-diagram">
          <name>DTLS Chunk State Diagram</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="408" viewBox="0 0 408 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,144 L 8,176" fill="none" stroke="black"/>
                <path d="M 16,320 L 16,352" fill="none" stroke="black"/>
                <path d="M 48,32 L 48,64" fill="none" stroke="black"/>
                <path d="M 48,480 L 48,512" fill="none" stroke="black"/>
                <path d="M 112,64 L 112,136" fill="none" stroke="black"/>
                <path d="M 112,176 L 112,312" fill="none" stroke="black"/>
                <path d="M 112,352 L 112,472" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,64" fill="none" stroke="black"/>
                <path d="M 176,480 L 176,512" fill="none" stroke="black"/>
                <path d="M 200,320 L 200,352" fill="none" stroke="black"/>
                <path d="M 224,144 L 224,176" fill="none" stroke="black"/>
                <path d="M 48,32 L 176,32" fill="none" stroke="black"/>
                <path d="M 48,64 L 176,64" fill="none" stroke="black"/>
                <path d="M 8,144 L 224,144" fill="none" stroke="black"/>
                <path d="M 8,176 L 224,176" fill="none" stroke="black"/>
                <path d="M 120,256 L 248,256" fill="none" stroke="black"/>
                <path d="M 16,320 L 200,320" fill="none" stroke="black"/>
                <path d="M 16,352 L 200,352" fill="none" stroke="black"/>
                <path d="M 120,400 L 304,400" fill="none" stroke="black"/>
                <path d="M 48,480 L 176,480" fill="none" stroke="black"/>
                <path d="M 48,512 L 176,512" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="120,472 108,466.4 108,477.6" fill="black" transform="rotate(90,112,472)"/>
                <polygon class="arrowhead" points="120,312 108,306.4 108,317.6" fill="black" transform="rotate(90,112,312)"/>
                <polygon class="arrowhead" points="120,136 108,130.4 108,141.6" fill="black" transform="rotate(90,112,136)"/>
                <g class="text">
                  <text x="112" y="52">ESTABLISHED</text>
                  <text x="132" y="100">If</text>
                  <text x="200" y="100">INIT/INIT-ACK</text>
                  <text x="272" y="100">has</text>
                  <text x="308" y="100">DTLS</text>
                  <text x="344" y="100">1.3</text>
                  <text x="384" y="100">Chunk</text>
                  <text x="160" y="116">Protected</text>
                  <text x="248" y="116">Association</text>
                  <text x="336" y="116">Parameter</text>
                  <text x="60" y="164">PROTECTION</text>
                  <text x="160" y="164">INITILIZATION</text>
                  <text x="144" y="212">start</text>
                  <text x="200" y="212">T-valid</text>
                  <text x="260" y="212">timer.</text>
                  <text x="144" y="244">[DTLS</text>
                  <text x="196" y="244">SETUP]</text>
                  <text x="140" y="276">send</text>
                  <text x="176" y="276">and</text>
                  <text x="224" y="276">receive</text>
                  <text x="140" y="292">DTLS</text>
                  <text x="200" y="292">handshake</text>
                  <text x="108" y="340">VALIDATION</text>
                  <text x="160" y="388">[ENDPOINT</text>
                  <text x="248" y="388">VALIDATION]</text>
                  <text x="140" y="420">send</text>
                  <text x="176" y="420">and</text>
                  <text x="224" y="420">receive</text>
                  <text x="148" y="436">PVALID</text>
                  <text x="188" y="436">by</text>
                  <text x="224" y="436">means</text>
                  <text x="260" y="436">of</text>
                  <text x="140" y="452">DTLS</text>
                  <text x="188" y="452">chunk.</text>
                  <text x="112" y="500">PROTECTED</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
     +---------------+
     |  ESTABLISHED  |
     +-------+-------+
             |
             | If INIT/INIT-ACK has DTLS 1.3 Chunk
             | Protected Association Parameter
             v
+--------------------------+
| PROTECTION INITILIZATION |
+------------+-------------+
             |
             | start T-valid timer.
             |
             | [DTLS SETUP]
             |-----------------
             | send and receive
             | DTLS handshake
             v
 +----------------------+
 |      VALIDATION      |
 +-----------+----------+
             |
             | [ENDPOINT VALIDATION]
             |------------------------
             | send and receive
             | PVALID by means of
             | DTLS chunk.
             v
     +---------------+
     |   PROTECTED   |
     +---------------+
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="key-management-considerations">
        <name>Considerations on Key Management</name>
        <t>When the Association is in PROTECTION INITILIZATION state, in-band
DTLS key management <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/> MAY
use SCTP user messages with the SCTP-DTLS PPID value = 4242 (see
<xref target="iana-payload-protection-id"/>) for message transfer that will be sent
and received unencrypted.</t>
        <t>When the Association is in DTLS chunk PROTECTED state and the SCTP
assocation is in ESTABLISHED or any of the states that can be reached
after ESTABLISHED state, in-band key management are RECOMMENDED to
use SCTP Data chunk with dedicated PPID, those chunks will be
sent and received unencrypted.</t>
      </section>
      <section anchor="t-valid-considerations">
        <name>Consideration on T-valid</name>
        <t>The timer T-Valid supervises initializations that depend on how the
handshake is specified for the key establishment used for the DTLS 1.3
chunk and also on the characteristics of the transport network.</t>
        <t>This specification recommends a default value of 30 seconds for
T-valid.</t>
      </section>
    </section>
    <section anchor="protected-data-handling">
      <name>Protected Data Chunk Handling</name>
      <t>With reference to the DTLS Chunk states and the state Diagram as
shown in Figure 3 of <xref target="RFC9260"/>, the handling of Control chunks, Data
chunks and DTLS chunks follows the rules defined below:</t>
      <ul spacing="normal">
        <li>
          <t>When the association is in states CLOSED, COOKIE-WAIT, and
COOKIE-ECHOED, any Control chunk is sent unprotected (i.e. plain
text). No DATA chunks shall be sent in these states and DATA chunks
received shall be silently discarded.</t>
        </li>
        <li>
          <t>When the DTLS Chunk is in state PROTECTED and the SCTP association
is in states ESTABLISHED or in the states for association shutdown,
i.e. SHUTDOWN-PENDING, SHUTDOWN-SENT, SHUTDOWN-RECEIVED,
SHUTDOWN-ACK-SENT as defined by <xref target="RFC9260"/>, any SCTP chunk
including DATA chunks, but excluding DTLS chunk, will be used to
create an SCTP payload that will be encrypted by the DTLS 1.3
protection operation and the resulting DTLS record from that
encryption will be the used as payload for a DTLS chunk that will be
the only chunk in the SCTP packet to be sent. DATA chunks are
accepted and handled according to section 4 of <xref target="RFC9260"/>.
Data chunk with dedicated PPID (4242) will be sent and received
unencrypted.</t>
        </li>
        <li>
          <t>If an SCTP restart is occurring there are exception rules to the
above. The COOKIE-ECHO and COOKIE-ACK SHALL be sent protected by
DTLS chunk using a restart DCI. The DTLS chunk with restart DCI is
continuning to protect any SCTP chunks sent while being in SCTP
state ESTABLISHED until the DTLS chunk state reaches VALIDATION,
where a newely established traffic DCI SHALL be used instead for
protecting future SCTP chunks.</t>
        </li>
      </ul>
      <figure anchor="sctp-DTLS-encrypt-chunk-states-1">
        <name>Plain Text SCTP Packet</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="236" y="84">Common</text>
                <text x="292" y="84">Header</text>
                <text x="248" y="116">Chunk</text>
                <text x="284" y="116">#1</text>
                <text x="240" y="148">.</text>
                <text x="256" y="148">.</text>
                <text x="272" y="148">.</text>
                <text x="248" y="180">Chunk</text>
                <text x="284" y="180">#n</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Common Header                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Chunk #1                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            . . .                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Chunk #n                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
      </figure>
      <t>The diagram shown in <xref target="sctp-DTLS-encrypt-chunk-states-1"/> describes
the structure of any plain text SCTP packet being sent or received
when the DTLS Chunk is not in VALIDATION or PROTECTED state.</t>
      <figure anchor="sctp-DTLS-encrypt-chunk-states-2">
        <name>Protected SCTP Packets</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="236" y="84">Common</text>
                <text x="292" y="84">Header</text>
                <text x="228" y="116">DTLS</text>
                <text x="272" y="116">Chunk</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Common Header                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         DTLS Chunk                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
      </figure>
      <t>The diagram shown in <xref target="sctp-DTLS-encrypt-chunk-states-2"/> describes
the structure of an SCTP packet being sent after the DTLS Chunk
VALIDATION or PROTECTED state has been reached. Such packets are built
with the SCTP common header. Only one DTLS chunk can be sent in
a SCTP packet.</t>
      <section anchor="data-sending">
        <name>Protected Data Chunk Transmission</name>
        <t>When the DTLS Chunk state machine hasn't reached the VALIDATION state,
DTLS 1.3 MAY perform key management in-band, thus the DTLS chunk
Handler will receive plain control and DATA chunks from the SCTP chunk
handler.</t>
        <t>When DTLS Chunk has reached the VALIDATION and PROTECTED state,
the DTLS chunk handler will receive control chunks and DATA chunks
from the SCTP chunk handler as a complete SCTP payload with maximum
size limited by PMTU reduced by the size of the SCTP common header and
the DTLS chunk overhead.</t>
        <t>That plain payload will be sent to the Protection Operator in use for
that specific association, the Protection Operator will return an
encrypted DTLS 1.3 record.</t>
        <t>An SCTP packet containing an SCTP DTLS chunk SHALL be delivered
without delay and SCTP bundling SHALL NOT be performed. If a SCTP
packet with bundling is received the receiver SHALL ignore any
subsequent chunk.</t>
      </section>
      <section anchor="data-receiving">
        <name>Protected Data Chunk Reception</name>
        <t>When the DTLS Chunk state machine hasn't reached the VALIDATION state
it MAY perform key management in-band. In such case, the DTLS chunk
handler will receive plain control chunks and DATA chunks with
SCTP-DTLS PPID from the SCTP Header Handler. Those plain text control
chunks will be forwarded to SCTP chunk handler as well as the DATA
chunk with the SCTP-DTLS PPID value of 4242.</t>
        <t>When the DTLS Chunk state machine has reached the VALIDATION or
PROTECTED state, the DTLS chunk handler will receive DTLS chunks
from the SCTP Header Handler.  Payload from DTLS chunks will be
forwarded to the Protection Operator which will return a plain
SCTP Payload.  The plain SCTP payload will be forwarded to SCTP Chunk
Handler that will split it in separated chunks and will handle them
according to <xref target="RFC9260"/>.</t>
        <t>Meta data, such as ECN, source and destination address or path ID,
belonging to the received SCTP packet SHALL be tied to the relevant
set of chunks and forwarded transparently to the SCTP endpoint.</t>
        <section anchor="sctp-header-handler">
          <name>SCTP Header Handler</name>
          <t>The SCTP Header Handler is responsible for correctness of the SCTP
common header, it receives the SCTP packet from the lower transport
layer, discriminates among associations and forwards the payload and
relevant data to the SCTP Protection Operator for handling.</t>
          <t>In the opposite direction it creates the SCTP common header and fills
it with the relevant information for the specific association and
delivers it towards the lower transport layer.</t>
        </section>
      </section>
    </section>
    <section anchor="abstract-api">
      <name>Abstract API</name>
      <t>This section describes and abstract API that is needed between a key
establishment part and the DTLS 1.3 protection chunk.</t>
      <section anchor="cipher-suit-capabilities">
        <name>Cipher Suit Capabilities</name>
        <t>The key-management function needs to know which cipher suits defined
for usage with DTLS 1.3 that are supported by the DTLS chunk and its
protection operations block. All TLS cipher suit that are defined are
listed in the TLS cipher suit registry <xref target="TLS-CIPHER-SUITS"/> at IANA
and are identified by a 2-byte value. Thus this needs to return a list
of all supported cipher suits to the higher layer.</t>
        <t>Request : Get Cipher Suits</t>
        <t>Parameters : none</t>
        <t>Reply   : Cipher Suits</t>
        <t>Parameters : list of cipher suits</t>
      </section>
      <section anchor="establish-client-write-keying-material">
        <name>Establish Client Write Keying Material</name>
        <t>The DTLS Chunk can use one of out of multiple sets of cipher suit and
corresponding key materials. Which has been used are explicitly
indicated in the DCI field.</t>
        <t>The following information needs to be provided when setting Client Write (transmit) Keying material:</t>
        <t>Request : Establish Client Write Key and IV</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Assocation:</dt>
              <dd>
                <t>Reference to the relevant SCTP assocation to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>DCI:</dt>
              <dd>
                <t>The DTLS connection index value to establish (or overwrite)</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating wheter the DCI is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>DTLS Epoch:</dt>
              <dd>
                <t>The DTLS epoch these keys are valid for. Note that Epoch lower than
3 are not expected as they are used during DTLS handshake.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Cipher Suit:</dt>
              <dd>
                <t>2 bytes cipher suit identification for the DTLS 1.3 Cipher suit used
to identify the DTLS AEAD algorithm to perform the DTLS record protection.
The cipher suite is fixed for a (SCTP Assocation, DCI) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>Write Key and IV:</t>
          </li>
        </ul>
        <t>: The cipher suit specific binary object containing all necessary
information for protection operations. The secret will used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suit used.</t>
        <t>Reply : Established or Failed</t>
      </section>
      <section anchor="establish-server-write-keying-material">
        <name>Establish Server Write Keying Material</name>
        <t>The DTLS Chunk can use one of out of multiple sets of cipher suit and
corresponding key materials. Which has been used are explicitly
indicated in the DCI field.</t>
        <t>The following information needs to be provided when setting Server Write (transmit) Keying material:</t>
        <t>Request : Establish Server Write Key and IV</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Assocation:</dt>
              <dd>
                <t>Reference to the relevant SCTP assocation to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>DCI:</dt>
              <dd>
                <t>The DTLS connection index value to establish (or overwrite)</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating wheter the DCI is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>DTLS Epoch:</dt>
              <dd>
                <t>The DTLS epoch these keys are valid for. Note that Epoch lower than
3 are note expected as they are used during DTLS handshake.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Cipher Suit:</dt>
              <dd>
                <t>2 bytes cipher suit identification for the DTLS 1.3 Cipher suit used
to identify the DTLS AEAD algorithm to perform the DTLS record protection.
The cipher suite is fixed for a (SCTP Assocation, DCI) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>Write Key and IV:</t>
          </li>
        </ul>
        <t>: The cipher suit specific binary object containing all necessary
information for protection operations. The secret will used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suit used.</t>
        <t>Reply : Established or Failed</t>
      </section>
      <section anchor="destroy-client-write-keying-material">
        <name>Destroy Client Write Keying Material</name>
        <t>A function to destroy the Client Write (transmit) keying material for a given epoch for a given
DCI for a given SCTP Association.</t>
        <t>Request : Destroy client write key and IV</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Destroyed</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="destroy-server-write-keying-material">
        <name>Destroy Server Write Keying Material</name>
        <t>A function to destroy the Server Write (transmit) keying material for a given epoch for a given
DCI for a given SCTP Association.</t>
        <t>Request : Destroy server write key and IV</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Destroyed</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="set-dci-to-use">
        <name>Set DCI to Use</name>
        <t>Set which key context (DCI) to use to protect the future SCTP packets sent by the
SCTP Association.</t>
        <t>Request : Set DCI used</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
        </ul>
        <t>Reply: DCI set</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="get-q">
        <name>Get q</name>
        <t>Get q, the number of protected messages (AEAD encryption invocations) for
a given epoch.</t>
        <t>Request : Get q</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: q</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="get-v">
        <name>Get v</name>
        <t>Get v, the number of attacker forgery attempts
(failed AEAD decryption invocations) for a given epoch.</t>
        <t>Request : Get v</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: v</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="configure-replay-protection">
        <name>Configure Replay Protection</name>
        <t>The DTLS replay protection in this usage is expected to be fairly
robust. Its depth of handling is related to maximum network path
reordering that the receiver expects to see during the SCTP
association. However as the actual reordering in number of packets are
a combination of how delayed one packet may be compared to another
times the actual packet rate this can grow for some applications and
may need to be tuned. Thus, having the potential for setting this a
more suitable value depending on the use case should be considered.</t>
        <t>Request : Configure Replay Protection</t>
        <t>Paramters :</t>
        <ul spacing="normal">
          <li>
            <t>DCI</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Configuration parameters</t>
          </li>
        </ul>
        <t>Reply: Replay Protection Configured</t>
        <t>Parameters : true or false</t>
      </section>
    </section>
    <section anchor="IANA-Consideration">
      <name>IANA Considerations</name>
      <t>This document defines two new registries in the Stream Control
Transmission Protocol (SCTP) Parameters group that IANA
maintains. Theses registries are for the extra cause codes for
protection related errors and the Protection Options identifiers for
the PVALID chunk. It also adds registry entries into several other
registries in the Stream Control Transmission Protocol (SCTP)
Parameters group:</t>
      <ul spacing="normal">
        <li>
          <t>Two new SCTP Chunk Types</t>
        </li>
        <li>
          <t>One new SCTP Chunk Parameter Type</t>
        </li>
        <li>
          <t>One new SCTP Error Cause Codes</t>
        </li>
        <li>
          <t>One new SCTP Payload Protocol Identifier</t>
        </li>
      </ul>
      <section anchor="IANA-Extra-Cause">
        <name>Protection Error Cause Codes Registry</name>
        <t>IANA is requested to create a new registry called "Protection Error
Cause Codes". This registry is part of the Stream Control Transmission
Protocol (SCTP) Parameters grouping.</t>
        <t>The purpose of this registry is to enable identification of different
protection related errors when using DTLS chunk and a protection
engine.  Entries in the registry requires a Meaning, a reference to
the specification defining the error, and a contact. Each entry will
be assigned by IANA a unique 16-bit unsigned integer
identifier. Values 0-65534 are available for assignment. Value 65535
is reserved for future extension. The proposed general form of the
registry is depicted below in <xref target="iana-protection-error-cause"/>.</t>
        <table anchor="iana-protection-error-cause">
          <name>Protection Error Cause Code</name>
          <thead>
            <tr>
              <th align="right">Cause Code</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
              <th align="left">Contact</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">Error in the Protection Operator List</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="left">Error During Protection Handshake</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">2</td>
              <td align="left">Failure in Protection Operators Validation</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">3</td>
              <td align="left">Timeout During KEY Handshake or Validation</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">4-65534</td>
              <td align="left">Available for Assignment</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">65535</td>
              <td align="left">Reserved</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
          </tbody>
        </table>
        <t>New entries are registered following the Specification Required policy
as defined by <xref target="RFC8126"/>.</t>
      </section>
      <section anchor="pvalid-protection-solution-indicators">
        <name>PVALID Protection Solution Indicators</name>
        <t>IANA is requested to create a new registry called "PVALID Protection
Solution Indicators". This regsitry is part of the of the Stream
Control Transmission Protocol (SCTP) Parameters grouping.</t>
        <t>The purpose of this registry is to assign indicator bits for any
security solution that could be offered as an alternative to DTLS
chunk or themselves want to use the PVALID chunk mechanism to detect
downgrade attacks. Any security solution that is offered through a
parameter exchange during the SCTP handshake are potential to be
included here.</t>
        <t>Each entry will be assigned a bit-postion starting from the most
significant first bit (bit 0) in the PVALID Protection Solutions
Indicator field. Each application should be assigned the next
available bit postion, especially avoiding to assign in the next 32
bit position prior to having assigned all previous values.</t>
        <table anchor="iana-pvalid-psi">
          <name>PVALID Protection Solution Indicators</name>
          <thead>
            <tr>
              <th align="right">Bit Position</th>
              <th align="left">Solution Name</th>
              <th align="left">Reference</th>
              <th align="left">Contact</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">DTLS 1.3 Chunk</td>
              <td align="left">RFC-TBD</td>
              <td align="left">Draft Authors</td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="left">SCTP-AUTH</td>
              <td align="left">draft-ietf-tsvwg-rfc4895-bis-02</td>
              <td align="left">Draft Authors</td>
            </tr>
          </tbody>
        </table>
        <t>New entries are registered following the Specification Required policy
as defined by <xref target="RFC8126"/>.</t>
      </section>
      <section anchor="sctp-chunk-types">
        <name>SCTP Chunk Types</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Chunk Types" registry, IANA is requested to add the two new entries
depicted below in in <xref target="iana-chunk-types"/> with a reference to this
document. The registry at time of writing was available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-1</t>
        <table anchor="iana-chunk-types">
          <name>New Chunk Types Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Chunk Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA6</td>
              <td align="left">DTLS Chunk (DTLS)</td>
              <td align="left">RFC-To-Be</td>
            </tr>
            <tr>
              <td align="right">TBA7</td>
              <td align="left">Protected Association Parameter Validation (PVALID)</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sctp-chunk-parameter-types">
        <name>SCTP Chunk Parameter Types</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Chunk Parameter Types" registry, IANA is requested to add the new
entry depicted below in in <xref target="iana-chunk-parameter-types"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-2</t>
        <table anchor="iana-chunk-parameter-types">
          <name>New Chunk Type Parameters Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Chunk Parameter Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA8</td>
              <td align="left">DTLS 1.3 Chunk Protected Association</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sctp-error-cause-codes">
        <name>SCTP Error Cause Codes</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Error Cause Codes" registry, IANA is requested to add the new
entry depicted below in in <xref target="iana-error-cause-codes"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-24</t>
        <table anchor="iana-error-cause-codes">
          <name>Error Cause Codes Parameters Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Error Cause Codes</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA9</td>
              <td align="left">DTLS Chunk Error</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sctp-payload-protocol-identifier">
        <name>SCTP Payload Protocol Identifier</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Payload Protocol Identifiers" registry, IANA is requested to update the
entry depicted below in in <xref target="iana-payload-protection-id"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25</t>
        <table anchor="iana-payload-protection-id">
          <name>Protection Operator Protocol Identifier Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">SCTP Payload Protocol Identifier</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">4242</td>
              <td align="left">DTLS Chunk Key-Management Messages</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security-Considerations">
      <name>Security Considerations</name>
      <t>All the security and privacy considerations of the security protocol
used as the Protection Operator applies.</t>
      <t>DTLS replay protection MUST NOT be turned off.</t>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Using a security protocol in the SCTP DTLS chunk might lower the
privacy properties of the security protocol as the SCTP Verification
Tag is an unique identifier for the association.</t>
      </section>
      <section anchor="Downgrade-Attacks">
        <name>Downgrade Attacks</name>
        <t>The pvalid chunk provides a mechanism for preventing downgrade attacks
that detects downgrading attempts between protection solutions and
terminates the association. The chosen protection solution is the same
as if the peers had been communicating in the absence of an attacker.</t>
        <t>The initial handshake is verified before the
DTLS Chunk is considered protected, thus no user data are sent before
validation.</t>
        <t>The downgrade protection is only as strong as the weakest of the
supported protection solutions as an active attacker can trick the
endpoints to negotiate the weakest protection solution and then
modify the weakly protected pvalid chunks to deceive the endpoints
that the negotiation of the Protection Operators is validated. This
is similar to the downgrade protection in TLS 1.3 specified in
Section 4.1.3. of <xref target="RFC8446"/> where downgrade protection is not
provided when TLS 1.2 with static RSA is used. It is RECOMMENDED
to only support a limited set of strongly profiled protection
solutions.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Michael Tüxen for his invaluable comments
   helping to cope with Association Restart, ASCONF handling and
   restructuring the Protection Operator architecture.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4895" target="https://www.rfc-editor.org/info/rfc4895" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4895.xml">
          <front>
            <title>Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="P. Lei" initials="P." surname="Lei"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This document describes a new chunk type, several parameters, and procedures for the Stream Control Transmission Protocol (SCTP). This new chunk type can be used to authenticate SCTP chunks by using shared keys between the sender and receiver. The new parameters are used to establish the shared keys. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4895"/>
          <seriesInfo name="DOI" value="10.17487/RFC4895"/>
        </reference>
        <reference anchor="RFC5061" target="https://www.rfc-editor.org/info/rfc5061" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5061.xml">
          <front>
            <title>Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="Q. Xie" initials="Q." surname="Xie"/>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="S. Maruyama" initials="S." surname="Maruyama"/>
            <author fullname="M. Kozuka" initials="M." surname="Kozuka"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>A local host may have multiple points of attachment to the Internet, giving it a degree of fault tolerance from hardware failures. Stream Control Transmission Protocol (SCTP) (RFC 4960) was developed to take full advantage of such a multi-homed host to provide a fast failover and association survivability in the face of such hardware failures. This document describes an extension to SCTP that will allow an SCTP stack to dynamically add an IP address to an SCTP association, dynamically delete an IP address from an SCTP association, and to request to set the primary address the peer will use when sending to an endpoint. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5061"/>
          <seriesInfo name="DOI" value="10.17487/RFC5061"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <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="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml">
          <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="RFC9260" target="https://www.rfc-editor.org/info/rfc9260" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9260.xml">
          <front>
            <title>Stream Control Transmission Protocol</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
            <author fullname="K. Nielsen" initials="K." surname="Nielsen"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document describes the Stream Control Transmission Protocol (SCTP) and obsoletes RFC 4960. It incorporates the specification of the chunk flags registry from RFC 6096 and the specification of the I bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are also obsoleted by this document. In addition, RFCs 4460 and 8540, which describe errata for SCTP, are obsoleted by this document.</t>
              <t>SCTP was originally designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks. It is also suited to be used for other applications, for example, WebRTC.</t>
              <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network, such as IP. It offers the following services to its users:</t>
              <t>The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9260"/>
          <seriesInfo name="DOI" value="10.17487/RFC9260"/>
        </reference>
        <reference anchor="TLS-CIPHER-SUITS" target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4">
          <front>
            <title>TLS Cipher Suites</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <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="I-D.westerlund-tsvwg-sctp-DTLS-handshake" target="https://datatracker.ietf.org/doc/draft-westerlund-tsvwg-sctp-dtls-handshake/">
          <front>
            <title>Datagram Transport Layer Security (DTLS) in the Stream Control Transmission Protocol (SCTP) DTLS Chunk</title>
            <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
              <organization>Ericsson</organization>
            </author>
            <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
              <organization>Ericsson</organization>
            </author>
            <date year="2024" month="July"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963obR3bg/3qKWvKHxBiARIqWZX5xEoqkRowliktS9swm
+fZrAAWiR0A3prtBiiNpX2X3QfbX5sX23KrqVKMBSh7Z2cwOJ7FIoLsup06d
+6Xf75txOSqyuTuw4yqbNP1bVzeumi2Lcb+pb26v+/WoWfTHzazuj6bL4l3/
8Z5p8mYGL1w2lcvm9qgsmqqc2asqK+p5Xtd5WdjzqmzKEXz68PLo6nzHHl+9
urRHOIDJhsPK3cDr8IX+vBzW5cw1rj4wo6w5sHUzNvmiOrBNtaybvcePv4ep
b68P7NXlTz//zmQw+QFPuiirxtTLoUze3C1gdacnVy+s3bbZrC4P7FZejN3C
wX+KZqtnt04Pn8M/ZQW/XVy92DLmxhVLd2Csva7K5UINbA9hIvtzWb3Li2v7
O/zWPiTQ7MDT8yyfwQrxz3/KXTMZlNU1DpI30+XwwF7PyrxYzh5tgi2CgGFr
TLZspmV1YPowhs2L+sDa1wP7c3gPP+bTep1dF8u69RVMfmBPqnxU12WBHzhe
35weHsT5/8nJQ4NROVez/fMATs4t//1/wvhN40fhGf+5nBZd366b9I/w/GAu
D66b8AgmLKtJXuVxoqNZthznpf5i3RwjfnSw4EfTWUxeTMoKVpDf0MlevDh6
tr//9MDA76f948GG45hmxbieZu/oPWubrLp2gJJb06ZZ1AePHo2zJmuqbPTO
VQN/7I/gJm08aLpEYeRHWzw036WtYxjxuoLrFBHvVXbnKnvpRssqb+7sQ1zZ
DoDNNlP3Cy8fz+mxzNJPX/5dh292M87ZruOxn417XWvoxsK4jnWYeN9SNmBk
1zJS3IzTd+DnfTNvxFN8DhAKN7ac3dm9x3v7xpiihbr7z77/Vn799vHTXY/Q
u3tP5dfvd/e/87/uPX1MaI64fHR6/vLkon/59vTqcg06397eDvKsyAiNM0Ci
62IOhLJ+hBi7yAAtgS5X7T8H76fNfLadftjfT/GaUC9fTBGTlzlQ9y2137Py
xs2H8BXs+Ykx/X7fZsMaL1ZjzNU0ry3cqSUuxY5dParyoattZmGmaTm2cLlt
Nh4jWT6q7hZNCfdnMc1HdgH470YNXAXTlF96Wwb2Cl/wzMkQZYbpJ3nhxnz7
9Lrg97xokLGMLUzmimw4cxaOdb4scuBjMENtFlV+k43ueMWLxcx/AWNljV3W
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

-->

</rfc>
