Canvas-шум: какие методы ломают сигнатуру, а какие только повышают энтропию
Canvas API часто используют как стабильный отпечаток: одинаковые шрифты, рендер, антиалиасинг и порядок пикселей дают повторяемый хэш. Поэтому шум должен менять не картинку «на глаз», а внутреннюю структуру сигнала. Браузерное окружение передает больше данных, чем кажется.
— Добавление случайных пикселей дает высокий шум, но легко ловится по аномальной локальной дисперсии: паттерн становится слишком «зернистым» и не похожим на естественный рендер.
— Смещение каналов RGB на 1–2 единицы выглядит мягче, но при повторных замерах часто всплывает как стабильный bias, а не случайность.
— Микродеформация координат при рисовании текста и линий эффективнее: она меняет контуры глифов и антиалиасинг, но требует аккуратной модели, иначе появляются артефакты по краям.
Анализируем энтропию параметров. Лучший шум — тот, что распределён по разным слоям: координаты, альфа-канал, порядок операций, выбор шрифта-заменителя. Один тип возмущения быстро выделяется в кластере, а смешанный профиль сложнее отделить от обычной вариативности устройств. Разбираем сигнатуру на уровне syscall: если Canvas ведёт себя одинаково в JavaScript, но отличается в пиксельной статистике, детект всё равно соберёт корреляцию.
Не опирайтесь на один трюк. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном. Для Canvas лучше комбинировать слабые и несинхронные искажения, чем вносить один заметный дефект, который потом легко классифицировать.
Fingerprint-кузница
@fingerprint_forge_ubt
Canvas-шум: какие методы ломают сигнатуру, а какие только повышают энтропию
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.