我被要求在一个网站的登录页面第一次更改我的密码。在输入新密码后,网页告诉我新密码与前一个密码没有多大区别。这是否意味着管理网站的公司不以安全的方式存储密码?或者,是否有一种方法来存储已加密的密码,但仍然能够发现前一个密码与新密码的不同之处?
发布于 2013-12-30 20:22:13
因为你刚刚输入了你的旧密码才能登录,一个网站可能会保留这个密码进行比较--非常简短--直到你在下一页完成密码更改。这是一个相当安全的原则,也是UNIX passwd实用程序检测到-类似的新密码的方式。
由于更改密码时询问用户当前密码通常需要这种方法,这种相似性检测方法可以很容易地应用于大多数密码更改场景中。
为了完整起见,这里还有一些不太可能实现的可能性:
Q )。当您输入新密码p时,站点将计算与p非常接近的密码的散列。如果您的新密码是xyzzy,站点可能会尝试散列ayzzy、byzzy、cyzzy等,以查看它们是否与旧的哈希Q匹配。这似乎是一个很大的努力,特别是当站点使用的哈希算法非常适合密码(特别是,一个计算速度慢)。因此,即使这种情况是真的,它似乎表明,该网站使用哈希算法,不适合保护密码。当然,我们不知道这些可能性中哪一种是真的--所有这些都很容易导致你所描述的行为。
发布于 2013-12-30 20:22:04
这是否意味着管理网站的公司不以安全的方式存储密码?
一种可能的方式,他们可以这样做,通过比较你的新密码和旧密码,你提供了在同一(或上一)页登录到这个网站。请注意,即使网站存储密码的散列,您的纯文本密码在每次登录时都会提交给该网站。对于更改密码功能,他们可以在会话中临时保存它,以完成这些“如何远离密码”的计算。
如果他们就是这样做的,我看不出有什么问题。然而,如果他们真的是以某种方式逆转密码,那么他们肯定不是这样做的。
或者,是否有一种方法来存储已加密的密码,但仍然能够发现前一个密码与新密码的不同之处?
不,无法从其散列中检索纯文本密码或计算纯文本长度(考虑到它的散列使用了一个好的散列算法,不能强制执行)。
发布于 2013-12-30 20:20:08
散列是一个过程,其中最小的变化提供一个完全不同的结果,是不可逆的。只有这样,他们才能比较你的旧密码和你的新密码,如果他们是存储你的密码,而不被哈希。
这并不意味着他们在不安全地存储您的密码:散列只是一种安全的密码存储方法。无论如何,散列密码并不能保证安全性,哈希表和彩虹表哈希密码可以相对容易地破解。只要它们是被加密的,并且它们周围的控制是健全的,那么你就会像合理地期望的那样安全。
这一切都取决于该公司的产品开发得有多好,这在这里是无法回答的。
https://security.stackexchange.com/questions/47840
复制相似问题