1、基于深度学习的人工智能用于识别破解字符型验证码 周正 文亚飞 鲍文平 腾讯公司 摘 要: 作为互联网行业通用的基础安全策略, 验证码担负着保护网络帐号安全体系的第一道防御, 用以验证和防范机器程序的恶意行为。近年来, 不法分子利用基于“深度学习”的人工智能技术搭建打码平台, 快速海量识别破解字符型验证码, 为网络黑产分子撞库窃取用户信息作恶提供帮助。因此, 以腾讯守护者计划安全团队协助警方破获首例 AI 人工智能犯罪案件为例, 对基于深度学习的人工智能技术用于识别破解字符型验证码问题进行解析, 以期为提升和优化互联网行业安全策略提供借鉴, 为互联网生态安全建设提供参考。关键词: 验证码; 卷积
2、神经网络; 人工智能; 深度学习; 多标签; 作者简介:周正 (1981) , 男, 硕士, 主要研究方向为网络安全与犯罪研究, 网络欺诈防控;作者简介:文亚飞 (1989) , 男, 硕士, 主要研究方向为计算机视觉、深度学习;作者简介:鲍文平 (1986) , 男, 学士, 高级工程师, 主要研究方向为云PAAS、大数据分析、数据安全。收稿日期:2017-07-15Crack CAPTCHA by AI based on Deep LearningZHOU Zheng WEN Ya-fei BAO Wen-ping Tencent; Abstract: As the basic secur
3、ity strategy of the Internet industry, CAPTCHA is the first line of defense responsible for protecting the security of the account system in Internet, and preventing the attack from malicious behavior of the automatic machine program. In recent years, there arises some CAPTCHA-CRACK platforms based
4、on the latest artificial intelligence technology of deep learning, it could crack the CAPTCHA systems with high efficiency and result in a large number of user private data stolen. For this reason, and with the case that Tencent Guardian program security team assists the police to uncover the first
5、AI artificial intelligence crime as an example, the deep learning-based artificial intelligence technology is used to identify CAPTCHA-CRACK, expecting to improve and optimize the Internet industry security strategy and provide reference for the construction of Internet ecological security.Keyword:
6、CAPTCHA; CNN; artificial intelligence; deep learning; multi-label; Received: 2017-07-150 引言验证码 (CAPTCHA) 是“Completely Automated Public Turing test to tell Computers and Humans Apart” (全自动区分计算机和人类的图灵测试) 的缩写, 是区分计算机和人类的一种程序算法, 简单解释即一个答题的验证。系统向请求发起方提问, 能正确回答的即是人类, 反之则为机器。从安全角度讲, CAPTCHA 经过不断演化, 已成为目前国内
7、外各大互联网公司用于对抗网络黑产恶意行为 (如恶意登录) 的验证码安全策略, 即现在俗称的验证码系统。它主要具有以下作用:(1) 用户注册;(2) 帐号登录、密码找回及帐号信息修改;(3) 网络系统内的用户操作 (查询、发布、修改、删除信息) ;(4) 用户的支付交易 (交易前的安全验证) 。验证码作为网络帐号安全体系的第一道也是最重要的一道安全策略, 直接关系到用户帐号注册、登录、操作和支付交易等核心环节的安全性, 也是用以防御机器程序自动化作恶如撞库、洗库、恶意信息传播的必要策略。没有验证码保护, 网站的用户数据和操作将面临巨大的泄露风险。1 传统的验证码识别框架1.1 传统验证码安全策略
8、目前, 互联网行业采用的主流验证形式, 可分为前端操作验证和短信交互验证两类。前端操作验证主要是两类:字符识别验证 (输入或点选) 和滑动拼图验证。短信交互验证分为短信下发和短信上行两种方式。短信下发, 即网络平台对用户下发验证码短信 (通常为 4-6 个数字) , 用户收到短信, 在前端输入验证码完成验证;短信上行, 即网络平台在前端提供校验指令 (如发送 6 位数字给某某手机或短信平台号码) 。而字符型验证码, 作为常见的前端验证方式, 是当今互联网行业中网站及产品中最普遍采用的安全验证策略, 也是网络打码黑产涉足最大的一块业务。本文内容将聚焦于字符型验证码问题。1.2 验证码被破解后的风
9、险在互联网黑产行业中, 不法分子窃取网站数据库后, 需要确认帐号对应的密码是否正确, 将有价值的数据通过验证方式筛选出来, 这一过程黑话叫“晒密”, 即撞库。而“晒密”最核心的第一步安全障碍, 就是互联网公司设置的验证码安全体系。验证码的作用是在第一道防线识别和拦截恶意机器程序进行批量自动化的验证 (撞库) 行为, 如伪造用户进行恶意发送垃圾信息、恶意查询、恶意营销、恶意刷量、刷投票等。很多政企信息化系统网站, 如政府政务网站的帐号注册、登录、查询、密码找回操作, 如人社局网站相关的考生或资格考试业务的查询、登记、服务操作入口等, 均采用 46 位的字符型验证码作为账号保护体系的第一道防线。而
10、作为“验证”真实性这一重要的网络安全环节, 帐号安全体系的验证码被攻陷后, 可被犯罪分子快速、批量用于多种不同的场景作恶, 严重危害互联网生态, 也会影响国家网络的诚信和稳定。1.3 字符型验证码的传统识别破解方式针对字符型验证码, 黑产从业者 (如打码平台) 传统的识别破解方式是利用通用的 OCR 技术进行文字检测和识别。OCR (光学字符识别) , 是一种对图像文件进行分析和处理, 将图像上的文字转换为文本技术。该技术从 20 世纪 60 年代开始得到重视和研究, 而开源 OCR 框架 Tesseract1始于 1985 年, 至今仍在不断迭代和优化。从早期的通用扫描文档识别 (谷歌数字图
11、书馆、ABBYY、汉王、文通等) , 到银行卡/身份证/金融票据等证件识别 (百度、微信、支付宝) 以及车牌识别, OCR 在业界积累了丰富的宝贵经验。对字符型验证码的识别, 可以归为 OCR 应用中的一种。通过 OCR 技术将验证码图片里的字符转换成文字, 从而达到计算机自动识别验证码的目的。通用的 OCR 技术一般要经过文字检测与文字识别两个步骤。由于图片的来源不一, 图片的大小以及文字出现的位置并不固定, 需要文字检测技术来检测图片中包含文字的区域并提取出来, 而后再通过文字识别技术对该文字区域进行识别并输出文字。不同于一般的 OCR 问题, 字符型验证码本身就是机器产生, 每种验证码都
12、是基于一定的规则的验证码生成程序来生成。由于验证码的原始图片大小固定, 字符出现的位置也相对固定, 使得可以跳过文字检测环节直接对整图作为文字区域来识别验证码内容。字符型验证码的传统识别方式, 所使用的 OCR 识别流程如图 1 所示。图 1 OCR 识别流程 下载原图通过分析可以看到, 这里的每一步都很有挑战性。(1) 预处理:图像灰度化、二值化、图像去噪、干扰滤除等。而不同的验证码干扰方式各异, 每种风格都需要用非常精细的手法来滤除干扰图形。(2) 字符分割:将图片上连续的字符切分成多个单个字符。而字符之间粘连的方式各异, 传统基于图像集合规则的手法很难真正保证正确切割, 容易出现漏子或错
13、误切割的情况。(3) 字符识别:即使成功获得单个字符的最佳矩形框, 字符各种扭曲变形、不同字体以及任意角度的旋转, 均会使传统的基于 Hog、Sift 等手动设计的特征提取和描述手法很难取得较高的识别率。2 基于深度学习的人工智能用于识别破解字符型验证码的最新情况人工神经网络 (Artificial Neural Network, 即 ANN) , 是 20 世纪 80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立模型, 按不同的连接方式组成不同的网络。深度学习 (Deep Learning) 的概念源于人工神经网络的研究, 在于建立、模拟人脑进行分析学
14、习的神经网络。例如, 卷积神经网络 (Convolutional Neural Networks, 简称 CNNs) 2, 它模仿人脑的机制解释数据, 如图像、声音和文本, 对这些元素的识别解析已经是深度学习最广泛的应用领域, 如人脸识别、声纹识别、文本读取等。人工智能领域的研究者和犯罪者都在部署计算机视觉软件, 以颠覆验证码技术。2017 年 6 月, 腾讯守护者计划安全团队协助浙江警方, 打掉了市面上最大的通过互联网字符型验证码的打码平台“快啊答题”。经研究, 目前市面上的大型打码平台对网络安全策略中的图形或字符验证码的识别破解, 使用基于“深度学习”的人工智能技术搭建卷积神经网络进行训练
15、和深度学习, 极大地提升了验证码破解效率。因为引入“深度学习”的人工智能模式, 黑产打码平台效率和业务量呈指数级别增长, 人工智能对网络字符型验证码的识别破解已快到毫秒级。“快啊答题”打码平台 2017 年一季度破解验证码 259 亿次, 总累计破解验证码 1 204 亿次, 为下游的撞库盗号、贩卖公民信息、实施精准的网络诈骗的全链条黑产提供高效海量的犯罪帮助和便利。而对此类人工智能犯罪, 腾讯守护者计划安全团队长期位于对抗黑产的一线前沿, 积累了大量经验, 协助警方破获相关公安部督办案件 2 宗。对涉及到人工智能用于语义识别破解方面的犯罪行为, 复原了黑产作恶链条场景, 深度研究犯罪特点和手
16、法, 有助于提升互联网行业网络安全策略。2.1 深度学习用于识别破解验证码的优势多任务学习 (Multi-Task Learning, MTL) 3是针对数据给出多个监督信息 (标签) 进行学习。例如, 同时识别一张图像中的人脸位置、脸部表情、性别、年龄等4, 亦或识别图像中车的位置、车的颜色、车型、姿态等, 都属于多任务分类问题5。多任务学习是一种归纳迁移机制, 主要目标是利用隐含在多个相关任务的训练信号中的特定领域信息提高泛化能力, 并通过使用共享特征表示来并行训练多个任务。一般字符型验证码包含英文、数字、汉字等, 且字符个数一般小于 6 个。基于上述考察, 将一张字符型验证码图片作为一个
17、整体, 将单字识别转换为一个单图多任务学习问题, 端到端地识别出验证码中的所有字符。比如, 由 4 个英文字符组成的验证码, 需要分别识别出这 4 个英文字符。把每个字符的识别看做是一个独立的任务, 就成了一个典型的多任务学习问题。而每个独立的任务均需要预测该字符属于 26 个英文字母中的哪一个, 即是一个多分类问题。基于深度学习来识别破解字符型验证码的优势在于, 只需要定义一个合适的网络模型, 加上足够的有标签样本进行训练, 就能够取得远高于传统手法所能取得的识别效果。不管验证码是白的黑的、正的歪的、何种字体、何种干扰、是否粘连, 都可以轻松应对, 也没必要针对各种模式下的验证码进行阈值调节
18、。此外, 神经网络本身具有很强的特征泛化能力, 对不同手段生成的不同风格的验证码, 只需要收集或生成大量的该类型的训练样本加入训练, 即可维持较高的识别率。2.2 多任务训练深度神经网络识别破解验证码的步骤2.2.1 训练数据准备先来看一般验证码的生成原理。图 2 是一种常见的英文字符验证码, 该类字符验证码一般通过字母随机组合、随机添加字符的旋转角度并以一定规则加入干扰噪声后生成。图 2 一种常见的英文字符验证码 下载原图可以通过以下两种方式迅速低成本获得海量验证码训练数据。(1) 样本合成(1) 大量采集尽可能多的风格多样的字体库。(2) 大量采集背景图片, 如色彩、纹理背景图片。(3)
19、将采集到的字体和背景图片进行字符化处理。将不同字体的字符进行加工处理 (加干扰、变形等) 后写入到背景图片, 生成带标定的训练样本。由于目标问题是不定长的字符序列识别, 生成的训练样本的字符个数也是不定长的, 可以是 16 个任意字符, 最多支持 6 个标签的识别。(2) 工具生成通过已公开的字符生成工具, 批量生成足量的适用性训练样本。2.2.2 训练网络本文基于 caffe6平台搭建字符验证码识别破解框架。采用 VGG167对整图提取多任务共享的 CNN 特征2, 然后通过全连接展开多路分类网络, 使其具备同时对多个子标签并行进行分类学习的能力。定义标签个数为 6 (即一张验证码最多支持识
20、别 6 个字符) 。网络设计结构如图 3 所示, 对原始的 VGG16 前面的卷积层网络保持不变, 其输出后首先连接一个全连接层 fc6, 而后分别连接 6 个独立的全连接层fc7_1、fc7_2、fc7_3、fc7_4、fc7_5、fc7_6) 。这些全连接层均经过 relu 层和 dropout 层的处理, 然后分别与最后一层全连接层fc8_1、fc8_2、fc8_3、fc8_4、fc8_5、fc8_6 相连, 分别预测各个子标签的所对应的字符分类。该层全连接层的大小对应每个标签所能预测的字符类别的个数 (此处可支持预测 09、az 以及负样本共 37 类) 。图 3 基于 VGG16 的
21、多标签验证码识别网络结构 下载原图为了计算各自对应的 accuracy 层 (test 模式下) 和 loss 层 (train 模式下) , 对原始的 label 通过 Slice 层分割成多个单独的子标签label_1、label_2、label_3、label_4、label_5、label_6, 分别与fc8_1、fc8_2、fc8_3、fc8_4、fc8_5、fc8_6 一一对应。每个标签均可选用Softmax With Loss 作为损失函数, 通过反向传播进行迭代训练整个网络。这里每个标签均可输出负样本, 作用是为了使得该网络能预测标签数小于 6 个的情况, 如验证码的 labe
22、l 标签只有 4 个, 则最后 2 个标签 label_5、label_6均可赋值为负样本。fc8_5、fc8_6 学习和预测负样本, label_1、label_2、label_3、label_4 则为前 4 个有效标签, fc8_1、fc8_2、fc8_3、fc8_4 用来学习和预测该 4 个有效标签。VGG16 所学习到的 CNN 特征能够同时被 6 个不同的任务所共享, 促使多个任务共同学习, 这也是多任务学习的核心思想。它精简网络模型并提高学习速度的同时, 极大地提高了该模型的泛化能力。2.3 多任务训练深度神经网络破解字符验证码的识别率原始的 caffe 只支持单标签进行输入和训练
23、, 通过修改相关的 layer 使其支持多标签的训练和预测。在两个不同难易程度的测试集下进行测试 (这两类风格的验证码并未加入到训练集) , 测试集 A 的识别率为 95.5% (如图 4 所示) , 测试集 B 的识别率为 81.5% (如图 5 所示) 。图 4 测试集 A 下载原图图 5 测试集 B 下载原图传统 OCR 识别破解方式, 在测试集 A 的识别率仅能达到 30%左右, 而在测试集B 的识别率几乎为零。而进入到深度学习时代, 基于神经网络的字符验证码的识别比以往任何时候都要更加精准和高效, 几乎达到了与人眼相匹敌的识别能力。通过千万级训练样本所训练得到的模型所具备的泛化能力,
24、 几乎能覆盖各种风格的字符验证码, 甚至一种新型的刚设计的字符验证码形式也能达到较高的识别率。这已然严重威胁到字符型验证码的安全性和互联网行业的用户帐号体系的生态安全。3 人工智能在安全领域的展望当人工智能和深度学习被用于网络黑产作恶甚至犯罪, 互联网企业和整个行业的对抗实际上非常困难。因为一切的安全策略都是针对传统的坏人去区分人与传统机器 (程序或算法) , 而人工智能却是最接近真实人表现的形式。到底应如何区分人与机器呢?3.1 刑事打击的取证难度、分析难度在办理第一单 AI 犯罪案件发现, 警方在刑事打击时缺乏经验、缺少技术理论, 能力不足。而影响刑事打击的一个难点是取证。对 AI 犯罪的
25、整个链条取证难度极大, 在没有原作者 (嫌疑人) 的配合、没有技术专家、取证专家共同参与的情况下, 复原重现特定的 AI 犯罪场景, 可能性基本为零。复原后的司法鉴定、原理分析, 都给警方、检察机关、法院、司法鉴定机构提出了新的挑战。3.2 法律适用难度、对 AI 犯罪的定位AI 本身是一种技术, 但随着高速发展, 它现在已成为双刃剑。立法层面如何管理、规制这把双刃剑, 直接影响到互联网生态安全和发展。3.3 AI 用于犯罪的领域将会越来越广阔社会工程通常是计算机安全链中最薄弱的一个环节。网络犯罪分子会利用人们的信任或善意, 进行入侵、渗透、非法获取, 人工智能、深度学习、卷积核神经网络, 可
26、以应用于互联网犯罪的多个领域, 如身份信息识别与伪造、人脸/声纹的识别与伪造和欺诈 (犯罪途径会很广) 、验证码识别破解等, 从而越来越广地应用于伪造和欺诈行为, 且效率极高, 远高于人工和传统机器。4 结语打击治理网络犯罪, 黑产链条上游的威胁源头是关键。典型代表之一就是以基于“深度学习”的人工智能技术识别破解字符型验证码, 为撞库盗号、贩卖公民信息、实施精准的网络诈骗提供高效海量的犯罪帮助和便利, 严重危害互联网生态安全。AI 人工智能犯罪已成为一种新型犯罪类型, 学界和互联网行业首先应从认知上提升对 AI 人工智能犯罪和验证码等安全策略问题的重视, 在理论和实践领域对AI 人工智能犯罪问
27、题进行深度解析和研究, 掌握网络黑产犯罪的前沿现状和规律。同时, 在策略上引入动态对抗, 设置多维度防范措施, 不断改进安全策略, 提高网络黑产犯罪门槛, 才能有效保护互联网行业帐号安全体系, 保障用户权益, 维护网络空间安全稳定。参考文献1Smith, Ray.An Overview of the Tesseract OCR EngineZ.2007. 2Almazn, Jon.Word Spotting and Recognition with Embedded AttributesJ.IEEE Transactions on Pattern Analysis and Machine In
28、telligence, 2014, 36 (12) :2552-2566. 3Caruana R.Multitask LearningJ.Mach Learn, 1997, 28 (01) :41-75. 4Zhang Z, Luo P, Loy C, et al.Facial Landmark Detection by Deep Multi-task LearningC.ECCV, 2014. 5Girshick R.Fast R-CNNC.The IEEE International Conference on Computer Vision (ICCV) , 2015. 6Jia Y, Shelhamer E, Donahue J, et aL.Caffe:Convolutional Architecture for Fast Feature EmbeddingC.Proceedings of the 22nd ACM International Conference, 2014. 7Simonyan K, Zisserman A.Very Deep Convolutional Networks for Large-Scale Image RecognitionZ.arXiv preprint arXiv:1409.1556, 2014.