CAPTCHA 的诞生 - 证明你是人类

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart,全自动区分计算机和人类的公开图灵测试)这个名称由卡内基梅隆大学的 Luis von Ahn 及其同事于 2000 年提出。顾名思义,它是 Alan Turing 在 1950 年提出的"图灵测试"的反转。图灵测试问的是"机器能否表现得像人类",而 CAPTCHA 问的是"向机器证明你是人类"。

本文追溯 CAPTCHA 25 年的演变历程,从扭曲文字识别到图片辨认再到"什么都不做"的验证,以及与试图突破它的机器人之间永无止境的军备竞赛。

第一代:阅读扭曲文字(2000 年代初期)

早期的 CAPTCHA 显示经过扭曲并叠加噪声的随机字符串图片,要求用户输入这些字符。其前提是人类的视觉识别能力可以读取扭曲的文字,但当时的 OCR(光学字符识别)技术做不到。

为什么是扭曲文字?

在 2000 年代初期,Web 服务深受机器人批量创建账户、发布垃圾信息和抢票之苦。Yahoo! 是最早实施 CAPTCHA 来防止自动创建免费邮箱账户的公司之一。

扭曲文字 CAPTCHA 通过以下技术来阻挡 OCR:

  • 旋转、缩放和扭曲字符
  • 在背景中添加噪声线条和点
  • 字符重叠(使分割变得困难)
  • 随机化字体

被攻破的历史

然而,OCR 技术的进步超出了 CAPTCHA 设计者的预期。到 2003 年,基于机器学习的攻击已被证明能以超过 90% 的准确率破解某些 CAPTCHA。加强扭曲程度可以击败机器,但也让人类更难阅读,这是一个根本性的困境。

reCAPTCHA v1 - 帮助数字化书籍的 CAPTCHA

2007 年,CAPTCHA 发明者 Luis von Ahn 想到了一个将人们在 CAPTCHA 上花费的精力转化为生产力的创意。这就是 reCAPTCHA。

reCAPTCHA v1 显示两个单词。一个是已知答案的"验证"词,另一个是从扫描书籍图像中提取的 OCR 无法识别的"未知"词。如果用户正确输入了验证词,就被识别为人类,同时他们对未知词的输入被用于书籍数字化。

通过这种机制,reCAPTCHA 将每天约 2 亿次 CAPTCHA 响应用于书籍数字化。据报道,它为纽约时报 130 年档案的数字化和 Google Books 项目做出了贡献。Google 于 2009 年收购了 reCAPTCHA,并将其应用于识别 Google 街景中的街道地址。

reCAPTCHA v2 - "我不是机器人"背后的秘密

2014 年推出的 reCAPTCHA v2 引入了"No CAPTCHA reCAPTCHA",只需点击复选框即可完成验证。就是那种点击"我不是机器人"复选框就搞定的体验。

复选框背后发生了什么

点击复选框只是验证的入口。Google 分析了在点击那一刻之前收集的大量行为数据,以判断用户是人类还是机器人。

  • 鼠标移动:人类的鼠标光标移动时会有细微的抖动。机器人倾向于以恒定速度直线移动
  • 点击坐标和时间:具体点击了复选框的哪个位置,以及页面加载后过了多久
  • 浏览器环境浏览器指纹、插件、屏幕分辨率、时区
  • Cookie 和浏览历史:是否登录了 Google 账户、过去的 reCAPTCHA 响应记录
  • IP 地址信誉:如果 IP 信誉较低,则需要额外验证

这些信号被综合评估,如果风险评分较低,仅复选框就足够了。如果风险评分较高,则会出现图片选择挑战("选择所有包含红绿灯的图片")。

图片选择挑战的双重目的

图片选择挑战也像 reCAPTCHA v1 一样具有双重目的。用户的响应同时被用作 Google 图像识别模型(如自动驾驶的物体识别)的训练数据。"选择人行横道"和"选择公交车"等挑战正是自动驾驶物体识别所需的训练数据。

reCAPTCHA v3 - 隐形 CAPTCHA

2018 年推出的 reCAPTCHA v3 完全不需要用户交互。它在页面后台运行,持续分析用户行为,返回 0.0(可能是机器人)到 1.0(可能是人类)的评分。

网站运营者可以根据这个评分设置自定义操作。例如,对低于 0.5 的评分要求额外验证,或对低于 0.3 的评分阻止访问。

隐私顾虑

reCAPTCHA v3 因广泛追踪用户行为而受到隐私方面的批评。

  • 页面上的所有鼠标操作、键盘输入和滚动行为都会发送给 Google
  • Google 账户的 Cookie 被用于评估,登录 Google 的用户更有优势
  • 注重隐私、使用 VPNTor 的用户更容易被标记为机器人

针对这些顾虑,Cloudflare 于 2021 年宣布推出"Turnstile"作为替代 CAPTCHA 服务,提供注重隐私的验证。

破解 CAPTCHA 的产业

与 CAPTCHA 的进化相对应,破解 CAPTCHA 的服务也已产业化。

CAPTCHA 人工解答农场

存在由发展中国家低薪工人实时解答 CAPTCHA 的服务。2Captcha 和 Anti-Captcha 等服务通过 API 接收 CAPTCHA 图片,在几秒内返回人工解答的结果。价格约为每 1,000 次解答几美元。

机器学习的突破

深度学习的进步大幅提高了破解图像识别 CAPTCHA 的准确率。2019 年的一项研究报告称,机器学习模型能以超过 85% 的准确率破解 reCAPTCHA v2 的图片挑战。讽刺的是,存在使用 Google 自己的图像识别 API 来破解 Google CAPTCHA 的方法。

CAPTCHA 的未来 - 证明你是人类变得越来越难

随着生成式 AI 的快速发展,在文本、图像和音频方面区分机器和人类变得越来越困难。传统 CAPTCHA 的前提,"人类能做但机器不能做的任务",正在瓦解。

未来的验证预计将转向多层方法,结合持续的行为模式分析、设备信任评估和通行密钥等加密证明,而非依赖单一挑战。

下次点击"我不是机器人"复选框时,请记住幕后正在上演的人类与机器人之间的军备竞赛。

相关术语

CAPTCHA 区分人类和机器人的自动化测试。方法经历了从扭曲文字输入到图片选择再到行为分析的代际演变。 Bot 模拟人类操作执行任务的自动化程序。用途从搜索引擎爬虫到恶意垃圾机器人不等。 浏览器指纹 通过组合浏览器的设置、插件、字体和屏幕分辨率等属性来唯一识别用户的技术。 Cookie 网站存储在用户浏览器中的小型数据。用于会话管理和记住用户偏好。 IP 地址 标识互联网上设备的数字地址。IP 信誉也被用于 CAPTCHA 评估。