Answers:
这是一篇有趣的文章,网址为http://www.lockdown.co.uk/?pg=combi&s=articles,其中详细介绍了暴力破解不同长度和符号集的密码理论上需要花费多长时间。
您可能想要指出谁撰写了该政策,请参见Bruce Schneier的这篇博客文章。
这很好地说明了为什么密码强度是网络上任何人问题中最少的问题。
看一下这篇文章中被接受的答案。表明即使使用全部字符的8个字符的密码也需要大约10,000年才能破解!
如果将彩虹表的使用视为蛮力(观点有所不同),则对于8个字符,使用包含密码中所有字符的彩虹表,大约10秒钟。20个字符的密码(相同的字符,相同的彩虹表),少于30秒。问题是生成表需要很长时间。我的矿山只花了一个月的时间才在晚上处理3GHz的机器。另一方面,您只需要执行一次。
通过组合字符替换和使用短语,可以轻松解决尝试记住长密码的问题。即使是简单的“#Fr3ddy M3rcury#”,对于大多数使用来说也足够复杂,但非常容易记住。
考虑到可以记住八个字符的密码。20个字符的密码会被记录下来。
然后有人可以阅读它。
这完全取决于您使用的字符,因为这会改变您拥有的组合数量。假设8个字符:
字典词:
egrep“ ^。{8} $” / usr / share / dict / words | wc -l 15601
小写字母:26 8或208827064576
小写和大写字母:52 8或53459728531456
下,上和数字:62 8或218340105584896
添加标点符号和其他符号,暴力破解将需要一些时间。
这些数字是必须尝试的总组合。显然,黑客在获得密码后不会尝试每种组合,因此将其除以二即可得到所需的平均组合数。
较难的哈希值会导致更长的CPU时间来计算哈希值,因此总时间更长。约翰的一个例子:
基准测试:传统DES [64/64 BS] ...已完成 许多盐:真实的819187 c / s,虚拟的828901 c / s 仅一种盐:874717 c / s实数,877462 c / s虚拟 基准测试:BSDI DES(x725)[64/64 BS] ...已完成 许多盐:实际为29986 c / s,虚拟为30581 c / s 只有一种盐:29952 c / s实数,30055 c / s虚拟 基准测试:FreeBSD MD5 [32/64 X2] ...完成 原始:8761 c / s实数,8796 c / s虚拟 基准测试:OpenBSD Blowfish(x32)[32/64] ...完成 原始:354 c / s实数,356 c / s虚拟 基准测试:Kerberos AFS DES [48/64 4K] ...完成 短线:294507 c / s实数,295754 c / s虚拟 长:858582 c / s实数,863887 c / s虚拟 基准测试:NT LM DES [64/64 BS] ...完成 原始:6379K c / s实数,6428K c / s虚拟 基准测试:NT MD4 [通用1x] ...已完成 原始:真实的7270K c / s,虚拟的7979K c / s 基准测试:M $缓存哈希[通用1x] ...已完成 许多盐:12201K c / s实数,12662K c / s虚拟 仅一种盐:4862K c / s实数,4870K c / s虚拟 基准测试:LM C / R DES [netlm] ...完成 许多盐:358487 c / s实数,358487 c / s虚拟 只有一种盐:348363 c / s实数,348943 c / s虚拟 基准测试:NTLMv1 C / R MD4 DES [netntlm] ...完成 许多盐:510255 c / s实数,512124 c / s虚拟 仅一种盐:488277 c / s实数,489416 c / s虚拟
当然,这完全是学术性的,因为黑客只会打电话给您的秘书,告诉他们他们来自IT部门,他们需要密码才能输入某些信息,而您的强密码毫无用处。
当您能够在3次尝试后阻止攻击者(当他们通过网络攻击Web应用程序时)阻止攻击者时,就可以通过与客户端/服务器进行通信来获得安全性。在这种情况下,几乎任何长度的密码都可以被认为是足够的。
但是,如果内部人员使用散列的短密码来获取此数据库,并且能够绕过3次尝试的“网上”限制,则游戏将发生变化。
限制每个帐户尝试次数的警告是,这仅足以针对一个特定帐户进行有针对性的尝试。您还需要使用给定(或排列的)密码来保护所有帐户免受攻击-仅限制每个帐户的尝试次数就不会触发任何警报。考虑到当今的NAT和僵尸网络,您甚至不能说限制每个IP的尝试次数是思考安全性的好方法。
其他答案已经提供了不错的阅读资源。