如果密码被泄露,“类似”的密码也会被泄露吗?

如果密码被泄露,“类似”的密码也会被泄露吗?

假设用户在站点 A 使用安全密码,而在站点 B 使用不同但相似的安全密码。也许mySecure12#PasswordA在站点 A 和mySecure12#PasswordB站点 B 上有类似的内容(如果有意义,可以随意使用“相似性”的不同定义)。

那么假设网站 A 的密码以某种方式被泄露……可能是网站 A 的恶意员工或安全漏洞。这是否意味着网站 B 的密码实际上也已被泄露,或者在这种情况下不存在“密码相似性”之类的东西?网站 A 上的泄露是纯文本泄露还是散列版本有什么区别吗?

答案1

首先回答最后一部分:是的,如果披露的数据是明文还是散列,情况会有所不同。在散列中,如果你更改一个字符,整个散列就会完全不同。攻击者知道密码的唯一方法是暴力破解散列(这并非不可能,特别是如果散列没有加盐的话。请参阅彩虹桌)。

至于相似性问题,这取决于攻击者对您的了解。如果我在网站 A 上获得您的密码,并且我知道您使用某些模式来创建用户名或类似内容,我可能会在您使用的网站上尝试使用相同的密码惯例。

或者,在您上面提供的密码中,如果我作为攻击者看到一个明显的模式,我可以使用它将密码的特定于站点的部分与通用密码部分分开,那么我肯定会将该部分作为适合您的自定义密码攻击。

举个例子,假设你有一个超级安全的密码,比如 58htg%HF!c。要在不同网站上使用此密码,你需要在开头添加一个网站特定的项,这样你就有了这样的密码:facebook58htg%HF!c、wellsfargo58htg%HF!c 或 gmail58htg%HF!c,你可以打赌,如果我破解了你的 Facebook 并获得了 facebook58htg%HF!c,我会看到这个模式,并在我发现的你可能会使用的其他网站上使用它。

一切都归结于模式。攻击者是否会从密码的站点特定部分和通用部分中看出某种模式?

答案2

这确实取决于你想要什么!

确定一个密码是否与另一个密码相似的方法有很多种。例如,假设你使用密码卡,并且其他人以某种方式拥有相同的密码(或者只是知道您拥有哪个密码)。如果他们破解了您的一个密码,并且看到它只是密码卡上的一行,他们很可能会猜出(甚至可能猜对)您的所有密码都是以类似的方式从该卡中派生出来的。

但对于大多数情况来说,这根本不是问题。如果你在服务 A 上的密码与在服务 B 上的密码仅相差一个字符,并且两个服务都是安全的(例如,为你的密码存储加盐哈希,而不是直接存储哈希或明文本身),那么确定密码是否相似是“计算上不可行”的,更不用说它们有多相似了。

简短的回答是:如果您的密码遵循某种模式,那么是的,一个密码的泄露很可能会导致其他密码的泄露。但是,这并不意味着这样做是可行的。只要您:

  1. 切勿对多项服务使用相同的密码,
  2. 在密码生成过程中引入一些随机元素(即使只是一点点),并且
  3. 切勿以明文形式传输或保存密码

你应该没事。记住,不同的服务要使用不同的密码——不要对所有服务都使用相同的密码,甚至不要使用两次相同的密码。重要的是要警惕那些在存储用户数据(如密码)时拒绝遵循最佳实践的愚蠢公司。

答案3

我的简短回答是是的。例如:strongpassword+game.com 被盗用,

如果我是一名攻击者,我很容易就能理解你使用的模式并在其他网站上尝试。例如 strongpassword+paypal.com

啊!……

为了解决这个问题,我个人使用:

hash ( strongpassword+game.com )
hash ( strongpassword+paypal.com )

使用有关哈希的数学属性(我使用 sha1),知道第一个密码后很难发现强密码和第二个密码。

如果您想了解更多详细信息,我撰写了一篇有关密码安全的博客文章,其中准确回答了您的问题:

http://yannesposito.com/Scratch/en/blog/密码管理/

我还制作了一些工具以便更轻松地管理我的所有密码,因为您需要能够更改泄露的密码、记住密码的最大长度等......

答案4

这取决于您担心什么。对于使用一个站点的凭据对其他站点进行大规模、自动化攻击,攻击者将首先攻击最容易的部分——使用完全相同密码的人。一旦用尽了这一点,如果攻击仍然没有被注意到,攻击者就会寻找他认为是常见模式的东西——可能是基本密码 + 站点之类的东西。

一个聪明的攻击者确信她最初的攻击(获取您密码的攻击)没有被发现,会在使用她挖掘的密码之前进行此处理。在这种情况下,任何可预测的修改都是危险的,具体取决于攻击者的明显程度。

如果你的密码是前缀加上随机元素,攻击者怀疑这一点,攻击者在另一个网站上拥有您的密码哈希值,他们可以更快地获取您的其他密码。

您可以通过散列一些可预测的内容来创建密码,但如果这种做法变得很普遍,或者您受到攻击者的个人关注,那么这也无济于事。从某种程度上来说,密码强度是流行度套利的问题。

tl;dr不要做任何确定性的事情。

相关内容