RFC 9147
The Datagram Transport Layer Security (DTLS) Protocol Version 1.3
Standards Track Obsoletes: RFC 6347 April 2022
Abstract: This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 is designed to meet the same goals as TLS 1.3, adapted for datagram semantics, with reduced handshake latency, mandatory forward secrecy, and improved security properties.
Canonical source: https://www.rfc-editor.org/rfc/rfc9147
| IETF Datatracker
1. Introduction
▶DTLS 1.3 brings TLS 1.3 improvements to datagram protocols: mandatory ephemeral DH for forward secrecy, encrypted handshake messages, 1-RTT handshakes, and removal of legacy cryptography.
DTLS 1.3 is the recommended datagram security protocol for future 3GPP deployments where DTLS is applicable.
2. Key Changes from DTLS 1.2
▶- Mandatory forward secrecy: Ephemeral ECDHE required (no static DH or RSA key exchange)
- Encrypted handshake: Server certificate encrypted (like TLS 1.3)
- Connection ID: New extension for NAT rebinding and connection migration (critical for mobile networks)
- Unified header: Compact record header format reduces overhead
- ACK mechanism: Explicit ACK messages replace implicit retransmission timers
- 0-RTT support: Early data with PSK for reduced latency (with replay caveats)
3. Connection ID Extension
▶The Connection ID (CID) extension is a critical new feature for mobile/3GPP environments. When a UE's IP address changes (NAT rebinding, handover), the CID allows the server to identify the DTLS association without requiring a new handshake.
Mobile Network Benefit: Connection ID enables seamless DTLS session continuity across UE mobility events (handover, NAT rebinding) without expensive re-handshake, reducing signaling load on the core network.
4. Record Layer Changes
▶DTLS 1.3 uses a unified header format with two variants:
| Feature | DTLS 1.2 | DTLS 1.3 |
|---|---|---|
| Header size | 13 bytes fixed | 1-5 bytes (variable) |
| Epoch | 2 bytes explicit | 2 bits or CID-based |
| Sequence number | 6 bytes explicit | 1-2 bytes (compressed) |
| Version in header | Yes | No (removed) |
| Connection ID | Not supported | Variable length |
5. Security Improvements
▶- Removed: RC4, DES, 3DES, static RSA, static DH, CBC mode, compression, renegotiation
- Mandatory AEAD: Only authenticated encryption (AES-GCM, ChaCha20-Poly1305, AES-CCM)
- Anti-replay: Improved replay detection with ACK-based retransmission
- DoS protection: HelloRetryRequest with cookie (stateless server until cookie verified)
- Key schedule: HKDF-based key derivation identical to TLS 1.3