Bot 保护的隐私代价:Cloudflare Turnstile 与 WebGL 指纹识别
Bot 缓解与用户隐私之间的斗争已因 Cloudflare Turnstile 而达到了一个新的爆发点。虽然 Turnstile 的设计初衷是取代繁琐的 CAPTCHA,但其“验证您是人类”的挑战往往依赖于浏览器指纹识别——特别是通过 WebGL——来确定访问者是真实的人还是自动化脚本。对于使用隐私强化型浏览器或小众 WebKit 引擎的用户来说,这导致了验证失败的无限循环,实际上将他们拒之于互联网的很大一部分之外。
WebGL 指纹识别机制
最近的报告表明,Cloudflare Turnstile 已开始要求提供可被指纹识别的 WebGL 数据以通过其人类验证。WebGL (Web Graphics Library) 提供了关于用户 GPU、驱动程序版本和硬件能力的丰富信息。由于这些细节通常是唯一的或针对特定硬件配置高度具体的,因此它们是跨会话和跨网站跟踪用户的理想指纹。
当浏览器为了保护用户隐私而拦截或随机化这些数据时,Turnstile 经常会将该会话标记为可疑。Cloudflare 对这一做法的辩解非常直白:
Turnstile 使用浏览器指纹识别来验证您是人类。拦截或随机化指纹识别的隐私工具会让您的浏览器看起来像是一个试图隐藏身份的 bot。
这创造了一个矛盾的局面:用户采取的步骤越多,用于保护其浏览器并减少其攻击面,他们在 Bot 检测算法中就显得越“可疑”。
对替代浏览器的影响
这一趋势对使用非主流浏览器的人群产生了特别的影响。例如,基于 WebKitGTK 的浏览器用户报告称,他们陷入了 Turnstile 挑战的无限循环中。由于 WebKit 默认会拦截某些指纹识别向量,这些浏览器本质上被 Turnstile 的严格要求所禁止。
有趣的是,不同主流浏览器的情况有所不同:
- Safari: 通常可以通过,因为 Cloudflare 可能授予了例外情况,或者与 Safari 的特定缓解策略协同工作。
- Firefox: 默认安装通常可以通过,但手动启用
privacy.resistfingerprinting(主要为 Tor Browser 设计的设置)的用户经常发现自己被拦截或标记。 - Chromium Forks: 专注于隐私的 Chromium 分支,如 Cromite,在面对 Turnstile 时一直面临持续的挣扎,通常需要禁用特定的安全标志位以通过挑战。
技术辩论:安全 vs. 隐私
社区讨论突显了在如何解决这一问题上的深刻分歧。一些人认为,在 AI 驱动的 Bot 时代,指纹识别是一种必要的恶,并指出像 Proof-of-Work (PoW) 这样的替代方案在生态上成本过高,或者认为 IP 声誉机制甚至更具侵入性。
然而,批评者认为,这种方法迫使用户为了证明其人类身份而不得不扩大其攻击面。正如一位用户所指出的,Cloudflare 的实现方式阻止了用户“在任何地方获得安全,甚至是在他们并不保护的网站上”。
建议的替代方案与缓解措施
为了在不牺牲所有隐私的情况下绕过这些限制,出现了几种技术建议:
- 更智能的随机化: 与其拒绝 WebGL 访问或返回虚假数据,浏览器可以响应模仿常见且可重复的硬件模式的数据(例如,模拟一个流行的低配置 GPU)。
- Canvas Blocking: 一些用户发现使用 CanvasBlocker 等扩展程序可以取得成功,这可能比浏览器内置的
resistfingerprinting模式使用更微妙的随机化。 - Fallbacks: 有人呼吁 Cloudflare 实现更灵活的后备方案,例如 PoW 挑战,而不是简单地根据指纹缺失而禁止访问网站。
结论
向强制性指纹识别进行 Bot 检测的转变,标志着向“已验证身份”互联网的迈进,这其中访问内容的唯一方式就是被主要的业务提供商所识别。对于注重隐私的用户来说,进入现代互联网的门槛正日益演变为交出其设备的唯一硬件身份。