1. WebGPU 在浏览器指纹识别中的作用
WebGPU(截至 2025 年仍为实验性)是超越 WebGL 的下一代浏览器 API,用于与 GPU 交互。它在现代基于 Chromium 的浏览器中得到支持,并暴露了对低级 GPU 功能的访问,包括:
- 通过
GPUAdapter的适配器信息adapter.vendor(集成硬件厂商)adapter.device(GPU 型号)adapter.architecture
- 支持的功能:例如
timestamp-query、texture-compression-bc、shader-f16 - 限制:精度、纹理大小、缓冲区对齐等,每个 GPU 类别独一无二。
- 着色器编译行为 和执行模式
相比 WebGL,WebGPU 为指纹引擎提供了更清晰、更具可移植性和更精确的 GPU 相关数据。这使其成为高级指纹检测系统中的优先项,特别是在身份验证、游戏和监控级分析等注重精确度的平台中。
2. 平台如何检测 WebGPU 指纹
与 WebGL 不同,WebGPU 使用异步方法来收集设备级功能。平台通过以下方式提取这些数据:
- 在
navigator.gpu.requestAdapter()上运行异步查询,并收集:
- 厂商 ID
- 设备名称
- 适配器架构
- 驱动版本(如果未被内核或浏览器沙箱伪装)
- 自动检查支持的功能和限制:
- 动态记录哪些功能(如
read_only_depth_stencil或downlevel-*)存在 - 记录可用 GPU 内存、计算限制和精度值
- 与其他指纹向量交叉监控,如:
- 浏览器制造商
- 设备 UID(如果稳定)
- 系统架构
- WebGL 信息
- 操作系统版本
- 检测设备类型和稳定性信号:
- 例如,检测系统可能标记那些似乎处于 GPU 访问被模拟或虚拟化环境的设备
- 基于 WebGPU 的长度分析通常用作设备完整性检查,用于自动化和指纹工具
注意:WebGPU 指纹识别目前仅在支持 webgpu API 的基于 Chromium 的浏览器中可用,使其成为面向未来的指纹技术。
3. FlashID 如何掩码 WebGPU 指纹
FlashID 引入了先进的 WebGPU 指纹掩码,以禁用真实设备与在线使用设备之间的对应关系。该系统模拟适配器数据和功能映射,以匹配真实浏览器-设备组合的行为。
FlashID 的 WebGPU 伪装包括:
- 伪造 GPU 适配器信息:
adapter.vendor伪装(例如"Google Inc."、"NVIDIA Corporation")adapter.device模拟(例如"ANGLE (Intel, Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake))")adapter.architecture身份控制(例如"Skylake"或"Stoney")
- 功能与限制掩码:
- 启用自定义
supportedFeatures设置,如timestamp-query、depth_clip_control、shader-f16等 - 模拟与已知 GPU 类别或伪造适配器配置文件一致的真实
supportedLimits值
- 设备功能稳定化:
- 每个浏览器配置文件的配置确保该浏览器所有加载的一致性
- 如
maxColorAttachments、maxVertexBufferArrayStride和maxWorkgroupSize等限制被伪装,同时保持行为上的合理性
- 跨 API 一致性管理:
- 与
WebGL、Canvas、GPUInfo和User-Agent的伪装同步,确保无矛盾可检测 - 将伪造的 GPU 厂商和驱动与伪造的 IP 位置、浏览器语言、键盘布局和时区匹配,以避免检测
- 高级检测弹性:
- FlashID 理解平台的启发式检查,并模仿典型的 WebGPU 计时、结构和行为
- 如果 WebGPU 访问被阻塞或不允许(例如由系统沙箱或检测引擎),FlashID 使用模拟解析的适配器和备用功能来模拟其存在,并带有可信的执行延迟。
由于其清晰、结构化的 GPU 级数据暴露,WebGPU 正日益被跟踪厂商采用。FlashID 提供强大的模拟和伪装支持,使用户能够完全更改和隔离他们的 WebGPU 设备配置文件,保护身份并实现多账户管理,而不会增加签名重叠风险。
您可能还喜欢

