廉价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),仍然是会被穷举出来的。
我自己最近十年使用的密码生成器可以在 这里 访问。