分享

人工智能时代:验证码都去哪了?

 sdzc119 2017-12-08

       CAPTCHA是全自动区分计算机和人类的图灵测试的简称,俗称验证码。验证码对于系统安全来说是不可或缺的,这也是近年来人们经常见到的一种安全手段。在以前的网络访问中,还不存在验证码的用法,但由于网络更加深入地融合到人们的生产生活中:暴力猜测登陆、暴力破解密码、垃圾广告等在网络中泛滥,不仅消耗了大量的服务器资源,同时也可能威胁到服务器的安全,因此,验证码作为一种实用高效技术被大量使用起来。

图1 验证码技术工作原理

       那么验证码又是怎么样工作来保护系统安全的呢?下面我们来介绍一下验证码的工作原理:如图1所示是验证码的工作流程图,验证码是与Web中的会话相关联的,在一个会话开始时,需要使用验证码的地方会生成一个与当前会话相关的验证码,用户识别出验证码后通过填写表单将数据提交给服务器,服务器端会验证此次会话中的验证码是否正确。具体包括以下三步:

       1)首先对于图中的用户方来说,用户访问起始页面,识别返回页面中的验证码后输入验证码信息,接着经服务器处理后可查看到当前操作是否成功;

       2)而服务器在接收到用户对初始页面的请求后,会自动创建一个新的会话,同时生成验证码来关联该会话,然后将这些页面返回到用户的浏览器上。服务器接到用户提交的验证码信息时,会比较用户提交的验证码值与之前存储在此会话下的验证码的值,如果一致,则认为用户判断验证码正确,否则是错误的,错误的原因可能是客户端为计算机或者用户识别错误;

       3)最后,服务器端会将处理结果反馈给用户。如果提交的验证码是正确的,那么用户有权对服务器进行访问,否则用户需要重新发起验证请求。

       随着近些年来验证码技术的发展,已经存在了各种类型的验证码:比如说文本验证码、语音验证码、短信验证码、滑动验证码等。我们在各种网站上见到的验证码一般是基于文本的验证码,比如Google的reCAPTCHA,基于文本的验证码通常是一副扭曲的字母和数字图像,或者是回答一个对计算机来说很难、对人类却很容易的问题。一般情况下,计算机很难用算法去识别它,以目前的文本验证码识别算法来看,如果一个算法的识别成功率达到了1%,那么就认为这个算法成功破解了CAPTCHA。随着人工智能的兴起,掀起了机器学习在各个领域应用的浪潮,2017年10月26日在science上发表的一篇题为《A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs》文章成功打破了基于文本的验证码生成方案,那么这篇论文又是怎么样破解CAPTCHA的呢?

图2 RCN模型测试准确度

       其实这篇论文破解CAPTCHA的关键之处在于在模仿人类大脑的视觉系统之后构建出了一种新的RCN(递归皮层网络)模型。早在2013年,RCN模型就取得了初步的成功,RCN模型在Google的验证码生成系统reCAPTCHA中进行测试的识别准确率达到了66.6%,而在BotDetect 是 64.4%,雅虎是 57.1%,PayPal 是 57.4%,并且当针对特定风格优化单个模型时,模型可以实现高达90%的准确性,如图2所示。

       RCN模型模拟的是人脑视觉的神经系统,主要模拟了视觉神经系统的四大功能,分别是神经系统对轮廓表示和表面表示的因式分解、视觉皮层的横向连接、自上而下的基于对象的注意(视觉皮层即使在高度重叠和透明的情况下,也能够分离出对象的实例,这被称为自上而下的基于对象的注意)、基于消息传递的近似推理和学习。

这四大功能在RCN模型中主要表现为以下四点;

       1)RCN模型将物体表面建模为一个马尔可夫随机场,强制表面属性的连续性来模拟人脑视觉神经系统,将物体轮廓和表面在大脑中以一种因式分解的方式表示;

       2)通过共享池变量来模拟人脑视觉皮层的横向连接;

       3)RCN模型中构建的对象级别自上而下的注意力可以作为非负权重和横向连接的组合,并在模型中进行相应的解释;

       4)在模型中特征特定的横向连接和权重的稀疏有利于消息传递推理。

      下面介绍一下RCN模型识别的大致过程(RCN模型识别的过程同时也是一个层级模型的建立过程):首先模型一组识别轮廓、特征,另一组识别表征进行提取(比如这些轮廓的表面平整度),被这种模式识别出来的特征被归类到不同的群组;这些群组彼此之间相互连接,形成一个在特征识别方面相互连接、相互影响的网络;最基本的特征则会形成第一层的网络;由于不同的特征群组相互连接,特征之间相互组合会建立出新的特征群组;这些新的群组相互连接就会形成新的一层网络,这些特征随着层级上升从而一层层向上组合抽象,逐渐构建出了层级模型;而在这个层级模型的最上层,可能就是需要被识别对象的最终参考结果,研究人员将其定义为“对象假设”(object hypotheses)。下面是一个A字母从特征到场景的逐层构建方式。

图 3 字母A从特征到场景的逐层建构方式

       通过这样构建出来的RCN模型具有不可思议的魔力,RCN模型可以识别出具有类似特征的图像集合,只要这些图像特征是相关的,即便给图像加上噪声、刻意模糊化,仍然能够被成功识别出来。就跟我们人类一样,人类在阅读上下、左右、前后颠倒,或者是被埋藏在充满噪声的背景图像中的文字时,仍可以毫无障碍的了解语义。

       RCN模型的神奇之处不仅是它对基于文本的验证码识别准确度很高,而且它不同于CNN(卷积神经网络)需要海量的数据进行训练,CNN要达到与RCN相同的识别准确度需要比RCN多300倍的数据。在谷歌的reCAPTCHA 字体图片样例中, RCN 仅仅需要 260 个训练样例就能达到与CNN用50000个训练样本取得的同样效果。而如果 reCAPTCHA 对其问题库的文字扭曲或噪声变量进行调整,传统的深度神经网络系统就必须重新训练,否则就无法识别,但 RCN 就没有这个问题!

图4  RCN(蓝)与深度神经网络(绿)在的训练效率及识别成功率方面的对比

       虽然这篇论文是人工智能在小样本学习上的重要突破,但是这篇论文构建的RCN模型给网络安全带来了新的挑战,RCN的极高训练效率意味着只需很少的GPU和CPU资源就能实现对文本验证码的破解,把破解文本验证码的硬件门槛降到了极地的地步,黑客很容易实现对模型的训练,进而用该模型破解文本验证码,给网站造成极大地危害。相信在基于对网络安全保护方法中,文本验证码或许不久将成为过去。


责任编辑:向灵孜

中国保密协会科学技术分会

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多