TLS-фингерпринтинг считывает форму TLS ClientHello. Сервер видит это сообщение до первого HTTP-запроса, поэтому он может проверить стек соединений, не дожидаясь JavaScript страницы.
JA3 и JA4 преобразуют выбранные поля ClientHello в значения, которые легче сравнивать. Наборы шифров, расширения TLS, поддерживаемые группы и сведения о протоколах могут помочь отличить браузер от мобильного приложения, образца вредоносного ПО или базовой библиотеки HTTP.
Полезная часть — последовательность. Клиент может утверждать, что он Chrome в своем пользовательском агенте. Его рукопожатие TLS по-прежнему должно соответствовать браузеру и версии, лежащей в основе этого утверждения. Если два уровня расходятся во мнениях, запрос заслуживает более тщательного рассмотрения.
Это несоответствие является лишь одним сигналом. Отпечаток TLS описывает стек клиента, а не человека. Хорошие системы риска сравнивают его с историей IP, поведением HTTP и более широким отпечатком браузера.
Что такое TLS-фингерпринтинг?
TLS защищает данные, передаваемые между клиентом и сервером. Прежде чем шифрование будет готово, обе стороны должны согласовать настройки соединения. Клиент начинает это согласование с ClientHello.
Разное программное обеспечение формирует это сообщение узнаваемыми способами. Chrome использует BoringSSL. Firefox использует NSS. Многие скрипты достигают OpenSSL через другую библиотеку. Поддерживаемые ими параметры и шаблоны расширений редко совпадают случайно.
CDN, брандмауэр веб-приложения или исходный сервер могут записывать выбранные поля и группировать соединения с одинаковыми результатами. Ему не нужно расшифровывать страницу или идентифицировать пользователя. Доказательства уже существуют в настройках соединения.
Как работает TLS-фингерпринтинг?
Типичная проверка состоит из пяти шагов.
- Клиент открывает HTTPS-соединение.
- Он отправляет ClientHello с поддерживаемыми параметрами подключения.
- Сервер или CDN считывает выбранные поля из этого сообщения.
- Метод снятия отпечатков пальцев нормализует и суммирует эти поля.
- Система безопасности сравнивает результат с известными шаблонами и другими сигналами запроса.
Изменение пользовательского агента HTTP не перестраивает базовый стек TLS. Таким образом, запрос может требовать одно семейство браузеров при подключении, как и другое приложение.
Это повод проверить запрос, а не повод заблокировать его сразу же. Корпоративные шлюзы, программное обеспечение безопасности, необычные сборки браузеров и посредники TLS — все это может изменить то, что наблюдает сервер.
Какая информация используется в отпечатке TLS?
Форматы отпечатков пальцев выбирают разные поля и правила нормализации. Большинство из них основаны на одних и тех же частях ClientHello.
| Сигнал | Что он описывает | Важный лимит |
|---|---|---|
| TLS-версия | Версии протокола, предлагаемые клиентом | Одна и та же версия используется многими клиентами. |
| Наборы шифров | Криптографические параметры, поддерживаемые клиентом | Список описывает способности, а не человека |
| TLS-расширения | Дополнительные функции, включенные в ClientHello | Современные браузеры могут менять порядок расширений |
| Поддерживаемые группы | Эллиптическая кривая и группы обмена ключами | Результаты могут измениться с обновлениями библиотеки. |
| Алгоритмы подписи | Методы подписи, принятые клиентом | Несколько приложений могут использовать один и тот же список |
| АЛПН | Протоколы приложений, такие как HTTP/2 | Он не описывает полное поведение HTTP. |
| присутствие SNI | Включено ли имя сервера | Компактный отпечаток пальца может не содержать самого имени. |
| Порядок полей и количество | Как клиент структурирует сообщение | Некоторые форматы сортируют поля и отбрасывают порядок |
Значения GREASE также требуют особого обращения. Браузеры добавляют зарезервированные значения, чтобы проверить, смогут ли серверы переносить будущие изменения протокола. И JA3, и JA4 игнорируют эти значения во время обычного расчета отпечатков пальцев.
Эти поля описывают варианты реализации. Два компьютера, на которых установлена одна и та же сборка браузера, могут дать одинаковый нормализованный результат.
Что такое отпечаток пальца JA3?
JA3 — это метод, представленный исследователями Salesforce в 2017 году. Требуется пять упорядоченных групп из ClientHello.
- Версия TLS или SSL
- Принятые наборы шифров
- TLS-расширения
- Поддерживаемые эллиптические кривые
- Форматы точек эллиптической кривой
JA3 объединяет десятичные значения из этих групп в одну строку. Затем он создает 32-значный хэш MD5. Хэш — это компактный ключ поиска. MD5 здесь не используется для защиты пароля или подтверждения целостности данных.
исходный проект JA3 теперь заархивирован. JA3 по-прежнему имеет значение, поскольку от его ценности зависят годы использования сетевых инструментов и анализа угроз.
Его слабость – порядок продления. JA3 сохраняет его, а Chrome начал менять этот порядок соединений в 2023 году. Тогда один браузер мог бы создавать множество хэшей JA3, не меняя при этом своих основных возможностей. Быстро задокументировал эффект в своей сети.
Что такое отпечаток пальца JA4?
JA4 — это новый формат отпечатков клиентов TLS от FoxIO. Это уменьшает шум, создаваемый изменением порядка шифрования и расширения.
Значение JA4 состоит из трех разделов.
| Раздел | Основное содержание |
|---|---|
a | Транспорт, версия TLS, наличие SNI, количество шифров, количество расширений и ALPN. |
b | Короткий хеш отсортированных кодов шифрования |
c | Короткий хэш отсортированных кодов расширения и алгоритмов подписи. |
Сортировка делает JA4 стабильным, когда единственная разница заключается в порядке шифрования или расширения. Он также удаляет этот приказ как доказательство. Группа безопасности, которой нужна исходная последовательность, должна хранить пакет или необработанные данные рукопожатия.
JA4 принадлежит к более широкому проекту по снятию сетевых отпечатков пальцев JA4. JA4 передает клиенту приветствие. JA4S охватывает ответ сервера. JA4H описывает поведение HTTP-клиента. Это отдельные отпечатки пальцев внутри одной семьи.
Для нового конвейера сбора данных JA4 часто является более чистой отправной точкой. JA3 по-прежнему заслуживает своего места, когда имеют значение исторические совпадения и существующие данные об угрозах. Многие команды сохраняют и то, и другое во время перехода.
JA3 против JA4
| Область | JA3 | JA4 |
|---|---|---|
| Вход | TLS-клиентПривет | Клиент TLS, QUIC или DTLS, привет. |
| Выход | Один MD5-хеш | Три структурированных раздела |
| Порядок шифрования | Сохранился | Отсортировано |
| Порядок продления | Сохранился | Отсортировано |
| Значения СМАЗКИ | игнорируется | игнорируется |
| АЛПН | Наличие расширения способствует | Видно короткое представление ALPN. |
| Лучше всего подходит | Историческое сопоставление и существующие данные об угрозах | Современная группировка и частичное сравнение |
Совпадение означает, что выбранные поля рукопожатия дали одинаковое представление. Рассматривайте это как классификацию клиентского программного обеспечения, а не как совпадение личности.
TLS-фингерпринтинг в сравнении с HTTP и Фингерпринтинг браузера
Настоящие системы обнаружения не полагаются на один отпечаток пальца. Они сравнивают сигналы нескольких слоев, и каждый уровень отвечает на отдельный вопрос.
TLS-сигналы
Сигналы TLS описывают, как клиент запускает зашифрованное соединение. Сюда относятся JA3 и JA4. Сервер может проверить их перед запуском кода страницы.
HTTP-сигналы
Сигналы HTTP включают имена заголовков, порядок заголовков, выбор протокола и структуру запроса. HTTP/2 добавляет фреймы SETTINGS, размеры окон и порядок псевдозаголовков. Эти сведения могут помочь в обнаружении TLS, но они получены на другом этапе запроса.
Сигналы браузера
Сигналы браузера поступают из заголовков и API браузера. Шрифты, детали экрана, выходные данные Canvas, Отпечаток пальца WebGL и Аудиофингерпринтинг могут определить, соответствует ли среда страницы сетевому стеку. Большинству этих проверок для запуска требуется код страницы.
Поведенческие сигналы
Поведенческие сигналы описывают, что клиент делает с течением времени. Частота запросов, порядок навигации, история сеансов, ввод с помощью мыши и повторяющиеся действия имеют решающее значение для Обнаружение ботов. Правильное рукопожатие не может сделать подозрительное поведение законным.
Полезное решение приходит на основе согласия между уровнями. Пользовательский агент Chrome, рукопожатие TLS в стиле Chrome, ожидаемые настройки HTTP/2 и работающие API браузера рассказывают последовательную историю. О намерениях человека по-прежнему приходится судить по сеансу и его поведению.
Что может показать отпечаток пальца TLS?
Отпечаток TLS полезен для оценки:
- Похож ли клиент на браузер, приложение, бота или общую HTTP-библиотеку.
- Какая реализация TLS или семейство приложений могли создать соединение?
- Соответствует ли рукопожатие указанному пользовательскому агенту
- Появилась ли ранее схема подключения
- Принадлежит ли трафик к известной группе в базе данных угроз
Это плохое основание для утверждения:
- Имя или личность пользователя
- Владение аккаунтом
- Уникальное физическое устройство
- Точная операционная система в каждом случае
- Является ли запрос вредным
- Используют ли два совпадающих запроса один и тот же оператор
Cloudflare использует JA3 и JA4 внутри управления ботами как часть более крупного набора сигналов. В документации JA3 и JA4 также отмечается, что отпечаток пальца может отсутствовать при незашифрованном запросе или когда возобновление сеанса позволяет избежать нового рукопожатия. По умолчанию отсутствие данных не должно рассматриваться как подозрительное.
Где используется TLS-фингерпринтинг?
Отпечатки TLS приобретают свою ценность в повторяющихся работах по обеспечению безопасности.
- Поиск угроз может группировать зашифрованные соединения из известных семейств вредоносных программ.
- Управление ботами может сравнивать утверждения браузера со стеком соединений.
- Системы борьбы с мошенничеством могут добавить результат в модель риска счета или транзакции.
- Команды API могут отделить ожидаемых клиентов от необычных библиотек.
- Брандмауэры веб-приложений могут отслеживать или ограничивать известные группы отпечатков пальцев.
- Операционные группы могут найти старые или неожиданные реализации TLS.
Забота о конфиденциальности столь же практична. Данные TLS не зависят от файлов cookie или локального хранилища. В сочетании с более широким отпечатком браузера он может поддерживать распознавание при посещении.
Изменяет ли VPN или прокси-сервер отпечаток TLS?
VPN обычно меняет маршрут и общедоступный IP-адрес. Он не перестраивает браузер ClientHello. Пункт назначения по-прежнему видит рукопожатие, созданное браузером.
Стандартный туннель HTTP CONNECT или SOCKS обычно ведет себя таким же образом. Он передает соединение, не прерывая TLS, поэтому клиент по-прежнему взаимодействует напрямую с целью.
Результат меняется, когда посредник завершает TLS и создает новое восходящее соединение. В этом случае пункт назначения видит ClientHello, созданный посредником. Таким же образом могут работать корпоративные инспекционные шлюзы и некоторые управляемые сетевые службы.
Вот почему прокси, VPN и Антидетект Браузер влияют на разные части среды. Пункт назначения видит отпечаток любого программного обеспечения, устанавливающего сеанс TLS, который он получает.
Режим инкогнито также имеет ограниченный эффект. Он изменяет локальное хранилище и историю просмотров. Обычно он не заменяет реализацию TLS браузера.
Как прочитать тест отпечатка пальца TLS
Тестовая страница сообщает о том, что наблюдал ее собственный сервер. Это инструмент сравнения, а не сертификат соответствия.
Используйте контролируемое сравнение.
- Запустите один и тот же тест дважды в одном и том же профиле браузера.
- Запишите версию браузера, протокол, значения JA3 и JA4.
- Перезапустите профиль и повторите тест.
- Проверьте еще раз после обновления браузера или операционной системы.
- Обратите внимание, изменил ли VPN, прокси-сервер или шлюз проверки путь подключения.
Результат становится полезным только тогда, когда известны условия испытаний.
| Результат | Вероятное значение | Что это не доказывает |
|---|---|---|
| Один и тот же JA4 во всех профилях | Нормализованные поля TLS совпали. | Профили одного и того же устройства |
| Новый JA3 при каждом подключении | Порядок продления может меняться | Клиент полностью изменился |
| JA3 или JA4 отсутствует. | Не было подходящего нового подтверждения TLS. | Сайт не может оценить запрос |
| Пользовательский агент и семейство TLS различаются. | Соединение требует большего контекста | Запрос является вредоносным |
Различные испытательные центры могут рассчитывать или отображать значения по-разному. Начните с повторных результатов из одного сервиса, прежде чем сравнивать хэши из других.
TLS-фингерпринтинг и профили браузера
Профиль браузера объединяет среду браузера, файлы cookie, настройки прокси-сервера и соответствующую конфигурацию. MoreLogin пользователи могут выбирать ядро браузера и управлять сигналами, предоставляемыми через API браузера, в настройках профиля. К ним относятся Canvas, WebGL, AudioContext, WebRTC, язык, часовой пояс и мультимедийные устройства.
TLS находится ниже этих настроек API браузера. Изменение вывода Canvas не меняет JA3. Редактирование текста пользовательского агента не приводит к пересозданию ClientHello.
MoreLogin не указывает публично отдельный элемент управления JA3 или JA4 в настройках своего текущего профиля. Таким образом, утверждение о том, что каждый профиль получает уникальный хэш TLS, выходит за рамки доступной информации о продукте. Версия браузера, среда выполнения, протокол, конструкция прокси-сервера и путь подключения — все это влияет на то, что наблюдает сервер.
Для авторизованной командной работы браузер с несколькими учетными записями разделяет файлы cookie, назначения прокси-серверов и среду браузера. Это уменьшает случайное перекрытие профилей. Он не может контролировать, как каждая сторонняя система безопасности классифицирует трафик.
То же ограничение применяется к Автоматизация браузера. Рабочий процесс, выполняемый в реальном браузере, использует сетевой стек, отличный от базовой библиотеки сценариев. Для этого по-прежнему требуется разрешение, разумная частота запросов и надежная обработка ошибок.
TLS-фингерпринтинг Часто задаваемые вопросы
Является ли отпечаток TLS уникальным для одного устройства?
Нет. Обычно он описывает клиентское приложение или группу реализации TLS. Многие устройства, на которых установлена одна и та же сборка браузера, могут иметь один и тот же результат. Обновление также может изменить отпечаток пальца на том же устройстве.
Может ли веб-сайт увидеть мой отпечаток TLS?
Да. Сервер или CDN, который получает соединение, может проверить ClientHello. Тестовая страница может отображать значение, возвращаемое этим сервером.
Изменяет ли смена пользовательского агента JA3 или JA4?
Не сам по себе. Пользовательский агент — это значение HTTP, а JA3 и JA4 – результат рукопожатия TLS. Редактирование одного заголовка не перестраивает сетевой стек.
Почему два браузера могут иметь один и тот же JA4?
JA4 сортирует выбранные списки и группирует похожие рукопожатия. Браузеры с одинаковым движком и возможностями TLS могут использовать общий результат. Это не означает, что браузеры связаны.
Изменяет ли очистка файлов cookie отпечаток TLS?
Нет. В файлах cookie хранятся данные сеанса, а отпечатки TLS создаются при настройке соединения. Сайт может использовать оба, но очистка одного не сбрасывает другой.
Останавливает ли Encrypted Client Hello TLS-фингерпринтинг?
Зашифрованное приветствие клиента защищает конфиденциальные части рукопожатия, включая запрошенное имя сервера. Сеть по-прежнему может видеть внешний ClientHello, а пункт назначения по-прежнему обрабатывает полное соединение. ECH повышает конфиденциальность, не удаляя каждый сигнал TLS.
Ключевой вывод
TLS-фингерпринтинг показывает, как клиент запускает зашифрованное соединение. JA3 остается ценным для исторического сопоставления. С JA4 обычно легче работать, когда современные браузеры меняют порядок списка.
Отпечаток становится значимым, когда он согласуется с сигналами HTTP, браузера, сети, сеанса и поведения. Один хеш может помочь принять решение о риске. Он не должен принимать это решение в одиночку.

RU
