Datagram Transport Layer Security
Datagram Transport Layer Security is a communications protocol that provides security for datagram-based applications by allowing them to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security 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 UDP, 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 rather than TCP, it avoids the "TCP meltdown problem", when being used to create a VPN tunnel.
Definition
The following documents define DTLS:- RFC 6347 for use with User Datagram Protocol,
- RFC 5238 for use with Datagram Congestion Control Protocol,
- RFC 5415 for use with Control And Provisioning of Wireless Access Points,
- RFC 6083 for use with Stream Control Transmission Protocol encapsulation,
- RFC 5764 for use with Secure Real-time Transport Protocol subsequently called DTLS-SRTP in a draft with Secure Real-Time Transport Control Protocol.
Implementations
Libraries
Implementation | DTLS 1.0 | DTLS 1.2 |
Botan | ||
cryptlib | ||
GnuTLS | ||
Java Secure Socket Extension | ||
LibreSSL | ||
libsystools | ||
MatrixSSL | ||
mbed TLS | ||
Network Security Services | ||
OpenSSL | ||
PyDTLS | ||
Python3-dtls | ||
RSA BSAFE | ||
s2n | ||
SChannel XP/2003, Vista/2008 | ||
SChannel 7/2008R2, 8/2012, 8.1/2012R2, 10 | ||
SChannel 10, 2016 | ||
Secure Transport OS X 10.2–10.7 / iOS 1–4 | ||
Secure Transport OS X 10.8–10.10 / iOS 5–8 | ||
SharkSSL | ||
tinydtls | ||
Waher.Security.DTLS | ||
wolfSSL | ||
@nodertc/dtls | ||
java-dtls | ||
pion/dtls | ||
californium/scandium | ||
Implementation | DTLS 1.0 | DTLS 1.2 |
Applications
- Cisco AnyConnect VPN Client uses TLS and DTLS, as do the AnyConnect-compatible open-source OpenConnect client and ocserv server
- Cisco InterCloud Fabric uses DTLS to form a tunnel between private and public/provider compute environments
- F5 Networks Edge VPN Client uses TLS and DTLS
- Citrix Systems NetScaler uses DTLS to secure UDP
- Web browsers: Google Chrome, Opera and Firefox support DTLS-SRTP for WebRTC
Vulnerabilities