验证码的识别与改进
2021.5
1概述
传统的验证码识别基本都是基于OCR 来实现。基
于深度学习的验证码识别,主要采取深度学习中的卷积神经网络,再配合机器学习来实现的。学习2个或多个神经网络模型,再配合算法的训练和学习,则可以验证市面上95%的验证码。面对当下先进的技术和环境,验证码在系统或是平台上作为第一道防线,还是非常重要的,只要满足一定的条件就可以降低识别率,提高避免率。
2
传统的验证码安全策略
2.1验证码的概念
验证码(CAPTCHA)简单解释即一个答题的验证。
系统向请求发起方提问能正确回答的即是人类,反之则为机器。
2.2验证码的应用
从安全角度来讲,验证码经过长期的发展,已成为国内外所有公司必须具备的安全策略。
(1)用户注册方面
(2)平台的登录验证,密码的回和修改(3)支付页面,交易的安全验证(4)绑定电话,银行卡验证
验证码应用的场景很多,也是能够防止机器程序恶意撞库、洗库、恶意信息传播、SQL 注入、短信轰炸等的重要措施。如果没有验证码保护,网站受到攻击将会面临巨大的泄露风险。2.3验证码的发展趋势
目前,市面上很多厂家已经采用多种形式的验证
码,来提高黑产的暴力破解的难度,常见的有前端验证码识别、短信验证、图表点选、文字点选、刮刮卡验证、乱序拼图验证等等。短信交互验证分两种方法,(1)应用网络平台接口实行下发短信;
(2)在网页前
端提供验证指令。而字符型验证码,也是常见的并用的
最多的一种安全方式,也是黑客主要攻击的一块产业。将具体通过对字符型验证码进行暴力破解,总结出验证码的缺陷以及改善点,从而降低以及避免验证码被黑客所破解。
3验证码被攻破风险
验证码一旦被攻破,轻则使数据库瘫痪,造成大量
的虚假用户。重则利用返回值的内容修改密码和重置密码,直到获取用户的所有信息。登录如果缺少验证码,攻击者可通过暴力破解的方式非法接管用户账户。注册如果缺少验证码,将会有大量僵尸用户生成,导致服务器性能下降或崩溃。网站具有提交表单的功能,并需要由站点管理员审核通过。大量的垃圾表单可能产生,会影响网站的访问速度,加大站点管理员的工作量,而且一些合法用户的请求,也可能会因此被拒绝服务。和短信如果没有得到有效的验证保护,那么恶意攻击者可以利用程序,向目标发送大量的垃圾邮件。短信验证功能可向绑定手机发送任意次数验证码,可以自写脚本遍历银行卡号发送任意数量短信,影响用户体验以及造成短信服务过度消费。
4
验证码的研究现状与改进
4.1字符型验证码的传统识别破解方式
OCR 即光学字符识别,是指通过深浅的形状来判
断是什么字符,然后通过字符识别的方法将形状转换成
计算机字符的过程[1]。从早期的通用扫描文档识别(谷歌数字图书馆、ABBYY、汉办、文通等)到银行卡/身份证等证件识别(、支付宝(Alipay ))等识别OCR,行业积累了丰富的宝贵经验。缺点是正确的英语识别率不高,使用时经常发现u 和n、a 和c 之间存在
作者简介:张锐(1996-),男,学士,研究方向:工业信息安全;蔡艳林,中级工程师,学士;陈夏裕,学士,高级工程师;郭立龙,学士。
验证码的识别与改进
张锐,蔡艳林,陈夏裕,郭立龙
(江苏亨通工控安全研究院有限公司,江苏亨通信息安全技术有限公司,江苏苏州215000)
电脑C盘满了变成红了怎么清理
要:互联网安全中,验证码是安全措施中的第一道屏障。现代高科技技术验证码识别,引起不法分子
利用和搭建打码平台。他们快速训练和识别验证码,从而造成很多种验证码被破解,为网络黑产提供了高效的保障。主要讲述现代社会的高新技术破解验证码以及针对现代的高新技术采取有效措施去避免和减少验证码被破解两个方面。关键词:深度学习;验证码;OCR
技术
117
2021.5
图1不同种类的验证码
识别错误,如果验证码简单是几个数字或者字母,OCR 处理将绰绰有余,但是当数字或图片添加噪点
或者动态迷糊,则会阻碍OCR 的识别,不可能进行有效的特征分割和提取,因此,字符图像分割[5]、识别等存在一定的弊端。针对这种识别,验证码可以添加噪点等动态模
糊即可影响识别。
4.2基于Modi 的验证码识别
Modi 是微软办公文档图像处理库[2],是随着2013Of⁃
fice 发布的新型软件包,其中集成了OCR 技术,Modi 组件很丰富,其中最重要的是document 和image 的对象,也是正常开发所用到的对象。Modi 的验证原理就是下载验证码图像,然后分割、书写,然后交给Modi 组件去识别。但是还是基于OCR 技术来验证验证码,其弊端还是显而可见的,当验证码复杂的时候,字符切割就会不准确,图像不准确就会影响识别率。未来可以增强字符切割算法,从而更有效地提高识别率。4.3基于深度学习的人工智能识别验证码
卷积神经网络是一个基于传统神经网络的深度学习
网络。从结构上看,它主要由单个或多个基于体积的层和池层(也称为下采样层)组合而成。人类的大脑机制,如图像、语音和文本,是用来解释数据,而识别这些元素包括面部识别、声纹识别、文本阅读等。
多任务学习(MTL)通过对数据赋予多个监视信息
(标签)来进行学习[3]。例如,同时识别图像中的人脸位置、性别、身高、表情等。基于深度学习识别解密字符型校验码的优点是,只要定义合适的网络模型,充分训练带标签的样本,就远远高于通过传统方法获得的识别效果。验证码能轻松处理是否黑白、是否失真、哪种字体、哪种噪音,无需各种模式的验证码阈值调整。另外,神经网络本身具有很强的特补泛化能力,对于用不同手段生成的不同样式的验证代码,如图1所示,只需要收集或生成大种植的这种类型的训练。
目前最流行的端到端测试验证码cnn_bklstm_ctc [4],
只需要保证等式
(mod ((输入宽度*输入高度*输出层参数)/池化步长的池化层数幂次方*标签数)=0)成立,则可以通过代码形式验证。如表1所示。
图片的格式要求也很高,当位数为3,5,6,7容易出现不满足等式的问题,这个等价关系如果不好计算的话,建议使用CTC Loss。
例如使用CNN5+CrossEntropy 组合,则输入宽度与输入高度需要以下公式((mod (输入宽度*输入高度*64)/16*标签数)=0即可:同理如果CNN5+RNN+CTC,卷积层之后的输出经
过以下变换:
Reshape([-1,outputs_shape *outputs_shape])RNN 层的输入输出要求为(batch,timesteps,num_classes),为了接入RNN 层,经过以上的操作,又引出一个Time Step (时间步长)的概念。timesteps 即图片切片,每个切片需要和标签对应。进入RNN 层之
后timesteps 的值也是经过卷积池化变换之后out⁃puts_shape,而CTC Loss 的输入要求为[batch_size,
frames,num_labels],若timesteps 小于标签数目,可以理解为图片切片数小于标签数,一个切片对应了多个标签,那么肯定是无法计算损失的,也就是无法从损失函数中到极小值,梯度无法下降。timesteps 最合理的值一般是标签数的2倍,为了达到目的,也可以通过对输入Resize 来间接调整卷积池化之后的outputs_shape,timesteps 直接关联于图片宽度,大多情况只需按比例Resize 宽度即可。
4.3.1多任务训练深度神经网络识别验证码步骤
使用cnn_bklstm_ctc 端到端测试验证码,predict-
四姑娘山旅游攻略
CPU 为60ms,predict-GPU 为60ms,模型大小为6.5mb。
验证码有很多种,比如,由4个英文字符或汉子组成的校验码,即一个多分类问题,或者来回跳动的动态验证码。
造梦西游1法宝收集这些验证码很简单,可以从接口平台去获取验
证码或者自己自动生成验证码,也可以到打码平台买验证码训练集。中文字符集一般比数字英文大很多,收敛时间较长,同样也需要更多的样本量。
大量的中文字符
网络池化步长^池化层数
输出层参数
CNN5
1664CNNX
8
64
ResNet50161024DenseNet
322048表1
118
2021.5
[4]祝广强.5G 网络在3.5GHz 频段下的室内传播模型匹配与校正[J].通讯世界,2020,(2).
[5]吴建.可再生能源电源的电能传输线路损耗评估模
型分析[J].电源学报,2020,(7).[6]程前.5G 无线接入网多场景覆盖模型预测分析[J].信息通信,2019,(12).
[7]刘娜.室内无线传输系统的穿墙损耗模型分析[J].
解放军理工大学学报(自然科学版),2019,(1).图2带各种参数混合复杂的字符码对机器要求更高。
如何解决学习训练集?首先需要输入预测结果与真实结果进行对比,取出损失函数的值,下降梯度求极小值。
如何针对训练集,验证集和测试集呢?首先需要采集样本,采集样本种需要经过判断,只有通过验证,正确的样本才保存下来。这样有效的样本对提高识别率才有帮助。验证样本以md5图片格式保存样本。请求验证接口,然后生成验证集样本,测试目标验证码。4.3.2多任务训练深度神经网络破解字符验证码的识别率
通过研究发现,图2这种经过大量的训练集测试后
人间四月天的唯美句子能达到95%以上的识别率,如果是带颜的这种,则要处理识别颜,不分离颜的思路有3种,
(1)同时
预测颜和字符内容,但是成本过高,识别率低;(2)是每个颜分别训练一种模型,时间花费会增高,但是效率高;
惊蛰节气的风俗(3)把所有颜都通过颜进行变,变成
灰,或者深颜的颜。尽管如此,3种方法的成本都非常高,即使有了样本,也需要不少时间和精力。但是这种深度学习的方式是目前来说识别率最高的一种解决方法。
平常的深度学习算法效率会很低,当颜参数越来越多的时候,处理时间也会加长吗,成本也会变高。当然如果加入神经网络进行支持,预测验证码和每个字符对应的颜,这些问题便会迎刃而解,唯一的缺点是样本训练集的要求会很高。
针对这种识别,验证码可采取多颜、多文字、多字符的方式,减少识别率。
5结语
以攻击者的身份来展示验证码的破解过程,目前的
高新技术都存在很多弊端,可以利用这些弊端,来提高验证码的安全性。在生活中验证码为第一道防线,一定要非常重视,不管是什么方式生成验证码,都一定要复杂,增加破解成本,筛选出普通人和
真实黑客。前端生成验证码时尽量使用背景,汉子最难识别,其次是字母,字符扭曲更难识别,再加点干扰点或干扰线增加验证码识别难度或者用平台提供的现有的安全接口进行使用。这样就可以更好地预防和减少攻击所带来的影响。参考文献
[1]Smith,Ray.An Oveview of the Tesseract OCR Rngine.2007,(1):2.
[2]王泽建.基于模板整体匹配的验证码识别算法研究与实现[D].厦门:厦门大学,2012.
[3]J General Chair-Li,XS General Chair-Wang,M Pro⁃
gram Chair -Garofalakis,
Proceedings of the 22nd
ACM International Conference,CIKM '14:2014ACM Conference on Information and Knowledge Manage⁃ment Shanghai China November,2014.
[4]General Chair-Li,Jianzhong ,et al."Proceedings of
the 23rd ACM International Conference on Conference
on Information and Knowledge Management."Acm
o型腿穿什么裤子International Conference on Conference on Information &Knowledge Management ACM,2014.
[5]杨雄.基于Python 语言和支持向量机的字符验证码
识别.数字技术与应用,2017,04(04),
81-83.
(上接第84页
)
119

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。