AiTechYun
编辑:yining
密码猜测之所以有效是因为…
人类是可预测的
如果你要求小明设置一个密码。他可能只是简单地把密码设置为“xiaoming”。现在,系统告诉他密码必须包含数字。他或许会尝试“xiaoming123”这样的密码。虽然你很聪明,不会把这种不安全的密码放在各种网站里,但实际上还是有很多像小明这样只会设置简单、好猜测的密码的人。
从Rootkit上泄露密码
你可以在上图泄漏的密码中看到一种固定模式。它们中的大多数密码可能是一个或多个名字、姓氏、出生日期或喜欢的实体(汽车、自行车、男女演员等)的组合。
密码猜测工具,如HashCat或John the Ripper通常使用字典式攻击(dictionary attack)密码生成规则来猜测密码。
字典式攻击只是简单地将字典中的单词作为密码输入,以查看哪个单词是有效的。
使用密码生成规则的字典式攻击是通过手动检查泄漏密码的列表,并为密码生成制定规则。例如:如果泄露的密码被发现是一个实体加上123的组合,如“福特123”,然后将数字123与字典上的单词相连接就是一个生成规则。
在密码猜测工具中,这些工具是手动定义的,或者换句话说,它们是人类定义的规则。这些规则的问题在于人类的行为和兴趣会随着时间的推移而改变。因此,随着更多的泄漏发生,这些规则必须经常更新。此外,当泄露的密码列表非常庞大时,手动查找模式将是一个十分困难的过程。因为有些模式很有可能被忽视。
研究人员利用生成的敌对神经网络(GANs)来实现这一功能。GANs由两个神经网络组成。一个神经网络用来生成,另一个用来提供反馈。你可以把它当作教师和学生。当一名学生试图做一些事情时,老师会给出反馈,说“你需要尝试更多”或者“你很接近正确的答案了”等等。这些神经网络正是如此,它们运行多次迭代,直到得到令人满意的结果。
这使得整个过程完全自动化。研究人员还发现,虽然在某些情况下,神经网络无法匹配准确的密码,但生成的密码看起来就像给定的密码。例如:如果密码是“AEF@123”,生成的却是“AEF@123”。
从好的方面来说,我们可以通过可预测的密码使基于密码的系统更加安全。如果你想了解技术细节,可以看一下这篇“一种深入学习密码的方法”的论文。
论文地址:https://arxiv.org/abs/1709.00440
领取专属 10元无门槛券
私享最新 技术干货