12306图片验证1天内被破解 验证安全出路在哪?
12306的验证码出发点是安全?用户体验?
那么,我们来谈谈12306的图片验证码到底是个什么鬼。12306所采用的图片式验证码的验证形式,并不是什么首创,早在一些游戏网站上也采用过这样的验证形式,请看下图。
这把人都能吓懵的验证码还真出现过,而且很不幸的是,上了一阵子之后就被破解了。
现在12306推出的图片验证码,首先从用户体验上来讲,并没有比之前的文字验证码好用多少。虽然用户不再依靠键盘输入,但是面对小且密集的8张图片,选出“所有”正确的图片,那必须把所有图片仔细看一遍,这一过程带来的不确认型其实是同用户分辨G和9和心里过程是一样的。不信你瞅瞅下面哪些是邮票?重要的是这一过程中带来很大的不确认性,心理负担略重。
用户体验这个标准,不好衡量,我们再来谈谈安全性。从一开始变成图片验证形式,事情就不会像今天新闻标题说的那样,“刷票软件将全部失效“(我本着好奇的态度,搜了一下相关新闻,基本上从2012年起,每次12306更换比较明显的验证码,媒体都是这样报道的),为什么呢?前面我们讲到成熟的OCR技术导致英文字符验证码很难起作用,事实上,图像识别的发展也是趋于成熟。所以,12306的图片验证码被迅速破解也不是什么难事,反而将门槛降低。
下面的具体破解举例引用知乎用户王猫猫在问题“如何评价 12306 的最新版验证码?”下的回答。
(此图来自知乎用户王猫猫的回答)
直接将图片处理后丢入google、百度的识图接口,返回的数值让人惊讶(第二张图居然能精准识别到是沙县小吃?)。后来根据王同学提供的代码,我进行了下一步的处理工作,再次利用第三方软件识别中文字符,然后将字符与图片字符进行匹配,之后选择图片。整个测试图片大概200张(只是模拟了登录,没有去刷掉一整车票),通过率在85%左右。所以,仅仅是技术爱好者动用一些公用接口就轻松能识别图片类容,而且一旦识别后,还可以将这张出现过的图片存库,再次出现就更加快速准确的定位了。暂且不谈图像识别和机器学习这样高大上的破解方法了。
图片验证码之所以不安全,是因为目前的图片识别技术也是相当的成熟。12306这些图片如果是人工标记,无疑是将自己摆到一个愚公移山的悲壮位置;如果是机器识别,也一样是可以被识别内容,即用图片内容的识别作为验证核心将毫无意义。
从12306这次更新来看,12306的验证思路,还是在玩已经过时的技术,对验证的视野和理解并不是很透彻,才会落到上线不到一天就被破解的尴尬局面。当然,12306有面对黄牛的进行创新的勇气是可嘉的,但是方向走错了,进行购票流程上的全面优化才能让问题得到最终的解决,将赌注放在验证码身上,目前看来不太现实。
走在前面的依然是Google
那么,验证安全的终极奥义是什么呢?我们可以回顾一下去年的关于google的No-CAPTCHA(No-Capthcha是Re-Capthcha的子项目)的文章,google提出了一个概念叫human behavior analysis,大意是将用户的行为做为判断人与计算机的准则。这个理念提出的意义在于,不再依靠图灵测试即单一的答案来判断人机,而是通过用户一系列的上网行为来确定访问者是人,还是机器。但是从google目前的前端代码层和具体流程来看,目前只是试探性的的发展,如果这个理念能够实际操作并完善,那么验证码的安全性将提高的一个史无前例的高水平,至少破解门槛不会低到仅仅调用一下公共接口就瞬间破解
责任编辑:大云网
-
发电电力辅助服务营销决策模型
2019-06-24电力辅助服务营销 -
绕过安卓SSL验证证书的四种方式
-
网络何以可能
2017-02-24网络