黎明滤芯厂家
免费服务热线

Free service

hotline

010-00000000
黎明滤芯厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

非请勿过探秘验证码背后的秘密

发布时间:2021-01-21 08:28:17 阅读: 来源:黎明滤芯厂家

前不久12306网站刚刚更新了验证码形式,从英文字符换成几张小图片,媒体竞相报道12306启用图片验证码让抢票软件失效。结果一天内就出现破解。那么什么是验证码,它又有什么作用?什么样的验证码才更安全?

验证码,掀起你的盖头来

老网民可能都知道,在前几年的网络世界,我们几乎看不到什么验证码,验证码是近几年才出现的新生事物,现在几乎每个网站、论坛都会有验证码的出现。验证码顾名思义就是用来验证用户某种操作(如购物网站提交订单、论坛提交回复、用户注册)的一种技术手段(图1)。

图1 百度用户登录时使用了验证码

那么为什么现在网站要推出验证码?验证码主要作用一是用来防止机器人注册,同时用于验证合法用户的提交。泡论坛的朋友都知道,现在论坛里都会有很多广告帖,大部分广告帖都是机器人注册的账号,这样纯水帖给论坛管理带来很大的不便。因此为了阻止机器人自动注册账号和自动发布广告帖,很多论坛在注册时引入了验证码机制,通过随机出现的图片或数字密码来阻止机器人的自动注册(图2)。

图2 网站、论坛的注册推出验证码机制阻止机器人注册

验证码的另一个作用则是用来减缓网站服务器的处理压力。对于一些大型的网站或论坛,因为同时在线的用户很多,如12306网站在2015年春运高峰日的PV值是297亿,流量增加1000倍,面对这样海量、高并发访问流量,如果用户在提交订单的时候不引入验证码机制来延缓提交,那么网站服务器就会瞬间当机,当然验证码的存在也可以阻止机器人自动提交订单(图3)。

图3 12306在用户提交订单时需要输入图片验证码

免输入——抢票软件如何自动输入验证码

如上所述,验证码的作用主要是阻止类似机器人的自动操作。不过使用抢票软件购票的朋友都知道,虽然12306网站在登录、提交订单的时候都用了验证码机制,不过这些验证码并没有给抢票软件造成任何麻烦,它们仍然可以在后台自动输入验证码(图4)。

图4 搜狗浏览器抢票通可以自动输入验证码

这些软件是怎么突破验证码封锁的?其实对于早期12306网站使用的数字(包括字母)方式的验证码,抢票软件是通过OCR识别技术来通过验证的。比如上图的验证码字符是“kdte”(验证码一般忽略字母大小写),这样当抢票软件读取到上述图片时,它会将这个图片传输到服务器,这样在服务器上的OCR软件通过扫描就可以快速获得正确的验证码,扫描结果返回抢票软件就可以直接输入正确的验证码了(图5)。

图5 自动输入验证码图解

同样的对于网站其他需要输入验证码的地方,抢票软件都是通过上述方法实现准确识别和正确的输入,从而实现自动、高效的购票。

道高一尺魔高一丈——验证与反验证

简单字符式的验证码容易被机器识别,为了提高验证码的效率,现在很多网站纷纷使用各种方法来加强OCR识别的难度,一些网站使用类似“7+2=?”简单算术式(用户通过输入正确答案)来作为验证方式,一些网站则使用中文字符来作为验证码,另一些网站如腾讯网站在注册QQ账号页面,则通过为验证码添加背景图片来干扰机器的OCR识别(图6)。

图6 腾讯为验证码添加背景图片来干扰机器的OCR识别

不过人眼都可以轻松识别,对于机器OCR来说更是小菜一碟,比如类似“7+2=?”简单算术式的验证,除了OCR只要再将识别结果进行简单运算即可获得正确的验证码。

既然简单字符式的验证码容易被机器识别,于是一些网站开始使用图片式的方法来作为验证码。12306网站近日就启用了全新的图片验证方式,当用户在登录12306时,必须使用鼠标在8张图片上点击符合要求的图片,点击后会在图片上留下铁路标记(图7)。

图7 12306使用的图片验证码

图片验证码看上去要比字符式的复杂,那么识别起来是不是就更难?其实对于机器识别来说,图片验证码的难度并没有提高多少难度,字符识别机器是通过OCD扫描识别,图片同样可以借助图片识别技术进行精准的识别。相信很多朋友已经使用过百度的“以图找图”功能,这个实际上就是典型的机器图像识别技术(图8)。

图8 百度的以图找图功能

当然就具体操作而言,图片识别流程和OCR相似。以上述12306的验证图片为例,图片服务器首先获得网站的验证码图片,然后将8张图片进行编号,并且将图片对应的文字说明一起列出,这样只要找到其中2张文字说明(可以是关键字)相同的做个标记。比如上述验证码图片正确选择是“福娃”,这样服务器获得福娃信息的图片(1、6)后,就会将点击图1、6指令传输给抢票软件,从而实现图片验证码的自动输入。因此从技术角度上来说,12036采用图片验证码难度并没有比字符识别增加多少。

验证码的未来

验证码作为一种目前普遍使用的验证手段,除了阻止机器人自动识别外,还是保护我们日常操作的一个重要保护手段。因此各大公司也纷纷在验证码识别技术上进行改进,一方面,一些公司通过多种验证的方式加强验证的安全性。如现在很多在线支付网站就推出附加短信验证的保护措施,除了要求输入直接显示的验证码外,还要求输入预先绑定的手机获取的短信验证码来加强验证(图9)。

图9 为了支付安全,很多网站增加手机短信作为验证码

此外,一些公司则通过人类的具体行为和机器的不同来实现验证。Google就提出了一个“human behavior analysis”的方案,它的核心是将用户的行为做为判断人与计算机的准则。这样推出的验证有很强的人类思维行为,从而杜绝机器的自动识别,有效保证验证码的安全。

总之,验证码存在时给我们日常的网络行为(如购票)带来不便时,用户希望通过机器的识别来提高操作效率;而当验证码为在线支付等操作带来保驾护航时,人们又希望有机器无法识别的验证码保障安全。

拳无双

无双帝国

六台图库下载安装