ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:1.07MB ,
资源ID:9091632      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9091632.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(验证码及其安全性研究.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

验证码及其安全性研究.docx

1、验证码及其安全性研究 验证码及其安全性研究摘 要随着全球互联网的迅速崛起,验证码的应用日益广泛 本文首先介绍验证码的历史背景,验证码的概念,验证码的作用以及验证码的意义然后了解国内和国外对验证码识别研究的现状,简单介绍三种验证码识别技术:基于模板匹配的方法、基于神经网络学习方法以及基于形状上下文方法接着将国内现有的验证码生成方案整合分类,了解其实现方式对图片验证码、人工智能识别和人机交互验证码等现有验证码方案进行了安全性研究对这些验证码的安全性做出比较排序,把实验结果进行分析并整合,得出基于生物特征的验证码以及短信验证码最为安全,其次相对来说人机交互的验证码较为安全,最后才是图片以及数字验证码

2、,但是对于数字型的验证码可以进行加入噪线、扭曲等复杂机制来提升安全性关键词验证码;验证码识别;验证码的安全性 Research on Verification Code and Its SecurityAbstractWith the rapid rise of the global Internet, people began to use Internet technology more and more frequently, and Internet technology began to infiltrate into all aspects of peoples lives,. F

3、irstly, this paper introduces the historical background of verification code, the concept of verification code, the function of verification code and the significance of verification code. Then, to understand the current situation of research on verification code recognition at home and abroad, thre

4、e verification code recognition technologies are briefly introduced: template matching based method, neural network based learning method and shape context based method. Then the existing verification codes in China are integrated and classified to understand their implementation. The security of ex

5、isting verification codes such as picture verification codes, artificial intelligence recognition and human-computer interaction verification codes is studied. The security of these verification codes is compared and sorted, and the experimental results are analyzed and integrated. It is concluded t

6、hat biometrics-based and SMS-based verification codes are the safest, then human-computer interaction verification codes are relatively safe, and the last is pictures-based and digital-based verification codes. However, digital verification codes can be added to complex mechanisms such as noise and

7、distortion to improve security.Key wordsverification code, verification code recognition, verification code security1. 绪论1.1研究背景随着全球互联网的迅速崛起,人们开始越来越频繁的使用互联网技术,而且互联网技术也渗入到人们生活的方方面面,像淘宝的购物,京东的购物,游戏的账户登录,12306的火车出行等等方方面面都已经开始和互联网技术挂钩了,于是这些输入到了网络的居民信息容易被很多不法分子开始利用,这些不法分子利用各种可以破解输入到了网络的居民信息的程序以及病毒,从而获取居民

8、的信息一些机构为了遏制上面这些不好的现象,开发出来了验证码验证码主要就是用来区分某个网站或者网页究竟是人为的登录,还是被一些计算机恶意的访问,然而验证码的开发虽然有效的减低了一些计算机恶意的访问,但同时也给了用户一些不美好的体验,比如在某一段时间12306的火车出行的登录验证,一些验证码过于复杂,导致用户多次登录失败,严重影响用户的体验因此,对于验证码也必须有结合自身网站的具体需求来具体设计1.2 研究现状随着全球互联网的迅速崛起,人们开始越来越频繁的使用互联网技术,验证码的使用也是越来越频繁,已经慢慢发展成了网站保护的一种司空见惯的技术了在这种情况下,国内外很多学者对于验证码的研究也越来越深

9、入1.2.1国外研究现状在互联网技术发展的初期,美国学者Luis yon Alto就抢先一步开始研究验证码及其安全性能,并且首次提出了CAPTCHA的技术概念1,Luis yon Alto在接下来的一段时间里并没有放弃研究验证码及其安全性能,随后发现了为RE-CAPTCHA的技术2,使得验证码的应用得到进一步发展JRendra Malik进一步对于验证码及其安全性进行了研究3,发现了验证码可以基于形状上下文的形状条纹的不同的特征来进行相关的匹配4Jesse Windle在验证码及其安全性进行了研究上发现了可以用Hart小波滤波结果来破解一种相关的验证码等等1.2.2国内研究现状中国科学家龚才春

10、在验证码及其安全性研究的基础上通过凹凸分析发现了一些相关的识别手写体的数字字符的验证码识别技术5中国科学家汪渤利用图像进行二值化的技术6,在验证码及其安全性的研究上提出基于外部轮廓结构及其机构的特征从而可以验证数字进行验证码验证的方法7在2009年的时候,中国科学家吕刚利用神经网络相关方面的知识8,结合验证码验证的技术,提出了模板匹配验证码验证技术1.3研究意义与方法1.3.1研究意义实际应用中验证码在互联网安全保护中应用非常广泛,其主要作用是用以鉴别出人和机器,从而防止攻击者操作机器开展的恶意行为并且验证码可以防止人们很多的网上的信息被很多不法分子所开始利用9,这些不法分子利用各种可以破解输

11、入到了网络的居民信息的程序,或者说是病毒,从而获取居民的信息,进而进行一些诈骗或者其他违法行为并且有利于保护现在互联网登录安全,十分有利于互联网的发展1.3.2研究方法1). 文献法搜集和分析研究各种现存的有关验证码及其安全性的文献资料,从中选取适合本文的信息,帮助完成调查研究目的2). 分析推算法通过上面方法收集到的资料,进行分析推算,这里利用图像二值化等相关的方法得到相关的验证码及其安全性研究的结论3). 实验法选一些具有代表性的图片验证码做识别实验,对各类的安全性强弱做出排序2.验证码概述2.1 验证码定义验证码也就是上面美国科学家Luis yon Alto提出的CAPTCHA的技术概念

12、,中文全称叫做全自动区分计算机和人类的图灵测试10,随着互联网的高速发展,互联网技术也开始慢慢渗入到人们生活的方方面面,像是日常生活淘宝的购物,京东的购物,游戏的账户登录,12306的火车出行等等方方面面都已经开始和互联网技术挂钩了,因此人们的日常的信息也开始输入到了网络,于是这些输入到了网络的居民信息也容易被很多不法分子所开始利用,这些不法分子利用各种可以破解输入到了网络的居民信息的程序,或者说是病毒,从而获取居民的信息一些机构为了遏制上面这种不好的现象,验证码也由此被开发了出来2.2验证码作用验证码主要就是用来区分某个网站或者网页究竟是人为的登录,还是被一些计算机恶意的访问所以验证码的主要

13、作用如下:(1)防止一些用户随意恶意注册导致网站压力测试需求变大(2)防止一些用户随意恶意发布一些不正规链接,以及一些不正规的垃圾信息(3)在一些民众选票制度的时候,可以保证民众选票投票的公平(4)防止一些计算机暴力破解密码,泄露用户信息2.3 验证码的分类验证码大体上可以分为六个类型分别是基于汉字、字母和数字的文本型验证码11、基于人机交互的验证码12、基于手机短信的验证码13、基于音频信息的语音验证码14、基于简单数学等式的验证码15如图2.1-2.6所示列出了最常见的六种验证码登录方式:图2.1表示图片验证、 图2.2表示手机短信验证、图2.3 表示字母或者语音验证,图2.4 基于人机交

14、互的验证码,图2.5 人脸验证,图2.6 数字验证 图2.1图片验证 图2.2手机短信验证 图2.3 字母或者语音验证 图2.4 基于人机交互的验证码 图2.5 人脸验证 图2.6 数字验证3.各类验证码的生成机制3.1数字验证码及其变种的实现数字验证码的实现一般分为三个步骤,也就是首先得生成随机数,然后将生成的随机数,绘制成图片,最后将相应的图片输出到目标位置即可,具体实现步骤如图3.1所示 图3.1数字验证码的实现步骤1)、生成随机数生成随机数无非就是调用Random的API,但为了后续更好的实用,应该分成多种组合以适应需求的变化,应将生成随机数的个数和类型组合还有排除字符抽取成参数同时这

15、里也是变种的实现机制当用户输入错误或者长时间未输入会重新生成随机数,导致变种验证码出现,进而继续绘制成图片,最后将相应的图片输出到目标位置162)、绘制图片绘制图片是重点也是难点,这里将详细介绍(1)创建BufferedImage对象如果把BufferedImage比作是画板,那么Graphics就是画纸,这样比较好理解,后续的操作都是在这画纸上进行的BufferedImage image = new BufferedImage (width,height,BufferedImage.TYPE_INT_RGB); (2)绘制背景Graphics有个setColor()方法,可理解为画笔,在绘制

16、任何东西前要选好画笔,即颜色,然后调用fillRect()进行轮廓的绘制,后续的绘制范围不会超过这个轮廓g.setColor(backColor=null getRandomColor():backColor); g.fillRect(0,0,width,height);(3)绘制干扰线调用drawLine画直线,绘制不超过interLine条干扰线if(interLine0) int x=r.nextInt(4),y=0; int x1=width-r.nextInt(4),y1=0; for(int i=0;iinterLine;i+) g.setColor(lineColor=null

17、getRandomColor():lineColor); y=r.nextInt(height-r.nextInt(4); y1=r.nextInt(height-r.nextInt(4); g.drawLine(x,y,x1,y1); (4)写验证码为了不整整齐齐而且重叠的写,应将每个字符的高度和水平位置随机,重点在于每绘制完一个字符后,需将画笔的水平坐标往右边移动一定的位置,这里一般用了依据宽度浮动(5)扭曲图片将图片的扭曲就是将图片水平和垂直按不同比例平移(6)添加噪点噪点的添加实质上就是在画纸上没有规律的点,所以用随机颜色随机位置来执行最合适了3)、将相应的图片输出到目标位置将图片输出

18、成文件,然后将相应的图片输出到目标位置即可3.2图片验证码的生成机制图片验证码的实现一般和数字验证码类似也是分为三个步骤,也就是首先得生成随机和给定的图片对应的汉字,然后将汉字绘制成图片,图片输出到目标位置,用户只需要点击与汉字匹配的图片即可完成验证17,具体实现步骤如图3.2所示图3.2图片验证码的实现步骤具体的操作和生成数字验证码较为类似,只是第一步操作的将生成随机的数字换成了生成随机的汉字3.3 短信验证码的生成机制短信验证码的实现一般和前面二种验证码的生成都有着很大的不同,因为短信验证码需要获取第三方接口,调用第三方接口并且向第三方接口发送信息,短信验证码也是分为三个步骤,也就是首先得

19、生成随机4位或者6位数字,然后获取第三方接口信息,最后将随机4位或者6位数字发送给第三方接口,用户只需要收到的4位或者6位数字输入指定位置即可完成验证18,具体实现步骤如图3.3所示图3.3短信验证码的实现步骤1). 生成随机数字生成随机数字其实很简单,只需一行代码,具体如下:String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);2). 获取第三方接口以及调用第三方接口图3.4第三方接口使用步骤3.4 基于生物特征验证码的实现原理基于生物特征验证码的实现原理之中设计的数据量十分庞大,所以基于生物特征验

20、证码的实现原理一般也是通过神经网络算法来实现的,下面简要的介绍一种神经网络算法,具体如图3.5 BP神经网络应用流程所示图3.5 BP神经网络应用流程基于BP算法的神经网络结构是一种特殊的多层感知机模型19其特殊性表现在含有隐含层且能调节所有的连接权,网络的输出值可以是连续的神经元之间进行全连接,而对于每层神经元则无相互连接,信号只进行网络的单向传递输入层用来接收信号的输入,不对信号做任何处理隐含层接收输入层的输出并经过函数处理输出层接收隐含层的输出并经过函数处理这种函数处理对于BP神经网络来说,通常采用非线性的映射关系,输出层输出即为网络的整体输出3.5人机交互验证码的实现方式人机交互验证码

21、也叫做滑动验证码,最近滑动验证码在很多网站逐步流行起来,一方面对用户体验来说,比较新颖,操作简单,另一方面相对图形验证码来说,安全性并没有很大的降低当然到目前为止,没有绝对的安全验证,只是不断增加攻击者的绕过成本接下来分析下滑动验证码的核心流程:1)、后端随机生成抠图和带有抠图阴影的背景图片,后台保存随机抠图位置坐标2)、前端实现滑动交互,将抠图拼在抠图阴影之上,获取到用户滑动距离值3)、前端将用户滑动距离值传入后端,后端校验误差是否在容许范围内4.验证码攻击方法以及安全性研究4.1验证码的攻击方法对于攻击验证的攻击的实质就是识别验证码,进而输入识别出来的答案,输入到指定的位置,进而导致非法登

22、录对于验证码识别步骤一般分为三个步骤20也就是:图像预处理、字符分割、字符识别4.1.1图像预处理而对于图像预处理一般也是分为三个步骤分别是:灰度化,二值化,去噪.下面用图像二值化具体分析1)、图像的灰度化验证码的图片一般可以分为三通道分别是R(红色)、G(绿色)、B(蓝色)这里将验证码的图片的三通道加权平均值法的原理进行赋值,经过试验证明三通道R(红色)、G(绿色)、B(蓝色)的加权权重分别是WR=0.299,WG=0.587,WB=0.114那么灰度化公式如下所示: (4-1)2)、灰度图像二值化下面一个公式展示了二值化的具体的原理: (4-2)其中,F(i,j)表示为灰度图像二值化的具体

23、输出,f(i,j)为为灰度图像二值化的具体输入像素,T为灰度图像二值化的具体阈值而这里具体确定图像二值化的具体阈值T的方法为迭代法,具体方法如下所示:(1) 确定灰度图像二值化的具体最小灰度值Tm,然后确定灰度图像二值化的具体最小灰度值最大灰度值Tn,则灰度图像二值化阈值初值可以表示为:T0=(Tm+Tn)/2;(2) 将图像分割成背景和图案二个部分,分别求出灰度图像二值化的具体的平均灰度值Ti和Tj.(3) 求出灰度图像二值化的具体新阈值:T1=(Ti+Tj)/2;(4) 如果T0=T1,则结束,否则令T0=T1,转向第二步3)、灰度图像去噪毫无疑问,在一般的网站中的验证码图像都含有多多少少

24、一定的噪声,因此对于去噪灰度图像二值化处理之后必须进行去噪处理,我们这里采用的是均值滤波的方法进行去噪的,具体表达式如下: (4-3)其中,g(x,y)表示为经过均值滤波的方法对灰度图像去噪之后的的新的灰度值,而其中m一般取值取为5或9都可以达到预定的效果4.1.2字符分割验证码灰度图像二值化经过预处理后,我们便能开始分割字符了,分割具体处理的是去灰度图像二值化经过预处理的图像字符分割我们这里采用的是边缘检测的方法首先我们利用Roberts算子,具体的表达式如下: (4-4)然后我们可以用求得到的算子来找到图像的边缘4.1.3字符识别验证码灰度图像二值化经过预处理后,并且在分割字符之后,便可以

25、进行字符识别了我们这里选用的字符识别的方法选用的最近非常火热的BP神经网络的方法具体的步骤如图4.1所示图4.1 BP神经网络(1)训练样本的制作我们选择的训练样本一共包括验证码图像800张左右(2)BP神经网络的参数设定具体的训练网络如图4.2所示图4.2 训练网络在这里我们列举几个网络配置,具体的参数信息见下面:nettrainParamshow:显示中间结果的周期;nettrainParamepochs:最大迭代次数;nettrainParam1r:学习率4.2 安全性研究本篇论文主要内容是简介验证码的原理与作用,以及收集各种验证码,了解其实现方式,以及为方便开发者从众多的验证码中选择出

26、一种适合自己系统的验证码,所以对现有验证码进行分类整理,列举出一些具有代表性的验证码并对各自的安全性进行对比分析,且对安全性做出一个大致的排序,比较各类验证码的优点与缺点列如文本验证码,它展示一张含有多个字符的图片,要求用户识别并在输入框中输入对应的字符,输入全部正确即认证成功,这些字符多为大小写英文字母、数字或它们的组合,伴随这噪线、扭曲、多字体等复杂机制来提升安全性这些安全机制多是对抗分割和对抗识别的,对抗分割的安全机制增加了程序分割出单个字符的难度,比如用字符粘连抵抗分割,用空心线来描绘字符轮廓等机制20来增加验证码的安全性在这里,我们取出50幅验证码图像(分为A类、B类、C类、D类、F

27、类)经过上面的图像二值化预处理,边缘分割技术,BP神经网络进行字符识别技术,可获得200幅图像,而且都被统一成了为十六进制的字符图像将统一成的十六进制的字符图像当做BP神经网络的输入,然后BP神经网络通过读取权值文件后就可以字符识别,我们可以看出得到识别有误差的图片5幅,完全没有问题的图片195幅,单个字符正确率为97个百分点,验证码识别正确率为95个百分点4.2.1二值化预处理个阶段效果图下面列出了一些各个时期的图像,如图4.3是图像二值化预处理的效果图图4.3图像二值化预处理个阶段效4.2.2字符分割效果图如图4.4所示是第二阶段字符分割的效果图图4.4字符分割效果图4.2.3字符识别之后

28、的效果图及其安全性研究如图4.5是第三阶段B类C类验证码经过字符识别之后的的效果图图4.5 B类C类验证码经过字符识别之后的效果图上图分别列出了各个时期经过处理之后的效果图,图4.3是图像二值化预处理个阶段效果图,图4.4是字符分割效果图,图4.5是B类C类验证码经过字符识别之后的效果图最后我们可以得到各类验证码图片识别的准确率的统计表表4.1 结果统计表验证码图像类别正确率A类96%B类100%C类94%D类100%E类100%F类96%从表4.1实现结果统计图看出来,A类、B类、C类、D类、E类、F类六个类型之中只有A类、C类、F类3类验证码的识别程度相对低一点,可见我们可以对A类、C类、

29、F类3类验证码验进行一些相应的操作,也就是可以多加入一些噪线、扭曲、多字体,以及多加入些复杂的中文文字,加入一些相应的数学计算等复杂机制来提升安全性,也可以用字符粘连抵抗分割,用空心线来描绘字符轮廓等机制来增加验证码的安全性4.2.4人工智能识别安全性研究对于人脸以及运算类必须经过人类大脑或者最为直接身份认证的识别毫无疑问是最为安全的,比如图4.6所示的含有复杂计算的验证码和图4.7所示有人脸识别的验证码就是这一类验证码图4.6含有计算的验证码根据图4.6描述的含有计算的验证码,由于含有复杂的计算,一般的程序难以破解,这样一种验证码可以防止人们在网上的信息被很多不法分子所利用,所以说这样一种含

30、有计算的验证码的安全性是能够得到保障的21图4.7人脸识别的安全性验证根据图4.7描述的人脸识别的安全性验证,由于其中含有较为复杂的计算量,得出人工智能的算法较好,并且这样一种人脸识别的安全性验证不单单是简简单单的识别到人脸即可在进行登陆的时候,系统可能会让你眨眨眼睛或者笑一笑等等智能化的操作,杜绝了别人拿用户的照片进行登录,这些不法分子能够直接利用各种简单的程序破解居民信息,或者说通过是病毒,来获取居民的信息,进而进行一些诈骗或者其他违法行为所以说人脸识别的安全性验证的安全性是能够得到保障的4.2.5人机交互验证码安全性研究最近滑动验证码在很多网站逐步流行起来,一方面对用户体验来说,比较新颖

31、,操作简单,另一方面相对图形验证码来说,安全性并没有很大的降低从前面图2.4 基于人机交互的验证码可以看到,滑动图形验证码,重要有两个图片组成,抠块和带有抠块阴影的原图,这里面有两个重要特性保证被暴力破解的难度:抠块的形状随机和抠块所在原图的位置随机这样就可以在有限的图集中制造出随机的、无规律可寻的抠图和原图的配对并且由于人机交互通过了距离的不同的把控,加入了人为的操作,增加了一点安全性4.3各类验证码的安全性比较从上文各种分析研究实验可以知道,对于上面所描述的一些通用的验证码,本文进行了一个大概的比较,其中基于生物特征的验证码,以及短信验证码最为安全,其次相对来说人机交互的验证码较为安全,最后才是图片以及数字验证码,但是对于数字类型的验证码用过上文的研究实验可以进行加入噪线、扭曲、多字体等复杂机制来提升安全性5.总结本文首先介绍验证码的历史背景,验证码的概念,验证码的作用以及验证码的意义然后

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1