<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-westerlund-tsvwg-sctp-dtls-chunk-03" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <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-03"/>
    <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
      <organization>Ericsson</organization>
      <address>
        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
      <organization>Ericsson</organization>
      <address>
        <email>claudio.porfiri@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <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 320,64 L 424,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 424,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 336,128 L 352,128" fill="none" stroke="black"/>
                <path d="M 200,176 L 216,176" fill="none" stroke="black"/>
                <path d="M 8,208 L 184,208" fill="none" stroke="black"/>
                <path d="M 224,208 L 400,208" fill="none" stroke="black"/>
                <path d="M 192,240 L 216,240" fill="none" stroke="black"/>
                <path d="M 408,240 L 424,240" fill="none" stroke="black"/>
                <path d="M 8,272 L 184,272" fill="none" stroke="black"/>
                <path d="M 224,272 L 400,272" fill="none" stroke="black"/>
                <path d="M 200,304 L 216,304" fill="none" stroke="black"/>
                <path d="M 8,336 L 184,336" fill="none" stroke="black"/>
                <path d="M 184,272 L 200,304" fill="none" stroke="black"/>
                <path d="M 320,96 L 336,128" fill="none" stroke="black"/>
                <path d="M 184,208 L 200,176" fill="none" stroke="black"/>
                <path d="M 424,64 C 432.83064,64 440,71.16936 440,80" fill="none" stroke="black"/>
                <path d="M 424,240 C 432.83064,240 440,232.83064 440,224" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="416,240 404,234.4 404,245.6" fill="black" transform="rotate(180,408,240)"/>
                <polygon class="arrowhead" points="224,240 212,234.4 212,245.6" fill="black" transform="rotate(0,216,240)"/>
                <polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(180,192,240)"/>
                <g class="text">
                  <text x="228" y="52">DTLS</text>
                  <text x="264" y="52">1.3</text>
                  <text x="356" y="52">Keys</text>
                  <text x="72" y="68">ULP</text>
                  <text x="192" y="84">Key</text>
                  <text x="252" y="84">Management</text>
                  <text x="480" y="100">API</text>
                  <text x="380" y="116">User</text>
                  <text x="384" y="132">Level</text>
                  <text x="36" y="148">SCTP</text>
                  <text x="84" y="148">Chunks</text>
                  <text x="144" y="148">Handler</text>
                  <text x="396" y="148">Messages</text>
                  <text x="244" y="180">SCTP</text>
                  <text x="312" y="180">Unprotected</text>
                  <text x="392" y="180">Payload</text>
                  <text x="92" y="228">DTLS</text>
                  <text x="300" y="228">DTLS</text>
                  <text x="336" y="228">1.3</text>
                  <text x="96" y="244">Chunk</text>
                  <text x="96" y="260">Handler</text>
                  <text x="276" y="260">Protection</text>
                  <text x="356" y="260">Operator</text>
                  <text x="36" y="308">SCTP</text>
                  <text x="84" y="308">Header</text>
                  <text x="144" y="308">Handler</text>
                  <text x="244" y="308">SCTP</text>
                  <text x="304" y="308">Protected</text>
                  <text x="376" y="308">Payload</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+---------------+ +--------------------+
|               | |       DTLS 1.3     |  Keys
|      ULP      | |                    +-------------.
|               | |   Key Management   |              |
+---------------+-+---+----------------+            --+-- API
|                     |                 \    User     |
|                     |                  +-- Level    |
| SCTP Chunks Handler |                      Messages |
|                     |                               |
|                     | +-- SCTP Unprotected Payload  |
|                     |/                              |
+---------------------+    +---------------------+    |
|        DTLS         |    |       DTLS 1.3      |    |
|        Chunk        |<-->|                     |<--'
|       Handler       |    | Protection Operator |
+---------------------+    +---------------------+
|                     |\
| SCTP Header Handler | +-- SCTP Protected Payload
|                     |
+---------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Use of the DTLS chunk is defined per SCTP association.</t>
        <t>On the outgoing direction, once the SCTP stack has created the
unprotected SCTP packet payload containing control and/or DATA chunks,
that payload will be sent to the DTLS Protection Operator to be
protected. The format of the protected payload is a DTLS 1.3 record
encapsulated in a SCTP chunk which is named the DTLS chunk.</t>
        <t>The SCTP Protection Operator performs protection operations on the
whole unprotected SCTP packet payload, i.e., all chunks after the SCTP
common header. Information protection is kept during the lifetime of
the association and no information is sent unprotected except than the
initial SCTP handshake, DTLS handshake, the SCTP common
header, the SCTP DTLS chunk header, the INIT and INIT-ACK of an SCTP
association restart, and the SHUTDOWN-COMPLETE chunk.</t>
        <t>SCTP DTLS chunk capability is agreed by the peers at the
initialization of the SCTP association. Until the DTLS protection has
been keyed only plain text key-management traffic using a dedicated
PPID (4242) may flow, no ULP traffic. The key management function uses
an API to key the DTLS protection operation function. Usage of the
DTLS 1.3 handshake for initial mutual authentication and key
establishment as well as periodic re-authentication and rekeying with
Diffe-Hellman of the DTLS chunk protection is defied in a seperate
document <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>.</t>
        <t>When the endpoint authentication and key establishment has been
completed, the association is considered to be secured and the ULP is
informed about that. From this time on it's possible for the ULPs to
exchange data securely.</t>
        <t>A DTLS chunk will never be retransmitted, retransmission is implemented
by SCTP endpoint at chunk level as specified in <xref target="RFC9260"/>. DTLS replay
protection will be used to supress duplicated DTLS chunks, however a
failure to prevent replay will only result in duplicated SCTP chunks and
will be handled as duplicated chunks by SCTP endpoint in the same way
a duplicated SCTP packet with those SCTP chunks would have been.</t>
      </section>
      <section anchor="DTLS-engines">
        <name>DTLS Considerations</name>
        <t>The DTLS Chunk architecture splits DTLS 1.3 as shown in
<xref target="sctp-DTLS-chunk-layering"/>, where there's a Key Management functionality
on top of SCTP Chunks Handler and a Protection Operator functionality
interfacing DTLS Chunk Handler.</t>
        <t>Key Management is the set of data and procedures that take care of key
distribution, verification, and update, DTLS connection setup, update and
maintenance.</t>
        <t>Protection Operator functionality is the set of data and procedures
taking care of User Data encryption into DTLS Record and DTLS record
decryption into User Data.</t>
        <t>DTLS 1.3 operations requires to directly handshake messages with the
remote peer for connection setup and other features, this kind of
handshake is part of the Key Management functionality.  Key Management
function achieves these features behaving as a SCTP User.  Key
Management sends and receives its own data via the SCTP User Level
interface.  Key Management's own data are distinguished from any other
data by means of a dedicated PPID using the value 4242 (see
<xref target="iana-payload-protection-id"/>).</t>
        <t>Once the Key Management has established the DTLS 1.3 connection,
it can set the Protection Operator for User Data encryption/decription
via the API shown in <xref target="sctp-DTLS-chunk-layering"/>.</t>
        <t>DTLS 1.3 handshake messages, that are transported as SCTP User Data
with dedicated PPID = 4242, SHALL be sent and received as plain DATA
chunks 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.
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>
    <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>
          </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.</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="2024" month="October"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963obR3bg/3qKWuqHxRiAJEqWZX5xEoqkRowlkitS9mST
fPs1gQbZEdANdzdIcSTtq+w+yP7avNiea9WpRgOUPLazmR1OYpFAd11OnTr3
y3A4dJNqXGbzfNdP6mzaDm/yps3r2bKcDNvm+uZy2IzbxXDSzprh+GpZvhs+
fOzaop3BC2dtnWdzv1+VbV3N/Hmdlc28aJqiKv1pXbXVGD69f7Z/frrtD85f
nfl9HMBlFxd1fg2vwxf28+qiqWZ5mze7bpy1u75pJ65Y1Lu+rZdNu/Pw4XcP
d9zN5a4/P/vxpz+4DCbf5UkXVd26Znkhk7e3C1jd0eH5C+/v+WzWVLt+qygn
+SKH/5Tt1sBvHe09h3+qGn57c/5iy7nrvFzmu877y7paLszAfg8m8j9V9bui
vPR/wG/9fQLNNjw9z4oZrBD//Icib6ejqr7EQYr2anmx6y9nVVEuZw82wRZB
wLB1Llu2V1W964Ywhi/KZtf71yP/U3gPP+bTep1dlsum8xVMvusP62LcNFWJ
H+S8vjk9PIrz/0MuD43G1dzM9o8jOLl8+e//E8ZvWx2FZ/zH6qrs+3bdpP8G
z4/m8uC6CfdhwqqeFnURJ9qfZctJUdkv1s0x5kdHC340ncUV5bSqYQXFNZ3s
mxf7z548ebrr4Pej4cFow3FcZeWkucre0Xvet1l9mQNKbl217aLZffBgkrVZ
W2fjd3k90mN/ADdp40HTJQojP9jiofkubR3AiJc1XKeIeK+y27z2Z/l4WRft
rb+PK9sGsPn2Kv+Fl4/nVCzz9DOUf9fhm9+Mc77vePxn417fGvqxMK5jHSbe
tZQNGNm3jBQ34/Q9+HnXzBvxFJ8DhIKRT8ZtdQFnvvNw54lzruxg75Nn330j
v37z8Okj+fXpw2ePFb0f7TyVX7979ORb/XXn6UNCesTs/aPTl4dvhmdvj87P
1iD3zc3NqMjKjJA6A5S6LOdANpsHiL+LDJAUqHTd/XP0/qqdz+6lHw6fpFhO
iFgsrhCvlwXQ+i2z++PqOp/L9h87NxwOfXbR4DVrnTu/KhoPN2yJS/GTvBnX
xUXe+MzDTFfVxMNV99lkgkR6v75dtBXcpsVVMfYLuA35uIWL4drqS+/OyJ/j
C8qqHNFpmH5alPmE76JdF/xelC2ymYmHyfIyu5jlHg55viwL4GowQ+MWdXGd
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
2cqh8HafvFGPrwr8lBpC/1+ViNGi8O4AAA==

-->

</rfc>
