Шаг 1. ClientHello
Все

TLS Handshake: как устанавливается защищенное HTTPS-соединение

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

3 мин чтения
Paul Jackson

Paul Jackson

VPN Recruiter

TLS handshake

TLS Handshake: как устанавливается защищенное HTTPS-соединение

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

Одно из самых важных — установка защищенного соединения с сервером.

Этот процесс называется TLS Handshake.

Обычно он занимает всего несколько миллисекунд и остается незаметным для пользователя, но именно благодаря ему HTTPS может безопасно передавать данные и подтверждать подлинность сайта.

HTTPS connection establishment from browser to website through TLS Handshake

Что такое TLS Handshake?

TLS Handshake — это процесс согласования защищенного соединения между клиентом (например, браузером) и сервером.

Он происходит до передачи каких-либо данных сайта и позволяет обеим сторонам договориться о параметрах безопасной связи.

Во время Handshake создаются криптографические ключи и определяется, каким образом будет защищен последующий обмен информацией.

TLS Handshake используется не только в HTTPS, но и во многих других протоколах и приложениях, которым требуется зашифрованное соединение.

Без успешного завершения этого этапа установить безопасную HTTPS-сессию невозможно.

Зачем нужен TLS Handshake?

Прежде чем начать обмен зашифрованными данными, браузер и сервер должны согласовать несколько важных параметров.

Во время TLS Handshake они:

  • подтверждают подлинность сервера;
  • согласовывают версию TLS;
  • выбирают используемые криптографические алгоритмы;
  • вычисляют общий секрет, из которого будут получены ключи шифрования;
  • создают защищенный канал связи.

Только после этого браузер может безопасно отправлять HTTP-запросы и получать ответы от сервера.

TLS Handshake шаг за шагом

Хотя криптография, лежащая в основе TLS, достаточно сложна, общая последовательность действий довольно проста.

Step by step TLS Handshake process from ClientHello to encrypted HTTPS traffic

Шаг 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-канала.

TCP connection followed by TLS Handshake and encrypted HTTP request

Для пользователя весь этот процесс обычно занимает доли секунды и остается полностью незаметным.

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-запросы и ответы.
HTTPS protocol operating on top of TLS secure connection

Иными словами, TLS создает безопасное соединение, а HTTPS использует его для передачи веб-трафика.

TLS Handshake и TLS Fingerprinting

Интересно, что сам процесс TLS Handshake может раскрывать информацию о клиенте.

Параметры, передаваемые в сообщении ClientHello, часто используются для построения TLS Fingerprint.

К ним относятся:

  • версия TLS;
  • поддерживаемые Cipher Suites;
  • TLS-расширения;
  • порядок этих расширений;
  • поддерживаемые эллиптические кривые;
  • форматы EC Point;
  • ALPN.

При этом SNI обычно не считается частью TLS Fingerprint, поскольку содержит имя запрашиваемого сайта, а не особенности реализации клиента.

TLS ClientHello fields used for TLS Fingerprinting

Современные антифрод-системы нередко анализируют 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-адреса и другими сигналами при оценке риска.

Готовы повысить приватность?

Включите WhoVPN, чтобы шифровать трафик и скрывать IP в один клик.

Попробовать за 1$
Больше по теме

Последние статьи

Все
Онлайн-конфиденциальностьЧитать обязательно

Что такое ASN (Autonomous System Number) и почему сайты обращают на него внимание

Разбираем, что такое ASN (Autonomous System Number), как автономные системы работают через BGP, почему сайты анализируют ASN и как он влияет на оценку доверия к сетевому соединению.

7 мин чтения
Браузерный фингерпринтингЧитать обязательно

Что такое Audio Fingerprinting и как сайты идентифицируют браузер

Разбираем, что такое Audio Fingerprinting, как работает Web Audio API, почему аудиоотпечаток отличается на разных устройствах и как этот сигнал используется в Browser Fingerprinting и антифрод-системах.

5 мин чтения