如何在变体中安全地重用密码?

信息安全 密码 密码管理
2021-08-21 18:22:02

记住很多密码是很困难的。很多人对所有事情都使用相同或一小组密码。

当然,这是非常不安全的。如果这样的密码被盗,攻击者可能会进入您的多个或所有帐户。

假设我有基本密码 Fo0b@rPW,我想在我使用的每个帐户中重复使用它。

Fo0b@rPW谷歌Fo0b@rPW脸书等等

这至少比重复使用相同的密码安全一点,但仍然很容易受到字典攻击。

如何以安全的方式更改单个密码,但我仍然可以记住每个站点的变体?

我的一个想法是在特定偏移处添加特定数字,例如:

Fo0b@rPWgo 2 og 4 le 6 ; Fo0b@rPWfa 2 ce 4 bo 6 ok 8 ; 等等。

编辑:
问题是,可以以纯文本形式获得一个密码的人能够找出其他密码。这意味着特定于站点的部分也必须成为熵的一部分。

现在,如果我使用某种复杂的算法,例如

取主机名的第一位。取那个数字的 dec ASCII 值的十字脚。从偏移量(crossfoot)插入一个长度为(主机名)的字符串反转该子字符串,如果偏移量是整数

就像是:

fo0b@rPWfac 12345678电子书
fo0b@rPWgoog 654321 le

1个回答

在安全方面,我们总是假设算法是已知的,因此向密码添加一些结构不会帮助您增加其熵(强度)。这是一个信息丰富的方面,因为这不是问题的主题。

假设您的“基本密码”具有足够的熵(足够强),您提出的方法实际上是相当安全的,前提是您使用此方法对密码进行哈希处理的所有站点。

您的方法的安全性取决于不能使用从一个被破坏站点获得的密码来访问其他站点。当您的密码被散列时,就是这种情况。

但是,如果一个站点不散列您的密码,或者其散列存在漏洞。整个系统是脆弱的。

您的系统实际上所做的是向系统添加“盐”。许多网站已经为您执行此操作,最佳实践需要它。所以你基本上在做的是添加你自己的盐,这可以帮助那些对密码进行哈希但不添加盐的网站。因此,与在任何地方都使用相同的密码相反,这会增加安全性,但不会很多。

因此,我不会推荐这种方法,并且会说密码管理器,即使他们确实有问题,也是解决密码问题的更安全的解决方案。