多年来,我们一直都在写到 CAPTCHA 让我们抓狂。人类大约有 15% 的时间会放弃 CAPTCHA 拼图,而且令人抓狂的是,机器人比人类更容易解决 CAPTCHA 问题。在过去的三年半时间里,我们一直在努力为人类打造更好的体验,同时也能有效阻止机器人。从本月开始,我们已经完成了用新的 CAPTCHA 替代品 Turnstile(如下图)替换 Cloudflare 发布的所有 CAPTCHA。Cloudflare 将永远不会再以任何理由向任何人发布视觉拼图。
既然我们已经在 Cloudflare 消除了 CAPTCHA,我们希望让任何人都能轻松地做到这一点,即使他们不使用其他 Cloudflare 服务。我们已经将 Turnstile 与我们的平台解耦,因此任何平台上的任何网站运营商只需添加几行代码就可使用它。我们非常高兴地宣布,Turnstile 现已正式发布,而且 Turnstile 的“托管”模式现在对所有人都是完全免费的,没有使用限制。
对人类容易,对机器人难,为每个人保密
Turnstile 的简单复选框中有很多功能,可以确保每个人都能轻松使用,保护用户隐私,并执行阻止机器人的工作。让每个人都能更好地完成质询,这意味着无论使用什么浏览器,每个人都能获得同样出色的体验。由于我们不使用视觉拼图,视力弱或失明的用户也能像其他人一样获得同样易用的质询流程。
对我们来说,尤其重要的是避免退回到音频 CAPTCHA,以提供人人都易用的体验。对于人类来说,音频 CAPTCHA 往往比视觉 CAPTCHA 更难解决,只有 31.2% 的音频质询能让三人就实际正确的解决方法达成一致。免费的语音转文本服务的普及使机器人也能轻松解决音频 CAPTCHA,最近的一项研究表明,机器人能在超过 85% 的尝试中准确解决音频 CAPTCHA。我们很自豪地宣布,Turnstile 符合 WCAG 2.1 Level AA 标准的要求,同时无需使用音频和视觉 CAPTCHA。
我们创建的 Turnstile 还注重隐私。Turnstile 符合 ePrivacy Directive、GDPR 和 CCPA 合规性要求,还符合我们自己的隐私承诺的严格要求。此外,Cloudflare 的 FedRAMP 适度授权包“Cloudflare for Government”现在包括 Turnstile。我们不依赖于跟踪用户数据(如用户访问过其他哪些网站)来确定用户是人类还是机器人。我们的业务是保护网站,而不是销售广告,因此运营商可以放心部署 Turnstile,因为他们知道用户的数据是安全的。
我们一直在强调通过 Turnstile 质询是多么_容易_,那么您可能会问,它怎么能阻止机器人呢?如果机器人能比我们更快地在模糊照片中找到所有带有人行横道的图像,那么它肯定也能选中复选框。机器人肯定能选中复选框,它们甚至能够模仿人类鼠标移动时的不规则轨迹。对于 Turnstile 来说,选中复选框的实际操作并不重要,重要的是我们在选中复选框时分析的后台数据。我们通过运行一系列浏览器内测试、检查浏览器特征、本地浏览器 API 以及要求浏览器通过轻量级测试(例如:工作证明测试、空间证明测试)来证明它真的是一个的浏览器,从而发现并阻止机器人。目前部署的 Turnstile 每天检查数十亿个访问者,我们能够识别机器人在试图通过这些测试时表现出的浏览器异常。
在一年多的时间里,我们利用我们的托管质询在 CAPTCHA 和我们自己的 Turnstile 质询之间轮换,以比较我们的有效性。我们发现,即使不要求用户进行任何互动,Turnstile 也与 CAPTCHA 一样有效。一旦我们确定结果能够有效地应对机器人制造者的反应,我们就用自己的复选框解决方法取代 CAPTCHA 质询。当我们发现潜在的可疑信号时,我们会进行额外的测试,这有助于我们提供更高一层的安全性。
Turnstile 是打击欺诈的利器
与所有提供免费服务的网站一样,Cloudflare 也会遇到自动注册帐户的情况,其中可能包括“新帐户欺诈”,即不良行为者自动创建许多不同的帐户来滥用我们的平台。为了帮助打击这种滥用行为,我们推出了 Turnstile 的隐形模式来保护我们自己的注册页面。本月,我们使用 Turnstile 阻止了超过 100 万次的自动注册尝试,没有出现任何误报,也没有改变依赖该注册流程的自助服务计费。
从 Turnstile 公测吸取的经验教训
在过去的 12 个月中,我们欣喜地看到许多人跃跃欲试,他们依赖 Turnstile 并将其集成到他们的 Web 应用程序中。开发人员社区对 Turnstile 的支持也让我们受益匪浅。我们在此处列出了一些社区创建的 Turnstile 集成,包括与 WordPress、Angular、Vue 和 Cloudflare 推荐的 React 库的集成。我们听取了客户的反馈意见,添加了对 17 种新语言、新回调和新错误代码的支持。
已有 76,000 多名用户注册,但迄今为止最大的一次考验是欧洲电视歌唱大赛总决赛投票。Turnstile 在超过 2500 万个 Cloudflare 网站上运行质询页面。通常,在欧洲电视歌唱大赛总决赛投票之前,这已经使 Cloudflare 成为遥遥领先的最大 Turnstile 消费者。在这一个小时内,来自欧洲电视歌唱大赛投票网站的质询流量超过了 2500 万个网站上质询页面使用量的总和!Turnstile 能够顺利应对流量的巨大激增。
虽然在 Turnstile 公测期间有很多进展顺利,但我们也遇到了一些需要学习的机会。我们最初不愿意透露 Turnstile 质询失败的原因。毕竟,如果坏人知道我们在追寻什么,在我们引入新的检测手段之前,机器人就更容易骗过我们的质询。然而,在 Turnstile 公测中,我们看到了一些合法用户无法通过质询的情况。这些情况让我们清楚地认识到,我们需要以透明的方式说明质询失败的原因,以帮助可能以某种方式修改浏览器导致被 Turnstile 阻止的任何个人。我们现在公布详细的客户端错误代码,以揭示质询失败的原因。有两种情况多次出现,是我们始料未及的:
首先,我们发现至少有 10 年机龄的台式机的主板电池经常过期,而主板电池坏了的计算机经常走时不准。这是因为如果没有主板电池,台式机的时钟就会在关机时停止工作。Turnstile 会检查计算机的系统时间,以检测网站运营商是否意外地配置质询页面进行缓存,因为缓存质询页面会导致该页面无法通过质询。不幸的是,这项检查却无意中阻止了只需要更新时间的人类。当我们发现这个问题时,我们会向最终用户发出明确的错误消息,要求他们更新系统时间。我们希望永远不要出现错误,因此我们正在努力开发检查缓存内容的新方法,而不会对真实用户造成影响。
其次,我们发现一些注重隐私的用户经常要求他们的浏览器超越标准做法,以保护他们的匿名性。这包括更改用户代理(机器人也会这样做来躲过检测),以及完全阻止第三方脚本执行。现在,这种行为导致的问题可以清楚地显示在 Turnstile 小组件中,这样用户就能立即了解问题所在,并认真选择是否允许浏览器通过质询。
尽管我们在 Cloudflare 拥有一些最敏感、最完善的监控系统,但我们自己并没有发现这些问题。我们需要与受该问题影响的用户交流,以帮助我们了解问题所在。更进一步,我们希望确保我们的直接沟通渠道始终畅通。我们将在 Turnstile 小组件中推出一个新的反馈意见表,以确保今后的任何冷僻问题都能迅速而紧迫地得到解决。
Turnstile:已正式发布供每个人免费使用
宣布 Turnstile 正式发布意味着 Turnstile 现在已经完全准备就绪,可以通过我们的可视小部件在管理模式下不受限制地免费使用。Turnstile Enterprise 包括 SaaS 平台支持和不带 Cloudflare 徽标的可视模式。自助服务客户有望在 2024 年初获得高级功能的随用随付选项。用户可以继续访问 Turnstile 的高级功能,但不得超过 100 万个站点验证请求限制,在公测期间也是如此。如果您一直在等待试用 Turnstile,请访问我们的注册页面并创建帐户!