Все статьиТехническое11 мин

TLS Fingerprinting: как антибот-системы обнаруживают скреперы

Глубокое погружение в TLS-fingerprinting, JA3/JA4-хеши и методы обнаружения скреперов через анализ TLS Client Hello. Как это работает и как защититься.

Команда InfraProxy

22 января 2026 г.

#TLS#fingerprinting#JA3#JA4#антибот#безопасность

Что такое TLS Fingerprinting

TLS Fingerprinting (отпечаток TLS) — это метод идентификации клиента на основе параметров TLS-рукопожатия (handshake), таких как версия протокола, список шифров и расширения в сообщении Client Hello. Антибот-системы (например, Cloudflare) используют этот отпечаток для безошибочного отличия скриптов веб-скрейпинга от реальных браузеров, блокируя автоматизированные запросы.

Когда ваш браузер (или скрипт) устанавливает HTTPS-соединение с сервером, первым шагом является TLS-рукопожатие (handshake). В этом процессе клиент отправляет сообщение Client Hello, которое содержит:

  • Поддерживаемые версии TLS
  • Список шифров (cipher suites) в определённом порядке
  • Расширения TLS и их параметры
  • Поддерживаемые эллиптические кривые
  • Алгоритмы подписи

Каждый HTTP-клиент (браузер, библиотека, инструмент) формирует Client Hello по-своему. Эта уникальная комбинация параметров и есть TLS-отпечаток.

JA3: стандарт TLS-fingerprinting

JA3 — метод создания отпечатка из параметров Client Hello:

  1. Извлекаются: версия TLS, cipher suites, расширения, эллиптические кривые, форматы точек
  2. Значения конкатенируются через запятую
  3. Результат хешируется MD5

Результат: 32-символьный хеш, уникальный для каждого типа клиента.

Примеры JA3-хешей

  • Chrome 120 на Windows: один хеш
  • Firefox 121 на macOS: другой хеш
  • Python requests: третий, совершенно отличный хеш
  • curl: ещё один

Антибот-система видит JA3-хеш и сразу понимает, какой клиент обращается. Если хеш говорит «Python requests», а User-Agent — «Chrome» — это мгновенная блокировка.

JA4: эволюция fingerprinting

JA3 имеет слабость: порядок расширений TLS может варьироваться. Скреперы научились перемешивать расширения, меняя JA3-хеш без изменения функциональности.

JA4 решает это, сортируя расширения по алфавиту перед хешированием. Теперь перемешивание не помогает — хеш остаётся стабильным.

Дополнительно JA4 включает:

  • Тип протокола (QUIC/TLS)
  • Версию TLS
  • Количество шифров и расширений
  • Первый и последний ALPN-протокол

HTTP/2 Fingerprinting

Помимо TLS, HTTP/2-соединения тоже оставляют отпечатки:

  • SETTINGS frame: параметры начальной конфигурации (HEADER_TABLE_SIZE, MAX_CONCURRENT_STREAMS и др.)
  • WINDOW_UPDATE: начальные значения размера окна
  • PRIORITY frames: приоритеты потоков
  • HPACK: метод сжатия заголовков

Chrome, Firefox и Python-библиотеки отправляют разные SETTINGS. Это ещё один уровень обнаружения.

TCP/IP Fingerprinting

На уровне TCP/IP тоже есть отличия:

  • Initial TTL (Time To Live)
  • TCP Window Size
  • TCP Options и их порядок
  • Maximum Segment Size (MSS)

Если TLS-отпечаток говорит «Chrome на Windows», а TCP/IP — «Linux» — подозрительно.

Как антибот-системы используют fingerprinting

Cloudflare

Собирает TLS, HTTP/2 и поведенческие отпечатки. Сравнивает с базой известных клиентов. Неизвестные или несовпадающие отпечатки получают дополнительные проверки (JavaScript challenge).

DataDome

Комбинирует TLS fingerprinting с поведенческим анализом. Даже если TLS-отпечаток корректный, подозрительное поведение (нет движений мыши, мгновенные клики) приведёт к блокировке.

Akamai

Одним из первых внедрил JA4 в 2024 году. Строгие проверки TLS-стека, активное обнаружение spoofing-попыток.

Как защититься (для легального скрейпинга)

1. Используйте реальный браузер

Playwright и Puppeteer запускают настоящий Chrome, который отправляет аутентичный Client Hello. TLS-отпечаток будет соответствовать реальному браузеру.

2. Обновляйте браузер

Антибот-системы знают актуальные версии браузеров. Chrome 120 выглядит подозрительно, если на дворе 2026 год. Используйте последнюю версию.

3. Согласуйте все уровни

TLS, HTTP/2, User-Agent, JavaScript-среда — всё должно соответствовать одному реальному браузеру. Несовпадение на любом уровне = обнаружение.

4. Резидентные прокси

Даже идеальный TLS-отпечаток не поможет, если IP принадлежит дата-центру. Резидентные прокси обеспечивают «чистый» IP с высоким уровнем доверия.

5. API для скрейпинга

Если управление TLS-стеком слишком сложно — используйте API, которые берут это на себя. Они постоянно обновляют fingerprinting для соответствия актуальным браузерам.

Будущее TLS fingerprinting

  • Encrypted Client Hello (ECH) — шифрование Client Hello, которое затруднит fingerprinting. Но пока поддержка ограничена.
  • QUIC/HTTP/3 — новые протоколы = новые методы fingerprinting.
  • ML-модели — вместо статических хешей — ML-классификаторы, которые обнаруживают аномалии в TLS-поведении.

Резидентные прокси InfraProxy в сочетании с правильным TLS-стеком обеспечивают максимальную «невидимость» для антибот-систем. Узнайте подробности.

Нужны надёжные прокси для вашего проекта?

InfraProxy предоставляет серверные и резидентные прокси для российского бизнеса. Договор, постоплата, техподдержка.