Отличие HTTP от HTTPS на примере авторизации

Узнай, как HTTPS шифрует логин-пароль, а HTTP орёт их всему интернету. Примеры, картинки, минутное чтение!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Каждый раз, вводя логин и пароль на сайте, мы доверяем сервису свои персональные данные.
Но мало кто задумывается, как именно эти данные передаются от браузера к серверу.
В основе передачи лежат протоколы HTTP и HTTPS, и разница между ними,
это разница между «открытым конвертом» и «запечатанным пакетом с сургучной печатью».
Разберёмся на живом примере авторизации.

Что такое HTTP и HTTPS в двух словах

  • HTTP (HyperText Transfer Protocol) — это протокол передачи данных в «открытом виде».
    Любой, кто имеет доступ к сети, может прочитать передаваемую информацию.
  • HTTPS (HTTP Secure), это HTTP + шифрование (TLS/SSL).
    Данные «упаковываются» в криптографический туннель, и даже если их перехватят,
    расшифровать без секретного ключа не получится.

Авторизация по HTTP: демонстрация уязвимости

2.1 Как выглядит процесс без шифрования

  1. Пользователь заходит на сайт http://vulnerable-shop.ru/login.
  2. Форма авторизации отправляет POST-запрос:
    POST /login HTTP/1.1
    Host: vulnerable-shop.ru
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 32
    username=bob&password=Alice123!
     
  3. Данные летят по сети в открытом тексте.

2.2 Что может пойти не так

Любой злоумышленник в той же Wi-Fi-сети, используя простой сниффер (например,
Wireshark), видит:

  • логин bob
  • пароль Alice123!
  • cookie сессии, которую можно «подсунуть» браузеру и войти без логина/пароля.

Авторизация по HTTPS: как всё защищено

3.1 Установление защищённого соединения (рукопожатие TLS)

  1. Браузер запрашивает у сервера цифровой сертификат.
  2. Сервер присылает публичный ключ и данные о владельце.
  3. Браузер проверяет подлинность сертификата (подпись центра сертификации).
  4. Стороны генерируют общий секретный ключ для симметричного шифрования.

3.2 Пример защищённого запроса

POST /login HTTP/1.1
Host: secure-shop.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 224

EncryptedBody: 0x7f8a4b9c2e...

Внутри шифрованного туннеля видны только нечитаемые байты.
Даже если злоумышленник перехватит траффик, он не сможет:

  • расшифровать логин/пароль;
  • подменить данные без нарушения контрольной суммы;
  • выполнить атаку «человек посередине» (MITM).

Визуальное сравнение

Критерий HTTP HTTPS
Шифрование трафика ❌ отсутствует ✅ TLS 1.2/1.3
Индикатор в браузере «Не безопасно» 🔒 «Защищённое соединение»
Возможность MITM легко крайне затруднительно
SEO-рейтинг Google понижается повышается

Как узнать, что сайт защищён, перед авторизацией

  1. Посмотрите адресную строку: должен быть префикс https://;
  2. Нажмите на иконку 🔒 → «Сертификат» → убедитесь, что имя владельца совпадает с доменом.
  3. Проверьте наличие HSTS-заголовка: в консоли DevTools → Network →
    strict-transport-security: max-age=31536000.

Мини-чек-лист для разработчика

  • Никогда не отправляйте пароли по HTTP, даже на внутренних страницах.
  • Используйте HTTP-only и Secure cookie-флаги, чтобы защитить сессию.
  • Настройте автоматический редирект с http → https.
  • Обновляйте TLS до актуальной версии (1.2+).

Авторизация по HTTP — это как голосовать «открытым бюллетенем»:
каждый в сети видит ваш логин и пароль.
HTTPS же превращает ваши данные в неразборчивый поток байтов,
доступный только вам и серверу.
Поэтому, прежде чем вводить свои учётные данные, просто проверьте:
горит ли замочек в адресной строке?
Если нет — лучше закройте вкладку и никуда не заходите.