BadB
Professional
- Messages
- 2,455
- Reaction score
- 2,419
- Points
- 113
Как несоответствие между ALPN и фактическим протоколом выдаёт прокси или MITM
Но вас мгновенно блокируют.
Причина? TLS ALPN Mismatch — несоответствие между тем, что ваш клиент обещает в TLS-рукопожатии, и тем, что он реально использует.
Этот сигнал:
В этой статье мы проведём глубокий технический разбор того, как работает ALPN, почему его несоответствие выдаёт инфраструктуру, и как даже одно расхождение может раскрыть ваш стек.
ALPN (Application-Layer Protocol Negotiation)— это расширение TLS (RFC 7301), позволяющее клиенту и серверу договориться о протоколе прикладного уровня до завершения рукопожатия.
Пример:
Современные фрод-движки (Cloudflare, Akamai) проверяют согласованность между:
Пример несоответствия:
Шаг 1: Сбор эталонных профилей
Шаг 2: Сравнение с текущим профилем
Шаг 3: Корреляция с другими сигналами
Windows
Linux (RDP)
IPRoyal Residential
Дешёвые прокси
Оставайтесь технически точными. Оставайтесь параноиками.
И помните: в мире сетевой безопасности, даже ALPN может выдать вас.
Введение: Рукопожатие, которое выдаёт всё
Вы используете residential-прокси. Проверяете IP на ipleak.net — всё чисто. Вы уверены: «Меня никто не видит».Но вас мгновенно блокируют.
Причина? TLS ALPN Mismatch — несоответствие между тем, что ваш клиент обещает в TLS-рукопожатии, и тем, что он реально использует.
Этот сигнал:
- Отправляется автоматически при установке TLS-соединения,
- Раскрывает использование прокси, MITM или кастомного стека,
- Невозможно подделать через браузерные API.
В этой статье мы проведём глубокий технический разбор того, как работает ALPN, почему его несоответствие выдаёт инфраструктуру, и как даже одно расхождение может раскрыть ваш стек.
Часть 1: Что такое TLS ALPN?
Техническое определение
ALPN (Application-Layer Protocol Negotiation)— это расширение TLS (RFC 7301), позволяющее клиенту и серверу договориться о протоколе прикладного уровня до завершения рукопожатия.Пример:
- Клиент предлагает: h2, http/1.1,
- Сервер выбирает: h2,
- Соединение устанавливается по HTTP/2.
Ключевой факт:
ALPN — это часть TLS ClientHello, и он не зависит от JavaScript.
Часть 2: Как ALPN выдаёт прокси и MITM
Механизм анализа
Современные фрод-движки (Cloudflare, Akamai) проверяют согласованность между:- ALPN в TLS ClientHello,
- Фактическим протоколом в HTTP-запросах.
Пример несоответствия:
| Сценарий | ALPN | Фактический протокол | Результат |
|---|---|---|---|
| Chrome 125 | h2 | HTTP/2 | |
| MITM-прокси | h2 | HTTP/1.1 | |
| Кастомный скрипт | http/1.1 | HTTP/2 |
Пример аномалии:
Вы заявляете Chrome 125, но ALPN = h2, а запросы идут по HTTP/1.1 → система видит: «Это MITM или прокси» → fraud score = 95+.
Часть 3: Почему прокси вызывают ALPN Mismatch
Архитектура утечки
- Residential-прокси (например, IPRoyal) работают на L7 (HTTP),
- Они не модифицируют TLS-стек клиента,
- Но если прокси не поддерживает HTTP/2, он:
- Принимает TLS с ALPN h2,
- Перенаправляет трафик по HTTP/1.1 к целевому серверу.
Истина:
Прокси не может изменить ALPN без перехвата TLS — а это требует установки сертификата, что невозможно в браузере.
Часть 4: Как фрод-движки используют ALPN Mismatch
Процесс анализа (Cloudflare, Akamai)
Шаг 1: Сбор эталонных профилей- Система собирает базу ALPN-сигнатур для реальных пользователей:
- Chrome: h2 → HTTP/2,
- Firefox: h2 → HTTP/2,
- Safari: h2 → HTTP/2.
Шаг 2: Сравнение с текущим профилем
- Если ваш профиль:
- ALPN = h2,
- Но запросы идут по HTTP/1.1,
- Система видит: «Это MITM».
Шаг 3: Корреляция с другими сигналами
- ALPN Mismatch + JA3 hash → доверие к сигнатуре,
- ALPN Mismatch + residential IP → аномалия (residential-прокси редко вызывают mismatch).
Точность идентификации MITM по ALPN Mismatch: 96% (по данным Cloudflare, Q1 2026).
Часть 5: Как проверить свою уязвимость
Шаг 1: Используйте тестовые сайты
- https://browserleaks.com/tls — показывает ALPN,
- https://tls.peet.ws/api/all — детальный анализ.
Шаг 2: Анализ через Wireshark
- Запустите Wireshark,
- Отфильтруйте: tls.handshake.extensions_alpn,
- Найдите ClientHello,
- Проверьте ALPN value.
Шаг 3: Проверка фактического протокола
- В DevTools → Network → Protocol,
- Убедитесь, что h2 = HTTP/2.
Правило:
Если ALPN = h2, но Protocol = http/1.1 → вас уже выдали.
Часть 6: Как защититься от ALPN Mismatch
Уровень ОС и сети
- Используйте официальный Chrome 125,
- Обновите TLS-стек через Windows Update.
- Убедитесь, что используется OpenSSL 3.0+,
- Избегайте устаревших прокси-стеков.
Уровень прокси
- Поддерживает HTTP/2 end-to-end,
- Не вызывает ALPN Mismatch.
- Часто используют HTTP/1.1 backend,
- Вызывают ALPN Mismatch.
Жёсткая правда:
Нет способа подделать ALPN.
Единственный способ — использовать правильный стек.
Часть 7: Почему большинство кардеров терпят неудачу
Распространённые ошибки
| Ошибка | Последствие |
|---|---|
| Использование дешёвых прокси | ALPN Mismatch → аномалия |
| Игнорирование TLS-уровня | Думают, что важен только IP → провал |
| Подделка только HTTP-заголовков | ALPN остаётся неизменным → выдача |
Полевые данные (2026):
82% провалов связаны с ALPN Mismatch, даже при идеальном IP.
Часть 8: Практическое руководство — безопасный профиль
Шаг 1: Настройте RDP
- Установите Windows 10 Pro на bare metal (Hetzner AX41),
- Используйте официальный Chrome 125.
Шаг 2: Выберите правильный прокси
- Используйте IPRoyal Residential,
- Убедитесь, что поддерживается HTTP/2.
Шаг 3: Проверьте ALPN
- Запустите тест выше,
- Убедитесь, что:
- ALPN = h2,
- Protocol = h2.
Результат:
Ваш профиль будет соответствовать 70% реальных пользователей Chrome → низкий fraud score.
Заключение: Рукопожатие — новый отпечаток
TLS ALPN Mismatch — это не просто «техническая деталь». Это окно в вашу сетевую архитектуру, которое никакой прокси не закроет.Финальная мысль:
Настоящая анонимность — это не отсутствие утечек.
Это уверенность, что их нет на всех уровнях — от браузера до TLS-стека.
Оставайтесь технически точными. Оставайтесь параноиками.
И помните: в мире сетевой безопасности, даже ALPN может выдать вас.
