3. DTLS Design Rationale and Overview (DTLS Designbegründung und Übersicht)
3. DTLS Design Rationale and Overview (DTLS Designbegründung und Übersicht)
Die grundlegende Designphilosophie von DTLS besteht darin, "TLS über Datagramm-Transport" zu konstruieren. Datagramm-Transport erfordert weder eine zuverlässige noch eine geordnete Zustellung von Daten, noch bietet er diese. Das DTLS-Protokoll bewahrt diese Eigenschaft für Anwendungsdaten. Anwendungen wie Medienstreaming, Internettelefonie und Online-Gaming verwenden Datagramm-Transport für die Kommunikation aufgrund der verzögerungsempfindlichen Natur der übertragenen Daten. Das Verhalten solcher Anwendungen bleibt unverändert, wenn das DTLS-Protokoll zur Sicherung der Kommunikation verwendet wird, da das DTLS-Protokoll verlorene oder neu angeordnete Datenverkehr nicht kompensiert. Beachten Sie, dass während Streaming mit niedriger Latenz und Gaming DTLS zum Schutz von Daten verwenden (z.B. zum Schutz eines WebRTC-Datenkanals), die Telefonie DTLS für die Schlüsseletablierung und das Secure Real-time Transport Protocol (Sicheres Echtzeit-Transportprotokoll, SRTP) für den Schutz von Daten nutzt [RFC5763].
TLS kann aus folgenden vier Gründen nicht direkt über Datagramm-Transporte verwendet werden:
-
TLS verlässt sich auf eine implizite Sequenznummer bei Datensätzen. Wenn ein Datensatz nicht empfangen wird, verwendet der Empfänger die falsche Sequenznummer beim Versuch, den Datensatzschutz von nachfolgenden Datensätzen zu entfernen. DTLS löst dieses Problem, indem es Sequenznummern zu Datensätzen hinzufügt.
-
Der TLS-Handshake ist ein Lock-Step-Kryptographieprotokoll. Nachrichten müssen in einer definierten Reihenfolge gesendet und empfangen werden; jede andere Reihenfolge ist ein Fehler. Der DTLS-Handshake enthält Nachrichten-Sequenznummern, um fragmentierte Nachrichtenwiederzusammensetzung und geordnete Zustellung zu ermöglichen, falls Datagramme verloren gehen oder neu angeordnet werden.
-
Handshake-Nachrichten sind möglicherweise größer als in einem einzelnen Datagramm enthalten sein kann. DTLS fügt Feldern zu Handshake-Nachrichten hinzu, um Fragmentierung und Wiederzusammensetzung zu unterstützen.
-
Datagramm-Transportprotokolle sind anfällig für missbräuchliches Verhalten, das Denial-of-Service (DoS)-Angriffe gegen Nichtbeteiligte bewirkt. DTLS fügt eine Rückroutefähigkeitsprüfung hinzu, und DTLS 1.3 verwendet die TLS 1.3 HelloRetryRequest-Nachricht (siehe Abschnitt 5.1 für Details).