你的位置: iPc 首页 > 全部文章 > 杂乱无章 > 阅读文章
科学X网    Office    苹果中国    微软中国    VPS

用户密码薄如纸 - 并不是因为又臭又长就安全,而是因为没人惦记你

31
五月

现在世界上所有的黑客猜密码的时候,都会试试“对马电池订书钉”(correcthorsebatterystaple)这个密码。可能各位网友看了题图和这句话后,会有点懵。其实“对马电池订书钉”出自 XFCD 发表的漫画名为“密码强度”……

对马电池订书钉

“对马电池订书钉”图解:

对马电池订书钉

但是……这幅漫画显然太低估黑客们的实力了:

对马电池订书钉本周,Ars 网站邀请了三位黑客破解了16,000多个 hash 过的密码成功率90%!

黑客告诉你,你的密码不是因为又臭又长就安全,而是因为没人惦记你,所以暂时安全。

咳,然后是献给好学网友们的正文:

3月,博客作者 Nate Anderson,下载了一份侧漏的暴库密码表,内含超过16,000个 hash 过的真实密码,经过百度知道的简单培训,结果只花了大概能煎3个蛋的功夫,破解了其中一半的密码。这给所有人提了一个警醒:如果一个没有经过任何训练的网友,就能达到这个程度,想一下一个职业黑客能搞出多大动静。

不用自行脑补了,我们请来了三位职业黑客,使出浑身解数,来破解 Anderson 练手的那份密码表,展开了终极 PK。你会看到包括数字,大小写,标点符号的长密码是如何被快速破处出的。

这份密码表里总共有16,449个 hash 过(MD5)的密码。任何负责的网站,都不会明文存储用户的密码信息,而是用 MD5 加密,这种加密过程是不可逆的,也就是说,就算拿到MD5密文,也不可能直接“反求”出原文。比如“passwd” 被 hash 过以后,密文是“5f4dcc3b5aa765d61d8327deb882cf99”。

虽然 Anderson 的47%破解率已经非常不错,但对于职业黑客来说,还是不足挂齿。为了证明这点,我们请来他们来演示一下,说真的,他们没有让我们失望。就算三个里成绩最差的一个——他用最弱的硬件,花了一个小时,用最小的字典,中间还接受了一次采访,也搞定62%的密码,而最好成绩是90%。

这个三人黑客团队包括一名密码破解软件专家,一名安全顾问,和一名匿名自由黑客。其中最牛的一名黑客是来自S.C.G., 使用一台只配置一块 AMD 7970 GPU 的家用电脑,花了20小时破解了90%,共14,734个密码。免费 GPU 密码破解软件 oclHashcat-plus(参加测试的黑客都使用这款软件)的开发负责人,Jens Steube 也取得了不俗的成绩,他在一个多小时的时间里,用一台双 AMD 6690 GPU 的机器,搞定了 13,486个密码,占全部的82%!另外一名诨号 moniker radix 的黑客,用一块 AMD 7970,搞定62%的密码,也差不多花了1个小时,如果不是被我们打扰接受采访,他应该能取得更好的成绩。

黑客穷举破解密码所用的“字典”里,包括了很多密码明文,这些常用的密码字符组合,来自于很多大型网站的用户数据中,包括像“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位随机字符和数字的组合会耗费很长时间,所以我只能放弃。”

毫无疑问,说这话的 Gosney,已经用这台 25GPU 交火的怪兽机搞过更长的密码,他在去年10月透露了这台名叫“镭池”机器:

用户密码薄如纸

用户密码薄如纸

因为 GPU 的并行运算能力是随着运算单元的增加而线性增长,这让 Gosney 很好地利用这些资源,让他能在每秒获得350亿次的运算速度,去挑战微软的 NTLM 加密算法。

关于本文
各种回音
  1. 说: 回复他/她

    其实想要一个无法破解的密码很简单,关键是…你要能记得住啊!

  2. 说: 回复他/她

    说到底。我到底要设置神马密码?

    • 说:

      设置神马密码?也没用,设置16位以上的大小写+数字+特殊符号就够了,一般人破解不了,(黑客也不会去破解你的,因为你的东西对他无用)

  3. 说: 回复他/她

    墙只挡不来的人

  4. 说: 回复他/她

    我的数字密码要么是圆周率小数点后第几位到第几位(我背过了54位,在这个范围之内),要么是某个字用九宫手机按键按出来的顺序。复杂密码门道就多了,中西合璧外加特殊字符,然后再用鼠标点着在第几位和第几位后插入某数字。。。。这尼玛不是自己折腾自己么!

    • 说:

      至少是两年以前吧,那时候iPc还不是现在的iPc,有过一个密码技巧的文章,原理很简单,自己常用的密码很好猜也无所谓,只要设定密码的时候设成键盘位置全部左移或者右移一位,就变得完全无规律了。我也曾经用过,但是输入密码的效率低了很多….

  5. 说: 回复他/她

    好,这么长 我竟然看完了。只能说明 我喜欢这样的文章

    • 说:

      以前也看了这篇文章后来试了 发现记忆起来太难了 手机上根本就直接OUT了 还是密码简单的好 我喜欢简单有效的密码组合

  6. 说: 回复他/她

    如果单纯的穷举 确实需要很久的时间 但是这些黑客显然利用了社会工程学 这比单靠机器穷举快多了

    • 说:

      社会工程学运用是需要详细的信息的,单给你一份加密密码表,如何运用?连人是谁都不知道。

  7. 说: 回复他/她

    “不用自行脑补了,我们请来了三位职业黑客,使出浑身解数,来破解 Anderson 练手的那份密码表,展开了终极 PK。你会看到包括数字,大小写,标点符号的长密码是如何被快速破处出的。”——倒数第三个字是不是有点多余了

    • 说:

      233 (中文字)

    • 说:

      好搞笑

    • 说:

      //斜眼笑。。。

    • 说:

      =.= 为了促进世界和平与社会和谐,你至少要写一个中文字的说……

    • 说:

      好仔细。。。

  8. 说: 回复他/她

    什么破玩意。各种半通不通的语句。。。 前言不搭后语。。话说发之前能不能自己看一遍。 再摸着自己左心房说, 这B玩意真适合人类阅读吗?

    • 说:

      是啊,写或翻译这玩意儿的人肯定小学语文都没毕业,混乱的很。到底在表达什么?我真心没看懂,说的是用了高明的字典破解?那么到底能搞定多少位的密码?说了半天都没说清楚,我就问一句15位随机密码破解需要多久?
      另外,文章里面是不是说黑客能破解MD5和SHA-1了?明显是不可能的,王小云假破解了MD5都搞得轰动世界,你这小学语文没毕业的能破解?呵呵

    • 说:

      评论用得着这么搞笑吗

  9. 说: 回复他/她

    文章里面是不是说黑客能破解MD5和SHA-1了?文章太混乱,我真心看得不是很明白。
    破解MD5和SHA-1是不可能的,王小云假破解了MD5都搞得轰动世界,呵呵

    • 说:

      不是破解 是用电脑生成一个明文密码 然后对明文密码做md5加密 和密码表中的密码比较 如果相同 此明文密码就是md5对应的密码

    • 说:

      那就是密码字典对比法嘛,老早就有了,用得着写这么大一篇废话?

  10. 说: 回复他/她

    e0cc61ec3a95d88f038be4fc6b365a21来破解一个给我看看,写TM一大堆废话,回帖告诉原码是什么

    • 说:

      智商呢?

    • 说:

      你智商这么高,回帖原码给我噻?哈戳戳的。文章写得这么好,回帖原码是多少噻,回不了?那些这么多废话有毛用?

  11. 说: 回复他/她

    沙发?
    密码什么的。。不是特别重要的网站随便弄弄就好了嘛

  12. 说: 回复他/她

    要破便破,反正不重要

  13. 说: 回复他/她

    在大数据面前,一切都是渣,只有自定义算法算是安全

  14. 说: 回复他/她

    谁说MD5是不可逆的?它只是把密码替换成字符串。你看到了但无法直观的得到密码而已。www.md5.com是做什么的?

    • 说:

      无知不可怕,可怕的是无知且自大
      问问这个世界上哪个密码学家敢说目前MD5可逆??
      果然是无知者无畏

  15. 说: 回复他/她

    密码都会被破解,我们要做的是勤换密码,避免使用比如生日之类的弱密码。

  16. 说: 回复他/她

    我重要密码都用7z压缩,然后加长汉字密码……好破解不??

  17. 说: 回复他/她

    站长,你经常打破处这个词?

  18. 说: 回复他/她

    这么牛的配置不挖矿可惜啊

  19. 说: 回复他/她

    还记得早年天涯,CSDN等等网站薄库吗?
    呵呵,在这里什么密码都是浮云。断网才是王道。

  20. 说: 回复他/她

    理论上MD5是不可逆的,因为几组密码或其他码可以对应同一个MD5码。不要喷我,基于理论而已。

  21. 说: 回复他/她

    中文密码,无法输入只能粘贴。。。暴力破解都是对英文的吧

  22. 说: 回复他/她

    老天爷 是xkcd

  23. 说: 回复他/她

    dsfd 在

  24. 说: 回复他/她

    有短信校验码就可以了。