it-swarm-eu.dev

Sind URLs, die während HTTPS-Transaktionen zu einer oder mehreren Websites von einer einzelnen IP angezeigt werden, unterscheidbar?

Angenommen, es handelt sich um HTTPS-URLs zu zwei Websites mit einer IP über einen Zeitraum von 5 Minuten: "A.com/1", "A.com/2", "A.com/3", "B.com/1". , "B.com/2".

Würde die Überwachung von Paketen ergeben:

  • nichts,
  • offenbaren, dass nur die IP "A.com" und "B.com" besucht hat (dh nur das DNS),
  • offenbaren, dass nur die IP "A.com/1" und "B.com/1" besucht hat (die erste HTTPS-Anfrage für jede Site),
  • eine vollständige Liste aller besuchten HTTPS-URLs anzeigen,
  • nur IPs von "A.com" und "B.com" offenbaren,
  • oder etwas anderes?

Verwandte Frage: Kann mein Unternehmen sehen, zu welchen HTTPS-Sites ich gegangen bin?

Diese Frage enthält zwar zusätzliche Informationen, sie bezieht sich jedoch, soweit ich das beurteilen kann, nicht speziell auf das Szenario "Nur die IP anzeigen, die" A.com/1 "und" B.com/1 "(die erste) besucht hat HTTPS-Anfrage für jede Site) "- obwohl die Wahrscheinlichkeit hoch ist, dass dies falsch ist, und die Frage gerne löscht, wenn es sich um ein Duplikat handelt.


HINWEIS: Dies ist eine Folgefrage zu einer Antwort , die wie folgt gepostet wurde: Warum ist HTTPS nicht das? Standardprotokoll?

69
blunders

TLS gibt einem Lauscher die folgenden Informationen:

  • die Site, die Sie kontaktieren
  • die (möglicherweise ungefähre) Länge des Restes der URL
  • die (möglicherweise ungefähre) Länge des HTML-Codes der von Ihnen besuchten Seite (vorausgesetzt, sie wird nicht zwischengespeichert)
  • die (möglicherweise ungefähre) Anzahl anderer Ressourcen (z. B. Bilder, Iframes, CSS-Stylesheets usw.) auf der von Ihnen besuchten Seite (vorausgesetzt, sie werden nicht zwischengespeichert)
  • die Zeit, zu der jedes Paket gesendet und jede Verbindung hergestellt wird. (@nealmcb weist darauf hin, dass der Lauscher eine Menge über das Timing lernt: die genaue Zeit, zu der jede Verbindung hergestellt wurde, die Dauer der Verbindung, die Zeit jedes Pakets wurde gesendet und die Zeit, zu der die Antwort gesendet wurde, die Zeit, die der Server benötigt, um auf jedes Paket zu antworten usw.)

Wenn Sie mit einer Website interagieren, indem Sie auf Links in Reihe klicken, kann der Lauscher diese für jeden Klick auf die Webseite anzeigen. Diese Informationen können kombiniert werden, um zu ermitteln, welche Seiten Sie besuchen.

Daher zeigt TLS in Ihrem Beispiel nur A.com vs B.com an, da in Ihrem Beispiel der Rest der URL in allen Fällen gleich lang ist. Ihr Beispiel wurde jedoch schlecht ausgewählt: Es ist nicht repräsentativ für die typische Praxis im Web. Normalerweise variieren die URL-Längen auf einer bestimmten Site und geben somit Informationen zu der URL an, auf die Sie zugreifen. Darüber hinaus variieren auch die Seitenlängen und die Anzahl der Ressourcen, wodurch noch mehr Informationen angezeigt werden.

Es gibt Untersuchungen, die darauf hindeuten, dass diese Leckagen den Lauschern wichtige Informationen darüber geben können, welche Seiten Sie besuchen. Daher sollten Sie nicht davon ausgehen, dass TLS verbirgt, welche Seiten Sie von einem Lauscher besuchen. (Mir ist klar, dass dies nicht intuitiv ist.)


Hinzugefügt: Hier einige Zitate zu einigen Untersuchungen in der Literatur zur Verkehrsanalyse von HTTPS:

81
D.W.

Die zweite Wahl. Meistens.

Wenn ein Browser eine HTTPS-Website besucht, richtet er einen TLS Tunnel ein, der einen asymmetrischen Schlüsselaustausch beinhaltet (Client und Server vereinbaren ein gemeinsames Geheimnis). Dieser Schlüsselaustauschmechanismus verwendet den öffentlichen Serverschlüssel, den der Server als Teil seines Zertifikats anzeigt. Das Serverzertifikat enthält den Servernamen (z. B. A.com) und der Client überprüft, ob der Name mit dem erwarteten übereinstimmt (d. h. dem Servernamen in der URL). Das Serverzertifikat wird tödlich vor dem Schlüsselaustausch gesendet, daher in der Übersicht.

Der Rest der URL wird als Teil der HTTP-Anforderung gesendet, die innerhalb des verschlüsselten Tunnels auftritt und daher für Dritte unsichtbar ist. Ein bestimmter Tunnel kann für mehrere andere HTTP-Anforderungen wiederverwendet werden, aber (konstruktionsbedingt) sind sie alle für denselben Server (denselben Domänennamen).

20
Thomas Pornin