Fingerprinting: тебя вычислили ещё до клика

Fingerprinting: тебя вычислили ещё до клика

}Marka{


Ты купил VPN. Чистишь куки каждые 10 минут. Заходишь в режим «Инкогнито» и думаешь, что стал невидимкой.

Не веришь? Открой любую вкладку, нажми F12 → консоль и вставь:

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
console.log(ctx.canvas.toDataURL());

Это твой цифровой отпечаток. Скопируй строку. Перезагрузи страницу без куков, без всего — будет точно такая же.

А теперь вопрос: почему?

Потому что пока ты старательно удаляешь _ga и _ym_uid, современные антифрод-системы — Akamai, Cloudflare, Яндекс Метрика — смотрят на тебя как на ладони.

Им не нужны твои куки. Им вообще плевать на твои попытки спрятаться.

Они используют Fingerprinting — технологию, которая превращает твой браузер в паспорт. Который почти невозможно сжечь. Но есть нюансы. Давай разбираться.


Иллюзия анонимности

Проблема в том, что современный веб — сложная машина. Чтобы сайты выглядели красиво и работали быстро, браузер вынужден отдавать тонну информации: от того, как твоя видеокарта рисует тени, до микросекундных задержек процессора при обработке звука.

Fingerprinting — это не одна «волшебная» функция. Это пазл из десятков косвенных признаков.

Когда антифрод собирает их вместе — получает хэш. И да, вероятность случайного совпадения всего набора у двух случайных людей крайне мала. Но она не абсолютная.

Важный нюанс: У офисных ПК одного вендора (например, 500 машин Dell с одинаковой сборкой Windows, Chrome и драйверами) отпечатки могут совпадать. Уникальность ≠ гарантированный идентификатор. Но для антифрода это и не нужно — ему достаточно заподозрить нестыковку.


Как они тебя вычисляют (от самых частых методов к экзотическим)

Canvas Fingerprinting: твоя видеокарта — твой почерк

Самый массовый метод.

Как работает: Сайт просит браузер отрисовать скрытую картинку (надпись со сложными шрифтами и градиентами) в элементе <canvas>. Ты этого не видишь.

В чем подвох: код один и тот же, а результат разный.

  • Рендеринг текста зависит от ОС, версии шрифтов и субпиксельного хинтинга.
  • GPU и драйверы обрабатывают пиксели по-своему — разный антиалиасинг, разная точность округления.
  • На выходе — картинка. Сайт переводит её в хэш через canvas.toDataURL() или canvas.toBlob().

Почему не сломать: Даже если ты подменишь результат через расширение, антифрод замерит время отрисовки. Canvas на виртуалке или в headless-режиме рендерится на 15-20% быстрее — потому что нет реального GPU-ускорения.


WebGL: когда GPU рассказывает о себе

WebGL даёт сайтам доступ к возможностям видеокарты. Это уровень, на котором обычно не врут.

Что вытягивают:

  • UNMASKED_VENDOR_WEBGL и UNMASKED_RENDERER_WEBGL — не просто «браузер», а конкретно NVIDIA GeForce RTX 4070 или Apple M2.
  • Точность вычислений с плавающей точкой — у Intel, AMD и ARM есть микроскопические, но различимые погрешности.
  • Лимиты железа — максимальный размер текстур, количество юнитов.

⚠️ Важно: Если ты в виртуалке или headless-режиме (Puppeteer, Playwright), WebGL возвращает Google SwiftShader, VMware или Mesa. Для антифрода это яркий признак бота. Но обычному рекламному трекеру плевать — ему нужен просто стабильный идентификатор, а не борьба с фродом.


AudioContext: беззвучная подпись

Самый незаметный, но один из самых стабильных методов.

Как работает: Сайт создаёт AudioContext, прогоняет звуковой сигнал через фильтры (обычно треугольную волну на частоте 440 Гц) и замеряет результат БПФ (быстрое преобразование Фурье).

Почему он уникален: Из-за разницы в математике чисел с плавающей точкой на разных CPU и в разных реализациях DSP-алгоритмов — финальный хэш аудиопотока различается даже между двумя одинаковыми MacBook Pro одного года, если у них разная ревизия процессора. Ты не услышишь, а сервер услышит.

Стойкость: AudioContext почти невозможно подделать без реального изменения движка браузера.


Fonts Fingerprinting: список шрифтов — твоя вечная татуировка

Если версию браузера ты обновляешь раз в месяц, а куки чистишь раз в день, то набор шрифтов в твоей системе не меняется годами.

Как работает: Сайт через JS или CSS (инъекция невидимых блоков) замеряет размеры контейнеров с разными гарнитурами.

В чем сила: Твой уникальный набор — это смесь дефолтных шрифтов Windows/macOS + того, что ты поставил сам (Photoshop, Figma, игры, специфические локализации).

Результат: Это один из самых стабильных идентификаторов. Даже если ты сменишь IP и браузер, твой специфический набор шрифтов «Office 2019 + CorelDraw + узбекский пакет» выдаст тебя с потрохами.


Подстава века: любой «шум» делает тебя заметнее (но только для антифрода)

Большинство расширений (вроде Canvas Blocker) пытаются бороться с этим — подмешивают шум к Canvas или Audio.

Ирония в том, что сам факт шума делает тебя уникальнее среди обычных пользователей. Ты превращаешься в «парня, который очень хочет спрятаться». Системы вроде creepJS палят такие манипуляции через замеры энтропии.

Но: это работает только если на сайте включена серьёзная антифрод-защита уровня High+ (см. градацию ниже). Для 99% рекламных сетей и аналитики шум — просто ещё один параметр, который не вызывает блокировку. Их цель — следить, а не ловить.

Реальный кейс: Один пользователь форума поставил Canvas Blocker и решил, что стал невидимкой. Через неделю его забанили на букмекерской конторе за «аномальное поведение браузера». Антифрод увидел 15% расхождение между ожидаемым canvas-хэшем и реальным — и пометил сессию как подозрительную. Обычный пользователь без расширений прошёл бы незамеченным.


Консистентность данных (Data Integrity) — детектор лжи

Современным антифрод-системам (не рекламе) важно не столько кто ты, сколько — не врёшь ли ты.

Как тебя ловят на несоответствии:

  • Ты купил прокси, натянул расширение, выставил «iPhone на iOS 17». Заходишь на сайт. User-Agent: iPhone. navigator.maxTouchPoints у настоящего iPhone — 5, у твоего десктопа — 0. Busted.
  • Или ты маскируешься под Mac, а WebGL кричит NVIDIA GeForce RTX 4090. Apple не ставит NVIDIA уже лет десять. Для защиты ты — мутант.
  • Или проверка прототипов: navigator.getBattery.toString() — у чистого браузера "function getBattery() { [native code] }", у кривого расширения — что-то другое или микро-задержка.

Реальный кейс из банковского скоринга: Клиент пытался взять кредит онлайн через прокси. Антифрод заметил, что navigator.language = «ru-RU», navigator.hardwareConcurrency = 16 (мощный десктоп), но при этом User-Agent — старый Android. Три несоответствия за 0.2 секунды. Транзакция автоматически отклонена.


Геометрия текста: почему Arial везде разный

Антифрод замеряет ширину текста через getBoundingClientRect().

Из-за разных движков рендеринга — DirectWrite (Windows), Core Text (macOS), FreeType (Linux) — один и тот же символ имеет разную ширину на уровне микропикселей.

Пример: Windows: 120.4375px, macOS: 120.5px.

Если ты подменил navigator.platform на Mac, а линейка выдаёт виндовые значения — антифрод всё понял. Рендеринг не врёт.


Сетевой уровень (для самых параноидальных)

На этапе TLS Handshake браузер отправляет список шифров и расширений. Порядок и набор формируют отпечаток — JA4 (метод от John Althouse).

Как работает JA4: берётся TLS Client Hello, вычленяется порядок шифров, версии TLS, расширения, нормализуется в строку вида t13d1516h2_8daaf6152771_02713d6af862. У Chrome — одно рукопожатие (первым идёт GREASE-значение), у Firefox — другое, у Python-скрипта с requests — третье.

Но: это реально используют только гиганты вроде Cloudflare (на тарифах Enterprise от $10k/мес), Akamai и банковские anti-fraud системы. Рядовой рекламной сети это слишком дорого и сложно. Ты встретишь JA4 только если целенаправленно лезешь на охраняемый ресурс.


Градация угроз (а не просто «всё пропало»)

Базовый уровень

Методы: Cookie, localStorage, ETag, кэш.

Кому нужно: любому рекламному трекеру, который просто хочет узнать, тот ли это пользователь заходил час назад.

Реальная опасность: низкая. Это старый добрый трекинг, который убивается очисткой кук — если тебе вообще нужно его убивать.

Средний уровень

Методы: Canvas Fingerprinting, WebGL, AudioContext, список шрифтов, разрешение экрана, navigator.platform.

Кому нужно: Яндекс.Метрика, Google Analytics, ретаргетинговые сети, маркетплейсы (Wildberries, Ozon).

Зачем: привязать тебя к устройству, даже если ты чистишь куки каждые 5 минут. Именно здесь скрывается 99% того, что называют «фингерпринтингом».

Как увидеть: Зайди на amiunique.org — этот сайт покажет твой отпечаток и сравнит с базой.

Высокий уровень

Методы: проверка консистентности данных — стыковка User-Agent с maxTouchPoints, WebGL Renderer с заявленной платформой, проверка прототипов JS-объектов, поиск «обёрток» от расширений, замеры скорости canvas-операций.

Кому нужно: банки (Тинькофф, Сбер), платёжные системы (PayPal, Stripe Radar), букмекерские конторы, антифрод-провайдеры (FingerprintJS Pro от $99/мес, Akamai Behavior Sensor).

Ключевое отличие: здесь не просто собирают параметры, а ищут противоречия. Если ты врёшь — ты враг. Достаточно одного несоответствия, чтобы пометить сессию как подозрительную.

Экспертный уровень

Методы: TLS-отпечатки (JA4/JA4+), анализ таймингов сетевых запросов, микро-бенчмарки CPU через тяжёлые математические циклы, анализ курсора и движений мыши, WebUSB / WebBluetooth (если разрешено).

Нюанс: На этом уровне антифрод ищет «аномалии эмуляции». Например, если антидетект плохо настроен, он может подставить WebGL от Mac, но «забыть» поменять частоту обновления экрана или специфические системные API. Для таких систем ты — «синтетический человек».

Кому нужно: Cloudflare (бот-защита Enterprise от $10k/мес), Akamai (Bot Manager), особо охраняемые сервисы, платформы с высокими ставками на фрод.

Реальность: ты встретишь это только если целенаправленно лезешь туда, куда не надо, или если сайт купил защиту за серьёзные деньги.


Профессиональное решение: Антидетекты (Dolphin, AdsPower, Octo)

Если твоя задача — не просто анонимность, а мультиаккаунтинг (арбитраж, бонусхантинг в казино, крипто-дропы), обычные браузеры не спасут. Здесь в игру вступают антидетекты.

Главное отличие: Они не шумят. Вместо того чтобы подмешивать мусор в Canvas, они берут реальный отпечаток живого устройства (например, MacBook соседа) и полностью имитируют его параметры.

Зачем это нужно: Антифрод видит не «скрытого пользователя», а абсолютно легитимного юзера с нормальным железом, правильными задержками и консистентными данными. Для серьёзной работы это единственный путь, где шум расширений только вредит.

Важно: В профи-сегменте качественный отпечаток стоит денег. Бесплатные или криво настроенные антидетекты антифрод вычислит по тем же «аномалиям эмуляции» — отсутствие реального GPU, одинаковые тайминги, идеально прямая траектория курсора.


Лайфхак для ленивых: Стань «очередным айфоном»

Парадокс, но лучший способ спрятаться — это использовать самое популярное и закрытое устройство.

У iPhone на iOS набор шрифтов, WebGL-параметры и Canvas-отпечатки практически идентичны у миллионов пользователей.

Пока десктопный юзер пытается настроить arkenfox, владелец iPhone в обычном Safari уже является «невидимкой» просто за счет того, что он неотличим от любого другого владельца такой же модели.

Вывод: Если нужно зайти на сайт максимально чисто без спецсофта — делай это с мобильного Safari.


Как выглядит сценарий с экспертным уровнем (реальный кейс)

Торговец кроссовками запустил скрипт на Puppeteer. У него хорошие прокси, он подменяет User-Agent, чистит куки. Но сайт защищён PerimeterX (антибот от человеческих проверок). Скрипт делает заказ. Система замечает:

  • Время выполнения математического цикла (бенчмарк CPU) слишком стабильное и быстрое — как у headless-браузера без реального пользователя.
  • Движения мыши отсутствуют или идеально прямолинейные — реальный человек никогда не водит курсор по прямой.
  • TLS-отпечаток JA4 — от Puppeteer, а не от нормального Chrome.

Итог: заказ отменён, прокси сожжены, аккаунт в бане.


Что выбрать для обычного человека

Максимальная анонимность: Tor Browser. Но ты заплатишь скоростью и капчами. Готовься.

Баланс удобства и защиты: Brave. Скачал, включил строгую защиту в настройках — и забыл. 95% сайтов работают как обычно. Brave не шумит, а унифицирует отпечаток. Ты — один из миллионов.

Только для параноиков с прямыми руками: Firefox + arkenfox user.js. Без подготовки даже не суйся. Но если у тебя горят руки и есть 2 часа — это максимальный контроль без перехода на Tor.

Для мультиаккаунтинга и профессионалов: Антидетекты (Dolphin, AdsPower, Octo). Они не пытаются спрятаться — они становятся кем-то другим. Но за качественный отпечаток нужно платить.

Ленивый и эффективный способ: iPhone + Safari. Ты просто «очередной айфон» в толпе таких же. Минимум усилий — максимум защиты от среднего уровня.


Чем расплачиваешься — кратко

  • Brave: Иногда банк попросит отключить защиту «для входа». Нажал «не надо защищать этот сайт» — и дальше живёшь.
  • Firefox RFP: Видеоплееры могут глючить, некоторые карты не грузятся. Придётся иногда выключать настройку.
  • Tor: Скорость больно низкая. Почта, соцсети, YouTube — всё через раз. Но ты неотслеживаем.
  • Антидетекты: Стоят денег (от $50–100/мес за нормальный). Требуют настройки. Но если ты зарабатываешь на мультиаккаунтинге — это инвестиция.
  • iPhone: Ты привязан к экосистеме Apple. Для кого-то это плюс, для кого-то минус.

Вердикт

Мы подошли к моменту, когда индустрия обмана разделилась на два лагеря.

99% расширений и подмен — решето. Они пытаются замазать прыщи на лице JS-инъекциями, пока антифрод делает МРТ.

Каждый зашумлённый параметр подсвечивает тебя для серьёзных систем. Ты становишься «тем самым странным парнем».

Но:

  • Для обычной рекламы и аналитики — тебе не нужна защита от fingerprinting. Это просто ещё один идентификатор, как cookie. Сайты не банят тебя за него.
  • Против банков и Cloudflare — помогут только массовые браузеры с унификацией отпечатка (Brave / Firefox RFP / Tor) либо антидетекты профессионального уровня. Либо смирение.
  • Для защиты от базового и среднего уровня — обычный режим инкогнито + регулярная очистка данных. Этого достаточно, чтобы реклама не собирала твой портрет годами.

Антифрод — это игра в кошки-мышки. Но правила изменились:

✋ Расширения из стора — ты думаешь, что невидимка. Спойлер: ты самый заметный в комнате.

🛡️ Brave / Firefox RFP / iPhone Safari — ты растворяешься среди миллионов. Максимум, что увидит антифрод — «пользователь из общей массы».

💼 Антидетекты — профессиональный инструмент. Не для обычных людей. Но если тебе нужно 100 аккаунтов, которые не пересекаются — другого пути нет.

😎 Забить и жить как есть — для 90% сценариев это абсолютно нормально. Потому что тебе на самом деле плевать, что Яндекс.Метрика знает твой canvas-хэш и список шрифтов.

Берегите свои данные. Или хотя бы не притворяйтесь тем, кем вы не являетесь — фингерпринтинг это ненавидит больше всего.



Report Page