<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tsvwg-sctp-dtls-chunk-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SCTP DTLS Chunk">Stream Control Transmission Protocol (SCTP) DTLS Chunk</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-sctp-dtls-chunk-01"/>
    <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>
    <author initials="M." surname="Tüxen" fullname="Michael Tüxen">
      <organization abbrev="Münster Univ. of Appl. Sciences">Münster University of Applied Sciences</organization>
      <address>
        <postal>
          <street>Stegerwaldstrasse 39</street>
          <city>Steinfurt</city>
          <code>48565</code>
          <country>Germany</country>
        </postal>
        <email>tuexen@fh-muenster.de</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Transport</area>
    <workgroup>TSVWG</workgroup>
    <abstract>
      <?line 89?>

<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-ietf-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 101?>

<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
   its 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 separately 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 explicitly 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 can be used for secure and confidential transfer of
SCTP packets. This is implemented inside the SCTP protocol.
Once an SCTP packet has been received and the SCTP common header has
been used to identify the SCTP association, the DTLS chunk is processed by
the Chunk Protection Operator that will perform replay protection, decrypt,
verify authenticity, and if the DTLS chunk is successfully processed provides
the protected SCTP chunks for further processing.
<xref target="sctp-DTLS-chunk-layering"/> is an example
illustrating the DTLS chunk processing in regard
to SCTP and the Upper Layer Protocol (ULP) using
DTLS 1.3 for key management. Here the Key Management function
contains validation, i.e. using certificates, handshaking,
updating policies etc.</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="464" width="440" viewBox="0 0 440 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,272" fill="none" stroke="black"/>
                <path d="M 8,368 L 8,448" fill="none" stroke="black"/>
                <path d="M 72,280 L 72,320" fill="none" stroke="black"/>
                <path d="M 96,320 L 96,360" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,272" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,272" fill="none" stroke="black"/>
                <path d="M 168,80 L 168,224" fill="none" stroke="black"/>
                <path d="M 176,384 L 176,432" fill="none" stroke="black"/>
                <path d="M 192,64 L 192,96" fill="none" stroke="black"/>
                <path d="M 192,128 L 192,160" fill="none" stroke="black"/>
                <path d="M 192,208 L 192,256" fill="none" stroke="black"/>
                <path d="M 280,160 L 280,208" fill="none" stroke="black"/>
                <path d="M 288,280 L 288,320" fill="none" stroke="black"/>
                <path d="M 352,384 L 352,432" fill="none" stroke="black"/>
                <path d="M 368,64 L 368,96" fill="none" stroke="black"/>
                <path d="M 368,128 L 368,160" fill="none" stroke="black"/>
                <path d="M 368,208 L 368,256" fill="none" stroke="black"/>
                <path d="M 392,80 L 392,400" fill="none" stroke="black"/>
                <path d="M 408,32 L 408,272" fill="none" stroke="black"/>
                <path d="M 408,368 L 408,448" fill="none" stroke="black"/>
                <path d="M 8,32 L 136,32" fill="none" stroke="black"/>
                <path d="M 152,32 L 408,32" fill="none" stroke="black"/>
                <path d="M 192,64 L 368,64" fill="none" stroke="black"/>
                <path d="M 168,80 L 184,80" fill="none" stroke="black"/>
                <path d="M 368,80 L 392,80" fill="none" stroke="black"/>
                <path d="M 192,96 L 368,96" fill="none" stroke="black"/>
                <path d="M 192,128 L 368,128" fill="none" stroke="black"/>
                <path d="M 168,144 L 192,144" fill="none" stroke="black"/>
                <path d="M 192,160 L 368,160" fill="none" stroke="black"/>
                <path d="M 192,208 L 368,208" fill="none" stroke="black"/>
                <path d="M 168,224 L 184,224" fill="none" stroke="black"/>
                <path d="M 192,256 L 368,256" fill="none" stroke="black"/>
                <path d="M 8,272 L 136,272" fill="none" stroke="black"/>
                <path d="M 152,272 L 408,272" fill="none" stroke="black"/>
                <path d="M 72,320 L 288,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 408,368" fill="none" stroke="black"/>
                <path d="M 176,384 L 352,384" fill="none" stroke="black"/>
                <path d="M 360,400 L 392,400" fill="none" stroke="black"/>
                <path d="M 176,432 L 352,432" fill="none" stroke="black"/>
                <path d="M 8,448 L 408,448" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,360 388,354.4 388,365.6" fill="black" transform="rotate(90,392,360)"/>
                <polygon class="arrowhead" points="368,400 356,394.4 356,405.6" fill="black" transform="rotate(180,360,400)"/>
                <polygon class="arrowhead" points="296,280 284,274.4 284,285.6" fill="black" transform="rotate(270,288,280)"/>
                <polygon class="arrowhead" points="192,224 180,218.4 180,229.6" fill="black" transform="rotate(0,184,224)"/>
                <polygon class="arrowhead" points="192,80 180,74.4 180,85.6" fill="black" transform="rotate(0,184,80)"/>
                <polygon class="arrowhead" points="104,360 92,354.4 92,365.6" fill="black" transform="rotate(90,96,360)"/>
                <polygon class="arrowhead" points="80,280 68,274.4 68,285.6" fill="black" transform="rotate(270,72,280)"/>
                <g class="text">
                  <text x="72" y="52">ULP</text>
                  <text x="268" y="52">DTLS</text>
                  <text x="304" y="52">1.3</text>
                  <text x="240" y="84">Key</text>
                  <text x="292" y="84">Exporter</text>
                  <text x="240" y="148">Key</text>
                  <text x="300" y="148">Management</text>
                  <text x="224" y="196">ContentType</text>
                  <text x="284" y="228">Record</text>
                  <text x="244" y="244">Protection</text>
                  <text x="324" y="244">Operator</text>
                  <text x="420" y="324">keys</text>
                  <text x="68" y="340">PPID</text>
                  <text x="92" y="404">SCTP</text>
                  <text x="272" y="404">Chunk</text>
                  <text x="228" y="420">Protection</text>
                  <text x="308" y="420">Operator</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+---------------+ +-------------------------------+
|      ULP      | |            DTLS 1.3           |
|               | |    +---------------------+    |
|               | | +->+    Key Exporter     +--+ |
|               | | |  +---------------------+  | |
|               | | |                           | |
|               | | |  +---------------------+  | |
|               | | +--+    Key Management   +  | |
|               | | |  +----------+----------+  | |
|               | | |             |             | |
|               | | | ContentType |             | |
|               | | |  +----------+----------+  | |
|               | | +->|        Record       |  | |
|               | |    | Protection Operator |  | |
+               | |    +----------+----------+  | |
+-------+-------+ +-----------------------------+-+
        ^                          ^            |
        |                          |            |
        +--+-----------------------+            | keys
      PPID |                                    |
           V                                    V
+-----------------------------------------------+-+
|                    +---------------------+    | |
|        SCTP        |         Chunk       |<---+ |
|                    | Protection Operator |      |
|                    +---------------------+      |
+-------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the outgoing direction, once the SCTP stack has created the
unprotected SCTP packet containing control and/or DATA chunks,
SCTP chunks will be processed by the Chunk Protection Operator to be
protected. The result of this computation is a DTLS 1.3 record
encapsulated in a SCTP chunk which is named the DTLS chunk.</t>
        <t>The Chunk Protection Operator performs protection operations on all
chunks of an SCTP packet. Information protection is kept during the lifetime of
the association and no information is sent unprotected except the
initial SCTP handshake, any initial key-management traffic, the SCTP
common header, the SCTP DTLS chunk header, and the INIT and INIT-ACK
chunks during an SCTP Restart procedure.</t>
        <t>The support of the DTLS chunk and the key-management method to use is
negotiated by the peers at the setup of the SCTP association using a
new parameter. Key management and application traffic is multiplexed
using the PPID. The dedicated PPID 4242 is defined for use by key
management for DTLS chunk. The key management function uses an API to
key the Chunk 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 defined in separate documents,
(see <xref target="sctp-protection-solutions"/>). To prevent
downgrade attacks of the key-management negotiation the key-management
should implement specific procedures when deriving keys.</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 with its peer.</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 suppress duplicated DTLS chunks.</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 the Key Management functionality
is done at DTLS 1.3 block level, acting as a parallel User Level Protocol
and a Chunk Protection Operator functionality inside the SCTP
Protocol Stack.</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>Chunk 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 user of the SCTP
association.  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 Key Management has established a DTLS 1.3 connection, it can
derive primary and restart keys and set the Chunk Protection Operator
for SCTP Packet Payload encryption/decryption via an API to create the
necessary DTLS key contexts. Both a DTLS Key context for normal use
(primary) and a DTLS Key context for SCTP association restart needs to
be created.</t>
        <t>In this document we use the terms DTLS Key context for indicating a
Key and IV, produced by the key-management, and all relevant data that
needs to be provided to the Chunk Protection Operator for DTLS encryption
and decryption.  DTLS Key context includes Keys and IV for sending and
receiving, replay window, last used sequence number. Each DTLS key
context is associated with a four-value tuple identifying the context,
consisting of SCTP Association, the restart indicator, the DTLS
Connection ID (if used), and the DTLS epoch.</t>
        <t>Support of DTLS Connection ID in the DTLS Record layer used in the
DTLS Chunk is OPTIONAL, and negotiated using the key-management
function.</t>
        <t>The first established DTLS key context for any SCTP association and DTLS
connection ID (if used) SHALL use epoch=3. This ensures that the
epoch of the DTLS key context will normally match the epoch of
a DTLS key-management connection.</t>
        <t>The Replay window for the 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
accommodate latency differences.</t>
      </section>
      <section anchor="sctp-protection-solutions">
        <name>Considerations about SCTP Protection Solutions</name>
        <t>This document specifies the mechanisms for SCTP to be protected with
DTLS, it doesn't specify how the Key Management works, being limited
on what the Key Management SHALL provide for achieving the protection.
Even though DTLS1.3 is indicated as protocol for providing Key
Contexts, different implementations can achieve that and different
mechanisms may be used for features such as mutual authentication,
rekeying etc.  The DTLS Chunk solution may use a number of Key
Management mechanisms depending on what is being implemented and
available and/or according to the local policies.  Key Management
methods are called here Protection Solutions, they are defined in
their own specific documents, and needs to be registered in the IANA
Registry "SCTP Protection Solutions" to get their own unique identifier.
This document constitutes a requirement towards any SCTP
Protection Solution.</t>
        <t>Currently there are two in-band DTLS key management solutions defined,
they have different properties. See
<xref target="I-D.ietf-tsvwg-dtls-chunk-key-management"/> and
<xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>.</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
Chunk 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 Chunk 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 the AEAD
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 Chunk 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 Chunk Protection Operator discards packets due to replay
protection, or integrity errors depending on network induced bit
errors or malicious modifications. 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 Chunk 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="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. Note that trial decoding should
have a limit in number of tried contexts to prevent denial of service
attacks on the endpoint.</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 Section 5.2 of <xref target="RFC9260"/>
with the purpose of achieving a Restart of the current Association,
thus implementing SCTP Restart.</t>
        <t>This specification doesn't support SCTP Restart as described in
<xref target="RFC9260"/> because the COOCKIE-ECHO and COOKIE-ACK chunks
are sent encrypted (see <xref target="protected-restart"/>);</t>
        <t>When the upper layer protocols require support of SCTP Restart, as in
case of 3GPP NG-C protocol <xref target="ETSI-TS-38.413"/>, the endpoint needs to
support also initiating protected SCTP Restart procedure described in
<xref target="protected-restart"/>. Implementing initiating protected restart
procedure is RECOMMENDED, however not required as persistent secure
storage of the restart DTLS Key Context is needed.</t>
        <t>The cases where one of the SCTP Endpoints only implements initiating
legacy SCTP Restart are described in <xref target="sctp-rest-comp"/>.</t>
        <section anchor="protected-restart">
          <name>Protected SCTP Restart</name>
          <t>The protected SCTP Restart procedure keeps the security
characteristics of an SCTP Association using DTLS Chunk.</t>
          <t>In protected SCTP Restart, INIT and INIT-ACK chunks are sent
strictly according to  <xref target="RFC9260"/>, but COOCKIE-ECHO and COOKIE-ACK chunks
are encrypted using DTLS Chunks and Restart DTLS Key contexts.</t>
          <t>In order to support protected SCTP Restart, the SCTP Endpoints shall allocate
and maintain dedicated Restart DTLS Key contexts, SCTP packets
protected by these contexts will be identified in the DTLS chunk with
the R (Restart) bit set (see <xref target="DTLS-chunk"/>).  Both SCTP Endpoints
needs to ensure that Restart DTLS key contexts is preserved for
supporting the protected SCTP Restart use case.</t>
          <t>In order for the protected SCTP endpoint to be available for protected SCTP
Restart purposes, the DTLS chunk needs access to a DTLS Key context for
this SCTP association that needs to be kept in a well-known state so
that both SCTP Endpoints are aware of the DTLS sequence numbers and
replay window, i.e. initialized but never used. An SCTP Endpoint SHALL
NEVER use the SCTP Restart DTLS Key for any other use case than SCTP
association restart.</t>
          <t>An SCTP endpoint wanting to be able to initiate a protected SCTP
restart needs to store securely and persistently the restart Keys, DTLS
connection ID (if used) and related DTLS epoch, indexed so that when
performing a restart with the peer node it had a protected SCTP
association which can identify the right restart Key and DTLS epoch and
initialize the restart DTLS Key Context for when restarting the SCTP
association. The keys, DTLS connection ID, and epoch needs to be stored
secure and persistently so that they survive the events that are
causing protected SCTP Restart procedure to be used, for instance a
crash of the SCTP stack. The security considerations for persistent
secure storage of keying materials is further discussed in
<xref target="sec-considertation-storage"/>.</t>
          <t>The SCTP Restart handshakes INIT, INIT-ACK, COOCKIE-ECHO, COOKIE-ACK
exactly as in legacy SCTP Restart case; INIT, INIT-ACK SHALL be
sent plain as in the legacy, whereas COOCKIE-ECHO, COOKIE-ACK
Chunks SHALL be sent as DTLS chunk protected using the restart DTLS key context.</t>
          <t>A DTLS Chunk using the restart DTLS key context is identified by
having the R bit (Restart Indicator) set in the DTLS Chunk (see
<xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>).  There's exactly one
active Restart DTLS Context at a time, the newest. However, a crash at
the time having completed the key-management exchange but failing to
commit the DTLS Key Context to persistent secure storage could result
in loss of the latest DTLS Key Context. Therefore, the endpoints
SHOULD retain the old restart DTLS key context until it the
key-management confirms the new ones are committed to secure storage.
This can for example be ensure that at key-changes signals to
terminate the old DTLS Key Contexts (including the restart) is never
sent until the new restart DTLS Key Context has been committed to
storage.</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="240" width="528" viewBox="0 0 528 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,48 L 40,208" fill="none" stroke="black"/>
                  <path d="M 408,48 L 408,208" fill="none" stroke="black"/>
                  <path d="M 440,64 L 440,96" fill="none" stroke="black"/>
                  <path d="M 440,144 L 440,176" fill="none" stroke="black"/>
                  <path d="M 440,64 L 496,64" fill="none" stroke="black"/>
                  <path d="M 40,80 L 208,80" fill="none" stroke="black"/>
                  <path d="M 248,80 L 400,80" fill="none" stroke="black"/>
                  <path d="M 48,96 L 192,96" fill="none" stroke="black"/>
                  <path d="M 264,96 L 408,96" fill="none" stroke="black"/>
                  <path d="M 440,96 L 496,96" fill="none" stroke="black"/>
                  <path d="M 440,144 L 496,144" fill="none" stroke="black"/>
                  <path d="M 40,160 L 112,160" fill="none" stroke="black"/>
                  <path d="M 320,160 L 400,160" fill="none" stroke="black"/>
                  <path d="M 48,176 L 112,176" fill="none" stroke="black"/>
                  <path d="M 312,176 L 408,176" fill="none" stroke="black"/>
                  <path d="M 440,176 L 496,176" 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,112 C 432.83064,112 440,104.83064 440,96" fill="none" stroke="black"/>
                  <path d="M 424,128 C 432.83064,128 440,135.16936 440,144" fill="none" stroke="black"/>
                  <path d="M 424,192 C 432.83064,192 440,184.83064 440,176" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="408,160 396,154.4 396,165.6" fill="black" transform="rotate(0,400,160)"/>
                  <polygon class="arrowhead" points="408,80 396,74.4 396,85.6" fill="black" transform="rotate(0,400,80)"/>
                  <polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
                  <polygon class="arrowhead" points="56,96 44,90.4 44,101.6" fill="black" transform="rotate(180,48,96)"/>
                  <g class="text">
                    <text x="40" y="36">Initiator</text>
                    <text x="408" y="36">Responder</text>
                    <text x="228" y="84">INIT</text>
                    <text x="472" y="84">Plain</text>
                    <text x="228" y="100">INIT-ACK</text>
                    <text x="136" y="164">[DTLS</text>
                    <text x="212" y="164">CHUNK(COOKIE</text>
                    <text x="292" y="164">ECHO)]</text>
                    <text x="488" y="164">Protected</text>
                    <text x="136" y="180">[DTLS</text>
                    <text x="212" y="180">CHUNK(COOKIE</text>
                    <text x="288" y="180">ACK)]</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
Initiator                                     Responder
    |                                             | -.
    |                                             |   +-------
    +--------------------(INIT)------------------>|   | Plain
    |<-----------------(INIT-ACK)-----------------+   +-------
    |                                             | -'
    |                                             | -.
    |                                             |   +-------
    +---------[DTLS CHUNK(COOKIE ECHO)]---------->|   | Protected
    |<--------[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>The transport of COOCKIE-ECHO, COOCKIE-ACK by means of
DTLS chunk ensures that the peer requesting the restart has been
previously validated and the SCTP state machine after having reached
ESTABLISHED state moves automatically to PROTECTED state.</t>
          <t>A restarted SCTP Association SHALL continue to use the Restart DTLS Key Context,
for User Traffic until a new primary DTLS Key Context will be available. The
implementors SHOULD initiate a rekeying as soon as possible,
and derive the primary and restart keys so that the time when no
Restart DTLS Key Context is available is kept to a minimum. Note that another
restart attempt prior to having created new restart DTLS Key context
for the new SCTP association will result in the endpoints being unable
to restart the SCTP association.</t>
          <t>After restart the next primary DTLS key context SHALL use epoch=3,
i.e. the epoch value is reset. Note that if the restart epoch used
also was 3 when not using any DTLS connection ID, then the
installation of the new restart DTLS key context needs to be done with
some care to avoid dropping valid packets. After having derived new
primary DTLS Key Context the endpoint installs the primary DTLS Key Context first,
and start using it. The new restart DTLS Key Context is only installed
after any old in-flight restart packets will have been received.</t>
        </section>
        <section anchor="sctp-rest-comp">
          <name>Compatibility with Legacy SCTP Restart</name>
          <t>An SCTP Endpoint supporting only legacy SCTP Restart and involved in
an SCTP Association using DTLS Chunks SHOULD NOT attempt to restart
the Association. The effect will be that the restart initiator will
receive INIT-ACK but then all sent packets with COOCKE-ECHO will be
dropped until the peer nodes times out the SCTP Association from lack
of any response from the restarting node.</t>
          <t>An SCTP Endpoint supporting only legacy SCTP Restart and involved
in an SCTP Association using DTLS Chunks, when receiving an COOCKIE-ECHO
chunk protected by DTLS chunk as described in <xref target="protected-restart"/>,
thus having the R bit (Restart Indicator) set in the DTLS Chunk (see
<xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>), will silently discard it.</t>
          <t>Since an SCTP Endpoint supporting only legacy SCTP Restart and involved
in an SCTP Association using DTLS Chunks cannot use SCTP Restart
legacy procedure, in case of need to restart the Association
it SHOULD keep on retrying initiating a new Association
until the remote SCTP Endpoint have closed the existing Association
(i.e. due to timeout) and will accept a new one.
As alternative, depending on the Use Case and the Upper Layer protocol,
it MAY use a different SCTP Source port number so that the peer SCTP Endpoint
will accept the initiation of the new Association while still supervising
the old one.</t>
        </section>
      </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, its
keying method and indicate preference in relation to different keying
and other security solutions. <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 used to the request and acknowledge of support of
DTLS 1.3 Chunk during INIT/INIT-ACK handshake and indicate preference
for keying and the preference order between multiple security
solutions (if supported).</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="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,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 520,160 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="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>
                  <text x="68" y="116">Protection</text>
                  <text x="148" y="116">Solution</text>
                  <text x="196" y="116">#1</text>
                  <text x="324" y="116">Protection</text>
                  <text x="404" y="116">Solution</text>
                  <text x="452" y="116">#2</text>
                  <text x="8" y="148">:</text>
                  <text x="60" y="148">Protection</text>
                  <text x="144" y="148">Solutions</text>
                  <text x="520" y="148">:</text>
                  <text x="60" y="180">Protection</text>
                  <text x="140" y="180">Solution</text>
                  <text x="188" y="180">#N</text>
                  <text x="304" y="180">Padding</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        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protection Solution #1       |  Protection Solution #2       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: Protection Solutions                                          :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protection Solution #N        | Padding                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></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 value holds the length of the parameter, which will be the
number of Protection Solution fields (N) times two plus 4.</t>
          </dd>
          <dt>Protection Solution fields: one or more 16-bit SCTP Protection Solution Identifiers:</dt>
          <dd>
            <t>Each Protection Solution Identifier (<xref target="IANA-Protection-Solution-ID"/>)
is a 16-bit unsigned integer value indicting a Protection
Solution. Protection solutions include both DTLS Chunk based, where
a solution combines the DTLS chunk with a key-management solution,
or non DTLS Chunk based security solution. The Protection Solutions
are listed in descending order of preference, i.e. the first listed
in the parameter is the most preferred and the last the least
preferred by the sender in the INIT chunk. In the INIT-ACK chunk the
endpoint includes all of the offered solutions which it supports and
lists the selected one first. Including its decreasing preference on
the additional Protection Solutions.</t>
          </dd>
        </dl>
        <t>Padding: If the number of included Protection solutions is odd the
parameter MUST be padded with two zero (0) bytes of padding to make
the parameter 32-bit aligned.</t>
        <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-type">
      <name>New Chunk Type</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 text SCTP packet without the SCTP common header.</t>
        <figure anchor="sctp-DTLS-chunk-newchunk-crypt-struct">
          <name>DTLS Chunk Structure</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 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 248,64 L 248,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="180" y="84">reserved</text>
                  <text x="256" y="84">R</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" 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   | reserved    |R|         Chunk Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                            Payload                            |
|                                                               |
|                               +-------------------------------+
|                               |           Padding             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl>
          <dt>reserved: 7 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 a Restart DTLS Key context.</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 DTLSCiphertext as specified in DTLS 1.3 <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>
    <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>DTLS 1.3 Chunk 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, SCTP will send an ABORT
chunk in response to the INIT chunk (Section 5.1 of <xref target="RFC9260"/>
including the error cause 'Policy Not Met' (TBA10)
(see <xref target="IANA-Extra-Cause"/> 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 Parameter</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 in bytes is equal to following with the number of
missing parameters as N: 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 the 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="enocommonpsi">
          <name>No Common Protection Solution</name>
          <t>If the responder to do not support any of the protection solutions
offered by the association initiator in the Protection Soluiton
Parameters <xref target="sctp-DTLS-chunk-init-options"/> SCTP will send an ABORT
chunk in response to the INIT chunk (Section 5.1 of <xref target="RFC9260"/>,
including the error cause "No Common Protection" (TBA11)
(see <xref target="IANA-Extra-Cause"/>).</t>
        </section>
      </section>
      <section anchor="eengine">
        <name>Critical Error from DTLS</name>
        <t>The Chunk Protection Operator MAY inform local SCTP endpoint about errors.
When an Error in the DTLS 1.3 compromises the protection mechanism,
the Chunk 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 SCTP 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 Chunk Protection Operator means that the
Chunk Protection Operator is capable of recovering without the need
of the whole SCTP Association to be re-established.</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 Chunk 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"/>) indicating supported and preferred
key-management solutions (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
containing the selected protection solution out of the set of supported
ones. In case there are no common set of supported solutions that are
accepted by the responder, and the endpoints policy require secured
association it SHALL reply with an ABORT chunk, include the error
cause "No Common Protection" (TBA11) (see <xref target="IANA-Extra-Cause"/>).
Otherwise, the responder MAY send an INIT-ACK without the DTLS 1.3
Chunk Protected Association parameter to indicate it is willing
to create a session without security.</t>
        <t>Additionally, an SCTP Endpoint acting as responder willing to support
only protected associations shall consider an INIT chunk not containing
the DTLS 1.3 Chunk Protected Association parameter or another
Protection Solution accepted by own security policy 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 DTLS Chunk protected
association and the key-management method by means of handshaking
INIT/INIT-ACK the SCTP association establishment continues until it
has reached the ESTABLISHED state.</t>
        <t>When the SCTP session has been established follow the process defined
by the selected key-management solution for establishing DTLS Key Contexts
and installing them.</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 key-management solutions for DTLS Chunk or in combination
with other 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
may include SCTP-AUTH <xref target="I-D.ietf-tsvwg-rfc4895-bis"/>. This will result
in that a number of different SCTP parameters may be included that are
not possible to use simultaneously. 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 appropriate. For example an offer of DTLS
1.3 Chunks and SCTP-AUTH, could be interpreted as three different
solutions with different properties, namely DTLS 1.3 Chunks,
DTLS/SCTP <xref target="RFC6083"/>, and SCTP-AUTH <xref target="I-D.ietf-tsvwg-rfc4895-bis"/> only.
However, here the DTLS 1.3 Chunk Protected Association Parameter can
indicate both preference and which of the solutions that are preferred.</t>
          <t>The responder selects one or possibly more of compatible security
solutions that can be used simultaneously and include them in the
response (INIT-ACK). If DTLS 1.3 chunks was selected and the
Key-Management method follows the recommendation for down-grade
prevention the endpoints can know that down-grade did not happen.</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 chunk SHALL ask the SCTP endpoint for terminating an
association when having an internal error or by detecting a security
violation. Note that the closure of any key-management connection doesn't
compromise the capability of sending and receiving protected
SHUTDOWN-COMPLETE chunks as that capability only relies on the
Key Context and not on the key-management connection from where it has
been derived.</t>
      </section>
      <section anchor="key-management-considerations">
        <name>Considerations on Key Management</name>
        <t>It is up to the upper layer to manage the keys for the DTLS chunk.
The meaning of key-management is described in <xref target="sctp-protection-solutions"/>.</t>
        <t>The key-management SHOULD use a dedicated PPID to ensure that the
key-management related user messages are handled by the appropriate layer.</t>
        <t>When performing key-management, the keys for receiving SHOULD be installed
before the corresponding send keys at the peer. For mitigating downgrade
attacks the key derivation MUST include the protection solution Identifiers
that were sent and received.</t>
        <t>The communication is only protected after both sides have configured the keys
for sending and both sides have enforced the protection.</t>
      </section>
    </section>
    <section anchor="dtls-chunk-handling">
      <name>DTLS Chunk Handling</name>
      <t>The DTLS chunk MUST NOT be bundled with any other chunk.
In particular, it MUST be the first chunk.</t>
      <figure anchor="sctp-DTLS-encrypt-chunk-states-1">
        <name>Unprotected 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 an unprotected SCTP packet as described in <xref target="RFC9260"/>.</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="236" y="116">DTLS</text>
                <text x="280" 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 a protected SCTP packet being sent.
Such packets are built with the SCTP common header.
Only one DTLS chunk can be sent in a SCTP packet.</t>
      <section anchor="dtls-chunk-sending">
        <name>Sending of DTLS Chunks</name>
        <t>When the credentials for sending DTLS chunks have been configured by the
application, all SCTP packets are sent with a DTLS chunk.</t>
        <t>When an SCTP packet needs to be sent, the sequence of chunks is used
as DTLSInnerPlaintext.content and DTLSInnerPlaintext.type is set to
application_data. Then the DTLSCiphertext is computed and used as the
payload of the DTLS chunk. Finally the SCTP common header is prepended.</t>
        <t>When the DTLS chunk is used, the DTLS chunk header and the overhead of DTLS
has to be considered to ensure that the final SCTP packet does not exceed
the PMTU.</t>
      </section>
      <section anchor="dtls-chunk-receiving">
        <name>Receiving of DTLS Chunks</name>
        <t>When an SCTP packet containing a DTLS chunk bundled with any other
chunk is received, the packet MUST be silently discarded.</t>
        <t>After the application has restricted the SCTP packet handling to protected
SCTP packets only, a SCTP packet not containing a DTLS chunk MUST be
silently discarded.</t>
        <t>When processing the payload of the DTLS chunk (i.e. the DTLSCiphertext),
the Restart flag in addition to the unified_hdr is used to find the keys for
processing the encrypted_record.</t>
        <t>After the encrypted_record has been verified and decrypted, the
corresponding chunks (the DTLSInnerPlaintext.content) are processed as
defined in the corresponding specifications.</t>
      </section>
    </section>
    <section anchor="abstract-api">
      <name>Abstract API</name>
      <t>This section describes an abstract API that is needed between a
key-managment function and the DTLS 1.3 chunk. This is an
example API and there are alternative implementations.</t>
      <t>This API enables the cryptographical protection operations by setting
client/server write keys, sequence number keys, and IVs for primary and
restart DTLS contexts. The write key is the used by the cipher suite
for DTLS record protection (Section 5.2 of <xref target="RFC8446"/>. The initilization
vector (IV) is random material used to XOR with the sequence
number to create the nonce per Section 5.3 of <xref target="RFC8446"/>.
The sequence number key is used to encrypt the sequence number
(Section 4.2.3 of <xref target="RFC9147"/>).</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.</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>Parameters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association:</dt>
              <dd>
                <t>Reference to the relevant SCTP association to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating whether the Key is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>DTLS Connection ID: : If DTLS connection ID (CID) has been negotiated by
the key-management its field length and value are include. The field length
can be set to zero (0) to indicate that CID is not used.</t>
          </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 Association, Key) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Write Key, Sequence Number Key and IV:</dt>
              <dd>
                <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>
              </dd>
            </dl>
          </li>
        </ul>
        <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.</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>Parameters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association:</dt>
              <dd>
                <t>Reference to the relevant SCTP association to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating whether the Key is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>DTLS Connection ID: : If DTLS connection ID (CID) has been negotiated by
the key-management its field length and value are include. The field length
can be set to zero (0) to indicate that CID is not used.</t>
          </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 Association, Key) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Write Key, Sequence Number Key and IV:</dt>
              <dd>
                <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>
              </dd>
            </dl>
          </li>
        </ul>
        <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
Key for a given SCTP Association.</t>
        <t>Request : Destroy client write key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</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
Key for a given SCTP Association.</t>
        <t>Request : Destroy server write key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Destroyed</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="set-key-to-use">
        <name>Set Key to Use</name>
        <t>Set which key to use to protect the future SCTP packets sent by the
SCTP Association.</t>
        <t>Request : Set Key used</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Key set</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="require-protected-sctp-packets">
        <name>Require Protected SCTP Packets</name>
        <t>A function to configure an SCTP association to require that normal
SCTP packets being received must be protected in a DTLS Chunk going forward.</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
        </ul>
        <t>Reply: Acknowledgement</t>
      </section>
      <section anchor="get-aead-encryption-invocations">
        <name>Get AEAD Encryption Invocations</name>
        <t>Get the number of AEAD encryption invocations (protected messages) for
a given epoch.</t>
        <t>Request : Get AEAD Encryption Invocations</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: AEAD Encryption Invocations</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="get-aead-decryption-invocations">
        <name>Get AEAD Decryption Invocations</name>
        <t>Get the number of AEAD decryption invocations for a given epoch.</t>
        <t>Request : Get AEAD Decryption Invocations</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: AEAD Decryption Invocations</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="get-failed-aead-decryption-invocations">
        <name>Get Failed AEAD Decryption Invocations</name>
        <t>Get the number of failed AEAD decryption invocations for a given epoch.</t>
        <t>Request : Get Failed AEAD Decryption Invocations</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Failed AEAD Decryption Invocations</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>Note this sets this configuration to be used across any DTLS key
context for a given SCTP Association and primary/restart usages.</t>
        <t>Request : Configure Replay Protection</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</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="socket-api">
      <name>Socket API Considerations</name>
      <t>This section describes how the socket API defined in <xref target="RFC6458"/> needs to be
extended to provide a way for the application to control the usage of the
DTLS chunk.</t>
      <t>A 'Socket API Considerations' section is contained in all SCTP-related
specifications published after <xref target="RFC6458"/> describing an extension for which
implementations using the socket API as specified in <xref target="RFC6458"/> would require
some extension of the socket API.
Please note that this section is informational only.</t>
      <t>Please also note, that the API described in this section can change in a
non-backwards compatible way during the evolution of this document due to
changed functionality or gained experience during the implementation.</t>
      <t>A socket API implementation based on <xref target="RFC6458"/> is extended by supporting
several new <tt>IPPROTO_SCTP</tt>-level socket options and a new flag for
<tt>recvmsg()</tt>.</t>
      <section anchor="sctpassocchange-notification">
        <name><tt>SCTP_ASSOC_CHANGE</tt> Notification</name>
        <t>When an <tt>SCTP_ASSOC_CHANGE</tt> notification (specified in Section 6.1.1 of
<xref target="RFC6458"/>) is delivered indicating a <tt>sac_state</tt> of <tt>SCTP_COMM_UP</tt> or
<tt>SCTP_RESTART</tt> for an SCTP association where both peers support the
DTLS chunk, <tt>SCTP_ASSOC_SUPPORTS_DTLS</tt> should be listed in the
<tt>sac_info</tt> field.</t>
      </section>
      <section anchor="a-new-flag-for-recvmsg-msgprotected">
        <name>A New Flag for <tt>recvmsg()</tt> (<tt>MSG_PROTECTED</tt>)</name>
        <t>This flag is returned by <tt>recvmsg()</tt> in <tt>msg_flags</tt> for all user messages
for which all DATA chunks where received in protected SCTP packets.
This also means that if <tt>sctp_recvv()</tt> is used, <tt>MSG_PROTECTED</tt> is returned
in the <tt>*flags</tt> argument.</t>
      </section>
      <section anchor="functions">
        <name>Functions</name>
        <section anchor="sctpdtlsnrciphersuits">
          <name><tt>sctp_dtls_nr_cipher_suits()</tt></name>
          <t><tt>sctp_dtls_nr_cipher_suits()</tt> returns the number of cypher suits supported
by the SCTP implementation.</t>
          <t>The function prototype is:</t>
          <sourcecode type="c"><![CDATA[
unsigned int
sctp_dtls_nr_cipher_suits(void);
]]></sourcecode>
          <t>This function can be used in combination with <tt>sctp_dtls_cipher_suits()</tt>.</t>
        </section>
        <section anchor="sctpdtlsciphersuits">
          <name><tt>sctp_dtls_cipher_suits()</tt></name>
          <t><tt>sctp_dtls_cipher_suits()</tt> returns the cypher suits supported by the
SCTP implementation.</t>
          <t>The function prototype is:</t>
          <sourcecode type="c"><![CDATA[
int
sctp_dtls_cipher_suits(uint8_t cipher_suits[][2], unsigned int n);
]]></sourcecode>
          <dl>
            <dt>and the arguments are</dt>
            <dd>
              <t/>
            </dd>
            <dt><tt>cipher_suits</tt>:</dt>
            <dd>
              <t>An array where the supported cypher suits are stored. A cypher suit is
represented by two <tt>uint8_t</tt> using the IANA assigned values in the
TLS cipher suit registry <xref target="TLS-CIPHER-SUITS"/>.</t>
            </dd>
          </dl>
          <t><tt>n</tt>:
The number of cipher suits which can be stored in <tt>cipher_suits</tt>.</t>
          <t><tt>sctp_dtls_cipher_suits</tt> returns <tt>-1</tt>, if <tt>n</tt> is smaller than the number
of cipher suites supported by the stack. If <tt>n</tt> is equal to or larger than
the number of cipher suites supported the the SCTP implementation, the
cipher suits are stored in <tt>cipher_suits</tt> and the number of supported
cipher suits is returned.</t>
        </section>
      </section>
      <section anchor="socket-options">
        <name>Socket Options</name>
        <t>The following table provides an overview of the <tt>IPPROTO_SCTP</tt>-level socket
options defined by this section.</t>
        <table anchor="socket-options-table">
          <name>Socket Options</name>
          <thead>
            <tr>
              <th align="left">Option Name</th>
              <th align="left">Data Type</th>
              <th align="left">Set</th>
              <th align="left">Get</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_LOCAL_PMIDS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_pmids</tt></td>
              <td align="left">X</td>
              <td align="left">X</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_REMOTE_PMIDS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_pmids</tt></td>
              <td align="left"> </td>
              <td align="left">X</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_SET_SEND_KEYS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_keys</tt></td>
              <td align="left">X</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_ADD_RECV_KEYS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_keys</tt></td>
              <td align="left">X</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_DEL_RECV_KEYS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_keys_id</tt></td>
              <td align="left">X</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_ENFORCE_PROTECTION</tt></td>
              <td align="left">
                <tt>struct sctp_assoc_value</tt></td>
              <td align="left">X</td>
              <td align="left">X</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_REPLAY_WINDOW</tt></td>
              <td align="left">
                <tt>struct sctp_assoc_value</tt></td>
              <td align="left">X</td>
              <td align="left">X</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_STATS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_stats</tt></td>
              <td align="left"> </td>
              <td align="left">X</td>
            </tr>
          </tbody>
        </table>
        <t><tt>sctp_opt_info()</tt> needs to be extended to support:</t>
        <ul spacing="normal">
          <li>
            <t><tt>SCTP_DTLS_LOCAL_PMIDS</tt>,</t>
          </li>
          <li>
            <t><tt>SCTP_DTLS_REMOTE_PMIDS</tt>,</t>
          </li>
          <li>
            <t><tt>SCTP_DTLS_ENFORCE_PROTECTION</tt>,</t>
          </li>
          <li>
            <t><tt>SCTP_DTLS_REPLAY_WINDOW</tt>, and</t>
          </li>
          <li>
            <t><tt>SCTP_DTLS_STATS</tt>.</t>
          </li>
        </ul>
        <section anchor="get-or-set-the-local-protection-method-identifiers-sctpdtlslocalpmids">
          <name>Get or Set the Local Protection Method Identifiers (<tt>SCTP_DTLS_LOCAL_PMIDS</tt>)</name>
          <t>This socket option sets the protection method identifiers which will be sent
to the peer during the handshake.
It can also be used to retrieve the protection method identifiers which were
sent during the handshake.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_pmids {
        sctp_assoc_t sds_assoc_id;
        uint16_t sdp_nr_pmids;
        uint16_t sdp_pmids[];
};
]]></sourcecode>
          <dl>
            <dt><tt>sds_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
For <tt>setsockopt()</tt>, only <tt>SCTP_FUTURE_ASSOC</tt> can be used.
For <tt>getsockopt()</tt>, it is an error to use <tt>SCTP_{CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sdp_nr_pmids</tt>:</dt>
            <dd>
              <t>The number of entries in <tt>sdp_pmids</tt>.</t>
            </dd>
            <dt><tt>sdp_pmids</tt>:</dt>
            <dd>
              <t>The protection method identifiers which will be or have been sent to the peer
in the sequence they were contained in the DTLS 1.3 Chunk Protected
Association parameter and in host byte order.</t>
            </dd>
          </dl>
          <t>This socket option can be used with setsockopt() for SCTP endpoints in the
<tt>SCTP_CLOSED</tt> or <tt>SCTP_LISTEN</tt> state to configure the protection method
identifiers to be sent.
When used with <tt>getsockopt()</tt> on an SCTP endpoint in the <tt>SCTP_LISTEN</tt>
state, the protection method identifiers which will be sent can be retrieved.
 If the SCTP endpoint is in a state other that <tt>SCTP_CLOSED</tt> or
<tt>SCTP_LISTEN</tt>, the protection method identifiers which have been sent can
be retrieved.</t>
        </section>
        <section anchor="get-the-remote-protection-method-identifiers-sctpdtlsremotepmids">
          <name>Get the Remote Protection Method Identifiers (<tt>SCTP_DTLS_REMOTE_PMIDS</tt>)</name>
          <t>This socket option reports the protection method identifiers reported by the
peer during the handshake.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_pmids {
        sctp_assoc_t sds_assoc_id;
        uint16_t sdp_nr_pmids;
        uint16_t sdp_pmids[];
};
]]></sourcecode>
          <dl>
            <dt><tt>sds_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sdp_nr_pmids</tt>:</dt>
            <dd>
              <t>The number of entries in <tt>sdp_pmids</tt>.</t>
            </dd>
            <dt><tt>sdp_pmids</tt>:</dt>
            <dd>
              <t>The protection method identifiers reported by the peer in the sequence they
were contained in the DTLS 1.3 Chunk Protected Association parameter and in
host byte order.</t>
            </dd>
          </dl>
          <t>This socket option will fail on any SCTP endpoint in state <tt>SCTP_CLOSED</tt>,
<tt>SCTP_COOKIE_WAIT</tt> and <tt>SCTP_COOKIE_ECHOED</tt>.</t>
        </section>
        <section anchor="set-send-keys-sctpdtlssetsendkeys">
          <name>Set Send Keys (<tt>SCTP_DTLS_SET_SEND_KEYS</tt>)</name>
          <t>Using this socket option allows to add a particular set of keys used for
sending DTLS chunks.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_keys {
        sctp_assoc_t sdk_assoc_id;
        uint8_t sdk_cipher_suit[2];
        uint8_t sdk_restart;
        uint8_t sdk_conn_id_len;
        uint16_t sdk_key_len;
        uint16_t sdk_iv_len;
        uint16_t sdk_sn_key_len;
        uint16_t sdk_unused;
        uint64_t sdk_epoch;
        uint8_t *sdk_conn_id;
        uint8_t *sdk_key;
        uint8_t *sdk_iv;
        uint8_t *sdk_sn_key;
};
]]></sourcecode>
          <dl>
            <dt><tt>sdk_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sdk_cipher_suit</tt>:</dt>
            <dd>
              <t>The cipher suit for which the keys are used.</t>
            </dd>
            <dt><tt>sdk_restart</tt>:</dt>
            <dd>
              <t>If the value is <tt>0</tt>, the regular keys are added, if a value different
from <tt>0</tt> is used, the restart keys are added.</t>
            </dd>
            <dt><tt>sdk_conn_id_len</tt>:</dt>
            <dd>
              <t>The length of the DTLS connection identifier specified in <tt>sdk_conn_id</tt>.</t>
            </dd>
            <dt><tt>sdk_key_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_key</tt>.</t>
            </dd>
            <dt><tt>sdk_iv_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_iv</tt>.</t>
            </dd>
            <dt><tt>sdk_sn_key_len</tt>:</dt>
            <dd>
              <t>The length of the sequence number key specified in <tt>sdk_sn_key</tt>.</t>
            </dd>
            <dt><tt>sdk_unused</tt>:</dt>
            <dd>
              <t>This field is ignored.</t>
            </dd>
            <dt><tt>sdk_epoch</tt>:</dt>
            <dd>
              <t>The epoch for which the keys are added.</t>
            </dd>
            <dt><tt>sdk_conn_id</tt>:</dt>
            <dd>
              <t>A pointer to the connection identifier for which the keys are added.
Using <tt>NULL</tt> means that no connection identifier is used.</t>
            </dd>
            <dt><tt>sdk_key</tt>:</dt>
            <dd>
              <t>A pointer to the key.</t>
            </dd>
            <dt><tt>sdk_iv</tt>:</dt>
            <dd>
              <t>A pointer to the initialization vector.</t>
            </dd>
          </dl>
          <t><tt>sdk_sn_key</tt>:
A pointer to the sequence number key.</t>
          <t>This socket option can only be used on SCTP endpoints in states other then
<tt>SCTP_LISTEN</tt>, <tt>SCTP_COOKIE_WAIT</tt> and <tt>SCTP_COOKIE_ECHOED</tt>.
If the socket options is successful, all affected DTLS chunks sent will use the
specified keys until the keys are changed again by another call of this
socket option.</t>
        </section>
        <section anchor="add-receive-keys-sctpdtlsaddrecvkeys">
          <name>Add Receive Keys (<tt>SCTP_DTLS_ADD_RECV_KEYS</tt>)</name>
          <t>Using this socket option allows to add a particular set of keys used for
receiving DTLS chunks.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_keys {
        sctp_assoc_t sdk_assoc_id;
        uint8_t sdk_cipher_suit[2];
        uint8_t sdk_restart;
        uint8_t sdk_conn_id_len;
        uint16_t sdk_key_len;
        uint16_t sdk_iv_len;
        uint16_t sdk_sn_key_len;
        uint16_t sdk_unused;
        uint64_t sdk_epoch;
        uint8_t *sdk_conn_id;
        uint8_t *sdk_key;
        uint8_t *sdk_iv;
        uint8_t *sdk_sn_key;
};
]]></sourcecode>
          <dl>
            <dt><tt>sdk_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sdk_cipher_suit</tt>:</dt>
            <dd>
              <t>The cipher suit for which the keys are used.</t>
            </dd>
            <dt><tt>sdk_restart</tt>:</dt>
            <dd>
              <t>If the value is <tt>0</tt>, the regular keys are added, if a value different
from <tt>0</tt> is used, the restart keys are added.</t>
            </dd>
            <dt><tt>sdk_conn_id_len</tt>:</dt>
            <dd>
              <t>The length of the DTLS connection identifier specified in <tt>sdk_conn_id</tt>.</t>
            </dd>
            <dt><tt>sdk_key_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_key</tt>.</t>
            </dd>
            <dt><tt>sdk_iv_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_iv</tt>.</t>
            </dd>
            <dt><tt>sdk_sn_key_len</tt>:</dt>
            <dd>
              <t>The length of the sequence number key specified in <tt>sdk_sn_key</tt>.</t>
            </dd>
            <dt><tt>sdk_unused</tt>:</dt>
            <dd>
              <t>This field is ignored.</t>
            </dd>
            <dt><tt>sdk_epoch</tt>:</dt>
            <dd>
              <t>The epoch for which the keys are added.</t>
            </dd>
            <dt><tt>sdk_conn_id</tt>:</dt>
            <dd>
              <t>A pointer to the connection identifier for which the keys are added.
Using <tt>NULL</tt> means that no connection identifier is used.</t>
            </dd>
            <dt><tt>sdk_key</tt>:</dt>
            <dd>
              <t>A pointer to the key.</t>
            </dd>
            <dt><tt>sdk_iv</tt>:</dt>
            <dd>
              <t>A pointer to the initialization vector.</t>
            </dd>
          </dl>
          <t><tt>sdk_sn_key</tt>:
A pointer to the sequence number key.</t>
          <t>This socket option can only be used on SCTP endpoints in states other then
<tt>SCTP_LISTEN</tt>, <tt>SCTP_COOKIE_WAIT</tt> and <tt>SCTP_COOKIE_ECHOED</tt>.</t>
        </section>
        <section anchor="delete-receive-keys-sctpdtlsdelrecvkeys">
          <name>Delete Receive Keys (<tt>SCTP_DTLS_DEL_RECV_KEYS</tt>)</name>
          <t>Using this socket option allows to remove a particular set of keys used for
receiving DTLS chunks.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_keys_id {
        sctp_assoc_t sdki_assoc_id;
        uint8_t sdki_restart;
        uint8_t sdki_conn_id_len;
        uint16_t sdki_unused;
        uint64_t sdki_epoch;
        uint8_t *sdki_conn_id;
}
]]></sourcecode>
          <dl>
            <dt><tt>sdki_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sdki_restart</tt>:</dt>
            <dd>
              <t>If the value is <tt>0</tt>, the regular keys are removed, if a value different
from <tt>0</tt> is used, the restart keys are removed.</t>
            </dd>
            <dt><tt>sdki_conn_id_len</tt>:</dt>
            <dd>
              <t>The length of the DTLS connection identifier specified in <tt>sdki_conn_id</tt>.</t>
            </dd>
            <dt><tt>sdki_unused</tt>:</dt>
            <dd>
              <t>This field is ignored.</t>
            </dd>
            <dt><tt>sdki_epoch</tt>:</dt>
            <dd>
              <t>The epoch for which the keys are removed.</t>
            </dd>
            <dt><tt>sdki_conn_id</tt>:</dt>
            <dd>
              <t>A pointer to the connection identifier for which the keys are removed.
Using <tt>NULL</tt> means that no connection identifier is used.</t>
            </dd>
          </dl>
          <t>This socket option can only be used on SCTP endpoints in states other then
<tt>SCTP_CLOSED</tt>, <tt>SCTP_LISTEN</tt>, <tt>SCTP_COOKIE_WAIT</tt> and
<tt>SCTP_COOKIE_ECHOED</tt>.</t>
        </section>
        <section anchor="set-or-get-protection-enforcement-sctpdtlsenforceprotection">
          <name>Set or Get Protection Enforcement (<tt>SCTP_DTLS_ENFORCE_PROTECTION</tt>)</name>
          <t>Enabling this socket option on an SCTP endpoint enforces that received
SCTP packets are only processed, if they are protected.
All received packets with the first chunk not being an INIT chunk, INIT ACK
chunk, or DTLS chunk will be silently discarded.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_assoc_value {
        sctp_assoc_t assoc_id;
        uint32_t assoc_value;
};
]]></sourcecode>
          <dl>
            <dt><tt>assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
          </dl>
          <t><tt>assoc_value</tt>:
  The value <tt>0</tt> represents that the option is off, any other value represents
  that the option is on.</t>
          <t>This socket option is off by default on any SCTP endpoint.
Once protection has been enforced by enabling this socket option on an
SCTP endpoint, it cannot be disabled again.
Whether protection has been enforced on an SCTP endpoint can be queried
in any state other than <tt>SCTP_CLOSED</tt>.
Protection can be enforced in any state other than <tt>SCTP_CLOSED</tt>,
<tt>SCTP_COOKIE_WAIT</tt> and <tt>SCTP_COOKIE_ECHOED</tt>.</t>
        </section>
        <section anchor="get-statistic-counters-sctpdtlsstats">
          <name>Get Statistic Counters (<tt>SCTP_DTLS_STATS</tt>)</name>
          <t>This socket options allows to get various statistic counters for a
specific SCTP endpoint.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_dtls_stats {
        sctp_assoc_t sds_assoc_id;
        uint32_t sds_dropped_unprotected;
        uint32_t sds_aead_failures;
        uint32_t sds_recv_protected;
        uint32_t sds_sent_protected;
        /* There will be added more fields before the WGLC. */
        /* There might be additional platform specific counters. */
};
]]></sourcecode>
          <dl>
            <dt><tt>sds_assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{FUTURE|CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
            <dt><tt>sds_dropped_unprotected</tt>:</dt>
            <dd>
              <t>The number of unprotected packets received for this SCTP endpoint after
protection was enforced.</t>
            </dd>
            <dt><tt>sds_aead_failures</tt>:</dt>
            <dd>
              <t>The number of AEAD failures when processing received DTLS chunks.</t>
            </dd>
            <dt><tt>sds_recv_protected</tt>:</dt>
            <dd>
              <t>The number of DTLS chunks successfully processed.</t>
            </dd>
            <dt><tt>sds_sent_protected</tt>:</dt>
            <dd>
              <t>The number of DTLS chunks sent.</t>
            </dd>
          </dl>
        </section>
        <section anchor="get-or-set-the-replay-protection-window-size-sctpdtlsreplaywindow">
          <name>Get or Set the Replay Protection Window Size (<tt>SCTP_DTLS_REPLAY_WINDOW</tt>)</name>
          <t>This socket option can be used to configure the replay protection for SCTP
endpoints.</t>
          <t>The following structure is used as the <tt>option_value</tt>:</t>
          <sourcecode type="c"><![CDATA[
struct sctp_assoc_value {
        sctp_assoc_t assoc_id;
        uint32_t assoc_value;
};
]]></sourcecode>
          <dl>
            <dt><tt>assoc_id</tt>:</dt>
            <dd>
              <t>This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which
SCTP association the caller is performing the action.
It is an error to use <tt>SCTP_{CURRENT|ALL}_ASSOC</tt>.</t>
            </dd>
          </dl>
          <t><tt>assoc_value</tt>:
  The maximum number of DTLS chunks in the replay protection window.</t>
        </section>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <section anchor="privacy-padding-of-sctp-packets">
        <name>Privacy Padding of SCTP Packets</name>
        <t>To reduce the potential information leakage from packet size
variations one may select to pad the SCTP Packets to uniform packet
sizes. This size may be either the maximum used, or in block sized
increments. However, the padding needs to be done inside of the
encryption envelope.</t>
        <t>Both SCTP and DTLS contains mechanisms to pad SCTP payloads, and DTLS
records respectively. If padding of SCTP packets are desired to hide
actual message sizes it RECOMMEDED to use the SCTP Padding Chunk
<xref target="RFC4820"/> to generate a consistent SCTP payload size. Support of
this chunk is only required on the sender side, any SCTP receiver will
safely ignore the PAD Chunk. However, if the PAD chunk is not
supported DTLS padding MAY be used.</t>
        <t>It needs to be noted that independent if SCTP padding or DTLS padding
is used the padding is not taken into account by the SCTP congestion
control. Extensive use of padding has potential for worsen congestion
situations as the SCTP association will consume more bandwidth than
its derived share by the congestion control.</t>
        <t>The use of SCTP PAD chunk is recommended as it at least can enable
future extension or SCTP implementation that account also for the
padding. Use of DTLS padding hides this packet expansion from SCTP.</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.
It also adds registry entries into several other
registries in the Stream Control Transmission Protocol (SCTP)
Parameters group:</t>
      <ul spacing="normal">
        <li>
          <t>One new SCTP Chunk Types</t>
        </li>
        <li>
          <t>One new SCTP Chunk Parameter Type</t>
        </li>
        <li>
          <t>Three new SCTP Error Cause Code</t>
        </li>
      </ul>
      <t>And finally the update of one registered SCTP Payload Protocol
Identifier.</t>
      <section anchor="IANA-Protection-Solution-ID">
        <name>SCTP Protection Solution Identifiers</name>
        <t>IANA is requested to create a new registry called "SCTP Protection
Solutions". This registry is part of the of the Stream
Control Transmission Protocol (SCTP) Parameters grouping.</t>
        <t>The purpose of this registry is to assign Protection Solution
Identifier for any security solution that is either the DTLS
Chunk combined with a key-management method, offered as an alternative
to DTLS chunk. 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 16-bit unsigned integer value from the suitable range.</t>
        <table anchor="iana-psi">
          <name>Protection Solution Identifiers</name>
          <thead>
            <tr>
              <th align="right">Identifier</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 with Pre-</td>
              <td align="left">RFC-TBD</td>
              <td align="left">Draft Authors</td>
            </tr>
            <tr>
              <td align="right">1-4095</td>
              <td align="left">Available for Assignment using Specification Required policy</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">4096-65535</td>
              <td align="left">Available for Assignment using First Come, First Served policy</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>New entries in the range 0-4095 are registered following the Specification Required policy
as defined by <xref target="RFC8126"/>.  New entries in the range 4096-65535 are first come, first served.</t>
      </section>
      <section anchor="sctp-chunk-type">
        <name>SCTP Chunk Type</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Chunk Types" registry, IANA is requested to add the one new entry
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 Type 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>
          </tbody>
        </table>
        <t>The registration table for the chunk flags of this chunk
type is initially:</t>
        <table anchor="iana-chunk-flags">
          <name>DTLS Chunk Flags</name>
          <thead>
            <tr>
              <th align="right">Chunk Flag Value</th>
              <th align="left">Chunk Flag Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0x01</td>
              <td align="left">R bit</td>
              <td align="left">RFC-To-Be</td>
            </tr>
            <tr>
              <td align="right">0x02</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x04</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x08</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x10</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x20</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x40</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">0x80</td>
              <td align="left">Unassigned</td>
              <td align="left"> </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="IANA-Extra-Cause">
        <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>
            <tr>
              <td align="right">TBA10</td>
              <td align="left">Policy Not Met</td>
              <td align="left">RFC-To-Be</td>
            </tr>
            <tr>
              <td align="right">TBA11</td>
              <td align="left">No Common Protection</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-ppid">
        <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 Chunk 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 DTLS 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>As long as the Key-management include the ordered list of protection
solutions indicators present in the parameter part of the INIT chunk
for the SCTP Association in its key-derivation the association will be
protected from down-grade.</t>
        <t>In case any key-management do not include the parameter content in
its key-derivation down-grade might be possible if that key-management
method is selected. It is up to endpoint policies to determine
which protection it deems necessary against down-grade attacks.</t>
      </section>
      <section anchor="sec-considertation-storage">
        <name>Persistent Secure Storage of Restart Key Context</name>
        <t>The Restart DTLS Key Context needs to be stored securely and persistent. Securely
as access to this security context may enable an attacker to perform a restart,
resulting a denial of service on the existing SCTP Association. It can also
give the attacker access to the ULP. Thus the storage needs to provide at least
as strong resistant against exfiltration as the main DTLS Key Context store.</t>
        <t>When it comes to how to realize persistent storage that is highly
dependent on the ULP and how it can utilize restarted SCTP
Associations. One way can be to have an actual secure persistent storage
solution accessible to the endpoint. In other use cases the persistence part
might be accomplished be keeping the current restart DTLS Key Context with
the ULP State if that is sufficiently secure.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Hannes Tschofenig and Tirumaleswar Reddy for their
participation in the design team and their contributions to this document.
We also like to thank Amanda Baber with IANA for feedback on our IANA registry.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4820" target="https://www.rfc-editor.org/info/rfc4820" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4820.xml">
          <front>
            <title>Padding Chunk and Parameter 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"/>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document defines a padding chunk and a padding parameter and describes the required receiver side procedures. The padding chunk is used to pad a Stream Control Transmission Protocol (SCTP) packet to an arbitrary size. The padding parameter is used to pad an SCTP INIT chunk to an arbitrary size. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4820"/>
          <seriesInfo name="DOI" value="10.17487/RFC4820"/>
        </reference>
        <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="RFC6458" target="https://www.rfc-editor.org/info/rfc6458" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml">
          <front>
            <title>Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="K. Poon" initials="K." surname="Poon"/>
            <author fullname="P. Lei" initials="P." surname="Lei"/>
            <author fullname="V. Yasevich" initials="V." surname="Yasevich"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document describes a mapping of the Stream Control Transmission Protocol (SCTP) into a sockets API. The benefits of this mapping include compatibility for TCP applications, access to new SCTP features, and a consolidated error and event notification scheme. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6458"/>
          <seriesInfo name="DOI" value="10.17487/RFC6458"/>
        </reference>
        <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.ietf-tsvwg-rfc4895-bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-rfc4895-bis-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tsvwg-rfc4895-bis.xml">
          <front>
            <title>Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Münster Univ. of Applied Sciences</organization>
            </author>
            <author fullname="Randall R. Stewart" initials="R. R." surname="Stewart"/>
            <author fullname="Peter Lei" initials="P." surname="Lei">
              <organization>Netflix, Inc.</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig"/>
            <date day="21" month="April" year="2025"/>
            <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. This document obsoletes RFC 4895.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-rfc4895-bis-05"/>
        </reference>
        <reference anchor="I-D.ietf-tsvwg-dtls-chunk-key-management" target="https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-dtls-chunk-key-management-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tsvwg-dtls-chunk-key-management.xml">
          <front>
            <title>Using Datagram Transport Layer Security (DTLS) for Key Management for the Stream Control Transmission Protocol (SCTP) DTLS Chunk</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Münster University of Applied Sciences</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="4" month="September" year="2025"/>
            <abstract>
              <t>This document defines how Datagram Transport Layer Security (DTLS) 1.3 is used to establish keys for securing SCTP using the DTLS Chunk mechanism. It specifies how a DTLS handshake is used to establish the initial security context for an SCTP association and describes procedures for key updates and post-handshake authentication. The goal is to enable authenticated, and confidential communication over SCTP using the DTLS Chunk, leveraging standardized DTLS features for key management and rekeying.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-dtls-chunk-key-management-00"/>
        </reference>
        <reference anchor="I-D.westerlund-tsvwg-sctp-DTLS-handshake" target="https://datatracker.ietf.org/doc/draft-westerlund-tsvwg-sctp-dtls-handshake/">
          <front>
            <title>Datagram Transport Layer Security (DTLS) in the Stream Control Transmission Protocol (SCTP) DTLS Chunk</title>
            <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
              <organization>Ericsson</organization>
            </author>
            <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
              <organization>Ericsson</organization>
            </author>
            <date year="2025" month="July"/>
          </front>
        </reference>
        <reference anchor="ETSI-TS-38.413" target="https://www.etsi.org/deliver/etsi_ts/138400_138499/138413/18.05.00_60/ts_138413v180500p.pdf">
          <front>
            <title>NG Application Protocol (NGAP) version 18.5.0 Release 18</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
Z5xwpCXWmIsZHCLIabZqnqgvf3ZDb1IUJ5teI+6cMK2Lc4vChxQBQ6TtWrGr
zhak0dOBkgDHEeKIds59RSvyRsAoCp2thzSkL2XTCgRmY5XE0p65gGKMzyj7
HBrgADBIOCq5GeUbdzLyoKTWXy63GiGhHlJX0NKH+BqKfeVoVxTdsR5RmZFf
XIJ3NQx3GCWb0N3O+6MYndr36tP9PHiM+WLFAnb4utXXV5yzr3pXr6zSSymr
czpIuFfo9LrkusGhBwtDqLU07dVFMV12RthzKuz2vrRcZ9q1IdfgzpacfmFI
fsdchqLEZBGsBTq1MwWcd127gOkzKRoF7xIhbtSK5crGw51XJ0vVtLAt1A0l
CoPT79oPJrFEQjmnEImVuNLW1ke+vw7Fbsof7Pzfi3QGcjguC/uM1Iu+G6gr
CcU3HIozPAQa0gHENyppZS5Esc8XqZJ0F0fqG9mIIdU01ZLbm0+dqm2axapa
VsC1UD7zxjruBiRhOM1c7yCUtDszIuZia10pJR6ejhd3JYMERcu4+dqdtt/T
9Le59PUyLlDIdfnCQi93BGrjSFxYUIe4QJk5QgXEueCAbDBFnkKYpDyLllQH
6iqu7+YrAehdSQ5XQNT5RRw8lRL7jD82ovoyZNxeLSp2kmningdbQ1XuOTOw
Ex7MbYSHZJXwcIj7vwLu0mtIaCgNqPQTHZ9SWnflbnV6XMJGxHr2LMo9NuE9
riw3cdOJ1AyNuOxE2im1Hb8Zs0NKIWdpyE3RSR60IJWrFB57VlCOaNgq7oa/
CRmQ2DzfJTSHCEVlkGILvMfttPLGFaONQho3rmllubEgfOR7+hJSJy70SbYx
6toi8AbCNEZyfH1XRMDmmJl0dGcG5km7JATL8XH9zfPSsjc7DbXrTg/TDb1B
w2ZaQUt1E2cEOLkuHDi2iGlKRuVqc5gLQjzKAWelsZkHHnJrTiYXVHfFLcL+
O6yRqexMxbZEtzMuOFPI3xIuwaU9dEiXnhYW6TCc8kAZqEJVZ6LfHWpPhjfq
qD5RdPSBq8he/NkF9e9CyKEYjxWtEPFIh3O+bxPlEnVzOle8gE+dZcmw3C0h
+7L8I7JBazV9bZrnPHquzHurBKqUeheVmTKQuU4YW3yDXgL4rbQGlUKvSZlV
HypXME6/7Q+5DCzz5VOfeeYULybtWU7skesAeiW+vTfjXHgjyfllBYdhnOW+
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
MP8P53XsuBAlAQA=

-->

</rfc>
