Frage Sind HTTPS-URLs verschlüsselt?


Sind alle URLs verschlüsselt, wenn TLS / SSL (HTTPS) verwendet wird? Ich würde es gerne wissen, weil ich möchte, dass alle URL-Daten bei Verwendung von TLS / SSL (HTTPS) ausgeblendet werden.

Wenn TLS / SSL Ihnen eine vollständige URL-Verschlüsselung bietet, muss ich keine Bedenken haben, vertrauliche Informationen vor URLs zu verbergen.


764
2018-01-31 21:15


Ursprung


Antworten:


Ja, die SSL-Verbindung besteht zwischen der TCP-Schicht und der HTTP-Schicht. Der Client und der Server stellen zuerst eine sichere verschlüsselte TCP-Verbindung her (über das SSL / TLS-Protokoll), und dann sendet der Client die HTTP-Anforderung (GET, POST, DELETE ...) über diese verschlüsselte TCP-Verbindung.


721
2018-01-31 21:17



Da niemand eine Kabelerfassung zur Verfügung gestellt hat, hier ist eine.
Servername (der Domain - Teil der URL) wird in der ClientHello Paket, in einfacher Text.

Folgendes zeigt eine Browser-Anfrage an:
https://i.stack.imgur.com/path/?some=parameters&go=here

ClientHello SNI Siehe diese Antwort Weitere Informationen zu TLS-Versionsfeldern (es gibt 3 davon - keine Versionen, Felder, die jeweils eine Versionsnummer enthalten!)

Von https://www.ietf.org/rfc/rfc3546.txt:

3.1. Servernamenanzeige

[TLS] bietet einem Client keinen Mechanismus, um einen Server zu informieren   der Name des Servers, mit dem er sich verbindet.  Es kann wünschenswert sein für   Kunden, um diese Informationen bereitzustellen, um die Sicherheit zu erleichtern   Verbindungen zu Servern, auf denen mehrere "virtuelle" Server gehostet werden   einzelne zugrunde liegende Netzwerkadresse.

Um den Servernamen anzugeben, können Clients ein   Erweiterung des Typs "Servername" im (erweiterten) Client Hallo. 


Zusamenfassend:

  • FQDN (der Domain-Teil der URL) KANN übertragen werden in klar innerhalb der ClientHello Paket, wenn SNI-Erweiterung verwendet wird

  • Der Rest der URL (/path/?some=parameters&go=here) hat kein Geschäft drinnen ClientHello Da die Anfrage-URL eine HTTP-Sache ist (OSI-Schicht 7), wird sie daher niemals in einem TLS-Handshake (Schicht 4 oder 5) angezeigt. Das kommt später in einem GET /path/?some=parameters&go=here HTTP/1.1 HTTP-Anfrage, NACH das sichern TLS-Kanal ist eingerichtet.


ZUSAMMENFASSUNG

Domainname kann in clear übertragen werden (wenn die SNI-Erweiterung im TLS-Handshake verwendet wird), aber URL (Pfad und Parameter) ist immer verschlüsselt.


275
2017-08-02 18:26



Als die andere  Antworten bereits hingewiesen, https "URLs" sind tatsächlich verschlüsselt. Allerdings ist Ihre DNS-Anfrage / -Antwort beim Auflösen des Domain-Namens wahrscheinlich nicht, und natürlich, wenn Sie einen Browser verwenden, könnten Ihre URLs auch aufgezeichnet werden.


138
2018-01-31 21:26



Die gesamte Anfrage und Antwort ist verschlüsselt, einschließlich URL.

Beachten Sie, dass bei Verwendung eines HTTP-Proxys die Adresse (Domäne) des Zielservers bekannt ist, aber der angeforderte Pfad auf diesem Server nicht bekannt ist (d. H. Anforderung und Antwort sind immer verschlüsselt).


93
2018-01-31 21:17



Ich stimme den vorherigen Antworten zu:

Um explizit zu sein:

Mit TLS wird der erste Teil der URL (https://www.example.com/) ist immer noch sichtbar, da es die Verbindung aufbaut. Der zweite Teil (/ herearemygetparameters / 1/2/3/4) ist durch TLS geschützt.

Es gibt jedoch eine Reihe von Gründen, warum Sie keine Parameter in die GET-Anfrage einfügen sollten.

Erstens, wie bereits von anderen erwähnt: - Leckage durch Browser-Adressleiste - Durchsickern durch Geschichte

Darüber hinaus haben Sie eine URL-Leckage über den http-Referrer: Der Benutzer sieht Site A in TLS und klickt dann auf einen Link zu Site B. Wenn sich beide Sites in TLS befinden, enthält die Anforderung an Site B die vollständige URL von Site A in der Referer-Parameter der Anfrage Und Administrator von Site B kann es aus den Protokolldateien von Server B abrufen.)


84
2017-07-28 06:49



Ein Zusatz zur hilfreichen Antwort von Marc Novakowski - die URL wird in den Protokollen auf dem Server gespeichert (zB in / etc / httpd / logs / ssl_access_log), also wenn der Server die Informationen nicht länger verwalten soll Begriff, nicht in die URL eingeben.


45
2017-11-02 14:03



Ja und nein.

Der Serveradressabschnitt ist NICHT verschlüsselt, da er zum Einrichten der Verbindung verwendet wird.

Dies kann sich in Zukunft mit verschlüsseltem SNI und DNS ändern, aber ab 2018 werden beide Technologien nicht mehr verwendet.

Der Pfad, die Abfragezeichenfolge usw. sind verschlüsselt.

Hinweis für GET-Anfragen: Der Benutzer kann weiterhin die URL aus der Adressleiste herausschneiden und einfügen. Wahrscheinlich möchten Sie dort keine vertraulichen Informationen ablegen, die für jeden sichtbar sind, der auf den Bildschirm schaut.


16
2018-01-31 21:20



Ein Drittanbieter, der den Datenverkehr überwacht, kann möglicherweise auch die besuchte Seite ermitteln, indem er Ihren Datenverkehr untersucht und ihn mit dem Datenverkehr vergleicht, den ein anderer Nutzer beim Besuch der Website hat. Wenn beispielsweise nur zwei Seiten auf einer Site vorhanden sind, eine viel größere als die andere, würde ein Vergleich der Größe der Datenübertragung zeigen, welche Seite Sie besucht haben. Es gibt Möglichkeiten, dies vor dem Drittanbieter zu verbergen, aber sie sind kein normales Server- oder Browserverhalten. Siehe zum Beispiel dieses Papier von SciRate, https://scirate.com/arxiv/1403.0297.

Im Allgemeinen sind andere Antworten korrekt, obwohl dieses Papier praktisch zeigt, dass die besuchten Seiten (dh URL) ziemlich effektiv bestimmt werden können.


7
2017-08-14 16:03



Verknüpfung mit meiner Antwort auf a doppelte Frage. Die URL ist nicht nur in der Browserhistorie verfügbar, sondern auch auf der Serverseite. Sie wird auch als HTTP-Referer-Header gesendet. Wenn Sie Inhalte von Drittanbietern verwenden, wird die URL Quellen außerhalb Ihrer Kontrolle zugänglich gemacht.


3
2018-04-15 15:28