ietf-corpus

rfc-8261

Datagram Transport Layer Security (DTLS) Encapsulation of SCTP Packets

M. Tuexen, R. Stewart, R. Jesup, S. Loreto
date2017-11 streamIETF areawit wgtsvwg statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc8261 doi10.17487/RFC8261
The Stream Control Transmission Protocol (SCTP) is a transport protocol originally defined to run on top of the network protocols IPv4 or IPv6. This document specifies how SCTP can be used on top of the Datagram Transport Layer Security (DTLS) protocol. Using the encapsulation method described in this document, SCTP is unaware of the protocols being used below DTLS; hence, explicit IP addresses cannot be used in the SCTP control chunks. As a consequence, the SCTP associations carried over DTLS can only be single-homed.

updated by

Extracted elements (23)

design-rationale §5

DTLS compression is prohibited because SCTP performs its own segmentation and reassembly based on the path MTU; if DTLS compressed the SCTP payload, the apparent message sizes would no longer correspond to actual IP packet sizes, breaking SCTP's MTU-based fragmentation logic.

sctp, tls

design-rationale §6.1

SCTP associations over DTLS are constrained to be single-homed because DTLS does not expose any address management to its upper layer, making it impossible for SCTP to use multiple IP addresses for multihoming as it would over IPv4/IPv6 directly.

sctp, tls

design-rationale §8

The inability to process ICMP or ICMPv6 messages does not introduce a security issue. When SCTP runs over connectionless layers (IPv4, IPv6, UDP), processing ICMP is required to protect other non-SCTP nodes; since DTLS is connection-oriented, that protection is unnecessary.

sctp, tls, security

interoperability-note §6.5

Partial reliability (RFC 3758) and additional PR-SCTP policies (RFC 7496), stream reset (RFC 6525), and message interleaving (RFC 8260) extensions can all be used in combination with DTLS encapsulation without restrictions beyond those stated for the base protocol.

sctp, tls

interoperability-note §1

The procedures defined in RFC 6951 (UDP encapsulation of SCTP) for dealing with UDP port numbers do not apply to SCTP over DTLS. When using DTLS encapsulation, SCTP is entirely unaware of the protocols used below DTLS.

sctp, tls, udp

interoperability-note §6.4

The SCTP authentication extension (RFC 4895) can be used with DTLS encapsulation but does not provide any additional security benefit, since DTLS already provides authentication and integrity protection.

sctp, tls, security

normative-requirement §6.1 MUST

A DTLS connection MUST be established before an SCTP association can be set up. Multiple SCTP associations MAY be multiplexed over a single DTLS connection using SCTP port numbers for demultiplexing.

sctp, tls

normative-requirement §6.1 RECOMMENDED

All SCTP associations over DTLS are single-homed because DTLS does not expose address management to its upper layer. It is RECOMMENDED to set the SCTP parameter path.max.retrans equal to association.max.retrans.

sctp, tls

normative-requirement §4 MUST

An implementation of SCTP over DTLS MUST implement and use a path MTU discovery method that functions without ICMP, to provide SCTP/DTLS with an MTU estimate. Implementation of Packetization Layer Path MTU Discovery (RFC 4821) in SCTP or DTLS is RECOMMENDED.

sctp, tls

normative-requirement §5 RECOMMENDED

If path MTU discovery is performed by the SCTP layer over IPv4 and the DF bit cannot be controlled, a safe path MTU value MUST be used. It is RECOMMENDED that this safe value not exceed 1200 bytes, noting that RFC 1122 only requires hosts to reassemble fragments up to 576 bytes.

sctp, tls, ip

normative-requirement §6.3 MUST

If the dynamic address reconfiguration extension (RFC 5061) is used, ASCONF chunks MUST use wildcard addresses only, because DTLS does not expose explicit IP addresses to SCTP.

sctp, tls

normative-requirement §6.1 SHOULD

If the SCTP layer is notified about a path change by its lower layers, SCTP SHOULD retest the path MTU and reset the congestion state (congestion window and slow-start threshold) to initial values.

sctp, congestion

normative-requirement §5 MUST

The DTLS implementation MUST support DTLS 1.0 (RFC 4347) and SHOULD support the most recently published version of DTLS (DTLS 1.2 at time of publication). This latter requirement applies to all future versions of DTLS when published as RFCs.

tls, sctp

normative-requirement §5 SHOULD

The DTLS implementation SHOULD allow the DTLS user to set the DSCP value for sent IP packets. Only a single DSCP value can be used for all packets belonging to the same SCTP association.

tls, sctp, diffserv

normative-requirement §5 MUST NOT

The DTLS layer MUST NOT use any compression algorithm. Because SCTP performs segmentation and reassembly based on the path MTU, DTLS compression would interfere with SCTP's operation.

tls, sctp

normative-requirement §5 MUST

The DTLS layer MUST support sending messages larger than the current path MTU, which may result in sending IP-level fragmented messages.

tls, sctp

normative-requirement §6.1 MUST NOT

The implementation MUST NOT rely on processing ICMP or ICMPv6 packets, since the SCTP layer most likely is unable to access the SCTP common header in the plaintext that triggered the ICMP message. This applies in particular to path MTU discovery performed by SCTP.

sctp, tls, ip

normative-requirement §6.1 MUST NOT

The INIT and INIT-ACK chunks MUST NOT contain any IPv4 Address or IPv6 Address parameters. The INIT chunk MUST NOT contain the Supported Address Types parameter.

sctp, tls

normative-requirement §5 SHOULD

Using ECN in SCTP requires the DTLS layer and its lower layer to pass ECN bits through and expose access to them for sent and received packets. If this is not possible due to implementation restrictions, ECN cannot be used by SCTP.

sctp, tls, ecn

normative-requirement §6.2 MUST

When the SCTP layer performs path MTU discovery per RFC 4821, the SCTP padding extension (RFC 4820) MUST be supported and used for probe packets — specifically HEARTBEAT chunks bundled with PADDING chunks.

sctp

protocol-element §1

SCTP over DTLS stacks SCTP directly on top of DTLS, which runs over ICE/UDP. The complete SCTP packet (common header plus chunks) is treated as the application-layer payload of DTLS. SCTP is unaware of the protocols below DTLS, so all associations are single-homed.

sctp, tls, webrtc

security-consideration §8

SCTP should not process the IP addresses used for the underlying DTLS communication because DTLS provides no guarantees about those addresses. The combination of SCTP and DTLS introduces no new security considerations beyond those specified for each protocol individually.

sctp, tls, security

wire-format §3

When an SCTP packet is passed to the DTLS layer, the entire SCTP common header followed by all SCTP chunks is carried as the DTLS application-layer protocol payload. On receipt, the DTLS layer extracts that payload and passes it up to SCTP unchanged.

sctp, tls