AI发力:研究数百万条密码以预测下一条潜在密码内容
Eggheads公司已经构建起一套机器学习系统,其对人们在网络上使用的数百万条密码进行研究,进而猜测人们可能使用的其它密码内容。
这些AI猜测出的密码能够与现有工具配合使用,共同破解更多散列密码,并最终实现远超以往的他人系统帐户登录成功率。
在进行密码破解时,大家通常会从密码的散列版本开始,而这类数据通常窃取自数据库或者其它类似的文件。散列处理意味着密码内容已经进行单向加密,即我们无法通过解密获取原始内容。目前的工具通过猜测密码所有单词与字母可能组合(例如AAAAA、AAAAB、AAAAC等)的方式进行暴力破解,并将所有组合的哈希值同窃取到的哈希值进行比较。如果匹配,那么密码内容即被正确猜出。这种方式需要耗费大量资源,特别是在密码内容进行salt强化的情况之下。
而作为另一种优化方法,部分工具能够利用词典与常用密码词典,配合以往已经破解的密码进行哈希值转换,进而将其与窃取到的密码进行比较。
然而,如果我们能够进一步训练这类软件,从而根据人们以往的习惯预测其当前或者未来可能使用的密码,结果又会如何?
来自新泽西州史蒂文森理工学院的研究团队本月发表了一篇论文,其中详细介绍了如何利用一套由两款机器学习系统构成的PassGAN生成式对话网络达成这一目标。其中的两款机器学习系统负责相互训练,其能够将HashCat及Jack Ripper等开源工具的密码破解能力倍增,更可以立足防御角度预防密码窃取类攻击。
研究人员们利用机器学习系统对2010年泄露自音乐网站RockYou的3260万3388条明文密码进行了分析,并借此识别人们创建密码的具体规则。此后,机器学习系统即依靠相关知识尝试破解2016年领英公司不慎流出的密码散列数据。
起初,AI利用RockYou密码进行训练,并依靠相关知识成功猜测出46.85%的RockYou密码——即总计591万9936条密码中的277万4269条; 而对领英密码的猜测正确率则为11.53%,即4335万4871条中的499万6980条。如果将被正确猜出的领英密码中与RockYou训练期间见到过的相同密码内容排除在外,则正确猜测比例将降低至9.582%,即389万43条。换句话来说,这套AI方案能够以十分之一的成功率猜出其从未见过的领英密码。
这样的结果意味着,其实际表现要优于John Ripper(其能够破解6.37%的陌生领英密码(排除其已经见过的相同密码),但尚不仅HashCat——破解成功率分别为22.9%与17.67%。但如果将该神经网络软件与HashCat相结合,效果将更上一层楼,能够分别以27%与22.039%的比例成功破解泄露帐户。具体来讲,AI与HashCat这一组合能够实现五分之一与四分之一的领英散列密码破解比例。
为了实现这一切,PassGAN需要创建5亿2883万4530条新密码; HashCat会生成4万4135万7719条新密码,而John Ripper则生成5亿2883万4530条新密码。HashCat与AI结合之后,生成的密码量更是高达9亿4760万6924条。
该团队对此项工作做出如下总结:
我们的实验表明,这种方法确实具备实用价值。在利用PassGAN对两套大型密码数据集进行评估时,我们的实际效果平均达到John Ripper SpyderLab规则的2倍,而且亦可与HashCat的best64以及gen2规则一争短长——我们的结果为HashCat处理结果的2倍之内。更重要的是,当我们将PassGAN的输出结果同HashCat的输出结果相结合时,能够匹配较HashCat自身高18%到24%的密码比例。这样的结果非常可观,且意味着PassGAN能够生成当前工具所无法企及的巨大猜测密码量。
他们同时补充称,“此外,我们对于训练成效的评估显示,当拥有足够大的密码数据集时,PassGAN的成效很可能超越目前基于规则的最佳密码生成技术方案。”
换句话来说,HashCat的表现仍然相当出色。而作为早期AI成果,PassGAN目前只是一种填充空白的手段——要获得最终成功,其还需要努力全面击败HashCat。