"选出交通信号灯"的那几秒留下了什么
"选出所有交通信号灯。""点击包含人行横道的图片。",每次登录网站时都会出现的图片验证。很烦人对吧?但除了"证明你不是机器人"之外,这些任务还有另一个重要目的。
你的每一次点击,都会作为"这张图片里有交通信号灯"这种只有人类才能给出的标注被积累下来。这些标注究竟被用在哪里,可以公开核实的事实与网络上流传的说法混杂在一起。本文就从划清这条界线开始。
CAPTCHA 的进化
CAPTCHA 在 2000 年代初期作为"区分人类和计算机的测试"出现。从扭曲文字识别开始,它随着技术的进步不断演化。
- 第一代(2000 年代):输入扭曲的字符。随着 OCR 技术的进步变得可以被破解
- 第二代(reCAPTCHA。Google 的收购发生在 2009 年 9 月):让人类阅读 OCR 无法识别的旧书扫描文字。Google 为宣布收购的文章取名为"教计算机读书",并明确表示收集到的答案会用于书籍数字化
- 第三代(reCAPTCHA v2,2014 年起):"我不是机器人"复选框 + 图片选择。交通信号灯、人行横道、公交车和自行车出现了
- 第四代(reCAPTCHA v3,2018 年起):对用户行为模式评分,只对可疑情况显示图片验证。大多数用户无需看到 CAPTCHA 即可通过
为什么是"交通信号灯"和"人行横道"?
reCAPTCHA v2 出题用的图片,几乎都是交通信号灯、人行横道、公交车、自行车、消防栓这类会出现在街景里的东西。有人指出这与自动驾驶汽车必须识别的物体高度重合,"那些任务是在为自动驾驶制作训练数据"的说法就此广泛流传。
但是,找不到能够支撑这个说法的一手资料。Google 收购 reCAPTCHA 是在 2009 年 9 月,Waymo 作为 Alphabet 旗下的自动驾驶技术公司成立于 2016 年,时间上确实有重叠。然而 Waymo 从未把 reCAPTCHA 列为自己训练数据的来源,Google 也没有说明过图片验证的答案会用于自动驾驶。在"出题用的是街景"和"这是自动驾驶的训练数据"之间,存在着一个至今无人填补的跳跃。
可以确定的是,你的答案会作为"这张图片里有交通信号灯"这种源自人类的标注留存下来,而这项工作每天都在世界各地被无偿完成。至于用途,并没有被公开。另一方面,CAPTCHA 的首要作用是保护服务免受撞库攻击这类自动化攻击。
"我不是机器人"背后发生了什么
有时只需点击"我不是机器人"复选框就能通过。那么在那短暂的一瞬间,究竟有什么被看到了?这里恰恰是最容易被误传的部分。
Google 官方文档的说明只停留在"分数基于用户与你网站的交互""reCAPTCHA 通过观察你网站上的真实流量来学习"这个程度,至于哪些信号如何加权,并未公开。"它在看你的鼠标怎么抖动""它根据你点击位置的偏移来判断"这类解读流传很广,但并没有 Google 这样表述过的一手资料。因为一旦公开判定的内容,就会有人做出能绕过它的机器人。
另一方面,从机制的外形也能确定一些事。reCAPTCHA 是作为嵌入网站的 Google 脚本运行的,因此它的请求会像其他所有 Web 通信一样带上你的IP 地址。浏览器发送的信息会参与判定,这在机制上无法避免。而 Cookie 依然是 Web 上最基本的识别机制。
如果判定结果是"像人类",仅复选框就足够了;如果被认为"可疑",就会追加显示图片选择。被出示图片,并不意味着你做了什么坏事。
CAPTCHA 的未来 - 隐形验证
2018 年 10 月公开的 reCAPTCHA v3 不需要用户做任何操作,只在后台返回一个分数。这里官方的说明同样只到"分数基于用户与网站的交互"为止,它实际在看什么并未公开。拿到分数之后是放行、追加确认还是拒绝,由接入它的网站自己决定。这一机制从API 安全的角度看同样重要,它能在入口处挡住机器人发出的非法请求。
未来,CAPTCHA 可能会变得完全"隐形",在用户毫无察觉的情况下完成验证。
总结
CAPTCHA 的图片选择,是一套无偿产出只有人类才能给出的标注的机制。但"那些是自动驾驶的训练数据"这个说法并没有一手资料支撑,Google 和 Waymo 都没有这样说过。"我不是机器人"背后到底在看什么也未公开,可以确定的是,和其他所有 Web 通信一样,你的 IP 地址会传到对方那里。下次 CAPTCHA 出现时,不妨想一想那几秒"确实留下了什么",而不是"为了什么"。
本文相关术语
常见问题
验证码为什么让选红绿灯和人行横道?
除了确认不是机器人,还会收集只有人类才能给出的图片标注。由于出题多为红绿灯和人行横道,"这是自动驾驶的训练数据"的说法广泛流传,但并没有一手资料支撑,Google和Waymo都没有官方这样说明过。
为什么只点"我不是机器人"就能通过?
Google官方文档只说明分数基于用户与网站的交互,至于哪些信号如何加权并未公开。如果判定为"像人类",仅复选框就能通过;如果被认为"可疑",才会追加图片选择。
什么是reCAPTCHA v3?
无需用户任何操作,在后台只返回一个分数的方式,2018年10月公开。分数依据哪些信号得出并未公开,拿到分数后如何处理由接入的网站自行决定。