如果你通过 Google 搜索购买演唱会门票或者注册论坛账号,系统会提示你必须点击几个图框、音频或者移动鼠标等操作来确认是人类在操作验证而不是机器人。

其背后的验证机制就是 CAPTCHA(验证码),保护互联网服务免受诸如 Sybil 的攻击,这是互联网防止自动创建帐户和滥用服务的第一道防线。

而 Google 的 reCaptcha 服务是最受欢迎的验证码系统之一,目前被成千上万的网站用于测试用户是否是人类,以防范机器人的攻击。

reCAPTCHA 发布之后,无论是安全专家还是研究人员都在试图挑战它,找出它的漏洞,比如一些专家就试图通过反向图像搜索、深度学习和“ 实验神经科学数据 ” 来进行攻击。

这些方法要么成功率较低或者很快就被 Google 团队迅速补上了漏洞。但其中一种攻击方法让 Google 团队看上去束手无策。

马里兰大学的研究人员声提出的 unCaptcha 攻击方法 unCaptcha 可以轻松骗过 Google reCaptcha。他们使用来自实时网站的超过 450 次 reCaptcha 挑战来评估 unCaptcha,并证明可以在 5.42 秒内以 85.15% 的准确率进行破解。

该方法的原理让人万万没想到的是:在用户请求语音验证码后,只要把收到的内容转发给 Google 语音转文字 API,然后把收到的回复进行提交,最后竟然给轻易破解了。

古人问:以子之矛,攻子之盾,何如?

Google reCaptcha 团队:其人弗能应也……内心苦,说不出。

微博网友如此调侃:

上述研究人员最初在 2017 年开发了 UnCaptcha,他们在发表的论文《unCaptcha: A Low-resource Defeat of reCaptcha’s Audio Challenge》中给出了更为详细的解释:

通过 UnCaptcha 下载音频验证码,将音频分成单个数字音频片段,将片段上传到多个其他语音转文本服务(包括 Google),然后将这些服务得出的结果转换为数字编码。随后经过一些同音词猜测后,它会决定哪个语音到文本输出最接近准确值,然后将答案上传到 CAPTCHA 字段。

这还是 unCaptcha 1.0 版本,成功率便达到 85%。在这一版发布后,Google 随即修复了一些漏洞,包括提升浏览器自动检测性能以及将验证方式从数字编码切换为短语音,这成功防止了 unCaptcha 的攻击。