Dies ist ein technischer Deep Dive, nachdem diese Übersichtsfrage gestellt wurde.
Was sind die Protokollunterschiede zwischen SSL und TLS?
Gibt es wirklich genug Unterschiede, um eine Namensänderung zu rechtfertigen? (im Gegensatz zu "SSLv4" oder SSLv5 für die neueren Versionen von TLS)
Antworten:
SSLv2 und SSLv3 sind völlig unterschiedlich (und beide werden jetzt als unsicher betrachtet). SSLv3 und TLSv1.0 sind sich sehr ähnlich, weisen jedoch einige Unterschiede auf.
Sie könnten TLSv1.0 als SSLv3.1 betrachten (tatsächlich geschieht dies in den ausgetauschten Datensätzen). Es ist nur einfacher, TLSv1.0 mit TLSv1.1 und TLSv1.2 zu vergleichen, da sie alle in IETF bearbeitet wurden und mehr oder weniger der gleichen Struktur folgen. Da SSLv3 von einer anderen Institution (Netscape) bearbeitet wird, ist es etwas schwieriger, die Unterschiede zu erkennen.
Hier sind ein paar Unterschiede, aber ich bezweifle, dass ich sie alle auflisten kann:
ClientHello
Nachricht (erste vom Client gesendete Nachricht zum Initiieren des Handshakes) gilt die Version{3,0}
für SSLv3,{3,1}
TLSv1.0 und{3,2}
TLSv1.1.ClientKeyExchange
unterscheidet sich.Finished
Nachricht in SSLv3 gesendet werden . In TLSv1 muss es auf dieFinished
Nachricht des Servers warten .SSL_*
umTLS_*
die gleichen ID - Nummer zu halten).Ich würde Eric Rescorlas Buch - SSL und TLS: Entwerfen und Erstellen sicherer Systeme , Addison-Wesley, 2001 ISBN 0-201-61598-3 , wärmstens empfehlen , wenn Sie wirklich mehr Details wünschen. Ich habe einige der oben genannten Punkte aus diesem Buch gelernt. Der Autor erwähnt gelegentlich die Unterschiede zwischen SSLv3 und TLS (v1.0 nur zu dem Zeitpunkt, als das Buch geschrieben wurde), wenn er einen Teil der SSL / TLS-Nachricht erklärt, aber Sie benötigen die Hintergrunderklärung zu diesen Nachrichten, um eine Chance zum Verständnis zu haben ( und es ist nicht angebracht, dieses Buch hier zu kopieren / einzufügen).
quelle
ClientHello
Datensatz, während Clients, die nur SSL3 verwenden, immer nur den ursprünglichen Datensatz sendenClientHello
.draft302.txt
und " Im Interesse der Aufwärtskompatibilität ... ", vergleichen Sie mit den Abschnitten 7.4.1.2 in den TLS-Spezifikationen.) Um mit Stacks fertig zu werden, die dies nicht unterstützen, gibt es auch Problemumgehungen wie die SCSV-Pseudo-Cipher-Suite in der Neuverhandlungserweiterung.Ich werde nur die anderen Antworten wiederholen, aber vielleicht mit einer etwas anderen Betonung.
Es gab ein Secure-Sockets-Protokoll, das Netscape "gehörte", das als SSL-Version 2 bezeichnet wurde. Eine neue Version mit einer anderen Datensatzstruktur und Sicherheitsverbesserungen, die auch Netscape "gehörte", wurde veröffentlicht und als SSL-Version 3 bezeichnet places ist ein binäres Versionsnummernfeld. Für SSL-Version 3 ist dieses Feld auf 0x03 0x00 festgelegt, dh Version 3.0. Dann beschloss die IETF, einen eigenen Standard zu schaffen. Möglicherweise gab es einige Unsicherheiten in Bezug auf das geistige Eigentum in Bezug auf SSL, einschließlich der Frage, ob "SSL" eine Marke von Netscape ist, als die IETF die nächste Version dieses Protokolls veröffentlichte, gaben sie ihm ihren eigenen Namen: Transport Layer Security-Protokoll oder TLS-Version 1.0. Das Datensatzformat und die Gesamtstruktur sind identisch und stimmen mit SSL v3 überein. Die binäre Versionsnummer wurde auf 0x03 0x01 revidiert, und wie andere angemerkt haben, gab es einige geringfügige Kryptoänderungen. Seitdem gibt es TLS-Versionen 1.1 und 1.2, für die die internen Protokollnummern 0x03 0x02 und 0x03 0x03 sind.
Wenn man SSLv2 ignoriert, handelt es sich im Grunde genommen nur um eine Namensänderung zusammen mit einer normalen Protokoll-Feinabstimmung, die auftritt, wenn die Leute in Bezug auf Sicherheit und Leistung intelligenter werden.
quelle
Grundsätzlich handelt es sich um eine reine Namensänderung für eine neuere Version des Protokolls. Ich glaube, der Hauptgrund dafür war, es von dem älteren, informellen Standard zu unterscheiden, der hauptsächlich von Netscape entwickelt wurde, nachdem es ein offizielles IETF-Standardprotokoll wurde.
Wie bereits in den Antworten auf Ihre frühere Frage erwähnt, bedeutet dies nicht, dass SSLv3 und TLSv1.0 kompatibel sind. Zitiert aus RFC 2246:
Ich denke, wenn Sie die genauen Unterschiede in den Protokollen wirklich wissen wollen, müssen Sie die Standards lesen und sich selbst vergleichen.
Entwurf des SSLv3-Protokolls aus Netscape TLSv1.0 RFC 2246
quelle
Das Verschlüsselungsprotokoll SSL heißt jetzt TLS, was zu zwei Namen für dasselbe Protokoll führt. Die aktuelle Software handelt TLS Version 1 oder SSL Version 3 automatisch aus. Menschen müssen sich dagegen zwischen der Verwendung des besser erkennbaren SSL-Begriffs und der offiziellen TLS-Bezeichnung entscheiden.
SSL ist der Vorgänger von TLS.
TLS und SSL verschlüsseln die Segmente der Netzwerkverbindungen auf der Anwendungsebene, um einen sicheren End-to-End-Versand auf der Transportebene zu gewährleisten.
quelle
Unterschiede:
quelle