https

https

HTTPS

HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности. Данные в протоколе передаются поверх криптографических протоколов TLS или устаревшего в 2015 году SSL. В отличие от HTTP с TCPпортом 80, для HTTPS по умолчанию используется TCP-порт 443.

Протокол разработан компанией Netscape Communications для браузера Netscape Navigator в 1994 году.

Он работает благодаря SSL/TLS-сертификату. SSL/TLS-сертификат ― это цифровая подпись сайта. С её помощью подтверждается его подлинность. Перед тем как установить защищённое соединение, браузер запрашивает этот документ и обращается к центру сертификации, чтобы подтвердить легальность документа. Если он действителен, то браузер считает этот сайт безопасным и начинает обмен данными. Вот откуда взялась и что означает S.

Сначала HTTP (HyperText Transfer Protocol) использовался только как протокол передачи гипертекста (текста с перекрёстными ссылками). Однако позже стало понятно, что он отлично подходит для передачи данных между пользователями. Протокол был доработан для новых задач и стал использоваться повсеместно.

Несмотря на свою функциональность у HTTP есть один очень важный недостаток ― незащищённость. Данные между пользователями передаются в открытом виде, злоумышленник может вмешаться в передачу данных, перехватить их или изменить. Чтобы защитить данные пользователей, был создан протокол HTTPS.

Схема работы

Итак, протокол HTTPS предназначен для безопасного соединения. Чтобы понять, как устанавливается это соединение и как работает HTTPS, рассмотрим механизм пошагово.

Для примера возьмём ситуацию: пользователь хочет перейти на сайт styleall.ru, который работает по безопасному протоколу HTTPS.

  • Браузер и сайт передают зашифрованную информацию.
  • Браузер и сайт договариваются о симметричном ключе при помощи асимметричного шифрования.
  • Браузер проверяет подлинность сертификата в центре сертификации.
  • Сайт на HTTPS отправляет сертификат.
  • Браузер пользователя просит предоставить SSL-сертификат.

Уязвимости 

Совместное использование HTTP и HTTPS

Когда сайты используют смешанную функциональность HTTP и HTTPS, это потенциально приводит к информационной угрозе для пользователя. Например, если основные страницы некоторого сайта загружаются, используя HTTPS, а CSS и JavaScript загружаются по HTTP, то злоумышленник в момент загрузки последних может подгрузить свой код и получить данные HTML-страницы. Многие сайты, несмотря на такие уязвимости, загружают контент через сторонние сервисы, которые не поддерживают HTTPS. Механизм HSTS позволяет предотвратить подобные уязвимости, заставляя принудительно использовать HTTPS соединение даже там, где по умолчанию используется HTTP.