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

Mic*_*wan 37 security passwords password-protection

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

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

que*_*eso 38

首先回答最后一部分:是的,如果披露的数据是明文还是散列,那会有所不同。在散列中,如果更改单个字符,则整个散列完全不同。攻击者知道密码的唯一方法是暴力破解哈希(并非不可能,特别是如果哈希未加盐。参见彩虹表)。

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

或者,在你上面给出的密码中,如果我作为攻击者看到一个明显的模式,我可以用它来将密码的特定于站点的部分与通用密码部分分开,我肯定会定制自定义密码攻击的那部分给你。

例如,假设您有一个超级安全的密码,例如 58htg%HF!c。要在不同的网站上使用此密码,您需要在开头添加一个特定于网站的项目,以便您拥有如下密码:facebook58htg%HF!c、wellsfargo58htg%HF!c 或 gmail58htg%HF!c,您可以打赌破解你的 facebook 并获得 facebook58htg%HF!c 我将看到这种模式并在我发现你可能使用的其他网站上使用它。

这一切都归结为模式。攻击者会在您的密码的站点特定部分和通用部分中看到模式吗?

  • 你只是让我的默认密码“58htg%HF!c”没用,非常感谢 (4认同)

小智 11

这真的取决于你得到了什么!

有任意数量的方法可以确定一个密码是否与另一个密码相似。例如,假设您使用了一张密码卡,并且不知何故其他人拥有相同的(或者只是知道您拥有的是哪一张)。如果他们泄露了您的一个密码并且可以看到它只是密码卡的下一行,他们可能会猜测(甚至可能正确)您的密码都是以类似的方式从该卡派生的。

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

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

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

你应该没事的。并且记住,不同的服务总是使用不同的密码——不要简单地对所有内容使用相同的密码,甚至不要两次使用相同的密码。重要的是要防止愚蠢的公司在存储用户数据(例如密码)时拒绝遵循最佳实践。


小智 7

我的简短回答是YES。例如:strongpassword+game.com 被入侵,

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

啊!....

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

hash ( strongpassword+game.com )
hash ( strongpassword+paypal.com )
Run Code Online (Sandbox Code Playgroud)

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

如果您想了解更多详细信息,我写了一篇关于密码安全的博客条目,它完全回答了您的问题:

http://yannesposito.com/Scratch/en/blog/Password-Management/

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

  • @Hello71 你有这方面的资料吗?我很想读更多。 (4认同)