Canvas-шум: какие методы ломают детектинг, а какие оставляют следы
Canvas API удобен для снятия отпечатка, потому что рендеринг зависит не только от движка, но и от графического стека, шрифтов, сглаживания и состояния устройства. Поэтому шум встраивают не «для красоты», а чтобы размыть стабильность сигнатуры.
Три базовых подхода:
— Добавление псевдослучайных сдвигов в пиксели. Дает высокий разброс, но часто ломает воспроизводимость и легко ловится по аномальной дисперсии.
— Модификация перед отрисовкой: подмена шрифтов, lineWidth, shadowBlur, alpha. Шум выглядит естественнее, но часть параметров уходит в соседние API и создает корреляции.
— Постобработка изображения после canvas.toDataURL. Это проще контролировать, однако меняется уже готовый битмап, и детекторы ищут несоответствие между вычисленным и визуальным результатом.
Разница между шумом в градиенте, текстовом рендере и геометрии критична. Текст дает сильную энтропию, но и сильный сигнал аномалии; геометрия стабильнее, зато требует аккуратного микширования, иначе меняется статистика контуров. Шум должен быть локальным, а не равномерным по всему полотну.
Рабочий ориентир: не увеличивать энтропию ради энтропии, а имитировать естественную вариативность браузерного окружения. Браузерное окружение передает больше данных, чем кажется. Если шум меняет слишком много соседних признаков, fingerprint становится не слабее, а заметнее.
Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
Canvas-шум: какие методы ломают детектинг, а какие оставляют следы
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.