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

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a DTLS chunk for the Stream Control
   Transmission Protocol (SCTP), as defined in <xref target="RFC9260"/>.</t>
      <t>This specification defines the actual DTLS chunk, how to enable
   its usage, how it interacts with the SCTP association establishment
   to enable endpoint authentication, key-establishment, and key
   updates.</t>
      <t>The DTLS chunk is designed to enable mutual
   authentication of endpoints, data confidentiality, data origin
   authentication, data integrity protection, and data replay
   protection for SCTP packets after the SCTP association has been
   established. It is dependent on a key management function that is
   defined separately to achieve all these capabilities. The
   key management function uses an API to provision the SCTP
   association's DTLS chunk protection with key-material to enable and
   rekey the protection operations.</t>
      <t>Applications using SCTP DTLS chunk can use most transport features
   provided by SCTP and its extensions. However, there can be some
   limitations or additional requirements for them to function such as
   those noted for SCTP restart and use of Dynamic Address
   Reconfiguration, see <xref target="sec-asconf"/> and <xref target="sec-restart"/>. Due to its
   level of integration as discussed in next section it will provide
   its security functions on all content of the SCTP packet, and will
   thus not impact the potential to utilize any SCTP functionalities
   or extensions that are possible to use between two SCTP peers with
   full security and SCTP association state.</t>
      <t>DTLS is considered version 1.3 as specified in <xref target="RFC9147"/> whereas
   other versions are explicitly not part of this document.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The DTLS chunk can be used for secure and confidential transfer of
SCTP packets. This is implemented inside the SCTP protocol.
Once an SCTP packet has been received and the SCTP common header has
been used to identify the SCTP association, the DTLS chunk is processed by
the Chunk Protection Operator that will perform replay protection, decrypt,
verify authenticity, and if the DTLS chunk is successfully processed provides
the protected SCTP chunks for further processing.
<xref target="sctp-DTLS-chunk-layering"/> illustrates the DTLS chunk processing in regard
to SCTP and the Upper Layer Protocol (ULP) using DTLS 1.3 for key management.</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="656" width="440" viewBox="0 0 440 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,464" fill="none" stroke="black"/>
                <path d="M 8,560 L 8,640" fill="none" stroke="black"/>
                <path d="M 72,472 L 72,512" fill="none" stroke="black"/>
                <path d="M 96,512 L 96,552" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,464" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,464" fill="none" stroke="black"/>
                <path d="M 168,80 L 168,416" fill="none" stroke="black"/>
                <path d="M 176,576 L 176,624" 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,400 L 192,448" fill="none" stroke="black"/>
                <path d="M 216,176 L 216,336" fill="none" stroke="black"/>
                <path d="M 232,336 L 232,368" fill="none" stroke="black"/>
                <path d="M 248,176 L 248,336" fill="none" stroke="black"/>
                <path d="M 264,176 L 264,336" fill="none" stroke="black"/>
                <path d="M 280,336 L 280,400" fill="none" stroke="black"/>
                <path d="M 288,472 L 288,512" fill="none" stroke="black"/>
                <path d="M 296,176 L 296,336" fill="none" stroke="black"/>
                <path d="M 352,576 L 352,624" 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,400 L 368,448" fill="none" stroke="black"/>
                <path d="M 392,80 L 392,592" fill="none" stroke="black"/>
                <path d="M 408,32 L 408,464" fill="none" stroke="black"/>
                <path d="M 408,560 L 408,640" 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 216,176 L 248,176" fill="none" stroke="black"/>
                <path d="M 264,176 L 296,176" fill="none" stroke="black"/>
                <path d="M 216,336 L 248,336" fill="none" stroke="black"/>
                <path d="M 264,336 L 296,336" fill="none" stroke="black"/>
                <path d="M 232,368 L 312,368" fill="none" stroke="black"/>
                <path d="M 192,400 L 368,400" fill="none" stroke="black"/>
                <path d="M 168,416 L 184,416" fill="none" stroke="black"/>
                <path d="M 192,448 L 368,448" fill="none" stroke="black"/>
                <path d="M 8,464 L 136,464" fill="none" stroke="black"/>
                <path d="M 152,464 L 408,464" fill="none" stroke="black"/>
                <path d="M 72,512 L 288,512" fill="none" stroke="black"/>
                <path d="M 8,560 L 408,560" fill="none" stroke="black"/>
                <path d="M 176,576 L 352,576" fill="none" stroke="black"/>
                <path d="M 360,592 L 392,592" fill="none" stroke="black"/>
                <path d="M 176,624 L 352,624" fill="none" stroke="black"/>
                <path d="M 8,640 L 408,640" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,552 388,546.4 388,557.6" fill="black" transform="rotate(90,392,552)"/>
                <polygon class="arrowhead" points="368,592 356,586.4 356,597.6" fill="black" transform="rotate(180,360,592)"/>
                <polygon class="arrowhead" points="296,472 284,466.4 284,477.6" fill="black" transform="rotate(270,288,472)"/>
                <polygon class="arrowhead" points="192,416 180,410.4 180,421.6" fill="black" transform="rotate(0,184,416)"/>
                <polygon class="arrowhead" points="192,80 180,74.4 180,85.6" fill="black" transform="rotate(0,184,80)"/>
                <polygon class="arrowhead" points="104,552 92,546.4 92,557.6" fill="black" transform="rotate(90,96,552)"/>
                <polygon class="arrowhead" points="80,472 68,466.4 68,477.6" fill="black" transform="rotate(270,72,472)"/>
                <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="232" y="196">H</text>
                  <text x="232" y="212">a</text>
                  <text x="184" y="228">k</text>
                  <text x="232" y="228">n</text>
                  <text x="280" y="228">A</text>
                  <text x="376" y="228">k</text>
                  <text x="184" y="244">e</text>
                  <text x="232" y="244">d</text>
                  <text x="280" y="244">l</text>
                  <text x="376" y="244">e</text>
                  <text x="184" y="260">y</text>
                  <text x="232" y="260">s</text>
                  <text x="280" y="260">e</text>
                  <text x="344" y="260">...</text>
                  <text x="376" y="260">y</text>
                  <text x="184" y="276">s</text>
                  <text x="232" y="276">h</text>
                  <text x="280" y="276">r</text>
                  <text x="376" y="276">s</text>
                  <text x="232" y="292">a</text>
                  <text x="280" y="292">t</text>
                  <text x="232" y="308">k</text>
                  <text x="232" y="324">e</text>
                  <text x="324" y="372">..</text>
                  <text x="224" y="388">ContentType</text>
                  <text x="284" y="420">Record</text>
                  <text x="244" y="436">Protection</text>
                  <text x="324" y="436">Operator</text>
                  <text x="420" y="516">keys</text>
                  <text x="68" y="532">PPID</text>
                  <text x="92" y="596">SCTP</text>
                  <text x="272" y="596">Chunk</text>
                  <text x="228" y="612">Protection</text>
                  <text x="308" y="612">Operator</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+---------------+ +-------------------------------+
|      ULP      | |            DTLS 1.3           |
|               | |    +---------------------+    |
|               | | +->+    Key Exporter     +--+ |
|               | | |  +---------------------+  | |
|               | | |                           | |
|               | | |  +---------------------+  | |
|               | | +--+    Key Management   +  | |
|               | | |  +---------------------+  | |
|               | | |     +---+ +---+           | |
|               | | |     | H | |   |           | |
|               | | |     | a | |   |           | |
|               | | | k   | n | | A |         k | |
|               | | | e   | d | | l |         e | |
|               | | | y   | s | | e |    ...  y | |
|               | | | s   | h | | r |         s | |
|               | | |     | a | | t |           | |
|               | | |     | k | |   |           | |
|               | | |     | e | |   |           | |
|               | | |     +-+-+ +-+-+           | |
|               | | |       |     |             | |
|               | | |       +-----+---...       | |
|               | | | ContentType |             | |
|               | | |  +----------+----------+  | |
|               | | +->|        Record       |  | |
|               | |    | Protection Operator |  | |
+               | |    +----------+----------+  | |
+-------+-------+ +-----------------------------+-+
        ^                          ^            |
        |                          |            |
        +--+-----------------------+            | keys
      PPID |                                    |
           V                                    V
+-----------------------------------------------+-+
|                    +---------------------+    | |
|        SCTP        |         Chunk       |<---+ |
|                    | Protection Operator |      |
|                    +---------------------+      |
+-------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the outgoing direction, once the SCTP stack has created the
unprotected SCTP packet containing control and/or DATA chunks,
SCTP chunks will be processed by the Chunk Protection Operator to be
protected. The result of this computation is a DTLS 1.3 record
encapsulated in a SCTP chunk which is named the DTLS chunk.</t>
        <t>The Chunk Protection Operator performs protection operations on all
chunks of an SCTP packet. Information protection is kept during the lifetime of
the association and no information is sent unprotected except the
initial SCTP handshake, any initial key-management traffic, the SCTP
common header, the SCTP DTLS chunk header, and the SHUTDOWN-COMPLETE
chunk.</t>
        <t>The support of the DTLS chunk and the key-management method to use is
negotiated by the peers at the setup of the SCTP association using a
new parameter. Key management and application traffic is multiplexed
using the PPID. The dedicated PPID 4242 is defined for use by key
management for DTLS chunk. The key management function uses an API to
key the Chunk protection operation function. Usage of the DTLS 1.3
handshake for initial mutual authentication and key establishment as
well as periodic re-authentication and rekeying with Diffe-Hellman of
the DTLS chunk protection is defined in separate documents,
e.g. <xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>. To prevent
downgrade attacks of the key-management negotiation the key-management
should implement specific procedures when deriving keys.</t>
        <t>When the endpoint authentication and key establishment has been
completed, the association is considered to be secured and the ULP is
informed about that. From this time on it's possible for the ULPs to
exchange data securely with its peer.</t>
        <t>A DTLS chunk will never be retransmitted, retransmission is implemented
by SCTP endpoint at chunk level as specified in <xref target="RFC9260"/>. DTLS replay
protection will be used to suppress duplicated DTLS chunks.</t>
      </section>
      <section anchor="DTLS-engines">
        <name>DTLS Considerations</name>
        <t>The DTLS Chunk architecture splits DTLS 1.3 as shown in
<xref target="sctp-DTLS-chunk-layering"/>, where the Key Management functionality
is done at DTLS 1.3 block level, acting as a parallel User Level Protocol
and a Chunk Protection Operator functionality inside the SCTP
Protocol Stack.</t>
        <t>Key Management is the set of data and procedures that take care of key
distribution, verification, and update, DTLS connection setup, update and
maintenance.</t>
        <t>Chunk Protection Operator functionality is the set of data and procedures
taking care of User Data encryption into DTLS Record and DTLS record
decryption into User Data.</t>
        <t>DTLS 1.3 operations requires to directly handshake messages with the
remote peer for connection setup and other features, this kind of
handshake is part of the Key Management functionality.  Key Management
function achieves these features behaving as a user of the SCTP
association.  Key Management sends and receives its own data via the
SCTP User Level interface.  Key Management's own data are
distinguished from any other data by means of a dedicated PPID using
the value 4242 (see <xref target="iana-payload-protection-id"/>).</t>
        <t>Once Key Management has established a DTLS 1.3 connection, it can
derive primary and restart keys and set the Chunk Protection Operator
for SCTP Packet Payload encryption/decryption via an API to create the
necessary DTLS key contexts. Both a DTLS Key context for normal use
(primary) and a DTLS Key context for SCTP association restart needs to
be created.</t>
        <t>In this document we use the terms DTLS Key context for indicating a
Key and IV, produced by the key-management, and all relevant data that
needs to be provided to the Chunk Protection Operator for DTLS encryption
and decryption.  DTLS Key context includes Keys and IV for sending and
receiving, replay window, last used sequence number. Each DTLS key
context is associated with a four-value tuple identifying the context,
consisting of SCTP Association, the restart indicator, the DTLS
Connection ID (if used), and the DTLS epoch.</t>
        <t>Support of DTLS Connection ID in the DTLS Record layer used in the
DTLS Chunk is OPTIONAL, and negotiated using the key-management
function.</t>
        <t>The first established DTLS key context for any SCTP association and DTLS
connection ID (if used) SHALL use epoch=3. This ensures that the
epoch of the DTLS key context will normally match the epoch of
a DTLS key-management connection.</t>
      </section>
      <section anchor="buffering">
        <name>SCTP DTLS Chunk Buffering and Flow Control</name>
        <t>DTLS 1.3 operations and SCTP are asynchronous, meaning that the
Chunk Protection Operator may deliver the decrypted SCTP Payload to the SCTP
endpoint without respecting the reception order.  It's up to SCTP
endpoint to reorder the chunks in the reception buffer and to take
care of the flow control according to what specified in
<xref target="RFC9260"/>. From SCTP perspective the DTLS chunk processing is part
of the transport network.</t>
        <t>Even though the above allows the implementors to adopt a
multithreading design of the Chunk Protection Operators, the actual
implementation should consider that out-of-order handling of SCTP
chunks is not desired and may cause false congestion signals and
trigger retransmissions.</t>
      </section>
      <section anchor="pmtu">
        <name>PMTU Considerations</name>
        <t>The addition of the DTLS chunk to SCTP reduces the room for payload,
due to the size of the DTLS chunk header, padding, and the AEAD
authentication tag.  Thus, the SCTP layer creating the plain text
payload needs to know about the overhead to adjust its target payload
size appropriately.</t>
        <t>A path MTU discovery function in SCTP will need to know the actual
sent and received size of packets for the SCTP packets. This to
correctly handle PMTUD probe packets.</t>
        <t>From SCTP perspective, if there is a maximum size of plain text data
that can be protected by the Chunk Protection Operator that must be
communicated to SCTP. As such a limit will limit the PMTU for SCTP to
the maximum plain text plus DTLS chunk and algorithm overhead plus
the SCTP common header.</t>
      </section>
      <section anchor="congestion">
        <name>Congestion Control Considerations</name>
        <t>The SCTP mechanism for handling congestion control does depend on
successful data transfer for enlarging or reducing the congestion
window CWND (see <xref target="RFC9260"/> Section 7.2).</t>
        <t>It may happen that Chunk Protection Operator discards packets due to replay
protection, or integrity errors depending on network induced bit
errors or malicious modifications. As those packets do not represent
what the peer sent, it is acceptable to ignore them, although in-situ
modification on the path of a packet resulting in discarding due to
integrity failure will leave a gap, but has to be accepted as part of
the path behavior.</t>
        <t>The Chunk Protection Operator will not interfere with the SCTP congestion
control mechanism, this basically means that from SCTP perspective
the congestion control is exactly the same as how specified
in <xref target="RFC9260"/>.</t>
      </section>
      <section anchor="icmp">
        <name>ICMP Considerations</name>
        <t>The SCTP implementation will be responsible for handling ICMP messages
and their validation as specified in <xref target="RFC9260"/> Section 10. This
means that the ICMP validation needs to be done in relation to the
actual sent SCTP packets with the DTLS chunk and not the unprotected
payload.</t>
      </section>
      <section anchor="multipath">
        <name>Path Selection Considerations</name>
        <t>When an Association is multihomed there are multiple paths between
Endpoints.  The selection of the specific path to be used at a certain
time belongs to SCTP protocol that will decide according to
<xref target="RFC9260"/>.  The Chunk Protection Operator shall not influence the path
selection algorithm, actually the Chunk Protection Operator will not even
know what path is being used.</t>
        <t>The Replay window for the DTLS Sequence Number will need to take into
account that heartbeat (HB) chunks are sent concurrently over all
paths in multihomed Associations, thus it needs to be large enough to
accommodate latency differences.</t>
      </section>
      <section anchor="sec-asconf">
        <name>Dynamic Address Reconfiguration Considerations</name>
        <t>When using Dynamic Address Reconfiguration <xref target="RFC5061"/> in an SCTP
association using DTLS Chunk the ASCONF chunk is protected, thus it
needs to be unprotected first, furthermore it MAY come from an unknown
IP Address.  In order to properly address the ASCONF chunk to the
relevant Association for being unprotected, Destination Address,
Source, Destination ports and VTag shall be used. If the combination
of those parameters is not unique the implementor MAY choose to send
the DTLS Chunk to all Associations that fit with the parameters in
order to find the right one. The association will attempt
de-protection operations on the DTLS chunk, and if that is successful
the ASCONF chunk can be processed. Note that trial decoding should
have a limit in number of tried contexts to prevent denial of service
attacks on the endpoint.</t>
        <t>The section 4.1.1 of <xref target="RFC5061"/> specifies that ASCONF message are
required to be sent authenticated with SCTP-AUTH <xref target="RFC4895"/>.  For
SCTP associations using DTLS Chunk this results in the use of
redundant mechanism for Authentication with both SCTP-AUTH and the
DTLS Chunk. We recommend to amend <xref target="RFC5061"/> for including DTLS
Chunks as Authentication mechanism for ASCONF chunks.</t>
      </section>
      <section anchor="sec-restart">
        <name>SCTP Restart Considerations</name>
        <t>This section deals with the handling of an unexpected INIT chunk
during an Association lifetime as described in Section 5.2 of <xref target="RFC9260"/>
with the purpose of achieving a Restart of the current Association,
thus implementing SCTP Restart.</t>
        <t>This specification doesn't support SCTP Restart as described in
<xref target="RFC9260"/>; when unexpected INIT chunk is received unprotected, it
SHALL be silently discarded to prevent denial of service attacks on
the ongoing association.</t>
        <t>All implementations SHALL support receiving and processing unexpected
INIT chunks protected by DTLS Chunk as described in
<xref target="protected-restart"/>. This as has minimal implementation burden
as it only requires handling the restart DTLS Key Context and detect
DTLS Chunks indicating the restart.</t>
        <t>When the upper layer protocols require support of SCTP Restart, as in
case of 3GPP NG-C protocol <xref target="ETSI-TS-38.413"/>, the endpoint needs to
support also initiating protected SCTP Restart procedure described in
<xref target="protected-restart"/>. Implementing initiating protected restart
procedure is RECOMMENDED, however not required as persistent secure
storage of the restart DTLS Key Context is needed.</t>
        <t>The cases where one of the SCTP Endpoints only implements initiating
legacy SCTP Restart are described in <xref target="sctp-rest-comp"/>.</t>
        <section anchor="protected-restart">
          <name>Protected SCTP Restart</name>
          <t>The protected SCTP Restart procedure keeps the security
characteristics of an SCTP Association using DTLS Chunk.</t>
          <t>In protected SCTP Restart, INIT chunks are sent encrypted
using DTLS Chunks.</t>
          <t>In order to support protected SCTP Restart, the SCTP Endpoints shall allocate
and maintain dedicated Restart DTLS Key contexts, SCTP packets
protected by these contexts will be identified in the DTLS chunk with
the R (Restart) bit set (see <xref target="DTLS-chunk"/>).  Both SCTP Endpoints
needs to ensure that Restart DTLS key contexts is preserved for
supporting the protected SCTP Restart use case.</t>
          <t>In order for the protected SCTP endpoint to be available for protected SCTP
Restart purposes, the DTLS chunk needs access to a DTLS Key context for
this SCTP association that needs to be kept in a well-known state so
that both SCTP Endpoints are aware of the DTLS sequence numbers and
replay window, i.e. initialized but never used. An SCTP Endpoint SHALL
NEVER use the SCTP Restart DTLS Key for any other use case than SCTP
association restart.</t>
          <t>An SCTP endpoint wanting to be able to initiate a protected SCTP
restart needs to store securely and persistent the restart Keys, DTLS
connection ID (if used) and related DTLS epoch, indexed so that when
performing a restart with the peer node it had a protected SCTP
association which can identify the right restart Key and DTLS epoch and
initialize the restart DTLS Key Context for when restarting the SCTP
association. The keys, DTLS connection ID, and epoch needs to be stored
secure and persistently so that they survive the events that are
causing protected SCTP Restart procedure to be used, for instance a
crash of the SCTP stack. The security considerations for persistent
secure storage of keying materials is further discussed in
<xref target="sec-considertation-storage"/>.</t>
          <t>The SCTP Restart handshakes INIT, INIT-ACK, COOCKIE-ECHO, COOKIE-ACK
exactly as in legacy SCTP Restart case; these Chunks SHALL be
sent as DTLS chunk protected using the restart DTLS key context.</t>
          <t>A DTLS Chunk using the restart DTLS key context is identified by
having the R bit (Restart Indicator) set in the DTLS Chunk (see
<xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>).  There's exactly one
active Restart DTLS Context at a time, the newest. However, a crash at
the time having completed the key-management exchange but failing to
commit the DTLS Key Context to persistent secure storage could result
in loss of the latest DTLS Key Context. Therefore, the endpoints
SHOULD retain the old restart DTLS key context until it the
key-management confirms the new ones are committed to secure storage.
This can for example be ensure that at key-changes signals to
terminate the old DTLS Key Contexts (including the restart) is never
sent until the new restart DTLS Key Context has been committed to
storage.</t>
          <figure anchor="DTLS-chunk-restart">
            <name>Handshake of SCTP Restart for DTLS in SCTP</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="504" viewBox="0 0 504 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,48 L 40,160" fill="none" stroke="black"/>
                  <path d="M 408,48 L 408,160" fill="none" stroke="black"/>
                  <path d="M 440,64 L 440,144" fill="none" stroke="black"/>
                  <path d="M 40,64 L 136,64" fill="none" stroke="black"/>
                  <path d="M 288,64 L 400,64" fill="none" stroke="black"/>
                  <path d="M 48,80 L 120,80" fill="none" stroke="black"/>
                  <path d="M 304,80 L 408,80" fill="none" stroke="black"/>
                  <path d="M 440,80 L 496,80" fill="none" stroke="black"/>
                  <path d="M 40,128 L 112,128" fill="none" stroke="black"/>
                  <path d="M 320,128 L 400,128" fill="none" stroke="black"/>
                  <path d="M 48,144 L 112,144" fill="none" stroke="black"/>
                  <path d="M 312,144 L 408,144" fill="none" stroke="black"/>
                  <path d="M 440,144 L 496,144" fill="none" stroke="black"/>
                  <path d="M 424,48 C 432.83064,48 440,55.16936 440,64" fill="none" stroke="black"/>
                  <path d="M 424,160 C 432.83064,160 440,152.83064 440,144" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="408,128 396,122.4 396,133.6" fill="black" transform="rotate(0,400,128)"/>
                  <polygon class="arrowhead" points="408,64 396,58.4 396,69.6" fill="black" transform="rotate(0,400,64)"/>
                  <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
                  <polygon class="arrowhead" points="56,80 44,74.4 44,85.6" fill="black" transform="rotate(180,48,80)"/>
                  <g class="text">
                    <text x="40" y="36">Initiator</text>
                    <text x="408" y="36">Responder</text>
                    <text x="160" y="68">[DTLS</text>
                    <text x="236" y="68">CHUNK(INIT)]</text>
                    <text x="144" y="84">[DTLS</text>
                    <text x="236" y="84">CHUNK(INIT-ACK)]</text>
                    <text x="472" y="100">Using</text>
                    <text x="468" y="116">SCTP</text>
                    <text x="136" y="132">[DTLS</text>
                    <text x="212" y="132">CHUNK(COOKIE</text>
                    <text x="292" y="132">ECHO)]</text>
                    <text x="476" y="132">Chunks</text>
                    <text x="136" y="148">[DTLS</text>
                    <text x="212" y="148">CHUNK(COOKIE</text>
                    <text x="288" y="148">ACK)]</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
Initiator                                     Responder
    |                                             | -.
    +------------[DTLS CHUNK(INIT)]-------------->|   |
    |<---------[DTLS CHUNK(INIT-ACK)]-------------+   +-------
    |                                             |   | Using
    |                                             |   | SCTP
    +---------[DTLS CHUNK(COOKIE ECHO)]---------->|   | Chunks
    |<--------[DTLS CHUNK(COOKIE ACK)]------------+   +-------
    |                                             | -'

]]></artwork>
            </artset>
          </figure>
          <t>The <xref target="DTLS-chunk-restart"/> shows how the control chunks being
used for SCTP Association Restart are transported within DTLS in SCTP.</t>
          <t>The transport of INIT, INIT-ACK COOCKIE-ECHO, COOCKIE-ACK by means of
DTLS chunk ensures that the peer requesting the restart has been
previously validated and the SCTP state machine after having reached
ESTABLISHED state moves automatically to PROTECTED state.</t>
          <t>A restarted SCTP Association SHALL continue to use the Restart DTLS Key Context,
for User Traffic until a new primary DTLS Key Context will be available. The
implementors SHOULD initiate a new DTLS keying as soon as possible,
and derive the primary and restart keys so that the time when no
Restart DTLS Key Context is available is kept to a minimum. Note that another
restart attempt prior to having created new restart DTLS Key context
for the new SCTP association will result in the endpoints being unable
to restart the SCTP association.</t>
          <t>After restart the next primary DTLS key context SHALL use epoch=3,
i.e. the epoch value is reset. Note that if the restart epoch used
also was 3 when not using any DTLS connection ID, then the
installation of the new restart DTLS key context needs to be done with
some care to avoid dropping valid packets. After having derived new
primary DTLS Key Context the endpoint installs the primary DTLS Key Context first,
and start using it. The new restart DTLS Key Context is only installed
after any old in-flight restart packets will have been received.</t>
        </section>
        <section anchor="sctp-rest-comp">
          <name>Compatibility with Legacy SCTP Restart</name>
          <t>An SCTP Endpoint supporting only legacy SCTP Restart and involved
in an SCTP Association using DTLS Chunks SHOULD NOT attempt to
restart the Association using unprotected INIT chunk. The effect
will be that the restart initiator will have its packet being dropped
until the peer nodes times out the SCTP Association from lack
of any response from the restarting node.</t>
          <t>An SCTP Endpoint supporting only legacy SCTP Restart and involved
in an SCTP Association using DTLS Chunks, when receiving an INIT
chunk protected by DTLS chunk as described in <xref target="protected-restart"/>,
thus having the R bit (Restart Indicator) set in the DTLS Chunk (see
<xref target="sctp-DTLS-chunk-newchunk-crypt-struct"/>), will silently discard it.</t>
          <t>Since an SCTP Endpoint supporting only legacy SCTP Restart and involved
in an SCTP Association using DTLS Chunks cannot use SCTP Restart
legacy procedure, in case of need to restart the Association
it SHOULD keep on retrying initiating a new Association
until the remote SCTP Endpoint have closed the existing Association
(i.e. due to timeout) and will accept a new one.
As alternative, depending on the Use Case and the Upper Layer protocol,
it MAY use a different SCTP Source port number so that the peer SCTP Endpoint
will accept the initiation of the new Association while still supervising
the old one.</t>
        </section>
      </section>
    </section>
    <section anchor="new-parameter-type">
      <name>New Parameter Type</name>
      <t>This section defines the new parameter type that will be used to
negotiate the use of the DTLS 1.3 chunk during association setup, its
keying method and indicate preference in relation to different keying
and other security solutions. <xref target="sctp-DTLS-chunk-init-parameter"/>
illustrates the new parameter type.</t>
      <table anchor="sctp-DTLS-chunk-init-parameter">
        <name>New INIT/INIT-ACK Parameter</name>
        <thead>
          <tr>
            <th align="right">Parameter Type</th>
            <th align="left">Parameter Name</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">0x80xx</td>
            <td align="left">DTLS 1.3 Chunk Protected Association</td>
          </tr>
        </tbody>
      </table>
      <t>Note that the parameter format requires the receiver to ignore the
parameter and continue processing if the parameter is not understood.
This is accomplished (as described in <xref target="RFC9260"/>, Section 3.2.1.)  by
the use of the upper bits of the parameter type.</t>
      <section anchor="protectedassoc-parameter">
        <name>DTLS 1.3 Chunk Protected Association</name>
        <t>This parameter is used to the request and acknowledge of support of
DTLS 1.3 Chunk during INIT/INIT-ACK handshake and indicate preference
for keying and the preference order between multiple security
solutions (if supported).</t>
        <figure anchor="sctp-DTLS-chunk-init-options">
          <name>Protected Association Parameter</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,128" fill="none" stroke="black"/>
                <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
                <path d="M 520,160 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="80" y="84">Parameter</text>
                  <text x="140" y="84">Type</text>
                  <text x="168" y="84">=</text>
                  <text x="204" y="84">0x80XX</text>
                  <text x="360" y="84">Parameter</text>
                  <text x="428" y="84">Length</text>
                  <text x="68" y="116">Protection</text>
                  <text x="148" y="116">Solution</text>
                  <text x="196" y="116">#1</text>
                  <text x="324" y="116">Protection</text>
                  <text x="404" y="116">Solution</text>
                  <text x="452" y="116">#2</text>
                  <text x="8" y="148">:</text>
                  <text x="60" y="148">Protection</text>
                  <text x="144" y="148">Solutions</text>
                  <text x="520" y="148">:</text>
                  <text x="60" y="180">Protection</text>
                  <text x="140" y="180">Solution</text>
                  <text x="188" y="180">#N</text>
                  <text x="304" y="180">Padding</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Parameter Type = 0x80XX    |       Parameter Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protection Solution #1       |  Protection Solution #2       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: Protection Solutions                                          :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protection Solution #N        | Padding                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Parameter Type: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value MUST be set to 0x80XX.</t>
          </dd>
          <dt>Parameter Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the parameter, which will be the
number of Protection Solution fields (N) times two plus 4 and, if N
is odd, plus 2 bytes of padding.</t>
          </dd>
          <dt>Protection Solution fields: one or more 16-bit SCTP Protection Solution Identifiers:</dt>
          <dd>
            <t>Each Protection Solution Identifier (<xref target="IANA-Protection-Solution-ID"/>)
is a 16-bit unsigned integer value indicting a Protection
Solution. Protection solutions include both DTLS Chunk based, where
a solution combines the DTLS chunk with a key-management solution,
or non DTLS Chunk based security solution. The Protection Solutions
are listed in descending order of preference, i.e. the first listed
in the parameter is the most preferred and the last the least
preferred by the sender in the INIT chunk. In the INIT-ACK chunk the
endpoint includes all of the offered solutions which it supports and
lists the selected one first. Including its decreasing preference on
the additional Protection Solutions.</t>
          </dd>
        </dl>
        <t>Padding: If the number of included Protection solutions is odd the
parameter MUST be padded with two zero (0) bytes of padding to make
the parameter 32-bit aligned.</t>
        <t>RFC-Editor Note: Please replace 0x08XX with the actual parameter type
value assigned by IANA and then remove this note.</t>
      </section>
    </section>
    <section anchor="new-chunk-type">
      <name>New Chunk Type</name>
      <section anchor="DTLS-chunk">
        <name>DTLS Chunk (DTLS)</name>
        <t>This section defines the new chunk type that will be used to
transport the DTLS 1.3 record containing protected SCTP payload.
<xref target="sctp-DTLS-chunk-newchunk-crypt"/> illustrates the new chunk type.</t>
        <table anchor="sctp-DTLS-chunk-newchunk-crypt">
          <name>DTLS Chunk Type</name>
          <thead>
            <tr>
              <th align="right">Chunk Type</th>
              <th align="left">Chunk Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0x4X</td>
              <td align="left">DTLS Chunk (DTLS)</td>
            </tr>
          </tbody>
        </table>
        <t>RFC-Editor Note: Please replace 0x4x with the actual chunk type value
assigned by IANA and then remove this note.</t>
        <t>It should be noted that the DTLS chunk format requires the receiver
stop processing this SCTP packet, discard the unrecognized chunk and
all further chunks, and report the unrecognized chunk in an ERROR
chunk using the 'Unrecognized Chunk Type' error cause.  This is
accomplished (as described in <xref target="RFC9260"/> Section 3.2.) by the use of
the upper bits of the chunk type.</t>
        <t>The DTLS chunk is used to hold the DTLS 1.3 record with the protected
payload of a plain text SCTP packet without the SCTP common header.</t>
        <figure anchor="sctp-DTLS-chunk-newchunk-crypt-struct">
          <name>DTLS Chunk Structure</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 248,64 L 248,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="36" y="84">Type</text>
                  <text x="64" y="84">=</text>
                  <text x="92" y="84">0x4x</text>
                  <text x="180" y="84">reserved</text>
                  <text x="256" y="84">R</text>
                  <text x="360" y="84">Chunk</text>
                  <text x="412" y="84">Length</text>
                  <text x="264" y="132">Payload</text>
                  <text x="384" y="180">Padding</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x4x   | reserved    |R|         Chunk Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                            Payload                            |
|                                                               |
|                               +-------------------------------+
|                               |           Padding             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl>
          <dt>reserved: 7 bits</dt>
          <dd>
            <t>Reserved bits for future use. Sender MUST set these bits to 0 and
MUST be ignored on reception.</t>
          </dd>
          <dt>R: 1 bit (boolean)</dt>
          <dd>
            <t>Restart indicator. If this bit is set this DTLS chunk is protected
with by a Restart DTLS Key context.</t>
          </dd>
          <dt>Chunk Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>This value holds the length of the Payload in bytes plus 4.</t>
          </dd>
          <dt>Payload: variable length</dt>
          <dd>
            <t>This holds the DTLSCiphertext as specified in DTLS 1.3 <xref target="RFC9147"/>.</t>
          </dd>
          <dt>Padding: 0, 8, 16, or 24 bits</dt>
          <dd>
            <t>If the length of the Payload is not a multiple of 4 bytes, the sender
MUST pad the chunk with all zero bytes to make the chunk 32-bit
aligned.  The Padding MUST NOT be longer than 3 bytes and it MUST
be ignored by the receiver.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="error_handling">
      <name>Error Handling</name>
      <t>This specification introduces a new set of error causes that are to be
used when SCTP endpoint detects a faulty condition. The special case is
when the error is detected by the DTLS 1.3 Protection that may provide
additional information.</t>
      <section anchor="enoprotected">
        <name>Mandatory Protected Association Parameter Missing</name>
        <t>When an initiator SCTP endpoint sends an INIT chunk that doesn't
contain the DTLS 1.3 Chunk Protected Association or other protection
solutions towards an SCTP endpoint that only accepts protected
associations, the responder endpoint SHALL raise a Missing Mandatory
Parameter error. The ERROR chunk will contain the cause code 'Missing
Mandatory Parameter' (2) (see <xref target="RFC9260"/> Section 3.3.10.7) and the
DTLS 1.3 chunk protected association parameter identifier
<xref target="protectedassoc-parameter"/> in the missing param Information
field. It may also include additional parameters representing other
supported protection mechanisms that are acceptable per endpoint
security policy.</t>
        <figure anchor="sctp-DTLS-init-chunk-missing-protected">
          <name>ERROR Missing Protected Association Parameter</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,192" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="96" y="84">Cause</text>
                  <text x="140" y="84">Code</text>
                  <text x="168" y="84">=</text>
                  <text x="184" y="84">2</text>
                  <text x="360" y="84">Cause</text>
                  <text x="412" y="84">Length</text>
                  <text x="172" y="116">Number</text>
                  <text x="212" y="116">of</text>
                  <text x="256" y="116">missing</text>
                  <text x="316" y="116">params</text>
                  <text x="352" y="116">=</text>
                  <text x="368" y="116">N</text>
                  <text x="44" y="148">DTLS</text>
                  <text x="80" y="148">1.3</text>
                  <text x="120" y="148">Chunk</text>
                  <text x="184" y="148">Protected</text>
                  <text x="240" y="148">Asc</text>
                  <text x="336" y="148">Missing</text>
                  <text x="392" y="148">Param</text>
                  <text x="436" y="148">Type</text>
                  <text x="468" y="148">#2</text>
                  <text x="72" y="180">Missing</text>
                  <text x="128" y="180">Param</text>
                  <text x="172" y="180">Type</text>
                  <text x="212" y="180">#N-1</text>
                  <text x="336" y="180">Missing</text>
                  <text x="392" y="180">Param</text>
                  <text x="436" y="180">Type</text>
                  <text x="468" y="180">#N</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Cause Code = 2         |         Cause Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Number of missing params = N                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DTLS 1.3 Chunk Protected Asc |     Missing Param Type #2     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Missing Param Type #N-1    |     Missing Param Type #N     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <t>Note: Cause Length in bytes is equal to following with the number of
missing parameters as N: 8 + N * 2 according to <xref target="RFC9260"/>, section
3.3.10.2. Also the Protection Association ID may be present in any of
the N missing params, no order implied by the example in
<xref target="sctp-DTLS-init-chunk-missing-protected"/>.</t>
      </section>
      <section anchor="eprotect">
        <name>Error in DTLS Chunk</name>
        <t>A new Error Type is defined for the DTLS Chunk, it's used for any
error related to the DTLS chunk's protection mechanism described in
this document and has a structure that allows detailed information to
be added as extra causes.</t>
        <t>This specification describes some of the causes whilst the key
establishment specification MAY add further causes.</t>
        <t>When detecting an error, SCTP will send an ABORT chunk containing
the relevant Error Type and Causes.</t>
        <figure anchor="sctp-eprotect-error-structure">
          <name>Error in DTLS Chunk Cause Format</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="72" y="84">Cause</text>
                  <text x="116" y="84">Code</text>
                  <text x="144" y="84">=</text>
                  <text x="172" y="84">TBA9</text>
                  <text x="360" y="84">Cause</text>
                  <text x="412" y="84">Length</text>
                  <text x="104" y="116">Extra</text>
                  <text x="152" y="116">Cause</text>
                  <text x="188" y="116">#1</text>
                  <text x="360" y="116">Extra</text>
                  <text x="408" y="116">Cause</text>
                  <text x="444" y="116">#2</text>
                  <text x="96" y="148">Extra</text>
                  <text x="144" y="148">Cause</text>
                  <text x="188" y="148">#N-1</text>
                  <text x="360" y="148">Extra</text>
                  <text x="408" y="148">Cause</text>
                  <text x="444" y="148">#N</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Cause Code = TBA9         |         Cause Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Extra Cause #1        |         Extra Cause #2        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Extra Cause #N-1       |         Extra Cause #N        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </artset>
        </figure>
        <dl newline="true">
          <dt>Cause Code: 16 bits (unsigned integer)</dt>
          <dd>
            <t>The SCTP Error Chunk Cause Code indicating "Error in Protection" is TBA9.</t>
          </dd>
          <dt>Cause Length: 16 bits (unsigned integer)</dt>
          <dd>
            <t>Is for N extra Causes equal to  4 + N * 2</t>
          </dd>
          <dt>Extra Cause: 16 bits (unsigned integer)</dt>
          <dd>
            <t>Each Extra Cause indicate an additional piece of information as part
of the error. There MAY be zero to as many as can fit in the extra
cause field in the ERROR Chunk (A maximum of 32764).</t>
          </dd>
        </dl>
        <t>Editor's Note: Please replace TBA9 above with what is assigned by IANA.</t>
        <t>Below a number of defined Error Causes (Extra Cause above) are
defined, additional causes can be registered with IANA following the
rules in <xref target="IANA-Extra-Cause"/>.</t>
        <section anchor="enocommonpsi">
          <name>No Common Protection Solution</name>
          <t>If the responder to do not support any of the protection solutions
offered by the association initiator in the Protection Soluiton
Parameters <xref target="sctp-DTLS-chunk-init-options"/> SCTP will send an ABORT
chunk in response to the INIT chunk (Section 5.1 of <xref target="RFC9260"/>,
including the error cause "Error in DTLS Chunk" <xref target="eprotect"/> and
containing the Extra Cause "No Common Protection Solution".</t>
        </section>
      </section>
      <section anchor="eengine">
        <name>Critical Error from DTLS</name>
        <t>The Chunk Protection Operator MAY inform local SCTP endpoint about errors.
When an Error in the DTLS 1.3 compromises the protection mechanism,
the Chunk Protection Operator may stop processing data altogether, thus the
local SCTP endpoint will not be able to send or receive any chunk for
the specified Association.  This will cause the SCTP Association to be
closed by legacy timer-based mechanism. Since the Association
protection is compromised no further data will be sent and the remote
peer will also experience timeout on the Association.</t>
      </section>
      <section anchor="non-critical-errors">
        <name>Non-critical Error in the Protection</name>
        <t>A non-critical error in Chunk Protection Operator means that the
Chunk Protection Operator is capable of recovering without the need
of the whole SCTP Association to be re-established.</t>
        <t>From SCTP perspective, a non-critical error will be perceived
as a temporary problem in the transport and will be handled
with retransmissions and SACKS according to <xref target="RFC9260"/>.</t>
        <t>When the Chunk Protection Operator will experience a non-critical error,
an ABORT chunk SHALL NOT be sent.</t>
      </section>
    </section>
    <section anchor="procedures">
      <name>Procedures</name>
      <section anchor="establishment-procedure">
        <name>Establishment of a Protected Association</name>
        <t>An SCTP Endpoint acting as initiator willing to create a DTLS 1.3
chunk protected association shall send to the remote peer an INIT
chunk containing the DTLS 1.3 Chunk Protected Association parameter
(see <xref target="protectedassoc-parameter"/>) indicating supported and preferred
key-management solutions (see
<xref target="sctp-DTLS-chunk-init-options"/>).</t>
        <t>An SCTP Endpoint acting as responder, when receiving an INIT chunk
with DTLS 1.3 Chunk Protected Association parameter, will reply with
INIT-ACK with its own DTLS 1.3 Chunk Protected Association parameter
containing the selected protection solution out of the set of supported
ones. In case there are no common set of supported solutions that are
accepted by the responder, and the endpoints policy require secured
association it SHALL reply with an ABORT chunk, include the error
cause "Error in DTLS Chunk" <xref target="eprotect"/> and containing the Extra
Cause "No Common Protection Solution" <xref target="enocommonpsi"/>. Otherwise, the
responder MAY send an INIT-ACK without the DTLS 1.3 Chunk Protected
Association parameter to indicate it is willing to create a session
without security.</t>
        <t>Additionally, an SCTP Endpoint acting as responder willing to support
only protected associations shall consider an INIT chunk not containing
the DTLS 1.3 Chunk Protected Association parameter or another
Protection Solution accepted by own security policy solution as an error,
thus it will reply with an ABORT chunk according to what specified in
<xref target="enoprotected"/> indicating that for this endpoint mandatory DTLS 1.3
Chunk Protected Association parameter is missing.</t>
        <t>When initiator and responder have agreed on a DTLS Chunk protected
association by means of handshaking INIT/INIT-ACK the SCTP association
establishment continues until it has reached the ESTABLISHED state.</t>
        <t>When the SCTP session has been established follow the process defined
by the selected key-management solution for establishing DTLS Key Contexts
and installing them.</t>
        <section anchor="offering-multiple-security-solutions">
          <name>Offering Multiple Security Solutions</name>
          <t>An initiator of an SCTP association may want to offer multiple
different key-management solutions for DTLS Chunk or in combination
with other security solutions in addition to DTLS 1.3 chunks for the
SCTP association. This can be done but need to consider the downgrade
attack risks (see <xref target="Downgrade-Attacks"/>).</t>
          <t>The initiator MAY include in its INIT additional security solutions
that are compatible to offer in parallel with DTLS 1.3 Chunks. This
may include SCTP-AUTH <xref target="I-D.ietf-tsvwg-rfc4895-bis"/>. This will result
in that a number of different SCTP parameters may be included that are
not possible to use simultaneously. Instead the responder needs to parse
these parameters to figure out which sets of solutions that are
offered that the implementation support, and apply its security
policies to select the most appropriate. For example an offer of DTLS
1.3 Chunks and SCTP-AUTH, could be interpreted as three different
solutions with different properties, namely DTLS 1.3 Chunks,
DTLS/SCTP <xref target="RFC6083"/>, and SCTP-AUTH <xref target="I-D.ietf-tsvwg-rfc4895-bis"/> only.
However, here the DTLS 1.3 Chunk Protected Association Parameter can
indicate both preference and which of the solutions that are desired.</t>
          <t>The responder selects one or possibly more of compatible security
solutions that can be used simultaneously and include them in the
response (INIT-ACK). If DTLS 1.3 chunks was selected and the
Key-Management method follows the recommendation for down-grade
prevention the endpoints can know that down-grade did not happen.</t>
        </section>
      </section>
      <section anchor="termination-procedure">
        <name>Termination of a Protected Association</name>
        <t>Besides the procedures for terminating an association explained in
<xref target="RFC9260"/>, DTLS 1.3 SHALL ask SCTP endpoint for terminating an
association when having an internal error or by detecting a security
violation.  During the termination procedure all Control Chunks SHALL
be protected except SHUTDOWN-COMPLETE. The internal design of
Protection Engines and their capability is out of the scope of the
current document.</t>
      </section>
      <section anchor="key-management-considerations">
        <name>Considerations on Key Management</name>
        <t>It is up to the upper layer to manage the keys for the DTLS chunk.
One example of such a in-band DTLS key management is
<xref target="I-D.westerlund-tsvwg-sctp-DTLS-handshake"/>.
The key management SHOULD use a dedicated PPID to ensure that the
user messages are handled by the appropriate layer.</t>
        <t>When performing key management, the keys for receiving SHOULD be installed
before the corresponding send keys at the peer. For mitigating downgrade
attacks the key derivation MUST include the protection solution Identifiers
that were sent and received.</t>
        <t>The communication is only protected after both sides have configured the keys
for sending and both sides have enforced the protection.</t>
        <t>To prevent downgrade attacks the key-management methods SHOULD include
in its input to key derivation the offered list in priority order of
protections solutions from the SCTP associations INIT chunk's DTLS 1.3
Chunk Protected Association parameter. By both peers including the
sent and received list, respectively, in the key derivation any
downgrade will result in a key-missmatch between the SCTP assocation
initiator and responder, resulting in the SCTP assocation failing
after having installed key contexts, thus preventing any down-grade
attempt to weaking the security. Methods not including the list of
offered protection solutions will enable a downgrade to such a
key-management method.</t>
      </section>
    </section>
    <section anchor="dtls-chunk-handling">
      <name>DTLS Chunk Handling</name>
      <t>The DTLS chunk MUST NOT be bundled with any other chunk.
In particular, it MUST be the first chunk.</t>
      <figure anchor="sctp-DTLS-encrypt-chunk-states-1">
        <name>Unprotected SCTP Packet</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="236" y="84">Common</text>
                <text x="292" y="84">Header</text>
                <text x="248" y="116">Chunk</text>
                <text x="284" y="116">#1</text>
                <text x="240" y="148">.</text>
                <text x="256" y="148">.</text>
                <text x="272" y="148">.</text>
                <text x="248" y="180">Chunk</text>
                <text x="284" y="180">#n</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Common Header                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Chunk #1                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            . . .                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Chunk #n                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
      </figure>
      <t>The diagram shown in <xref target="sctp-DTLS-encrypt-chunk-states-1"/> describes
the structure of an unprotected SCTP packet as described in <xref target="RFC9260"/>.</t>
      <figure anchor="sctp-DTLS-encrypt-chunk-states-2">
        <name>Protected SCTP Packets</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="236" y="84">Common</text>
                <text x="292" y="84">Header</text>
                <text x="236" y="116">DTLS</text>
                <text x="280" y="116">Chunk</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Common Header                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          DTLS Chunk                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
      </figure>
      <t>The diagram shown in <xref target="sctp-DTLS-encrypt-chunk-states-2"/> describes
the structure of a protected SCTP packet being sent.
Such packets are built with the SCTP common header.
Only one DTLS chunk can be sent in a SCTP packet.</t>
      <section anchor="dtls-chunk-sending">
        <name>Sending of DTLS Chunks</name>
        <t>When the credentials for sending DTLS chunks have been configured by the
application, all SCTP packets are sent with a DTLS chunk.</t>
        <t>When an SCTP packet needs to be sent, the sequence of chunks is used
as DTLSInnerPlaintext.content and DTLSInnerPlaintext.type is set to
application_data. Then the DTLSCiphertext is computed and used as the
payload of the DTLS chunk. Finally the SCTP common header is prepended.</t>
        <t>When the DTLS chunk is used, the DTLS chunk header and the overhead of DTLS
has to be considered to ensure that the final SCTP packet does not exceed
the PMTU.</t>
      </section>
      <section anchor="dtls-chunk-receiving">
        <name>Receiving of DTLS Chunks</name>
        <t>When an SCTP packet containing a DTLS chunk bundled with any other
chunk is received, the packet MUST be silently discarded.</t>
        <t>After the application has restricted the SCTP packet handling to protected
SCTP packets only, a SCTP packet not containing a DTLS chunk MUST be
silently discarded.</t>
        <t>When processing the payload of the DTLS chunk (i.e. the DTLSCiphertest),
the Restart flag in addition to the unified_hdr is used to find the keys for
processing the encrypted_record.</t>
        <t>After the encrypted_record has been verified and decrypted, the
corresponding chunks (the DTLSInnerPlaintext.content) are processed as
defined in the corresponding specifications.</t>
      </section>
    </section>
    <section anchor="abstract-api">
      <name>Abstract API</name>
      <t>This section describes an abstract API that is needed between a key
establishment part and the DTLS 1.3 protection 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 key and IV for primary and restart DTLS key
context. The key is the primary cryptograpical key used by the cipher
suit for DTLS record protection (Section 5.2 of <xref target="RFC8446"/>. The
initilization vector (IV) is cryptographical random material used to
XOR with the sequence number to create the nonce per Section 5.3 of
<xref target="RFC8446"/>.</t>
      <section anchor="cipher-suit-capabilities">
        <name>Cipher Suit Capabilities</name>
        <t>The key-management function needs to know which cipher suits defined
for usage with DTLS 1.3 that are supported by the DTLS chunk and its
protection operations block. All TLS cipher suit that are defined are
listed in the TLS cipher suit registry <xref target="TLS-CIPHER-SUITS"/> at IANA
and are identified by a 2-byte value. Thus this needs to return a list
of all supported cipher suits to the higher layer.</t>
        <t>Request : Get Cipher Suits</t>
        <t>Parameters : none</t>
        <t>Reply   : Cipher Suits</t>
        <t>Parameters : list of cipher suits</t>
      </section>
      <section anchor="establish-client-write-keying-material">
        <name>Establish Client Write Keying Material</name>
        <t>The DTLS Chunk can use one of out of multiple sets of cipher suit and
corresponding key materials.</t>
        <t>The following information needs to be provided when setting Client Write (transmit) Keying material:</t>
        <t>Request : Establish Client Write Key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association:</dt>
              <dd>
                <t>Reference to the relevant SCTP association to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating whether the Key is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>DTLS Connection ID: : If DTLS connection ID (CID) has been negotiated by
the key-management its field length and value are include. The field length
can be set to zero (0) to indicate that CID is not used.</t>
          </li>
          <li>
            <dl>
              <dt>DTLS Epoch:</dt>
              <dd>
                <t>The DTLS epoch these keys are valid for. Note that Epoch lower than
3 are not expected as they are used during DTLS handshake.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Cipher Suit:</dt>
              <dd>
                <t>2 bytes cipher suit identification for the DTLS 1.3 Cipher suit used
to identify the DTLS AEAD algorithm to perform the DTLS record protection.
The cipher suite is fixed for a (SCTP Association, Key) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Write Key and IV:</dt>
              <dd>
                <t>The cipher suit specific binary object containing all necessary
information for protection operations. The secret will used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suit used.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Reply : Established or Failed</t>
      </section>
      <section anchor="establish-server-write-keying-material">
        <name>Establish Server Write Keying Material</name>
        <t>The DTLS Chunk can use one of out of multiple sets of cipher suit and
corresponding key materials.</t>
        <t>The following information needs to be provided when setting Server Write (transmit) Keying material:</t>
        <t>Request : Establish Server Write Key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt>SCTP Association:</dt>
              <dd>
                <t>Reference to the relevant SCTP association to set the keying material for.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Restart indication:</dt>
              <dd>
                <t>A bit indicating whether the Key is for restart purposes</t>
              </dd>
            </dl>
          </li>
          <li>
            <t>DTLS Connection ID: : If DTLS connection ID (CID) has been negotiated by
the key-management its field length and value are include. The field length
can be set to zero (0) to indicate that CID is not used.</t>
          </li>
          <li>
            <dl>
              <dt>DTLS Epoch:</dt>
              <dd>
                <t>The DTLS epoch these keys are valid for. Note that Epoch lower than
3 are note expected as they are used during DTLS handshake.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Cipher Suit:</dt>
              <dd>
                <t>2 bytes cipher suit identification for the DTLS 1.3 Cipher suit used
to identify the DTLS AEAD algorithm to perform the DTLS record protection.
The cipher suite is fixed for a (SCTP Association, Key) pair.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>Write Key and IV:</dt>
              <dd>
                <t>The cipher suit specific binary object containing all necessary
information for protection operations. The secret will used by the DTLS 1.3 client to
encrypt the record. Binary arbitrary long object depending on the
cipher suit used.</t>
              </dd>
            </dl>
          </li>
        </ul>
        <t>Reply : Established or Failed</t>
      </section>
      <section anchor="destroy-client-write-keying-material">
        <name>Destroy Client Write Keying Material</name>
        <t>A function to destroy the Client Write (transmit) keying material for a given epoch for a given
Key for a given SCTP Association.</t>
        <t>Request : Destroy client write key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Destroyed</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="destroy-server-write-keying-material">
        <name>Destroy Server Write Keying Material</name>
        <t>A function to destroy the Server Write (transmit) keying material for a given epoch for a given
Key for a given SCTP Association.</t>
        <t>Request : Destroy server write key and IV</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Destroyed</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="set-key-to-use">
        <name>Set Key to Use</name>
        <t>Set which key to use to protect the future SCTP packets sent by the
SCTP Association.</t>
        <t>Request : Set Key used</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: Key set</t>
        <t>Parameters : true or false</t>
      </section>
      <section anchor="require-protected-sctp-packets">
        <name>Require Protected SCTP Packets</name>
        <t>A function to configure an SCTP association to require that normal
SCTP packets 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-q">
        <name>Get q</name>
        <t>Get q, the number of protected messages (AEAD encryption invocations) for
a given epoch.</t>
        <t>Request : Get q</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: q</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="get-v">
        <name>Get v</name>
        <t>Get v, the number of attacker forgery attempts
(failed AEAD decryption invocations) for a given epoch.</t>
        <t>Request : Get v</t>
        <t>Parameters :</t>
        <ul spacing="normal">
          <li>
            <t>SCTP Association</t>
          </li>
          <li>
            <t>Restart indication</t>
          </li>
          <li>
            <t>DTLS CID</t>
          </li>
          <li>
            <t>DTLS Epoch</t>
          </li>
        </ul>
        <t>Reply: v</t>
        <t>Parameters : non-negative integer</t>
      </section>
      <section anchor="configure-replay-protection">
        <name>Configure Replay Protection</name>
        <t>The DTLS replay protection in this usage is expected to be fairly
robust. Its depth of handling is related to maximum network path
reordering that the receiver expects to see during the SCTP
association. However as the actual reordering in number of packets are
a combination of how delayed one packet may be compared to another
times the actual packet rate this can grow for some applications and
may need to be tuned. Thus, having the potential for setting this a
more suitable value depending on the use case should be considered.</t>
        <t>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>A socket API implementation based on <xref target="RFC6458"/> is extended by supporting
several new IPPROTO_SCTP-level socket options and a new flag for recvmsg().</t>
      <section anchor="a-new-flag-for-recvmsg-msgprotected">
        <name>A New Flag for recvmsg() (MSG_PROTECTED)</name>
        <t>This flag is returned by recvmsg() in msg_flags for all user messages for
which all DATA chunks where received in protected SCTP packets.
This also means that if sctp_recvv() is used, MSG_PROTECTED is returned in
the *flags argument.</t>
      </section>
      <section anchor="get-the-supported-cipher-suits-sctpdtlssupportedciphersuits">
        <name>Get the Supported Cipher Suits (SCTP_DTLS_SUPPORTED_CIPHER_SUITS)</name>
      </section>
      <section anchor="get-or-set-the-local-protection-method-identifiers-sctpdtlslocalpmids">
        <name>Get or Set the Local Protection Method Identifiers (SCTP_DTLS_LOCAL_PMIDS)</name>
      </section>
      <section anchor="get-the-remote-protection-method-identifiers-sctpdtlsremotepmids">
        <name>Get the Remote Protection Method Identifiers (SCTP_DTLS_REMOTE_PMIDS)</name>
      </section>
      <section anchor="set-the-sender-keys-sctpdtlssetsendkeys">
        <name>Set the Sender Keys (SCTP_DTLS_SET_SEND_KEYS)</name>
      </section>
      <section anchor="add-receive-keys-sctpdtlsaddrecvkeys">
        <name>Add Receive Keys (SCTP_DTLS_ADD_RECV_KEYS)</name>
      </section>
      <section anchor="delete-receive-keys-sctpdtlsdelrecvkeys">
        <name>Delete Receive Keys (SCTP_DTLS_DEL_RECV_KEYS)</name>
      </section>
      <section anchor="enforce-protection-sctpdtlsenforceprotection">
        <name>Enforce Protection (SCTP_DTLS_ENFORCE_PROTECTION)</name>
      </section>
      <section anchor="get-statistic-counters-sctpdtlsstats">
        <name>Get Statistic Counters (SCTP_DTLS_STATS)</name>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <section anchor="privacy-padding-of-sctp-packets">
        <name>Privacy Padding of SCTP Packets</name>
        <t>To reduce the potential information leakage from packet size
variations one may select to pad the SCTP Packets to uniform packet
sizes. This size may be either the maximum used, or in block sized
increments. However, the padding needs to be done inside of the
encryption envelope.</t>
        <t>Both SCTP and DTLS contains mechanisms to pad SCTP payloads, and DTLS
records respectively. If padding of SCTP packets are desired to hide
actual message sizes it RECOMMEDED to use the SCTP Padding Chunk
<xref target="RFC4820"/> to generate a consistent SCTP payload size. Support of
this chunk is only required on the sender side, any SCTP receiver will
safely ignore the PAD Chunk. However, if the PAD chunk is not
supported DTLS padding MAY be used.</t>
        <t>It needs to be noted that independent if SCTP padding or DTLS padding
is used the padding is not taken into account by the SCTP congestion
control. Extensive use of padding has potential for worsen congestion
situations as the SCTP association will consume more bandwidth than
its derived share by the congestion control.</t>
        <t>The use of SCTP PAD chunk is recommended as it at least can enable
future extension or SCTP implementation that account also for the
padding. Use of DTLS padding hides this packet expansion from SCTP.</t>
      </section>
    </section>
    <section anchor="IANA-Consideration">
      <name>IANA Considerations</name>
      <t>This document defines two new registries in the Stream Control
Transmission Protocol (SCTP) Parameters group that IANA
maintains. Theses registries are for the extra cause codes for
protection related errors and the Protection Options identifiers for
the PVALID chunk. It also adds registry entries into several other
registries in the Stream Control Transmission Protocol (SCTP)
Parameters group:</t>
      <ul spacing="normal">
        <li>
          <t>One new SCTP Chunk Types</t>
        </li>
        <li>
          <t>One new SCTP Chunk Parameter Type</t>
        </li>
        <li>
          <t>One new SCTP Error Cause Code</t>
        </li>
      </ul>
      <t>And finally the update of one registered SCTP Payload Protocol
Identifier.</t>
      <section anchor="IANA-Extra-Cause">
        <name>Protection Error Cause Codes Registry</name>
        <t>IANA is requested to create a new registry called "Protection Error
Cause Codes". This registry is part of the Stream Control Transmission
Protocol (SCTP) Parameters grouping.</t>
        <t>The purpose of this registry is to enable identification of different
protection related errors when using DTLS chunk and a protection
engine.  Entries in the registry requires a Meaning, a reference to
the specification defining the error, and a contact. Each entry will
be assigned by IANA a unique 16-bit unsigned integer
identifier. Values 0-65534 are available for assignment. Value 65535
is reserved for future extension. The proposed general form of the
registry is depicted below in <xref target="iana-protection-error-cause"/>.</t>
        <table anchor="iana-protection-error-cause">
          <name>Protection Error Cause Code</name>
          <thead>
            <tr>
              <th align="right">Cause Code</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
              <th align="left">Contact</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">No Common Protection Solution</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">1-65534</td>
              <td align="left">Available for Assignment</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
            <tr>
              <td align="right">65535</td>
              <td align="left">Reserved</td>
              <td align="left">RFC-To-Be</td>
              <td align="left">Authors</td>
            </tr>
          </tbody>
        </table>
        <t>New entries are registered following the Specification Required policy
as defined by <xref target="RFC8126"/>.</t>
      </section>
      <section anchor="IANA-Protection-Solution-ID">
        <name>SCTP Protection Solution Identifiers</name>
        <t>IANA is requested to create a new registry called "SCTP Protection
Solutions". This registry is part of the of the Stream
Control Transmission Protocol (SCTP) Parameters grouping.</t>
        <t>The purpose of this registry is to assign Protection Solution
Identifier for any security solution that is either using the DTLS
Chunk combined with a key-management method, offered as an alternative
to DTLS chunk, or themselves want to use the PVALID message mechanism
to detect downgrade attacks. Any security solution that is offered
through a parameter exchange during the SCTP handshake are potential
to be included here.</t>
        <t>Each entry will be assigned a 16-bit unsigned integer value from the suitable range.</t>
        <table anchor="iana-psi">
          <name>PVALID Protection Solution Identifiers</name>
          <thead>
            <tr>
              <th align="right">Identifier</th>
              <th align="left">Solution Name</th>
              <th align="left">Reference</th>
              <th align="left">Contact</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0</td>
              <td align="left">DTLS 1.3 Chunk with Pre-</td>
              <td align="left">RFC-TBD</td>
              <td align="left">Draft Authors</td>
            </tr>
            <tr>
              <td align="right">1-4095</td>
              <td align="left">Available for Assignment using Specification Required policy</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="right">4096-65535</td>
              <td align="left">Available for Assignment using First Come, First Served policy</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>New entries in the range 0-4095 are registered following the Specification Required policy
as defined by <xref target="RFC8126"/>.  New entries in the range 4096-65535 are first come, first served.</t>
      </section>
      <section anchor="sctp-chunk-type">
        <name>SCTP Chunk Type</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Chunk Types" registry, IANA is requested to add the one new entry
depicted below in in <xref target="iana-chunk-types"/> with a reference to this
document. The registry at time of writing was available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-1</t>
        <table anchor="iana-chunk-types">
          <name>New Chunk Type Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Chunk Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA6</td>
              <td align="left">DTLS Chunk (DTLS)</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sctp-chunk-parameter-types">
        <name>SCTP Chunk Parameter Types</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Chunk Parameter Types" registry, IANA is requested to add the new
entry depicted below in in <xref target="iana-chunk-parameter-types"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-2</t>
        <table anchor="iana-chunk-parameter-types">
          <name>New Chunk Type Parameters Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Chunk Parameter Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA8</td>
              <td align="left">DTLS 1.3 Chunk Protected Association</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sctp-error-cause-codes">
        <name>SCTP Error Cause Codes</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Error Cause Codes" registry, IANA is requested to add the new
entry depicted below in in <xref target="iana-error-cause-codes"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-24</t>
        <table anchor="iana-error-cause-codes">
          <name>Error Cause Codes Parameters Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">Error Cause Codes</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBA9</td>
              <td align="left">DTLS Chunk Error</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-iana-ppid">
        <name>SCTP Payload Protocol Identifier</name>
        <t>In the Stream Control Transmission Protocol (SCTP) Parameters group's
"Payload Protocol Identifiers" registry, IANA is requested to update the
entry depicted below in in <xref target="iana-payload-protection-id"/> with a
reference to this document. The registry at time of writing was
available at:
https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25</t>
        <table anchor="iana-payload-protection-id">
          <name>Protection Operator Protocol Identifier Registered</name>
          <thead>
            <tr>
              <th align="right">ID Value</th>
              <th align="left">SCTP Payload Protocol Identifier</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">4242</td>
              <td align="left">DTLS Chunk Key-Management Messages</td>
              <td align="left">RFC-To-Be</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security-Considerations">
      <name>Security Considerations</name>
      <t>All the security and privacy considerations of the security protocol
used as the Chunk Protection Operator applies.</t>
      <t>DTLS replay protection MUST NOT be turned off.</t>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Use of the SCTP DTLS chunk provides privacy to SCTP by protecting user
data and much of the SCTP control signaling. The SCTP association is
identifiable based on the 5-tuple where the destination IP and
port are fixed for each direction. Advanced privacy features such
as changing DTLS Connection ID and sequence number encryption might
therefore have limited effect.</t>
      </section>
      <section anchor="aead-limit-considerations">
        <name>AEAD Limit Considerations</name>
        <t>Section 4.5.3 of <xref target="RFC9147"/> defines limits on the number of records
q that can be protected using the same key as well as limits on the
number of received packets v that fail authentication with each key.
To adhere to these limits the key management function can
periodically poll the DTLS protection operation function to see
when a limit have been reached or is closed to being reached.
Instead of periodic polling, a callback can be used.</t>
      </section>
      <section anchor="Downgrade-Attacks">
        <name>Downgrade Attacks</name>
        <t>As long as the Key-management include the ordered list of protection
solutions indicators present in the parameter part of the INIT chunk
for the SCTP Association in its key-derivation the association will be
protected from down-grade.</t>
        <t>In case any key-management do not include the parameter content in
its key-derivation down-grade might be possible if that key-management
method is selected. It is up to endpoint policies to determine
which protection it deems necessary against down-grade attacks.</t>
      </section>
      <section anchor="sec-considertation-storage">
        <name>Persistent Secure Storage of Restart Key Context</name>
        <t>The Restart DTLS Key Context needs to be stored securely and persistent. Securely
as access to this security context may enable an attacker to perform a restart,
resulting a denial of service on the existing SCTP Association. It can also
give the attacker access to the ULP. Thus the storage needs to provide at least
as strong resistant against exfiltration as the main DTLS Key Context store.</t>
        <t>When it comes to how to realize persistent storage that is highly
dependent on the ULP and how it can utilize restarted SCTP
Associations. One way can be to have an actual secure persistent storage
solution accessible to the endpoint. In other use cases the persistence part
might be accomplished be keeping the current restart DTLS Key Context with
the ULP State if that is sufficiently secure.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Hannes Tschofenig and Tirumaleswar Reddy for their
participation in the design team and their contributions to this document.
We also like to thank Amanda Baber with IANA for feedback on our IANA registry.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4820" target="https://www.rfc-editor.org/info/rfc4820" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4820.xml">
          <front>
            <title>Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="P. Lei" initials="P." surname="Lei"/>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document defines a padding chunk and a padding parameter and describes the required receiver side procedures. The padding chunk is used to pad a Stream Control Transmission Protocol (SCTP) packet to an arbitrary size. The padding parameter is used to pad an SCTP INIT chunk to an arbitrary size. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4820"/>
          <seriesInfo name="DOI" value="10.17487/RFC4820"/>
        </reference>
        <reference anchor="RFC4895" target="https://www.rfc-editor.org/info/rfc4895" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4895.xml">
          <front>
            <title>Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="P. Lei" initials="P." surname="Lei"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This document describes a new chunk type, several parameters, and procedures for the Stream Control Transmission Protocol (SCTP). This new chunk type can be used to authenticate SCTP chunks by using shared keys between the sender and receiver. The new parameters are used to establish the shared keys. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4895"/>
          <seriesInfo name="DOI" value="10.17487/RFC4895"/>
        </reference>
        <reference anchor="RFC5061" target="https://www.rfc-editor.org/info/rfc5061" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5061.xml">
          <front>
            <title>Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="Q. Xie" initials="Q." surname="Xie"/>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="S. Maruyama" initials="S." surname="Maruyama"/>
            <author fullname="M. Kozuka" initials="M." surname="Kozuka"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>A local host may have multiple points of attachment to the Internet, giving it a degree of fault tolerance from hardware failures. Stream Control Transmission Protocol (SCTP) (RFC 4960) was developed to take full advantage of such a multi-homed host to provide a fast failover and association survivability in the face of such hardware failures. This document describes an extension to SCTP that will allow an SCTP stack to dynamically add an IP address to an SCTP association, dynamically delete an IP address from an SCTP association, and to request to set the primary address the peer will use when sending to an endpoint. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5061"/>
          <seriesInfo name="DOI" value="10.17487/RFC5061"/>
        </reference>
        <reference anchor="RFC6083" target="https://www.rfc-editor.org/info/rfc6083" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6083.xml">
          <front>
            <title>Datagram Transport Layer Security (DTLS) for Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document describes the usage of the Datagram Transport Layer Security (DTLS) protocol over the Stream Control Transmission Protocol (SCTP).</t>
              <t>DTLS over SCTP provides communications privacy for applications that use SCTP as their transport protocol and allows client/server applications to communicate in a way that is designed to prevent eavesdropping and detect tampering or message forgery.</t>
              <t>Applications using DTLS over SCTP can use almost all transport features provided by SCTP and its extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6083"/>
          <seriesInfo name="DOI" value="10.17487/RFC6083"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9260" target="https://www.rfc-editor.org/info/rfc9260" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9260.xml">
          <front>
            <title>Stream Control Transmission Protocol</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
            <author fullname="K. Nielsen" initials="K." surname="Nielsen"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document describes the Stream Control Transmission Protocol (SCTP) and obsoletes RFC 4960. It incorporates the specification of the chunk flags registry from RFC 6096 and the specification of the I bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are also obsoleted by this document. In addition, RFCs 4460 and 8540, which describe errata for SCTP, are obsoleted by this document.</t>
              <t>SCTP was originally designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks. It is also suited to be used for other applications, for example, WebRTC.</t>
              <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network, such as IP. It offers the following services to its users:</t>
              <t>The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9260"/>
          <seriesInfo name="DOI" value="10.17487/RFC9260"/>
        </reference>
        <reference anchor="TLS-CIPHER-SUITS" target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4">
          <front>
            <title>TLS Cipher Suites</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6458" target="https://www.rfc-editor.org/info/rfc6458" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml">
          <front>
            <title>Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="K. Poon" initials="K." surname="Poon"/>
            <author fullname="P. Lei" initials="P." surname="Lei"/>
            <author fullname="V. Yasevich" initials="V." surname="Yasevich"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document describes a mapping of the Stream Control Transmission Protocol (SCTP) into a sockets API. The benefits of this mapping include compatibility for TCP applications, access to new SCTP features, and a consolidated error and event notification scheme. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6458"/>
          <seriesInfo name="DOI" value="10.17487/RFC6458"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="I-D.ietf-tsvwg-rfc4895-bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-rfc4895-bis-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tsvwg-rfc4895-bis.xml">
          <front>
            <title>Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Münster Univ. of Applied Sciences</organization>
            </author>
            <author fullname="Randall R. Stewart" initials="R. R." surname="Stewart"/>
            <author fullname="Peter Lei" initials="P." surname="Lei">
              <organization>Netflix, Inc.</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig"/>
            <date day="21" month="April" year="2025"/>
            <abstract>
              <t>This document describes a new chunk type, several parameters, and procedures for the Stream Control Transmission Protocol (SCTP). This new chunk type can be used to authenticate SCTP chunks by using shared keys between the sender and receiver. The new parameters are used to establish the shared keys. This document obsoletes RFC 4895.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-rfc4895-bis-05"/>
        </reference>
        <reference anchor="I-D.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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
5v8ASCrDvxnzAAA=

-->

</rfc>
