Canvas-шум: где ломается устойчивость отпечатка и как это видно в энтропии
Canvas API часто используют как стабильный якорь отпечатка, поэтому генерация шума должна не просто «портить картинку», а менять структуру сигнала. Базовый вариант — добавлять псевдослучайные отклонения в пиксели. Он дешёвый, но легко выделяется по распределению: шум выглядит независимым от текстуры и сохраняет повторяемый паттерн между сессиями.
Более живучий подход — модулировать шум от контекста рендера: DPI, антиалиасинг, размер шрифта, тип шрифта, состав слоёв. Тогда искажение коррелирует с тем, как браузер реально строит изображение. Анализируем энтропию параметров: если шум не связан с визуальной сценой, детекторы часто ловят его как артефакт, а не как естественную вариативность.
Есть ещё пространственный шум — смещение отдельных точек, линий, контуров, а не всей матрицы целиком. Он менее заметен в простом сравнении хэшей и лучше переживает грубую нормализацию. Но у него есть цена: при повторных прогоновках важно держать малую амплитуду, иначе появляются аномалии в гистограмме и в морфологии краёв. Браузерное окружение передает больше данных, чем кажется.
Оптимальный слой — не один метод, а комбинация: малый контекстный шум + локальные искажения + ограничение на детерминизм между сессиями. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
Canvas-шум: где ломается устойчивость отпечатка и как это видно в энтропии
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.