互联网巨头Google公司近日对外宣布了重磅消息:用于做人机判断的图片验证码reCaptcha V1将于2018年3月31日完全停止服务。
reCaptcha V1
为什么图片验证码不再安全
图片验证码长达十余年的统治最终走向终结,主要的原因还是归结于目前人工智能技术的飞速发展和知识的快速普及。随着深度学习技术在图像处理上越来越强大的表现,图片验证码已经没有任何安全性可言。Google正因为发现了图片验证码已形同虚设,才停止了此类验证码的服务。
作为网络安全的第一道“门”,验证码已渗透到人们数字化生活的各个角落。全球企业主虽然知道验证码的重要性,但仍有许多企业的网站&APP依然在使用图片验证码。而随着“大门”的失守,意味着全球企业网站&APP的虚拟资产以及账号隐私等重要信息面临“裸奔”的风险!
图片验证码的克星——卷积神经网络
展开全文
左:简单型图片验证码 右:复杂型图片验证码
为了应对黑客的破解,图片验证码虽然通过增加背景干扰、扩大字符范围、字体类型多样化等方法提升其被破解难度,但它的设计理念仍然停留在图像学上,而利用现在的卷积神经网络(CNN)技术是完全可以破解的。
使用CNN对多位字符验证端到端的识别,对于图片验证码来说是致命克星。CNN模式通用性强更换模式后,不用修改代码就可直接训练出新的模型,但需要大量的带标注的数据。例如端到端的可能需要几万带标记的先验数据集。
如果对试验CNN效果感兴趣,可以直接用第三方标准库无限生成带标记图片。但是如果在具体的场景使用,则需要准备大量的带标记数据,像复杂型图片验证码,如果要达到90%以上的正确识别率,则需要5万带标记数据。下图是生成的部分先验数据集:
图片验证码的识别方法
对于不同难易程度的图片验证码,有不同的处理方式,比如“蛮力型”的通用识别方法和“特事特办”的特别识别方法。但是对于卷积神经网络来说,他们的区别只在于对样本的依赖度不同。理论上,只要给充足的带标记样本,神经网络都是有能力实现拟合。
“蛮力型”的通用识别方法:
“蛮力型”的通用识别方法:
此类识别方法就是流程化作业,基本不太需要在编程上思考太多。
识别步骤如下:
由Google主推的深度学习框架tensorflow的入门文档里面就介绍了分别用矩阵回归和CNN神经网络对手写数字识别的方法。
当然,关于如何获取带标记的数据,目前也有比较便宜的获取渠道,直接在网上搜索“打码平台”后,可发现有许多提供 “人工智能”领域的“人工”打码服务的服务商,并且大部分都有明码标价。对于图片验证码,基本上是几分钱一张标记图。
“特事特办” 的特别识别方法:
此类识别方法仍然是基于深度学习这种通用方法来做的,只是我们可以将一些复杂问题进行适当的简化,这个思想有点类似于“降维”处理的意思。
理论上,利用深度学习能对绝大多数的线性或者非线性问题实现非常好的拟合。
虽然问题越复杂、数据需求量越大的现状是无法避免的,但是我们可以做一些人为的自动化工作来达到目标。
比如像下图中的验证码,无论它们的色彩、字体及干扰项如何变化,字符之间容易分割的事实是无法被改变的。也就是说,此类验证码可以很容易将一个本来要判定N位字符串的问题简化为“判定1位字符,然后将N个这样的图片再组合起来”。这样网络的复杂度可以大大的简化,训练所需要的样本数量及训练时长都会大量减少。
如果验证码图片可以从N维“降维”到1维,并且字符的字体单一(以下图为例),那么问题就更简单了:只需为每个字符分类准备一张图片即可。例如你的验证码范围是[0,9],则只需要从下载的图片集中对0~9这几个数字每个标记一张即可,然后就是使用一些普通的数据增强技术:贴图,绽放,上下自由截取,随机噪点等等,可以生成无限多的数据集了。当然,这些全部是由程序自动化完成。
全球企业网站&APP该何去何从
由于大众缺乏对互联网交互安全的认知,图片验证码仍然存在于互联网的各个业务场景。然而,现在的图片验证码已无任何安全性可言,企业网络资产安全将岌岌可危。
面对当前风险,全球近些年针对各类场景改进的验证码开始出现。目前市面上的主流新型验证码大致分为短信验证码和行为式验证码。其中,行为式验证码这种带点游戏性质的交互验证方式,在保障安全的同时,为用户带来了更有趣的验证过程,提升了用户的交互体验。受到当前各大企业网站&APP的青睐,算是当前比较流行的一种验证码。
行为式验证码
根据极验CTO黄胜蓝采访报道了解到,在人机交互的过程中,由鼠标移动产生的行为轨迹是机器难以模仿的。因此结合人工智能技术,并利用交互过程中产生的生物行为特征来进行人机区分的行为式验证技术能在保障用户体验最优的基础上,有效对恶意程序进行封禁。
目前极验与Airbnb、AirAsia、新浪微博、银联商务、斗鱼、36Kr、魅族、百胜、高德地图等全球22万家企业网站&APP达成合作,每天提供超过7亿次的安全防护。
不难发现,随着人工智能技术的发展和普及,未来互联网交互安全领域的发展方向将是安全与体验的动态平衡。验证码作为互联网交互安全领域的重要环节,在安全性最优的基础上,零打扰、无感化将是未来验证码的发展趋势。