AudioContext fingerprinting: где ломается шум и как его проверяют
AudioContext — один из самых грязных каналов для пассивной идентификации. Браузерное окружение передает больше данных, чем кажется: особенности графа, precision float-арифметики, поведение компрессора, ресэмплинг и даже разница между CPU/OS-стеком. Анализируем энтропию параметров: если защита трогает только одну точку, корреляция остается.
Рабочая оборона строится не на «подмене одного числа», а на выравнивании всего пайплайна:
• фиксированный sampleRate и стабильный routing;
• квантизация выходного сигнала, а не хаотичный noise injection;
• одинаковые ошибки округления для всех контекстов;
• изоляция графа от аппаратно-зависимых веток.
Главная ошибка — делать шум видимым, но не статистически правдоподобным. Противник смотрит не на абсолютные значения, а на распределение, повторяемость и межсессионную стабильность. Если jitter не согласован между API, он сам становится сигнатурой. Разбираем сигнатуру на уровне syscall: важна не маска, а согласованность следов.
Проверка защиты должна включать повторные прогоны, сравнение автокорреляции, спектральной формы и устойчивости к разным наборам входных данных. Если результат меняется от порядка вызовов, у вас не анонимизация, а новый идентификатор. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
AudioContext fingerprinting: где ломается шум и как его проверяют
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.