基于对抗样本的验证码生成系统及方法技术方案

技术编号:21606292 阅读:33 留言:0更新日期:2019-07-13 18:29
本发明专利技术公开了一种基于对抗样本的验证码生成系统及方法,系统包括验证码采集层、预处理层、对抗样本生成层、样本拼接层、杂化层。验证码采集层将收集到的验证码数据集传入预处理层,预处理层将这些验证码图片进过灰度化、二值化、去燥字符分割等变成数个黑白字符图片,随机从对抗样本生成层选取构建好的神经网络和对抗样本算法,定向生成对抗样本。样本拼接层将单个对抗样本拼接层不同长度的验证码,最后经过杂化层逆预处理化,将其还原成彩色,生成基于对抗样本的验证码aeCAPTCHA。本发明专利技术具有成本低廉、部署难度小、抵抗攻击能力强的特点。不仅能够使网站在不用替换现有验证码系统的情况下,更加有效得抵抗网络攻击。

Verification Code Generation System and Method Based on Countermeasure Samples

【技术实现步骤摘要】
基于对抗样本的验证码生成系统及方法
本专利技术涉及深度学习和信息安全的
,特别涉及一种基于对抗样本的验证码生成系统及方法。
技术介绍
验证码的全称是全自动区分计算机和人类的公开图灵测试(CompletelyAutomaedPublicTuringtesttotellComputersandHumansApart,可以简写为CAPTCHA)),是一种区分用户是计算机或人的公共全自动程序。其主要作用是抵御恶意机器人程序,防止论坛、博客中的垃圾评论,过滤垃圾邮件,保证在线投票真实性以及防止恶意批量注册网站等。但随着卷积神经网路在图像识别上的兴起,神经网络对简单图形验证码的识别率基本上接近百分之百,对复杂验证码的识别率也有较高的识别率。因此对如何能够设计出能够合理的区分人和机器且成本低廉的验证码系统一直是很多公司和学者思考的问题。目前验证码有以下两个方向发展:一种是发展新型验证码,如:如极验验证设计的滑动验证码、Google公司reCAPTCHA实验室设计的无感知型验证码等,这些都是安全性高、用户体验强的验证码;另一种是在现有的文本验证码的基础上增加干扰因素,如:对验证码进行扭曲、镂空、黏连等操作。第二种虽然在一定程度上降低了神经网络的识别率,但是用户的通过率更低,在很大程度上影响了用户的体验。但是为何绝大多数的网站都采用难以辨认的复杂图形验证码和毫无安全性的图形验证码呢?究其原因主要有两个:一是成本原因,替换成短信验证码和语音验证码成本较高;二是难度系数大,相对于图形验证码而言新型验证码技术系统实现复杂,技术要求高。对抗样本是深度学习领域目前难以有效解决的问题,因为生成一个对抗样本的方式远比设计一个能防御对抗样本的模型要容易的多。如果将其应用到验证码领域,将能大大提升目前图形验证码的安全性能及节约企业成本。至少在解决神经网络欠拟合和维度过高导致的线性问题之前图形验证码依然能够较好抵御神经网络的攻击。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种成本低廉、实现难度小、用户体验好、安全性高的验证码,继而提供了一种基于对抗样本的验证码生成系统及方法。为了达到上述目的,本专利技术采用以下技术方案:本专利技术基于对抗样本的验证码生成系统,包括:验证码采集层、预处理层、对抗样本生成层、样本拼接层以及杂化层;所述验证码采集层,通过收集自身平台、利用验证码自动生成工具、开源平台验证码数据作为神经网络的训练集;所述预处理层,通过灰度化、二值化、去燥、字符分割流程将收集到的验证码切割成数量繁多的黑白字符图片作为神经网络的输入;所述对抗样本生成层,在提前构建的神经网络模型库中随机选择神经网络模型,从对抗样本生成算法中选择最合适的算法,然后用预处理层的数据定向生成对抗样本;所述样本拼接层,用合适的样本选择算法选择不同神经网络生成的对抗样本,然后进行拼接;所述杂化层,将拼接后的对抗样本进过添加干扰线、背景复杂化、彩色化等手段,将其变为aeCAPTCHA。作为优选的技术方案,所述验证码采集层的数据来源包括下述几种:(1)直接用网站本身的验证码作为原始数据;(2)利用验证码自动生成工具来生成验证码然后进行加工;(3)利用python对各大网站进行爬虫,爬取它们的验证码图片。作为优选的技术方案,所述预处理层包括灰度化模块、二值化模块、去噪模块和字符分割模块;所述灰度化模块,用于将彩色图片转化为灰度图像的过程称为图像的灰度化处理;所述二值化模块,用于图像的二值化是将图像上的像素点的灰度值设置为0或1,将整个图像呈现出黑白效果;所述去燥模块,用于将黑白图片中单独的像素点去掉,包括线降噪和点降噪两种;所述字符分割模块,用于将降噪以后的黑白验证码图片分割成一个一个字符图片,作为下一层对抗样本生成层中的神经网络构建模块中神经网络的训练集。作为优选的技术方案,所述灰度化处理采用下述方法中的一种:分量法:将彩色图像中的三分量的亮度作为三个灰度图像的值,可选取其中一种灰度值;F1=RorF2=GorF3=B最大值法:将彩色图像中的三分量的最大值作为灰度图像的灰度值;F=max(R,G,B)均值法:将彩色图像中的三分量求平均值等到灰度图像的灰度值;F=(R+G+B)/3加权平均法:根据重要性及其它指标,将三个分量以不同的权值进行加权平均。F=w1*R+W2*G+W3*B。作为优选的技术方案,所述灰度模块,采用加权平均法,取每个像素点RGB的均值作为这个像素点三个通道的像素;所述二值化模块,采用手动遍历像素,设定阈值,将图片变为二值图像;所述去燥模块,采用4领域去燥法,如果一个像素周围全部是零,就将这个像素点转化为0;所述字符分割模块,采用水滴法对图像进行分割。作为优选的技术方案,所述对抗样本生成层包括神经网络构建模块和对抗样本生成模块;所述神经网络构建模块包括全连接神经网络和卷积神经网络,所述全连接神经网络,全连接神经网络用于实验的攻击模型,用来检验生成的6类卷积神经网络生成的对抗样本的泛化能力;所述对抗样本生成模块,用于将单个黑白验证码字符图片转为为对抗样本,所产生的对抗样本用于拼接验证码;所述对抗样本生成模块包括神经网络模型的构建模块和对抗样本生成算法选择模块;在这两个模块当中,神经网络构建模块的构建是根据验证码图片的复杂度自行构建,可操作性大;生成对抗样本模块采用FGSM、L-BFGS或DeepFool算法。作为优选的技术方案,生产对抗样本的步骤为:首先从神经网络构建模型中选择合适的神经网络模型作为生成对抗样本的网络模型,其次选择合适的对抗样本生成算法和神经网络模型进行组合,然后初始化一个和验证码图片相同大小的噪声数组,设置目标分类,最后将其和验证码图片一起训练便可以得到噪声图片,将噪声加入到原始图片中便可以得到该原始图片的对抗样本。作为优选的技术方案,所述样本拼接层包括对抗样本选择模块和对抗样本拼接模块;所述对抗样本选择模块,配置了两种选择方案:一、将所有对抗样本单独组合成aeCAPTCHA,用来测试那种对抗样本对待入侵网络有最好的效果,便用此aeCAPTCHA代替原有的,二、选择识别率最低的几类对抗样本组合成aeCAPTCHA,防止攻击者突然更换网络;所述对抗样本拼接模块,用于将对抗样本生成模块的对抗样本进行拼接,并对整体大小进行转化,根据需求调节拼接后的大小,方便之后将aeCAPTCHA映射到前端页面,不用对原始代码进行修改,就可以和前端无缝对接。作为优选的技术方案,所述杂化层,包括干扰线添加模块、背景复杂化模块和彩色化模块;所述干扰线添加模块,用与在拼接的对抗样本上添加干扰线,增加攻击者在对aeCAPTCHA进行预处理去燥时的难度;所述背景复杂化模块,用于将拼接后的对抗样本映射到一个比较复杂的背景图片中,增加攻击者识别的难度;所述彩色化模块,用于将拼接后的对抗样本彩色化,使最终的aeCAPTCHA映射到前端界面时不影响前端界面的美观;或者使攻击者必须对验证码进行预处理,不能直接拿爬下来的aeCAPTCHA作为攻击网络的训练集。本专利技术基于对抗样本的验证码生成系统的方法,包括下述步骤:S1、验证码采集:从自身验证码库、验证码自动生成工具、爬虫爬去验证码按照大小分类放入一个新的验证码库,作为数据集;S2、从验证码库中调取本文档来自技高网
...

【技术保护点】
1.基于对抗样本的验证码生成系统,其特征在于,包括:验证码采集层、预处理层、对抗样本生成层、样本拼接层以及杂化层;所述验证码采集层,通过收集自身平台、利用验证码自动生成工具、开源平台验证码数据作为神经网络的训练集;所述预处理层,通过灰度化、二值化、去燥、字符分割流程将收集到的验证码切割成数量繁多的黑白字符图片作为神经网络的输入;所述对抗样本生成层,在提前构建的神经网络模型库中随机选择神经网络模型,从对抗样本生成算法中选择最合适的算法,然后用预处理层的数据定向生成对抗样本;所述样本拼接层,用合适的样本选择算法选择不同神经网络生成的对抗样本,然后进行拼接;所述杂化层,将拼接后的对抗样本进过添加干扰线、背景复杂化、彩色化等手段,将其变为aeCAPTCHA。

【技术特征摘要】
1.基于对抗样本的验证码生成系统,其特征在于,包括:验证码采集层、预处理层、对抗样本生成层、样本拼接层以及杂化层;所述验证码采集层,通过收集自身平台、利用验证码自动生成工具、开源平台验证码数据作为神经网络的训练集;所述预处理层,通过灰度化、二值化、去燥、字符分割流程将收集到的验证码切割成数量繁多的黑白字符图片作为神经网络的输入;所述对抗样本生成层,在提前构建的神经网络模型库中随机选择神经网络模型,从对抗样本生成算法中选择最合适的算法,然后用预处理层的数据定向生成对抗样本;所述样本拼接层,用合适的样本选择算法选择不同神经网络生成的对抗样本,然后进行拼接;所述杂化层,将拼接后的对抗样本进过添加干扰线、背景复杂化、彩色化等手段,将其变为aeCAPTCHA。2.根据权利要求1所述基于对抗样本的验证码生成系统,其特征在于,所述验证码采集层的数据来源包括下述几种:(1)直接用网站本身的验证码作为原始数据;(2)利用验证码自动生成工具来生成验证码然后进行加工;(3)利用python对各大网站进行爬虫,爬取它们的验证码图片。3.根据权利要求1所述基于对抗样本的验证码生成系统,其特征在于,所述预处理层包括灰度化模块、二值化模块、去噪模块和字符分割模块;所述灰度化模块,用于将彩色图片转化为灰度图像的过程称为图像的灰度化处理;所述二值化模块,用于图像的二值化是将图像上的像素点的灰度值设置为0或1,将整个图像呈现出黑白效果;所述去燥模块,用于将黑白图片中单独的像素点去掉,包括线降噪和点降噪两种;所述字符分割模块,用于将降噪以后的黑白验证码图片分割成一个一个字符图片,作为下一层对抗样本生成层中的神经网络构建模块中神经网络的训练集。4.根据权利要求3所述基于对抗样本的验证码生成系统,其特征在于,所述灰度化处理采用下述方法中的一种:分量法:将彩色图像中的三分量的亮度作为三个灰度图像的值,可选取其中一种灰度值;F1=RorF2=GorF3=B最大值法:将彩色图像中的三分量的最大值作为灰度图像的灰度值;F=max(R,G,B)均值法:将彩色图像中的三分量求平均值等到灰度图像的灰度值;F=(R+G+B)/3加权平均法:根据重要性及其它指标,将三个分量以不同的权值进行加权平均。F=w1*R+W2*G+W3*B。5.根据权利要求3所述基于对抗样本的验证码生成系统,其特征在于,所述灰度模块,采用加权平均法,取每个像素点RGB的均值作为这个像素点三个通道的像素;所述二值化模块,采用手动遍历像素,设定阈值,将图片变为二值图像;所述去燥模块,采用4领域去燥法,如果一个像素周围全部是零,就将这个像素点转化为0;所述字符分割模块,采用水滴法对图像进行分割。6.根据权利要求1所述基于对抗样本的验证码生成系统,其特征在于,所述对抗样本生成层包括神经网络构建模块和对抗样本生成模块;所述神经网络构建模块包括全连接神经网络和卷积神经网络,所述全连接神经网络,全连接神经网络用于实验的攻击模型,用来检验生成的6类卷积神经网络生成的对抗样本的泛化能力;所述对抗样本生成模块,用于将单个黑白验证码字符图片转为为对抗样本,所产生的对抗样本用于拼接验证码;所述对抗样本生成模块包括神经网络模型的构建模块和对抗样本生成算法选择模块;在这两个模块当中,神经网络构建模块的构建是根据...

【专利技术属性】
技术研发人员:龚征王志鹏程雷杨顺志叶开魏运根
申请(专利权)人:华南师范大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1