5

Я использую Wireshark для анализа веб-трафика.

Когда я открываю свой веб-браузер и набираю адрес: stackexchange.com, он сначала выполняет запрос DNS, получает ответ, а затем отправляет пакет TCP Syn на соответствующий IP-адрес на порт 80.

Но когда я набираю www.paypal.com, он делает то же самое, но пакет TCP Syn отправляется непосредственно на порт 443.

Ответ DNS, по-видимому, не включает порт назначения, и нет никакого согласования протокола между моим браузером и целевым сайтом. Как мой браузер узнает порт назначения?

Обратите внимание, что я не набираю http://stackexchange.com или https://www.paypal.com, а просто stackexchange.com и www.paypal.com.

3 ответа3

5

Ваш браузер запоминает порт и протокол предыдущего взаимодействия с сайтом.

Paypal использует HTTP Strict Transport Security. Это означает, что сервер отправил (возможно, через порт 80) заголовок ответа, включая Strict-Transport-Security:max-age=63072000 прежде чем вы даже начали искать. Возраст указан в секундах. Таким образом, в течение следующих двух лет после посещения порта 80 браузеру не нужно будет снова переходить на порт 80; это должно пойти в порт 443. Фактически, последующие посещения порта 443 будут получать ту же инструкцию, поэтому она применяется на неопределенный срок для людей, которые используют Paypal каждый год.

Это улучшение по сравнению с предыдущей схемой, когда каждый запрос на порт 80 получал перенаправление на порт 443, что было медленнее. Полагаться на перенаправления также было менее безопасно, потому что браузер не возражал бы, если бы Paypal (или, скорее, злоумышленник MITM, имитирующий Paypal) внезапно преобразовался из HTTPS в HTTP, если используются перенаправления. Под HTTP Strict Transport Security, этот вид атаки будет гораздо более заметным, так как злоумышленник будет вынужден использовать HTTPS для связи с браузером, но у него нет доступа к любому сертификату сервера HTTPS, выданному Paypal.

0

Браузер обычно сначала пробует HTTP, а затем перенаправляет на HTTPS. Это частый случай, но не единственный.

Chrome и Firefox поддерживают понятие списков предварительной загрузки HTTP Strict Transport Security, которые представляют собой списки сайтов, с которыми следует связываться только через HTTPS, даже если на них ссылается HTTP-URL.

Более подробную информацию можно найти здесь.

-1

Веб-браузер всегда будет запрашивать порт 80, поэтому после того, как все службы ssl будут работать на его серверной стороне, когда клиент подключается к вашей службе, сервер перенаправляет соединение на защищенный или "https".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .