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 的用户更有优势
- 注重隐私、使用 VPN 或 Tor 的用户更容易被标记为机器人
针对这些顾虑,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 的前提,"人类能做但机器不能做的任务",正在瓦解。
未来的验证预计将转向多层方法,结合持续的行为模式分析、设备信任评估和通行密钥等加密证明,而非依赖单一挑战。
下次点击"我不是机器人"复选框时,请记住幕后正在上演的人类与机器人之间的军备竞赛。