Что такое HTTPS? Чем отличается от обычного HTTP?

Иные формулировки вопроса:
  • Вы подключились к общественной точке wifi. Хакер получил доступ к роутеру и слушает трафик. Верно ли что хакер может получить доступ ко всем данным, которые отсылаются на сайт?
 
🎯 Зачем спрашивают
  • Middle: HTTPS = HTTP + TLS. Шифрует данные, защищает от MITM.
  • Senior: TLS 1.3 handshake, сертификация, downgrade attacks, HSTS, SNI.
 
📝 Ответ
Коротко:
Все зависит от того, какой протокол используется. Если используется https протокол, то атака MITM (Man-in-the-middle attack) не получится из-за TLS шифрования.
 
⚠️
👉 Sensitive данные в query params — технически можно, но крайне нежелательно.
При использовании HTTPS виден домен (и потенциально путь запроса в TLS 1.2).
Но содержимое и query-параметры — шифруются (особенно в TLS 1.3).
Но даже при использовании HTTPS передавать чувствительные данные — например, пароли, токены, номера карт, персональные данные — в query parameters (в строке URL) опасно.
 
1. Они могут попасть в логи
Многие системы (веб-серверы, прокси, аналитика) логируют URL целиком, включая query string.
Пример:
GET /login?username=alex&password=12345
→ пароль окажется в логах сервера, браузера, системы мониторинга и т. д.
2. Они сохраняются в истории браузера
URL с параметрами сохраняется в:
  • истории посещений,
  • закладках,
  • иногда даже автодополнении.
Любой, кто имеет доступ к устройству, может увидеть эти данные.
 
3. Они могут попасть в Referer
Если пользователь перейдёт со страницы с параметрами на другой сайт, браузер может отправить HTTP-заголовок Referer, содержащий полный URL — включая query params.
Таким образом, чужой сайт случайно получит ваши данные.
 
4. Кэширование и прокси
Даже при HTTPS данные могут быть кэшированы на промежуточных узлах (например, в CDN или в браузере).
Это повышает риск утечки.
 
Подробнее:

Как работает HTTPS

HTTPS работает поверх протокола SSL/TLS (Secure Sockets Layer / Transport Layer Security).
Эти технологии:
  • Шифруют передаваемые данные — чтобы никто не мог их перехватить и прочитать (например, пароли или номера карт).
  • Проверяют подлинность сайта — чтобы вы были уверены, что общаетесь именно с нужным сервером, а не с мошенником.
  • Гарантируют целостность данных — чтобы информация не была изменена по пути.
 
💡
Протокол SSL устарел, а актуален только TLS (1.2, 1.3)

Этапы соединения

notion image
 
  1. TLS-рукопожатие (handshake):
      • Браузер и сервер договариваются, каким образом будут шифровать данные.
      • Сервер отправляет цифровой сертификат — подтверждение, что он настоящий.
      • Браузер проверяет этот сертификат (например, выдан ли он авторитетным центром сертификации, не подделан ли).
      Во время handshake используется асимметричное шифрование для обмена сеансовым ключом, после чего данные шифруются симметрично (быстрее).
  1. Обмен ключами:
      • Браузер и сервер создают уникальный сеансовый ключ — с его помощью они будут шифровать все данные.
  1. Передача данных: После этого обмен выглядит так:
    1. ʬÜËï~…Ÿù¼Èþî…
      (в реальности — бессмысленный набор байт, так как всё зашифровано)
 
 
⚖️ Компромиссы
✅ Плюсы
❌ Минусы
Повышает безопасность
Чуть дороже в плане CPU (шифрование/дешифрование).
Поисковики дают приоритет сайтам с HTTPS в результатах поиска.
Требует актуальных сертификатов (DevOps-нагрузка)
 
🔎 Встречные вопросы
  • Что будет, если сертификат самоподписанный?
  • Что такое HSTS?
  • Что такое downgrade attack и как TLS её предотвращает?
 
🚩 Красные флаги
  • HTTPS — просто HTTP через порт 443.
  • SSL и TLS — одно и то же, их можно менять местами.
  • HTTPS полностью скрывает всё, включая URL и домен.
 
🛠 Практика
 
📚 Источники / ссылки
  • IETF DatatrackerIETF DatatrackerRFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
  • web.devweb.devПочему HTTPS важен  |  Articles  |  web.dev