AudioContext fingerprinting ломают не шумом, а контролем над источником вариативности
AudioContext снимает отпечаток не по одному числу, а по совокупности: частота дискретизации, поведение компрессора, фазовые погрешности, плавающие ошибки рендеринга. Защита должна работать на том же уровне: не маскировать один параметр, а убирать стабильность всей цепочки.
— Жестко фиксируйте sampleRate, channelCount и bufferSize только если это не создаёт аномальный профиль. Иначе детект ловит рассинхрон между API и реальным рендером.
— Вводите стохастический шум в пределах естественной дисперсии, но не линейный и не постоянный: одинаковая «случайность» сама становится сигнатурой.
— Выравнивайте поведение OfflineAudioContext и реального контекста; различия между ними часто дают более сильный идентификатор, чем сам аудиосигнал.
Браузерное окружение передает больше данных, чем кажется: через timing, квантизацию и микроотклонения в DSP-цепочке. Если подменять только выходной массив, остаётся канал через время выполнения и стабильность повторных прогонов. Поэтому проверяйте не только спектр, но и воспроизводимость результата на серии запросов.
Разбираем сигнатуру на уровне syscall: полезная защита — не «ломать» звук, а снижать энтропию до уровня, близкого к фоновому разбросу обычной системы. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
AudioContext fingerprinting ломают не шумом, а контролем над источником вариативности
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.