it-swarm-eu.dev

Wo findet die SSL-Verschlüsselung statt?

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) feststellen. Wo findet die SSL-Verschlüsselung statt?

34
open source guy

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)

Beachten Sie, dass SSL zwischen HTTP und TCP liegt.

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 eine Überverallgemeinerung darstellt und hier nicht sehr gut passt. 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.

51
Polynomial

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, wenn den Browser beendet .

Verwenden Sie ein Netzwerkmonitor-Tool (z. B. Microsoft Network Monitor oder Wireshark ), um den verschlüsselten Datenverkehr 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 zu ignorieren", wenn es um nicht vertrauenswürdige Zertifikate geht - ignorieren Sie also nicht die Warnungen!).

22
Thomas Pornin

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

SSL/TLS bietet bei ordnungsgemäßer Konfiguration 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, wurden SSL und TLS mit dem Ziel entwickelt, ein Modell bereitzustellen, das fast wie einfache Sockets verwendet werden kann TCP Sockets) von Anwendungsprogrammierern. Abgesehen von einigen Edge-Fällen (z. B. für 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 SSLSocketSocket.

Die meisten Anwendungen verwenden SSL/TLS für vorhandene Bibliotheken (z. B. JSSE in Java, SChannel, OpenSSL, Mozillas NSS-Bibliothek, OSXs CFNetwork usw.). Mit kleinen Änderungen am einfachen TCP-Code (normalerweise alles rund um die Zertifikats- und Vertrauensverwaltung sowie bei Bedarf Einstellungen für Verschlüsselungs-/Verschlüsselungssuiten), SSL/TCP-Sockets (oder Streams, je nach Art des SPS) API) werden verwendet, um einfachen Text für die Anwendung auszutauschen. 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 über die angezeigten Bibliotheken ausgetauscht. Um den verschlüsselten Datenverkehr anzuzeigen, müssen Sie sich den tatsächlichen Datenverkehr ansehen (z. B. mithilfe von Wireshark).

5
Bruno

Während alle Netzwerkmodelle nicht perfekt sind, kann diese Frage nur beantwortet werden, indem man sich ansieht, 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 Host-Seite über die entsprechende Anwendung.

Die Verschlüsselung im Ruhezustand (z. B. in einem Datenbankfeld oder einer E-Mail-Nachricht) ist möglicherweise ein Kandidat für die Präsentationsschicht, aber ich würde vorschlagen, dass sie einer Form der Betriebssystem- oder Anwendungssicherheit näher kommt.

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

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

Viel Glück.

3
eris0xff

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

1
André Zúquete

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

1
Kruger

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

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

0
Kovags