it-swarm.com.de

Was sind die genauen Unterschiede auf Protokollebene zwischen SSL und TLS?

Dies ist ein technischer Tauchgang, nachdem diese Übersicht Frage 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)

40

SSLv2 und SSLv3 sind völlig unterschiedlich (und beide gelten jetzt als unsicher). SSLv3 und TLSv1.0 sind sehr ähnlich, weisen jedoch einige Unterschiede auf.

Sie können TLSv1.0 als SSLv3.1 betrachten (genau das passiert in den ausgetauschten Datensätzen). Es ist nur einfacher, TLSv1. mit TLSv1.1 und TLSv1.2 zu vergleichen, da sie alle in IETF bearbeitet wurden und mehr folgen oder weniger die gleiche Struktur. 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 Nachricht ClientHello (erste vom Client gesendete Nachricht, um den Handshake zu initiieren) lautet 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 ist unterschiedlich.
  • Die Clientanwendungsdaten können direkt nach dem Senden der SSL/TLS Finished -Nachricht in SSLv3 gesendet werden. In TLSv1 muss auf die Nachricht Finished des Servers gewartet werden.
  • Die Liste der Chiffresuiten unterscheidet sich (und einige von ihnen wurden von SSL_* bis TLS_* unter Beibehaltung der gleichen ID-Nummer).
  • Es gibt auch Unterschiede bezüglich der neuen Neuverhandlungserweiterung .

Ich würde Eric Rescorlas Buch - SSL und TLS: Entwerfen und Erstellen sicherer Systeme , Addison-Wesley, 2001 ISBN 0-201- 61598- , wenn Sie wirklich mehr Details wollen. Ich habe aus diesem Buch einige der oben genannten Punkte kennengelernt. Der Autor erwähnt gelegentlich die Unterschiede zwischen SSLv3 und TLS (v1.0 nur zum Zeitpunkt der Erstellung des Buches), wenn er einige der SSL/TLS-Nachrichten erklärt. Sie benötigen jedoch die Hintergrunderklärung zu diesen Nachrichten, um sie verstehen zu können ( und es ist nicht angebracht, hier aus diesem Buch zu kopieren/einzufügen).

36
Bruno

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

Es gab ein Secure-Sockets-Protokoll, das Netscape "gehörte" und 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 Orte ist ein binäres Versionsnummernfeld. Für SSL Version 3 wird dieses Feld auf 0x03 0x00 gesetzt, d. H. Version 3.0. Dann beschloss die IETF, einen eigenen Standard zu schaffen. Möglicherweise gab es einige Unsicherheiten in Bezug auf geistiges Eigentum in Bezug auf SSL, einschließlich der Frage, ob "SSL" eine Marke von Netscape war. Als die IETF die nächste Version dieses Protokolls veröffentlichte, gab sie ihr ihren eigenen Namen: Transport Layer Security Protocol 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 geändert, und wie andere angemerkt haben, gab es einige geringfügige Kryptoänderungen. Seitdem gibt es TLS Version 1.1 und 1.2, für die die internen Protokollnummern 0x03 0x02 und 0x03 0x03 sind.

Wenn man SSLv2 ignoriert, war es im Grunde nur eine Namensänderung zusammen mit der normalen Feinabstimmung des Protokolls, die stattfindet, wenn die Leute in Bezug auf Sicherheit und Leistung schlauer werden.

Grundsätzlich handelt es sich lediglich um eine Namensänderung für eine neuere Version des Protokolls. Ich glaube, der Hauptgrund dafür war, ihn von dem älteren, informellen Standard zu unterscheiden, der hauptsächlich von Netscape entwickelt wurde, nachdem er zu einem offiziellen IETF-Standardprotokoll wurde.

Wie in den Antworten auf Ihre frühere Frage erwähnt, bedeutet dies nicht, dass SSLv3 und TLSv1.0 kompatibel sind. Zitiert aus 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 nicht zusammenarbeiten.

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

SSLv3-Protokollentwurf von NetscapeTLSv1.0 RFC 2246

3
Sven

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 Anwendungsschicht, um einen sicheren End-to-End-Transit auf der Transportschicht sicherzustellen.

0
aleroot