术语表

音频指纹

把一段合成音送进浏览器的音频栈处理,再对输出的数字做哈希得到的标识(audio fingerprint)。

也称:AudioContext 指纹, 音频指纹识别。

采集音频指纹的过程从不发出声音。网页建一个离线音频上下文,把合成波形送进一个处理节点(例如动态压缩器),再把得到的采样缓冲区当作数字读回来。这些数字在小数末几位上会因机器而异,因为音频栈的浮点运算受 CPU、浏览器构建版本和系统自带库的影响。对缓冲区做哈希,就又得到一个稳定的标识,几毫秒采完,不需要权限,也听不见任何声音。

值得了解它,主要是因为它是最容易被漏掉的采集面之一。一套认真处理了 Canvas 和 WebGL、却让音频照实上报本机数值的配置,等于在这台电脑上的所有环境之间留了一处接缝:两个处理过的环境处处不同,唯独没人检查的那一处相同。Argus 把音频当作与 Canvas、WebGL 同级的采集面,在渲染器里落地,用同样的四种模式配置,因此它是默认被覆盖的,而不是靠人记得。机制见指纹页面