什么是 CAPTCHA?

在 20 世纪 90 年代末和 21 世纪初,多个团队同时开发出了最早形式的 CAPTCHA 技术。每个团队都致力于打击黑客在互联网上使用机器人进行恶意活动这一普遍问题。例如,为搜索引擎 AltaVista 工作的计算机科学家希望阻止机器人将恶意网址添加到公司的链接数据库中。
IT 公司 Sanctum 的研究人员于 1997 年开发出了第一个 CAPTCHA 式系统。然而,CAPTCHA 一词最初是由 Luis von Ahn 和 Manuel Blum 领导的卡内基梅隆大学计算机科学研究小组于 2003 年引入的。雅虎公司曾经深受垃圾邮件机器人的困扰,它们大量注册虚假邮箱,给公司带来了巨大的麻烦。在一次高管分享中,该团队成员受到启发,决心开发一项新技术来应对这个问题。
为了解决雅虎的问题,von Ahn 和 Blum 创建了一个计算机程序,它能够:
生成一串随机文本,生成该文本的扭曲图像(称为“CAPTCHA 码”),向用户展示该图像,要求用户在表单字段中输入文本,然后通过单击短语“我不是机器人”旁边的复选框来提交该条目。
当时的 OCR 技术难以破译这种扭曲的文本,因此机器人无法通过 CAPTCHA 挑战。如果用户输入了正确的字符串,则可以可靠地认为他们是真人,从而允许他们完成帐户注册或网络表单提交。
雅虎实施了卡内基梅隆大学的技术,要求所有用户在注册电子邮件地址之前通过 CAPTCHA 测试。这大大减少了垃圾邮件机器人活动,其他公司也开始采用 CAPTCHA 来保护他们的 Web 表单。然而,随着时间的推移,黑客使用已完成 CAPTCHA 挑战的数据,开发出了能够可靠地通过 CAPTCHA 测试的算法。这标志着 CAPTCHA 开发人员和网络罪犯之间持续“军备竞赛”的开始,这场竞赛推动了 CAPTCHA 功能的演变。
reCAPTCHA v1
reCAPTCHA v1 由 von Ahn 于 2007 年推出,具有双重目标:一是让基于文本的 CAPTCHA 挑战更难被机器人破解,二是提高当时用于数字化印刷文本的 OCR 的准确性。
reCAPTCHA 通过提高向用户显示的文本的扭曲程度,并最终在文本中添加线条,实现了第一个目标。
为了实现第二个目标,它不再使用随机生成的扭曲文本的单个图像,而是使用两个不同 OCR 程序扫描实际文本所得到的两个扭曲文本图像。第一个词或控制词是两个 OCR 程序都正确识别的单词。第二个词是两个 OCR 程序都无法识别的词。如果用户正确识别了控制词,reCAPTCHA 就会假设该用户是真人,允许他们继续执行任务,同时假设用户正确识别了第二个词,并利用响应来验证未来的 OCR 结果。
通过这种方式,reCAPTCHA 增强了对机器人攻击的防护能力,并提高了互联网档案馆和《纽约时报》的数字化文本的准确性。具有讽刺意味的是,随着时间的推移,它还帮助改进了人工智能和机器学习算法,以至于到 2014 年,这些算法识别扭曲程度最高的文本 CAPTCHA 的正确率达到了 99.8%。
2009 年,谷歌收购了 reCAPTCHA,并开始使用它来数字化谷歌图书的文本,同时将其作为服务提供给其他组织使用。但是,随着 OCR 技术在 reCAPTCHA 的帮助下取得进步,能够有效解决基于文本的 reCAPTCHA 的人工智能程序也在发展。作为回应,谷歌于 2012 年推出了图像识别 reCAPTCHA,它用源自谷歌街景的图像取代了扭曲文本。用户通过识别路灯和出租车等现实世界中的物体来证明自己是真人。除了能避开机器人使用的高级 OCR 外,这些基于图像的 reCAPTCHA 还被认为对移动应用程序用户来说更方便。
Google reCAPTCHA v2:无 CAPTCHA 的 reCAPTCHA
2014 年,Google 发布了 reCAPTCHA v2,它用一个简单的“我不是机器人”复选框取代了基于文本和图像的挑战。当用户选中复选框时,reCAPTCHA v2 会分析用户与网页的交互,评估打字速度、Cookie、设备历史记录和 IP 地址等因素,确定用户是否可能是真人。复选框也是 CAPTCHA 工作原理的一部分:无 CAPTCHA 的 reCAPTCHA 跟踪用户单击复选框时的鼠标移动。人的动作往往更混乱,而机器人的动作更精准。如果无 CAPTCHA 的 reCAPTCHA 怀疑用户可能是机器人,它会向用户提出基于图像的 CAPTCHA 挑战。
reCAPTCHA v3
reCAPTCHA v3 于 2018 年首次亮相,取消了复选框,并扩展了无 CAPTCHA 的 reCAPTCHA 的 AI 驱动风险分析。reCAPTCHA v3 通过 JavaScript API 与网页集成并在后台运行,以 0.0(可能是机器人)到 1.0(可能是人)的等级对用户的行为进行评分。网站所有者可以设置自动操作,当用户的得分表明其可能是机器人时,便在特定时刻触发该操作。例如,当低分用户点击“提交”时,其博客评论可能会被发送到审核队列,或者低分用户在尝试登录帐户时可能会被要求完成多重身份验证过程。
reCAPTCHA v3 等基于 AI 的身份验证方法旨在避开黑客问题。这些方法消除了 CAPTCHA 验证过程中的交互挑战,可以防止黑客使用先前解决的挑战中的数据来训练机器人破解新的 CAPTCHA。因此,专家认为基于 AI 的 CAPTCHA 可能会成为常态,在未来五到十年内完全取代基于挑战的 CAPTCHA。