DTLS: Unterschied zwischen den Versionen

Aus Foxwiki
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''DTLS''' - Datagram Transport Layer Security
 
== Beschreibung ==
== Beschreibung ==
{| style="float:right; padding-left:15px; text-align:center;" cellspacing="3"
{| style="float:right; padding-left:15px; text-align:center;" cellspacing="3"
Zeile 23: Zeile 24:
|}
|}


'''Datagram Transport Layer Security''' ('''DTLS''') ist ein auf [[Transport Layer Security]] (TLS) basierendes [[Verschlüsselungsprotokoll]], das im Gegensatz zu TLS auch über verbindungslose, [[Zuverlässigkeit (Telekommunikation)|nicht zuverlässige]] [[Transportprotokoll]]e wie das [[User Datagram Protocol]] (UDP) übertragen werden kann.
'''Datagram Transport Layer Security''' ('''DTLS''') ist ein auf [[Transport Layer Security]] (TLS) basierendes [[Verschlüsselungsprotokoll]], das im Gegensatz zu TLS auch über verbindungslose, [[Zuverlässigkeit (Telekommunikation)|nicht zuverlässige]] [[Transportprotokoll]]e wie das [[User Datagram Protocol]] (UDP) übertragen werden kann
[[File:2024-04-19_11-32-18_UTC.jpg|mini|400px|https://www.instagram.com/p/C58QW7sAf2K/]]
 
== Geschichte ==
=== Geschichte ===
* Februar 2004: Erster Entwurf und Implementierung in [[OpenSSL]]<ref name="Design" />
{| class="wikitable options"
* 2006: <nowiki>RFC&nbsp;4347</nowiki> zur Standardisierung von DTLS 1.0.<ref name="RFC4347" />
|-
* Januar 2012: <nowiki>RFC&nbsp;6347</nowiki> ersetzt vorherigen RFC und aktualisiert DTLS auf Version 1.2.<ref>{{RFC-Internet |RFC=6347 |Titel=Datagram Transport Layer Security Version 1.2 |Datum=2012 |Obsoletes=4347 |Kommentar=veraltet}}</ref>
| 2004 || Erster Entwurf und Implementierung in [[OpenSSL]]
* April 2022: DTLS 1.3 wird in <nowiki>RFC&nbsp;9147</nowiki> veröffentlicht.<ref>{{RFC-Internet |RFC=9147 |Titel=The Datagram Transport Layer Security (DTLS) Protocol Version 1.3 |Datum=2022-04}}</ref>
|-
| 2006 || <nowiki>RFC&nbsp;4347</nowiki> zur Standardisierung von DTLS 1.0
|-
| 2012 || <nowiki>RFC&nbsp;6347</nowiki> ersetzt vorherigen RFC und aktualisiert DTLS auf Version 1.2
|-
| 2022 || DTLS 1.3 wird in <nowiki>RFC&nbsp;9147</nowiki> veröffentlicht
|}


== Hintergrund ==
=== Hintergrund ===
Mit [[IP-Telefonie|Voice over IP]] (VoIP) und dem dort verbreiteten [[Signalisierung]]sprotokoll [[Session Initiation Protocol|SIP]], welches aufgrund diverser Vorteile bevorzugt über UDP übertragen wird, kam der Bedarf auf, die durch TLS gegebene Sicherheit bei SIP über TCP auch auf den Transport über UDP zu übertragen. TLS selbst ist dafür nicht geeignet, da keines der nach einem Paketverlust folgenden Pakete mehr authentifiziert werden kann.
Mit [[IP-Telefonie|Voice over IP]] (VoIP) und dem dort verbreiteten [[Signalisierung]]sprotokoll [[Session Initiation Protocol|SIP]], welches aufgrund diverser Vorteile bevorzugt über UDP übertragen wird, kam der Bedarf auf, die durch TLS gegebene Sicherheit bei SIP über TCP auch auf den Transport über UDP zu übertragen
* TLS selbst ist dafür nicht geeignet, da keines der nach einem Paketverlust folgenden Pakete mehr authentifiziert werden kann


Obwohl DTLS im April 2006 im <nowiki>RFC&nbsp;4347</nowiki><ref name="RFC4347" /> standardisiert wurde, wird es in der Praxis bis jetzt nur beim ReSIProcate SIP Stack<ref>[https://resiprocate.org/ reSIProcate project.]</ref>, [[Citrix XenApp|Citrix]]<ref>{{Internetquelle |url=https://docs.citrix.com/en-us/netscaler-gateway/11-1/hdx-enlightened-data-transport-support/configuring-netscaler-gateway.html |titel=Configuring NetScaler Gateway to support EDT |werk=citrix.com |abruf=2017-06-16}}</ref> Enlightened Data Transport (ICA über UDP) und bei VPN-Protokollen wie [[Cisco Systems|Cisco]] AnyConnect eingesetzt. Im 2014 vorgestellten Netzwerkprotokoll [[Thread (Netzwerkprotokoll)|Thread]] für IoT und Smart Home wird DTLS ebenfalls verwendet.
Obwohl DTLS im April 2006 im <nowiki>RFC&nbsp;4347</nowiki> standardisiert wurde, wird es in der Praxis bis jetzt nur beim ReSIProcate SIP Stack Enlightened Data Transport (ICA über UDP) und bei VPN-Protokollen wie [[Cisco Systems|Cisco]] AnyConnect eingesetzt
* Im 2014 vorgestellten Netzwerkprotokoll [[Thread (Netzwerkprotokoll)|Thread]] für IoT und Smart Home wird DTLS ebenfalls verwendet


== Funktionsweise ==
== Funktionsweise ==
Die Funktionsweise von DTLS entspricht weitgehend der von [[Transport Layer Security|TLS]]. Um nicht durch zu starke Veränderung des ursprünglichen Protokolls eine Implikation bezüglich der Sicherheit des neuen Protokolls herbeizuführen, wurden nur an den Stellen Änderungen vorgenommen, an denen dies bei Verwendung eines nicht zuverlässigen Transportprotokolls notwendig ist. Diese Änderungen sind:
[[File:2024-04-19_11-32-18_UTC.jpg|mini|400px|https://www.instagram.com/p/C58QW7sAf2K/]]
* Wiederherstellen der Zuverlässigkeit des [[Handshake]]s zu Beginn der Kommunikation, da in diesem Teil die Ankunft aller Pakete garantiert werden muss, um eine [[Authentifizierung]] und den Schlüsseltausch ermöglichen zu können. Dies geschieht dadurch, dass die Pakete nach einer bestimmten Zeit erneut gesendet werden.
Die Funktionsweise von DTLS entspricht weitgehend der von [[Transport Layer Security|TLS]]
* Explizite Nummerierung der einzelnen Pakete während der Übertragung. Dies geschieht bei TLS nur implizit, wodurch bei einem Paketverlust kein korrekter [[Keyed-Hash Message Authentication Code|HMAC]] mehr berechnet werden kann, was eine Integritätsverletzung darstellt und wiederum zu einem Verbindungsabbruch führt.
* Um nicht durch zu starke Veränderung des ursprünglichen Protokolls eine Implikation bezüglich der Sicherheit des neuen Protokolls herbeizuführen, wurden nur an den Stellen Änderungen vorgenommen, an denen dies bei Verwendung eines nicht zuverlässigen Transportprotokolls notwendig ist
* Eine optionale Replay-Detection für einzelne Pakete.
* Diese Änderungen sind:
* Wiederherstellen der Zuverlässigkeit des [[Handshake]]s zu Beginn der Kommunikation, da in diesem Teil die Ankunft aller Pakete garantiert werden muss, um eine [[Authentifizierung]] und den Schlüsseltausch ermöglichen zu können
* Dies geschieht dadurch, dass die Pakete nach einer bestimmten Zeit erneut gesendet werden
* Explizite Nummerierung der einzelnen Pakete während der Übertragung
* Dies geschieht bei TLS nur implizit, wodurch bei einem Paketverlust kein korrekter [[Keyed-Hash Message Authentication Code|HMAC]] mehr berechnet werden kann, was eine Integritätsverletzung darstellt und wiederum zu einem Verbindungsabbruch führt
* Eine optionale Replay-Detection für einzelne Pakete


== Alternativen ==
== Alternativen ==
Falls die Anwendung einen zuverlässigen Transport benötigt, kann statt DTLS über UDP entweder TLS über [[Transmission Control Protocol|TCP]] oder TLS über [[QUIC]] verwendet werden. QUIC gilt als Nachfolger von TCP, baut seinerseits auf UDP auf, und wird von Anwendungsprotokollen wie [[HTTP/3]] oder [[DNS over QUIC]] (DoQ) verwendet.<ref>{{Internetquelle |autor=Monika Ermert |url=https://www.heise.de/news/Internetbeschleuniger-Die-IETF-laesst-das-QUIC-Protokoll-vom-Stapel-6058718.html |titel=Internetbeschleuniger: Die IETF lässt das QUIC-Protokoll vom Stapel |werk=[[heise online]] |datum=2021-06-01 |abruf=2021-06-01}}</ref>
Falls die Anwendung einen zuverlässigen Transport benötigt, kann statt DTLS über UDP entweder TLS über [[Transmission Control Protocol|TCP]] oder TLS über [[QUIC]] verwendet werden
* QUIC gilt als Nachfolger von TCP, baut seinerseits auf UDP auf, und wird von Anwendungsprotokollen wie [[HTTP/3]] oder [[DNS over QUIC]] (DoQ) verwendet


== Installation ==
== Syntax ==
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Anwendung ==
=== Fehlerbehebung ===
== Konfiguration ==
=== Dateien ===
<noinclude>
<noinclude>
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====
==== Dokumentation ====
===== Normen und Standards =====
===== Normen und Standards =====
Zeile 72: Zeile 78:
|}
|}


===== Man-Pages =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Datagram_Transport_Layer_Security
# https://de.wikipedia.org/wiki/Datagram_Transport_Layer_Security

Aktuelle Version vom 20. April 2024, 10:51 Uhr

DTLS - Datagram Transport Layer Security

Beschreibung[Bearbeiten | Quelltext bearbeiten]

DTLS im TCP/IP-Referenzmodell
Anwendung SIP
Transport DTLS
UDP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Ring
FDDI

Datagram Transport Layer Security (DTLS) ist ein auf Transport Layer Security (TLS) basierendes Verschlüsselungsprotokoll, das im Gegensatz zu TLS auch über verbindungslose, nicht zuverlässige Transportprotokolle wie das User Datagram Protocol (UDP) übertragen werden kann

Geschichte[Bearbeiten | Quelltext bearbeiten]

2004 Erster Entwurf und Implementierung in OpenSSL
2006 RFC 4347 zur Standardisierung von DTLS 1.0
2012 RFC 6347 ersetzt vorherigen RFC und aktualisiert DTLS auf Version 1.2
2022 DTLS 1.3 wird in RFC 9147 veröffentlicht

Hintergrund[Bearbeiten | Quelltext bearbeiten]

Mit Voice over IP (VoIP) und dem dort verbreiteten Signalisierungsprotokoll SIP, welches aufgrund diverser Vorteile bevorzugt über UDP übertragen wird, kam der Bedarf auf, die durch TLS gegebene Sicherheit bei SIP über TCP auch auf den Transport über UDP zu übertragen

  • TLS selbst ist dafür nicht geeignet, da keines der nach einem Paketverlust folgenden Pakete mehr authentifiziert werden kann

Obwohl DTLS im April 2006 im RFC 4347 standardisiert wurde, wird es in der Praxis bis jetzt nur beim ReSIProcate SIP Stack Enlightened Data Transport (ICA über UDP) und bei VPN-Protokollen wie Cisco AnyConnect eingesetzt

  • Im 2014 vorgestellten Netzwerkprotokoll Thread für IoT und Smart Home wird DTLS ebenfalls verwendet

Funktionsweise[Bearbeiten | Quelltext bearbeiten]

https://www.instagram.com/p/C58QW7sAf2K/

Die Funktionsweise von DTLS entspricht weitgehend der von TLS

  • Um nicht durch zu starke Veränderung des ursprünglichen Protokolls eine Implikation bezüglich der Sicherheit des neuen Protokolls herbeizuführen, wurden nur an den Stellen Änderungen vorgenommen, an denen dies bei Verwendung eines nicht zuverlässigen Transportprotokolls notwendig ist
  • Diese Änderungen sind:
  • Wiederherstellen der Zuverlässigkeit des Handshakes zu Beginn der Kommunikation, da in diesem Teil die Ankunft aller Pakete garantiert werden muss, um eine Authentifizierung und den Schlüsseltausch ermöglichen zu können
  • Dies geschieht dadurch, dass die Pakete nach einer bestimmten Zeit erneut gesendet werden
  • Explizite Nummerierung der einzelnen Pakete während der Übertragung
  • Dies geschieht bei TLS nur implizit, wodurch bei einem Paketverlust kein korrekter HMAC mehr berechnet werden kann, was eine Integritätsverletzung darstellt und wiederum zu einem Verbindungsabbruch führt
  • Eine optionale Replay-Detection für einzelne Pakete

Alternativen[Bearbeiten | Quelltext bearbeiten]

Falls die Anwendung einen zuverlässigen Transport benötigt, kann statt DTLS über UDP entweder TLS über TCP oder TLS über QUIC verwendet werden

  • QUIC gilt als Nachfolger von TCP, baut seinerseits auf UDP auf, und wird von Anwendungsprotokollen wie HTTP/3 oder DNS over QUIC (DoQ) verwendet


Anhang[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Normen und Standards[Bearbeiten | Quelltext bearbeiten]
RFC Titel Datum Status
4347 Datagram Transport Layer Security 2006-04 veraltet
6347 Datagram Transport Layer Security Version 1.2 2012 (Obsoletes 4347) veraltet
9147 The Datagram Transport Layer Security (DTLS) Protocol Version 1.3 2022-04
Weblinks[Bearbeiten | Quelltext bearbeiten]
  1. https://de.wikipedia.org/wiki/Datagram_Transport_Layer_Security