从耳机异常事件看 AliExpress 的音频指纹(Audio Fingerprinting)追踪机制

Brave 浏览器的 Farbling(模糊化/加噪技术) 是目前防御浏览器指纹(包括音频指纹、Canvas 指纹、WebGL 等)最顶尖的技术方案方案之一。

它的核心设计理念是:不采取“一刀切”的封锁 API 策略(防止网页功能崩溃),而是向 API 返回的数据中注入微小、受控且伪随机的“数学噪声”。这样既破坏了追踪脚本的计算一致性,又让人耳或常规应用完全感知不到差异。

一、 传统防御方案的困局

在 Farbling 出现之前,隐私保护主要有两种思路,但都有致命缺陷:

  1. 直接屏蔽 API(Block/Disable):直接禁用 Web Audio API
    • 后果:会导致所有在线网页音乐播放器、音频剪辑工具、Web 游戏甚至简单的网页音效完全瘫痪。
  2. 完全标准化/全网统一(Standardization,如 Tor 浏览器):强制所有用户返回完全相同的音频数据。
    • 后果:虽然无法追踪单个用户,但用户会变成一个极显眼的“防追踪异类”。此外,完全抹平底层硬件差异在复杂多变的现代 Web Audio 管线中极难完美做到。

二、 Farbling 防御音频指纹的核心运作机制

Brave 的 Farbling 机制针对 Web Audio API 的工作流,做了非常精妙的技术设计:

[Web Audio 算法 / 浮点计算]
          │
          ▼
┌─────────────────────────────────────────┐
│           Brave 浏览器 Farbling 引擎      │
│  1. 提取 Seed: Hash( Domain + Session ) │
│  2. 计算微小微调因子 (Fudge Factor)      │
└─────────────────────────────────────────┘
          │
          ▼
┌─────────────────────────────────────────┐
│        将伪随机微小扰动注入 AudioBuffer  │
│      (例如音频采样值 * 1.000000123)     │
└─────────────────────────────────────────┘
          │
          ▼
[返回给前端 JavaScript 脚本 (如 collina.js)]
 ➔ 脚本计算得到的 Audio Hash 被成功“毒化”(Poisoned)

1. 确定性随机化种子(Deterministic Per-Domain / Per-Session Seed)

如果只是给每次 API 调用都加纯粹的随机数,虽然能阻止追踪,但也可能导致部分需要频繁读取 Audio Buffer 的合法 Web 应用出现逻辑错误。

因此,Brave 采用了伪随机(Pseudo-random)策略:

  • Brave 会根据 当前的网页主域名(eTLD+1) + 当前会话 ID(Session ID) 生成一个特定的随机种子(Seed)。
  • 同一网站在同一会话内:音频 API 返回的数据微调是完全一致的。网页重复读取,拿到的是同一个稳定但带有轻微偏差的数据,确保了网页内部音频逻辑的稳定性。
  • 跨网站(Cross-Site)siteA.comsiteB.com 获取到的“音频指纹”截然不同(因为域名 Seed 不同),跨站追踪脚本(如 AliExpress 关联的阿里数据服务)无法将两边的设备关联起来。
  • 跨会话(Cross-Session):关闭并重新打开浏览器后,Seed 改变,上个星期在 AliExpress 留下的音频 Hash 直接失效。

2. 微小乘法扰动(Fudge Factor Injection)

对于音频采样数组(AudioBuffer),Brave 会在 API 最终输出数据给 JavaScript 前,将其浮点数采样值乘以一个微小的微调因子(Fudge Factor)。

  • 对于计算机与哈希算法:原本浮点数运算结果中的 0.00000001 改变成了 0.0000000123,经过 SHA/MD5 运算后,最终生成的音频指纹 Hash 会变得完全不同(即所谓的“毒化指纹”)。
  • 对于人耳与音频播放:这种百万分之一级别的数值振幅变动,频率极其微弱,在数字信号转换成声音时完全处于人耳的听觉掩蔽阈值(Auditory Masking)之下,根本听不出任何杂音或失真

3. 针对隐蔽后台 API 调用的限制

除了 Farbling 注入数据扰动外,针对类似于 AliExpress 这类“在后台无声开启 AudioContext 占用音频通道”的行为:

  • Brave 强化了标签页生命周期与 API 权限管理,针对非激活(Background Tab)状态下的网页限制其 AudioContext 运行。
  • 防止其占用系统音频硬件驱动(例如导致蓝牙耳机误以为网页有音频输出而锁定连接)。

三、 Farbling 技术对比总结

特性传统 Chrome / Edge禁用 Audio API / 插件拦截Brave 的 Farbling 模式
设备真实特征100% 暴露出硬件计算差异被屏蔽/无数据被修改为伪随机微调数据
网页音频功能正常崩溃或无声完全正常(人耳无感知)
同网站同会话稳定性稳定(可追踪)无法运行稳定(保证 Web 应用逻辑无故障)
跨网站追踪能力极高(同一个指纹跨站碰撞)无法追踪(但会被标记为风险设备)完全失效(每个网站拿到不同指纹)
跨会话(重新开机)持续被追踪(硬件不变指纹不变)无法追踪指纹发生变化,无法长期追踪

通过 “微小数学扰动 + 域名/会话级伪随机隔离”,Brave 成功将 Web API 的“追踪工具属性”剥离,仅保留其“功能性属性”,实现了防追踪与网页兼容性的平衡。

分享您的喜爱

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注