返回概览 更多文章

音频指纹:追踪的声音

正在生成音频指纹……

一提到在线追踪,我们往往会想到 cookie 或 IP 地址。然而,现代追踪技术已经演变得远比这些隐蔽。其中一种就是音频指纹(也称为 AudioContext 指纹)。它不会录下你的声音,也不会窃听你的麦克风;相反,它聆听的是你硬件的“声音”。

它是如何运作的?

音频指纹利用了 Web Audio API,这是现代浏览器中一项强大的功能,专门用于处理与合成音频。

为了生成指纹,网站上的脚本会执行以下操作:

  1. 它创建一个 AudioContext
  2. 它使用 OscillatorNode 生成一段声波(一个简单的音调)。
  3. 它把这个信号送入 DynamicsCompressorNode。这本是一个通常用来平衡音量高低的工具。
  4. 不会把声音播放给你听。相反,它记录下处理后得到的数据。
不会发出任何声音,也不会请求麦克风权限。
  1. 1振荡器
    生成纯净的无声音调
  2. 2压缩器
    处理信号,带有细微的硬件特性差异
  3. 3读取缓冲区
    0.0413 · -0.0072 · 0.0510 …
    读回精确的数值
  4. 4哈希
    a1b2c3d4…
    这些微小的差异变成一个唯一的 ID
每次访问都会运行相同的步骤。由于你的声音处理栈会以其独有的细微方式塑造信号,最终的哈希值对你而言始终保持一致,并且与几乎所有其他人都不同。

关键在于,对音频信号进行的确切数学处理,会因你计算机的硬件和软件栈不同而产生细微差异。你的声卡、音频驱动和浏览器实现,都会在音频处理过程中引入微小的瑕疵与变化。

这些变化对人类来说是不可见(或听不见)的,但它们会汇聚成一个独一无二的数字签名:你的音频指纹。

它为什么如此有效?

音频指纹之所以极为有效,是因为它具有以下特点:

  • 无声:你什么都听不到,也不需要任何授权提示(比如麦克风那种)。
  • 持久:清除 cookie 或使用“无痕浏览”模式通常并不会改变你的硬件,所以你的音频指纹依旧保持不变。
  • 稳定:不同于其他可能随浏览器更新而变化的指纹,音频硬件特征相对固定不变。

你该如何保护自己?

由于这项技术依赖的是那些本用于正当用途(比如网页游戏或音乐应用)的标准浏览器 API,彻底屏蔽它可能会导致某些网站无法正常运行。不过,防御手段仍然是有的:

1. 使用注重隐私的浏览器

Incogniton 这样的高级反检测浏览器内置了防御机制。它们往往会通过给信号添加随机噪声来“污染”音频数据。这意味着每当网站试图对你进行指纹识别时,得到的结果都会略有不同,从而让持续追踪变得困难得多。不过要记住,有些浏览器污染得太过激进,反而让网站一眼就看出你在伪造音频。这可能会触发更激进的反机器人检测,甚至直接被封禁。

2. 浏览器扩展

AudioContext Fingerprint Defender 这样的扩展可以干预 API,注入噪声或阻止指纹识别的尝试。不过这种保护较为表层,仍会让部分网站得以对你进行指纹识别。

测试你的指纹

你可以在本页的方框中(手机端则在顶部)看到你自己的音频指纹。如果你刷新页面后哈希值仍然分毫不差,那么你的浏览器很可能正在暴露一个一致的音频指纹。如果它发生了变化,那你很可能受到了随机化的保护。

Incogniton 徽标

提升你的隐私保护

箭头