跳至正文
指纹识别

WebGL Fingerprinting

WebGL 指纹(WebGL fingerprinting)是一种通过 WebGL API 查询设备的 GPU 和图形驱动,以推导出诸如 renderer 字符串、厂商、所支持扩展和着色器精度等标识性元数据的技术。由于这些值反映的是真实的图形硬件和驱动构建,WebGL 信号高度稳定,甚至能很好地区分同一台机器上的不同浏览器。

工作原理

WebGL Fingerprinting 的工作原理

脚本会初始化一个 WebGL 渲染上下文,并调用参数查询函数来读取硬件和驱动的元数据。未经掩码的 renderer 和 vendor 字符串通常会指明具体的 GPU 型号和驱动,而所支持扩展的列表、最大纹理尺寸和着色器精度范围则暴露了图形栈的能力。

除静态元数据之外,脚本还可以渲染 3D 场景或运行着色器程序并读回输出,其方式类似于 canvas 指纹,但会调动整个图形管道。精确的浮点结果和像素输出取决于 GPU 架构和驱动,从而增添了更多区分性的细节。

WebGL 元数据往往非常稳定,因为 GPU 和驱动在给定设备上很少变化。它在同一台机器的各浏览器之间也大体一致,因为它们都与同一硬件通信,这使得 WebGL 在基于 user agent 的信号存在差异时,对跨浏览器的设备识别尤为有用。

出于隐私考虑,某些浏览器会掩码或泛化 renderer 字符串,返回一个通用值而非确切的 GPU。当出现这种情况时,该信号会失去精度,因此实现会相应地对其加权,并退回到基于渲染的探测手段。

为何重要

WebGL Fingerprinting 对欺诈防护为何重要

WebGL 指纹提供了浏览器中可用的一些最稳定、最贴近硬件的信号,这正是它在跨会话、跨浏览器以及清除 Cookie 后关联同一台设备时备受推崇的原因。在反欺诈工作中,它有助于揭穿那些伪造 user agent、却暴露出泄底 GPU 特征的反检测浏览器和虚拟机。其跨浏览器的一致性,对于检测操纵多个浏览器画像的单一行为者尤为宝贵。

使用 TRACIO

TRACIO 如何应对

TRACIO 将 WebGL 的 renderer 与能力数据纳入其 130+ 个信号之中,利用其稳定性在同一硬件上跨浏览器变更时锚定访客 ID。当所报告的 GPU 与其他信号冲突时——例如一台声称是移动设备的机器却暴露出数据中心的 GPU——TRACIO 会通过 Smart Signals 揭示这一不一致。这种分层运用既保持了识别的准确,又避免了对任何单一强信号的过度信任。

常见问题

常见问题

自信识别每一台设备

从每月 2,500 次 API 调用的免费方案开始。无需信用卡。