Если я сделаю HTTP-запрос:
https://hello.domain.com
будет ли соединение шифровать адрес домена (hello.domain.com
)? Таким образом, анализ трафика по-прежнему не позволяет угадать запрошенный DNS-адрес.
Примечание. Я говорю о DNS-адресе, а не о разрешенном IP-адресе.
Нет.
Чтобы веб-браузер мог определить IP-адрес какого-либо хоста, скажем, example.com
, он должен найти это в DNS, и это отдельное соединение не зашифровано.
Таким образом, SSL / TLS не обеспечивает полной защиты от злонамеренных интернет-провайдеров. Такой злоумышленник все еще может определить, к какому сайту веб-браузер хочет получить доступ, даже если он не может прочитать фактические данные.
Кроме того, текущие реализации TLS всегда будут отправлять полное доменное имя сервера в виде открытого текста для поддержки Индикация имени сервера. Таким образом, злонамеренному интернет-провайдеру даже не нужно смотреть ваши DNS-запросы.
Нет, IP-адрес не будет зашифрован.
Я собирался написать простой пример, используя версию для почтового отделения / конверта, но понял, что только для DNS / HTTPS это стало более запутанным.
Ты можешь видеть http://www.tcpipguide.com/free/t_IPDatagramEncapsulation.htm чтобы получить представление об инкапсуляции.
На изображении ниже, используя ваш пример, будет зашифровано только сообщение верхнего уровня. Все остальные уровни не зашифрованы.
SSL / TLS передает имя хоста (не URL-адрес) в незашифрованном виде во время рукопожатия. URL-адрес (https://domainname.com/bla бла бла ...) зашифровано.
Но сниффер всегда сможет получить информацию об IP и портах. Потому что без этого ваш пакет не может быть доставлен.
Если вам нужно полное шифрование, вам следует подумать об использовании VPN-туннеля с правильной настройкой DNS. Это как минимум защитит вас от прослушивания в вашей локальной сети.
HTTP-запрос выглядит так:
GET /index.html HTTP/1.1
Host: www.domain.com
Для отправки запроса браузер должен сначала разрешить имя домена (в этом случае он должен получить IP-адрес www.domain.com), подключиться к IP-адресу и отправить запрос. Если вы используете https, то содержимое запроса будет зашифровано и его нельзя будет прослушать. Однако запрос к DNS-серверу не будет зашифрован, поэтому можно определить, какие сайты вы просматриваете. Если вы просматриваете http-сайты с использованием HTTP-прокси или VPN, ваш браузер не будет отправлять запросы DNS, поэтому невозможно будет сказать, какие сайты вы просматриваете, или проанализировать ваш трафик.