Чем HTTPS отличается от HTTP и какие гарантии безопасности он предоставляет?

Ответ

HTTPS (HyperText Transfer Protocol Secure) — это защищенная версия протокола HTTP, которая использует шифрование для обеспечения безопасности передачи данных.

Основное отличие заключается в том, что HTTPS работает поверх криптографического протокола TLS (Transport Layer Security), ранее известного как SSL. Это добавляет три ключевых уровня защиты:

  1. Конфиденциальность (Шифрование): Все данные, передаваемые между клиентом и сервером, шифруются. Это предотвращает их перехват и чтение третьими лицами (атаки типа "man-in-the-middle").
  2. Целостность: Данные защищены от изменений во время передачи. Любая попытка подмены будет обнаружена благодаря проверке криптографической подписи (MAC - Message Authentication Code).
  3. Аутентификация: Сервер подтверждает свою подлинность с помощью SSL/TLS-сертификата, выданного доверенным центром сертификации (CA). Это гарантирует клиенту, что он соединяется именно с тем сайтом, с которым намеревался.

Ключевые технические различия:

Характеристика HTTP HTTPS
Протокол HTTP HTTP поверх TLS/SSL
Порт по умолчанию 80 443
Безопасность Нет шифрования Данные зашифрованы
URL-схема http:// https://
Сертификат Не требуется Требуется SSL/TLS-сертификат

Процесс установки безопасного соединения (упрощенный TLS Handshake) выглядит так:

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