
Dies ist ein technischer Deep Dive nachdiese ÜbersichtFrage wurde gestellt.
Was sind die Protokollunterschiede zwischen SSL und TLS?
Ist der Unterschied wirklich so groß, dass eine Namensänderung gerechtfertigt ist? (im Gegensatz zur Bezeichnung „SSLv4“ oder „SSLv5“ für die neueren Versionen von TLS)
Antwort1
SSLv2 und SSLv3 sind völlig unterschiedlich (und beide gelten mittlerweile als unsicher). SSLv3 und TLSv1.0 sind sehr ähnlich, weisen aber einige Unterschiede auf.
Man könnte TLSv1.0 als SSLv3.1 betrachten (tatsächlich passiert das innerhalb der ausgetauschten Datensätze). Es ist einfach einfacher, dieTLSv1.0mitTLSv1.1UndTLSv1.2weil sie alle innerhalb der IETF bearbeitet wurden und mehr oder weniger derselben Struktur folgen. Da SSLv3 von einer anderen Institution (Netscape) bearbeitet wird, ist es etwas schwieriger, die Unterschiede zu erkennen.
Hier sind einige Unterschiede, aber ich bezweifle, dass ich sie alle auflisten kann:
- In der
ClientHello
Nachricht (erste vom Client gesendete Nachricht, um den Handshake zu initiieren) ist die Version{3,0}
für SSLv3,{3,1}
für TLSv1.0 und{3,2}
für TLSv1.1 angegeben. - Das
ClientKeyExchange
ist unterschiedlich. - MAC/HMAC unterscheiden sich (TLS verwendet HMAC, während SSL eine frühere Version von HMAC verwendet).
- Die Schlüsselableitung ist unterschiedlich.
Finished
Bei SSLv3 können die Daten der Client-Anwendung direkt nach dem Senden der SSL/TLS-Nachricht versendet werden . Bei TLSv1 müssen sie auf dieFinished
Nachricht des Servers warten.- Die Liste der Verschlüsselungssammlungen ist unterschiedlich (und einige davon wurden von
SSL_*
in umbenanntTLS_*
, wobei die gleiche ID-Nummer beibehalten wurde). - Unterschiede gibt es auch hinsichtlich der neuenVerlängerung der Neuverhandlung.
Ich würde es wärmstens empfehlenEric Rescorlas Buch -SSL und TLS: Entwurf und Aufbau sicherer Systeme, Addison-Wesley, 2001 ISBN 0-201-61598-3, wenn Sie wirklich mehr Details möchten. Einige der oben genannten Punkte habe ich aus diesem Buch gelernt. Der Autor erwähnt gelegentlich die Unterschiede zwischen SSLv3 und TLS (nur v1.0 zum Zeitpunkt der Abfassung des Buches), wenn er einige der SSL/TLS-Nachrichten erklärt, aber Sie benötigen die Hintergrunderklärung zu diesen Nachrichten, um sie verstehen zu können (und es ist nicht angebracht, sie aus diesem Buch hier zu kopieren/einzufügen).
Antwort2
Ich werde die anderen Antworten lediglich wiederholen, allerdings vielleicht mit einer etwas anderen Betonung.
Es gab ein Secure Sockets-Protokoll, das Netscape „gehörte“ und SSL Version 2 hieß. Eine neue Version mit einer anderen Datensatzstruktur und Sicherheitsverbesserungen, die ebenfalls Netscape „gehörte“, wurde veröffentlicht und SSL Version 3 genannt. Im Protokoll gibt es an mehreren Stellen ein binäres Versionsnummernfeld. Für SSL Version 3 ist dieses Feld auf 0x03 0x00 eingestellt, also Version 3.0. Dann beschloss die IETF, einen eigenen Standard zu schaffen. Möglicherweise, weil es einige Unsicherheiten bezüglich des geistigen Eigentums an SSL gab, darunter, ob „SSL“ ein Warenzeichen von Netscape war, gab die IETF der nächsten Version dieses Protokolls ihren eigenen Namen: Transport Layer Security Protocol oder TLS Version 1.0. Das Datensatzformat und die Gesamtstruktur sind identisch und konsistent mit SSL v3. Die binäre Versionsnummer wurde auf 0x03 0x01 geändert, und wie andere bemerkt haben, gab es einige kleinere Änderungen in der Verschlüsselung. Mittlerweile gibt es die TLS-Versionen 1.1 und 1.2, deren interne Protokollnummern 0x03 0x02 bzw. 0x03 0x03 lauten.
Wenn man SSLv2 außer Acht lässt, handelte es sich im Grunde nur um eine Namensänderung im Rahmen der normalen Feinabstimmung des Protokolls, die erfolgt, wenn die Leute in Bezug auf Sicherheit und Leistung klüger werden.
Antwort3
Im Grunde handelt es sich lediglich um eine Namensänderung für eine neuere Version des Protokolls. Ich glaube, der Hauptgrund dafür war die Unterscheidung vom älteren, informellen Standard, der hauptsächlich von Netscape entwickelt wurde, nachdem er ein offizielles IETF-Standardprotokoll geworden war.
Wie in den Antworten auf Ihre frühere Frage gesagt wurde, bedeutet dies nicht, dass SSLv3 und TLSv1.0 kompatibel sind. Zitat aus RFC 2246:
Die Unterschiede zwischen diesem Protokoll und SSL 3.0 sind nicht dramatisch, aber so bedeutend, dass TLS 1.0 und SSL 3.0 nicht miteinander kompatibel sind.
Ich denke, wenn Sie wirklich die genauen Unterschiede zwischen den Protokollen kennen möchten, müssen Sie die Standards lesen und selbst vergleichen.
Antwort4
Unterschiede:
- TLS läuft ziemlich auf einem Standardprotokoll. Eine TLS-Verbindung beginnt wie eine unverschlüsselte Sitzung eines Standarddienstes, aber irgendwann beginnt die Aushandlung der Verschlüsselung. Für diese Aushandlung ist eine Erweiterung des Standardprotokolls erforderlich.
- Standardprotokolle laufen auf SSL. Eine SSL-Verbindung handelt zuerst die Verschlüsselung aus und führt dann das Basisprotokoll darüber aus.