分享

人人抱怨它反人类:验证码的过去与现在

 方珺逸 2015-12-11

每个人都不喜欢验证码,据它的发明者路易斯·冯·安在 2009 年的报告中显示:每天每个美国人要花费 1.9 秒的时间用来解决验证码难题。以美国当年人口 3.09 亿计算,相当于每年要花去他们 6795 天的时间。


为了解决这个“反人类”的设计,Google 想用更复杂的技术来区分人与机器。Google 把这种方法称作 “No CAPTCHA reCAPTCHA”。“CAPTCHA” 其实就是验证码的原名,也是“全自动区分计算机和人类的图灵测试”的缩写:D。前面的 “No CAPTCHA” 意思就是不要验证码。而后面的 “reCAPTCHA” 是一种 Google 现在使用的验证码系统。


如同名字所表示的那样,Google 把传统的验证码输入分成了两个部分。原来用户想要登陆一个网站时,在输入用户名和密码后就需要填写验证码了。但是通过最新的技术,Google 能够通过检查你之前在页面上的所作所为判断你是人还是机器。如果它信任你是人的话,就只需要在验证码输入框里打个勾就行。如果它对你表示怀疑,那么你就需要像原先那样输入验证码了。





Google 没有具体透露该技术的细节,只是提到了可能跟使用者的 IP,页面查看的行为有关。因为如果被验证码的破解者发现秘诀,就可以对应着开发出相应的破解程序,这套系统也就失灵了。


该技术已经在 Snapchat、WordPress 和 Humble Bundle 等网站测试一段时间了。至少在笔者的使用过程中没有被当作机器对待过,一直都是打个勾就行,方便了不少。



验证码的过去



验证码全名叫“全自动区分计算机和人类的图灵测试”。意思就是提供只有人才能识别的图片来区分一个网络请求的来源是人,还是机器。就非创造性工作的办事效率来看,电脑比人类快了无数倍。电脑的这个能力一旦和垃圾信息结合起来,就会给网络环境带来大麻烦。


据说最早的类似机制来源于黑客的暗语,他们不想让机器读懂他们的语言,于是将拉丁字母用符号、数字等提到表示出来。比如骂人“shit”(狗屎)就被他们写成“$#!+”。这种暗语可以称作 “Leet”,或者“1337”。




1997 年 AltaVista 搜索引擎的工程师设计了最初的原型。因为当时有人通过程序恶意的把地址丢到其引擎库中,导致搜索结果被污染。可能算是最初的类似“链接炸弹”的东西吧。


后来,2002 年,来自卡内基梅隆大学的学生团队更深入的研究了这个概念,并起了个名字 “CAPTCHA”,这个技术很快流传开来。而路易斯·冯·安,所谓验证码的发明者,就是那个学生团队的领头人。


他的设计是这样的:当传来一个访问请求后,计算机就会随机生成一组数字或符号,然后通过一些也是随机的规则使其难以辨认,例如使其变色、扭曲,再加上横线、斑点,最终生成一幅图片。如果想要获得权限,就需要正确辨识出图片的内容,这也就把人和机器区分开来了。




可惜“你有张良计,他就有过墙梯”。通过对图片二值化、去噪、倾斜校正等处理,再加上 OCR(光学字符识别)功能,电脑的图像识别能力越来越强。



验证码的现在



今天,验证码也进化的五花八门,例如:


图片验证码,电脑很难识别出图像内容;

问题验证码,用图片显示那你识别的数学题目,电脑难以计算答案;

3D 验证码,电脑难以识别出 3D 立体的图案;

广告验证码,例如给出可乐的标识,让你回答对应的品牌;

Gif 验证码,多个图层的叠加在一起,电脑难以识别答案在哪个图层;

视频验证码,给出一段视频,要求识别出视频内播放出的字符。




除此之外,现在最流行的验证码系统是其路易斯·冯·安于 2008 年,再次开发出来了 reCAPTCHA 系统,一年后就被 Google 收购了。也就是之前提到的那个 ““No CAPTCHA reCAPTCHA” 的后半部分。


这个技术很有趣,它的验证码图片都是从真正的书里面扒下来的。它来源于卡内基梅隆大学典籍数字化项目中那些无法准确被 ORC(光学字符识别)技术辨识的文字。


每次这个验证码系统都会提供两张图片,一张是未被辨识的文字,连提供方也不知道答案;另一张是已被辨识出的文字。如果用户答对了后一张的文字,那么也就意味着前一张也是由人来识别的。


这些答案就会被当作备选资料被记录下来,越多的人来作答,正确的答案也就越明显。该项目上线第一年,就有 4.4 亿个单词被辨认出来,群众的力量果然是无穷的。


被 Google 收购后,现在该验证码系统也有了更多的作用。除了做文字识别外,还能够帮助 Google 街景识别门牌码、增强 Google 的识图能力。通过将验证码的文字识别变成一个类似众包作业的东西,使得那些被浪费掉的时间重新具有价值,reCAPTCHA 验证码也算是门小小的公益事业。





但即使验证码具有公益作用,这也不会变成一将令人愉快的事情。这件事情实在太破坏上网体验了,原有的通过验证码来区分人和机器的方式也被更多人诟病。但是如果缺少这样的验证方式,网络会变的十分不安全。


例如登陆不需要验证码,电脑程序就可以通过不断的尝试登陆,对你的账号密码进行穷举破解,侵入你的个人资料;网站发帖没有验证码,恶意的程序就可以刷屏爆吧,破坏正常的上网体验。


今天,网站为了提供良好的用户体验,都尽量减少验证码使用的机会。大部分网站都会在用户输入错误密码后才会要求填写验证码,贴吧也给资深会员提供了发帖不需要验证码的特权。


而这次 Google 跳出了原本比拼图片识别的框架中,通过更复杂的算法来研究真人在网页上的行为。这种更智能更人性化的识别方式一定会得到普遍的接受。但是,这毕竟也是算法决定的,验证码产生的时候谁也没有料到,计算机的文字识别能力会进化的如此之快。


Google 新设计的“图灵测试”还能管用多久呢?在这场人与计算机的竞赛中,其实我们才刚刚起跑。


作者:王杰夫

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多