<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-westerlund-tsvwg-sctp-dtls-chunk-04" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-04"/>
    <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="2025" month="March" day="03"/>
    <area>Transport</area>
    <workgroup>TSVWG</workgroup>
    <abstract>
      <?line 72?>

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

<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 328,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="336,64 324,58.4 324,69.6" fill="black" transform="rotate(180,328,64)"/>
                <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"/>. At this stage the
Key Management functions usage of protection operation on it's DTLS
plain text messages needs to be synchronized with the DTLS chunk's
protection operations to avoid nonce re-usage and replay
protection. Alternatively the key management can use the DTLS chunk's
session instance to protect it's messages.</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 until the Association has reached the PROTECTED state
(<xref target="init-state-machine"/>).  From that time on, DTLS 1.3 handshake
messages SHALL be transported as SCTP User Data with dedicated PPID =
4242 within DTLS chunks, same as ULP data traffic.</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 ensure 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 initiate two
new DTLS connection as soon as possible, one as replacement restart
DCI, the other as a new traffic DCI, 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 Record <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 and a maximum of 32.
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 (Extra Cause above) 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>If in-band DTLS handshake <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>
is used to establish the security parameters for the DTLS Chunks, DTLS
1.3 initializes itself by transferring its own handshake messages as
payload of the DATA chunk. The DTLS Chunk initialization SHOULD be
supervised by a T-valid timer that accomodates 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"/>. The Association initiator and responder
will independently enter VALIDATION state when the security parameters
are locally installed for the DTLS chunk. During VALIDATION state
both initiator and responder SHALL handle plain text chunks as well as
DTLS chunks.</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 keys are installed, 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 will be done reliably using an RTO
timeout based mechanism, see below. The responder receiving the PVALID
chunk will compare the indicated solutions with the ones previously
received as parameters in the INIT chunk. The responder will ignore
unknown parameters and security solutions. For the supported solutions
if the parameters in the INIT matches what is listed in the PVALID and
there are no additional by the endpoint supported solution in the
PVALID, 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 entering PROTECTED state, the initiator and the responder
independently SHALL stop handling plain text chunks, i.e. those
chunks will be silently discarded. PVALID chunks received in
PROTECTED state will be threated as retransmission, thus the
initiator receiving a PVALID in PROTECTED state SHALL ignore it,
whereas the responder receiving a PVALID state in PROTECTED
state SHALL properly reply with PVALID chunk as described
above.</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. To optimize the completion
of the validation in case the PVALID from the responder is lost, if
the initiator receives other chunks protected the DTLS chunk
it MAY immediately, or with a small delay to ensure that no-reorder
has occurred, restransmit its PVALID chunk.</t>
        <t>If T-valid timer expires either at initiator or responder, the
endpoint 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 SHALL be
exchanged in the protected SCTP association.</t>
        <t>When entering the PROTECTED state, a Restart DTLS connection
SHOULD be created.</t>
        <section anchor="offering-multiple-security-solutions">
          <name>Offering Multiple Security Solutions</name>
          <t>An initiator of an SCTP association may want to offer multiple
different security solutions in addition to DTLS 1.3 chunks for the
SCTP association. This can be done but need to consider the downgrade
attack risks (see <xref target="Downgrade-Attacks"/>).</t>
          <t>The initiator MAY include in its INIT additional security solutions
that are compatible to offer in parallel with DTLS 1.3 Chunks. This
includes <xref target="RFC6083"/> or more likely its replacement. This will result
in that a number of different SCTP parameters may be included that are
not possible to use simultanous. Instead the responder needs to parse
these parameters to figure out which sets of solutions that are
offered that the implementation support, and apply its security
policies to select the most approriate. For example an offer of DTLS
1.3 Chunks and RFC 6083, can be interpreted as three different
solutions with different properties, namely DTLS 1.3 Chunks,
DTLS/SCTP, and SCTP-AUTH only.</t>
          <t>The responder selects one or possibly more of compatible security
solutions that can be used simultanously and include them in the
response (INIT-ACK). If DTLS 1.3 chunks was selected the initiator
will later send the PVALID chunk indicating all the offered
solutions. This to prevent downgrade attacks where sent solution have
been removed on-path.</t>
        </section>
      </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 232,144 L 232,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 232,144" fill="none" stroke="black"/>
                <path d="M 8,176 L 232,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="164" y="164">INITIALIZATION</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 INITIALIZATION |
+------------+--------------+
             |
             | 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 INITIALIZATION state, in-band
DTLS key management <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/> SHALL
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 value = 4242, those chunks SHALL be
sent and received using DTLS Chunks with the current CID.</t>
        <t>The use of plain DATA chunk with PPID value = 4242 before the
association reaches the PROTECTED state cannot be avoided as
no valid DTLS CID exist until that state.
Further in-band key management SHALL NOT use plain DATA chunks
as this would allow attackers to inject overlapping DATA chunks
with protected and impact the content of the SACK block.
Based on that, as soon as the initiator or responder
independently enter PROTECTED state, they will silently discard
any plain chunks. Plain chunks that were sent but not
received yet will also be discarded as the SCTP protocol
does guarantee the needed retransmissions.</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 are sent in these states and DATA chunks
received are silently discarded, see <xref target="RFC9260"/>.</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"/>.</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, VALIDATION and PROTECTED, until a newely
established traffic DCI are ready to be used instead to protect
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 in PROTECTION INITIALIZATION, and VALIDATION
(for retransmissions).</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 protected 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 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 chunk bundling <xref target="RFC9260"/> SHALL NOT be
performed. If a SCTP packet with chunk 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 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. This is an
example API and there are alternative implementations.</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 anchor="protect-handshake-message">
        <name>Protect Handshake Message</name>
        <t>Optional API function that can be one way to handle the need to
synchronize the DTLS record protection operations usage of nonce
values to avoid reuse and replay protection. With this realization the
nonce state is kept by the DTLS chunk function. When the handshake
function needs to send a DTLS message, e.g. key_update, which uses
DTLS epoch=3 or higher, it uses the DTLS chunk protection operation. The
protected DTLS record is returned to the DTLS handshake
implementation, which then sends it as SCTP user data.</t>
        <t>Request : Protect Handshake message</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>Epoch</t>
          </li>
          <li>
            <t>Plain Text Message</t>
          </li>
        </ul>
        <t>Reply: Protected DTLS record.</t>
      </section>
      <section anchor="deprotect-handshake-message">
        <name>Deprotect Handshake Message</name>
        <t>Optional API function that can be one way to handle the need to
synchronize the DTLS record protection operations usage of nonce
values to avoid reuse and ensure replay protection. This funciton
takes a protected DTLS record that the handshake has been received as
SCTP user data using an DTLS epoch= 3 or higher for this DTLS connection.
The function attempts to decrypt, verify integrity and check replay
protection and if successful return the plain text payload,
alternatively indicate the invalidity of the payload.</t>
        <t>Request : Deprotect Handshake message</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 record</t>
          </li>
        </ul>
        <t>Reply: Plain Text DTLS message or failure indicator</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>For each DTLS connection, there are certain crypto state infomration
that needs to be handled thread safe to avoid nonce re-use and correct
replay protection. This arises as the key materials for DTLS epoch=3 and higher
are shared between the DTLS chunk and the DTLS handshake parts.</t>
      <t>This issue is primarily for implementations of SCTP implementation
and thus the DTLS chunk implementation resides in kernel space, and the
DTLS handshake resides in user space. For user space implementations
where both DTLS handshake messages and SCTP message protection can directly
call the same DTLS implementation instance the issue is avoided.</t>
      <t>The abstract API <xref target="abstract-api"/> includes a proposal for how to handle
this challenge by using an API function call to protect the plain text
message, and another for decrypting and verifying the integrity.</t>
      <t>It needs to be noted that DTLS handshake messages sent after DTLS
connection establishment will be protected twice. First before being
sent as SCTP user data, and then a second time as part of DATA Chunks
in SCTP packets. The extra overhead is minimal as the number of these
messages are very limited. However, care needs to be take with the replay
protection, as when deprotecting the DTLS message that DTLS record
sequence number will be lower than the latest received for an SCTP
message.</t>
    </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>
      </ul>
      <t>And finally the update of one registred SCTP Paylod Protocol
Identifier.</t>
      <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>
            <tr>
              <td align="right">2-1023</td>
              <td align="left">Available for Assignmnet</td>
              <td align="left"> </td>
              <td align="left"> </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>Use of the SCTP DTLS chunk provides privacy to SCTP by protecting user
data and much of the SCTP control signaling. The SCTP association is
identifiable based on the 5-tuple where the destination IP and
port are fixed for each direction. Advanced privacy features such
as changing Connection ID and sequence number encryption might
therefore have limited effect.</t>
      </section>
      <section anchor="aead-limit-considerations">
        <name>AEAD Limit Considerations</name>
        <t>Section 4.5.3 of <xref target="RFC9147"/> defines limits on the number of records
q that can be protected using the same key as well as limits on the
number of received packets v that fail authentication with each key.
To adhere to these limits the key management function can
periodically poll the DTLS protection operation function to see
when a limit have been reached or is closed to being reached.
Instead of periodic polling, a callback can be used.</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. We also like
   to thank Amanda Baber with IANA for feedback on our IANA registry.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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="RFC6083" target="https://www.rfc-editor.org/info/rfc6083" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6083.xml">
          <front>
            <title>Datagram Transport Layer Security (DTLS) for Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document describes the usage of the Datagram Transport Layer Security (DTLS) protocol over the Stream Control Transmission Protocol (SCTP).</t>
              <t>DTLS over SCTP provides communications privacy for applications that use SCTP as their transport protocol and allows client/server applications to communicate in a way that is designed to prevent eavesdropping and detect tampering or message forgery.</t>
              <t>Applications using DTLS over SCTP can use almost all transport features provided by SCTP and its extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6083"/>
          <seriesInfo name="DOI" value="10.17487/RFC6083"/>
        </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="2025" month="March"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963obR3bg/3qKWuqHyTEASRQty/ziJBRJjRhLJFekxpNN
8uVrAg2yI6Ab7m6Q4kjKq+w+yP7avNiea9WpRoOUPLazmR1OYpFAd11OnTr3
y3A4dJNqXGbzfNdP6mzaDm/yps3r2bKcDNvm+uZy2IzbxXDSzprh+GpZvhs+
2nFt0c7ghbO2zrO536/Ktq5m/rzOymZeNE1Rlf60rtpqDJ9unu2fn275g/NX
Z34fB3DZxUWdX8Pr8IX9vLpoqlne5s2uG2ftrm/aiSsW9a5v62XTbj969N2j
bXdzuevPz/7w4+9dBpPv8qSLqm5ds7yQydvbBazu6PD8hfcPfDZrql2/UZST
fJHDf8p2Y+A3jvaewz9VDb+9OX+x4dx1Xi7zXef9ZV0tF2ZgvwcT+R+r+l1R
Xvrf47d+k0CzBU/Ps2IGK8Q//77I2+moqi9xkKK9Wl7s+stZVZTL2cO7YIsg
YNg6ly3bq6redUMYwxdls+v965H/MbyHH/Npvc4uy2XT+Qom3/WHdTFumqrE
D3Je35weHsX5/z6Xh0bjam5m+4cRnFy+/I//CeO3rY7CM/5DdVX2fbtu0n+D
50dzeXDdhPswYVVPi7qIE+3PsuWkqOwX6+YY86OjBT+azuKKclrVsILimk72
zYv9Zzs7T3cd/H40PBjdcRxXWTlprrJ39J73bVZf5oCSG1dtu2h2Hz6cZG3W
1tn4XV6P9Ngfwk2686DpEoWRH27w0HyXNg5gxMsarlNEvFfZbV77s3y8rIv2
1m/iyrYAbL69yn/m5eM5Fcs8/Qzl33X45u/GOd93PP6zca9vDf1YGNexDhPv
W8odGNm3jBQ34/Q9+HnfzHfiKT4HCEUArsdXfvvR9jfOubKDuzvPvvtGfv3m
0dPH8uvTR8+eKHI/3n4qv373eOdb/XX76SNCecTr/aPTl4dvhmdvj87P1qD2
zc3NqMjKjFA6A4S6LOdANJuHiL2LDFAUaHTd/XP0/qqdzx6kHw53UhwnNCwW
V4jVywIo/YbZ+3F1nc8v4CvY/hPnhsOhzy4avGStc+dXRePhfi1xKX6SN+O6
uMgbn3mY6aqaeLjoPptMkETv17eLtoK7tLgqxn4BdyEft3AtXFt96c0Z+XN8
QRmVIyoN00+LMp/wTbTrgt+LskUmM/EwWV5mF7PcwxHPl2UBPA1maNyiLq6z
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
Mnmo8nxC1BJxaFnzFyrKjtz/BQSngMrK+wAA

-->

</rfc>
