设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

漫画说安全:用户密码薄如纸

2013-5-30 10:17| 发布者: joejoe0332| 查看: 2640| 评论: 0|原作者: 煎蛋网|来自: 煎蛋网

摘要:   感谢XKCD的漫画,现在世界上所有的黑客猜密码的时候,都会试试「对马电池订书钉」(correcthorsebatterystaple)这个密码。   前情提要:可能各位煎蛋蛋友看了题图和这句话后,会有点懵。其实「对马电池订书钉 ...

  黑客穷举破解密码所用的「字典」里,包括了很多密码明文,这些常用的密码字符组合,来自于很多大型网站的用户数据中,包括像「123456」, 「password」之类,这些属于弱暴了的密码,还有稍微好一点的,像「p@$$word」、「123456789j」、「LETMEin3」等也同样 不堪一击。在这些字典里,你还能找到一些理论上强悍的密码,比如「LOL1313le」、「1368555av」、[Oscar+emmy2]之类:

  截图里展示了一部分黑客字典中的密码组合。像这次参与PK的黑客手里的字典,有接近1亿种常见密码。但像「momof3g8kids」、 「Coneyisland9/」这样的密码,虽然不在他们的字典里,一样没能幸免,他们是怎么做到的呢?答案来自于两个方面:网站没能保护用户密码的 MD5信息,和用户没有使用足够强壮的密码。

  嗖嗖地,妥妥的

  「这些弱暴的密码」radix说道,他不愿意透露真名,「说明他们真的不是很在乎自己的密码安全,别用MD5加密,这对他们来说其实并不难」。

  MD5 算法,是一种快速简单的的「报文编译」方法,由它生成的密文,也是黑客最喜欢拿来练手的对象,一块GPU显卡,就能在1秒钟内遍历8亿个字符组合,比较起 来看,加密过程就费时费力的多,比如在苹果Mac OSX系统,和大多数基于Unix的系统上采用的SHA512加密算法,一个明文密码需要经过5,000次hash。这点小障碍也就让一块GPU每秒少跑 了2,000次而已,类似的还有bcrypt,scrypt,和 PDKDF2。

  另外一个漏洞就是用户自己,选择好记的单词当作密码,好记就代表容易被破,比如「momof3g8kids」看上去好记又难猜,但实际上,「mom」、 「kids」都是每一个黑客手里必备的破解词汇。越来越彪悍的硬件和软件,能让黑客轻而易举地不断尝试这些词汇的各种组合,除非用户细心设计,否则好记的 密码就是正中黑客下怀。

  而且必须指出,这次三名黑客并不知道这份密码表是从哪个网站得来的,这就等于封杀了他们的一项技能。一般,当得到一份hash过的密码表后,他们第一个步就 是「去那个网站看看他们的密码设置要求和强度」radix说道,如果黑客知道这个网站的密码强度和其它约定,这就大大减小了他们的工作强度,让黑客可以有 针对性地采取破解策略。

  破解步骤

  要细说他们是如何破解强密码的,那就需要对他们三个人的方法和策略进行比较分析,因为他们的硬件和方法都不太一样,也不能说得哪个人的水平更高一些,打个比 方,这是一场游戏通关,那么一关定比一关难,第一轮破解,一般能搞定其中50%的密码,后面的成功率就越来越少,到最后的阶段,他们只能纯靠运气,得到几 百个密码明文。

  举例来讲,在Goseney动手的第一阶段,只花了16分钟,就干掉了10,233个hash密文,也就是62%的样子。他先用6位以内的密码开路,用暴力 穷举法对付1~6个字符的密码组合由95个字符组成的密码,包括26个小写,26个大写,10个数字,33个符号。猜完一轮这样的排列组合(956 + 955 + 954 + 953 + 952+95 个),只花了2分32秒就得到了1,316个正确结果。

  当密码长度超过6位,Gosney开始改变策略,用精心挑选的字典进行穷举。因为随着密码长度的增加,字符组合成指数级增长。1小时能搞定所有6位密码,但要遍历更长的密码,可能要花费数周,甚至数年。所以,对于暴力穷举破解的方法,有一种说法叫:「长度防火墙」:

  暴力穷举可以很好地对付6位以下的密码,但对于8位以上的密码,就算开动Amazon的EC2云计算也无能为力。

  黑客当然不会一条道走到黑,Gosney 下一步的暴力穷举将只针对7~8位,全小写字母的情况。这将大大减少穷举所需时间,而且收获也不少,成功破解1,618个密码。接着他继续尝试7~8位全 大写的情况,又得到了708个结果。因为他们的排列组合是268+267,每一步只许41秒。最后,他尝试全部由数字组成长度从1~12位的情况,得到 312个密码,耗时3分21秒。

  用光了以上入门级暴力破解法,黑客Gosney这才开始拉开架势,拿出自己潜心调教多年的「字典」,通过在HashCat软件中内置的「best64」规则 (一种基于密码统计学的破解行为模式),他能在9分04秒内,跑完了6,228个hash密文,然后他利用上一步破解所得到的所有明文密码,通过另一组名 叫「d3ad0ne」的规则过滤获得「字符组合特征」,让他在一秒钟内,又得到了51个密码明文。

  「正常情况下,我先用暴力穷举法,完成1~6位的密码破解,因为就算是单GPU,也能几乎瞬间完成用MD5加密的密码」。Gosney在邮件中解释道:

因为这一步很快就能完成,所以,我的字典几乎都 是6位以上的密码组合。这可以让我节省不少磁盘空间,也可以利用GPU的蛮力,加快我之后用字典破解的速度。对于数字组合也是这样,我可以很快破解纯数字 的密码,所以在我的字典里没有任何数字组成的密码,然后才是我的字典文件+bast64规则文件。我们的目的就是先挑软柿子捏。

  从简单密码下手对于被「掺盐」(cryptographic salt)的密码特别有用。「掺盐」是用来对付黑客的「彩虹表」(一种明文和密文对应的穷举表)和类似的字典技术,掺盐就是在用户密码后面,再加上随机字 符,然后再hash的技术。除了防御彩虹表,掺盐也减慢了暴力穷举法的破解速度。

  但「掺盐」的关键在于,只有在掺入不同的盐巴(字符)情况下,才能明显减慢破解速度。这就意味着,掺盐的效果,会随着破解的进行而逐渐降低。黑客可以通过破解简单密码的结果,逐渐排除盐巴的干扰。当然,这次PK活动使用的密码没有被掺盐。

  经过第一轮的摧枯拉朽,10,233个hash密文已经告破,进入第二个阶段,黑客开始采用「混合破解的策略」。就和之前提到的游戏通关的比喻一样,随着难 度的增大,第二阶段需要花费的时间会大大增加,而且战果也会减少,准确的说,只有2,702个密码告破,耗时5小时又12分钟。

  就和名字一样「混合破解法」,结合了暴力穷举和字典破解两种路数,这大大拓展的字典所涵盖的组合种类,并且把组合数量控制在能接受的范围里。第一轮,黑客在 所有字典条目的后面,加上两个随机字符包括符号和数字,这样在11分25秒内,有破获585个密码。第二轮加上3个随机字符,耗时58分钟,得到527个 结果,第三轮再接再厉,加上四个随机数字,25分钟内又得到435个密码明文,第四轮,加上四个随机字符包括一个数字和三个小写字母,再斩获451个密码 明文。

  面对可观的战果,Gosney认为,这只用了一张GPU卡的结果而已。

  「你注意到我们只加上了2~3个长度的随机字符,但到4个长度,我们只能用数字了,因为只有1块显卡的GPU,想要跑完+4位随机字符和数字的组合会耗费很长时间,所以我只能放弃。」


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部