Сетевая проверка соединения
Ход проверки
Признаки
IP по каналам
Один и тот же посетитель должен приходить с одного IP по всем каналам. Строки «браузер» — то, что сообщил JS; «сервер» — что сервер реально увидел в пакетах.
Задержки (RTT)
TCP-RTT меряет ядро сервера до ближайшего TCP-узла (для прокси — до прокси). RTT приложения меряется до самого браузера. Разница — лишнее плечо через посредника.
TCP/IP-отпечаток (SYN)
TLS-отпечаток
WebRTC
HTTP-заголовки
DNS
FPS
Частота кадров requestAnimationFrame при видимой вкладке. У обычного монитора 60 Гц и выше; RDP, VNC, виртуальный дисплей и headless часто дают меньше.
UDP: полная проверка
Какие UDP-порты сервера получили пакеты и с какого IP, тип NAT, прямое WebRTC-соединение с сервером без STUN (ICE-lite) по UDP и ICE-TCP.
Целостность браузера (антибот)
Следы автоматизации и подмены отпечатка в JS: значения в Web Worker и iframe, движок JS, «родные» функции, шум canvas/audio, шрифты ОС.
HTTP/2, UA-CH, PTR, часы, порты
HTTP/2-отпечаток (SETTINGS, WINDOW_UPDATE, порядок псевдозаголовков) у каждого браузера и библиотеки свой. PTR-запись и открытые порты на IP показывают сервер или прокси.
Окружение: сервер / RDP / ВМ или реальный ПК
На сервере, ВМ и в RDP-сессии видны настройки и устройства, которых у обычного пользователя не бывает: выключенные анимации, виртуальный сенсорный ввод, программный рендер, нет звука и камеры.