首页
社区
课程
招聘
[翻译]使用有序马尔可夫链和用户信息加快密码破解速度
发表于: 2017-3-1 10:05 13392

[翻译]使用有序马尔可夫链和用户信息加快密码破解速度

2017-3-1 10:05
13392



我一直在寻找加快密码破解的速度的方法。有很多关于这个话题的研究,但是有一个团队在这方面已经做了一些了不起的工作。这里有一篇论文 OMEN: Faster Password Guessing Using an Ordered Markov Enumerator,就是我写这篇文章的灵感来源。虽然这篇文章的想法来自上面的论文,但是所有的工作都是我手动完成的,没有复制代码和其它任何东西。让我们开始吧!


使用有序马尔可夫链和用户信息加快密码破解速度

比John the ripper 的马尔可夫和增强模式提高22.5%的准确性


阅读完上面提到的论文后,我想要一个类似的工具,但是这些家伙制作的工具已经不可用了。因此,我花了几天时间编写代码来实现这个工具,它足够灵活,使用一个破解的密码列表来实现基于n-gram和马尔可夫链的密码生成。我想修改并编写我自己的工具给了我这样做的自由。这个工具仍处于开发阶段,一旦完成,我将会把它分享出来。

编写脚本后,我想看看我们是否可以利用用户信息来加快密码破解速度。这里有一个Fling泄漏的数据,Fling是一个成人交友网站。他们泄漏的数据库可以公开获取到,我下载了这个数据并进行了一些分析。让我们来看看吧。


用户在其密码中使用个人信息


通过一个简单的查询,我们可以看到用户密码与他们邮箱/用户名/用户代码/昵称有相同的前三个字母的用户占多大比例。在Fling泄漏的数据库中共有4993276个密码。让我们看看有相同起始三元组的占多大比例。


总密码的8% 意味着大约有386894个密码。这是一个很大的数字。

让我们看看1-grams。


17%的用户的密码与其邮箱、用户名、昵称有相同的首字母。

让我们玩玩生日和加入网站日期。我想看看有多少用户在他们密码结尾使用他们的生日。查询显示2%的用户这样做。下面是一些结果。


在做了一些非常基础的分析之后,我们已经知道大约有20%的用户在他们密码中使用其非常基本的信息。

如果这还不够,我还有另一个泄漏的数据(ClixSense),包含更多的用户信息,例如用户名、名字、姓氏、电子邮件、国家、城市、生日、加入日期、安全问题等。我精心编写了一个查询,来看看有多少密码的前`n-grams`同样出现在他们的社交信息中。结果令人惊讶,让我们看看它们。

使用2-grams和更多的社交信息例如生日,我们发现32.5%的用户在密码中使用他们的社交信息。下面是这个查询:


结果是在200万密码中有65万密码使用社交信息。

我们可以使用这个来加速密码破解吗?是的,我们可以。让我们深入了解马尔可夫链(Markov Chain)。


马尔可夫链(Markov Chains)

简单来说,马尔可夫链所做的是,告诉我们一个字母在一个n-gram之后出现的概率。假设,我们有一个4-gram 的 'ilov',马尔可夫链只会告诉我们下个字母出现的概率。在这个例子中,大部分时间,出现最高概率的字母是'e',使它成为'ilove'。这就是你需要知道的关于马尔可夫链的所有知识。如果我们对这些概率进行排序,我们按照从最高到最低概率的顺序排列密码,故名有序马尔可夫链(ordered markov chains)。

John the ripper 使用未排序的马尔可夫链,从某种意义上来说,它完全遍历一个'n-grams'之后才到下一个'n-grams'。我的脚本的做法是,使用线程同时遍历所有高概率的'n-grams'。我希望已经解释清楚,如果没有的话,请在评论中提出任何问题。你也可以阅读文章开头给出的OMEN论文。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 189
活跃值: (154)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2


如果想了解更多马尔可夫链,请参考:

如何用简单易懂的例子解释隐马尔可夫模型?

Markov Chain




2017-3-1 10:39
0
雪    币: 6112
活跃值: (1212)
能力值: (RANK:30 )
在线值:
发帖
回帖
粉丝
3
2017-3-3 10:49
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错  支持
2017-7-8 17:00
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
代码有吗
2020-1-6 17:44
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
最近毕设用到这个,能否共享下
2020-1-6 18:04
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
做梦吧,说能破解密码 = 0,真能破解才是真的。有些方法的加密是任何方法也不能破解的。
2020-1-6 21:35
0
雪    币: 189
活跃值: (154)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
mb_fluistur 最近毕设用到这个,能否共享下
没有,你可以去作者的github上看看,或者联系一下他
2020-1-7 12:40
0
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
10
sjdkx 做梦吧,说能破解密码 = 0,真能破解才是真的。有些方法的加密是任何方法也不能破解的。
真的言之有物的被你鄙视了,呵呵
你真可以作为鉴定器了
2020-1-7 15:48
0
游客
登录 | 注册 方可回帖
返回
//