注意:这与编程没有明确的关系,但我希望这可以从程序员的角度来解释。
有两件事我根本不了解当前的'密码强度等级'。这一切都与蛮力进入有关。 (如果这些'密码强度等级'与任何其他类型的违规行为有关,除了使用普通/热门密码外,请告知我们。)
1)如果我包含数字/符号/大写字母,只要密码系统允许使用它们,为什么重要?
例如,我们只想说:
a)系统接受的字符是a-z,A-Z,0-9,以及它们的“移位值”'!'到')',所以72个可能的符号。
b)我使用长度为10的密码,因此有72 ^ 10种可能性。
c)我的密码不在最常用的10,000个常用/热门密码中。因此剩下72 ^ 10 - 10,000个可能性。
像'sndkehtlyo'这样的小写密码不会与'kJd $ 56H3di'具有相同的强度,因为它们都有相同的可能性来包含其他字符吗?无论我是否使用它们,蛮力算法都不必包括那些数字/符号/大写字母吗?似乎这些评级系统认为蛮力尝试将首先尝试所有26 ^ n小写密码,所有52 ^ n密码秒,然后所有62 ^ n密码等等。
2)为什么这甚至重要?我还没有遇到任何密码系统,在经过一些小的固定尝试次数(通常为5次)之后,它们不能锁定你。如今蛮力的方法怎么可能会起作用呢?
我觉得我错过了一些有趣的东西。
答案 0 :(得分:7)
1)破解密码不需要一次性完成。一个良好实现的强力破解可以首先通过小范围的字符迭代,然后进入大写和数字。从最简单的范围开始(可能只是小写的a-z)将找到那些不幸构建弱密码的密码。它们也可能首先使用字典攻击或最常见密码使用攻击,因为它们只占用很少的时间。
2)通过某些在线服务的登录提示,破解者不会暴力破解。任何真正想要访问帐户的人都会检索用户密码的哈希并在自己的机器上破解,而不是通过互联网。虽然有几乎无限的方法来散列密码,但有一些非常常见的方法可以通过诸如散列字符长度之类的属性来识别。您可以在this Wikipedia article中阅读有关常见哈希算法的更多信息。
答案 1 :(得分:2)
1)所有人为密码都不是完全随机的。换句话说,考虑到人为因素(例如可记忆性),密码空间的概率分布不均匀。
2)尝试次数限制用于身份验证,这是一种访问控制方式。它与密码强度无关。它是系统级控制方法,通常是可配置的。当然,它是防止暴力攻击的有效武器,但是仍然可以设计一种没有这种访问控制方法的系统。此外,黑客可能不会直接破解系统,但他们可以拦截来自网络的用户数据,其中包含加密密码或其他任何东西,并使用强力或其他方式来破解它。因此,高强度密码方案,高安全性加密方法和精心设计的访问系统可以共同构建一个强大的安全系统。
答案 2 :(得分:1)
一般来说,使用蛮力系统,你是对的。但是,许多自动密码破解程序通过尝试常见的英语单词及其组合开始搜索。例如:运动队,州,日期等等......因此,通过拥有这些特殊字符,它可以立即消除许多可能性。一般来说,如果你担心蛮力,一个更长的密码比一个有特殊字符的短密码更安全。