Когда вы получаете
https://encrypted.google.com/search?q=%s
%s
Зашифрован ли запрос? Или просто ответ? Если это не так, почему Google должен предоставлять свой общедоступный контент также с использованием шифрования?
Когда вы получаете
https://encrypted.google.com/search?q=%s
%s
Зашифрован ли запрос? Или просто ответ? Если это не так, почему Google должен предоставлять свой общедоступный контент также с использованием шифрования?
Ответы:
Весь запрос зашифрован, включая URL-адрес и даже команду ( GET
). Единственное, что может узнать вмешивающаяся сторона, такая как прокси-сервер, - это адрес и порт назначения.
Однако обратите внимание, что пакет Client Hello подтверждения TLS может рекламировать полное доменное имя в виде открытого текста через расширение SNI (спасибо @hafichuk), которое используется всеми современными основными браузерами, хотя некоторые только в новых ОС.
РЕДАКТИРОВАТЬ: (Поскольку это только что принесло мне значок «Хороший ответ», я думаю, я должен ответить на весь вопрос…)
Весь ответ также зашифрован; прокси не могут перехватить какую-либо его часть.
Google обслуживает поисковые запросы и другой контент через https, потому что не весь он является общедоступным, и вы также можете скрыть часть общедоступного контента от MITM . В любом случае лучше позволить Google ответить за себя .
GET
команда) зашифрована. Это
Сам URL-адрес зашифрован, поэтому параметры в строке запроса не передаются по сети.
Однако имейте в виду, что URL-адреса, включающие данные GET, часто регистрируются веб-сервером, тогда как данные POST - редко. Так что, если вы планируете сделать что-то подобное /login/?username=john&password=doe
, не делайте этого; вместо этого используйте POST.
HTTPS Устанавливает базовое соединение SSL перед передачей любых данных HTTP. Это гарантирует, что все данные URL (за исключением имени хоста, которое используется для установления соединения) передаются исключительно в этом зашифрованном соединении и защищены от атак типа «злоумышленник в середине» так же, как и любые данные HTTPS.
Вышесказанное является частью ОЧЕНЬ исчерпывающего ответа от Google Answers, расположенных здесь:
http://answers.google.com/answers/threadview/id/758002.html#answer
Часть URL-адреса после имени хоста отправляется безопасно.
Например, https://somewhere.com/index.php?NAME=FIELD.
/index.php?NAME=FIELD
Часть шифруется. Это somewhere.com
не так.
Все зашифровано, но вы должны помнить, что ваш запрос останется в журналах сервера и будет доступен для различных анализаторов журналов и т. Д. (Что обычно не относится к запросу POST).
Я только что подключился через HTTPS к веб-сайту и передал кучу параметров GET. Затем я использовал wirehark для обнюхивания сети. При использовании HTTP URL-адрес отправляется в незашифрованном виде, что означает, что я могу легко увидеть все параметры GET в URL-адресе. Используя HTTPS, все зашифровано, и я даже не могу увидеть, какой пакет является командой GET, не говоря уже о его содержимом!
Да, это безопасно. SSL шифрует все.
Выдержка из запроса POST:
POST /foo HTTP/1.1
... some other headers
Выдержка из GET-запроса:
GET /foo?a=b HTTP/1.1
... some other headers
В обоих случаях все, что отправляется через сокет, зашифровывается. Тот факт, что клиент видит параметры в своем браузере во время запроса GET, не означает, что человек посередине увидит то же самое.
SSL выполняется перед синтаксическим анализом заголовка, это означает:
Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
Запрос выглядит примерно так (не могу вспомнить точный синтаксис, но это должно быть достаточно близко):
GET /search?q=qwerty HTTP/1.1
Host: www.google.de
По этой же причине наличие разных SSL-сертификатов для нескольких хостов на одном IP-адресе проблематично, запрошенное имя хоста неизвестно до расшифровки.
HTTP/1.1
конце первой строки.
Запрос GET зашифрован при использовании HTTPS - на самом деле, именно поэтому защищенные веб-сайты должны иметь уникальный IP-адрес - нет способа получить предполагаемое имя хоста (или виртуальный каталог) из запроса до тех пор, пока он не будет расшифрован.