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 我将看到这种模式并在我发现你可能使用的其他网站上使用它。
这一切都归结为模式。攻击者会在您的密码的站点特定部分和通用部分中看到模式吗?
小智 11
这真的取决于你得到了什么!
有任意数量的方法可以确定一个密码是否与另一个密码相似。例如,假设您使用了一张密码卡,并且不知何故其他人拥有相同的卡(或者只是知道您拥有的是哪一张)。如果他们泄露了您的一个密码并且可以看到它只是密码卡的下一行,他们可能会猜测(甚至可能正确)您的密码都是以类似的方式从该卡派生的。
但是,对于大多数事情来说,这根本不是问题。如果您在服务 A 上的密码与在服务 B 上的密码仅相差一个字符,并且两种服务都是安全的(例如,为您的密码存储加盐哈希而不是直接哈希或明文本身),那么它是“计算上不可行的”以确定密码是否相似,更不用说它们的相似程度了。
一个简短的回答是:如果您的密码遵循任何一种模式,那么是的,一个密码的泄露很可能会导致其他密码的泄露。然而,这并不意味着这样做是可行的。只要你:
你应该没事的。并且记住,不同的服务总是使用不同的密码——不要简单地对所有内容使用相同的密码,甚至不要两次使用相同的密码。重要的是要防止愚蠢的公司在存储用户数据(例如密码)时拒绝遵循最佳实践。
小智 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/
我还制作了一些工具来更轻松地管理我的所有密码,因为您需要能够更改已泄露的密码,记住密码的最大长度等...