词汇表·指纹识别
WebGL 指纹识别
使用WebGL图形信息和渲染输出来识别设备。
定义
WebGL 指纹识别使用 WebGL API(GPU 加速的 2D 和 3D 图形的浏览器界面)来收集设备特定信号:图形供应商和渲染器字符串、支持的参数和扩展以及渲染场景的像素。
它是如何运作的
- 脚本打开 WebGL 上下文并使用 getParameter() 和支持的扩展列表查询功能。
- 如果可用,WEBGL_debug_renderer_info 扩展会公开 UNMASKED_VENDOR_WEBGL 和 UNMASKED_RENDERER_WEBGL — 图形驱动程序的供应商和渲染器字符串。
- 它还可以渲染 3D 场景并对结果进行哈希处理,类似于画布指纹识别。
为什么这很重要
- GPU 细节随着时间的推移保持稳定,并且在不同设备之间有所不同,这使得它们成为强大的信号。
- 不匹配很重要:声称是 Mac 的配置文件同时报告仅包含 Windows 的 GPU 驱动程序字符串很容易被标记。
限制和常见误解
- “每个网站都可以读取我的 GPU 模型。” MDN 指出,根据浏览器隐私设置,调试扩展可能仅限于特权上下文或根本无法工作;当Firefox的privacy.resistFingerprinting启用时,它被禁用。
- “禁用 WebGL 会让我隐形。”关闭它本身就是一种罕见的、引人注目的特征,并且会破坏需要它的网站。
示例: 读取未屏蔽的渲染器字符串的页面可能会看到特定的 GPU 和驱动程序系列,它们与屏幕尺寸和字体一起大大缩小了设备的范围。
没有浏览器或代理可以保证帐户不会受到限制。遵守各个平台的规则。