Все статьи
Технологии

JA3/JA4-fingerprinting: как ТСПУ ловит VPN-трафик

JA3 и JA4 — это «отпечатки» TLS-handshake. По ним DPI отличает реальный браузер от поддельного VPN-клиента — даже если шифрование одинаковое.

JA3 и JA4 — это методы создания «отпечатка» (fingerprint) TLS-клиента по структуре его ClientHello. Двум разным клиентам с одинаковыми TLS-параметрами соответствует одинаковый fingerprint. Этим пользуются и для детекции ботов, и для детекции VPN.

Что такое ClientHello

TLS-handshake начинается с ClientHello — клиент рассказывает серверу:

  • Поддерживаемые версии TLS.
  • Поддерживаемые cipher suites (наборы шифров).
  • Поддерживаемые расширения (extensions).
  • Поддерживаемые elliptic curves.
  • И ещё несколько мелочей.

Каждый клиент (Chrome, Firefox, Safari, curl, Python requests, openssl) шлёт это в уникальном порядке и с уникальным набором значений.

Как формируется JA3

JA3 берёт несколько полей ClientHello, склеивает их в строку, считает MD5. Получается уникальный идентификатор клиента.

Например, Chrome 120 на Windows даёт один и тот же JA3 каждый раз. Если у кого-то JA3 = JA3-Chrome-120-Windows — это, скорее всего, реальный Chrome 120.

Если у кого-то JA3 = JA3-curl-X.Y — это curl. Если JA3 = JA3-openvpn-2.6-default — это OpenVPN.

JA4 — обновлённая версия

JA4 (с 2023) добавляет больше полей и читаемый формат: t13d1516h2_8daaf6152771_b186095e22b6. Включает:

  • Версию TLS (t13 = TLS 1.3).
  • ALPN (h2 = HTTP/2).
  • Хэш cipher suites.
  • Хэш extensions + signature algorithms.

JA4 более устойчив к простым «перемешиваниям» — обмануть его сложнее.

Как ТСПУ ловит VPN через JA3

1. Собираются JA3-fingerprints популярных VPN-клиентов (старый OpenVPN, MTProto-клиент, Wireguard-over-TLS и т.д.).

2. ТСПУ смотрит JA3 проходящих TLS-соединений.

3. Если JA3 совпадает с известным VPN-клиентом — блок.

В апреле 2026 в РФ зафиксирована именно такая блокировка MTProto-прокси по JA3 ClientHello старых Telegram-клиентов.

Как современные VPN обходят

  • uTLS — библиотека, которая позволяет Go-приложению (на котором написано большинство современных VPN) посылать ClientHello, визуально идентичный Chrome/Firefox/Safari. Получаем JA3 настоящего браузера.
  • VLESS Reality — целиком копирует TLS-handshake выбранного «прикрытия» (типа www.google.com). JA3 совпадает с реальным Google.
  • Свежие клиенты MTProto — подгружают актуальные браузерные ClientHello-шаблоны и шлют их под видом FakeTLS.

Что дальше

Следующий рубеж — это поведенческий fingerprinting: не только TLS, а ещё структура запросов, timing, размеры пакетов. Это уже не отбивается uTLS, нужно «имитировать живого пользователя».

WProxy на стороне сервера регулярно обновляет TLS-fingerprints клиентов под актуальные браузерные версии. Это одна из причин, почему наши протоколы продолжают работать там, где обычные перестают.

Попробовать WProxy

Один аккаунт — пять протоколов

MTProto, Hysteria, VLESS, AmneziaWG и Whitelist — пять протоколов под разные задачи, каждый подключается отдельно. Регистрация бесплатная, на старте хватит 100 ₽ чтобы попробовать.

Приложение WGate для Android

AmneziaWG и Whitelist-VPN в один тап. Только Android.

Скачать WGate.apk

Читать дальше