CAPTCHA 的运作方式 | CAPTCHA 有何含义?

CAPTCHA 和 reCAPTCHA 可判定用户是否为机器人。虽然这些测试有助于阻止恶意机器人活动,但要做到万无一失还相差甚远。

Share facebook icon linkedin icon twitter icon email icon

CAPTCHA

学习目标

阅读本文后,您将能够:

  • 了解 CAPTCHA 的概念以及使用原因
  • 了解 CAPTCHA 与 Google reCAPTCHA 二者的区别,以及 reCAPTCHA 的不同类型
  • 了解使用 CAPTCHA 阻止恶意机器人的优缺点
  • 说明 CAPTCHA 与人工智能 (AI) 项目有何关联性

什么是 CAPTCHA?

CAPTCHA 测试的设计目的在于确定联机用户实际上是否为人类,而非机器人。CAPTCHA 是“用来分辨计算机和人类的全自动公共图灵测试”(Completely Automated Public Turing test to tell Computers and Humans Apart) 的英文首字母缩写。 用户使用 Internet 通常会碰到 CAPTCHA 和 reCAPTCHA 测试。这些测试是管理机器人活动的一种方法,但该方法存在缺陷。

虽然 CAPTCHA 设计的目的在于阻止自动操作机器人,但 CAPTCHA 本身就是自动化程序。这些机制按照程序在网站特定位置弹出,然后自动决定用户通过或者未通过验证。

CAPTCHA 如何运作?

传统 CAPTCHA 包括要求用户辨认字母,有些 Web 属性上现在仍在使用。这些字母加了失真效果,因此机器人不太可能对其加以识别。若要通过测试,用户须对失真文本进行诠释,在表单域内键入正确字母,最后提交表单。如果键入的字母不匹配,系统会提示用户重试。此类测试在登录表单、帐户注册表单、在线投票和电子商务结算页面中颇为常见。

captcha example

原因是机器人等计算机程序无法诠释加了失真效果的字母,而人类习惯于在各类环境(不同字体、不同字迹等)下认读和诠释字母,因此往往能够加以分辨。

而多数机器人所能做的最多是随机输入某些字母,由此一来,从统计学角度而言,机器人通过测试的概率微乎其微。因此,机器人无法通过测试,与网站或应用程序的互动也会遭到阻止,而人类则能够继续正常使用网站或应用程序。

高级机器人能够通过机器学习识别加了失真效果的字母,因此,这类 CAPTCHA 测试正被一些更加复杂的测试所取代。Google reCAPTCHA 已开发出多种其他测试来区分人类用户和机器人。

什么是 reCAPTCHA?

reCAPTCHA 是 Google 提供的一项免费服务,用来代替传统的 CAPTCHA。reCAPTCHA 技术由卡内基梅隆大学的研究人员开发,而后在 2009 年为 Google 所收购。

reCAPTCHA 比传统的 CAPTCHA 测试更为先进。某些 reCAPTCHA 类似于 CAPTCHA,都要求用户输入文本图像,而计算机很难破译这些图像。但与常规 CAPTCHA 的不同之处在于,reCAPTCHA 文本来自真实世界图像:街道地址图片、纸质书文字、旧报纸文字等。

recaptcha example

随着时间的推移,Google 已对 reCAPTCHA 测试的功能进行扩展,由此这种测试不再依赖老式的模糊或失真文本辨认模式。其他类型的 reCAPTCHA 测试包括:

  • 图像识别
  • 复选框
  • 常规用户行为评估(全无用户交互)

图像识别 reCAPTCHA 测试如何运作?

在图像识别 reCAPTCHA 测试中,用户通常会看到 9 张或者 16 张方形图。所有图像尺寸可能一样大,或者大小各不相同。用户须辨认内含特定对象的图像,如动物、树木、路标等。如果用户的回复与其他多数用户提交的同一测试回复相匹配,则该答案被视为“正确”答案,用户通过测试。

image recaptcha

对电脑而言,从模糊图片当中选出特定对象是一个难以解决的问题。即使对高级人工智能 (AI) 程序而言,这个问题也很难,因此对于机器人亦是如此。然而,人类用户辨认起来应相当容易,因为人们习惯于在各种环境和情境中感知日常物品。

含单个复选框的 reCAPTCHA 测试如何运作?

部分 reCAPTCHA 测试仅提示用户勾选“我不是机器人”表述旁的方框。 但该测试验证的并非点击复选框这一实际操作,而是点击复选框之前的一切行为。

Not a Robot captcha

这种 reCAPTCHA 测试考虑了用户将光标靠近复选框时的移动动作。即使是人类最直接的动作,从微观层面而言,都带有一定程度的随机性:机器人不易模仿的细微无意识移动。如果光标移动过程中包含某些这类不可预测性,则测试确定该用户可能为合法用户。reCAPTCHA 也可能访问用户设备浏览器所存储的 cookie 以及设备历史记录来分辨用户是否为机器人。

如果该测试仍无法确定用户是否为人类,则可能额外增加质询,如上述的图像识别测试。但通常用户光标移动、cookie 和设备历史记录已足够得出测试结果。

在无任何用户交互的情况下,reCAPTCHA 如何运作?

最新版本 reCAPTCHA 能够全面查看用户的行为及其与 Internet 内容的交互历史记录。该程序通常能够根据这些因素确定用户是否为机器人,而无需要求用户完成质询。如仍无法确定,用户需要完成典型 reCAPTCHA 质询。

触发 CAPTCHA 测试的因素有哪些?

有些 Web 属性自动设有 CAPTCHA,用来主动防御机器人。其他时候,如果用户行为看起来像机器人行为,也可能触发测试:例如,用户请求网页或者点击超链接的频率远高于平均频率。

CAPTCHA 与 reCAPTCHA 是否足以阻止恶意机器人?

某些机器人能够自行通过文本 CAPTCHA 测试。研究人员也已经证实,采用某些编程方式能够通过图像识别 CAPTCHA 测试。此外,攻击者能够采用点击农场的方式通过测试:雇用数以千计的廉价劳动力代替机器人解决 CAPTCHA 问题。

除 CAPTCHA 以外,还需要部署其他策略阻止有害机器人(如内容抓取机器人凭证填充机器人垃圾邮件机器人)。

采用 CAPTCHA 或者 reCAPTCHA 阻止机器人的缺点有哪些?

用户体验差: CAPTCHA 测试会阻止用户正在尝试进行的连续行为,让他们对 Web 属性产生负面的体验,有时还会导致他们完全放弃浏览网页。

视障者无法使用: CAPTCHA 存在的问题是,这种测试有赖于视觉感知。不只是对法定盲人,对任何视力严重受损的人而言,要通过这种测试几乎都毫无可能。

机器人能够蒙混过关: 如上所述,CAPTCHA 无法完全阻止机器人,机器人管理不能只依赖于这种测试。

除使用 CAPTCHA 或 reCAPTCHA 以外,是否有其他替代方式?

Cloudflare 机器人管理等机器人管理解决方案能够在不影响用户体验的情况下,根据机器人的行为分辨出恶意机器人。采取这种方式,即使不强制要求客户完成 CAPTCHA,也能够进行机器人防护。

CAPTCHA 和 reCAPTCHA 与人工智能 (AI) 项目有何关联性?

有成千上万的用户辨别难以阅读的文本、从模糊图片中选择对象,随之而来的是这些数据被大量馈送到 AI 计算机程序中,使得这些程序也越来越擅长完成这类任务。

总体而言,计算机程序难以分辨不同背景下的对象和字母,原因在于现实世界的背景变换无穷无尽。例如,停止标志是一个红色八边形,内部写着白色的“STOP”(停止)字样。 计算机程序能够轻易识别形状和文字组合。但停止标志若置于图片当中,则会视背景的不同看起来完全不同于上述的单纯描述,这些背景有图片的角度、光线明亮度、天气因素等。

AI 程序通过机器学习,更容易突破以上限制。以停止标志为例,程序员会向 AI 程序馈送大量关于哪些是停止标志而哪些不是停止标志的数据。该方法奏效的前提是,需大量含有停止标志和不含停止标志的图片样例,同时需人类用户帮忙识别,直至 AI 程序拥有足够多的数据来进行有效识别。

reCAPTCHA 利用人类用户识别对象和文本的行为,有助于满足这一需求,逐渐提供足够的数据以构建稳健的 AI 程序。

什么是图灵测试?图灵测试与 CAPTCHA 测试有何相关性?

图灵测试评估的是计算机模仿人类行为的能力。艾伦·图灵是早年的计算机领域先驱者,他于 1950 年提出图灵测试这一概念。如果计算机程序在图灵测试中的表现与人类无异,即行为方式与人类相同,则计算机程序“通过”测试。图灵测试不要求答案正确;其验证的是计算机程序所选择的答案有多像“人类”的答案,而不是看答案是否正确。

虽然 CAPTCHA 被称为“公共图灵测试”,但实际上却与图灵测试恰恰相反:CAPTCHA 测试的是根据推测,人类用户实际上是否为计算机程序(机器人),而不是验证计算机是否为人类。为达这一目标,CAPTCHA 需分配一项人类往往善于处理而计算机难以完成的简单任务。辨别文本和图像往往符合这些标准。