薛定谔的BUG 18小时前
阿里被曝用静音音频给用户“画像”,蓝牙耳机断连牵出真相
index.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

蓝牙耳机总是莫名其妙断连,声音在手机和电脑之间来回 " 打架 "?一位开发者的排查经历,意外揭开了一个藏在电商网站首页的隐秘行为。

开发者 Matt Callaghan 在调试多点连接耳机时发现,音频焦点始终无法从桌面浏览器切换到手机。顺着这条线索追查下去,他注意到阿里全球速卖通(AliExpress)的页面在持续运行一条 " 无声 " 的音频流——不播放任何可感知的声音,却牢牢占着音频通道。

对页面脚本进行反混淆处理后,他找到了原因:阿里巴巴的 AWSC 反机器人套件中,嵌入了基于 Web Audio API 的设备指纹识别程序。相关脚本(包括 collina.js 和 fireyejs.js)会构建一个合成的音频处理图,用来捕获依赖硬件的执行特征。

静音音频如何 " 出卖 " 你的设备

这套机制的原理并不复杂。脚本会让一个已知波形经过多个数学变换节点,由于不同设备的浮点运算单元(FPU)、指令集(如 AVX 或 ARM NEON)、操作系统混音引擎和厂商驱动存在差异,最终输出的频域数据会呈现细微的数值差别——这些差别足以构成一台设备的独特 " 指纹 "。

关键在于,AliExpress 让这条处理管线经过一个音量设置为零的增益级,同时仍将处理图直接绑定到主要硬件输出端。也就是说,它在平台层启动了一条 " 未静音 " 的音频流,只是人耳听不到而已。

这样做有两个直接后果:一是让主机操作系统无法进入空闲状态,二是锁定了蓝牙多点连接的音频路由。这正是开发者耳机断连问题的根源——音频通道被这条隐形流占用了。

浏览器厂商的防御姿态

事件曝光后,注重隐私保护的浏览器厂商各自亮出了应对方案。Brave 公开讨论了这种跟踪技术,并明确表示:"AliExpress 并没有录制用户的声音,而是播放一段静音音频,再测量用户的特定设备如何处理这段音频,从而识别用户的设备指纹。"

Brave 的缓解手段是 " 扰动(farbling)" ——在音频渲染缓冲区中动态注入确定性的伪随机噪声,让提取出的频率数据在不同浏览器会话之间发生无法预测的变化,同时不影响正常发声的 Web 应用。

Firefox 则走了另一条路:在高级反指纹识别配置(privacy.resistFingerprinting)下采用数学分桶和规范化处理,把音频处理结果限制在标准化的精度区间内,从根源上消除浮点运算单元层面的差异。

权限缺口:无需询问,也无提示

这起事件暴露了现代 W3C 规范中一个长期存在的结构性漏洞。不同于 getUserMedia 或地理位置 API 这类敏感的浏览器接口,初始化 AudioContext 并渲染音频合成图,完全不需要经过任何明确的权限提示。

更隐蔽的是,当活动音频图以零振幅输出采样数据时,浏览器连地址栏的扬声器图标都不会亮起。用户对此毫无感知,既不知道有音频流在运行,也不知道自己的设备正在被 " 测量 "。

反欺诈与隐私的边界问题

从企业安全工程的角度看,电商平台部署客户端风险评分脚本有其合理性——防范账户接管、优惠券滥用和自动化凭据填充攻击,都是真实存在的业务风险。

但问题在于,当反欺诈遥测缺少正式的能力控制或标准化隔离机制时,被动式反机器人防御就可能越界:干扰物理设备的状态,损害用户对基本隐私保护的合理预期。这次事件中,用户的蓝牙耳机成了 " 受害者 ",下次会是什么?

评论
大家都在看