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):
- Клиентское приветствие — браузер отправляет серверу список поддерживаемых версий TLS, наборов шифров и случайное число.
- Серверное приветствие — сервер выбирает подходящие параметры, отправляет свой цифровой сертификат (содержащий открытый ключ) и своё случайное число.
- Проверка сертификата — браузер проверяет подлинность сертификата, используя цепочку доверия к корневому центру сертификации, а также проверяет срок действия и доменное имя.
- Выработка сессионного ключа — клиент генерирует предварительный секрет (pre-master secret), шифрует его открытым ключом сервера и отправляет обратно. Сервер расшифровывает его своим закрытым ключом. Обе стороны на основе этого секрета и случайных чисел вычисляют одинаковый сессионный ключ.
- Завершение рукопожатия — стороны обмениваются сообщениями, подтверждающими, что дальнейшее общение будет зашифровано сессионным ключом.
После этого весь HTTP-трафик шифруется с использованием симметричного шифрования (например, AES) на основе полученного сессионного ключа.
Роль цифровых сертификатов
Цифровой сертификат (SSL/TLS-сертификат) — это электронный документ, удостоверяющий личность владельца веб-сайта и содержащий его открытый ключ. Сертификаты выдаются центрами сертификации (ЦС), которые проверяют права владельца на домен. Существуют три основных типа сертификатов:
- DV (Domain Validation) — проверка только права на домен; минимальный уровень проверки.
- OV (Organization Validation) — дополнительная проверка организации-владельца.
- EV (Extended Validation) — расширенная проверка, требующая предоставления юридических документов; ранее вызывал отображение зелёной адресной строки в браузере, но с 2019 года эта практика была упрощена.
Отличия от HTTP
| Характеристика | HTTP | HTTPS |
|---|---|---|
| Шифрование | Отсутствует | Шифрование TLS/SSL |
| Порт по умолчанию | 80 | 443 |
| Аутентификация сервера | Нет | Да (через сертификат) |
| Целостность данных | Не гарантируется | Гарантируется (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 для идентификации.
Источники
- RFC 2818 — HTTP Over TLS (2000)
- RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2 (2008)
- RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3 (2018)
- «HTTPS на практике» — Иван Рыжиков, Дмитрий Комаров (2019)
- Документация Let's Encrypt — «How It Works»
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
- Материалы Google Security Blog — «HTTPS as a ranking signal» (2014)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


