论文部分内容阅读
“你买到票了吗?”成了最近流行的一句问候语。
12月10日,铁路系统开始发售2月7日除夕的火车票。在奋力抢票之余,12306网站的验证码成了网友们集中吐槽的对象。该网站的最新验证码系统采用图片加逻辑问题的形式:“请点击下图中所有的非智能眼镜。”“请点击下图中所有的博斯普鲁斯海峡。”这些“奇葩”的图片选择题难倒了不少人。网友感叹:“这不仅是考我的眼力,还要考知识面啊!”吐槽风潮中,甚至有人PS出各种无厘头的验证图片对该网站进行恶搞,以示抗议。
不过,被嫌弃的验证码,并不是从一开始就这么让人讨厌的。
尽管被买火车票的人们百般吐槽,但小小的验证码其实大有来头。
验证码只是一个俗称,它还有一个听起来非常“高大上”的全名——全自动区分计算机和人类的图灵测试(英文缩写CAPTCHA)。图灵测试是指一种测试机器是不是具备人类智能的方法,而验证码则反其道而行之——它利用人与计算机在认知方面的差异,来确认操作者是人类,从而阻止恶意软件的侵入。
2000年左右,雅虎公司受到了很大困扰,有人用黑客程序在短时间内自动创建了上千个电子邮件地址,然后利用这些地址发送垃圾邮件。但他们不可能一一审查邮件,因为那样做既不尊重隐私,工作量也太大。为此,雅虎找到了当时年仅21岁、正在卡内基梅隆大学读书的路易斯·冯·安(Luis von Ahn)。这位计算机天才后来被美国《探索》杂志评为“20位40岁以下的最聪明的科学家”之一。
路易斯发现,对于那些镶嵌在图片中的、被扭曲过、污染过的文字,机器无法辨识,而人类稍加注意就可以识别出来。路易斯在导师布鲁姆的帮助下很快设计了一个程序,也就是现在的CAPTCHA。它首先生成一个随机的字符串,比如“smwm”,然后对这串字符进行随机的扭曲、重叠、污染,再显示给要进行操作的用户。于是,在计算机“眼中”,这串字符只是一组毫无意义的曲线,而人类很容易就能够识别这个变了形的“smwm”。
在路易斯研发这一系统之前,早期的验证码可能只是一串简单的ASCⅡ字符(即“美国信息交换标准代码”,是基于拉丁字母的一套电脑编码系统)。但随机数字或字母验证码,可以通过编写对应的软件来破解。后来,验证码变成了通过图片显示字符串或者数字的形式,但带光学字符识别(OCR)的软件也可以绕过这种验证码。这就是为什么现在的验证码中字符通常都经过了一定程度的扭曲变形的原因。这类验证码最易自动产生,具有标准答案,不受背景知识和文化差异的影响。其图像中包含的字符序列既能与背景图像进行融合,又能做出扭曲、变形之类的效果处理,所以被破解的难度很大。我们平日访问的网站,大都使用了这种基于字符的图片验证码。
不过,随着计算机技术的不断进步,个人网络安全保护成了一件越来越复杂的事。即使是扭曲、变形的验证码,也并不能完全将机器人阻挡在外。好在就破解验证码来说,尖端的图像识别技术需要花费大量时间和金钱成本。因而只有那些涉及机密、金钱利益的网站,比如网上银行、购物网站等受到较大威胁。
为了防止财产损失,这些网站纷纷推出了各种进化版的验证码。主流的验证码都是静态图片,有些网站则推出了动态验证码,令机器人很难捕捉。还有一些程序可以生成3D二维码,更加难以识别。此外,还有很多大型购物网站要求发送手机短信验证码,以确保操作者是用户本人。又或者,问用户一个常识性的问题,比如“牛奶和汽油哪个可以喝?”——总之,就是选择一些机器不会、但是人类可以轻易回答的问题。不过,也有一些网站会做得比较过火,甚至,它们的验证码可能是一道微积分题,或者出一些难度让人抓狂的智力测试题,还有的网站竟然让人把看到的图片照着画下来。
当然,在提升验证码难度这件事上,12306网站也一直在不懈地努力——也许稍微过头了点儿。为了防止“技术黄牛”刷票,12306系统几乎保持着每年更新的节奏,简直书写了一部黄牛与12306的技术博弈史。
2010年,12306订票系统面世。紧随其后,2011年就出现了当时最早的刷票软件,黄牛可以在短时间内定光一趟车的票。2012年,12306上线了排队系统,升级了验证码。但很快黄牛就发明了新软件,可以强行购买一趟票已经售罄的列车的车票。这样,一旦有退票,就会立刻落入黄牛手中。之后,又经过了几次让验证码越来越“扭曲”的升级,2015年3月16日,网站启用现在的图片验证码。
目前,12306的图形码的数量已经多达581种。按照要输入两个关键词的登录规则,用户将有机会尝试336980道不同的验证码题目。据360浏览器提供的数据,用户一次输入正确的概率仅为8%,两次成功的比率为27%,而需要输入三次甚至四次才能答对的人数比例为65%。验证难度大的原因在于,12306网站的图形大概有12个品类,而另一方面,由于图形的像素不高,又有许多相似物品的图形出现,所以选错的几率非常高,这就直接造成用户抢票失败的情况。
提供这一系统的杭州微触科技有限公司,把自身定位为“12306网站图片验证码专利方”。对于他们设计的广受诟病的验证码系统,该公司负责人称:“这样做的目的是保证所有人的购票公平性,图标式点触验证码是打击黄牛的最重一拳,今年也是网上售票以来第一次真正实现了公平的购票环境。”
北京邮电大学网络技术研究院教授马严认为,目前的这种图片结合逻辑判断的验证码,从技术上对抗机器人软件确实效果不错,除非网站代码自身有漏洞,否则很难绕过,所以12306的图片验证码对黄牛软件确实可以实现有效的封堵。但目前来看,验证码的缺陷是逻辑问题的判断上需要花费大量精力和技巧,最好能更简单清晰。
而网友的普遍看法则是“然并卵”。一位知乎网友表示:“现在的问题是,验证码调得难度这么高,机器识别不出,人识别也很费劲,这并没有起到任何效果。”毕竟,验证码的作用是让机器无法识别,而不是为了难住用户,让用户无法正常使用。 铁路总公司目前已经开始考虑采取一些措施使图形码更容易辨认。对此,中国铁道科学研究院电子计算机研究所副所长朱建生说:“我们会删除清晰度不高,难辨认的图片,并且不断筛选更新清晰度更高的图片,让旅客更顺畅地购票。”
越来越智能的计算机与越来越复杂的验证码,两者之间形成“道高一尺魔高一丈”式的升级大战。其结果是,人们也越来越容易被验证码折磨或者难住。很多人开始问这个问题:“万恶的”验证码真的是必要的吗?
其实,人们花在识别验证码上的时间,并没有完全被浪费。据CAPTCHA发明者路易斯估算,全世界的网民每天要输入验证码总共接近2亿次,假设每次花费10秒,那大概就花费了50多万个小时。他告诉美国公共电视台说:“我开始思考:我们是否可以把这种劳动用于为人类造福?”于是,路易斯提出了“reCAPTCHA”系统作为解决方案。
现在,很多旧的书籍、报纸需要整理成电子版,但是电脑扫描辨识时常常出错,因为这些资料常常不可避免地有字迹模糊、褪色、污损等情况。对此,唯一的方法是人工核对。那么,为什么不让网民们来帮忙呢?
ReCAPTCHA系统于是出现了。它是一种双重验证码,让你可以在输验证码的时候帮助还原书籍、报刊中那些很难被OCR识别的单词。为了验证输入的文字是正确的,而不是随意输入的,网页上会显示两组字符:一个是OCR无法识别的,另一个是系统知道正确答案的。如果你第二组答对了,就会被确认是人工操作,于是你对第一组的答案会被用来贡献一次人工校对。路易斯还将同一个未知的单词输送给多个用户,如果所有用户辨识的结果一致,那么就认为这个单词被正确识别了。很快,ReCAPTCHA就被谷歌收购了,现在已经成为了谷歌旗下的一项免费服务。
据杜克大学官方杂志《杜克》估算,2011年有6000万至7000万人每天破解大约一亿个单词——你可能也在无意中参与其中。从2012年起,它还增加了一项新功能:显示谷歌地图上的街景地址和名称(从地图上的街景中提取街道地址和名称以及交通标志等数据,以完善谷歌地图上的信息)。目前,reCAPTCHA正在进行《纽约时报》扫描存档的信息化工作,并已完成20年的资料。
实际上,一些科技公司已经开始抛弃挑战计算机光学字符识别(OCR)能力的思路,开发一些对人类来说较为轻松,但计算机又无法识别的验证码。比如,谷歌公司最近使用的办法是,用户只需要点击一个复选框(勾选“我不是机器人”)即可完成验证工作。如果这样还不能判定是机器人还是人类,那么会使用旧版的reCAPTCHA方法来验证。据透露,在使用新方式的时候,约60%的WordPress、80%的Humble Bundle用户可以验证成功,因而他们不需要再进入到reCAPTCHA界面。
这种方式的具体原理,是在用户使用网络的时候就开始收集大量信息,包括IP地址、Cookies等,然后通过这些数据来判定用户现在与过去的使用方式是否一致,从而确定操作者到底是不是机器人。不仅如此,谷歌还会根据用户鼠标在复选框上的移动方式、点击方式等细微动作,来确定人与机器人的区别。
可以看到,解决验证计算机使用者身份问题的方法从来不是只有一种。除了谷歌主要基于用户数据的判断方式之外,新的验证机制也有很多。例如,有的使用触觉原理,要求用户将一个滑块推动到指定位置;或者给出一条曲线,用户需要用鼠标照着画一遍;用鼠标给一些字母排序也能难住恶意软件。当然,还有利用人脸识别与语音识别的方法。
可以说,中国铁路购票系统12306网的验证码被嫌弃的最大原因,并不是因为它本身有多么困难,而在于在那么多种选择中,他们偏偏使用了最不人性化的一种。不考虑用户体验的技术总是会遭到吐嘈,在互联网时代,吐嘈可谓是用户的一种最容易发起的集体狂欢。
12月10日,铁路系统开始发售2月7日除夕的火车票。在奋力抢票之余,12306网站的验证码成了网友们集中吐槽的对象。该网站的最新验证码系统采用图片加逻辑问题的形式:“请点击下图中所有的非智能眼镜。”“请点击下图中所有的博斯普鲁斯海峡。”这些“奇葩”的图片选择题难倒了不少人。网友感叹:“这不仅是考我的眼力,还要考知识面啊!”吐槽风潮中,甚至有人PS出各种无厘头的验证图片对该网站进行恶搞,以示抗议。
不过,被嫌弃的验证码,并不是从一开始就这么让人讨厌的。
验证码不是用来黑的
尽管被买火车票的人们百般吐槽,但小小的验证码其实大有来头。
验证码只是一个俗称,它还有一个听起来非常“高大上”的全名——全自动区分计算机和人类的图灵测试(英文缩写CAPTCHA)。图灵测试是指一种测试机器是不是具备人类智能的方法,而验证码则反其道而行之——它利用人与计算机在认知方面的差异,来确认操作者是人类,从而阻止恶意软件的侵入。
2000年左右,雅虎公司受到了很大困扰,有人用黑客程序在短时间内自动创建了上千个电子邮件地址,然后利用这些地址发送垃圾邮件。但他们不可能一一审查邮件,因为那样做既不尊重隐私,工作量也太大。为此,雅虎找到了当时年仅21岁、正在卡内基梅隆大学读书的路易斯·冯·安(Luis von Ahn)。这位计算机天才后来被美国《探索》杂志评为“20位40岁以下的最聪明的科学家”之一。
路易斯发现,对于那些镶嵌在图片中的、被扭曲过、污染过的文字,机器无法辨识,而人类稍加注意就可以识别出来。路易斯在导师布鲁姆的帮助下很快设计了一个程序,也就是现在的CAPTCHA。它首先生成一个随机的字符串,比如“smwm”,然后对这串字符进行随机的扭曲、重叠、污染,再显示给要进行操作的用户。于是,在计算机“眼中”,这串字符只是一组毫无意义的曲线,而人类很容易就能够识别这个变了形的“smwm”。
在路易斯研发这一系统之前,早期的验证码可能只是一串简单的ASCⅡ字符(即“美国信息交换标准代码”,是基于拉丁字母的一套电脑编码系统)。但随机数字或字母验证码,可以通过编写对应的软件来破解。后来,验证码变成了通过图片显示字符串或者数字的形式,但带光学字符识别(OCR)的软件也可以绕过这种验证码。这就是为什么现在的验证码中字符通常都经过了一定程度的扭曲变形的原因。这类验证码最易自动产生,具有标准答案,不受背景知识和文化差异的影响。其图像中包含的字符序列既能与背景图像进行融合,又能做出扭曲、变形之类的效果处理,所以被破解的难度很大。我们平日访问的网站,大都使用了这种基于字符的图片验证码。
不过,随着计算机技术的不断进步,个人网络安全保护成了一件越来越复杂的事。即使是扭曲、变形的验证码,也并不能完全将机器人阻挡在外。好在就破解验证码来说,尖端的图像识别技术需要花费大量时间和金钱成本。因而只有那些涉及机密、金钱利益的网站,比如网上银行、购物网站等受到较大威胁。
为了防止财产损失,这些网站纷纷推出了各种进化版的验证码。主流的验证码都是静态图片,有些网站则推出了动态验证码,令机器人很难捕捉。还有一些程序可以生成3D二维码,更加难以识别。此外,还有很多大型购物网站要求发送手机短信验证码,以确保操作者是用户本人。又或者,问用户一个常识性的问题,比如“牛奶和汽油哪个可以喝?”——总之,就是选择一些机器不会、但是人类可以轻易回答的问题。不过,也有一些网站会做得比较过火,甚至,它们的验证码可能是一道微积分题,或者出一些难度让人抓狂的智力测试题,还有的网站竟然让人把看到的图片照着画下来。
12306惹谁了
当然,在提升验证码难度这件事上,12306网站也一直在不懈地努力——也许稍微过头了点儿。为了防止“技术黄牛”刷票,12306系统几乎保持着每年更新的节奏,简直书写了一部黄牛与12306的技术博弈史。
2010年,12306订票系统面世。紧随其后,2011年就出现了当时最早的刷票软件,黄牛可以在短时间内定光一趟车的票。2012年,12306上线了排队系统,升级了验证码。但很快黄牛就发明了新软件,可以强行购买一趟票已经售罄的列车的车票。这样,一旦有退票,就会立刻落入黄牛手中。之后,又经过了几次让验证码越来越“扭曲”的升级,2015年3月16日,网站启用现在的图片验证码。
目前,12306的图形码的数量已经多达581种。按照要输入两个关键词的登录规则,用户将有机会尝试336980道不同的验证码题目。据360浏览器提供的数据,用户一次输入正确的概率仅为8%,两次成功的比率为27%,而需要输入三次甚至四次才能答对的人数比例为65%。验证难度大的原因在于,12306网站的图形大概有12个品类,而另一方面,由于图形的像素不高,又有许多相似物品的图形出现,所以选错的几率非常高,这就直接造成用户抢票失败的情况。
提供这一系统的杭州微触科技有限公司,把自身定位为“12306网站图片验证码专利方”。对于他们设计的广受诟病的验证码系统,该公司负责人称:“这样做的目的是保证所有人的购票公平性,图标式点触验证码是打击黄牛的最重一拳,今年也是网上售票以来第一次真正实现了公平的购票环境。”
北京邮电大学网络技术研究院教授马严认为,目前的这种图片结合逻辑判断的验证码,从技术上对抗机器人软件确实效果不错,除非网站代码自身有漏洞,否则很难绕过,所以12306的图片验证码对黄牛软件确实可以实现有效的封堵。但目前来看,验证码的缺陷是逻辑问题的判断上需要花费大量精力和技巧,最好能更简单清晰。
而网友的普遍看法则是“然并卵”。一位知乎网友表示:“现在的问题是,验证码调得难度这么高,机器识别不出,人识别也很费劲,这并没有起到任何效果。”毕竟,验证码的作用是让机器无法识别,而不是为了难住用户,让用户无法正常使用。 铁路总公司目前已经开始考虑采取一些措施使图形码更容易辨认。对此,中国铁道科学研究院电子计算机研究所副所长朱建生说:“我们会删除清晰度不高,难辨认的图片,并且不断筛选更新清晰度更高的图片,让旅客更顺畅地购票。”
验证码升级大战
越来越智能的计算机与越来越复杂的验证码,两者之间形成“道高一尺魔高一丈”式的升级大战。其结果是,人们也越来越容易被验证码折磨或者难住。很多人开始问这个问题:“万恶的”验证码真的是必要的吗?
其实,人们花在识别验证码上的时间,并没有完全被浪费。据CAPTCHA发明者路易斯估算,全世界的网民每天要输入验证码总共接近2亿次,假设每次花费10秒,那大概就花费了50多万个小时。他告诉美国公共电视台说:“我开始思考:我们是否可以把这种劳动用于为人类造福?”于是,路易斯提出了“reCAPTCHA”系统作为解决方案。
现在,很多旧的书籍、报纸需要整理成电子版,但是电脑扫描辨识时常常出错,因为这些资料常常不可避免地有字迹模糊、褪色、污损等情况。对此,唯一的方法是人工核对。那么,为什么不让网民们来帮忙呢?
ReCAPTCHA系统于是出现了。它是一种双重验证码,让你可以在输验证码的时候帮助还原书籍、报刊中那些很难被OCR识别的单词。为了验证输入的文字是正确的,而不是随意输入的,网页上会显示两组字符:一个是OCR无法识别的,另一个是系统知道正确答案的。如果你第二组答对了,就会被确认是人工操作,于是你对第一组的答案会被用来贡献一次人工校对。路易斯还将同一个未知的单词输送给多个用户,如果所有用户辨识的结果一致,那么就认为这个单词被正确识别了。很快,ReCAPTCHA就被谷歌收购了,现在已经成为了谷歌旗下的一项免费服务。
据杜克大学官方杂志《杜克》估算,2011年有6000万至7000万人每天破解大约一亿个单词——你可能也在无意中参与其中。从2012年起,它还增加了一项新功能:显示谷歌地图上的街景地址和名称(从地图上的街景中提取街道地址和名称以及交通标志等数据,以完善谷歌地图上的信息)。目前,reCAPTCHA正在进行《纽约时报》扫描存档的信息化工作,并已完成20年的资料。
实际上,一些科技公司已经开始抛弃挑战计算机光学字符识别(OCR)能力的思路,开发一些对人类来说较为轻松,但计算机又无法识别的验证码。比如,谷歌公司最近使用的办法是,用户只需要点击一个复选框(勾选“我不是机器人”)即可完成验证工作。如果这样还不能判定是机器人还是人类,那么会使用旧版的reCAPTCHA方法来验证。据透露,在使用新方式的时候,约60%的WordPress、80%的Humble Bundle用户可以验证成功,因而他们不需要再进入到reCAPTCHA界面。
这种方式的具体原理,是在用户使用网络的时候就开始收集大量信息,包括IP地址、Cookies等,然后通过这些数据来判定用户现在与过去的使用方式是否一致,从而确定操作者到底是不是机器人。不仅如此,谷歌还会根据用户鼠标在复选框上的移动方式、点击方式等细微动作,来确定人与机器人的区别。
可以看到,解决验证计算机使用者身份问题的方法从来不是只有一种。除了谷歌主要基于用户数据的判断方式之外,新的验证机制也有很多。例如,有的使用触觉原理,要求用户将一个滑块推动到指定位置;或者给出一条曲线,用户需要用鼠标照着画一遍;用鼠标给一些字母排序也能难住恶意软件。当然,还有利用人脸识别与语音识别的方法。
可以说,中国铁路购票系统12306网的验证码被嫌弃的最大原因,并不是因为它本身有多么困难,而在于在那么多种选择中,他们偏偏使用了最不人性化的一种。不考虑用户体验的技术总是会遭到吐嘈,在互联网时代,吐嘈可谓是用户的一种最容易发起的集体狂欢。