WebAssembly 指纹识别:浏览器如何变身为虚拟机并开始识别用户


03.05.26

几乎无人提及的技术

有时,互联网上最显著的变化往往悄然开始。当大家还在忙于围绕JavaScript屏蔽和“正确”隐私设置的争论时,浏览器中其实已经存在了一项工具,它正在不断拓展可能性的边界。这就是WebAssembly (Wasm):一种能在网页上以接近原生速度运行代码的方式。

我称 Wasm 为网络的“新猛兽”,绝非为了制造一个华丽的比喻。有了它,网站便拥有了一类全新的可能性,其中包括那些人们通常不愿公开谈论的内容:识别用户的新方法。

为什么JavaScript不再是头号嫌疑犯

长期以来,JavaScript 一直是个方便的靶子。数十种追踪和识别机制都依赖于它,因此 Tor 浏览器默认会屏蔽脚本,而 NoScript 及类似的扩展程序也成为了“强隐私”的象征。

问题在于,Wasm 正在改变这种平衡。它并未取代 JavaScript,却让浏览器变得明显更具“计算能力”。关于“安全浏览器”的旧有观念开始动摇,因为部分维度如今已进入一个领域,在那里简单的禁令不再像你习惯的那样奏效。

什么是 WebAssembly 以及它为何重要

WebAssembly 是一种格式和运行时环境,允许在浏览器中运行由 C、C++、Rust 等语言编译而成的代码。简单来说,网站可以访问比典型 JavaScript 更底层的计算能力。

由此衍生出我最喜欢的表述:浏览器有机会成为“计算机内部的微型计算机”。极致情况下,这在标签页中体验起来就像是“几乎与普通程序无异”:钱包、即时通讯工具、复杂的反欺诈代理。是的,与 VirtualBox 的类比听起来颇具挑衅性。但其含义很简单:浏览器正越来越接近硬件本身。

新的指纹技术:当速度成为身份标识

最有趣的部分在于,当Wasm不再仅仅是为了便利,而是为了指纹识别时。

当我提到通过 WebAssembly 实现的 «海量指纹» 时,我指的并非那些老牌的 Canvas 或 WebGL——毕竟许多人早已学会如何对其进行篡改。这里涉及的是你通常所理解的“单纯的运行速度”:性能和执行特性。

这个流程图因其简单而显得有些滑稽:

  • JavaScript 调用 WebAssembly 函数。
  • WebAssembly 反向调用 JavaScript。
  • 这种“乒乓球”式的交互会重复多次。
  • 您需要测量具体以及多快执行相同的操作。

接下来,您将统计数据转换为一个紧凑的标识符。在实际实现中,这很容易被封装,例如,使用SHA-256

令人胆寒的精准度

如果将所有数据整合得当,这种方法能够以低于1%的误差率区分用户。

因此,在这个认知框架下,“篡改 user-agent”不过是表面功夫。当引擎和硬件基础通过计算行为被识别时,请求头中的字符串几乎起不到什么作用。

实际上,此类测试能够:

  • 识别虚拟机的使用情况,
  • 区分VPS和服务器硬件与家用电脑,
  • 突出显示CPU类型和计算特性的差异。

重要提示:虽然存在绕过的方法,但这通常不再是“安装扩展程序后就置之不理”那么简单,而是需要具备工程技术理解能力并进行精细的资源配置。对于普通用户而言,这通常难以实现。

哪些地方已经在使用这项技术

当具体的名称开始浮出水面时,这便不再是“实验”了。

据我所见,这项技术已逐渐成为大型反欺诈平台的标准配置,其中包括:

  • CyberSource
  • PerimeterX

此外,有迹象表明微软是首批在其资源上部署Wasm指纹识别技术的公司之一,包括用于过滤那些看似自动化或来自虚拟化环境的注册请求。

为何这将成为“顶级”指纹识别技术

原因既简单又令人不快:

  • 高精度,
  • 在浏览器中相对容易启动,
  • 与真实硬件特性的绑定。

如果网站开始大规模收集此类遥测数据,这很快就会成为一种难以忽视的识别标准。而且无需等待“将来某一天”:Wasm早已进入浏览器并被广泛使用。

由此可得

如果将这一切归结为一个核心观点,那就是:浏览器中的隐私保护越来越少地取决于是否取消勾选某些选项,而越来越多地取决于硬件在高负载下的表现

WebAssembly最初是作为网页加速器设计的。但在实践中,它也成为了反欺诈系统的加速器,这些系统需要区分真人与机器人,以及真实设备与虚拟化环境。

因此,Wasm指纹识别并非又一个“恐怖故事”,而是一个至少值得在原理层面理解的主题。今后您将越来越频繁地遇到它,尤其是在高风险领域:金融、大型平台、用户注册以及防范滥用行为。

还没有和我们在一起吗?

注册以访问所有网站功能。

注册

相关帖子

点击 "接受",即表示您同意专家可以使用 cookie 来帮助个性化内容。

您可以根据我们的 Cookie 政策.