TLS Handshake: как устанавливается защищенное HTTPS-соединение
Разбираем, что такое TLS Handshake, как браузер и сервер устанавливают защищенное HTTPS-соединение и какие этапы проходят до начала шифрованной передачи данных

Paul Jackson
VPN Recruiter

TLS Handshake: как устанавливается защищенное HTTPS-соединение
Каждый раз, когда вы открываете сайт, начинающийся с https://, браузер выполняет несколько действий еще до того, как на экране появится содержимое страницы.
Одно из самых важных — установка защищенного соединения с сервером.
Этот процесс называется TLS Handshake.
Обычно он занимает всего несколько миллисекунд и остается незаметным для пользователя, но именно благодаря ему HTTPS может безопасно передавать данные и подтверждать подлинность сайта.

Что такое TLS Handshake?
TLS Handshake — это процесс согласования защищенного соединения между клиентом (например, браузером) и сервером.
Он происходит до передачи каких-либо данных сайта и позволяет обеим сторонам договориться о параметрах безопасной связи.
Во время Handshake создаются криптографические ключи и определяется, каким образом будет защищен последующий обмен информацией.
TLS Handshake используется не только в HTTPS, но и во многих других протоколах и приложениях, которым требуется зашифрованное соединение.
Без успешного завершения этого этапа установить безопасную HTTPS-сессию невозможно.
Зачем нужен TLS Handshake?
Прежде чем начать обмен зашифрованными данными, браузер и сервер должны согласовать несколько важных параметров.
Во время TLS Handshake они:
- подтверждают подлинность сервера;
- согласовывают версию TLS;
- выбирают используемые криптографические алгоритмы;
- вычисляют общий секрет, из которого будут получены ключи шифрования;
- создают защищенный канал связи.
Только после этого браузер может безопасно отправлять HTTP-запросы и получать ответы от сервера.
TLS Handshake шаг за шагом
Хотя криптография, лежащая в основе TLS, достаточно сложна, общая последовательность действий довольно проста.

Шаг 1. ClientHello
Все начинается с сообщения ClientHello, которое браузер отправляет серверу.
В нем содержится информация о возможностях клиента:
- поддерживаемые версии TLS;
- доступные наборы шифров (Cipher Suites);
- случайное значение Client Random;
- SNI (Server Name Indication);
- ALPN;
- различные TLS-расширения.
Фактически браузер сообщает серверу, какие параметры безопасного соединения он поддерживает.
Шаг 2. ServerHello
В ответ сервер отправляет сообщение ServerHello.
На этом этапе он выбирает:
- версию TLS;
- используемый набор шифров;
- собственное случайное значение (Server Random);
- дополнительные параметры соединения.
После обмена этими сообщениями обе стороны понимают, по каким правилам будет работать защищенное соединение.
Шаг 3. Передача сертификата
Следующим шагом сервер отправляет свой TLS-сертификат.
Этот сертификат подтверждает право использовать запрашиваемый домен и содержит открытую криптографическую информацию о сервере.
Если сертификат отсутствует или признан недействительным, браузер обычно показывает предупреждение о небезопасном подключении.
Шаг 4. Проверка сертификата
Получив сертификат, браузер выполняет его проверку.
Он анализирует:
- соответствует ли сертификат открытому домену;
- не истек ли срок его действия;
- корректна ли цепочка сертификатов;
- выдан ли сертификат доверенным центром сертификации (CA).
Только после успешной проверки процесс продолжается дальше.
Шаг 5. Обмен ключами
Современные версии TLS обычно используют механизм ECDHE для согласования ключей.
Не вдаваясь в математические детали, браузер и сервер независимо вычисляют один и тот же общий секрет (Shared Secret).
На его основе формируются симметричные ключи шифрования, которые будут использоваться в течение всей HTTPS-сессии.
При этом сами ключи никогда не передаются по сети в открытом виде.
Шаг 6. Сообщения Finished
После успешного создания ключей обе стороны обмениваются сообщениями Finished.
Они подтверждают, что TLS Handshake завершен корректно и можно переходить к защищенному обмену данными.
Шаг 7. Передача HTTPS-трафика
Только после завершения TLS Handshake браузер начинает отправлять обычные HTTP-запросы.
Разница заключается в том, что теперь они передаются внутри уже созданного зашифрованного TLS-канала.

Для пользователя весь этот процесс обычно занимает доли секунды и остается полностью незаметным.
TLS 1.2 и TLS 1.3: в чем разница?
За последние годы протокол TLS значительно изменился.
Сегодня TLS 1.3 считается рекомендуемым стандартом.
По сравнению с TLS 1.2 новая версия предлагает несколько важных преимуществ:
- меньше сетевых обменов при установке соединения;
- более быстрое создание защищенной сессии;
- отказ от устаревших алгоритмов шифрования;
- шифрование большей части процесса Handshake;
- улучшенную безопасность и производительность.
В результате уменьшается задержка и повышается общая защищенность соединения.
Как связаны TLS и HTTPS?
TLS и HTTPS тесно связаны между собой, но это не одно и то же.
HTTPS — это обычный протокол HTTP, работающий поверх защищенного TLS-соединения.
Связь между ними можно представить следующим образом:
- браузер устанавливает TCP-соединение;
- поверх него выполняется TLS Handshake;
- после успешного завершения Handshake создается зашифрованный канал;
- уже через этот канал передаются HTTPS-запросы и ответы.

Иными словами, TLS создает безопасное соединение, а HTTPS использует его для передачи веб-трафика.
TLS Handshake и TLS Fingerprinting
Интересно, что сам процесс TLS Handshake может раскрывать информацию о клиенте.
Параметры, передаваемые в сообщении ClientHello, часто используются для построения TLS Fingerprint.
К ним относятся:
- версия TLS;
- поддерживаемые Cipher Suites;
- TLS-расширения;
- порядок этих расширений;
- поддерживаемые эллиптические кривые;
- форматы EC Point;
- ALPN.
При этом SNI обычно не считается частью TLS Fingerprint, поскольку содержит имя запрашиваемого сайта, а не особенности реализации клиента.

Современные антифрод-системы нередко анализируют TLS Fingerprint вместе с Browser Fingerprint, репутацией IP-адреса, поведением пользователя и другими сетевыми сигналами, чтобы оценить, насколько согласованно выглядит вся среда.
Почему TLS Handshake остается таким важным?
Любое современное HTTPS-соединение начинается именно с TLS Handshake.
Хотя пользователь обычно этого не замечает, именно этот процесс:
- подтверждает подлинность сервера;
- создает ключи шифрования;
- защищает передаваемые данные;
- делает возможной безопасную работу HTTPS.
Без TLS Handshake современный интернет выглядел бы совсем иначе и был бы значительно менее защищенным.
FAQ
TLS Handshake выполняется при каждом открытии сайта?
В большинстве случаев — да. Однако повторное использование существующих сессий и современные механизмы оптимизации позволяют сократить количество полных Handshake.
TLS Handshake и HTTPS — это одно и то же?
Нет. TLS создает защищенный канал связи, а HTTPS представляет собой протокол HTTP, работающий поверх этого канала.
Можно ли использовать TLS Handshake для построения цифрового отпечатка?
Да. Некоторые параметры, передаваемые во время Handshake, используются для формирования TLS Fingerprint, который затем может анализироваться вместе с Browser Fingerprint, репутацией IP-адреса и другими сигналами при оценке риска.
Сравнение сервисов
VPN и антидетект-браузеры на одной странице: редакционные оценки, функции и плюсы с минусами рядом.
Сравнить


