近日,有消息说美国史蒂文斯理工学院开发出的人工智能可猜对25%的密码。
AI已经学会猜密码了?如果真是这样,你还敢用“6个0”“6个8”这样简单的密码吗?网络还有安全可言吗?
一些事之所以耸人听闻,是因为不明所以。为此,科技日报记者带着消息请教了中国科学院软件研究所可信计算与信息保障实验室主任张振峰,请他详细讲讲。
破解的是口令不是密码
讲正题前,插个花絮。单口相声大王刘宝瑞存世的经典作品里有个《黄半仙》,这位“半仙”捻动须髯,算得出村里张妈的戒指丢在哪,算得出艳阳天的后晌准下雨……却不是因为他真“仙”,而是他汇总、分析小细节,就能得出正确结论。这和AI的深度学习如出一辙,也就是说,美国这位“艾(AI)半仙”有25%的算中率,仰仗的是大量的基础数据,分析学习后,才能进行猜测,而不是因为它“天赋异禀”。
那么,问题来了,用于AI深度学习的基础数据库从哪儿来?这个技术会不会造成网络安全危机呢?
“先纠正一个概念,”张振峰说,“这则消息里说的密码,更准确地说是口令(password),而不是学术上密码学(cryptology)中研究的密码。”
它们最直观的区别是“字符串长度”,口令一般十几个字符,字符组成的所有可能可以被“穷举”,而一代RSA密码算法就有1024位,“穷举”在计算上是不可行的。打个不太恰当的比喻,攻破口令要踹开的是一扇门,而攻破密码是要征服一座迷宫。
“现在还没有研究表明AI能破解密码算法。”张振峰说,“密码”被业界认为是互联网的基础设施,一个国际标准的商用密码是非常复杂的,里面包含复杂的密码算法,凝结了研究人员多年的智慧,很难通过学习基础数据倒推其中规律,进而破解。张振峰所从事的正是密码学领域的研究。
AI领军人物、深圳先进技术研究院副院长汤晓鸥表示,AI很长时间以内是无法超越人类智慧的,也就是说它无法像人类一样进行创造性的脑力劳动。尽管这样的研究也在进行中,例如“谷歌大脑”项目,正是要开发出一款模拟人脑的软件。
猜对25%是怎样的成绩
这次不少报道标题都提到了“25%”的准确率,例如“准确率居然达到25%”“准确率逆天的25%”,潜台词是“25%”是个高不可攀的准确率,那事实是不是这样呢?
张振峰说:“AI独立猜测成功的比例不到12%,破解软件HashCat可以做到将近23%,这个25%是AI和HashCat两种方法相结合得到的数字。”
此外,单从准确率是“25%”判断它是否有效果是片面的。科学研究的做法是,以准确率为纵轴、实验攻击次数为横轴,得出不同攻击次数所对应准确率的曲线,“从曲线走向来看,准确率攀升幅度越大,那么口令猜测的成绩越好。”
可见,25%既不说明AI尝试4次就能猜对一次口令,也不说明它破解了1/4人群的口令,这个数字是AI创造出的新口令与它未知的另一部分旧口令比对之后,匹配的概率。
“25%说明AI在一定程度上提高了传统工具猜测密码的能力,对于口令强度测试具有积极作用。”张振峰说。
360网络攻防实验室负责人林伟告也持类似观点,他认为该研究可以加速破解口令的人工编程进程,或者用来测试口令的强度。
可供AI学习的数据猛增引担忧
那么AI破解口令,是怎么做到的呢?
原消息中提到,团队让一个人工智能程序利用数千万个泄露的密码来学习如何生成新密码。
数据显示,2016年,全球已知的用户数据泄露有40亿之多。2017年,这个数据可能更多。“猛增有可能是以前的存量,因为很多服务器的数据泄露,自己并不知情,”张振峰说,“或者即便知道,自己也不愿意主动公布。”
“也有可能是攻击手段越来越多导致的。”张振峰说。名噪一时的“永恒之蓝”背后,是网络攻击武器库的泄露。有消息称,这些攻击武器是在明码标价销售的。黑客获得更多的尖端攻击手段,可能是数据泄露猛增的另一个原因。
无论何种原因,值得担忧的是,“艾半仙”能用来学习的基础数据越来越多。
“半仙”是如何修炼的
破解口令,目前大致有暴力攻击、启发式攻击、概率猜测等方式。
张振峰一一解释:暴力攻击是最原始的方法,把所有的可能都试一遍,计算机的计算能力越强大,破解越快;启发式攻击,也叫字典攻击,是根据泄露的口令进行分析,把规律“编写”成“字典”,并结合矫正规则进行猜测,用于攻击的“字典”不同,攻击的方式就不同,同等硬件条件下,字典越好,越快破解;概率猜测基于人们设置密码时,有着和自然语言类似的分布特征,通过数据集计算其概率分布,有些字符组合用的频率高,猜测就准。诸如国内网民最常用的25组密码,密码管理公司Keeper Security公布的2016年最常用的25个密码等就是这一类猜测依据的“冰山一角”。
AI破解口令是深度学习的一种应用,“它属于一种启发式方法,基于数据集来猜测口令,”张振峰说,“看起来还没有得到实战验证,只要用户在数据泄露之后及时修改自己的口令。”
那么,AI是如何进行口令猜测的呢?
有一个形象的比喻能说明这个过程。AI神经网络由大量“感知机”相互连接构成。感知机类似于生物神经系统中的神经元。它并非生来就具备强大的功能,而且需要训练才能掌握技能。例如希望神经网络通过西瓜的外形判断瓜的甜度,一开始AI并不懂如何去判断,这时就需要分别把西瓜的外形和对应的甜度输入神经网络,训练它学习两者的对应关系。训练过程实际上是通过学习数据来调整每一个感知机参数的过程。
神经网络读取数据样本后,感知机们会先根据现有模型参数进行计算,然后把输出的值与真实值进行比较,再将两者的差距反馈回去,以调整参数。经过反复多次“计算—比对—反馈—调整”的循环后,AI就能判断个八九不离十了。
但是,实际中,很多时候训练数据的真实结果信息难以获得——比如不能把每个瓜切开尝尝。这就用到了消息中美国史蒂文斯理工学院团队利用的“生成对抗网络”,巧妙避开“无法实时核实密码”这个问题。简单地说,研究团队设计出两个对抗的系统互相修炼,把获得数据一分为二,一部分用于生产,另一部分用于核验。通过训练,一个系统就像做赝品的画院学生练成了画家,另一个系统用“核验”数据充当“鉴定师”。
“但这些的基础都是源自已有的数据,这些数据是离线的,该消息中所用数据来自于2010年泄露的数据集合,其口令是明码存储在服务器上,而且长度不超过10个字符。”张振峰说。(张佳星)