多设备使用场景中,现代蓝牙耳机(如 支持 multipoint 的耳机)依赖系统的音频通道状态来自动切换播放源。当用户在桌面浏览器打开 AliExpress 网页时,即使页面处于后台且无任何可视的音视频元素,蓝牙耳机依然显示“音频通道被占用”,导致耳机拒绝接管其他设备的声音。
8 月 20 日,一名开发者公布了对 AliExpress 网页的技术分析,发现其首页会在后台创建两个持续运行的 AudioContext,通过 Web Audio API 生成并分析一段用户听不到的音频信号。相关处理被认为属于浏览器与设备指纹采集的一部分。
事情最初源于一个很奇怪的蓝牙耳机问题。该开发者使用支持 Multipoint 多点连接的蓝牙耳机,同时连接电脑和手机。正常情况下,当电脑停止播放声音后,耳机会自动切回手机。

在关闭该网页标签页后,蓝牙连接恢复正常。这一行为表明:网页在后台隐蔽且持续地调用了系统的音频处理管线。
二、 技术原理剖析
安全人员与浏览器厂商(如 Brave)对 AliExpress 的前端脚本进行了逆向分析,调取了其内部运行的两个关键混淆脚本:collina.js 与 fireyejs.js。
这两个脚本利用了现代浏览器自带的 Web Audio API 进行设备指纹生成:
1.静音信号生成(Silent Signal Generation) 脚本使用 AudioContext 接口创建一个频率极高的振荡器(OscillatorNode)或直接生成一段增益为零(gain.value = 0)的静音音频流。因为没有音量,用户无法察觉任何声音,且浏览器标签页上的静音按钮(Mute Tab)也无法阻止该 API 的底层计算。
2.硬件/算法微小差异提取(Hardware Processing Variance) 不同的操作系统、CPU 架构、声卡驱动以及浏览器音频解码器,在处理这段数字音频信号(如施加浮点数傅里叶变换、动态范围压缩等)时,由于浮点数舍入误差及硬件处理管线的差异,会产生极其微小但完全确定的数值差异。
3.哈希生成与跨站追踪(Hash Generation) 脚本收集这些处理后的浮点数据数组,计算出一个唯一哈希值(Hash)。这个哈希值就是该设备的“音频指纹”。
│
├──> 生成无声音频信号 (Gain = 0)
├──> 经过 CPU / 声卡底层处理
├──> 提取浮点数运算微小差异 (FFT / Floating Point Deviation)
└──> 生成唯一 Audio Hash ──> 发送到服务端 (Alibaba Data Servers)
三、 为什么攻击者/电商偏爱音频指纹?
与传统追踪手段相比,音频指纹具有极高的持久性与隐蔽性:
- 绕过 Cookie 限制:用户清除 Cookie、开启无痕模式(Incognito)或使用防跨站追踪插件,均无法抹去硬件及驱动层面的计算特征。
- 难以防范:Web Audio API 本是用于网页游戏、在线音乐合成的标准 API,传统广告拦截插件(如 uBlock Origin)若粗暴拦截该 API 容易导致正常网页音视频功能崩溃。
- 联合维度高:AliExpress 还会将音频指纹与 Canvas 渲染指纹、WebGL 指纹及屏幕硬件参数结合,形成几乎 100% 准确的设备唯一识别码(Canvas + Audio Hybrid Fingerprinting)。
四、 防范策略与行业应对
- 浏览器层面的防护:
- Brave / Tor Browser:通过引入“音频噪声注入(Farbling / Audio Randomization)”机制,在 Web Audio API 返回数据时注入微小的随机噪点,使得每次生成的哈希值都不相同,从而失效指纹追踪。
- Firefox / Safari:针对后台标签页的
AudioContext增加严格的 Autoplay 与音频上下文挂起(Suspend)限制。
- 用户侧临时防御:
- 在 Chrome 或 Edge 中,可通过
chrome://flags限制非激活标签页的 Web Audio 权限,或安装专门针对 Device Fingerprinting 进行混淆防护的扩展。
- 在 Chrome 或 Edge 中,可通过

