为什么 Keepass2 在添加另一个字符后会降低密码质量?

信息安全 密码管理
2021-08-26 13:16:25

在 Keepass2 中,我输入密码时发现位数下降了。为什么会这样?我使用了两个词,并通过用数字替换某些字母来混合它们。

2个回答

我没有查看 keepass2 源代码,但熵计算非常依赖于使用的模型。我的猜测是您的更改,导致 keepass2 在不同模型之间跳转,以了解其如何进行基础计算。如果未使用生成密码的方法,则给定密码的任何熵计算必然是不精确的。

例如,对给定密码建模的一种非常幼稚的方法,例如P@s$w0rd假设这是从一组 96 个可能的可打印 ASCII 字符中选择的 8 个随机字符,熵为 lg(96^8) ~ 52.7 位——a有点合理的密码(针对在线攻击或针对 bcrypt 等适当轮数的散列)。从可打印的 ASCII 中随机选择 8 个字符与P@s$w0rd任何其他密码(即使是看起来随机的密码)一样可能产生9MD10]'e..

但是,您确实可以看到生成此密码的熵较低。它基于一个非常常见的基本词 ( password) - 略微修改,平均每个字母可能有 4 ~4 个可能的突变(4 = 2^2 所以 2 位)。因此,作为 1000 个最流行的基本词之一(10 位熵)加上每个字母 2 位,总共大约 26 位熵——这是非常弱的。

因此,一些密码计算器会搜索可识别的模式来打折这种效果。他们可能会识别出更长密码中的模式或具有更大字符集的密码,这是他们之前无法识别的。例如,他们可能没有意识到这d@s$w0rd是基于密码(重复d被旋转p并且不使用任何大写字母)并且可能会给它比P@s$w0rd.

密码的熵不会与其长度成比例地增加。

由于密码的模式规律性增加或密码接近字典攻击易受攻击点,熵可能会降低。

这是使用 Google 密码强度估计进行盲测的结果。由于接近字典的弱点,测试的密码熵随着长度的增加而减少密码=黄色密码=黄色在此处输入图像描述