我的密码应该有多大不同?

信息安全 密码
2021-09-05 01:41:36

假设我使用记住一个长的高熵主密码,并为我的每个密码使用它的变体。

例如,如果我记得 tSaF4nWeACVkUU4 作为主密码并使用 tSaF4nWeACVkUU4t(以 at 和结尾)作为我的 Twitter 密码,并使用 tSaF4nWeACVkUU4g(以 ag 结尾)作为我的 Google 密码。

如果是这样的话,这是不好的做法,我应该在不同的密码中输入多少变化。

4个回答

您在不同的系统上使用不同的密码,因为您知道其中一些密码可能会泄漏。如果您的密码的熵足够高,那么它们不会通过暴力破解泄露,但它们仍可能通过其他方式泄露,例如服务器妥协(获取密码)、键盘记录器(获取密码) typed),... 使用不同的密码是一项损害遏制功能。为了使服务器妥协本地该服务器。

如果站点 B 的密码可以很容易地从站点 A 的密码中推断出来,如您建议的方法,那么您在损坏遏制方面失败了。密码以高熵开头对该语句没有任何影响。高熵是关于通过蛮力避免破坏(又名“字典攻击”)。但是,一旦发生另一种破坏,熵就不再相关。熵是衡量攻击者不知道的东西。如果攻击者可以获取您的密码,那么他就知道了所有密码,并且不再存在熵。我们已经过了那一步。

为了使损害遏制工作,知道您在站点 A 的密码必须不会产生有关您在站点 B 的密码的任何信息——这意味着两个密码必须随机生成并且彼此独立值得注意的是,虽然这意味着您不应该像您建议的那样做一些“密码推导”,但您也不应该拒绝站点 B 的候选密码,因为它们与站点 A 上的密码“差别不够大”:这样的拒绝规则也将帮助攻击者缩小他的蛮力努力。

(密码学驱动的从根密码派生的密码可能适用,但这些东西很微妙,无论如何,您都无法在脑海中运行它,这使具有简单派生规则的可用性优势无效。 )

在一个完美的世界里,这肯定是人类记住密码的绝妙方法。然而,世界远非完美。

您的方法的主要问题是,如果仅发现了一个密码(通过泄漏、猜测、破坏等),那么您的整个安全设备可能会崩溃——因为模式很难检测到。

回答您关于变异的问题;你应该有完全不同的密码。我知道这可能看起来很乏味,但考虑使用密码保险箱来包含您所有的个人密码,并简单地记住您的(不断变化的)主密码。

与在任何地方使用相同的密码相比,这几乎没有提供额外的安全性。使用多个密码的全部目的是防止一个密码泄露而损害多个帐户。

如果我得到你的 twitter 密码,我要做的第一件事就是尝试在谷歌上破解你的密码。很快就会发现用 g 替换 t 可以使它起作用,事实上,这可能是我在尝试随机排列之前尝试的第一件事。

如果您真的想要安全,每个密码都应该是完全唯一的,并且与您的其他密码无关。或者,您可以走到相反的极端,并在 oAuth 下尽可能多地进行设置。这将所有内容与相同的凭据联系起来,但也只提供了一项可以被破坏以获得密码的服务,并且还只提供了一个在检测到破坏时需要更改它们的地方。它仍然不如拥有一堆完全唯一的密码那么安全,但它更有用。

我的建议是,“不要”。您建议的方案容易受到暴力攻击。

相反,请使用移植到您使用的设备的密码数据库应用程序,它既可以生成复杂的密码,也可以为您自动填写密码。