AliExpress 静默 WebAudio 指纹识别导致蓝牙多点连接失效
问题现象
用户发现,当在浏览器(如 Firefox 或 Chrome)中打开 AliExpress(速卖通)页面时,支持蓝牙多点连接(Multipoint)的耳机无法正常在电脑和手机之间切换。即使电脑端没有任何音频播放,只要 AliExpress 页面处于打开状态,手机端的音频就会被拦截,无法自动接管音频流。由于该过程并非通过标准的 <audio> 或 <video> 标签实现,因此通过浏览器或系统的“静音”功能无法解决。
技术原理
通过对 AudioContext 构造函数和 AudioNode.prototype.connect() 方法进行拦截监测,研究人员发现了两个隐藏的音频上下文(AudioContext),分别由阿里巴巴的浏览器安全与反滥用工具脚本 collina.js 和 fireyejs.js 创建。
这些脚本构建了一个隐藏的 WebAudio 处理图:
锯齿波振荡器 (Sawtooth oscillator) $\rightarrow$ 分析节点 (AnalyserNode) $\rightarrow$ 脚本处理器节点 (ScriptProcessorNode) $\rightarrow$ 增益节点 (GainNode,设为 0) $\rightarrow$ 音频目的地 (AudioContext.destination)
核心机制:
- 静默运行: 虽然增益节点被设为 0(用户听不到声音),但由于音频图连接到了系统的音频目的地(Destination),浏览器会认为当前正在进行实时音频处理。
- 占用音频通道: 这种持续的音频处理活动会使操作系统(如 Windows)或浏览器保持音频路径处于激活状态,从而阻止蓝牙耳机切换回手机音频。
- 规避常规控制: 因为它不是基于媒体元素(Media Element)的播放,所以传统的标签页静音功能对其无效。
浏览器指纹识别
该 WebAudio 测试只是 AliExpress 广泛收集浏览器指纹的一部分。这些脚本还会测量多种数据以识别设备特征,包括:
- 图形与渲染: Canvas 渲染、WebGL 渲染器信息及着色器精度。
- 硬件与性能: 屏幕分辨率、设备像素比、硬件并发数、内存大小。
- 浏览器特征: 已安装插件、支持的音视频格式、WebRTC 行为、性能计时。
- 用户行为: 鼠标、触摸、焦点、滚动事件,以及设备运动和方向。
此类指纹技术常用于反欺诈、机器人检测和用户追踪,因为它们比 Cookie 更难通过清理或更换来规避。
解决方案
研究人员通过 uBlock Origin 拦截了相关的脚本文件。通过在“自定义静态规则”中添加以下过滤规则,可以阻止这些隐藏音频上下文的创建:
! AliExpress AWSC fingerprinting scripts
||assets.aliexpress-media.com/g/AWSC/uab/*/collina.js$script,domain=aliexpress.com
||assets.aliexpress-media.com/g/AWSC/fireyejs/*/fireyejs.js$script,domain=aliexpress.com
注意事项:
由于这些脚本与反欺诈系统相关,拦截可能会导致网站出现更多的验证码(CAPTCHA),或在登录、支付时遇到困难。如果遇到此类问题,建议暂时禁用这些规则。