这几天,12306的验证码引发了热议。其实一开始,互联网上是没有验证码的。那时想要在论坛上发帖,只需轻轻敲一下回车键。然而,当时的黑客也十分猖狂,他们编写了一种能够大量、重复编写信息的程序,伪装成人类用户,肆无忌惮地朝网络上倾倒大量的、无意义的“僵尸”信息,垃圾邮件、垃圾广告、垃圾评论到处乱飞。这时出现了一个人,他的名字叫路易斯·冯·安。
路易斯是一个计算机天才,在研究过程序机器人的“工作手法”之后,他给出了一个独特的方案:在用户进行操作之前,就将那些机器人从正常用户里揪出来。大家都知道图灵测试的目的是将机器伪造成人类,而路易斯的方案就是“反”过来:通过简单的方法将试图伪装成人类的程序机器人鉴定出来。
就像那句广告词“原来的配方,熟悉的味道”,从验证码发明到现在的15年间,这种针对网站的探测式攻击呈逐年增长的态势。正所谓“一攻一防”,经过这些年的发展,普通的验证码早已难不倒那些黑客,为了应对这种情况,也就迸发出了无数千奇百怪的验证码。
发展至今,验证码已经深入到每个人的生活中。手机短信验证、图片验证码、字母验证码、语音验证码、拼图验证码、选择题验证码、问答验证码……等等各式各样花样百出。如果把验证码当成一件作品,相信每年还可以搞一次评选,如“年度最佳验证码奖”“年度最难验证码奖”“年度最具创意验证码”等。
为什么会产生这些千奇百怪的验证码设计?因为许多数字和字母组成的二维码,黑客可以用OCR(光学字符识别)技术识别。12306之前的验证码就被抢票软件轻易破解了,而据一些专家认为,采取图片技术之后,就很难有黑客能破解了,就算图像识别技术能识别图片,也很难识别出问题,更别说将两者对应起来了。
但实际测试表明,借助于Google等巨头的智能识图技术,能够识别大部分图片的含义准确率达85%。于是12306的工程师开始琢磨,想让验证码变得更加复杂、图片变得更难认并且经常更新。
这是一场浩大的技术攻防持久战,它表明了一个颠扑不破的真理:天下没有戳不破的盾,也没有无往不利的矛。
就以这次12306引起热议的验证码而言,近日已经有互联网公司宣称攻破了12306的图形验证码,并首次公布一组验证码大数据。数据显示,图形码的数量已经多达581种,按照要输入两个关键词的登录规则,用户将有机会尝试336980道不同验证码题目的机会,而一次性输入正确的仅为8%。
看来,强大的验证码虽然挡住了一部分黑客和“黄牛”,但同时也挡住了用户。所谓“杀敌一千自损八百”,我们是时候需要有更为聪明的防御方法了。