中国电商平台速卖通(AliExpress)近日被研究人员发现正在对访客实施浏览器指纹追踪,其中一种已过时的技术手段——向浏览器发送不可闻声音来采集特征——意外干扰了一位研究人员使用蓝牙耳机,从而暴露了这一行为。
研究人员马修·卡拉汉表示,他是偶然发现这一隐蔽追踪行为的。在加载速卖通主页后,他手机上的音频停止通过多点蓝牙耳机播放。这款耳机可同时连接多台设备,并设定为仅在电脑无音频输出时才播放手机声音。每次加载速卖通页面,手机音频就会中断;每次关闭该标签页,手机声音又会恢复。
在排查这一异常行为的过程中,卡拉汉发现了两段高度混淆的脚本。这两段脚本共同生成了一张图形,用于分析每位访客浏览器的WebAudio读数。该图形的作用类似振荡器,用于测量锯齿波——这是数字音频输出中常见的波形。
"振荡器生成一段已知波形,"卡拉汉写道,"分析器测量该波形经过浏览器音频处理引擎后的输出结果,脚本再从中读取频率数据。"
这些脚本将增益设为零,以防止用户听到任何声音。但由于该图形仍连接至所选的系统音频设备,浏览器仍会继续对其进行处理,最终将数据发送至速卖通。
不同浏览器在处理音频时所使用的数学库存在差异,过去这种差异与不同的CPU及系统环境相结合,能够产生数量庞大、各不相同的唯一签名。随着音频声纹识别技术被广泛知晓,Firefox从2023年发布的118版本起引入了修复方案,开始使用自有的数学库,而非依赖操作系统自带的数学库。曾参与Tor项目的Firefox开发者汤姆·里特表示,切换至固定数学库后,熵值大幅降低,使该技术失去了实际效果。
谷歌方面表示,该技术在Chrome中同样无效,因为Chrome也内置了自己的数学库。Safari用户出于同样原因也可能不受影响,但苹果方面暂未就此作出回应。
速卖通使用这种已过时的指纹追踪方法,不禁令人疑惑:为何还要费心使用?答案很可能与其同时采用的十余种其他指纹追踪手段有关。卡拉汉表示,其他技术手段包括:
Canvas渲染与toDataURL()接口
WebGL渲染器信息、扩展及着色器精度
音频振荡器与分析器输出
屏幕与视口尺寸
设备像素比
硬件并发数与设备内存
已安装的浏览器插件
支持的音频与视频格式
WebRTC行为
浏览器性能计时
鼠标、触摸、焦点与滚动事件
设备运动与方向
与浏览器自动化工具相关的属性
WebAudio这一追踪手段很可能是多年前遗留下来的,此前从未有人注意到。
浏览器厂商已采取防护措施,这令人感到些许欣慰。但速卖通正在使用的其余追踪指标究竟效果如何,目前尚不明朗。更令人担忧的是,几乎可以肯定,数以千计的网站都在使用类似的追踪手段。浏览器开发者正与网站发布者进行一场动态博弈,后者始终在寻找突破最新防护机制的新方法。
Q&A
Q1:速卖通用来追踪用户的音频指纹技术是什么原理?
A:速卖通通过在浏览器中运行WebAudio脚本,生成一段用户无法听到的锯齿波音频(增益设为零),再测量浏览器处理该音频后的频率数据。由于不同设备、操作系统和CPU所用的数学库存在差异,处理结果也各不相同,由此形成可识别用户的唯一"声纹",即使用户未登录也能被追踪。
Q2:这种音频指纹追踪技术对哪些浏览器有效?
A:该技术对Firefox 118及更高版本无效,因为Firefox已改用内置数学库,降低了音频输出的差异性。Chrome和Safari同样内置了自己的数学库,因此也不受此技术影响。该技术主要对早期版本浏览器或仍依赖操作系统数学库的浏览器有效。
Q3:速卖通除了音频指纹之外还用了哪些追踪手段?
A:速卖通同时使用了十余种指纹追踪技术,包括Canvas渲染、WebGL渲染器信息、屏幕与视口尺寸、设备像素比、硬件内存、已安装插件、支持的媒体格式、WebRTC行为、浏览器性能计时、鼠标与触摸事件,以及设备运动方向等,多种手段组合使用,大幅提升了用户识别的准确性。
