HTTPS-шифрование
HTTPS-шифрование — это технология защиты данных, передаваемых между веб-браузером пользователя и сервером, основанная на протоколах HTTP и TLS/SSL. HTTPS (HyperText Transfer Protocol Secure) обеспечивает шифрование, аутентификацию сервера и целостность передаваемой информации, предотвращая перехват, подмену или чтение данных третьими лицами. В отличие от обычного HTTP, HTTPS использует криптографические протоколы для создания защищённого канала связи.
История развития
Предпосылки создания
Протокол HTTP, разработанный в начале 1990-х годов, передавал данные в открытом виде. Это делало его уязвимым для атак типа «человек посередине» (MITM), при которых злоумышленник мог перехватывать трафик, например, в общественных Wi-Fi-сетях. С развитием электронной коммерции и онлайн-банкинга в середине 1990-х годов возникла острая необходимость в защите конфиденциальных данных, таких как номера кредитных карт и пароли.
Появление SSL и HTTPS
В 1994 году компания Netscape Communications разработала протокол SSL (Secure Sockets Layer) версии 1.0, который вскоре был заменён на SSL 2.0 (1995) и SSL 3.0 (1996). HTTPS стал комбинацией HTTP и SSL, где данные шифровались перед отправкой. Первая версия HTTPS использовала порт 443 по умолчанию, что остаётся стандартом до сих пор.
Переход на TLS
В 1999 году IETF (Internet Engineering Task Force) выпустил стандарт TLS (Transport Layer Security) 1.0, основанный на SSL 3.0, но с улучшенной криптографией. Последующие версии — TLS 1.1 (2006), TLS 1.2 (2008) и TLS 1.3 (2018) — устраняли уязвимости и повышали производительность. SSL 3.0 был признан устаревшим и небезопасным к 2015 году, и современные HTTPS-соединения используют исключительно TLS.
Массовое внедрение
До середины 2010-х годов HTTPS применялся в основном на сайтах, обрабатывающих финансовые данные. Переломным моментом стала инициатива Let’s Encrypt (запущена в 2016 году), предоставляющая бесплатные SSL/TLS-сертификаты. Крупные браузеры, такие как Google Chrome и Mozilla Firefox, начали помечать HTTP-сайты как «небезопасные», что стимулировало владельцев сайтов переходить на HTTPS. По состоянию на 2024 год более 90% веб-трафика в мире шифруется через HTTPS.
Принцип работы
Установление защищённого соединения (рукопожатие)
Процесс HTTPS-соединения начинается с «рукопожатия» (TLS handshake), которое включает несколько этапов:
- Клиентское приветствие: браузер отправляет серверу список поддерживаемых версий TLS, наборов шифров (cipher suites) и случайное число.
- Серверное приветствие: сервер выбирает версию TLS и набор шифров, отправляет свой цифровой сертификат (содержащий открытый ключ) и случайное число.
- Проверка сертификата: браузер проверяет сертификат на подлинность через цепочку доверия к центру сертификации (CA). Если сертификат недействителен, браузер предупреждает пользователя.
- Обмен ключами: клиент генерирует предварительный главный секрет (pre-master secret), шифрует его открытым ключом сервера и отправляет обратно. Сервер расшифровывает его своим закрытым ключом.
- Вычисление сеансовых ключей: обе стороны на основе предварительного секрета и случайных чисел вычисляют симметричные ключи для шифрования данных.
- Завершение рукопожатия: стороны обмениваются сообщениями о готовности, после чего начинается защищённая передача данных.
Шифрование данных
После рукопожатия все данные передаются с использованием симметричного шифрования, которое значительно быстрее асимметричного. Наиболее распространённые алгоритмы: AES (Advanced Encryption Standard) с длиной ключа 128 или 256 бит, ChaCha20. Для обеспечения целостности данных применяются коды аутентичности сообщений (MAC), например HMAC-SHA256.
Аутентификация и целостность
Цифровой сертификат сервера, подписанный центром сертификации, гарантирует, что клиент подключается именно к тому серверу, за который себя выдаёт. Это предотвращает атаки MITM, при которых злоумышленник подменяет сертификат. Контрольные суммы (MAC) в каждом пакете данных позволяют обнаружить любые изменения в передаваемой информации.
Типы сертификатов
По валидации
- DV (Domain Validation): проверяется только право владения доменом. Выдаётся автоматически, часто бесплатно (например, через Let’s Encrypt). Подходит для блогов и информационных сайтов.
- OV (Organization Validation): дополнительно проверяются данные организации (название, адрес). Сертификат содержит название компании. Используется для коммерческих сайтов.
- EV (Extended Validation): наиболее строгая проверка, включающая юридический статус и физическое местоположение организации. В браузере отображается зелёная строка с названием компании. С 2020-х годов популярность EV снижается, так как браузеры (например, Chrome) перестали выделять такие сертификаты визуально.
По количеству доменов
- Однодоменные: защищают один домен (например, example.com).
- Wildcard: защищают домен и все его поддомены (например, *.example.com).
- Multi-Domain (SAN): защищают несколько разных доменов в одном сертификате (например, example.com, example.org, mail.example.com).
Применение
Веб-сайты и веб-приложения
HTTPS является обязательным для любых сайтов, обрабатывающих личные данные: интернет-магазины, банки, социальные сети, почтовые сервисы. Даже для информационных сайтов HTTPS рекомендуется, так как он защищает от внедрения вредоносного кода (например, в общественных Wi-Fi) и улучшает ранжирование в поисковых системах (Google использует HTTPS как фактор ранжирования с 2014 года).
API и микросервисы
HTTPS широко используется для защиты REST API, GraphQL-эндпоинтов и взаимодействия между микросервисами. Это предотвращает утечку токенов аутентификации, ключей API и других конфиденциальных данных.
Электронная почта и мессенджеры
Протоколы SMTP, IMAP и POP3 часто используют STARTTLS — расширение, которое устанавливает TLS-соединение поверх обычного соединения. Многие веб-интерфейсы почты (Gmail, Яндекс.Почта) и мессенджеры (Telegram, WhatsApp) используют HTTPS для шифрования трафика между клиентом и сервером.
IoT и мобильные приложения
Устройства интернета вещей (IoT) и мобильные приложения всё чаще используют HTTPS для связи с облачными серверами, так как протокол TLS обеспечивает стандартизированную защиту, не требующую сложной настройки.
Критика и ограничения
Производительность
Шифрование и дешифрование данных требуют вычислительных ресурсов. На серверах с высокой нагрузкой (миллионы запросов в секунду) это может приводить к увеличению задержки и потреблению CPU. Однако современные процессоры имеют аппаратное ускорение криптографических операций (AES-NI), а протокол TLS 1.3 сократил количество обменов при рукопожатии, что снизило задержки.
Зависимость от центров сертификации
Система доверия основана на центрах сертификации (CA). Если CA скомпрометирован или выдаёт сертификаты мошенникам, это может привести к подмене HTTPS-соединений. Известные инциденты: компрометация DigiNotar (2011) и Comodo (2011). Для снижения рисков применяются Certificate Transparency (CT) — публичные логи всех выданных сертификатов.
Возможность атак на TLS
Несмотря на надёжность, TLS подвержен некоторым атакам:
- POODLE (2014): атака на SSL 3.0, приведшая к его отключению.
- Heartbleed (2014): уязвимость в OpenSSL, позволявшая читать память сервера.
- BEAST (2011): атака на TLS 1.0, устранённая в более новых версиях.
- DROWN (2016): атака на серверы, поддерживающие устаревшие протоколы SSLv2.
Проблемы с сертификатами на устройствах
На старых устройствах (например, смартфонах на Android 4.x или Windows XP) может отсутствовать поддержка современных версий TLS и корневых сертификатов, что затрудняет доступ к HTTPS-сайтам.
Интересные факты
- Порт 443 для HTTPS был зарезервирован IANA в 1994 году.
- Let’s Encrypt, крупнейший центр сертификации, выпустил более 1 миллиарда сертификатов к 2024 году.
- В России использование HTTPS регулируется Федеральным законом «О связи» и «О персональных данных». С 2019 года Роскомнадзор требует от операторов связи использовать DPI (Deep Packet Inspection) для фильтрации трафика, что технически может нарушать шифрование HTTPS, если применяются методы MITM с использованием сертификатов, выданных государственными органами.
- Протокол HTTPS не защищает от атак на уровне приложения (например, SQL-инъекций или XSS), так как шифруется только транспортный уровень, а не содержимое запросов.
Источники
- RFC 2818: HTTP Over TLS (2000)
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 (2018)
- «SSL and TLS: Theory and Practice» — Rolf Oppliger (2016)
- Документация Let’s Encrypt — letsencrypt.org
- Обзор уязвимостей TLS — OpenSSL Security Advisories
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


