← 返回博客

Chrome 152中的navigator.cpuPerformance:反检测和抓取的新信号

2026年8月25日,Chrome 152 引入了 navigator.cpuPerformance —— 这个属性用一个从 0 到 4 的数字告诉网站处理器的类别。这只有 2.3 位熵,但是免费读取的,在会话之间不会改变,并且与核心数量、内存和 GPU 一致性进行检查。我们来分析一下,谁受到的影响最大,以及现在在自己的个人资料中需要检查什么。

📅2026年9月21日
Chrome 152中的navigator.cpuPerformance:反检测和抓取的新信号

2026年8月25日,Chrome 152正式发布于Windows、Mac、Linux、ChromeOS和Android平台,并带来了属性navigator.cpuPerformance。这是一个从0到4的数字,网站可以同步读取,无需权限,也不消耗计算周期。它的设计初衷是为视频通话和直播提供提示:将240p分配给性能较弱的设备,而将1080p及特效分配给性能强大的设备。在发布两周后,抓取行业讨论了另一个问题:反机器人系统现在有了一个廉价且稳定的信号,表明您的浏览器运行在何种硬件上。

浏览器具体提供了什么

该属性返回的不是千兆赫兹或处理器型号,而是“性能等级”。根据WICG的说明书,等级分为四个加零:

  • 0 — 无法对设备进行分类;
  • 1 — 几乎不适合重负载任务;
  • 2 — 性能较弱,但可用;
  • 3 — 适合普通场景;
  • 4 — 性能强劲,适合多任务处理。

规范明确禁止透露供应商、型号名称和核心数量,要求使用HTTPS,并设定隐私目标:每个性能等级应覆盖互联网中显著比例的设备——大约数百种不同型号的CPU,以确保该值不会将受众缩小到个位数。

在Chromium中的实际实现比规范简单。在Zyte的分析中显示,分类主要依赖于逻辑核心的数量和内置的提升与降低表:频率根本不被考虑,尽管规范允许这样。AMD Ryzen、Intel Gracemont核心、Apple silicon和Intel Core Ultra获得提升;而Intel Atom和Core 2时代的处理器则被降级。粗略的对应关系如下:单核和非常弱的机器进入第一等级,两个到四个核心进入第二等级,四到十个核心或现代节能芯片进入第三等级,而八个及以上核心的Core Ultra、Apple M系列及所有十个核心以上的处理器则为第四等级。

为什么这是检测信号,而不仅仅是另一个熵字节

单独的值很弱:五个选项大约提供2.3比特的熵,甚至低于界面语言提供的熵。危险在于其他三个属性。

它是免费的。为了通过时间测量获取JS的真实执行速度,检测脚本需要占用处理器数十毫秒,这在分析器中是显而易见的。而这里——是同步读取属性,零成本,零痕迹。

它是稳定的。该值不依赖于检查时机器的负载:这是硬件类别,而不是当前的利用率。在会话之间、重启和IP更换时,它保持不变——这意味着它可以作为长期存在的个人资料标识的一部分。

它可以验证一致性。这是最重要的。现代反机器人引擎很少仅根据一个字段进行封禁——它们寻找集合中的内部矛盾。声称为第四等级的设备必须通过合理的navigator.hardwareConcurrency、合理的navigator.deviceMemory、现代的GPU渲染字符串和相应的JS执行速度来证实其真实性。一个声称为四级且执行基准测试如同双核虚拟机的个人资料,会通过简单的交叉验证被捕获。

单独来看,几乎形成了“数据中心与真实用户”的水分界线:典型的云实例在两个vCPU上诚实地报告为第一等级,而消费类笔记本电脑和手机则处于第三到第四等级。对于在廉价VPS上以无头模式运行并伪装成普通Windows上的Chrome的抓取者来说,这种组合是非常不便的。

这与一直以来的hardwareConcurrency有什么不同

合理的问题是:网站之前通过navigator.hardwareConcurrency读取核心数量,通过navigator.deviceMemory读取内存容量。那么有什么变化呢?

变化在于关联性。hardwareConcurrency是一个原始数字,早已被广泛伪造:将八个替换为三十二,问题就解决了。cpuPerformance是一个派生值,由浏览器根据内置表计算得出。一旦集合中出现两个字段,其中一个是从另一个计算得出的,任何单方面的修改都会破坏它们之间的关联。设定了四个核心,而等级仍然是第四——根据实现逻辑,这种组合要么需要Apple silicon,要么需要Core Ultra,要么需要十个核心;这意味着要么核心数量是假的,要么GPU字符串是假的,检测器只需注意到不一致的事实,而无需查明谎言的具体位置。

正因如此,旧的“个人资料中哪些字段需要伪造”的检查清单不再是逐项过时,而是整个块的过时:现在正确的问题不再是“伪造什么”,而是“我们得到的硬件配置是否一致”。

谁受到的影响最大

仅限Chromium——这并不是一个减轻的因素。WebKit在这个API上采取了“反对”的立场,Mozilla没有公开立场,因此在Safari和Firefox中,该属性很可能不会出现。但绝大多数生产自动化——Playwright、Puppeteer、nodriver、Patchright、代理浏览器——都是基于Chromium构建的。也就是说,信号正好落在了最不被期待的细分市场。

这种矛盾对移动个人资料的仿真影响最大。如果反检测个人资料伪装成Android智能手机,而cpuPerformance在其下返回“4”,因为浏览器实际上是在带有Ryzen的桌面上运行——这不是小的错误,而是一对相互排斥的信号。对于农场场景也是如此,数十个具有不同“设备”的个人资料生活在同一主机上,因此给出相同的等级。

这对解析堆栈有什么影响

对于那些批量运行无头浏览器的人来说,有几个实际的后果。

  • 容器继承主机。在Docker中的浏览器看到的是主机机器的核心,而不是cgroup的限制——这意味着在一台强大的服务器上运行的十个容器将给出十个相同的最大等级。您在用户代理中努力绘制的个人资料多样性在硬件层面上是不存在的。
  • 廉价VPS现在更显眼。两个vCPU是第一等级,而在Windows上的桌面Chrome中,第一等级的人类用户并不常见。以前,弱服务器只是慢;现在它还被标记。
  • 网站免费获取信号。像时间基准这样的重负载检查,网站会选择性地包含,因为它们消耗用户的时间。读取属性不花费任何东西,因此即使是那些以前仅限于IP声誉和头部的站点也会将其添加到基本集合中。
  • 它将与计算压力相结合。在Chrome的发布说明中,明确建议将新的API与计算压力API结合使用——即“硬件类别加上观察到的负载”的组合最初被设计为标准场景,反机器人系统无需发明任何东西。

另外,需要重新审视这样的假设:仅仅收集一次“良好”个人资料并重复使用多年就足够。浏览器在没有最终用户公告的情况下添加这些属性:在Chrome 152发布与首次公开分析之间的几周内,个人资料安静地返回了新字段,丝毫没有察觉。检查字段集合的意义在于每个发布周期,而不是每年一次。

实际该怎么做

  1. 获取当前值。在个人资料控制台中:navigator.cpuPerformance、navigator.hardwareConcurrency、navigator.deviceMemory和WebGL渲染器字符串。一次记录四个,而不是单独记录——您将被检查这一组合。
  2. 将等级与个人资料图例进行核对。移动图例——第一到第三等级,预算笔记本——第二到第三,旗舰桌面——第四。伪装成旧Android的四级或伪装成M系列的MacBook的一级都是同样可疑的。
  3. 不要直接修改属性。通过Object.defineProperty进行的伪造会因重定义getter的痕迹和与真实执行速度的不一致而被捕获。如果要修改,也应在浏览器构建级别或通过内置机制进行。
  4. 记住合法的覆盖。Chrome在设置中提供给用户一个选项(性能→速度→覆盖CPU性能等级),而管理员则有企业政策。这从两个方面都很有用:值不仅可以是“真实的”,还可以是手动设置的,而在个人资料池中大规模相同的覆盖本身也成为了一个标记。
  5. 将个人资料分散到不同的硬件上。如果您的所有个人资料都在同一台服务器上,那么它们的等级将是相同的——无论它们伪装成什么设备。在这种情况下,拥有几台不同配置的机器可以诚实地解决问题,而补丁则无法。

有关同类信号的更多细节,请参阅设备内存量的指纹分析,而关于那些具有此类属性的隐形浏览器的基准测试,请查看nodriver、Camoufox和Patchright的基准测试。

这里的代理是什么

直言不讳地说:代理并不能修复浏览器指纹。cpuPerformance是在客户端计算的,任何IP都无法改变它。但反机器人系统根据多个层次的总和做出决策,而通常在层次交汇处会发生失败。

典型的廉价设置崩溃链如下:来自知名托管网络的IP,处理器的第一等级,无头特征的JS——这三个独立信号,每个单独都是可以接受的,而它们组合在一起则形成明确的判决。将网络层从这个总和中去除比与浏览器字段作斗争更便宜、更可靠:来自住宅IP的请求看起来像普通家庭提供商的流量,因此“数据中心”假设在检测器中自然消失。对于移动个人资料,逻辑也是一样——移动代理必须支持移动个人资料,否则矛盾就会从处理器转移到网络。

简而言之

Chrome 152添加的不是一个新的指纹,而是交叉验证表中的一行新数据。两个多比特本身并不会泄露任何人——泄露的是不一致性:声明的设备必须与处理器类别、内存容量、显卡、执行速度和请求来源的网络一致。本周的个人资料审计应从控制台中的一行开始,问自己“这样的硬件是否真的存在于我们所伪装的身份中?”