Datagram Transport Layer Security#Definition
{{distinguish|TDLS}}
{{Short description|Communications protocol}}
Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designed{{Ref RFC|4347}}{{Ref RFC|6347}}{{Ref RFC|9147}} 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{{cite web
| url=http://sites.inka.de/bigred/devel/tcp-tcp.html
| title=Why TCP Over TCP Is A Bad Idea
| first=Olaf
| last=Titz
| date=2001-04-23
| access-date=2015-10-17
| archive-date=2023-03-10
| archive-url=https://web.archive.org/web/20230310043036/http://sites.inka.de/bigred/devel/tcp-tcp.html
| url-status=bot: unknown
| bibcode=2005SPIE.6011..138H
| title=Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency
|author1=Honda, Osamu |author2=Ohsaki, Hiroyuki |author3=Imase, Makoto |author4=Ishizuka, Mika |author5=Murayama, Junichi | s2cid=8945952
|book-title=Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III
| volume=6011
| date=October 2005
| doi=10.1117/12.630496
| citeseerx=10.1.1.78.5815
| editor1-last=Atiquzzaman
| editor1-first=Mohammed
| editor2-last=Balandin
| editor2-first=Sergey I
}} when being used to create a VPN tunnel.
Definition
The following documents define DTLS:
- {{IETF RFC|5238|link=no}} from May 2008{{Ref RFC|5238}} for use with Datagram Congestion Control Protocol (DCCP)
- {{IETF RFC|5415|link=no}} from March 2009{{Ref RFC|5415}} for use with Control And Provisioning of Wireless Access Points (CAPWAP)
- {{IETF RFC|5764|link=no}} from May 2010{{Ref RFC|5764}} for use with Secure Real-time Transport Protocol (SRTP) subsequently called DTLS-SRTP in a draft with Secure Real-Time Transport Control Protocol (SRTCP){{cite web
| url=https://tools.ietf.org/html/draft-peck-suiteb-dtls-srtp-02
| title=Suite B Profile for Datagram Transport Layer Security / Secure Real-time Transport Protocol (DTLS-SRTP)
| first1=M.
| last1=Peck
| first2=K.
| last2=Igoe
| date=2012-09-25
| publisher=IETF}}
- {{IETF RFC|6083|link=no}} from January 2011{{Ref RFC|6083}} for use with Stream Control Transmission Protocol (SCTP) encapsulation
- {{IETF RFC|9147|link=no}} from April 2022{{Ref RFC|9147}} for use with User Datagram Protocol (UDP)
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.{{Ref RFC|6347}} 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".{{cite web | url=https://datatracker.ietf.org/doc/draft-ietf-tls-dtls13/ | title=The Datagram Transport Layer Security (DTLS) Protocol Version 1.3 }}
Implementations
=Libraries=
{{Main article|Comparison of TLS implementations#Protocol support}}
{{More citations needed|section|date=September 2023|talk=Library support}}
=Applications=
- Cisco AnyConnect VPN Client uses TLS and invented DTLS-based VPN.{{cite web
| url=http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/116312-qanda-anyconnect-00.html
| title=AnyConnect FAQ: tunnels, reconnect behavior, and the inactivity timer
| publisher=Cisco |access-date=26 February 2017}}
- OpenConnect is an open source AnyConnect-compatible client and ocserv server that supports (D)TLS.{{cite web
| url=https://www.infradead.org/openconnect/
| title=OpenConnect
| publisher=OpenConnect |access-date=26 February 2017}}
- Cisco InterCloud Fabric uses DTLS to form a tunnel between private and public/provider compute environments.{{cite web
| url=http://www.cisco.com/c/en/us/td/docs/solutions/Hybrid_Cloud/Intercloud/Intercloud_Fabric/Intercloud_Fabric_2.pdf
| title=Cisco InterCloud Architectural Overview
| publisher=Cisco Systems}}
- 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 {{Cite web |title=Cato Networks Cipher Suites Used by the Cato Socket and SDP Client |url=https://support.catonetworks.com/hc/en-us/articles/115005910469-Cipher-Suites-Used-by-the-Cato-Socket-and-SDP-Client }} and when forming off-cloud tunnels between Cato sockets.{{Cite web |title=Cato Networks Routing Traffic to an Off-Cloud Link |url=https://support.catonetworks.com/hc/en-us/articles/4413265642257-Routing-Traffic-to-an-Off-Cloud-Link }}
- ZScaler tunnel 2.0 for ZScaler Internet Access (ZIA) uses DTLS for tunneling. ZScaler Private Access (ZPA) does not support DTLS {{cite web
| url=https://help.zscaler.com/z-app/about-z-tunnel-1.0-z-tunnel-2.0
| title=ZScaler ZTNA 2.0 Tunnel
| publisher=ZScaler}}
- F5 Networks Edge VPN Client uses TLS and DTLS.{{cite web
| url=https://f5.com/glossary/datagram-transport-layer-security-dtls
| title=f5 Datagram Transport Layer Security (DTLS)
| publisher=f5 Networks}}
- Fortinet's SSL VPN{{cite web
| url=https://community.fortinet.com/t5/FortiGate/Technical-Tip-Using-DTLS-to-improve-SSL-VPN-performance/ta-p/193881
| title=Using DTLS to improve SSL VPN performance
| date=25 February 2016
| publisher=Fortinet}} and Array Networks SSL VPN{{cite web
| url=https://gitlab.com/openconnect/openconnect/-/blob/653ad5585af44a2b8fa7d5946645ccb0e3f6ab60/array.c#L740-749
| title=array.c from OpenConnect
| date=23 May 2022}} also use DTLS for VPN tunneling.
- Citrix Systems NetScaler uses DTLS to secure UDP.{{cite web
| url=http://docs.citrix.com/en-us/netscaler/11/traffic-management/ssl/config-ssloffloading/config-dtls-vserver.html
| title=Configuring a DTLS Virtual Server
| publisher=Citrix Systems}}
- Web browsers: Google Chrome, Opera and Firefox support DTLS-SRTP{{cite web
|url=https://sites.google.com/site/webrtc/interop
|title=WebRTC Interop Notes
|url-status=dead
|archive-url=https://web.archive.org/web/20130511043959/https://sites.google.com/site/webrtc/interop
|archive-date=2013-05-11
}} for WebRTC. Firefox 86 and onward does not support DTLS 1.0.{{Cite web|date=2021-02-23|title=Firefox 86.0, See All New Features, Updates and Fixes|url=https://www.mozilla.org/en-US/firefox/86.0/releasenotes/|url-status=live|access-date=2021-02-23|website=Mozilla|language=en|quote=From Firefox 86 onward, DTLS 1.0 is no longer supported for establishing WebRTC's PeerConnections. All WebRTC services need to support DTLS 1.2 from now on as the minimum version.|archive-url=https://web.archive.org/web/20210222150939/https://www.mozilla.org/en-US/firefox/86.0/releasenotes/ |archive-date=2021-02-22 }}
- Remote Desktop Protocol 8.0 and onwards.
Vulnerabilities
In February 2013 two researchers from Royal Holloway, University of London discovered a timing attack{{Cite web|url=http://www.isg.rhul.ac.uk/~kp/dtls.pdf|title=Plaintext-Recovery Attacks Against Datagram TLS}} 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.
See also
{{Portal|Internet}}
References
{{Reflist}}
External links
- {{cite web| url=https://datatracker.ietf.org/wg/tls/charter/| title=Transport Layer Security (tls) - Charter| publisher=IETF}}
- {{cite web| url=https://crypto.stanford.edu/~nagendra/papers/dtls.pdf| title=The Design and Implementation of Datagram TLS| first1=Nagendra| last1=Modadugu| first2=Eric| last2=Rescorla| date=2003-11-21| publisher=Stanford Crypto Group| access-date=2013-03-17}}
- {{cite web| url=http://www.isg.rhul.ac.uk/~kp/dtls.pdf| title=Plaintext-Recovery Attacks Against Datagram TLS| first1=Nadhem J.| last1=AlFardan| first2= Kenneth G.| last2=Paterson| access-date=2013-11-25}}
- {{cite web| url=http://twit.tv/show/security-now/380| title=Datagram Transport Layer Security| first1=Steve| last1=Gibson| first2=Leo| last2=Laporte| date=2012-11-28| work=Security Now 380| access-date=2013-03-17}} Skip to 1:07:14.
- Robin Seggelmann's [https://web.archive.org/web/20130924041727/http://sctp.fh-muenster.de/dtls-samples.html Sample Code]: echo, character generator, and discard client/servers.
- [https://dtls.xargs.org/ The Illustrated DTLS Connection]
{{SSL/TLS}}
{{VPN}}
Category:Cryptographic protocols
Category:Session layer protocols