Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designedREFERENCE FOR RFC4347 IS NOT DEFINED YET. You are invited to add it here.'REFERENCE FOR RFC6347 IS NOT DEFINED YET. You are invited to add it here.'REFERENCE FOR RFC9147 IS NOT DEFINED YET. You are invited to add it here. to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS protocol datagram preserves the semantics of the underlying transport—the application does not suffer from the delays associated with stream protocols, but because it uses User Datagram Protocol (UDP) or Stream Control Transmission Protocol (SCTP), the application has to deal with packet reordering, loss of datagram and data larger than the size of a datagram network packet. Because DTLS uses UDP or SCTP rather than TCP it avoids the TCP meltdown problem[1][2] when being used to create a VPN tunnel.
RFC5764 from May 2010REFERENCE FOR RFC5764 IS NOT DEFINED YET. You are invited to add it here. for use with Secure Real-time Transport Protocol (SRTP) subsequently called DTLS-SRTP in a draft with Secure Real-Time Transport Control Protocol (SRTCP)[3]
RFC6347 from January 2012REFERENCE FOR RFC6347 IS NOT DEFINED YET. You are invited to add it here. defining DTLS 1.2
RFC9147 from April 2022REFERENCE FOR RFC9147 IS NOT DEFINED YET. You are invited to add it here. defining DTLS 1.3
DTLS 1.0 is based on TLS 1.1, DTLS 1.2 is based on TLS 1.2, and DTLS 1.3 is based on TLS 1.3. There is no DTLS 1.1 because this version-number was skipped in order to harmonize version numbers with TLS.REFERENCE FOR RFC6347 IS NOT DEFINED YET. You are invited to add it here. Like previous DTLS versions, DTLS 1.3 is intended to provide "equivalent security guarantees [to TLS 1.3] with the exception of order protection/non-replayability".[4]
Implementations
Libraries
Library support for DTLS
Implementation
DTLS 1.0REFERENCE FOR RFC4347 IS NOT DEFINED YET. You are invited to add it here.
DTLS 1.2REFERENCE FOR RFC6347 IS NOT DEFINED YET. You are invited to add it here.
DTLS 1.3REFERENCE FOR RFC9147 IS NOT DEFINED YET. You are invited to add it here.
Cisco AnyConnect VPN Client uses TLS and invented DTLS-based VPN.[27]
OpenConnect is an open source AnyConnect-compatible client and ocserv server that supports (D)TLS.[28]
Cisco InterCloud Fabric uses DTLS to form a tunnel between private and public/provider compute environments.[29]
Cato Networks utilizes DTLS v1.2 for the underlay tunnel used by both the Cato Socket and Cato ZTNA (formerly SDP) client when forming tunnels to the Cato POPs [30] and when forming off-cloud tunnels between Cato sockets.[31]
ZScaler tunnel 2.0 for ZScaler Internet Access (ZIA) uses DTLS for tunneling. ZScaler Private Access (ZPA) does not support DTLS [32]
In February 2013 two researchers from Royal Holloway, University of London discovered a timing attack[39] which allowed them to recover (parts of the) plaintext from a DTLS connection using the OpenSSL or GnuTLS implementation of DTLS when Cipher Block Chaining mode encryption was used.