TLS Fingerprinting: как антибот-системы обнаруживают скреперы
Глубокое погружение в TLS-fingerprinting, JA3/JA4-хеши и методы обнаружения скреперов через анализ TLS Client Hello. Как это работает и как защититься.
Команда InfraProxy
22 января 2026 г.
Что такое 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:
- Извлекаются: версия TLS, cipher suites, расширения, эллиптические кривые, форматы точек
- Значения конкатенируются через запятую
- Результат хешируется 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 предоставляет серверные и резидентные прокси для российского бизнеса. Договор, постоплата, техподдержка.
Читайте также
Прокси для AI-агентов: SOCKS5, ротация, sticky-сессии
Как подключить AI-агента к интернету через прокси: SOCKS5, HTTP, ротация IP, sticky-сессии. Примеры на Python и Node.js. InfraProxy: 100 000+ IP, до 1 Gbps.
ТехническоеDatacenter vs residential прокси: что выбрать для краулинга
Сравнение datacenter и residential прокси для веб-краулинга: скорость, стоимость, trust-score, сценарии. Таблицы, примеры кода, рекомендации по выбору.
ТехническоеКакие прокси нужны для сбора данных AI-моделей
Datacenter и ISP прокси для сбора обучающих данных AI: архитектура пайплайна, выбор типа прокси, примеры кода на Python. 100 000+ IP, до 1 Gbps.