500张训练样本攻破验证码?蚂蚁金服提自监督表征学习识别方法

2020-04-18 22:41:25 浏览数 (1)

导语:国际顶级会议WWW 2020将于4月20日至24日举行。始于1994年的WWW会议,主要讨论有关Web的发展,其相关技术的标准化以及这些技术对社会和文化的影响,每年有大批的学者、研究人员、技术专家、政策制定者等参与。以下是蚂蚁金服的资深技术专家对入选论文《A Generic Solver Combining Unsupervised Learning and Representation Learning for Breaking Text-Based Captchas》做出的深度解读。

随着互联网的高速发展,越来越多的自动化破解程序给网络安全带来不小的挑战。验证码以其简单高效的特征,目前已经成为了互联网安全的基本保障程序。虽然目前已经有许多可供选择的验证码方案,但由于用户偏好和易于设计的特性,基于文本的验证码类型仍然是维护互联网安全和防止恶意攻击的最流行的安全机制之一。

而文本验证码的安全特征对验证码安全性方面起着十分重要的作用,因此作为学术研究去自动识别破解文本验证码,可以发现现有验证码所存在的漏洞,有利于网站开发人员设计出更加安全的验证码体系,保障网络安全。

在过去的十多年里,人们已经提出了多种验证码破解方法,其中许多方法需要针对不同的验证码类型使用独特的滤波和分割方法来实现字符识别,这类方法的泛化性较差,且需要过多的人工参与。

随着更复杂的安全特性被引入到文本验证码中,这些方法也不再适用。而一些基于深度学习的验证码识别算法在准确性上取得了显著的提高,但这些方法的主要问题是需要大规模的带有标签的训练样本参与训练,而这通常需要耗费大量的人工成本。因此,基于深度学习类方法主要需要解决的是训练样本量不足的问题。

简介

大规模带有标签验证码图像难以收集,但是无标签的图像样本却是很容易大量采集得到。而在深度学习领域中,无监督学习和表征学习都可以减少对于标签样本的依赖,充分利用无标签数据样本去学习数据表征,提升深度学习方法的性能。

我们通过设计了一个结合无监督学习和表征学习的验证码识别方案,在不依赖人工参与和大规模带标签训练样本的前提下,实现文本验证码的自动识别。经过实验测试发现,我们的方法仅仅使用500张带有标签的训练样本就可以破解大多数主流网站的验证码,这也说明了目前文本验证码的部分安全特征很容易破解。通过我们所提出的方法可以发现现有验证码的漏洞,并且分析不同安全特征的有效性,从而开发出更安全可靠的验证码。

解读

2.1 方案概述

本方案的总体框架如图1所示,主要包含了基于无监督学习的验证码分解器(Captcha decomposer)和基于自监督学习的验证码识别器(Captcha recognizer)。首先使用分解器将验证码分解为两个基本图层(背景层、字符层),然后在字符层上识别验证码字符。分解器以无监督的方式学习单个验证码图像的内部统计信息来去除背景层并保留有用字符信息,削弱了验证码安全特征的影响,从而降低后续识别器的识别的难度。

图1 整体框架图

图2描述了构建自监督识别器的步骤,该识别器由两部分组成:特征提取器和分类器。特征提取器的训练采用了表征学习方法,使用无标签的数据样本以自监督的方式进行训练,使特征提取器能够提取到有效的且具有判别力的字符特征。当特征提取器训练好了之后,在后面接上分类器,使用少量带有标签的验证码图片以全监督的方式训练分类器。

图2 识别器训练过程

2.2 验证码分解器

如图3所示,验证码图像一般由三部分组成:前景层、字符层和背景层,其中各层的安全特征是针对自动破解程序有效的对抗机制。其中,背景层干扰对于识别准确率影响较为明显,且难以去除。

图3 文本验证码图像示例

通过仔细研究验证码的组成结构,我们发现背景层一般都具有自相关性强的纹理,比如相同的背景颜色、有规律的网格线等等。而且背景层和字符层的纹理相关性很弱。基于这一发现,我们利用这种图像先验信息以无监督的方式去分离验证码图层。如图4所示,我们提出使用两个卷积网络分别学习背景层纹理和字符层纹理,然后通过一个学习得到的权值掩膜来结合两个纹理层输出重建得到输入验证码图像。

图4 无监督分解器结构图

以图像重建损失作为整个模型训练的约束项,以引导网络1和网络2 分别学习得到图像层中完全不同但是却比较简单的组成结构。当训练完成后,掩膜乘以字符层纹理就是我们所需的字符数据层。分解器一共包含有三个生成网络,通过无监督学习推理每张验证码图片的子层统计规律而实现图像层的分离,而不是依赖于大规模的训练样本。图5展示了我们图层分离的一些例子。

图5 图层分离实例

2.3 验证码识别器

字符其实是一种局部相关性很强的信息,我们通过使用字符上下区域间的关系构建预测任务实现自监督学习方案。如图6所示,我们将无标签验证码图像均匀裁剪为个图像块。为了构成一个预测任务,我们采用一个自回归模型有序地总结每一列的前四个特征向量,然后使用线性预测矩阵来预测该列后续的特征向量,然后评估预测的特征向量和所提取的特征向量的相似度。预测任务的正样本是采用同一列中有序的图像块组合,而负样本则由验证码图像中的图像块随机组合所构成。通过这种验证码字符表征学习方法可以使得识别器真正得学习和认识每个字符。

图6 特征提取器的自监督训练方案

为了使特征提取器充分学习到字符的表征信息和语义信息而不是陷入到一些实验捷径中,我们提出了一种包含大量困难样本的训练方案。如图7所示,我们人为合成一些包含有不同背景、字符颜色的正样本,不同上下字符间隔、旋转角度的负样本,以及不同真实验证码图像拼接所得到的负样本。通过这些样本有助于特征提取器在忽略其他与字符无关因素干扰的情况下学习到有用字符语义信息,提升模型的判别能力。

图7 困难样本实例

当训练好特征提取器后,去掉自回归模型,在后面接上一个字符识别分类器。如图8所示,因为分类器的结构非常简单、参数量少,使用少量带有标签的验证码图片就足够训练分类器网络了。整个识别器网络主要依靠无标签的数据样本和极少量的带标签样本,这大大降低了模型对数据样本采集的困难。

图8 识别器网络结构

前景

本论文所涉及到的技术不仅仅可以应用于验证码识别领域中。自监督识别器采用字符表征学习证明了,深度学习可以充分利用无标签数据样本,实现无标签数据的有效利用。

在目前人工智能领域,仍然存在着很多应用方向,无法获取大规模带有标签的数据样本或者获取带有标签数据样本的代价高昂,例如无人驾驶领域等。针对这类难以获得标签样本的任务,可以通过本文所提出的表征学习方案,在图像关系或者字符关系上构建预测任务,形成自监督学习任务,训练网络模型。而无监督分解器依靠图像内部统计规律的差异实现子图层分离,不依赖于训练样本,这一方案可以轻松移植到目前大多数的验证码识别方案中,降低验证码图像背景噪声的影响。

除此之外,这一相关技术在各个图像领域也具有广泛的应用价值,例如在图像去噪、去雾等图像生成类任务领域,根据图像层和噪声层/含雾层统计分布的不同,实现图层分离,得到干净的目标图像;在图像分割领域,根据各个子模块的分布不同实现图像语义分割等。我们希望我们的工作能够启发关于无监督学习和表征学习的改进方案,减少带标签样本数据的依赖度,将神经网络和图像表征的力量结合起来,广泛应用于人工智能类应用中。

0 人点赞