从reCAPTCHA迁移到Cloudflare中的hCaptcha



Cloudflare宣布最近已从使用Google提供的reCAPTCHA服务切换到hCaptcha,该服务由Intuition Machines支持。Cloudflare非常高兴他们能够进行此过渡,因为这有助于在公司依赖Google服务时解决与收集机密信息有关的问题。此外,这有助于为站点访问者提供更灵活的CAPTCHA任务配置。原则上,此更改会影响所有Cloudflare用户。因此,该公司决定共享有关向reCaptcha过渡的详细信息,并准备了一份材料,我们今天将其翻译发布。

在Cloudflare中使用CAPTCHA技术



Cloudflare提供的服务之一是为公司的客户提供了阻止恶意自动流量(机器人流量)的机会。我们使用许多机制来解决此问题。如果我们绝对确定某些流量有害,我们将完全阻止它。如果我们确定某些流量是正常人类活动的结果,则将其跳过。这同样适用于由漫游器(例如搜索引擎漫游器)生成的正常流量。但是有时候,如果我们对流量的性质没有完全的信心,我们会对流量进行“测试”。

我们有不同的测试。其中一些是全自动的,但是其中一项测试需要人工干预。类似的测试称为CAPTCHA(俄语中称为“验证码”)。该缩写代表完全自动的公共Turing测试,以区分计算机和人类-完全自动的Turing公共测试,用于区分计算机和人。如您所见,CAPTCHA单词中的一些T字母被省略了-否则看起来像CAPTTTCHA。验证码测试通常包含以下事实:提示用户阅读变形的文本并将其输入到字段中,或者从图片集中选择具有交通信号灯或人行横道的图片。验证码任务的本质是使它们很容易为人解决,而不是为计算机解决。


Cloudflare从公司成立之初就使用Google服务reCAPTCHA。该服务于2007年作为卡耐基梅隆大学的一项研究项目出现。Google在2009年购买了这个项目。大约在同一时间,Cloudflare出现了。Google可以免费访问reCaptcha,以换取该服务中的数据用于训练公司的视觉识别系统的事实。在寻找Cloudflare的CAPTCHA解决方案时,我们选择reCATPCHA是因为该服务高效,可扩展且免费。由于许多Cloudflare客户使用我们的免费服务,因此该列表中的最后一项对我们很重要。

关于隐私和锁


从在Cloudflare上使用reCAPTCHA的早期开始,我们的一些客户就开始担心我们会使用Google服务。 Google的业务专注于有针对性的广告。 Cloudflare不会这样做。我们有严格的隐私政策。我们对与reCAPTCHA相关的隐私权政策感到满意,但我们了解一些客户担心他们不得不向Google传输比他们想要的更多数据的原因。

此外,在某些地区(例如中国),我们遇到了问题,因为Google服务有时会受到封锁。但是只有中国是互联网用户的25%。结果,我们总是担心如果要求他们解决验证码问题,其中一些用户将无法使用受Cloudflare保护的网站。

多年来,关于隐私和锁的问题已经足够多了,我们不得不考虑将reCAPTCHA更改为其他内容。但是对于我们来说,像大多数IT公司一样,很难集中精力放弃一些广泛使用的技术并将其更改为新的技术。

Google不断变化的商业模式


Google于今年早些时候通知我们,他们将开始使用reCaptcha服务收费。这是他们的全部权利。考虑到我们的规模,Cloudflare的验证码服务无疑值得很多钱,即使在Google规模上,这也是值得注意的。

同样,为reCAPTCHA收费是Google绝对合理的举动。如果公司从培训图像分类系统中获得的收益少于维护该服务的成本,那么很明显,谷歌希望为此服务付费。在我们的情况下,这意味着每年需要花费数百万美元,这仅是为了让我们的免费用户继续使用reCAPTCHA。最后,再加上其他原因,足以让我们开始寻找reCAPTCHA的替代方案。

最好的验证码


我们分析了许多CAPTCHA解决方案的供应商,并考虑开发我们自己的这种服务。结果,事实证明,reCAPTCHA的最成功替代方法是hCaptcha我们在这项服务中非常喜欢:

  1. 他们不出售个人数据。他们仅收集必要的最少此类数据。该公司清楚地描述了所收集的信息以及其使用和披露数据的方式。该公司通过提供hCaptcha Cloudflare服务来遵守这些规则。
  2. hCaptcha系统具有良好的性能水平(在速度和与解决验证码问题相关的性能方面)。这个水平与我们在A / B测试期间的预期相对应,甚至超过了此类预期的水平。
  3. hCaptcha , - , .
  4.   Privacy Pass, -.
  5. , Google .
  6. hCaptcha , , .

hCaptcha标准业务模型类似于reCAPTCHA服务启动时使用的模型。即,该公司计划向需要图像分类数据的用户收费。那些在网站上使用hCaptcha的人正计划支付奖励。这听起来很吸引我们,但不幸的是,尽管这种方法对于大多数普通hCaptcha客户来说可能很好用,但它并不适合我们的规模。

我们在两个方面与hCaptcha服务合作。首先,我们正在分配Workers平台的容量,当客户使用hCaptcha时,它将承担大部分负载。因此,我们将减少直觉机器的成本。其次,我们建议公司向她付款,而不是她向我们付款。这将为公司提供扩展服务所需的资源,从而满足我们的需求。尽管这对我们来说意味着额外的成本,但是这些成本只是reCAPTCHA可以支付的一小部分。作为回报,我们得到了一个CAPTCHA平台,该平台比以前使用的平台更加灵活。此外,我们有机会与开发团队进行互动,可以快速响应我们的要求。

我们的客户何时向用户显示验证码?


当我们刚开始从事该项目时,我们假设CAPTCHA的主要使用者将是我们的Cloudflare Bot管理和Cloudflare防火墙规则解决方案。这种假设在某种程度上已经得到证实。尽管事实证明防火墙/僵尸网络解决方案是CAPTCHA的主要消费者,但它们在这项服务的总消费中所占的份额仅略高于50%。

这是我们的解决方案的摘要,其中用户请求验证码输出。
Cloudflare解决方案使用验证码
防火墙规则和Bot管理54.8%
IP防火墙18.6%
安全级别16.8%
拒绝服务6.3%
限速1.7%
WAF规则1.5%
其他0.3%

防火墙/机器人解决方案位于此列表的顶部。他们占了验证码的大部分。这些解决方案执行了我们用户编写的规则。满足这些规则指定的条件时,将显示验证码。例如,在这里我们可以举一种情况,当Cloudflare Bot Management对请求进行评估时,将显示验证码事实证明这是模棱两可的。一方面,它低于预定阈值,这可能表明我们正在谈论自动流量。但另一方面,它高于指示情况不确定性的阈值。与“防火墙/僵尸程序”部分相关的另一个使用验证码的常见脚本是显示对某个网站或网站某个终结点的所有请求的验证码任务。我们的客户可以这样做,以限制与其服务器的连接数,或减慢在登录页面上整理凭据或创建假帐户的自动化系统的运行速度。这导致以下事实:受Cloudflare保护的某些网站要求每天显示数亿个验证码。

此列表中的第二个是我们的IP防火墙解决方案通常,它与防火墙/僵尸网络解决方案相似,但可让您在IP地址,ASN或国家/地区级别更准确地分析流量。作为IP防火墙服务的一部分显示的验证码的主要数量与ASN和国家/地区的级别有关。可能以这种方式保护了我们的客户端,使其免受与某个ASN相关的流量的影响(例如,来自云提供商的流量是否可以由普通用户生成?),或者可以免受某些国家/地区的攻击。

接下来是安全级别服务该服务以两种不同的方式使用:

  1. 它可以充当衡量IP地址信誉的工具。
  2. 她可以在“我处于攻击模式”下工作。

尽管我们建议客户仅在受到活跃的DDoS攻击时才使用“我处于攻击状态”模式,但是我们的一些客户始终将系统保持在此模式下,并将其用作一种原始机制来限制对站点的请求速度和筛选交通。

验证码使用的最后一个主要领域属于我们的自动化系统之一。例如,最近,我们的DoS攻击防护工程师教会了Gatebot如何在某些特定情况下使用验证码来解决小问题。现在,Gatebot可以编写临时规则,这些规则的应用会导致显示攻击性验证码。

最后,我们的一些客户通过创建“速率限制”和“托管WAF”规则集来自定义验证码显示。

我们也对使用验证码的客户类型问题感兴趣。在一周内,免费使用我们服务的客户要求获得Cloudflare显示的所有验证码的40-60%。获得该指标时已考虑到对网站上验证码攻击的显示影响。在我们的两组付费客户(企业客户)和根据提供服务付费的客户中,验证码的剩余​​使用量大致相等。通常,我们发现Cloudflare在对我们的一个或多个客户进行攻击期间,每秒显示出数百万个验证码。

关于向新技术过渡的问题


当我们更改Cloudflare系统的某些部分时,它使我们的某些客户的生活更轻松,但其他客户遇到了麻烦。我们和hCaptcha开发团队已准备好解决任何出现的困难。如果您或您的用户在使用hCaptcha时遇到困难-我们要求您在论坛上写有关此问题或打开支持通知单,同时尽可能详细地描述发生的情况。

如有可能,请在消息“射线ID”中包含-通常在CAPTCHA页面底部显示的标识符。这将帮助我们找出问题所在。


射线ID

摘要


经验告诉我们,视觉(和声音)验证码并不是解决许多复杂问题的理想解决方案。Cloudflare继续努力以最大程度地减少向用户显示的验证码数量,并最终完全放弃该技术。我们计划编写更多有关此的内容。顺便说一句,您是否知道参与hCaptcha实施的团队之间进行内部交流的方式?您可能会认为此聊天称为“新验证码”。但实际上并非如此。它称为(否)CAPTCHA。

亲爱的读者们!您已经遇到过hCaptcha吗?


All Articles