为什么在很多情况下低熵密码被认为是可以的?

信息安全 加密 密码
2021-08-22 11:50:25

在谈论对称加密时,众所周知,56 位密钥非常弱。如果您将其用于加密,您将被认为是一个失败者,因为您无法在暴力破解中幸存下来。

然而,在谈论密码时,如今的标准是从键盘上的大约 94 个字符中选择大约 8 个字符。这转化为大约 94^8 个可能的密码,这意味着大约 52 位的熵。

现在,52 位显然小于 56 位。但不知何故,56 位密钥被认为是弱密钥,而 52 位密码被认为是安全的(即,许多系统强制您使用 8 个字符)。为什么会这样;我的意思是为什么当我们谈论密码时标准较低,但密码和密钥都受到相同类型的暴力攻击?

我知道人类会发现不可能维护 128 位密码 - 但是,我想知道是否有一些技术原因导致 52 位密码不会像 52 位加密密钥那样弱。

3个回答

“破解”网站上的密码不是subject to the same kinds of brute-force attacks加密密钥。除非您的来源是被破坏的数据库,否则您可以蛮力的速度受到网站的限制,这可能会引入基于来源的限制或阻止、尝试限制、引发标志等,这使得简单的蛮力更难做到。

但是,如果散列被泄露并且额外的熵微不足道,那么 8 个字符的密码是不安全的,正如@Lie Ryan所建议的那样。

密码(密码)和加密密钥是有区别的。两者都用于不同的目的。如果密码直接用作加密密钥,就像您描述的那样,它永远不会被认为是安全的。

在许多情况下,您可以看到 KDF 到位,以从用户密码(通常是PBKDF2(或者甚至更好的内存硬 KDF,即scrypt))派生加密强密钥这种方法还将限制攻击者对密码执行有效的暴力攻击的能力。一个例子可能是WPA2-PSK

上面的段落只是一个例子,以显示差异。可以有其他措施来防止对密码的暴力攻击(重试限制 - 通常在智能卡 (PIN)、验证码等中看到)。这取决于具体情况。但是,如果您掌握了密文,没有什么能阻止您尝试暴力破解实际的加密密钥,这就是为什么这个密钥必须是强大的。

对复杂性的要求取决于秘密的生命周期(以及秘密的价值)。如果生命周期因为过期和/或定期更新而非常短,则可能不需要相同级别的复杂性。

帐户锁定可能会立即缩短密码的使用寿命。如果攻击者能够在此发生之前仅进行 5 次猜测,那么即使是一个简短的数字 PIN 也可能就足够了:无论如何都不可能遍历整个密钥空间。

但加密的工作方式通常不同。如果攻击者能够截获并记录加密数据,他可能会“无时无刻”猜出正确的密码。即使从现在开始设置不同的加密密钥,也不会影响之前的加密数据。这就是为什么加密密钥往往会更加复杂。