Frage Was sind die genauen Protokollebenenunterschiede zwischen SSL und TLS?


Dies ist ein technischer Tiefgang nach diese Übersicht Frage wurde gestellt.

Was sind die Protokollunterschiede zwischen SSL und TLS?
Gibt es wirklich genug Unterschied, um eine Namensänderung zu rechtfertigen? (im Gegensatz zu "SSLv4" oder SSLv5 für die neueren Versionen von TLS)


38
2017-09-06 20:10


Ursprung


Ich vermute, wenn Sie ein wirklich tiefgründiges Verständnis haben wollen, müssen Sie beginnen, die Spezifikationen zu lesen. Besuche die Wiki-Seite. Es enthält Links zu den RFCs und Spezifikationen. - Zoredache
@Zoredache, bitte benutze "wiki" nicht als Abkürzung für "Wikipedia". - Spiff


Antworten:


SSLv2 und SSLv3 sind völlig unterschiedlich (und beide werden jetzt als unsicher angesehen). SSLv3 und TLSv1.0 sind sehr ähnlich, haben aber ein paar Unterschiede.

Sie könnten TLSv1.0 als SSLv3.1 betrachten (genau das passiert innerhalb der ausgetauschten Datensätze). Es ist einfach einfacher, das zu vergleichen TLSv1.0 mit TLSv1.1 und TLSv1.2 weil sie alle innerhalb der IETF bearbeitet wurden und mehr oder weniger die gleiche Struktur haben. SSLv3 wird von einer anderen Institution (Netscape) bearbeitet, es macht es etwas schwieriger, die Unterschiede zu erkennen.

Hier sind ein paar Unterschiede, aber ich bezweifle, dass ich sie alle auflisten kann:

  • In dem ClientHello Nachricht (erste Nachricht vom Client gesendet, 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.
  • Das ClientKeyExchange unterscheidet sich.
  • Der MAC / HMAC unterscheidet sich (TLS verwendet HMAC, während SSL eine frühere Version von HMAC verwendet).
  • Die Schlüsselableitung unterscheidet sich.
  • Die Client-Anwendungsdaten können direkt nach dem Senden des SSL / TLS gesendet werden Finished Nachricht in SSLv3. In TLSv1 muss auf den Server gewartet werden Finished Botschaft.
  • Die Liste der Cipher Suites ist unterschiedlich (und einige von ihnen wurden umbenannt) SSL_* zu TLS_*, die gleiche ID-Nummer beibehalten).
  • Es gibt auch Unterschiede bezüglich des Neuen Neuverhandlung Erweiterung.

Ich würde es wärmstens empfehlen Eric Rescorlas Buch - SSL und TLS: Entwerfen und Erstellen von sicheren Systemen, Addison-Wesley, 2001 ISBN 0-201-61598-3, wenn Sie wirklich mehr Details wünschen. Ich habe über einige der oben genannten Punkte aus diesem Buch erfahren. Der Autor erwähnt gelegentlich die Unterschiede zwischen SSLv3 und TLS (v1.0 nur zu dem Zeitpunkt, als das Buch geschrieben wurde), wenn er einige der SSL / TLS-Nachrichten erklärt, aber Sie müssen die Hintergrunderklärung über diese Nachrichten verstehen ( und es ist nicht angebracht, dieses Buch hier zu kopieren / einzufügen).


35
2017-09-08 11:15



Es sieht aus wie die TLS-Erweiterungen gilt nur für TLS und nicht SSL, richtig? So können beispielsweise TLS-Clients eine erweiterteClientHello"aufnehmen, während nur SSL3-Clients nur das Original senden"ClientHello". - culix
@culix, das ist im Allgemeinen richtig (hauptsächlich weil die TLS-Erweiterungen im Rahmen der IETF definiert sind). SSLv3 konnte auch zusätzliche Daten in seinem ClientHello-Datensatz enthalten (wie TLS 1.0 und 1.1). (Suchen draft302.txt und "Im Interesse der Vorwärtskompatibilität ..."Vergleichen Sie mit Abschnitten 7.4.1.2 in den TLS-Spezifikationen. Um Stacks zu bewältigen, die dies nicht unterstützen, gibt es auch Workarounds wie die SCSV-Pseudo-Cipher-Suite in der Neuverhandlungserweiterung. - Bruno
@Bruno, Buchverknüpfung ..... - Pacerier


Ich werde nur die anderen Antworten wiederholen, aber vielleicht mit einer etwas anderen Betonung.

Es gab ein sicheres Socket-Protokoll, das von Netscape "gehört" wurde, das SSL-Version 2 genannt 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 Feld für die binäre Versionsnummer. Für SSL Version 3 ist dieses Feld auf 0x03 0x00 festgelegt, d. H. Version 3.0. Dann beschloss die IETF, einen eigenen Standard zu schaffen. Möglicherweise gab es einige Unsicherheiten im Hinblick auf geistiges Eigentum bei SSL, einschließlich der Frage, ob "SSL" eine Netscape-Marke war. Als die IETF die nächste Version dieses Protokolls veröffentlichte, gaben sie ihr einen 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 zu 0x03 0x01 revved, und wie andere bemerkt haben, gab es einige kleinere Kryptoänderungen. Seither gibt es die TLS-Versionen 1.1 und 1.2, für die die internen Protokollnummern 0x03 0x02 und 0x03 0x03 lauten.

SSLv2 ignorierend, war es im Grunde genommen nur eine Namensänderung zusammen mit einer normalen Protokoll-Feineinstellung, die passiert, wenn die Leute schlauer bezüglich Sicherheit und Leistung werden.


4
2017-09-09 00:46





Im Grunde ist es nichts anderes als eine Namensänderung für eine neuere Version des Protokolls. Ich glaube, der Hauptgrund dafür war, sie von dem älteren, informellen Standard zu unterscheiden, der hauptsächlich von Netscape entworfen wurde, nachdem es zu einem offiziellen IETF-Standards Track-Protokoll wurde.

Wie in den Antworten auf Ihre frühere Frage gesagt wurde, bedeutet dies nicht, dass SSLv3 und TLSv1.0 kompatibel sind. Zitieren von RFC 2246:

die Unterschiede zwischen diesem Protokoll   und SSL 3.0 sind nicht dramatisch, aber sie   sind signifikant genug, dass TLS 1.0   und SSL 3.0 funktionieren nicht zusammen.

Ich denke, wenn Sie wirklich die genauen Unterschiede in den Protokollen wissen wollen, müssen Sie die Standards lesen und sich vergleichen.

SSLv3-Protokollentwurf von Netscape TLSv1.0 RFC 2246


3
2017-09-06 20:41



@SvenW Ich würde für mich selbst vergleichen, aber es ist eine große Herausforderung, ich bin mir nicht sicher, ob ich es übernehmen möchte. Dieser Standard gibt es seit 10 Jahren. Sicherlich hat schon jemand den Vergleich gemacht, mit hübschen Grafiken, damit Leute wie ich es verstehen können. - random65537
@ MakerOfThings7 Leider kann diese Frage nicht zu einem Tortendiagramm zusammengefasst werden. Die einzigen Dinge, die in ein Diagramm eingefügt werden können, sind die Verschlüsselungs-Bit-Raten oder (und ich dehne mich hier) die Sicherheitsstufe (SSLv3 ist "-" und TLS ist "=" ...) gewonnen werden kann, wenn man die Spezifikationen liest, oder zumindest die Wikipedia-Seite (die ich Ihnen in der vorherigen Frage zur Verfügung gestellt habe). - gWaldo
@SvenW Haben Sie beide Spezifikationen selbst gelesen und verstanden? - random65537
Nein Warum sollte ich? Ich bin kein Entwickler, der Software gegen diese Spezifikation schreibt, was der einzige Grund ist, den ich mir vorstellen kann. Wenn ich SSL / TLS verwenden muss, lese ich das Dokument für OpenSSL usw., das ist ausreichend für Benutzer und Administratoren. - Sven♦
@SvenW Nichts für ungut, aber ich werde das offen halten, bis ich eine Antwort von jemandem bekomme, der die Spezifikationen gelesen und verstanden hat ... was meiner Frage angemessen ist. - random65537


Das Verschlüsselungsprotokoll SSL heißt jetzt TLS, was zu zwei Namen für das gleiche Protokoll führt. Die aktuelle Software verhandelt automatisch TLS Version 1 oder SSL Version 3. Der Mensch muss sich dagegen entscheiden, ob er den besser erkennbaren SSL-Begriff gegenüber der offiziellen TLS-Bezeichnung verwenden möchte.

SSL ist der Vorgänger von TLS.

TLS und SSL verschlüsseln die Segmente von Netzwerkverbindungen auf der Anwendungsschicht, um eine sichere Ende-zu-Ende-Übertragung auf der Transportschicht zu gewährleisten.


0
2017-09-06 20:16



Es ist also eine Namensänderung? Das ist es? - random65537
Ja TLS ist die neuere Version, TLS kann sich bei Bedarf in SSL3 verwandeln. - aleroot
Nein, es ist keine Namensänderung. TLSv1 ist interoperabel mit SSLv3 (und Fallback), aber das stimmt nicht notwendigerweise umgekehrt. TLSv1 ist wie SSLv4. Hinweis: Es gibt auch mehrere Versionen von TLS. - Philip Reynolds


Unterschiede:

  • TLS läuft ganz oben auf einem Standardprotokoll. Eine TLS-Verbindung beginnt wie eine unverschlüsselte Sitzung eines Standarddienstes, aber irgendwann beginnen sie mit dem Aushandeln der Verschlüsselung. Es erfordert die Erweiterung des Standardprotokolls für diese Verhandlung.
  • Standardprotokolle werden zusätzlich zu SSL ausgeführt. Eine SSL-Verbindung verhandelt zuerst die Verschlüsselung und führt dann das Basisprotokoll darüber aus.

-2
2017-09-09 00:53



Das ist nicht korrekt, Sie sprechen von dem Unterschied zwischen dem Starten mit SSL / TLS und dem Wechseln zu TLS innerhalb des Protokolls über Befehle wie STARTTLS: stackoverflow.com/questions/3660798/ ... - Bruno