验证码,为什么越来越复杂

斯嘉

这天,准备考研许久的你,踌躇满志地打开了考研报名网站。

然而,还没来得及一展才学,你就被卡在了网站登录的验证码上。重叠在一起的字体,布满马赛克的背景,让你输了几次验证码都没有输对。

你屡败屡战,但验证码上出现的“骉叕犇羴”,又瞬间让你怀疑自己的学识水平。

你再一次自我激励,决定这一次一定要输对,却见刷新出来的验证码上,写着大大的两个字:别考。

逼疯你的验证码,为什么变得越来越复杂?

每一次输验证码时,你都会忍不住发出这样的疑问。它那扭曲的形状,粘连在一起的字符,雪花状的背景,常让你陷入自己是不是眼瞎的怀疑。

然而,这种字符验证,还只是日常的基础题,高难度的题目,往往出现在春节这样的特殊时刻。登录12306时要选择的图片验证码,就曾是每个在春节抢过火车票的人的噩梦。

有些验证码更是不满足只考你的眼力,还要测一下你的智商。在购票网站抢演唱会门票时,不仅要懂点文学典故,读过四大名著,末了,还要附带让你算一道数学题。

甚至有些验证码,还成了你和朋友间友谊的试炼场。在登录Facebook验证时,系统会随机挑出几张好友发布过的照片,让你辨认照片中的人是谁。本就脸盲的你,再碰上你朋友修炼多年的P图技术,验证码的难度系数也因此倍增。

美国斯坦福大学的研究指出,验证码已经过难。

研究者们搜集了8500个多种形式的验证码让受试者辨认,发现他们在判断验证码时,平均要花9.8秒,且同时让三个人辨别同一个验证码,三人间的一致率只有71%。如果是听声音辨识的验证码,准确率会更低,只有31.2%。

其实,验证码也不是一开始就这么复杂。

在验证码被发明前,许多免费的邮箱网站常遭受恶性外挂软件的攻击。例如在2000年,雅虎邮箱中曾有大量用机器注册的马甲账号,他们会给用户发大量的垃圾、诈骗邮件。

为了解决这个问题,程序开发人员试图找到一种登录验证方式,能判断出正在操作的究竟是人还是机器。

AltaVista的工程师们便找到了有效的方式。他们发现,当时,即使是配备了最先进的光学字符识别系统的电脑,也很难正确识别出印在纸本上的字,尤其当字符被拉伸、扭曲时,电脑就更难辨认。

然而,这对人类来说却很容易。我们从小就一直在接受阅读训练,即使纸上的字歪歪斜斜,部分被遮挡,也不影响我们对整体的判读。扭曲的字符,便成了最常用的登录验证方式,并有了“验证码”这个正式名字。程序员们会预先设定一个字符库,库中的字符会排列组合成字符串,再根据随机变量被扭曲、涂抹,定位在随机背景上,从而成了我们所见的验证码。

这些字符谜题,确实有效减少了网站中的垃圾邮件,到2001年,“ADD-URL”邮箱中的垃圾邮件便减少了95%。

但随着电脑光学字符识别技术的不断发展,这种形式的验证码已经越来越难将外挂机器挡在门外。在2014年Google工程师的测试中,即使是最难的扭曲字符类验证码,电脑识别的准确率也高达99.8%。为了挡住越来越聪明的机器,验证码因此被迫进化,出现了图形验证码、逻辑验证码、语音验证码……

不过,你受的每一次苦,也不是白费功夫。你在十秒内减少的脑细胞,其实都转移到了一个AI身上。

我们辨识的一些验证码字符,来自那些年代久远的报纸、典籍,这些手写、带有污点的字迹,难以被电脑辨识,程序员便将这些字符加入验证码中。

这样的验证码通常由两段组成,前一段是已经成功数字化的单词,后一段则是不知道正确答案的典籍字符。只要用户答对第一段,第二段的判读结果也会被记录下,再比对多个用户的辨识结果,得出结论。

在全世界人的判读下,每天有超过2亿个单词被破译、转录,《纽约时报》便借由这种方式,实现了数字化。你现在看到的百年前的《纽约时报》,可能就是你曾经用爱发电的成果。

不只是字符类验证码,Google让用户辨认验证码图片中的“斑马线”“红绿灯”,也是在加强机器人的图片辨识能力,并将机器学习成果运用在自动驾驶上。

我们就陷入了这样一个循环怪圈:输入越多验证码,AI的學习能力就越强,技术的进步让更多验证码被破解,而我们就要被迫再次设计出更复杂的验证码……

验证码似乎已背离了初衷,成了一个难住了人类,却难不住机器的摆设。

越来越多的科技公司也意识到了这个问题,开始试图简化繁杂的验证码。

比如,你现在登录12306时,就只用拖动滑块。这样的验证码不仅是在评判你操作的结果,更多的是记录并分析你操作时的行为。电脑观察你移动滑块的速度变化,就能认出你是人类。另一种隐性的验证码,也按照这个原理。当你勾选“我不是机器人”时,程序就能判断你是否在说谎。

并不是它真的有读心术,而是在你勾选后,它会自动分析你在浏览该网页时的行为,包括鼠标的移动轨迹、浏览的速率等,借此分析出这些行为是否属于正常人类的操作。

至此,在这场人类与机器的比赛中,我们已不再试图证明自己更聪明,而是转向另一种策略:那不统一的行为轨迹,不精确的答案,笨手笨脚的操作,才是我们生而为人的特征啊。

不过,这样的隐性验证码也不是万灵丹药。在它出现后不久,加拿大多伦多大学的学者便发表了论文,声称他们的机器人可以模仿人类的操作行为,顺利通过隐性验证码的测试。

1950年,著名计算机科学家图灵提出了一个思想实验:人类提出一系列问题,机器给出答案,再由人类判断对方是否为机器。如果有超过30%的人将机器误判成人类,那么这个机器就被认为具有人类智能。但70年过去了,人类陷入了完全相反的境地——一个个验证码,正是机器抛给人类的问题:“你是人类吗?”

这一次,审判权握在机器手中,而被验证码难住的人类,仍在用力呐喊:我不是机器人。