欢迎光临散文网 会员登陆 & 注册

Fast, Lean, and Accurate: Modeling Pass...阅读总结

2023-02-19 13:42 作者:LEKNIGHT  | 我要投稿

文章标题:Fast, Lean, and Accurate: Modeling Password Guessability Using Neural Networks

文章主题:在用户使用浏览器上网需要进行注册等行为时,此时用户需要进行设定密码的操作,而如何快速准确的判断用户所设置的密码强度是一个很重要的问题,当今判断密码强度的方法主要有概率上下文无关文法(PCFG)、马尔科夫模型、Mongling wordlist等等方法,不过这些方法十分耗时,并且需要占用很大的存储空间,比如PCFG在本文中提到需要4Gb,Markov Model需要1Gb,而本文所提出的新的方法:使用神经网络模型则可以实现快速(100ms的数量级)并准确(高于其他方法)的判断密码强度。占用空间极小(几百Kb)。

主要原理:判断密码强度的原理在于使用密码猜测攻击方法对密码进行猜测,例如假设用户密码是“password”,而此时攻击模型已经猜测到了“passwor”(从“”开始一个字符一个字符进行猜测),那么它会分析出下一个字符是“d”的概率最高,从而在猜测序列中添加“d”,完成猜测攻击(只是大致意思,具体细节请看原文章),而神经网络善于产生新序列,这一特点使得其在猜测密码方面有很大优势(密码猜测攻击就是需要产生新序列验证新序列是否为密码)。

神经网络实现方法:使用两个训练集对神经网络进行训练,训练完成后使用测试集进行检验。神经网络的几个参数选择

  • 模型大小选择:使用大模型(60M,1500w参数)与小模型(2.7M,68w)进行测试,发现两者无较大差异,使用小模型也可。

  • Transference Learning:使用该方法可以提升准确度

  • (NL)Natural Language Library:使用神经网络发现使用NL比不适用的结果还要差。

  • Password Tokenization:在guess数(即猜到密码所需的次数)较小时有用,当guess数较大时(大于10^3),用不用差距不大。

  • Tutored Networks(使用大模型对小模型进行干预“tutor”):发现用处不大。

  • Backwards vs Forwards Training(Backwards,Forwards指的是对训练数据的处理是放在放入神经网络前还是后):两者混合优于Backwards优于Forwards(优,但只是优一点点),但混合处理耗时,所以实际上使用Backwards要好一些。

得到训练模型后(还没完),这个训练模型是要放在服务器端的(直接扔给客户端怎么实现100ms时延呢?),实际上是将已经训练好的模型放在服务器端,服务器端会向用户端发送一张guess数与概率值的映射表(该表是使用蒙特-卡洛模拟得到的),客户端的小模型会计算出根据用户设定密码值得出猜出该密码的概率值,前面原理已经提到,我们认为这一步是快速的,但是猜测数是需要神经网络实际去运行来得到真实结果的(让用户端去算这个黄花菜都凉了~),所以需要服务器端给的映射表,得到概率值直接查表就能得到对应的guess数从而判断密码强度。此处还要注意一点,在实际应用中,我们总是希望用户设定安全的密码,所以我们给出的结果宁可低估用户设定密码的强度也最好不要高估。所以文章中采用了忽略密码大小写的方法来实现低估强度,减少高估的目的。

结果与现有传统方法对比:文章将神经网络与传统的密码猜测攻击手段进行了对比,结果显而易见,占用存储少,实时性好,可以直接挂载在浏览器上,因此该文章也将此与现有的浏览器上的密码强度判断工具进行对比,发现判断的准确度明显较高。结果就不贴了,原文有,解释也非常清楚。


Fast, Lean, and Accurate: Modeling Pass...阅读总结的评论 (共 条)

分享到微博请遵守国家法律