3月15日,2015年春运终于落下帷幕。在今年的人口大迁徙里,12306依然成为被关注的焦点。这次被诟病的不是令人崩溃的网站,而是网站上的验证码。
“日防夜防,黄牛难防”,为了防止黄牛倒票,12306不断更新验证码形式,最新的一版验证码显示方式被网友戏称为“史上最奇葩”:用户需要根据提示,从8张图片中找到提示中提到的相关物品,比如贺卡、雕像、贝壳、玻璃瓶、擀面杖、热气球等,看不清或者没把握的可以刷新更换。如此确认无误后,才能登陆或者提交订单。然而该验证码面世不到一天,市面上多个常见的抢票软件就已经破解该验证码。
纵观其他网站的验证码,形式各不相同,有字母或数字的组合,背景有的是纯色,有的则是杂乱无章地密布底纹;有的验证码是公式,需要算对结果才能正确验证;还有的则是文字和图片结合,输入其中的某些特定文字,方可通过。
或许有些老网民们还记得,刚开始上网的时候是不存在验证码的。那么,半途杀出的验证码是干什么用的呢,黄牛党们为何要频频破解它?
区分计算机还是人类
在那个没有验证码的时代,并非人人上网的目的都那么单纯,伴随网络而来的“黑客”,利用一些小程序掠夺网络资源。这一点从网民们邮箱中日益增多的垃圾邮件中可窥一斑。如果不加以制止,那么垃圾评论和垃圾邮件就可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。
于是,互联网时代的“先驱”之一 ——雅虎,开始寻求解决办法。一方面要解决用户们每天遇到的数以百计的垃圾邮件轰炸,另一方面,他们自己的免费邮箱,恰恰又是垃圾邮件的最爱——耗费无数资源所阻止的垃圾邮件,都来自于自己的服务器。怎么办?2000年,卡内基梅隆的Luis von Ahn使用Gimpy机制来防范雅虎的垃圾广告信息,并首次提出了CAPTCHA验证码的概念。
“验证码”其实并不是网友在不同网站上看到的难以辨认的字母组合的代名词,而是“全自动区分计算机和人类的图灵测试”的俗称,顾名思义,它的作用是区分计算机和人类。
“验证码对于人来说很简单识别,但是对于计算机程序来说却很难自动识别,这样就阻止了那些意图通过计算机程序来自动申请更多邮箱发送垃圾短信或者刷票的人。”西安电子科技大学软件学院副教授高海昌告诉《中国科学报》记者。
魔高一尺,道高一丈
然而,互联网的安全护卫者与黑客是伴生在互联网平台上的两股势力,它们在互联网上互相拉扯。道高一尺,魔高一丈。此时,有人做出验证码,彼时,便有高手破解验证码。于是,验证码由最初的一些简单的字母,慢慢加入了数字、图案,字母也分出大小写,在国内,验证码中还会出现汉字。背景也不再是单纯的颜色,而是加入了形状各异的底纹。高海昌解释说,破解验证码的软件会通过图像处理、模式分类等方法自动识别出验证码的内容,如果验证码过于简单则很容易被猜出。
“其实12306刚刚推出的图案验证码,是比较容易破解的。根本都用不到前面提到的计算机技术。最简单的方法,从所给的8张图片中随机选出两个图案作为答案进行尝试,直到成功为止。从数学角度看,这种随机的方法就大概有4%的成功几率。在电脑上,用这种猜测的方法,成功猜对一次所需要的时间连1秒钟都不到。”高海昌说,“为了增加计算机识别的难度,现在大部分主流网站的验证码都进行了扭曲、黏连、加干扰线等设计。那些数字加字母的组合,特别是字母中还要区分大小写的,字符集就会大很多,也会加大程序计算的难度。在这方面,中文字符有先天优势,常用的汉字就有3000多个。所以,国内的网站使用中文验证码相对还是更安全一些。”
安全性与便捷性无法兼得?
不过,这场无声的较量暂时不会画上句点,验证码大战依然如火如荼。或许有人会想,既然验证码总是被破解,那么为何不设计一个复杂难认的验证码一了百了呢?
验证码的推出是保护互联网资源不被滥用,但是验证码本身也占据着网络资源。而验证码的安全性与便捷性,更专业的说法是可用性和鲁棒性,是天生的矛与盾。
“目前,验证码主要包括文本验证码、语音验证码、图形验证码。其中,由于生成的便利性,文本验证码应用最广泛,也是12306等各大网站正在使用的验证码。语音验证码和图形验证码对资料库和网络带宽要求比较高,所以应用不是很广泛。另一方面,语音和图形验证码的验证时间较长,可用性比较差,也是不被广泛采用的另一个原因。”高海昌解释道,“全球相关的研究团队都在寻找替代验证码的方法,目前有些网站已经不使用验证码进行人类和计算机程序的区分,而是使用SMS短信验证的方式,这可以说是一种很好的替代方式。但是这种也不是无懈可击,黄牛同样可以通过注册一堆的手机号来实现破解。所以验证码还会在较长一段时间内存在,而围绕验证码的设计和破解的较量也会继续下去。”(袁一雪)