<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tsvwg-sctp-dtls-chunk-02" category="std" consensus="true" submissionType="IETF" updates="RFC5061" 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-02"/>
    <author initials="M." surname="Westerlund" fullname="Magnus Westerlund">
      <organization>Ericsson</organization>
      <address>
        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
      <organization>Ericsson</organization>
      <address>
        <email>claudio.porfiri@ericsson.com</email>
      </address>
    </author>
    <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="2026" month="March" day="02"/>
    <area>Transport</area>
    <workgroup>TSVWG</workgroup>
    <abstract>
      <?line 92?>

<t>This document describes a method for adding Datagram Transport Layer
Security (DTLS) based authentication and cryptographic protection to the
Stream Control Transmission Protocol (SCTP).</t>
      <t>This SCTP extension is intended to enable communication 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.
Once enabled, this also applies to the SCTP payload as well as the SCTP
control information.</t>
      <t>Applications using this SCTP extension can use most of the transport features
provided by SCTP and its other extensions.
The use of the SCTP Authentication extension defined in RFC 4895 is incompatible
with the extension defined in this document but would not provide any
additional service.
This implies that the Dynamic Address Reconfiguration as specified in RFC 5061
can only be used as described in this document.</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 113?>

<section anchor="introduction">
      <name>Introduction and Protocol Overview</name>
      <t>This document extends the Stream Control Transmission Protocol (SCTP), as
specified in <xref target="RFC9260"/>, by defining the DTLS chunk format and the procedures
for negotiating and managing its usage.
DTLS chunk support is integrated into the SCTP implementation, enabling the
secure transfer of SCTP packets (including both control and DATA chunks).</t>
      <t>The DTLS chunk protects a sequence of SCTP chunks by encapsulating their
DTLS-based ciphertext. This processing is based on DTLS 1.3, as specified in
<xref target="RFC9147"/>.</t>
      <t>Key mangement is performed outside of the SCTP implementation and is out of scope
of this document. This process is referred to as the DTLS Key Managenement Method.
While these methods can be also be based on DTLS 1.3 it is not a requirement.</t>
      <t>The DTLS chunk in combination with the DTLS key management method provide
mutual authentication, confidentiality, DTLS based data origin authentication,
integrity, and replay protection for SCTP packets.
The DTLS Key Management Method utilizes an API to provision the SCTP
association's DTLS chunk protection with key-material to enable and rekey the
protection operations.</t>
      <t><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 as the DTLS Key Management Method.
Here the DTLS Key Management Method provides 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 280,280 L 280,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 280,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="288,280 276,274.4 276,285.6" fill="black" transform="rotate(270,280,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>After receiving an SCTP packet and identifying the association using the
SCTP common header, the DTLS chunk is processed by the Chunk Protection Operator.
The Chunk Protection Operator performs replay protection, decryption,
and authentication. If this processing is successul, the encapsulated SCTP chunks
are further processed.</t>
      <t>For outgoing traffic, after the SCTP stack has created the unprotected SCTP
packet containing control and/or DATA chunks, these SCTP chunks will be
processed by the Chunk Protection Operator for protection.
This results in a DTLS 1.3 record encapsulated in a DTLS chunk.</t>
      <t>The use of the DTLS 1.3 handshake for initial mutual authentication, key
establishment, and periodic re-authentication and rekeying with
Diffie-Hellman of the DTLS chunk protection is defined in separate documents,
(see <xref target="key-management-considerations"/>).
To prevent downgrade attacks affecting the DTLS Key Management negotiation
the DTLS Key Management Method should implement specific procedures when
deriving keys.</t>
      <t>The Chunk Protection Operator performs protection operations on all
chunks of an SCTP packet.
No information is sent in plain text except for the following:</t>
      <ul spacing="normal">
        <li>
          <t>The initial SCTP handshake.</t>
        </li>
        <li>
          <t>The initial DTLS Key Management traffic.</t>
        </li>
        <li>
          <t>the SCTP common header, the SCTP DTLS chunk header.</t>
        </li>
        <li>
          <t>The INIT and INIT ACK chunks during an SCTP Restart procedure.</t>
        </li>
      </ul>
      <t>Support of the DTLS chunk and the selection of a DTLS Key Management Method
are negotiated during the SCTP handshake using a new parameter.
DTLS Key Management and application traffic are then multiplexed
using the Payload Protocol Identifier (PPID).
This document defines the dedicated PPID 4242 for use by all DTLS Key Management
Methods.</t>
      <t>Applications using the DTLS chunk can leverage most transport features provided by
SCTP and its extensions. However, the following limitations apply:</t>
      <ul spacing="normal">
        <li>
          <t>The handling of INIT collisions is not supported.</t>
        </li>
        <li>
          <t>Performing an SCTP restart without knowing the restart key material is not supported.</t>
        </li>
        <li>
          <t>The use of the lookup address in the Dynamic Address Reconfiguration
extension as specified in <xref target="RFC5061"/> is not supported.</t>
        </li>
      </ul>
    </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="protocol-considerations">
      <name>Protocol Considerations</name>
      <section anchor="DTLS-engines">
        <name>DTLS Considerations</name>
        <t>Once the DTLS Key Management Method has established its context, it
derives primary and restart keys and configures the Chunk Protection Operator
via an API. This establishes the necessary DTLS key contexts for SCTP chunk
encryption and decryption.
A DTLS key context for normal operations use MUST be created, while a DTLS key
context for SCTP association restart SHOULD be created.</t>
        <t>In this document we use the terms DTLS Key context for indicating a
Key and IV, produced by the DTLS 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 three-value tuple identifying the context,
consisting of SCTP Association, the restart indicator, and the DTLS epoch.</t>
        <t>The DTLS Connection ID in the DTLS Record layer used in the DTLS Chunk MUST NOT
be used.</t>
        <t>The first  DTLS key context established for any SCTP association MUST use epoch 3.</t>
        <t>The replay window for the DTLS Sequence Number need to account for the
concurrent transmission of packets on multiple paths in multihomed associations.
In particular, this applies to packets containing HEARTBEAT chunks.
The window size must be sufficiently large to accommodate these latency differences.</t>
        <t>Endpoints implementing DTLS Chunk MUST support DTLS records containing up to
2<sup>14</sup> (16384) bytes of plain text.</t>
      </section>
      <section anchor="sctp-considerations">
        <name>SCTP Considerations</name>
        <t>The SCTP authentication extension (SCTP-AUTH) defined in <xref target="RFC4895"/> is incompatible
with the extension defined in this document. Therefore, its support MUST NOT
be negotiated in combination with the support of the DTLS chunk.</t>
        <t>In particular, the dynamic address reconfiguration defined in <xref target="RFC5061"/> cannot
use SCTP-AUTH. Instead, the DTLS chunk is used for authentication.
This introduces the following limitations:</t>
        <ul spacing="normal">
          <li>
            <t>The lookup address MUST NOT be used.</t>
          </li>
          <li>
            <t>The dynamic address reconfiguration extension MUST NOT be used unless
DTLS chunk handling is enabled in both directions.</t>
          </li>
        </ul>
        <t>To mitigate potential information leakage from packet size variations,
implementations MAY pad SCTP packets to uniform sizes.
However, the padding MUST be applied within the encryption envelope to ensure
the padding itself is protected.</t>
        <t>Both SCTP and DTLS provide mechanisms for padding packets.
If padding of SCTP packets are desired to hide actual message sizes it is
RECOMMENDED 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 should be noted that regardless of whether SCTP padding or DTLS padding
is used, the additional bytes are not account for by the SCTP congestion control.
Extensive use of padding has potential to worsen congestion situations, as the
SCTP association will consume more bandwidth than its derived share by the
congestion control.</t>
        <t>Using the SCTP PAD chunk is preferred because it is visible in the SCTP layer.
Therefore, future extension or SCTP implementation that account for the padding
in the congestion control.
In contrast, DTLS padding hides this packet expansion from the SCTP layer.</t>
      </section>
    </section>
    <section anchor="new-chunk-parameter-and-error-causes">
      <name>New Chunk, Parameter and Error Causes</name>
      <section anchor="protectedassoc-parameter">
        <name>DTLS Key Management Parameter</name>
        <t>The DTLS Key Management Parameter is used to negotiate the support of the
DTLS chunk and the key management method used for the DTLS chunks.
The format of this chunk parameter is depicted in <xref target="key-management-parameter"/>.</t>
        <figure anchor="key-management-parameter">
          <name>DTLS Key Management 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">0x8006</text>
                  <text x="360" y="84">Parameter</text>
                  <text x="428" y="84">Length</text>
                  <text x="44" y="116">DTLS</text>
                  <text x="80" y="116">Key</text>
                  <text x="140" y="116">Management</text>
                  <text x="196" y="116">Id</text>
                  <text x="220" y="116">#1</text>
                  <text x="300" y="116">DTLS</text>
                  <text x="336" y="116">Key</text>
                  <text x="396" y="116">Management</text>
                  <text x="452" y="116">Id</text>
                  <text x="476" y="116">#2</text>
                  <text x="8" y="148">:</text>
                  <text x="520" y="148">:</text>
                  <text x="36" y="180">DTLS</text>
                  <text x="72" y="180">Key</text>
                  <text x="132" y="180">Management</text>
                  <text x="188" y="180">Id</text>
                  <text x="212" 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 = 0x8006    |       Parameter Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DTLS Key Management Id #1    |  DTLS Key Management Id #2    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:                                                               :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DTLS Key Management Id #N     | Padding                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Parameter Type: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value MUST be set to 0x8006.
Note that this parameter type requires the receiver to ignore the
parameter and continue processing if the parameter type is not supported.
This is accomplished (as described <xref section="3.2.1" sectionFormat="of" target="RFC9260"/>) by
the use of the upper bits of the parameter type.</t>
          </dd>
          <dt>Parameter Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the parameter, which will be 2 times the
number of DTLS Key Management identifiers (N) plus 4.</t>
          </dd>
          <dt>DTLS Key Management Identifier: 16 bits (unsigned integer)</dt>
          <dd>
            <t>Each DTLS Key Management Identifier (<xref target="IANA-Protection-Solution-ID"/>)
is a 16-bit unsigned integer value indicating a DTLS Key Management Method.
In the INIT chunk the DTLS Key Management Methods are listed in descending order
of preference, i.e. the first listed in the parameter is the most preferred one
and the last listed one is the least preferred by the sender in the INIT chunk.
In the INIT ACK chunk the endpoint chooses one of the DTLS Key Management Methods
supported by the peer.</t>
          </dd>
          <dt>Padding: 0 or 16 bits (unsigned integer)</dt>
          <dd>
            <t>If the number of included DTLS Key Management Methods is odd the
parameter MUST be padded with two bytes. The padding MUST be set to 0 by
the sender and MUST be ignored by the receiver.</t>
          </dd>
        </dl>
        <t>The DTLS Key Management Parameter MAY be included in the INIT and INIT ACK chunk
and MUST NOT be included in any other chunk.
When included in an INIT chunk, the DTLS Key Management Parameter MUST include
at least one DTLS Key Management Identifier.
When included in an INIT ACK chunk, it MUST include exactly one
DTLS Key Management Identifier.</t>
      </section>
      <section anchor="DTLS-chunk">
        <name>DTLS Chunk (DTLS)</name>
        <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</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 8,64 L 8,224" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 216,64 L 216,96" fill="none" stroke="black"/>
                <path d="M 248,64 L 248,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                <path d="M 264,192 L 264,224" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,224" 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 264,128" fill="none" stroke="black"/>
                <path d="M 264,192 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,224 L 520,224" 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">0x41</text>
                  <text x="180" y="84">reserved</text>
                  <text x="232" y="84">P</text>
                  <text x="256" y="84">R</text>
                  <text x="360" y="84">Chunk</text>
                  <text x="412" y="84">Length</text>
                  <text x="120" y="116">Pre-Padding</text>
                  <text x="264" y="164">Payload</text>
                  <text x="372" y="212">Post-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 = 0x41   | reserved| P |R|         Chunk Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Pre-Padding            |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                                                               |
|                            Payload                            |
|                                                               |
|                               +-------------------------------+
|                               |       Post-Padding            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Type: 8 bits (unsigned integer)</dt>
          <dd>
            <t>This value MUST be set to 0x41.
It should be noted that the chunk type 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, if the receiver does
not support this chunk type.
This is accomplished (as described in <xref section="3.2" sectionFormat="of" target="RFC9260"/>) by the use
of the upper bits of the chunk type.</t>
          </dd>
          <dt>reserved: 5 bits</dt>
          <dd>
            <t>Reserved bits for future use. These bits MUST be set to 0 by
the sender and MUST be ignored by the receiver.</t>
          </dd>
          <dt>R: 1 bit (boolean)</dt>
          <dd>
            <t>Restart indicator. If this bit is set this DTLS chunk is protected
with a Restart DTLS Key context.</t>
          </dd>
          <dt>P: 2 bits (unsigned integer)</dt>
          <dd>
            <t>Payload Pre-Padding length. It indicates how many bytes
are inserted for padding before the DTLSCiphertext.
See the text below for computing P.</t>
          </dd>
          <dt>Chunk Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the Payload in bytes plus 4 plus the Payload
Pre-Padding length.</t>
          </dd>
          <dt>Pre-Padding: 0, 8, 16, or 24 bits</dt>
          <dd>
            <t>The length of the padding is given by the Payload Pre-Padding length P.
The sender MUST pad with zero bytes and the receiver MUST ignore the
padding bytes.</t>
          </dd>
          <dt>Payload: variable length</dt>
          <dd>
            <t>This MUST contain exactly one DTLSCiphertext as specified in DTLS 1.3 <xref target="RFC9147"/>.</t>
          </dd>
          <dt>Post-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>
        <t>From <xref section="4" sectionFormat="of" target="RFC9147"/>, the DTLS record header has variable length and
is depicted in <xref target="DTLSCiphertext-record-struct"/>.</t>
        <figure anchor="DTLSCiphertext-record-struct">
          <name>DTLS DTLSCiphertext</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="296" viewBox="0 0 296 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <g class="text">
                  <text x="28" y="36">struct</text>
                  <text x="64" y="36">{</text>
                  <text x="60" y="52">opaque</text>
                  <text x="180" y="52">unified_hdr[variable];</text>
                  <text x="60" y="68">opaque</text>
                  <text x="192" y="68">encrypted_record[length];</text>
                  <text x="8" y="84">}</text>
                  <text x="80" y="84">DTLSCiphertext;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
    struct {
        opaque unified_hdr[variable];
        opaque encrypted_record[length];
    } DTLSCiphertext;

]]></artwork>
          </artset>
        </figure>
        <t>The DTLSCiphertext contains the unified_hdr followed by the encrypted_record,
where unified_hdr has variable format.
The encrypted_record MUST be 32-bit aligned in relation to the start of the
DTLS Chunk. The Pre-Padding MUST be used to achieve this.
The format of unified_hdr is depicted in <xref target="DTLSCiphertext-header-struct"/>.</t>
        <figure anchor="DTLSCiphertext-header-struct">
          <name>DTLS unified_hdr</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="432" viewBox="0 0 432 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 8,256" fill="none" stroke="black"/>
                <path d="M 24,48 L 24,80" fill="none" stroke="black"/>
                <path d="M 24,248 L 24,256" fill="none" stroke="black"/>
                <path d="M 40,48 L 40,80" fill="none" stroke="black"/>
                <path d="M 56,48 L 56,80" fill="none" stroke="black"/>
                <path d="M 72,48 L 72,80" fill="none" stroke="black"/>
                <path d="M 88,48 L 88,80" fill="none" stroke="black"/>
                <path d="M 104,48 L 104,80" fill="none" stroke="black"/>
                <path d="M 136,48 L 136,112" fill="none" stroke="black"/>
                <path d="M 136,144 L 136,256" fill="none" stroke="black"/>
                <path d="M 8,48 L 136,48" fill="none" stroke="black"/>
                <path d="M 8,80 L 136,80" fill="none" stroke="black"/>
                <path d="M 8,160 L 136,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 136,208" fill="none" stroke="black"/>
                <path d="M 8,256 L 136,256" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="32" y="36">1</text>
                  <text x="48" y="36">2</text>
                  <text x="64" y="36">3</text>
                  <text x="80" y="36">4</text>
                  <text x="96" y="36">5</text>
                  <text x="112" y="36">6</text>
                  <text x="128" y="36">7</text>
                  <text x="16" y="68">0</text>
                  <text x="32" y="68">0</text>
                  <text x="48" y="68">1</text>
                  <text x="64" y="68">C</text>
                  <text x="80" y="68">S</text>
                  <text x="96" y="68">L</text>
                  <text x="112" y="68">E</text>
                  <text x="128" y="68">E</text>
                  <text x="60" y="100">Connection</text>
                  <text x="116" y="100">ID</text>
                  <text x="192" y="100">Legend:</text>
                  <text x="32" y="116">(if</text>
                  <text x="68" y="116">any,</text>
                  <text x="8" y="132">/</text>
                  <text x="52" y="132">length</text>
                  <text x="92" y="132">as</text>
                  <text x="136" y="132">/</text>
                  <text x="168" y="132">C</text>
                  <text x="200" y="132">-</text>
                  <text x="252" y="132">Connection</text>
                  <text x="308" y="132">ID</text>
                  <text x="344" y="132">(CID)</text>
                  <text x="400" y="132">present</text>
                  <text x="72" y="148">negotiated)</text>
                  <text x="168" y="148">S</text>
                  <text x="200" y="148">-</text>
                  <text x="244" y="148">Sequence</text>
                  <text x="308" y="148">number</text>
                  <text x="364" y="148">length</text>
                  <text x="168" y="164">L</text>
                  <text x="200" y="164">-</text>
                  <text x="236" y="164">Length</text>
                  <text x="296" y="164">present</text>
                  <text x="32" y="180">8</text>
                  <text x="52" y="180">or</text>
                  <text x="76" y="180">16</text>
                  <text x="104" y="180">bit</text>
                  <text x="168" y="180">E</text>
                  <text x="200" y="180">-</text>
                  <text x="232" y="180">Epoch</text>
                  <text x="44" y="196">Sequence</text>
                  <text x="108" y="196">Number</text>
                  <text x="28" y="228">16</text>
                  <text x="56" y="228">bit</text>
                  <text x="100" y="228">Length</text>
                  <text x="32" y="244">(if</text>
                  <text x="84" y="244">present)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|0|0|1|C|S|L|E E|
+-+-+-+-+-+-+-+-+
| Connection ID |   Legend:
| (if any,      |
/  length as    /   C   - Connection ID (CID) present
|  negotiated)  |   S   - Sequence number length
+-+-+-+-+-+-+-+-+   L   - Length present
|  8 or 16 bit  |   E   - Epoch
|Sequence Number|
+-+-+-+-+-+-+-+-+
| 16 bit Length |
| (if present)  |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <t>Examples of preferred DTLSCiphertext are shown in <xref target="DTLSCiphertext-recommended"/>.</t>
        <figure anchor="DTLSCiphertext-recommended">
          <name>DTLSCiphertext recommended structure</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="320" viewBox="0 0 320 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 8,208" fill="none" stroke="black"/>
                <path d="M 24,48 L 24,80" fill="none" stroke="black"/>
                <path d="M 40,48 L 40,80" fill="none" stroke="black"/>
                <path d="M 56,48 L 56,80" fill="none" stroke="black"/>
                <path d="M 72,48 L 72,80" fill="none" stroke="black"/>
                <path d="M 88,48 L 88,80" fill="none" stroke="black"/>
                <path d="M 104,48 L 104,80" fill="none" stroke="black"/>
                <path d="M 136,48 L 136,160" fill="none" stroke="black"/>
                <path d="M 136,192 L 136,208" fill="none" stroke="black"/>
                <path d="M 184,48 L 184,144" fill="none" stroke="black"/>
                <path d="M 184,176 L 184,192" fill="none" stroke="black"/>
                <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
                <path d="M 216,48 L 216,80" fill="none" stroke="black"/>
                <path d="M 232,48 L 232,80" fill="none" stroke="black"/>
                <path d="M 248,48 L 248,80" fill="none" stroke="black"/>
                <path d="M 264,48 L 264,80" fill="none" stroke="black"/>
                <path d="M 280,48 L 280,80" fill="none" stroke="black"/>
                <path d="M 312,48 L 312,144" fill="none" stroke="black"/>
                <path d="M 312,176 L 312,192" fill="none" stroke="black"/>
                <path d="M 8,48 L 136,48" fill="none" stroke="black"/>
                <path d="M 184,48 L 312,48" fill="none" stroke="black"/>
                <path d="M 8,80 L 136,80" fill="none" stroke="black"/>
                <path d="M 184,80 L 312,80" fill="none" stroke="black"/>
                <path d="M 184,112 L 312,112" fill="none" stroke="black"/>
                <path d="M 8,128 L 136,128" fill="none" stroke="black"/>
                <path d="M 184,192 L 312,192" fill="none" stroke="black"/>
                <path d="M 8,208 L 136,208" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="32" y="36">1</text>
                  <text x="48" y="36">2</text>
                  <text x="64" y="36">3</text>
                  <text x="80" y="36">4</text>
                  <text x="96" y="36">5</text>
                  <text x="112" y="36">6</text>
                  <text x="128" y="36">7</text>
                  <text x="192" y="36">0</text>
                  <text x="208" y="36">1</text>
                  <text x="224" y="36">2</text>
                  <text x="240" y="36">3</text>
                  <text x="256" y="36">4</text>
                  <text x="272" y="36">5</text>
                  <text x="288" y="36">6</text>
                  <text x="304" y="36">7</text>
                  <text x="16" y="68">0</text>
                  <text x="32" y="68">0</text>
                  <text x="48" y="68">1</text>
                  <text x="64" y="68">0</text>
                  <text x="80" y="68">1</text>
                  <text x="96" y="68">0</text>
                  <text x="112" y="68">E</text>
                  <text x="128" y="68">E</text>
                  <text x="192" y="68">0</text>
                  <text x="208" y="68">0</text>
                  <text x="224" y="68">1</text>
                  <text x="240" y="68">0</text>
                  <text x="256" y="68">0</text>
                  <text x="272" y="68">0</text>
                  <text x="288" y="68">E</text>
                  <text x="304" y="68">E</text>
                  <text x="52" y="100">16</text>
                  <text x="80" y="100">bit</text>
                  <text x="220" y="100">Sequence</text>
                  <text x="284" y="100">Number</text>
                  <text x="44" y="116">Sequence</text>
                  <text x="108" y="116">Number</text>
                  <text x="248" y="148">Encrypted</text>
                  <text x="64" y="164">Encrypted</text>
                  <text x="184" y="164">/</text>
                  <text x="236" y="164">Record</text>
                  <text x="312" y="164">/</text>
                  <text x="8" y="180">/</text>
                  <text x="52" y="180">Record</text>
                  <text x="136" y="180">/</text>
                  <text x="76" y="244">DTLSCiphertext</text>
                  <text x="244" y="244">DTLSCiphertext</text>
                  <text x="72" y="260">Structure</text>
                  <text x="240" y="260">Structure</text>
                  <text x="72" y="276">(recommended)</text>
                  <text x="240" y="276">(minimal)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0 1 2 3 4 5 6 7       0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
|0|0|1|0|1|0|E E|     |0|0|1|0|0|0|E E|
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
|    16 bit     |     |Sequence Number|
|Sequence Number|     +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+     |               |
|               |     |   Encrypted   |
|  Encrypted    |     /   Record      /
/  Record       /     |               |
|               |     +-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+

  DTLSCiphertext       DTLSCiphertext
    Structure            Structure
  (recommended)          (minimal)
]]></artwork>
          </artset>
        </figure>
        <t>Thus the size of the DTLSCiphertext header is computed from the <tt>first_byte</tt> as follows:</t>
        <sourcecode type="c"><![CDATA[
#define S_BIT 0x08
#define L_BIT 0x04

size = 1;
/* Add in the size of the sequence number. */
if ((first_byte & S_BIT) != 0)
    size += 2;
else
    size += 1;
/* Add in the size of the length field, if present. */
if ((first_byte & L_BIT) != 0)
    size += 2;
]]></sourcecode>
        <t>Then the Payload Pre-Padding length P can be computed by</t>
        <sourcecode type="c"><![CDATA[
P = (4 - (size & 0x3)) & 0x03;
]]></sourcecode>
        <t>The use of the Pre-Padding allows a receiver to perform an in-place decryption
and then process the sequence of chunks.
SCTP as specified in <xref target="RFC9260"/> guarantees that chunks start on a 32-bit
boundary.</t>
      </section>
      <section anchor="new-error-causes">
        <name>New Error Causes</name>
        <t>This specification defines two new error causes.</t>
        <section anchor="enoprotected">
          <name>Missing DTLS Chunk Support</name>
          <t>The DTLS Chunk Support Required error cause can be sent by the receiver of the
packet containing the INIT chunk to indicate that the receiver requires the
support of the DTLS chunk, but no DTLS Key Management parameter was included in
the INIT chunk.</t>
          <figure anchor="error-missing-dtls-chunk-support">
            <name>Error Missing DTLS Chunk Support</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                  <path d="M 184,64 L 184,72" fill="none" stroke="black"/>
                  <path d="M 184,88 L 184,96" fill="none" stroke="black"/>
                  <path d="M 216,64 L 216,72" fill="none" stroke="black"/>
                  <path d="M 216,88 L 216,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path class="jump" d="M 216,88 C 222,88 222,72 216,72" fill="none" stroke="black"/>
                  <path class="jump" d="M 184,88 C 178,88 178,72 184,72" 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="64" y="84">Cause</text>
                    <text x="108" y="84">Code</text>
                    <text x="136" y="84">=</text>
                    <text x="160" y="84">100</text>
                    <text x="200" y="84">TBC</text>
                    <text x="344" y="84">Cause</text>
                    <text x="396" y="84">Length</text>
                    <text x="432" y="84">=</text>
                    <text x="448" y="84">4</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 = 100 (TBC)     |       Cause Length = 4        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </artset>
          </figure>
          <dl newline="true">
            <dt>Cause Code: 16 bits (unsigned integer)</dt>
            <dd>
              <t>This value MUST be set to 100 (TBC).</t>
            </dd>
            <dt>Cause Length: 16 bits (unsigned integer)</dt>
            <dd>
              <t>This value MUST be set to 4.</t>
            </dd>
          </dl>
          <t>This error cause MAY be included in an ABORT chunk.
It MUST NOT be included in any other chunk.</t>
        </section>
        <section anchor="enocommonpsi">
          <name>No Common DTLS Key Management Method</name>
          <t>The No Common DTLS Key Management Method error cause can be used by the receiver
of the packet containing the INIT chunk to indicate that receiver does not
support any of DTLS key management methods offered by the sender of packet
containing the INIT chunk.</t>
          <t>The format of this error cause is depicted in <xref target="error-cause-no-common-method"/>.</t>
          <figure anchor="error-cause-no-common-method">
            <name>Error Cause No Common DTLS Key Management Method</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,96" fill="none" stroke="black"/>
                  <path d="M 184,64 L 184,72" fill="none" stroke="black"/>
                  <path d="M 184,88 L 184,96" fill="none" stroke="black"/>
                  <path d="M 216,64 L 216,72" fill="none" stroke="black"/>
                  <path d="M 216,88 L 216,96" fill="none" stroke="black"/>
                  <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path class="jump" d="M 216,88 C 222,88 222,72 216,72" fill="none" stroke="black"/>
                  <path class="jump" d="M 184,88 C 178,88 178,72 184,72" 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="64" y="84">Cause</text>
                    <text x="108" y="84">Code</text>
                    <text x="136" y="84">=</text>
                    <text x="160" y="84">101</text>
                    <text x="200" y="84">TBC</text>
                    <text x="344" y="84">Cause</text>
                    <text x="396" y="84">Length</text>
                    <text x="432" y="84">=</text>
                    <text x="448" y="84">4</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 = 101 (TBC)     |       Cause Length = 4        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </artset>
          </figure>
          <dl newline="true">
            <dt>Cause Code: 16 bits (unsigned integer)</dt>
            <dd>
              <t>This value MUST be set to 101 (TBC).</t>
            </dd>
            <dt>Cause Length: 16 bits (unsigned integer)</dt>
            <dd>
              <t>This value MUST be set to 4.</t>
            </dd>
          </dl>
          <t>This error cause MAY be included in an ABORT chunk.
It MUST NOT be included in any other chunk.</t>
        </section>
      </section>
    </section>
    <section anchor="procedures">
      <name>Procedures</name>
      <section anchor="establishment-procedure">
        <name>Establishment of a Protected Association</name>
        <t>To initiate an SCTP association, an SCTP endpoint wanting to use the DTLS chunk
MUST send an SCTP packet with an INIT chunk containing the DTLS Key Management
Parameter (see <xref target="protectedassoc-parameter"/>).
This parameter lists the supported DTLS Key Management Identifiers
(see <xref target="key-management-parameter"/>) in descending order or preference.</t>
        <t>If an SCTP endpoint receives an SCTP packet containing an INIT chunk with a
DTLS Key Management Parameter, it MUST reply with a packet containing an
INIT ACK containing its own DTLS Key Management Parameter.
This parameter MUST contains exactly one DTLS Key Management Method Identifier
out of the list of received ones.
If there is no DTLS Key Management Method supported by both endpoints,
and the endpoints' policy requires requires the use of the DTLS chunk,
the receiver MUST reply with an SCTP packet containing an ABORT chunk and MAY
include the error cause "No Common DTLS Key Management Method"
(see <xref target="enocommonpsi"/>).
If the endpoints' policy does not require the use of the DTLS chunk, the receiver
MAY reply with an SCTP packet containing an INIT ACK chunk without any
DTLS Key Management Parameter to indicate that it is willing to setup an
association without DTLS chunk support.
Additionally, when an SCTP endpoint requiring DTLS chunk support receives an
SCTP packet containing an INIT chunk without a DTLS Key Management Parameter,
it MUST reply with an packet containing an ABORT chunk an MAY include the
error cause indicating that the DTLS chunk support is missing (see <xref target="enoprotected"/>).</t>
        <t>If an SCTP endpoint, which has sent an SCTP packet with an INIT chunk containing
DTLS Key Management Parameter receives a packet containing an INIT ACK chunk with
a DTLS Key Management Parameter not containing exactly one of the DTLS Key
Mangement Identifiers it sent, the endpoint MUST reply with an packet containing
an ABORT chunk. The ABORT chunk MAY include the Protocol Violation error cause.
If the INIT ACK does not contain any DTLS Key Management Parameter and the
endpoint's policy requires the use of the DTLS chunk, the endpoint MUST send
an SCTP packet with an ABORT chunk. It MAY include the error cause indicating
that DTLS chunk support is missing (see <xref target="enoprotected"/>).
If the endpoint's policy does not require the use of the DTLS chunk, it MAY
continue with the handshake.</t>
        <t>When the SCTP association has been established the process defined by the
selected DTLS Key Management Method MUST be followed for establishing
DTLS Key Contexts and installing them.</t>
      </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 and only 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 contain only the SCTP common header and one DTLS chunk.</t>
        <t>Once 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 <tt>DTLSInnerPlaintext.content</tt> and <tt>DTLSInnerPlaintext.type</tt> is set to
<tt>application_data</tt>. Then the <tt>DTLSCiphertext</tt> 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 endpoint MUST consider the DTLS chunk header
and the overhead of DTLS to ensure that the final SCTP packet does not exceed
the PMTU.</t>
        <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 <tt>DTLSCiphertext</tt>),
the Restart flag in addition to the <tt>unified_hdr</tt> is used to find the keys for
processing the <tt>encrypted_record</tt>.</t>
        <t>After the <tt>encrypted_record</tt> has been verified and decrypted, the
corresponding chunks (the <tt>DTLSInnerPlaintext.content</tt>) are processed as
defined in the corresponding specifications.</t>
        <t>When the Chunk Protection Operator will experience a non-critical error,
it MUST NOT abort the association.</t>
      </section>
      <section anchor="termination-procedure">
        <name>Termination of a Protected Association</name>
        <t>Note that the closure of any DTLS Key Management Method doesn't
compromise the capability of terminating the SCTP association gracefully as
that capability only relies on the Key Context and not on the DTLS Key
Management Method from where it has been derived.</t>
      </section>
      <section anchor="sec-restart">
        <name>SCTP Restart Considerations</name>
        <t>This section deals with the handling of an unexpected INIT chunk
during an Association lifetime as described in <xref section="5.2" sectionFormat="of" target="RFC9260"/>
with the purpose of defining a protected restart procedure.</t>
        <t>When the upper layer protocols require support of SCTP Restart for associations
using the DTLS chunk, as in case of 3GPP NG-C protocol <xref target="ETSI-TS-38.413"/>,
the endpoint needs to support also the protected SCTP Restart procedure
described below. Implementing the protected restart procedure is RECOMMENDED,
however not required as persistent secure storage of the restart DTLS Key
Context is needed.</t>
        <t>The protected SCTP restart procedure keeps the security characteristics of
an SCTP Association using DTLS chunks.</t>
        <t>In protected SCTP Restart, INIT and INIT ACK chunks are sent
strictly according to <xref target="RFC9260"/>, but COOKIE ECHO and COOKIE ACK chunks
are encrypted using DTLS chunks and the restart DTLS Key contexts.</t>
        <t>In order to support protected SCTP Restart, the SCTP Endpoints need
to 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 need to ensure that Restart DTLS key contexts are 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 MUST
NOT 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,
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 and epoch need to be stored
securely 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, COOKIE ECHO, COOKIE ACK
exactly as in legacy SCTP Restart case; INIT, INIT ACK MUST be
sent plain as in the legacy, whereas COOKIE ECHO, COOKIE ACK
Chunks MUST 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 DTLS 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 the
DTLS Key Management confirms the new ones are committed to secure storage.
This can for example 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="212" y="100">INIT</text>
                  <text x="248" y="100">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>A restarted SCTP Association MUST 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 MUST use epoch 3,
i.e. the epoch value is reset. 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>
        <t>An SCTP Endpoint supporting only normal 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 COOKIE 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 a COOKIE ECHO
chunk protected by DTLS chunk as described above, thus having the
 R bit (Restart Indicator) set in the DTLS Chunk (see
<xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>), MUST silently discard it.</t>
      </section>
    </section>
    <section anchor="key-management-considerations">
      <name>DTLS Key Management Method Considerations</name>
      <t>This document specifies the mechanisms for protecting SCTP associations using
DTLS chunks, including an API for managing the corresponding key material.
While this document defines the interface, the upper layer is responsible
for the actual key management.</t>
      <t>DTLS Key Management Methods define the procedures for initial key generation,
key updates and peer authentication. These procedures are out of scope for
this document.
Currently two DTLS Key Management Methods with different properties (such as
mutual authentication and rekeying) are defined:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.ietf-tsvwg-dtls-chunk-key-management"/></t>
        </li>
        <li>
          <t><xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/></t>
        </li>
      </ul>
      <t>An SCTP endpoint MAY support multiple DTLS Key Management Methods subject to
implementation requirements and local security policies.</t>
      <t>Every DTLS Key Management Method</t>
      <ul spacing="normal">
        <li>
          <t>MUST be registered in the IANA Registry <xref target="IANA-Protection-Solution-ID"/>
to receive a unique identifier, enabling negotiation during the SCTP handshake.</t>
        </li>
        <li>
          <t>SHOULD use the PPID from <xref target="sec-iana-ppid"/> to ensure that the DTLS Key
Management Method related user messages are processed by the relevant entity.</t>
        </li>
        <li>
          <t>SHOULD ensure that the local receive keys are installed before the peer
installs the corresponding send keys.</t>
        </li>
        <li>
          <t>MUST include the DTLS Key Management Method Identifiers sent and received
during the SCTP handshake in the key derivation to mitigate downgrade attacks.
Both sides MUST use the same byte ordering for the DTLS Key Management Method
Identifiers.</t>
        </li>
      </ul>
    </section>
    <section anchor="abstract-api">
      <name>Abstract API</name>
      <t>This section describes an abstract API that is needed between a
DTLS Key Management Method and the DTLS 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 used by the cipher suite
for DTLS record protection (<xref section="5.2" sectionFormat="of" target="RFC8446"/>). The initialization
vector (IV) is random material used to XOR with the sequence
number to create the nonce per <xref section="5.3" sectionFormat="of" target="RFC8446"/>.
The sequence number key is used to encrypt the sequence number
(<xref section="4.2.3" sectionFormat="of" target="RFC9147"/>).</t>
      <section anchor="set-supported-dtls-key-management-methods">
        <name>Set Supported DTLS Key Management Methods</name>
        <t>Prior to attempting to establish an SCTP assocation an SCTP endpoint
needs to configure which DTLS Key Management Methods it supports if
establishing a SCTP association. This will be included in INIT if the
endpoint initiated the SCTP association. Else it will be used to
determine the selected DTLS Key Management method that is returned in
the INIT ACK.</t>
        <t>Request: Set Supported DTLS Key Management Methods</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association Handle:</dt>
              <dd>
                <t>The handle to what may become an SCTP Association or a server port
accepting association establishment.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>List of Identifiers:</dt>
              <dd>
                <t>A prioritized list of DTLS Key Management identifiers that
are supported, from the most preferred to the least preferred.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Reply: Success or Error</t>
        <t>Parameters: None</t>
      </section>
      <section anchor="get-offered-dtls-key-management-methods">
        <name>Get Offered DTLS Key Management Methods</name>
        <t>After an SCTP association has been established the key management
function will need to get the list of DTLS key management IDs
that was present in DTLS Key Management parameter in the INIT and INIT ACK chunks.
This list will be used by the selected DTLS key management method to
derive security keys and prevent downgrade attacks.</t>
        <t>Request: Get DTLS Key Management Methods</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association:</dt>
              <dd>
                <t>Reference to the relevant SCTP association to request the exchanged Identifiers.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Reply: Offered and Selected DTLS Key Management Methods</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>List of Identifiers:</dt>
              <dd>
                <t>This API call returns a list of DTLS key-management Identifiers. The
list first contains all the Identifiers present in DTLS Key Management
Parameter in the INIT Chunk, followed by the single identifier
for the selected methods that was exchanged in the DTLS Key Management
Parameter in the INIT ACK chunk.</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
      <section anchor="cipher-suite-capabilities">
        <name>Cipher Suite Capabilities</name>
        <t>The DTLS Key Management Method needs to know which cipher suites defined
for usage with DTLS 1.3 that are supported by the DTLS chunk and its
protection operations block. All TLS cipher suites that are defined are
listed in the TLS cipher suite registry <xref target="TLS-CIPHER-SUITES"/> at IANA
and are identified by a 2-byte value. Thus this needs to return a list
of all supported cipher suites to the higher layer.</t>
        <t>Request : Get Cipher Suites</t>
        <t>Parameters : none</t>
        <t>Reply   : Cipher Suites</t>
        <t>Parameters : list of cipher suites</t>
      </section>
      <section anchor="establish-client-write-keying-material">
        <name>Establish Client Write Keying Material</name>
        <t>The DTLS Chunk can use one out of multiple sets of cipher suite 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>
            <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 Suite:</dt>
              <dd>
                <t>2 bytes cipher suite identification for the DTLS 1.3 Cipher suite 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 suite specific binary object containing all necessary
information for protection operations. The secret will be used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suite 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 out of multiple sets of cipher suite 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>
            <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 Suite:</dt>
              <dd>
                <t>2 bytes cipher suite identification for the DTLS 1.3 Cipher suite 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 suite specific binary object containing all necessary
information for protection operations. The secret will be used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suite 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 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 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 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 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 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 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 is
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 <xref section="6.1.1" sectionFormat="of" 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 were 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="sctpdtlsnrciphersuites">
          <name><tt>sctp_dtls_nr_cipher_suites()</tt></name>
          <t><tt>sctp_dtls_nr_cipher_suites()</tt> returns the number of cipher suites supported
by the SCTP implementation.</t>
          <t>The function prototype is:</t>
          <sourcecode type="c"><![CDATA[
unsigned int
sctp_dtls_nr_cipher_suites(void);
]]></sourcecode>
          <t>This function can be used in combination with <tt>sctp_dtls_cipher_suites()</tt>.</t>
        </section>
        <section anchor="sctpdtlsciphersuites">
          <name><tt>sctp_dtls_cipher_suites()</tt></name>
          <t><tt>sctp_dtls_cipher_suites()</tt> returns the cipher suites supported by the
SCTP implementation.</t>
          <t>The function prototype is:</t>
          <sourcecode type="c"><![CDATA[
int
sctp_dtls_cipher_suites(uint8_t cipher_suites[][2], unsigned int n);
]]></sourcecode>
          <dl>
            <dt>and the arguments are</dt>
            <dd>
              <t/>
            </dd>
            <dt><tt>cipher_suites</tt>:</dt>
            <dd>
              <t>An array where the supported cipher suites are stored. A cipher suite is
represented by two <tt>uint8_t</tt> using the IANA assigned values in the
TLS cipher suite registry <xref target="TLS-CIPHER-SUITES"/>.</t>
            </dd>
            <dt><tt>n</tt>:</dt>
            <dd>
              <t>The number of cipher suites which can be stored in <tt>cipher_suites</tt>.</t>
            </dd>
          </dl>
          <t><tt>sctp_dtls_cipher_suites</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 by the SCTP implementation, the
cipher suites are stored in <tt>cipher_suites</tt> and the number of supported
cipher suites 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_KMIDS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_kmids</tt></td>
              <td align="left">X</td>
              <td align="left">X</td>
            </tr>
            <tr>
              <td align="left">
                <tt>SCTP_DTLS_REMOTE_KMIDS</tt></td>
              <td align="left">
                <tt>struct sctp_dtls_kmids</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_KMIDS</tt>,</t>
          </li>
          <li>
            <t><tt>SCTP_DTLS_REMOTE_KMIDS</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-dtls-key-management-identifiers-sctpdtlslocalkmids">
          <name>Get or Set the Local DTLS Key Management Identifiers (<tt>SCTP_DTLS_LOCAL_KMIDS</tt>)</name>
          <t>This socket option sets the DTLS Key Management identifiers which will be sent
to the peer during the handshake.
It can also be used to retrieve the DTLS Key Management 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_kmids {
        sctp_assoc_t sdk_assoc_id;
        uint16_t sdk_nr_kmids;
        uint16_t sdk_kmids[];
};
]]></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.
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>sdk_nr_kmids</tt>:</dt>
            <dd>
              <t>The number of entries in <tt>sdk_kmids</tt>.</t>
            </dd>
            <dt><tt>sdk_kmids</tt>:</dt>
            <dd>
              <t>The DTLS Key Management identifiers which will be or have been sent to the peer
in the sequence they were contained in the DTLS Key Management Parameter and
in network byte order.</t>
            </dd>
          </dl>
          <t>This socket option can be used with <tt>setsockopt()</tt> 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 than <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-dtls-key-management-identifiers-sctpdtlsremotekmids">
          <name>Get the Remote DTLS Key Management Identifiers (<tt>SCTP_DTLS_REMOTE_KMIDS</tt>)</name>
          <t>This socket option reports the DTLS Key Management 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_kmids {
        sctp_assoc_t sdk_assoc_id;
        uint16_t sdk_nr_kmids;
        uint16_t sdk_kmids[];
};
]]></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_nr_kmids</tt>:</dt>
            <dd>
              <t>The number of entries in <tt>sdk_kmids</tt>.</t>
            </dd>
            <dt><tt>sdk_kmids</tt>:</dt>
            <dd>
              <t>The DTLS Key Management identifiers reported by the peer in the sequence they
were contained in the DTLS Key Management Parameter and in network 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_suite[2];
        uint8_t sdk_restart;
        uint8_t sdk_unused; /* if sizeof(sctp_assoc_t) == 4 */
        uint64_t sdk_epoch;
        uint16_t sdk_key_len;
        uint16_t sdk_iv_len;
        uint16_t sdk_sn_key_len;
        uint8_t sdk_keys[];
};
]]></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_suite</tt>:</dt>
            <dd>
              <t>The cipher suite 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_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_key_len</tt>:</dt>
            <dd>
              <t>The length of the key specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_iv_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_sn_key_len</tt>:</dt>
            <dd>
              <t>The length of the sequence number key specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_keys</tt>:</dt>
            <dd>
              <t>The key of length <tt>sdk_key_len</tt> directly followed by the initialization
vector of length <tt>sdk_iv_len</tt> directly followed by the sequence number key
of length <tt>sdk_sn_key_len</tt>.</t>
            </dd>
          </dl>
          <t>This socket option can only be used on SCTP endpoints in states other than
<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_suite[2];
        uint8_t sdk_restart;
        uint8_t sdk_unused; /* if sizeof(sctp_assoc_t) == 4 */
        uint64_t sdk_epoch;
        uint16_t sdk_key_len;
        uint16_t sdk_iv_len;
        uint16_t sdk_sn_key_len;
        uint8_t sdk_keys[];
};
]]></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_suite</tt>:</dt>
            <dd>
              <t>The cipher suite 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_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_key_len</tt>:</dt>
            <dd>
              <t>The length of the key specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_iv_len</tt>:</dt>
            <dd>
              <t>The length of the initialization vector specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_sn_key_len</tt>:</dt>
            <dd>
              <t>The length of the sequence number key specified in <tt>sdk_keys</tt>.</t>
            </dd>
            <dt><tt>sdk_keys</tt>:</dt>
            <dd>
              <t>The key of length <tt>sdk_key_len</tt> directly followed by the initialization
vector of length <tt>sdk_iv_len</tt> directly followed by the sequence number key
of length <tt>sdk_sn_key_len</tt>.</t>
            </dd>
          </dl>
          <t>This socket option can only be used on SCTP endpoints in states other than
<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;
   uint32_t sdki_restart;
   uint64_t sdki_epoch;
}
]]></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_epoch</tt>:</dt>
            <dd>
              <t>The epoch for which the keys are removed.</t>
            </dd>
          </dl>
          <t>This socket option can only be used on SCTP endpoints in states other than
<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;
   uint64_t sds_dropped_unprotected;
   uint64_t sds_aead_failures;
   uint64_t sds_recv_protected;
   uint64_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="IANA-Consideration">
      <name>IANA Considerations</name>
      <t>This document adds registry entries or registries in the Stream Control
Transmission Protocol (SCTP) Parameters group handled by IANA:</t>
      <ul spacing="normal">
        <li>
          <t>One new registry for the Key Management IDs</t>
        </li>
        <li>
          <t>One new SCTP Chunk Types and its corresponding Chunk Type Flags registry</t>
        </li>
        <li>
          <t>One new SCTP Chunk Parameter Type</t>
        </li>
        <li>
          <t>Two new SCTP Error Cause Codes</t>
        </li>
        <li>
          <t>A new Payload Protocol Identifier</t>
        </li>
      </ul>
      <section anchor="IANA-Protection-Solution-ID">
        <name>DTLS Key Management Method Identifiers</name>
        <t>Note: The RFC Editor is requested to replace RFC-To-Be with a reference to this document.</t>
        <t>IANA is requested to create a new registry called "DTLS Key Management Method".
This registry is part of the Stream Control Transmission Protocol (SCTP)
Parameters grouping.</t>
        <t>The purpose of this registry is to assign DTLS Key Management Method
Identifier for any DTLS Key Management Method used for the extension described
in this document.
Each entry will be assigned a 16-bit unsigned integer value from the suitable range.</t>
        <table anchor="iana-psi">
          <name>DTLS Key Management Method Identifiers</name>
          <thead>
            <tr>
              <th align="right">Identifier</th>
              <th align="left">Key Management Method 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 Chunk with Pre-shared cryptographic parameters</td>
              <td align="left">RFC-To-Be</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 update the reference for the
DTLS chunk as depicted in <xref target="iana-chunk-types"/> with a reference to this
document.</t>
        <table anchor="iana-chunk-types">
          <name>DTLS Chunk Type</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">0x41</td>
              <td align="left">DTLS Chunk (DTLS)</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to add the corresponding registration table for the chunk
flags of the DTLS chunk with the initial contents shown in <xref target="iana-chunk-flags"/>:</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">P low order bit</td>
              <td align="left">RFC-To-Be</td>
            </tr>
            <tr>
              <td align="right">0x04</td>
              <td align="left">P high order bit</td>
              <td align="left">RFC-To-Be</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 update the reference for
the DTLS Key Management as depicted in <xref target="iana-chunk-parameter-types"/> with a
reference to this document.</t>
        <table anchor="iana-chunk-parameter-types">
          <name>DTLS Key Management Chunk Parameter</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">0x8006</td>
              <td align="left">DTLS Key Management</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
entries depicted below in <xref target="iana-error-cause-codes"/> with a
reference to this document.</t>
        <table anchor="iana-error-cause-codes">
          <name>Error Cause Codes</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">100 (TBC)</td>
              <td align="left">Missing DTLS Chunk Support</td>
              <td align="left">RFC-To-Be</td>
            </tr>
            <tr>
              <td align="right">101 (TBC)</td>
              <td align="left">No Common DTLS Key Management Method</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
        <t>The suggested cause code will need to be confirmed by IANA.</t>
      </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
reference for the PPID 4242 as depicted in <xref target="iana-payload-protection-id"/> with a
reference to this document.</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 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 sequence number encryption might
therefore have limited effect.</t>
      </section>
      <section anchor="aead-limit-considerations">
        <name>AEAD Limit Considerations</name>
        <t><xref section="4.5.3" sectionFormat="of" 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 DTLS Key Management Method can
periodically poll the DTLS protection operation function to see
when a limit has been reached or is close to being reached.
Instead of periodic polling, a callback can be used.</t>
      </section>
      <section anchor="Downgrade-Attacks">
        <name>Downgrade Attacks</name>
        <t>Downgrade attacks may attempt to force the DTLS Key Management Method
by altering the content of INIT chunk, for instance by removing
all offered DTLS Key Management Methods but the one desired. This is possible
if the attacker is an on-path attacker that can modify packet
because INIT and INIT ACK chunks are plain text.</t>
        <t>Preventing the downgrade attacks is implemented by using at the initiator
the list of offered DTLS Key Management Method sent in the INIT chunk plus
the selected DTLS Key Management Method received in the INIT ACK chunk from the responder
for deriving the keys from the handshaked secrets obtained during
DTLS initial handshake.
At the responder, the list of offered DTLS Key Management Methods received in
the INIT chunk plus the selected DTLS Key Management Method that is sent
in the INIT ACK chunk will be used for deriving the keys from the handshaked
secrets obtained during DTLS initial handshake.</t>
        <t>If the attacker succeeds in changing the DTLS Key Management Methods in either
INIT, INIT ACK or both chunks, the peers will not be able to derive the
same keys and the Association will not be possible to proceed.</t>
        <t>Thus, as long as the DTLS Key Management Method includes 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 DTLS Key Management Method does not include the parameter content in
its key-derivation down-grade might be possible if that DTLS Key Management Method
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 persistently. Securely
as access to this security context may enable an attacker to perform a restart,
resulting in 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 by 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-SUITES" 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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
kIxS+qLgL4z5YqD+PylBJDI+BwEA

-->

</rfc>
