Безопасность
TLS Fingerprinting: как тебя вычисляют по отпечатку браузера и VPN-клиента
Что такое TLS-отпечаток JA3/JA4, как DPI вычисляет VPN-клиент по ClientHello, почему Xray на Go палится без fingerprint и как блокировку MTProxy 1 апреля 2026 сделали через JA3.
Вступление
Распространённое заблуждение: «Я использую зашифрованный VPN — значит, никто не знает, что я делаю». В отношении содержимого это верно. Но есть кое-что, что остаётся видимым даже при идеальном шифровании — и что в 2026 году положило тысячи серверов.
Это TLS Fingerprint — отпечаток вашего TLS-клиента, который передаётся в открытом виде ещё до начала шифрования.
Коротко. В начале каждого HTTPS-соединения клиент шлёт ClientHello с набором шифров, расширений и кривых — в открытом виде. Эта комбинация уникальна для приложения: Chrome выглядит как Chrome, Xray без маскировки — как Xray. DPI хеширует её (JA3/JA4) и сверяет с базой. Именно так 1 апреля 2026 года одномоментно «легли» MTProxy Telegram. Ответ — uTLS-подмена отпечатка под реальный браузер (
fingerprint: chrome).
Что такое TLS и зачем ему «отпечаток»
TLS-соединение начинается с рукопожатия. Клиент отправляет серверу ClientHello — пакет с параметрами: версии TLS, наборы шифров (cipher suites), расширения, параметры эллиптических кривых, ALPN. Всё это передаётся до начала шифрования — в открытом виде, потому что стороны ещё только договариваются, как шифровать.
Разные клиентские приложения передают разные наборы и, что важно, в разном порядке. Эти комбинации достаточно уникальны, чтобы служить «отпечатком» клиента — даже не видя содержимого.
JA3: хэш из ClientHello
JA3 берёт конкретные поля из ClientHello (версия TLS, список шифров, расширения, кривые, форматы точек), склеивает их через запятые и дефисы и берёт MD5-хэш. Результат — 32-символьная строка.
JA3 Chrome — один хэш. JA3 Firefox — другой. JA3 Xray без настроек — третий, давно известный в базах детекции.
Аналогия: каждый автомобиль оставляет отпечаток протектора. По нему можно определить модель шин — не открывая капот и не зная, кто за рулём.
JA4: улучшенная версия
JA4 (2023, FoxIO) чинит слабые места JA3: заменяет MD5 на более устойчивую схему, добавляет отдельные варианты для TCP и QUIC и сортирует cipher suites перед хэшированием. Последнее закрывает тривиальную атаку — раньше можно было просто переставить шифры местами и получить другой JA3; с JA4 это не работает.
Как это используют для блокировки: кейс MTProxy
Лучшая иллюстрация — то, что произошло 1 апреля 2026 года.
MTProxy Telegram использует механизм Fake-TLS: трафик оборачивается так, чтобы начало соединения выглядело как TLS 1.3-рукопожатие к легитимному домену. Годами ТСПУ принимали это за обычный HTTPS и пропускали.
В марте 2026 года ТСПУ получили обновлённые правила на основе JA3/JA4. Система заметила то, что Fake-TLS скрыть не мог: ClientHello «заявляет» один клиент, а реальный отпечаток не совпадает ни с одной живой версией браузера. 1 апреля тысячи MTProxy-серверов «отвалились» одновременно по всей стране — смена портов и серверов перестала помогать. Ровно тот же принцип бьёт по VLESS без маскировки.
Почему это сложно обойти
JA3-отпечаток определяется реализацией TLS в конкретной библиотеке. Xray написан на Go и использует crypto/tls — у неё свой набор и порядок параметров, отличный от Chrome. Поменять JA3 «под Chrome» означает буквально подменить весь TLS-стек.
Именно это делает технология uTLS: параметр fingerprint: chrome в Xray заменяет стандартное Go-овское ClientHello на точную имитацию Chrome. Но «имитация» — не «навсегда идентична»: Chrome обновляется, и устаревший отпечаток со временем снова начинает выделяться. Отсюда правило — регулярно обновлять Xray-core.
Практические выводы
Для пользователей: выбирайте VPN-сервисы, которые явно поддерживают актуальные TLS-отпечатки и обновляют клиент. Устаревший fingerprint — частая скрытая причина, по которой «вроде нормальный» VPN падает раньше других. В ORLAN VPN fingerprint обновляется вместе с релизами Xray-core.
Для администраторов: всегда указывайте fingerprint: chrome (это клиентский параметр uTLS, в outbound). Проверяйте свой JA3 на scrapfly.io/web-scraping-tools/ja3-fingerprint — сначала из браузера, потом через Xray-клиент: хэши должны быть близкими. Обновляйте Xray-core регулярно. Подробнее о других слоях детекции — в статье «Что такое DPI».
Частые вопросы
TLS-отпечаток виден, даже если трафик зашифрован? Да. ClientHello передаётся до шифрования, поэтому отпечаток клиента виден всегда — независимо от того, насколько надёжно зашифровано содержимое внутри.
Достаточно поставить fingerprint: chrome и забыть?
Нет. Отпечаток Chrome меняется с версиями браузера. Без обновления Xray-core имитация устаревает и снова начинает выделяться на фоне реальных клиентов.
Почему MTProxy легли, а хорошо настроенный VLESS+Reality — нет? Reality берёт настоящий fingerprint и проксирует рукопожатие к реальному сайту-донору, поэтому на отпечатке не палится. Его слабое место — другой слой, поведенческий анализ (см. «VLESS + Reality»).
Вывод
TLS Fingerprinting — не теоретическая угроза, а реальный инструмент, который в 2026 году положил тысячи серверов одним обновлением правил.
Зашифровать трафик — необходимо, но недостаточно. Нужно ещё скрыть «почерк» клиента: сделать так, чтобы TLS-отпечаток был неотличим от настоящего браузера — и оставался таким по мере его обновлений.
ORLAN VPN использует актуальный fingerprint Chrome с регулярным обновлением: Xray-core обновляется автоматически, пользователю не нужно следить за версиями вручную. Подробнее на orlanvpn.com.