Werden alle URLs bei Verwendung der TLS / SSL (HTTPS) -Verschlüsselung verschlüsselt? Ich würde 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 mir keine Sorgen machen, vertrauliche Informationen vor URLs zu verbergen.
ssl
https
httprequest
Daniel Kivatinos
quelle
quelle
https://somewhere_i_trust/ways_to_protest_against_the_government/
. Dann enthält die URL vertrauliche Daten, nämlich den Vorschlag, gegen meine Regierung zu protestieren.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.
quelle
Da niemand eine Kabelaufnahme bereitstellte, ist hier eine.
Der Servername (der Domänenteil der URL) wird im
ClientHello
Paket im Klartext dargestellt .Das Folgende zeigt eine Browseranforderung an:
https://i.stack.imgur.com/path/?some=parameters&go=here
Weitere Informationen zu TLS-Versionsfeldern finden Sie in dieser Antwort (es gibt drei davon - keine Versionen, Felder, die jeweils eine Versionsnummer enthalten!)
Von https://www.ietf.org/rfc/rfc3546.txt :
Zusamenfassend:
FQDN (der Domänenteil der URL) KANN übertragen werden in klar innerhalb der
ClientHello
Pakets , wenn SNI Erweiterung verwendet wirdDer Rest der URL (
/path/?some=parameters&go=here
) hat nichts damit zuClientHello
tun, da die Anforderungs-URL eine HTTP-Sache ist (OSI-Schicht 7), daher wird sie niemals in einem TLS-Handshake (Schicht 4 oder 5) angezeigt. Dies wird später in einerGET /path/?some=parameters&go=here HTTP/1.1
HTTP-Anfrage geschehen , nachdem der sichere TLS-Kanal eingerichtet wurde.ZUSAMMENFASSUNG
Der Domainname kann eindeutig übertragen werden (wenn die SNI-Erweiterung im TLS-Handshake verwendet wird), die URL (Pfad und Parameter) wird jedoch immer verschlüsselt.
MÄRZ 2019 UPDATE
Vielen Dank an carlin.scott , dass Sie dieses Thema angesprochen haben.
Die Nutzdaten in der SNI-Erweiterung können jetzt über diesen Entwurf eines RFC-Vorschlags verschlüsselt werden . Diese Funktion ist nur in TLS 1.3 verfügbar (als Option und es liegt an beiden Enden, sie zu implementieren), und es gibt keine Abwärtskompatibilität mit TLS 1.2 und darunter.
CloudFlare macht es und Sie können hier mehr über die Einbauten lesen - Wenn das Huhn vor das Ei kommen muss, wo legen Sie das Huhn hin?
In der Praxis bedeutet dies, dass der FQDN nicht mehr im Klartext übertragen wird (wie das Wireshark-Capture zeigt), sondern jetzt verschlüsselt ist.
HINWEIS: Dies betrifft mehr den Datenschutzaspekt als den Sicherheitsaspekt, da bei einer umgekehrten DNS-Suche der beabsichtigte Zielhost ohnehin angezeigt werden kann.
quelle
Wie die anderen Antworten bereits gezeigt haben, sind https "URLs" tatsächlich verschlüsselt. Ihre DNS-Anfrage / Antwort beim Auflösen des Domainnamens ist jedoch wahrscheinlich nicht. Wenn Sie einen Browser verwenden, werden möglicherweise auch Ihre URLs aufgezeichnet.
quelle
Die gesamte Anfrage und Antwort wird einschließlich der URL verschlüsselt.
Beachten Sie, dass bei Verwendung eines HTTP-Proxys die Adresse (Domäne) des Zielservers bekannt ist, der angeforderte Pfad auf diesem Server jedoch nicht bekannt ist (dh Anforderung und Antwort werden immer verschlüsselt).
quelle
Ich stimme den vorherigen Antworten zu:
Um explizit zu sein:
Mit TLS der erste Teil der URL ( https://www.example.com/ ) beim Aufbau der Verbindung weiterhin sichtbar. 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-Anforderung einfügen sollten.
Erstens, wie bereits von anderen erwähnt: - Leckage durch die Adressleiste des Browsers - Leckage durch den Verlauf
Darüber hinaus tritt über den http-Referer eine URL aus: Der Benutzer sieht Site A auf 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 der Administrator von Site B kann es aus den Protokolldateien von Server B abrufen.)
quelle
Eine Ergänzung zu der hilfreichen Antwort von Marc Novakowski: Die URL wird in den Protokollen auf dem Server gespeichert (z. B. in / etc / httpd / logs / ssl_access_log). Wenn Sie also nicht möchten, dass der Server die Informationen länger verwaltet Begriff, nicht in die URL einfügen.
quelle
Ja und nein.
Der Serveradressenteil wird 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 häufig verwendet.
Der Pfad, die Abfragezeichenfolge usw. werden verschlüsselt.
Hinweis: Bei GET-Anforderungen kann der Benutzer die URL weiterhin ausschneiden und aus der Positionsleiste einfügen. Möglicherweise möchten Sie dort keine vertraulichen Informationen einfügen, die von jedem gesehen werden können, der auf den Bildschirm schaut.
quelle
Ein Drittanbieter, der den Datenverkehr überwacht, kann die besuchte Seite möglicherweise auch ermitteln, indem er Ihren Datenverkehr untersucht und mit dem Datenverkehr vergleicht, den ein anderer Benutzer beim Besuch der Website hat. Wenn beispielsweise nur zwei Seiten auf einer Site vorhanden sind, von denen eine viel größer als die andere ist, zeigt ein Vergleich der Größe der Datenübertragung, welche Seite Sie besucht haben. Es gibt Möglichkeiten, wie dies vor Drittanbietern verborgen werden kann, aber sie sind kein normales Server- oder Browserverhalten. Siehe zum Beispiel dieses Dokument von SciRate unter https://scirate.com/arxiv/1403.0297 .
Im Allgemeinen sind andere Antworten richtig, obwohl dieses Papier praktisch zeigt, dass besuchte Seiten (dh URL) sehr effektiv bestimmt werden können.
quelle
Sie können sich auch nicht immer auf die Privatsphäre der vollständigen URL verlassen. Beispielsweise werden gelieferte Geräte wie Ihr Unternehmens-PC, wie dies manchmal in Unternehmensnetzwerken der Fall ist, mit einem zusätzlichen "vertrauenswürdigen" Stammzertifikat konfiguriert, sodass Ihr Browser einer Proxy-Überprüfung (Man-in-the-Middle) des https-Verkehrs stillschweigend vertrauen kann . Dies bedeutet, dass die vollständige URL zur Überprüfung verfügbar gemacht wird. Dies wird normalerweise in einem Protokoll gespeichert.
Darüber hinaus werden Ihre Passwörter auch angezeigt und wahrscheinlich protokolliert. Dies ist ein weiterer Grund, einmalige Passwörter zu verwenden oder Ihre Passwörter häufig zu ändern.
Schließlich wird der Anforderungs- und Antwortinhalt auch angezeigt, wenn er nicht anderweitig verschlüsselt ist.
Ein Beispiel für den Inspektionsaufbau wird hier von Checkpoint beschrieben . Auf diese Weise kann auch ein "Internetcafé" im alten Stil mit den mitgelieferten PCs eingerichtet werden.
quelle
Link zu meiner Antwort auf eine doppelte Frage . Die URL ist nicht nur im Browserverlauf verfügbar, die serverseitigen Protokolle werden auch als HTTP-Referer-Header gesendet. Wenn Sie Inhalte von Drittanbietern verwenden, wird die URL Quellen ausgesetzt, die außerhalb Ihrer Kontrolle liegen.
quelle
Es ist jetzt 2019 und die TLS v1.3 wurde veröffentlicht. Laut Cloudflare kann das SNI dank TLS v1.3 verschlüsselt werden. Also sagte ich mir großartig! Mal sehen, wie es in den TCP-Paketen von cloudflare.com aussieht. Also habe ich ein "Client-Hallo" -Handshake-Paket von einer Antwort des Cloudflare-Servers mit Google Chrome als Browser und Wireshark als Paket-Sniffer abgefangen. Ich kann den Servernamen immer noch im Klartext innerhalb des Client-Hallo-Pakets lesen.
Achten Sie also darauf, was Sie lesen können, da dies immer noch keine anonyme Verbindung ist. Eine Middleware zwischen dem Client und dem Server kann jede Domäne protokollieren, die von einem Client angefordert wird.
Es sieht also so aus, als ob die Verschlüsselung des SNI zusätzliche Implementierungen erfordert, um mit TLSv1.3 zusammenzuarbeiten
Der folgende Artikel beschreibt die Verschlüsselung des von Cloudflare als Teil von TLSv1.3 bereitgestellten SNI. Alle HTTP-URLs von cloudflare.com sind jedoch im TCP-Paket unter TLS v1.3 im Klartext enthalten
[ https://blog.cloudflare.com/encrypted-sni/ weibliches [ 3]
quelle
network.security.esni.enabled
, Satznetwork.trr.mode
2 (die zur Zeit Ihre DoH Resolver CloudFlare setzt), und starten Sie den Browser, (sic!) Dann wird ESNI verwendet - sofern dies von der Infrastruktur der Domäne unterstützt wird. Weitere Informationen finden Sie unter blog.mozilla.org/security/2018/10/18/… .Obwohl es hier bereits einige gute Antworten gibt, konzentrieren sich die meisten auf die Browsernavigation. Ich schreibe dies im Jahr 2018 und wahrscheinlich möchte jemand etwas über die Sicherheit mobiler Apps wissen.
Wenn Sie bei mobilen Apps beide Enden der Anwendung (Server und App) steuern, sind Sie sicher , solange Sie HTTPS verwenden . iOS oder Android überprüfen das Zertifikat und mildern mögliche MiM-Angriffe (dies wäre die einzige Schwachstelle in all dem). Sie können vertrauliche Daten über HTTPS-Verbindungen senden, die während des Transports verschlüsselt werden . Nur Ihre App und der Server kennen alle Parameter, die über https gesendet werden.
Das einzige "Vielleicht" hier wäre, wenn Client oder Server mit schädlicher Software infiziert sind, die die Daten sehen kann, bevor sie in https eingeschlossen werden. Wenn jedoch jemand mit dieser Art von Software infiziert ist, hat er Zugriff auf die Daten, unabhängig davon, mit was Sie sie transportieren.
quelle
Wenn Sie eine ReSTful-API erstellen, werden außerdem Probleme mit Browserlecks und http-Verweisen meistens behoben, da der Client möglicherweise kein Browser ist und möglicherweise keine Personen auf Links klicken.
In diesem Fall würde ich die Anmeldung bei oAuth2 empfehlen, um ein Inhaber-Token zu erhalten. In diesem Fall wären die einzigen vertraulichen Daten die anfänglichen Anmeldeinformationen ... die wahrscheinlich sowieso in einer Post-Anfrage enthalten sein sollten
quelle
Obwohl Sie bereits sehr gute Antworten haben, gefällt mir die Erklärung auf dieser Website sehr gut: https://https.cio.gov/faq/#what-information-does-https-protect
Kurz gesagt: Verwenden von HTTPS-Häuten:
quelle