Frage:
Wo findet die SSL-Verschlüsselung statt?
open source guy
2012-09-03 18:53:36 UTC
view on stackexchange narkive permalink

Ich habe die Datenübertragung einer HTTPS-Website (gmail.com) mit Firebug überprüft. Ich kann jedoch keine Verschlüsselung meiner übermittelten Daten (Benutzername und Passwort) sehen. Wo findet die SSL-Verschlüsselung statt?

Acht antworten:
Polynomial
2012-09-03 19:08:39 UTC
view on stackexchange narkive permalink

Das SSL-Protokoll wird als transparenter Wrapper um das HTTP-Protokoll implementiert. In Bezug auf das OSI-Modell ist es eine Grauzone. Es wird normalerweise in der Anwendungsschicht implementiert, aber genau genommen in der Sitzungsschicht.

Stellen Sie sich das so vor:

  1. Physikalische Schicht (Netzwerkkabel / WLAN)
  2. Datenverbindungsschicht (Ethernet)
  3. Netzwerkschicht (IPv4)
  4. Transportschicht (TCP)
  5. Sitzungsschicht (SSL) )
  6. Präsentationsschicht (in diesem Fall keine)
  7. Anwendungsschicht (HTTP)
  8. ol>

    Beachten Sie, dass SSL zwischen HTTP und liegt TCP.

    Wenn Sie es in Aktion sehen möchten, greifen Sie zu Wireshark und durchsuchen Sie eine Site über HTTP und eine andere über HTTPS. Sie werden sehen, dass Sie die Anforderungen und Antworten in der HTTP-Version als einfachen Text lesen können, nicht jedoch die HTTPS-Anforderungen. Sie können auch die Ebenen sehen, in die das Paket aufgeteilt ist, von der Datenverbindungsschicht aufwärts.

    Update : Es wurde darauf hingewiesen (siehe Kommentare), dass Das OSI-Modell ist eine Überverallgemeinerung und passt hier nicht sehr gut. Das ist wahr. Die Verwendung dieses Modells soll jedoch zeigen, dass SSL "irgendwo" zwischen TCP und HTTP liegt. Es ist nicht genau und eine vage Abstraktion der Realität.

Ich bin mir nicht sicher über den OSI-Modellvergleich. Das TCP / IP-Modell selbst passt nicht ganz in dieses Modell (siehe Details im Abschnitt TCP / IP des Wikipedia-Artikels).
@Bruno Ich bin mir nicht sicher, was ich sage. TCP / IP ist eine * Suite * von Netzwerkprotokollen, während TCP und IPv4 unterschiedliche Protokolle auf einzelnen Ebenen im OSI-Modell sind. Das OSI-Modell ist in diesem Fall eine gute Abstraktion, da es zeigt, wo sich SSL befindet. Es muss nicht 100% genau sein - nichts ist jemals mit solchen Abstraktionen - es ist nur da, um das Verständnis zu fördern.
Ich sage nur, dass das OSI-Modell als theoretisches Konzept weit verbreitet ist, aber der TCP / IP-Stapel (einer der am häufigsten verwendeten Protokollstapel) passt leider nicht eindeutig in dieses Modell. Auf der Wikipedia-Seite wird SSL / TLS in Schicht 6 (Präsentation) eingefügt, nicht in 5 wie Ihre Antwort. Die Verbreitung dieses OSI-Modells hilft in vielen Fällen nicht wirklich, und diese Schicht kann sehr "künstlich" sein. Natürlich ist es ein Modell, es wird immer künstlich sein, aber das Modell passt nicht immer leicht zur Realität, was schlimmer wird, wenn man Protokolle wie zum Beispiel VPNs betrachtet. Auch SSL / TLS passt nicht ganz
@begueradj Wie bereits erwähnt, passt TLS nicht wirklich in das OSI-Modell. Genau genommen ist es Schicht 7, nicht 5 oder 6, aber in Bezug darauf, wo Sie es in Bezug auf die Netzwerkprotokollkapselung platzieren würden, befindet es sich zwischen TCP und der Anwendung, daher sind 5 und 6 sinnvoll. Die Unterscheidung zwischen 5 und 6 ist auch eine Grauzone, da TLS viel mehr als nur die Daten verschlüsselt. Wie ich bereits sagte, ist dies eine übermäßige Vereinfachung und nur dazu gedacht, seine Position im Netzwerkstapel im praktischen Sinne auszudrücken.
SSL ist nicht als transparenter Wrapper um das HTTP-Protokoll implementiert. Sie könnten also HTTPS beschreiben, aber nicht SSL.
Thomas Pornin
2012-09-03 19:06:56 UTC
view on stackexchange narkive permalink

Bei HTTPS erfolgt die Verschlüsselung zwischen dem Webbrowser und dem Webserver. Firebug wird im Browser selbst ausgeführt, sodass die Klartextdaten angezeigt werden. Die Verschlüsselung erfolgt beim Beenden des Browsers.

Verwenden Sie ein Netzwerkmonitor-Tool (z. B. Microsoft Network Monitor oder Wireshark). um den verschlüsselten Verkehr zu beobachten. Verwenden Sie ein Man-in-the-Middle-Angriff -Produkt wie Fiddler, um einen Eindruck davon zu bekommen, was ein Angreifer tun kann (nämlich: Das Abfangen der Verbindung und das Wiederherstellen der Daten ist möglich, wenn dies möglich ist Der Benutzer kann überredet werden, "die verdammten Browser-Warnungen" über nicht vertrauenswürdige Zertifikate zu ignorieren - ignorieren Sie die Warnungen also nicht!).

Bruno
2012-09-04 03:11:40 UTC
view on stackexchange narkive permalink

HTTPS ist HTTP über TLS (oder über SSL, wie der Name früherer Versionen von TLS lautet).

SSL / TLS, wenn Richtig konfiguriert, bietet Datenschutz und Datenintegrität zwischen zwei kommunizierenden Anwendungen (siehe TLS-Spezifikation) über einen zuverlässigen Transport, normalerweise TCP.

Obwohl TCP-Sockets in der TLS-Spezifikation nicht erwähnt werden , SSL und TLS wurden mit dem Ziel entwickelt, ein Modell bereitzustellen, das von Anwendungsprogrammierern fast wie normale TCP-Sockets verwendet werden kann. Abgesehen von einigen Randfällen (z. B. zum Schließen von Sockets oder wenn Sie möchten, dass Ihre Anwendung über Neuverhandlungen informiert wird) ist dies in der Tat meistens der Fall. SSL / TLS-Stacks bieten häufig Wrapper, mit denen die SSL / TLS-Sockets auf die gleiche Weise programmiert werden können wie einfache TCP-Sockets (einmal konfiguriert). Zum Beispiel erweitert Javas SSLSocket Socket .

Die meisten Anwendungen verwenden vorhandene Bibliotheken, um SSL / TLS zu verwenden (z. B. JSSE in Java, SChannel, OpenSSL, Mozillas NSS-Bibliothek, OSXs CFNetwork, ...). Mit nur geringen Änderungen am einfachen TCP-Code (normalerweise alles rund um die Zertifikats- und Vertrauensverwaltung sowie bei Bedarf Einstellungen für Verschlüsselungs- / Verschlüsselungssuiten) werden SSL / TCP-Sockets (oder Streams, je nach API-Typ) zum Austausch von einfachem Text verwendet soweit der Antrag betroffen ist. Es ist die zugrunde liegende Bibliothek, die dazu neigt, die Verschlüsselungsarbeit transparent zu erledigen.

Wenn Sie sich den Datenverkehr in den Entwicklertools des Browsers ansehen, wird dieser zusätzlich zu den angezeigten Bibliotheken ausgetauscht. Um den verschlüsselten Datenverkehr anzuzeigen, müssen Sie sich den tatsächlichen Datenverkehr ansehen (z. B. mithilfe von Wireshark).

eris0xff
2013-10-22 02:18:30 UTC
view on stackexchange narkive permalink

Obwohl alle Netzwerkmodelle nicht perfekt sind, kann diese Frage nur beantwortet werden, indem untersucht wird, was SSL (TLS wirklich) tut. (1) Zusätzlich zu einem zuverlässigen Netzwerkstrom (TCP auf OSI-Schicht 4) stellt er einen verschlüsselten bidirektionalen Strom bereit und garantiert (fast immer) die Identität des Servers und (optional) des Clients. Der authentifizierende Client kann ein Prozess, ein Benutzer oder eine andere Entität sein, die die erforderlichen Authentifizierungsprobleme ordnungsgemäß beantworten kann.

TLS bedeutet Transport Layer Security. Da es jedoch Sitzungsidentität, Integrität, Start, Abbau und Verwaltung implementiert, gehört es sehr stark zur Sitzungsschicht. Die Wikipedia-Seite gibt an, dass dies zur OSI-Präsentationsschicht gehört. Das ist wahrscheinlich falsch. Die Präsentationsschicht befasst sich eher mit dem Marshalling von Daten in nicht netzwerkabhängige Formate und deren Interpretation auf der Hostseite über die entsprechende Anwendung.

Verschlüsselung im Ruhezustand (z. B. in einem Datenbankfeld oder einer E-Mail-Nachricht) Seien Sie ein Kandidat für die Präsentationsschicht, aber ich würde vorschlagen, dass es näher an einer Form der Betriebssystem- oder Anwendungssicherheit liegt.

In Wirklichkeit ist TLS also hauptsächlich eine Sitzungsschicht, da es Punkt-zu-Punkt-Sitzungssicherheit bietet für den Transport (TCP). Auf andere Weise bietet es Authentifizierungsfunktionen, die eindeutig die Anwendungsschicht (Betriebssystem, Dienstprogramm oder Benutzeranwendung) sind.

Es ist also viel Schicht 5 und ein wenig Schicht 7.

Gut Glück.

André Zúquete
2014-11-21 17:12:05 UTC
view on stackexchange narkive permalink

Obwohl es möglich ist, Daten wie bei Vanilla TCP / IP-Sockets in Java oder C oder was auch immer in SSL / TLS-Kanäle zu lesen / schreiben, bietet SSL Ihnen das Konzept einer SSL-Sitzung, die über mehrere TCP / hinweg beibehalten werden kann. IP-Verbindungen. Meiner Meinung nach macht dies SSL zu einem Sitzungsprotokoll (ich frage mich, warum jemand den TLS-Namen erfunden hat ...).

Kruger
2015-11-27 22:31:59 UTC
view on stackexchange narkive permalink

SSL wird auf der Präsentationsschicht im OSI-Modell (Schicht 6) ausgeführt. Siehe Referenz Der TCP / IP-Leitfaden, M. Kozierok, Seite 111. "Protokolle auf dieser Schicht übernehmen Manipulationsaufgaben, die Daten von einer Darstellung in eine andere umwandeln B. Übersetzung, Komprimierung und Verschlüsselung. Eines der beliebtesten Verschlüsselungsschemata, die normalerweise mit der Präsentationsschicht verbunden sind, ist das SSL-Protokoll (Secure Socket Layer). " HTTPS ist das Protokoll der Anwendungsschicht, das SSL auf Schicht 6 für Verschlüsselungszwecke verwendet.

Kovags
2012-09-03 19:03:18 UTC
view on stackexchange narkive permalink

Es ist eine Schicht über der Transportschicht, normalerweise TCP.

Sie können sehen, wie die verschlüsselten Daten mit Wireshark ein- und ausgehen.

user155712
2017-08-01 06:12:17 UTC
view on stackexchange narkive permalink

Laut: Kozierok, Charles M. 2005. Der TCP / IP-Leitfaden. Keine Stärkepresse, Inc. San Francisco, CA. 94103. ISBN1-59327-047-X S. 947-1080

SSL funktioniert auf OSI-Schicht 6.

Können Sie etwas mehr erklären, SSL, das über der Transportschicht arbeitet, wird verstanden.Geben Sie jedoch einige Informationsnuancen an, genau dann, wenn das SSL-Protokoll zu funktionieren beginnt, was während des Prozesses usw. passiert.
Antwort fehlschlagen.Die im Buch von 2005 aufgeführten Seiten befassen sich mit DNS / NFS / BOOTP / DHCP und TCP / IP w.r.t.SNMP.Die einzige Erwähnung von SSL auf Schicht 6 ist S.111: ** Eines der beliebtesten Verschlüsselungsschemata, die normalerweise mit der Präsentationsschicht verbunden sind, ist beispielsweise das SSL-Protokoll (Secure Sockets Layer). **


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...