it-swarm.com.de

Warum benötigt TLS ein explizites Heartbeat-Protokoll?

Das Heartbeat-Erweiterung für das TLS-Protokoll scheint eine nützliche Idee für DTLS zu sein. Gemäß der Spezifikation selbst kann es verwendet werden, um herauszufinden, ob ein Peer noch am Leben ist (und um zu verhindern, dass Firewalls die Verbindung trennen), ohne dass eine Neuverhandlung erforderlich ist, und um die Pfad-MTU zu ermitteln.

Ich verstehe jedoch nicht die Motivation, es für reguläres, TCP-basiertes TLS zu spezifizieren und zu implementieren. Würde das Senden leerer Anwendungsdatenfragmente nicht im Wesentlichen das Problem lösen, dass Stateful Firewalls auch inaktive Verbindungen trennen?

Der RFC für TLS erlaubt dies ausdrücklich dieses Verhalten:

Fragmente von Anwendungsdaten ohne Länge können gesendet werden, da sie möglicherweise als Gegenmaßnahme zur Verkehrsanalyse nützlich sind.

22
lxgr

Der Herzschlag dient zwei Zwecken: Aktivitäten auf Verbindungsebene (um das Schließen durch eifrige Firewalls zu vermeiden) nd um sicherzustellen, dass der Peer noch am Leben ist. Wenn Sie beides mit leeren Fragmenten tun möchten, benötigen Sie eine Konvention zwischen Client und Server, damit der Peer beim Senden eines leeren Fragments mit einem leeren Fragment antwortet. Dies kann zu Endlosschleifen führen, wenn dies nicht korrekt durchgeführt wird.

Als leere Fragmente als Gegenmaßnahme zum BEAST-Angriff verwendet wurden, schien es außerdem, dass einige weit verbreitete Implementierungen Probleme mit ihnen hatten. Aus diesem Grund führen wir einen "1/n-1-Split" durch, keinen "0/n" -Split.

Daher ist die Heartbeat-Erweiterung meistens eine Formalisierung dieser ping-ähnlichen Konvention mit ihrer eigenen anfänglichen Aushandlung und ihrem eigenen Format, damit keine Interoperabilitätsprobleme auftreten.

15
Tom Leek

Der Hauptvorteil einer TLS-basierten Implementierung besteht darin, dass für TLS und DTLS derselbe SSL-Datensatzverarbeitungscode verwendet werden kann. Andernfalls muss Ihr SSL-Datensatzverarbeitungscode den zugrunde liegenden Transportmechanismus kennen.

Die andere Verwendung hierfür sind zuverlässige Transportprotokolle mit mehreren Streams, über die Sie über TLS verfügen. Das Beispiel im RFC ist SCTP. In diesem Fall gibt es eine Verwendung.

Die praktische Verwendung von over TCP ist nahe Null).

4
COL Wotohice