一提到在线追踪,我们往往会想到 cookie 或 IP 地址。然而,现代追踪技术已经演变得远比这些隐蔽。其中一种就是音频指纹(也称为 AudioContext 指纹)。它不会录下你的声音,也不会窃听你的麦克风;相反,它聆听的是你硬件的“声音”。
它是如何运作的?
音频指纹利用了 Web Audio API,这是现代浏览器中一项强大的功能,专门用于处理与合成音频。
为了生成指纹,网站上的脚本会执行以下操作:
- 它创建一个
AudioContext。 - 它使用
OscillatorNode生成一段声波(一个简单的音调)。 - 它把这个信号送入
DynamicsCompressorNode。这本是一个通常用来平衡音量高低的工具。 - 它不会把声音播放给你听。相反,它记录下处理后得到的数据。
- 1振荡器生成纯净的无声音调
- 2压缩器处理信号,带有细微的硬件特性差异
- 3读取缓冲区0.0413 · -0.0072 · 0.0510 …读回精确的数值
- 4哈希a1b2c3d4…这些微小的差异变成一个唯一的 ID
关键在于,对音频信号进行的确切数学处理,会因你计算机的硬件和软件栈不同而产生细微差异。你的声卡、音频驱动和浏览器实现,都会在音频处理过程中引入微小的瑕疵与变化。
这些变化对人类来说是不可见(或听不见)的,但它们会汇聚成一个独一无二的数字签名:你的音频指纹。
它为什么如此有效?
音频指纹之所以极为有效,是因为它具有以下特点:
- 无声:你什么都听不到,也不需要任何授权提示(比如麦克风那种)。
- 持久:清除 cookie 或使用“无痕浏览”模式通常并不会改变你的硬件,所以你的音频指纹依旧保持不变。
- 稳定:不同于其他可能随浏览器更新而变化的指纹,音频硬件特征相对固定不变。
你该如何保护自己?
由于这项技术依赖的是那些本用于正当用途(比如网页游戏或音乐应用)的标准浏览器 API,彻底屏蔽它可能会导致某些网站无法正常运行。不过,防御手段仍然是有的:
1. 使用注重隐私的浏览器
像 Incogniton 这样的高级反检测浏览器内置了防御机制。它们往往会通过给信号添加随机噪声来“污染”音频数据。这意味着每当网站试图对你进行指纹识别时,得到的结果都会略有不同,从而让持续追踪变得困难得多。不过要记住,有些浏览器污染得太过激进,反而让网站一眼就看出你在伪造音频。这可能会触发更激进的反机器人检测,甚至直接被封禁。
2. 浏览器扩展
像 AudioContext Fingerprint Defender 这样的扩展可以干预 API,注入噪声或阻止指纹识别的尝试。不过这种保护较为表层,仍会让部分网站得以对你进行指纹识别。
测试你的指纹
你可以在本页的方框中(手机端则在顶部)看到你自己的音频指纹。如果你刷新页面后哈希值仍然分毫不差,那么你的浏览器很可能正在暴露一个一致的音频指纹。如果它发生了变化,那你很可能受到了随机化的保护。