AudioContext fingerprinting: где ломается «антифингерпринт» и как это видно в логах
Браузерное окружение передает больше данных, чем кажется: AudioContext даёт не «звук», а числовую подпись цепочки DSP-операций. Снимают не громкость, а стабильность выхода на осцилляторе, компрессоре, фильтре и рендере. Анализируем энтропию параметров: частота дискретизации, channelCount, sampleRate drift, квантизация, шум кроссплатформенного рендера.
Техники противодействия обычно упираются в три слоя:
— подмена API-ответов через JS-hooking;
— рандомизация выходного буфера;
— унификация аудиостека на уровне ОС/браузерного процесса.
Проблема в том, что грубый шум легко ловится по распределению: меняется не только значение, но и автокорреляция соседних сэмплов. Сигнатура фальсификации часто заметнее самой подписи.
Сильнее работают не «хаотичные» правки, а согласованные: фиксированный seed на сессию, ограниченный дельта-шум, выравнивание latency и повторяемость по одинаковым входным условиям. Иначе детектор видит несоответствие между AudioContext, canvas, WebGL и navigator.hardwareConcurrency — браузерное окружение передает больше данных, чем кажется.
Если нужен устойчивый контур, проверяйте не только результат, но и побочные артефакты: variance по нескольким прогонам, стабильность FFT-отпечатка, совпадение таймингов рендера. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
AudioContext fingerprinting: где ломается «антифингерпринт» и как это видно в логах
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.