当前位置: 首页 > 专利查询>四川大学专利>正文

一种基于对抗样本的大字符集验证码攻击防御方法技术

技术编号:38679153 阅读:12 留言:0更新日期:2023-09-02 22:52
本发明专利技术公开了一种基于对抗样本的大字符集验证码攻击防御方法,首先采集中文验证码服务网站上现有的大字符集验证码数据并进行人工标注,同时模仿爬取到的验证码生成极为相似的新的验证码,从而构建了一个扩充后的验证码数据集;然后别构建字符检测和识别模型,基于这两类模型分别在验证码的字符和背景上生成噪声;最后根据结合输入变换、梯度攻击和注意力机制的对抗样本验证码生成方法,生成针对验证码字符识别模型的对抗样本字符;对于验证码字符检测模型的威胁,采用集成式的对抗样本生成方法,集成多种不同架构字符检测模型的损失函数,将不同架构字符检测模型的黑盒设置转换为白盒设置,在验证码的背景上生成对抗噪声以防御字符检测模型。防御字符检测模型。防御字符检测模型。

【技术实现步骤摘要】
一种基于对抗样本的大字符集验证码攻击防御方法


[0001]本专利技术涉及网络安全
,具体为一种基于对抗样本的大字符集验证码攻击防御方法。

技术介绍

[0002]验证码是一种用于区分用户是计算机还是人的公共全自动程序。一种设计成功的验证码机制应该能够使人类非常容易通过验证码的测试,而将攻击者编写的自动化破解程序排除在外。目前,验证码已被广泛应用于各大在线网站和应用程序中,在一定程度上防止了包括恶意注册、垃圾邮件、社交机器人在内的多种互联网上的恶意行为。
[0003]尽管目前已经有非常多种类的验证码被设计出来,但是由于生成成本低,且用户接受程度高,字符型验证码仍然是目前使用最为广泛,对于用户和网站而言,最为方便的验证码类型。字符型验证码一般设计为多个较难识别的字符加上一定干扰的背景,并要求用户输入验证码中的字符。
[0004]不幸的是,目前字符型验证码已经被不少研究工作破解。原因之一是传统的字符型验证码只包含英文字母和罗马数字。在字符型验证码分类空间小的情况下,使用近年来流行的深度学习模型,将很容易破解这类验证码。
[0005]为了解决这一问题,拥有更大字符集的验证码被设计出来。大字符集验证码包括含有中文、日文、韩文等字符的验证码。以中文大字符集验证码为例,中文大字符集验证码通常可以包含3755个常用的汉字,更大的字符集增加了验证码攻击模型的目标类别,从而提高了验证码的安全性。这类验证码增加了攻击者模型构建和训练的难度,也在一定程度上降低了破解成功率。
[0006]然而随着研究工作的开展,大字符集验证码同样面临着严峻的安全威胁。近年来不少工作对中文大字符集验证码进行了安全性分析并以较高的准确率成功破解了多个大型网站上的中文大字符集验证码。为防御对大字符集验证码的攻击,现有提出的许多方法大多数专注于增加验证码的复杂度,然而却降低了验证码的可用性。并且随着深度学习技术的不断发展,它们仍然可能被更加高效的方法所破解。

技术实现思路

[0007]针对上述问题,本专利技术的目的在于提供一种基于对抗样本的大字符集验证码攻击防御方法,不同于现有的提高验证码复杂度的方法,本专利技术基于对抗样本技术,在保护验证码可用性的基础上,提高了现有真实网站上大字符集验证码的安全性。技术方案如下:
[0008]一种基于对抗样本的大字符集验证码攻击防御方法,包括以下步骤:
[0009]步骤1:采集中文验证码服务网站上现有的大字符集验证码数据并进行人工标注,同时模仿得到的验证码生成新的验证码,从而构建扩充的验证码数据集;
[0010]步骤2:构建字符检测模型和字符识别模型,字符检测模型包括用于生成针对字符检测模型的噪声的白盒模型,以及用于测试对抗样本的迁移效果的黑盒模型;字符识别模
型包括用于生成对抗样本字符以防御字符识别模型的白盒模型,以及用于测试对抗样本的迁移效果的黑盒模型;基于字符检测模型和字符识别模型分别在验证码的字符和背景上生成噪声;
[0011]步骤3:对抗样本验证码的生成
[0012]步骤3.1:在对抗样本验证码生成过程中,采用结合梯度攻击、输入变换和注意力机制的对抗样本生成方法,生成针对验证码字符识别模型的对抗样本字符;
[0013]步骤3.2:面对验证码字符检测模型的威胁,采用集成式的对抗样本生成方法,集成多种不同架构字符检测模型的损失函数,将不同架构字符检测模型的黑盒设置转换为白盒设置,在验证码的背景上生成对抗噪声以防御字符检测模型。
[0014]进一步的,所述步骤1中,对验证码数据并进行人工标注的标注信息包括:验证码中字符的位置和字符类别;先统计收集到的验证码图片中出现的字符集大小;再将所标注的每一种验证码对半划分为两部分,一部分用于训练验证码破解模型,另外一部分用于测试攻击模型以及生产对抗样本验证码。
[0015]更进一步的,所述步骤2中,构建字符检测模型和字符识别模型还包括:
[0016]1)字符检测模型选择Faster

RCNN、YOLO

v5和SSD作为目标检测架构;对于Faster

RCNN,训练ResNet

50、ResNet

101和VGG三种主干网络的模型;对于SSD,训练MobileNetV2和VGG两种主干网络的模型;对于YOLO

v5,使用CSPDarknet

53作为主干网络进行训练;
[0017]将字符检测模型的标签设置为是否存在字符,即字符检测模型在训练和测试时统一将字符作为前景,而不进行具体字符类别的识别;
[0018]使用以ResNet

101为主干网络的Faster

RCNN,MobileNetV2为主干网络的SSD,以及YOLO

v5作为白盒模型;使用以ResNet

50和VGG为主干网络的Faster

RCNN,以VGG为主干网络的SSD作为黑盒模型;
[0019]2)字符识别模型选择网络模型Inception

Resnet

v2、Inception

v3、ResNet

50和VGG

16对单个字符进行多分类识别;使用Inception

Resnet

v2作为白盒模型,使用Inception

v3、ResNet

50和VGG

16作为黑盒模型。
[0020]更进一步的,所述步骤3中生成针对验证码字符识别模型的对抗样本字符具体包括:
[0021]步骤3.1.1:确定对抗样本生成模型f的损失函数
[0022]寻找的对抗样本图片x
adv
满足以下条件
[0023]f(x
adv
;θ)≠y
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0024]||x

x
adv
||∞<ε
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0025]其中,θ为对抗样本生成模型f的参数,x为任意的输入字符图片,y为图片x的类别真实标签,例如字符图片“人”的标签即为“人”这个字在白盒模型下的编码y,ε为每个像素点处的最大噪声幅度;
[0026]通过最大化对抗样本生成模型f下输入字符图片x对真实类别的损失值来达到寻找对抗样本的目的,采用类别交叉熵J作为对抗样本生成模型f的损失函数:
[0027][0028]步骤3.1.2:基于梯度的攻击
[0029]计算得到对损失函数的导数在梯度迭代步骤中结合梯度方差缩减和Nesterov迭代;在每次迭代前,将当前epoc本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于对抗样本的大字符集验证码攻击防御方法,其特征在于,包括以下步骤:步骤1:采集中文验证码服务网站上现有的大字符集验证码数据并进行人工标注,同时模仿得到的验证码生成新的验证码,从而构建扩充的验证码数据集;步骤2:构建字符检测模型和字符识别模型,字符检测模型包括用于生成针对字符检测模型的噪声的白盒模型,以及用于测试对抗样本的迁移效果的黑盒模型;字符识别模型包括用于生成对抗样本字符以防御字符识别模型的白盒模型,以及用于测试对抗样本的迁移效果的黑盒模型;基于字符检测模型和字符识别模型分别在验证码的字符和背景上生成噪声;步骤3:对抗样本验证码的生成步骤3.1:在对抗样本验证码生成过程中,采用结合梯度攻击、输入变换和注意力机制的对抗样本生成方法,生成针对验证码字符识别模型的对抗样本字符;步骤3.2:面对验证码字符检测模型的威胁,采用集成式的对抗样本生成方法,集成多种不同架构字符检测模型的损失函数,将不同架构字符检测模型的黑盒设置转换为白盒设置,在验证码的背景上生成对抗噪声以防御字符检测模型。2.根据权利要求1所述的基于对抗样本的大字符集验证码攻击防御方法,其特征在于,所述步骤1中,对验证码数据并进行人工标注的标注信息包括:验证码中字符的位置和字符类别;先统计收集到的验证码图片中出现的字符集大小;再将所标注的每一种验证码对半划分为两部分,一部分用于训练验证码破解模型,另外一部分用于测试攻击模型以及生产对抗样本验证码。3.根据权利要求1所述的基于对抗样本的大字符集验证码攻击防御方法,其特征在于,所述步骤2中,构建字符检测模型和字符识别模型还包括:1)字符检测模型选择Faster

RCNN、YOLO

v5和SSD作为目标检测架构;对于Faster

RCNN,训练ResNet

50、ResNet

101和VGG三种主干网络的模型;对于SSD,训练MobileNetV2和VGG两种主干网络的模型;对于YOLO

v5,使用CSPDarknet

53作为主干网络进行训练;将字符检测模型的标签设置为是否存在字符,即字符检测模型在训练和测试时统一将字符作为前景,而不进行具体字符类别的识别;使用以ResNet

101为主干网络的Faster

RCNN,MobileNetV2为主干网络的SSD,以及YOLO

v5作为白盒模型;使用以ResNet

50和VGG为主干网络的Faster

RCNN,以VGG为主干网络的SSD作为黑盒模型;2)字符识别模型选择网络模型Inception

Resnet

v2、Inception

v3、ResNet

50和VGG

16对单个字符进行多分类识别;使用Inception

Resnet

v2作为白盒模型,使用Inception

v3、ResNet

50和VGG

16作为黑盒模型。4.根据权利要求1所述的基于对抗样本的大字符集验证码攻击防御方法,其特征在于,述步骤3中生成针对验证码字符识别模型的对抗样本字符具体包括:步骤3.1.1:确定对抗样本生成模型f的损失函数;寻找的对抗样本图片x
adv
满足以下条件f(x
adv
;θ)≠y
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)||x

x
adv
||

<ε
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中,θ为对抗样本生成模型f的参数,x为任意的输入字符图片,y为图片x的类别真实
标签,ε为每个像素点处的最大噪声幅度;通过最大化对抗样本生成模型f下输入字符图片x对真实类别的损失值来达到寻找对抗样本的目的,采用类别交叉熵J作为对抗样本生成模型f的损失函数:步骤3.1.2:基于梯度的攻击;计算得到对损失函数的导数在梯度迭代步骤中结合梯度方差缩减和Nesterov迭代;在每次迭代前,将当前epoch中的对抗样本字符进行一次更新得到进行一次更新得到其中,为当前epoch中的对抗样本字符,u为动量衰减因子,a为每一步迭代中添加的噪声幅度,为更新后的对抗样本字符;g
t
为第t迭代的梯度;在每一个epoch中,更新梯度后,根据以下公式更新梯度方差v
t
:其中,v
t+1
为更新后的梯度方差;且式中,N代表在计算梯度方差时,对当前x周围的N个临近点的梯度进行采样;x的临近点定义为x
i
=x+r
i
,r~U[


·
ε)
d
,(β
·
ε)
d
],其中U[


·
ε)
d
,(β
·
ε)
d
]代表随机向量,每一个点都服从范围内的均匀分布,β为梯度方差计算的超参数,r
i
代表第i个随机向量;r代表采样...

【专利技术属性】
技术研发人员:王海舟杨涵傅宇成孙国恒黄骏天
申请(专利权)人:四川大学
类型:发明
国别省市:

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

1