还没有和我们在一起吗?
注册以访问所有网站功能。
注册12.08.26
直到最近,浏览器中的GPU指纹识别主要与WebGL相关:网站会强制浏览器渲染特定场景,分析结果,并接收一个额外的信号来识别设备。反检测浏览器早已学会通过修改声明的参数、干扰渲染、添加噪声或直接篡改结果来绕过此类检查。随着WebGPU的出现,情况变得更加有趣。
新的 API 让网页能够更直接地访问 GPU 的计算能力——这意味着 GPU 不再仅仅是一个用于渲染图像的设备,而变成了一个可以被分配任务并进行监控的工具。对于反欺诈而言,这是一个根本性的转变。仅仅询问浏览器“你使用的是哪款显卡?”是一回事,而将任务分配给该显卡并监控其硬件的实际运行情况则完全是另一回事。这正是 Vektor T13 网络研讨会上讨论的 WebGPU 原子指纹背后的理念。
对于普通用户而言,这项技术几乎是隐形的。然而,对于反检测浏览器开发者、多账户专家,以及日益重要的浏览器人工智能代理基础设施而言,它却意义非凡。随着越来越多的浏览器自动化程序迁移到虚拟专用服务器 (VPS)、虚拟机和服务器集群,浏览器声称运行的硬件与其实际运行的硬件之间的差距也越来越大。WebGPU 为反欺诈提供了一种检测这种差距的新方法。
传统的浏览器指纹识别主要基于读取环境特征:例如浏览器名称、操作系统、屏幕分辨率、已安装的字体、Canvas 的行为方式、可用的 WebGL 渲染器以及系统报告的硬件性能。这种方法的缺陷显而易见:如果数据是通过 API 传输的,那么网站和实际设备之间始终存在一个软件层——而理论上,这个软件层是可以被修改的。
这正是反检测浏览器的工作原理:它们试图向网站展示一组与实际机器配置不同的特征。浏览器可能运行在服务器上,但网站看到的却是普通家用电脑的配置信息,该电脑运行的是Windows系统,并配备了常见的NVIDIA GeForce显卡。从简单的API层面来看,这似乎很有说服力。但如果你换个角度思考——不是“这是什么类型的设备?”,而是“让设备自行判断”——情况就完全不同了。
本次网络研讨会的一个实用见解涉及使用指纹检测器时常见的一个误区。如果某个服务在“WebGPU”标签旁边显示一个很长的哈希值,人们很容易误以为这是唯一的硬件指纹。但实际上,哈希值的存在并不能说明任何问题:哈希值只是对一组数据进行转换的结果,如果原始数据在数百万台设备上几乎完全相同,那么一个看似复杂的字符串并不能成为神奇的标识符。
因此,在分析任何检测器时,与其关注最终的字符串,不如关注构成该字符串的数据,这样更有意义。如果一项服务使用一套标准的 WebGPU 限制和功能,那么大多数参数在大量机器上都会匹配——这样的哈希值便于比较配置,但不能自动将其视为特定显卡的唯一指纹。因此,养成一个简单却重要的习惯:不要问“检测器显示的哈希值是什么?”,而要问“它究竟测量的是什么?”
WebGPU 的价值在于它允许我们将一些指纹识别信息从声明域转移到行为域。无需读取另一个参数,即可启动计算任务。本文讨论的测试使用了计算着色器和原子操作:多个并行线程通过原子加法操作共享一个计数器。对于普通开发者而言,这只是一种同步并行计算的机制。但对于指纹识别研究人员来说,他们更感兴趣的是:GPU 究竟是如何组织和调度这些并行工作的。
现代显卡并非只是一组相同的计算单元:任务分配基于复杂的软硬件架构,最终的运行结果会受到GPU代数、驱动程序、负载调度器、性能设置和环境因素的影响。这就像一场实验。网站不会问“你用的是RTX 2080吗?”,而是说“这是任务,运行它”,然后分析执行情况。关键在于:声明可以用字符串代替,但真实硬件的行为却很难伪造。
我们来看一个典型的配置。配置文件告诉网站,用户正在一台配备独立NVIDIA显卡的普通家用电脑上操作,用户代理匹配Windows系统下的标准Chrome浏览器,其他参数也都经过精心选择。但实际上,浏览器运行在VPS服务器上,而VPS并没有配备上述显卡。在某种程度上,这种差异可以在API层面上被隐藏:查询GPU型号会返回预期值,检查WebGL渲染器也会返回正确结果。
计算测试提出了一个不同的问题:如果声称的硬件确实存在,为什么实际的计算行为与它如此不同?这并不意味着一次WebGPU测试就能断言“我们找到了反检测方法”——反欺诈软件几乎从不会如此粗略地工作。但另一个重要的信号浮现出来,而这些信号正是现代风险评估系统所需要的。这里最有趣的不是识别显卡型号,而是发现矛盾:浏览器声称的是一种情况,而硬件的行为却表明了另一种情况。正是数字身份中这些内部矛盾之处,日益引起反欺诈软件的关注。
该网络研讨会引用了此方法约 70% 的识别准确率数据。在没有对具体方法进行描述的情况下,不应将此视为任何 WebGPU 原子指纹的普遍特征,但问题的表述本身就清晰地体现了反欺诈逻辑。外行人可能会想:“只有 70%?这意味着测试不可靠。” 对于反欺诈而言,这种逻辑是有缺陷的——它并不需要一个准确率达到 100% 的完美信号。
想象一下这样一个系统:它同时监控浏览器特征、用户代理、IP 类型和信誉、自治系统编号 (ASN)、地理位置、行为参数、Canvas、WebGL、WebGPU、CPU 和 GPU 性能、虚拟化迹象以及账户历史记录。每个指标单独来看都可能出错,但它们的组合却能得出截然不同的结果。这就像调查一样:单一证据很少能破案,但十几个指向同一方向的独立事实却具有完全不同的分量。因此,即使是精度一般的硬件信号也极具价值。
这对于反检测浏览器市场来说是一个特别棘手的问题。用户打开一个公开的检测工具,看到绿色的数值,就断定浏览器通过了测试。但检测工具和真正的反欺诈系统解决的是不同的问题。公开的检测工具需要提供用户友好的结果;而真正的系统甚至可能不会公开它收集了哪些信号以及每个信号赋予的权重。此外,它不一定需要将你的指纹与某种“正确”的标准进行比较——只要注意到统计上异常的特征组合就足够了。
因此,在测试反检测环境时,正确的问题不是“我是否通过了检查器?”,而是“设备的实际行为是否与网站看到的配置文件相符?” 这两个问题之间的区别非常巨大。
当一种新的指纹出现时,市场最初的反应是可以预见的:需要对其进行随机化处理。这对于某些类型的指纹来说行之有效,但对于具有计算特性的指纹而言,却会产生一个根本性的问题。如果这种变化并非自然发生(在硬件和驱动程序层面),而是人为地(在浏览器内部)发生,那么就会引入一个新的行为层面。而这一层面也值得我们去探索。
反欺诈系统不再询问“指纹是否相同?”,而是开始提出其他问题:结果的稳定性如何?它是否与其他硬件特性一致?它是否会在不同运行之间发生变化?所声明的GPU型号是否能够展现这种行为?这是一场永无止境的竞赛:我们隐藏一个信号,系统就开始分析它被欺骗的机制。这正是原始随机化逐渐走向死胡同的原因:对于稳定的配置文件而言,环境的内部一致性比随机结果更为重要。
还有一个重要的细节。说到通过计算进行GPU指纹识别,我们很容易想象一个高负载的基准测试:风扇高速运转,显卡负载飙升至100%,用户立刻察觉到异常。但测试并非一定要如此。在网络研讨会的演示中,Atomic Fingerprint运行速度非常快,而且不会导致明显的负载峰值——这才是关键所在。
指纹识别并不需要进行全面的GPU性能测试;一个小型、定制的计算任务就足以完成识别。这对网站来说非常方便:测试集成到常规页面加载过程中,避免了用户访问在线商店时触发FurMark测试,用户可能根本不会察觉到任何异常。这正是WebGPU对反欺诈软件如此具有吸引力的原因:它允许直接从网页访问相对底层的计算,而无需安装单独的应用程序。
几年前,这类研究的主要受众是反检测浏览器开发者、联盟营销人员和多账户专家。如今,又一个庞大的群体加入了他们的行列:浏览器人工智能代理。这类代理会不断与普通网站交互:搜索信息、填写表单、使用软件即服务 (SaaS)、管理仪表盘以及测试界面——通常使用 Playwright、Chromium 和其他自动化框架。而所有这些操作通常并非在用户的笔记本电脑上运行,而是在云端进行。
单个服务器可以托管数十个浏览器:编排器创建和销毁容器,会话在节点间迁移,每个浏览器都被分配了自己的配置文件,从外部来看,它们都表现为独立的设备。这通常足以满足传统的自动化需求,但不足以进行深入的设备指纹识别。代理的逻辑身份开始与机器的物理身份产生差异:代理将自身视为一个设备,浏览器配置文件描述的是另一个设备,GPU 属于第三个基础设施,IP 地址来自第四个网络——而所有这些信息都可以同时被风险评估系统获取。
这催生了一类新的关联信号。想象一下,一个平台并行运行数百个浏览器代理:每个代理都有自己的配置文件、cookie、本地存储和屏幕分辨率,因此在应用层面上,这相当于 100 个独立用户。但实际上,它们可能都运行在多个相同的服务器上。如果数十个看似独立的设备表现出非常相似的底层计算行为,系统就有理由怀疑它们来自同一个基础设施。对于多账户来说,这是一个老问题的新形式;对于人工智能代理行业来说,这是一个规模才刚刚开始显现的问题。即使是那些完全合法运行代理的用户也会受到影响:我们迟早都要弄明白,为什么网站会将这种基础设施视为可疑的自动化行为。
虚拟服务器几乎对每个人都很方便:它价格低廉、全天候可用、易于克隆,而且非常适合自动化。但它不必看起来像一台普通的用户电脑——随着越来越多的硬件规格可以通过浏览器访问,这种差异也越来越难以忽视。以前,你只能依靠系统报告的信息;现在,你可以测试它的实际运行情况。
WebGPU性能测试展示了问题的一个方面——特定GPU操作的执行速度。原子指纹测试则从另一个角度出发——并行执行的性能表现。随着时间的推移,这类测试可能会变得越来越普遍,而且测试对象也不仅限于显卡:CPU、内存、定时器、调度器特性、虚拟化、图形堆栈——现代浏览器提供了广阔的测试领域。
原网络研讨会将 WebGL 指纹识别技术描述为一种应该被 WebGPU 取代的技术,这一点值得在此澄清。更强信号的出现通常并不意味着旧信号会立即停止收集:低成本的额外反欺诈功能几乎总是有用的。因此,更准确的说法是,WebGPU 不是“取代 WebGL”的按钮,而是硬件指纹识别的下一代技术。WebGL 提供了一组功能,WebGPU 提供了另一组功能,性能测试提供了第三组功能,用户代理和客户端提示提供了第四组功能。反欺诈系统无需只选择其中一种;系统的优势在于多种功能的组合。
出于同样的原因,完全禁用 WebGPU 的做法也无效。虽然这种方法可以作为一种诊断手段:您可以比较网站在启用和禁用 API 时的行为,从而确定哪些功能依赖于 WebGPU 的可用性,但作为一种永久性策略,禁用 WebGPU 的效果并不理想,因为技术的缺失本身也是一种特征。如果 WebGPU 成为现代浏览器的标准功能,那么完全禁用该 API 的用户画像可能会显得格格不入。此外,WebGPU 的需求日益增长,不仅用于指纹识别,还用于图形处理、计算以及越来越多的 Web 应用程序,包括一些直接在浏览器中运行的 AI 工作负载。这就引出了一个常见的陷阱:仅仅通过禁用 API 来无限期地提升隐私保护是行不通的——在某种程度上,被禁用的功能本身也会成为一种指纹。
或许这是整个 WebGPU 故事中最重要的启示。反欺诈通常被描述为一系列检测器:VPN 不好,代理不好,WebGPU 不匹配不好,自动化不好。但实际系统要复杂得多。企业网络用户完全合法地连接到 VPN;开发人员在虚拟机中工作;云游戏服务提供远程 GPU;人工智能代理从定义上来说就是自动化。因此,仅仅一个事实是不够的——系统会尝试理解上下文并评估整个组合的合理性。而这正是构建不佳的环境开始出现问题的地方:浏览器显示一种情况,GPU 显示另一种情况,性能显示第三种情况,IP 地址显示第四种情况,用户行为显示第五种情况。每个特征单独来看都无可厚非,但它们组合在一起却构成了一个在现实世界中难以发现的设备。
这正是静态指纹时代逐渐走向终结的原因。长期以来,市场一直认为指纹是一组数值:Canvas 哈希值、WebGL 哈希值、AudioContext、字体、屏幕分辨率、硬件并发性等等。收集这些数值,将它们组合起来,就能得到一个标识符。如今,一个更有趣的趋势是主动指纹识别。在这种识别方式中,网站不再简单地询问设备的特征,而是给设备分配任务并监控其响应。这与行为生物识别更为接近,只不过对象是计算机而非人:操作执行速度、并行负载分配情况、结果稳定性、系统在变化条件下的表现,以及所有这些是否与声明的硬件相符。伪造这些问题的答案相对容易,但要伪造系统行为的全部物理机制则要困难得多。
对于反检测浏览器开发者而言,结论相当令人沮丧:指纹识别技术正不断下沉。仅仅修改 JavaScript API 已不再足够——测量手段越接近实际硬件行为,构建合理的抽象模型就越困难。对于多账户专家来说,这意味着基础设施的质量比反检测接口中的开关数量更为重要:仅仅一个绿色勾号并不能保证万无一失。仲裁团队应该将基础设施风险与 IP 和浏览器配置文件的质量分开评估——昂贵的住宅代理并不能解决设备层面的不一致性。
对于人工智能代理开发者而言,问题更为广泛:他们不仅要设计代理的智能,还要设计其与外部数字环境的交互。如果成千上万个自主浏览器在云端运行,网站必然会学会区分这种基础设施和普通用户设备。这并不一定意味着要进行屏蔽——随着时间的推移,识别合法代理的适当机制很可能会涌现。但在这些机制出现之前,浏览器自动化是在一个历史上为人类设计的基础设施中实现的——而反欺诈软件也看到了这种矛盾。
原子指纹本身不应被视为一种全新的通用技术,它明天就能彻底取代反检测浏览器。反欺诈技术的演进方式截然不同:新的信号出现,经过分析,随后出现规范化和保护方法,反欺诈技术学习分析这些方法,然后又发现了新的信息来源。WebGPU 更像是一个方向指示。浏览器正日益成为一个功能强大的计算平台,这意味着网站不仅可以读取设备信息,还可以对其进行实验。
对于专家而言,这彻底改变了指纹识别的方法。主要问题不再是“浏览器报告了计算机的哪些信息?”,而是“计算机的行为是否与浏览器报告的信息相符?”——两者之间的差异巨大。在静态指纹识别领域,人们可以专注于正确的数值;而在主动指纹识别领域,则必须考虑整个环境的正确行为。因此,即使对于那些从未打算编写自己的GPU检测器的人来说,WebGPU原子指纹也具有重要意义:它清晰地展示了现代反欺诈技术的发展方向——从检查单个参数到检查设备的内部一致性。对于联盟营销人员而言,这意味着仅仅查看IP地址和绿色指示灯已经不够;对于反检测开发者而言,这意味着浏览器和硬件之间的界限变得越来越重要;对于人工智能代理工程师而言,这意味着执行基础设施本身正在成为代理身份的一部分。而对于反欺诈而言,这相当于用另一种方式向设备提出一个简单的问题:“你真的是你声称的那台计算机吗?”
点击 "接受",即表示您同意专家可以使用 cookie 来帮助个性化内容。
您可以根据我们的 Cookie 政策.