跳至正文
中文
立即开始

AudioContext 指纹识别

AudioContext 指纹识别是一种浏览器识别技术,通过测量 Web Audio API 处理过程中的细微差异,将结果转化为指纹信号。

文章目录(8 个章节)

AudioContext 指纹识别的工作原理

网页运行 JavaScript 并创建 AudioContext,通常使用不会向扬声器输出声音的 OfflineAudioContext。随后,脚本会:

  1. 使用振荡器生成已知信号。
  2. 让信号经过压缩器、滤波器等节点。
  3. 渲染信号并读取生成的采样值。
  4. 将选定值转换为短哈希值。

这些细微差异可能来自浏览器的音频引擎、浏览器版本、操作系统、CPU 架构和浮点运算。在同一软件环境中重复相同测试,通常会得到相似结果。

结果代表什么

这个哈希值并非设备序列号,许多用户可能得到相同结果。它需要与屏幕尺寸、已安装字体、时区和图形输出等其他浏览器指纹识别信号结合使用,才能发挥作用。

浏览器更新、操作系统变更或隐私保护功能都可能改变结果。部分浏览器会限制 Web Audio API、标准化其输出或添加噪声,以降低指纹的稳定性。

AudioContext 与 Canvas 指纹识别的区别

两种技术都会在浏览器内生成内容,并测量渲染过程中的细微差异,但测试的是不同子系统。

AudioContext 指纹识别 Canvas 指纹识别
子系统 音频处理 2D 文本和图形
测量结果 音频采样值 渲染后的像素值
用户授权 通常不需要 通常不需要

Canvas 指纹识别通常会与 WebGL 指纹识别和音频测量结合使用,而不是单独使用。

为什么代理用户需要关注

代理会改变网站看到的 IP 地址,却不会改变 Web Audio 输出,因此轮换 IP 不会轮换 AudioContext 指纹。稳定的指纹如果出现在多个 IP 地址下,可能成为机器人检测的一项判断依据,但负责任的系统不应仅凭这一点将其视为确凿证据。

开展获授权的自动化与测试时,应保持浏览器环境一致,将请求频率控制在网站限制内,并遵守网站条款和 robots.txt。网站运营方应按要求披露指纹识别行为,只采集必要信号,避免根据单次噪声较大的测量结果决定是否允许访问。

常见问题

AudioContext 指纹识别会录制麦克风吗?

不会。常见方法会在浏览器内生成并处理合成信号。麦克风录音使用另一套受权限控制的 API。

代理能阻止 AudioContext 指纹识别吗?

不能。代理改变的是网络路由和对外显示的 IP 地址,不会改变浏览器的音频运算。浏览器的隐私设置可能会限制或标准化这些运算。

AudioContext 指纹是唯一的吗?

通常单独使用时并不唯一。多台设备可能产生相同结果,因此网站往往会将其与 Canvas、WebGL 和其他浏览器信号结合使用。

相关术语

查看全部术语