背景介绍
2026年5月底,独立开发者 lanodan 发文揭露:Cloudflare 的 Turnstile 人机验证系统在过去一周内悄然改变行为,开始强制要求浏览器提供 WebGL 渲染器信息作为指纹识别数据。对于禁用 WebGL 指纹的浏览器——尤其是 Linux 平台上广泛使用的 WebKitGTK 浏览器——Turnstile 会陷入无限循环,导致用户完全无法访问受 Cloudflare 保护的网站。
Turnstile 官方理由称指纹用于区分人类和机器人,但 WebGL 指纹是公认的高风险追踪手段——连 Apple 都在 WebKit 内核层面硬编码了屏蔽机制。这意味着遵守最高隐私标准的用户反被排除在互联网之外。
核心争议
1. 指纹识别的正当性:WebGL 渲染器信息是高度可识别且不易更改的设备特征,一旦收集即可用于跨站追踪。Cloudflare 声称需要指纹来验证人类身份,但正如博客作者指出:”这类数据在 WebKit 中被屏蔽已经多年了,连 Apple 都认为这种追踪太糟糕了。”
2. 少数浏览器的困境:Cloudflare 的检测并非针对所有浏览器——Safari 因内置 WebGL 屏蔽被特殊放行,Firefox 因其指纹保护实现有漏洞(返回净化后的 GPU 特征而非硬编码字符串)也能通过。真正被拦截的是 WebKitGTK 等小众浏览器。Konform 浏览器维护者证实其用户群受到严重影响。
3. 互联网的封闭化:当占据大量流量的单一公司可凭商业利益决定哪些浏览器”值得信任”,开放互联网原则就受到了根本威胁。
技术分析
WebGL 指纹的核心原理:不同 GPU 和图形驱动产生略有不同的渲染输出,通过收集渲染器字符串、供应商信息和 canvas 像素哈希值,追踪者可生成高度唯一的设备标识符。
三大浏览器引擎策略各异:WebKit/Blink 返回硬编码通用字符串,彻底消除指纹维度;Gecko 返回”净化后”的 GPU 特征,仍保留部分可区分性。且 Firefox 的 privacy.resistFingerprinting 在用户选择”严格”隐私保护时也不会自动启用(Bugzilla#1916271)。Cloudflare 的做法实质上惩罚了实施最严格隐私保护的浏览器。
社区反应
denysvitali 指出 Cloudflare 还使用 JA3 TLS 指纹区分客户端——隐私导向的 Android 浏览器 Cromite 因多维度指纹检测持续出问题,唯一官方解决方案是签 NDA 加入 Cloudflare 浏览器开发者计划。
userbinator 警告:”别被’AI 爬虫’的胡话骗了——这只是制造共识的手段。这场’反机器人战争’将把互联网变成只有获批用户代理才能进入的围墙花园。”
Animats 直接发问:”Google 和 Cloudflare 之间是否有交易,让非 Chrome 浏览器越来越难用?”
whatwhyisthis 则持较中立态度:”考虑到通过 Cloudflare 的流量如此巨大,他们理应拥有足够多的替代信号判断你是不是恶意行为者。但你的浏览器配置在 Cloudflare 用户基数中占比太小,获得解决方案可能需要很久。”
来源链接
原文:Cloudflare Turnstile requiring fingerprintable WebGL
HN 讨论:https://news.ycombinator.com/item?id=48345840(473 分,262 评论)