BreakHub
К обзору отпечатка
Лаборатория отпечатков браузера

TLS-отпечаток

Уже в самом первом пакете HTTPS-соединения (ClientHello) браузер перечисляет поддерживаемые наборы шифров, расширения и эллиптические кривые. Хэш этих полей дает JA3 / JA4; кадр SETTINGS, открывающий HTTP/2-соединение, можно снять таким же образом. Все это происходит до выполнения любого JavaScript, и смена UA ничего здесь не меняет.

Выполняется…
Результат
Подробности
JA4
Хэш JA3
Строка JA3
Отпечаток HTTP/2
Версия TLS
Источник
Наблюдалось на
Браузер по разбору сервера
Встречался здесь раз
Впервые замечен
Наблюдений этого JA4
Доля того же семейства браузеров
Браузеры с этим JA4
Что это значит

JA3 (Salesforce, 2017) склеивает версию TLS, наборы шифров, расширения, кривые и форматы точек в исходном порядке и берет MD5 — переставьте что угодно, и хэш изменится. Начиная с Chrome 110 порядок расширений перемешивается при каждом соединении, поэтому JA3 одного и того же Chrome почти каждый раз разный. JA4 (FoxIO, 2023) сортирует перед хэшированием (усеченный SHA-256) и выносит версию TLS, SNI, ALPN и счетчики в читаемый префикс вроде t13d1516h2, что делает его очень стабильным внутри семейства браузеров: у всех браузеров на Chromium (Chrome, Edge, Brave…) один JA4, у Firefox и Safari — свои. Сайты сравнивают JA4 с UA: UA, заявляющий Firefox при рукопожатии, похожем на Chrome, — это инструмент автоматизации или антидетект-браузер с подмененным UA; этот сайт делает то же сравнение по собственной статистике JA4 ↔ семейство браузеров. Чтобы вообще увидеть отпечаток, сервер должен сам завершать TLS: на хосте за прокси Cloudflare (оранжевое облако) рукопожатие происходит на границе Cloudflare, и источник видит только отпечаток самого Cloudflare (JA4 Cloudflare отдает только клиентам Enterprise). Поэтому fingerproxy работает на отдельном хосте только с DNS (серое облако), к которому браузер один раз обращается cross-origin; если этот эндпоинт недоступен, используется сторонний check.ja3.zone, который дает только JA3.