Открыть сервис

HTTPS-протокол

HTTPS (HyperText Transfer Protocol Secure) — это протокол прикладного уровня передачи данных, обеспечивающий защищённое соединение между клиентом (обычно веб-браузером) и сервером (веб-сайтом) в сети Интернет. HTTPS является расширением протокола HTTP и использует шифрование для обеспечения конфиденциальности, целостности и аутентификации передаваемой информации. Основой HTTPS служат криптографические протоколы TLS (Transport Layer Security) или его предшественник SSL (Secure Sockets Layer), которые инкапсулируют обычный HTTP-трафик.

История развития

Предпосылки и создание

Протокол HTTP, разработанный в начале 1990-х годов, передавал данные в открытом виде, что делало его уязвимым для перехвата и модификации. С ростом коммерческого использования Интернета, особенно в сфере электронной коммерции и онлайн-банкинга, возникла острая необходимость в защите конфиденциальных данных, таких как номера кредитных карт и пароли.

Первая версия HTTPS была разработана компанией Netscape Communications в 1994 году для своего браузера Netscape Navigator. Она базировалась на протоколе SSL 1.0, который, однако, не был опубликован из-за серьёзных уязвимостей. Первой публично доступной версией стал SSL 2.0, выпущенный в 1995 году, но он также содержал недостатки. В 1996 году появился SSL 3.0, который стал более надёжным и широко применялся вплоть до середины 2010-х годов.

Стандартизация TLS

В 1999 году Инженерный совет Интернета (IETF) опубликовал спецификацию TLS 1.0 (RFC 2246), которая стала стандартизированной версией SSL 3.0 с некоторыми улучшениями. Последующие версии TLS 1.1 (2006), TLS 1.2 (2008) и TLS 1.3 (2018) значительно повысили безопасность и производительность. Начиная с 2020 года, многие крупные веб-сайты и браузеры прекратили поддержку устаревших версий TLS 1.0 и 1.1, а также SSL 3.0, из-за известных уязвимостей.

Массовое внедрение

Долгое время HTTPS использовался преимущественно на сайтах, требующих передачи конфиденциальных данных. Однако с середины 2010-х годов начался переход к повсеместному шифрованию. Этому способствовали несколько факторов:

  • Инициатива Let's Encrypt (запущена в 2016 году) — некоммерческий центр сертификации, предоставляющий бесплатные SSL/TLS-сертификаты, что значительно снизило финансовый барьер.
  • Политика поисковых системGoogle и другие поисковики начали учитывать наличие HTTPS как фактор ранжирования, а также помечать незащищённые HTTP-страницы как «небезопасные».
  • Требования браузеров — современные браузеры (Chrome, Firefox, Safari) начали выдавать предупреждения при попытке ввода данных на HTTP-страницах и блокировать некоторые функции (например, геолокацию) на незащищённых сайтах.

Принцип работы

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

Процесс установки HTTPS-соединения включает несколько этапов, известных как «рукопожатие» (TLS handshake):

  1. Клиентское приветствие — браузер отправляет серверу список поддерживаемых версий TLS, наборов шифров и случайное число.
  2. Серверное приветствиесервер выбирает подходящие параметры, отправляет свой цифровой сертификат (содержащий открытый ключ) и своё случайное число.
  3. Проверка сертификата — браузер проверяет подлинность сертификата, используя цепочку доверия к корневому центру сертификации, а также проверяет срок действия и доменное имя.
  4. Выработка сессионного ключа — клиент генерирует предварительный секрет (pre-master secret), шифрует его открытым ключом сервера и отправляет обратно. Сервер расшифровывает его своим закрытым ключом. Обе стороны на основе этого секрета и случайных чисел вычисляют одинаковый сессионный ключ.
  5. Завершение рукопожатия — стороны обмениваются сообщениями, подтверждающими, что дальнейшее общение будет зашифровано сессионным ключом.

После этого весь HTTP-трафик шифруется с использованием симметричного шифрования (например, AES) на основе полученного сессионного ключа.

Роль цифровых сертификатов

Цифровой сертификат (SSL/TLS-сертификат) — это электронный документ, удостоверяющий личность владельца веб-сайта и содержащий его открытый ключ. Сертификаты выдаются центрами сертификации (ЦС), которые проверяют права владельца на домен. Существуют три основных типа сертификатов:

  • DV (Domain Validation) — проверка только права на домен; минимальный уровень проверки.
  • OV (Organization Validation) — дополнительная проверка организации-владельца.
  • EV (Extended Validation) — расширенная проверка, требующая предоставления юридических документов; ранее вызывал отображение зелёной адресной строки в браузере, но с 2019 года эта практика была упрощена.

Отличия от HTTP

ХарактеристикаHTTPHTTPS
ШифрованиеОтсутствуетШифрование TLS/SSL
Порт по умолчанию80443
Аутентификация сервераНетДа (через сертификат)
Целостность данныхНе гарантируетсяГарантируется (MAC-коды)
Скорость (теоретически)Выше (меньше накладных расходов)Ниже (из-за шифрования), но с TLS 1.3 разница минимальна
Видимость в адресной строкеhttp://https:// и значок замка

Криптографические алгоритмы

Шифрование

В HTTPS используются два основных типа шифрования:

  • Асимметричное шифрование (RSA, ECDSA, EdDSA) — применяется на этапе рукопожатия для безопасной передачи предварительного секрета. Открытый ключ распространяется через сертификат, закрытый ключ хранится на сервере.
  • Симметричное шифрование (AES, ChaCha20) — используется для шифрования самого трафика после установления соединения. Ключ вырабатывается в процессе рукопожатия и известен только клиенту и серверу.

Хэширование и аутентификация сообщений

Для обеспечения целостности данных применяются функции хэширования (SHA-256, SHA-384) и коды аутентификации сообщений (HMAC). Каждый передаваемый пакет сопровождается кодом, который позволяет получателю проверить, не был ли он изменён в пути.

Уязвимости и атаки

Несмотря на высокий уровень безопасности, HTTPS не является абсолютно защищённым. Известны следующие типы атак и уязвимостей:

  • Атаки «человек посередине» (MITM) — возможны, если злоумышленник может перехватить сертификат или подменить корневой центр сертификации (например, через вредоносное ПО на устройстве пользователя).
  • Уязвимости в протоколах — например, POODLE (атака на SSL 3.0), BEAST (на TLS 1.0), Heartbleed (уязвимость в OpenSSL). Большинство из них устранены в современных версиях TLS.
  • Атаки на цепочку сертификации — компрометация центра сертификации (как в случае с DigiNotar в 2011 году) позволяет выпускать поддельные сертификаты для любых доменов.
  • SSL Stripping — атака, при которой злоумышленник принудительно понижает соединение до HTTP, если пользователь вводит адрес без указания протокола. Для защиты используется HSTS (HTTP Strict Transport Security).
  • Атаки на основе анализа трафика — даже при шифровании злоумышленник может анализировать размер и время передаваемых пакетов для определения типа контента (например, страницы, которые посещает пользователь).

Применение

Веб-сайты

HTTPS является стандартом для всех современных веб-сайтов, особенно тех, которые обрабатывают личные данные пользователей: интернет-магазины, банки, социальные сети, государственные порталы. По данным статистики, более 90% времени загрузки страниц в браузере Google Chrome приходится на HTTPS-соединения.

API и микросервисы

HTTPS широко используется для защиты API-запросов между серверами, особенно в архитектуре микросервисов. Это предотвращает перехват токенов аутентификации и других чувствительных данных.

Электронная почта и другие протоколы

Хотя HTTPS изначально создавался для веба, его принципы применяются и в других протоколах, таких как SMTPS (SMTP over TLS) для защищённой передачи почты.

Влияние на производительность

Внедрение HTTPS может незначительно увеличивать время загрузки страниц из-за дополнительных этапов рукопожатия и шифрования. Однако современные технологии, такие как TLS 1.3 (сокращающий рукопожатие до одного сетевого оборота) и мультиплексирование HTTP/2, сводят эту разницу к минимуму. Кроме того, HTTPS позволяет использовать более эффективные механизмы кэширования и сжатия, что в некоторых случаях может даже улучшить производительность.

Правовое регулирование в России

В Российской Федерации использование HTTPS регулируется общими нормами о защите информации. Согласно Федеральному закону № 152-ФЗ «О персональных данных», операторы персональных данных обязаны обеспечивать их безопасность, что на практике подразумевает использование HTTPS для веб-сайтов, собирающих личные данные. Также действуют требования к криптографическим алгоритмам, установленные ФСБ России. В 2021 году были введены правила, обязывающие владельцев сайтов, на которых размещается информация, запрещённая к распространению в РФ, использовать HTTPS для идентификации.

Источники

  1. RFC 2818 — HTTP Over TLS (2000)
  2. RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2 (2008)
  3. RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3 (2018)
  4. «HTTPS на практике» — Иван Рыжиков, Дмитрий Комаров (2019)
  5. Документация Let's Encrypt — «How It Works»
  6. Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
  7. Материалы Google Security Blog — «HTTPS as a ranking signal» (2014)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →