彩票走势图

验证与破解,直击现有验证码机制

转帖|行业资讯|编辑:龚雪|2017-02-07 14:05:28.000|阅读 463 次

概述:说起“验证码”,恐怕大部分人都会流露一脸便秘的表情。在搜索引擎里输入“验证码” “发明”这两个关键字,搜索页面会弹出成千上万个表达群众不满的结果:“谁发明了万恶的验证码?”“发明验证码的人你出来,我保证不打死你”,当然这里面很大程度上是某12**6无良网站给大家留下的心理阴影。那么目前验证码机制究竟发展如何,相对的破解手法有有哪些?我们现在就来一探究竟

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

验证码的诞生,是为了杜绝通过软件设计的“注册机器人”进行恶意注册,进而产生大量的垃圾用户(僵尸用户)以及垃圾点评信息。输入验证码的过程,其实是让机器判断你到底是真人还是软件。“验证码”的英文名字很拗口,叫CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),翻译过来是“全自动区分计算机和人类的图灵测试”。

yahoo邮箱在九几年的时候,业务深受各种邮箱机器人的困扰,存在着大量的垃圾邮件,于是他们找到了当时仍在读大学的路易斯·冯·安(Luis von Ahn),并设计了经典的图形验证码,即通过简单的扭曲图形文字进行机器的识别。通过这个简单的图形,他们很快的控制住了垃圾邮件的数量,并将大量的机器人据之门外。

最开始的纯数字验证码是很有爱的,后来数字和字母混合二维码成为主流,但这仍然容易被破解,于是各家大法被研究出来,有将数字和字母各种扭曲的,有在背景设置图案和噪点干扰的,从此验证码的发展就走上了一条画风越来越奇特的不归路。

从还算能忍的这样:

变成了这样:

还有这样:

至此,我们不得不提出一个问题:验证码真的是必要的吗?

验证码不是一个功能性的需求,他并不能带来业务的提升,也不能带来任何价值。验证码只是为了解决机器问题才诞生的。在设计和验证码演化的过程中,必须同时考虑安全性和体验。

让我们老考虑验证码的最简化模型,关键点在于:生成的问题能够由人来解答,并且机器难于解答。于是传统的图形验证码的重点就放在了如何生成让机器难于解答的图片上来。

 

从上图看来,相应的各种方法已经有了相当成熟的一些对抗办法,更不用说现在已经广泛泛滥的打码平台了。

结合我们安全性和体验两方面来讲,传统验证码在两方面来说都已经不能满足要求了。现在验证码识别方式千千万万那,再复杂的验证码机制也禁不住各种野生大神、科班程序员轮番上阵蹂躏。目前来说,最基本的简单验证码识别方式一般按照以下几个步骤:

1.去干扰

把不需要的信息去除或削弱,比如干扰线、噪点等。其中一个原理是利用干扰信息与字符的RGB值的差别来识别干扰信息。而去除干扰线的算法一般都是对图像进行曲线检测,从而识别出图像中的干扰线。毕竟干扰线大部分时间都是连续的小角度曲线或者孤立在字母外的曲线。

2. 文字分割与标准化

为了能够识别出字符,需要把去除干扰信息后的验证码图片进行分割,把每个字符作为单独的一个图片看待。然后对图片进行适度偏转,提高识别率。假如字符偏向角度相同的话,也可以先旋转后切割。

首先对图片像素进行扫描:对于完全没有粘连的验证码来说,分割起来真是十分容易,直接从左到右扫描,在扫描不到文字像素的横坐标处进行分割。

3.识别

单独的字符分离出来后,就要开始训练机器进行识别了。使用比较广泛的是谷歌开发的光学字符识别引擎(Tesseract-OCR):

 

利用OCR识别的结果,虽然看起来有点傻,但由于是官方调教的,没有针对同类型(同一网站)的验证码进行学习。当然也可以自己去实现这个过程。最霸气侧漏的方法当然就是训练神经网络了,由于这是一种模拟神经元工作的一种算法,由于需要经过足够多的样本学习,因此对扭曲的字符识别率比较高。

 

除此之外当然还有各种各样的高端识别算法,等待你们探究。

看过了这么多林林总总的外部对抗,目前验证码机制自身存在的问题还有:

  1. 题库维护的难题。

如果题库被遍历完成,那么其安全性无法保证。12306为什么后面把问题变成了图片呢? 因为有攻击者将每次的答案与出现的可选问题进行了多次重复遍历,当这个遍历到达一定次数后,会发现某个答案与某张图常常会关联出现(因为问题必定会有正确答案),通过这个出现概率即可得到答案。于是,12306才把文字变成了现在扭曲的图片。 并且还有研究人发现,12306的图片可能大量来自某百科,通过逆向使用该公司的图像识别服务,可以得到该图片的部分标签。

2.体验差

过年的时候,正常人平均都要答3、4次才能答对答案。而且部分图片因为分辨率不高、再加上缩小图片以后,会更加的看不清了。

基于人类用户的行为,具体点就是用户在进行相应操作时,会产生的操作记录和环境信息(详见设备指纹一文)等。

基于人类用户行为这条路是基于以下基础的:

A机器人的环境有别于正常用户

B机器人的动作或频率等有别于正常用户

C机器人的在相应关键业务点的行为逻辑有别于正常用户

但是这个基础在技术对抗上有个更关键的点,在于如何构建一个安全的信道,将这些数据回传回来。如果这个信道的采集机制、加密机制和传输机制被攻击者所探知,那么以上采集的信息将没有秘密可言。(换句话说,攻击者会伪装成正常用户的行为发送数据)

说了这么多,未来验证码会如何发展呢?学院君表示我们只能拭目以待啦。

更多行业资讯,更新鲜的技术动态,尽在。

 

关注慧都学院微信微博

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP