delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

05 Jun 2011

廉价GPU时代的密码策略

很久以前我曾经建议过别人使用足够长的一大串英文单词作为密码,现时这样做已经完全不能保障安全了。

Colin Percival最近在 一篇文章 中提到了这样的数据:使用价值 $10k 的 GPU 破解使用MD5的34位英文密码(例如"You will never guess this password")所需要的时间仅为两小时(如果使用专用的硬件,以$1M投资的ASIC可以在一秒之内完成破解)。如果密码长度不够长的话,采用了特殊符号的帮助也不大。足够复杂的8位密码,例如"6,uh3y[a"使用 $10k 的 GPU 破解只需10个小时。

因此,我认为现时应采取的密码策略应该是:

确保每个网站都使用不同的随机密码,这些密码的内容应包括大小写字母、数字__和__特殊符号,且密码不应少于12位。

确保每个网站都是用不同的随机密码尤其重要:因为你可能不知道哪个网站什么时候被人骇掉,即使其密码进行过hash处理,如果很短、不包括大小写字母/数字/特殊符号的,或者选用了不适当的hash算法(如MD5),仍然是会被穷举出来的。

我自己最近十年使用的密码生成器可以在 这里 访问。


Archived: 11 Comments

darasion | June 5, 2011 6:28 PM

RSA securID 神马的人手一份。

leafduo | June 5, 2011 8:56 PM

这样的密码如何记忆呢?

Xin LI replied to comment from leafduo | June 5, 2011 10:47 PM

之前Bruce Schneier大神曾经说过可以写在纸上,不过窃以为记不住的人活该被黑。

leafduo replied to comment from Xin LI | June 6, 2011 5:20 AM

你能记住几个 https://www.delphij.net/pwdgen.html 生成的密码?

Wenfeng CAI replied to comment from Xin LI | June 6, 2011 6:57 AM

这个,大牛们难道过了个百八十天还能记得着么?服了。
以前吧,我都是在一个私密文件里记下来,当然用一套心算的算法给变换一下。后来吧,靠,这个也会忘。感情早起随便想的变换算法太随意,不太固定,跟量子态一样,自己都测不准了。

Xin LI replied to comment from Wenfeng CAI | June 6, 2011 9:13 AM

我会写到一个地方备忘(加密),但是如果密码经常用的话应该是不会忘的。

Xin LI | June 6, 2011 9:24 AM

十一二个,主要我需要密码的账户也不太多,服务器完全是key认证。

sbilly | June 6, 2011 8:09 PM

我觉得反而是应该反思密码这种形式了

Xin LI replied to comment from sbilly | June 7, 2011 1:49 AM

我不这么认为,实际上真正的问题是如何从密码去计算正向计算需要时间但不太麻烦,同时还满足不可逆特性的对应的hash值。用 key 去验证是很重要的,但 key 本身用什么去保护?这个还是需要有个密码之类的东西的(我知道有人会说,那我从私钥里面抠一段背下来呢?那样你的私钥剩下的部分就得明文存放了,穷举人能背下来的部分不是太难)。

bility | June 8, 2011 5:18 AM

办法是死的,认识活的

银行卡的密码只有6位,还都是数字,够简单了吧

给你一台计算机去试试?实际的情况是24小时只可以试3个密码,为什么要单纯的靠弱智密码呢?用户是简单的。

Xin LI replied to comment from bility | June 8, 2011 11:12 AM

@bility 你说的那个是锁定策略,具体来说是银行还控制着密码验证这个过程的时候,它当然可以决定重试次数来提高猜测密码的成本;我说的是另外一回事:当有攻击者拿到银行的密码数据库之后,如果银行用的散列算法是MD5的话,基本上想知道谁的密码就可以秒杀了。