webentwicklung-frage-antwort-db.com.de

Werden GET-Daten auch in HTTPS verschlüsselt?

Wenn du bekommst

https://encrypted.google.com/search?q=%s

Das %s Abfrage ist verschlüsselt? Oder nur die Antwort? Wenn dies nicht der Fall ist, warum sollte Google seine öffentlichen Inhalte auch verschlüsselt bereitstellen?

114
Jader Dias

Die gesamte Anfrage wird verschlüsselt, einschließlich der URL und sogar des Befehls (GET). Das Einzige, was eine Interventionspartei wie ein Proxyserver herausfinden kann, ist die Zieladresse und der Port.

Beachten Sie jedoch, dass das Client-Hallo-Paket eines TLS-Handshakes den vollqualifizierten Domainnamen im Klartext über die Erweiterung SNI anzeigen kann (danke @hafichuk), das von allen modernen Mainstream-Browsern verwendet wird, obwohl einige nur auf neueren Betriebssystemen.

EDIT: (Da ich gerade eine "Gute Antwort" bekommen habe, sollte ich wohl die ganze Frage beantworten ...)

Die gesamte Antwort wird ebenfalls verschlüsselt. Proxies können keinen Teil davon abfangen.

Google stellt Suchanfragen und andere Inhalte über https bereit, da nicht alle Inhalte öffentlich sind. Möglicherweise möchten Sie auch einen Teil der öffentlichen Inhalte vor einem [~ # ~] mitm [~ # ~] . In jedem Fall ist es am besten, Google für sich selbst antworten zu lassen .

131
Marcelo Cantos

Die URL selbst ist verschlüsselt, sodass die Parameter in der Abfragezeichenfolge nicht einfach über die Leitung übertragen werden.

Beachten Sie jedoch, dass URLs, die die GET-Daten enthalten, häufig vom Webserver protokolliert werden, wohingegen POST data nur selten vorkommt. Wenn Sie also etwas wie /login/?username=john&password=doe, dann nicht; Verwenden Sie stattdessen ein POST.

58
Thomas

HTTPS Stellt eine zugrunde liegende SSL-Verbindung her, bevor HTTP-Daten übertragen werden. Auf diese Weise wird sichergestellt, dass alle URL-Daten (mit Ausnahme des Hostnamens, der zum Herstellen der Verbindung verwendet wird) ausschließlich in dieser verschlüsselten Verbindung übertragen werden und vor Man-in-the-Middle-Angriffen genauso geschützt sind wie HTTPS-Daten.

Das Obige ist Teil einer SEHR umfassenden Antwort von Google Answers, die sich hier befindet:

http://answers.google.com/answers/threadview/id/758002.html#answer

20
DVK

Der Teil der URL nach dem Hostnamen wird sicher gesendet.

Beispiel: https://somewhere.com/index.php?NAME=FIELD

Das /index.php?NAME=FIELD Teil ist verschlüsselt. Das somewhere.com ist nicht.

13
levis501

Alles ist verschlüsselt, aber Sie müssen sich daran erinnern, dass Ihre Abfrage in den Protokollen des Servers bleibt und für verschiedene Protokollanalysatoren usw. zugänglich ist (was normalerweise bei POST request) nicht der Fall ist.

Die Verbindung wird verschlüsselt, bevor die Anfrage gesendet wird. Also ja, die Anfrage wird auch verschlüsselt, einschließlich der Abfragezeichenfolge.

4
cHao

Ja, es ist sicher. SSL verschlüsselt alles.

Auszug aus POST Anfrage:

POST /foo HTTP/1.1
... some other headers

Auszug aus der GET-Anfrage:

GET /foo?a=b HTTP/1.1
... some other headers

In beiden Fällen wird alles, was auf dem Socket gesendet wird, verschlüsselt. Die Tatsache, dass der Client sieht Parameter in seinem Browser während einer GET-Anfrage anzeigt, bedeutet nicht, dass ein Mann in der Mitte dasselbe sieht.

3
Darin Dimitrov

Das SSL findet vor dem Parsing der Header statt, das bedeutet:

Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed

Eine Anfrage sieht ungefähr so ​​aus (kann sich nicht an die genaue Syntax erinnern, sollte aber nah genug sein):

GET /search?q=qwerty HTTP/1.1
Host: www.google.de

Dies ist auch der Grund, warum unterschiedliche SSL-Zertifikate für mehrere Hosts auf derselben IP-Adresse problematisch sind. Der angeforderte Hostname ist erst bei der Entschlüsselung bekannt.

3
Morfildur

Ich habe mich gerade über HTTPS mit einer Website verbunden und eine Reihe von GET-Parametern übergeben. Ich habe dann mit Wireshark das Netzwerk beschnuppert. Unter Verwendung von HTTP wird die URL unverschlüsselt gesendet, was bedeutet, dass ich alle GET-Parameter in der URL leicht sehen kann. Mit HTTPS ist alles verschlüsselt und ich kann nicht einmal sehen, welches Paket der GET-Befehl ist, geschweige denn sein Inhalt!

3
Jeff Lamb

Die GET-Anforderung wird bei Verwendung von HTTPS verschlüsselt. Aus diesem Grund müssen gesicherte Websites über eine eindeutige IP-Adresse verfügen. Der beabsichtigte Hostname (oder das virtuelle Verzeichnis) kann erst nach der Entschlüsselung aus der Anforderung abgerufen werden.

0
Michael Burr