长度小于20个字符的密码有多安全?

我最近收到了一个build议我的密码超过20个字符的build议。 用于encryption的algorithm是具有256位主键的AES。 如何安全的,比方说,8字符密码反对暴力破解encryption文件的暴力攻击?

我知道这在大多数网站上被认为是一个很好的密码大小。 其中一个原因是,他们可以在3次左右后停止攻击。

你可能想指出谁写了这个政策在这个博客文章从布鲁斯·施奈尔 。

这是一个很好的写法,为什么密码的强度是任何人在networking上的问题最less。

看看这个post中接受的答案。 显示即使是使用全angular字符的8个字符的密码也可能需要1万年才能破解!

如果您将彩虹表用作蛮力(意见不一),那么对于8个字符,使用包含密码中所有字符的彩虹表,大约10秒钟。 20个字符的密码(相同的字符,相同的彩虹表),less于30秒。 问题在于生成表格需要很长时间 。 矿用了大约一个月的时间才能在3GHz的机器上进行加工,只能在晚上进行。 另一方面,你只需要做一次。

试图记住长密码的问题很容易通过组合字符replace和使用短语来解决。 即使是“#Fr3ddy M3rcury#”这样简单的东西,对于大多数用途来说已经足够复杂了,但是却非常容易记住。

考虑一下八个字符的密码可能会被记住。 一个20个字符的密码被写下来。

然后有人可以阅读。

您可能对文章“ 密码与密码短语 ”感兴趣。 他们的结论是,一个9个字符的随机密码大约相当于一个6个字的密码短语。 但他们觉得一个6字的词组会更容易记住。

这一切都取决于你使用的字符,因为这会改变你有的组合的数量。 假设8个字符:

  • 字典词:

      egrep“^。{8} $”/ usr / share / dict / words |  wc -l
     15601 
  • 小写字母:26 8或208827064576

  • 大小写字母:52 8或53459728531456

  • 低,高和数字:62 8或218340105584896

添加标点符号和其他符号和暴力强制将需要一些时间。

这些数字是将要被尝试的总组合。 显然,黑客在获得密码之后不会尝试每一个组合,因此,除以二得到所需组合的平均数量。

哈希散列导致计算哈希的CPU时间更长,所以总时间更长。 约翰的例子:


标杆pipe理:传统的DES [64/64 BS] ...完成
许多盐:819187 c / s真实,828901 c / s虚拟
只有一种盐:874717 c / s实际,877462 c / s虚拟

标杆pipe理:BSDI DES(x725)[64/64 BS] ...完成
许多盐:29986 c / s真实,30581 c / s虚拟
只有一种盐:29952 c / s实际,30055 c / s虚拟

基准testing:FreeBSD MD5 [32/64 X2] ...完成
原始的:8761 c / s真实,8796 c / s虚拟

基准testing:OpenBSD Blowfish(x32)[32/64] ...完成
原料:354 c / s真实,356 c / s虚拟

基准testing:Kerberos AFS DES [48/64 4K] ...完成
短:294507 c / s实际,295754 c / s虚拟
长:858582 c / s真实,863887 c / s虚拟

基准testing:NT LM DES [64/64 BS] ...完成
 Raw:6379K c / s真实,6428K c / s虚拟

标杆pipe理:NT MD4 [通用1x] ...完成
原始:7270K c / s真实,7979K c / s虚拟

基准testing:M $caching散列[通用1x] ...完成
许多盐:12201K c / s真实,12662K c / s虚拟
只有一种盐:4862K c / s真实,4870K c / s虚拟

标杆pipe理:LM C / R DES [netlm] ...完成
许多盐:358487 c / s真实,358487 c / s虚拟
只有一种盐:348363 c / s真实,348943 c / s虚拟

基准testing:NTLMv1 C / R MD4 DES [netntlm] ...完成
许多盐:510255 c / s真实,512124 c / s虚拟
只有一种盐:488277 c / s真实,489416 c / s虚拟

当然这完全是学术性的,因为黑客只会打电话给你的秘书,告诉他们他们来自IT,他们需要他们的密码,而你的强密码是毫无价值的。

我使用非平凡的密码来保护

 *重要的资产
 *不受反击的东西(反复尝试后locking)
 *可以想象暴露于暴力/字典/混合攻击的东西

我不太关心我的Gmail账户,因为暴力破解密码的尝试只会locking账户(任何有权访问服务器的人只会用自己select的替代哈希,而不是试图破解它)。

最好的密码短(> 12个字符),密码随机。 但是,那些更难以记住。 因此,将多个单词与看似随机的字符组合在一起的密码短语可能是一个很好的折衷scheme(可能是您最喜欢的歌曲歌词的第一对情侣线的前1或2个字母)。

从通信客户端/服务器获得的安全性,例如正如你所说的,当你能够在3次尝试之后(当他们攻击networking时,像web应用程序一样)阻止攻击者。 在这种情况下,几乎任何长度的密码都可以被认为是足够的。

但是,如果一个内部人员使用散列短密码来抓取这个数据库,并且能够绕过3次尝试的“超网”限制,游戏就会改变。

注意限制每个账户的尝试次数是这仅仅是针对一个特定账户的有针对性的尝试。 您还需要防止对具有给定(或置换)密码的所有帐户的攻击 – 当您仅限制每个帐户的尝试次数时,这不会触发任何警报。 鉴于今天的NAT和僵尸networking,你甚至不能认为限制每IP的尝试次数是一个好的思考安全的方法。

其他答案已经提供了很好的阅读资源。