首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码安全

密码安全
EN

Security用户
提问于 2013-12-30 19:58:32
回答 4查看 1.3K关注 0票数 12

我被要求在一个网站的登录页面第一次更改我的密码。在输入新密码后,网页告诉我新密码与前一个密码没有多大区别。这是否意味着管理网站的公司不以安全的方式存储密码?或者,是否有一种方法来存储已加密的密码,但仍然能够发现前一个密码与新密码的不同之处?

EN

回答 4

Security用户

回答已采纳

发布于 2013-12-30 20:22:13

因为你刚刚输入了你的旧密码才能登录,一个网站可能会保留这个密码进行比较--非常简短--直到你在下一页完成密码更改。这是一个相当安全的原则,也是UNIX passwd实用程序检测到-类似的新密码的方式。

由于更改密码时询问用户当前密码通常需要这种方法,这种相似性检测方法可以很容易地应用于大多数密码更改场景中。

为了完整起见,这里还有一些不太可能实现的可能性:

  1. 该网站以明文形式存储您的密码。
  2. 该站点使用的哈希具有某种弱点,允许对散列密码进行有意义的比较(例如,Levenshtein距离的估计)。如果是这样的话,这是一个很大的弱点,也没有比用明文存储密码更好的了。
  3. 或者,密码可以存储在可逆转换中,例如加密。这不是保护密码的好方法:它通过密钥妥协打开了密码妥协的可能性,而且它并没有提供显著的好处,因为不需要使安全的密码转换可逆(这就是为什么我们通常使用哈希)。
  4. 当您输入新密码时,网站会散列一组新密码的小转换,以查看其中是否有与旧密码哈希匹配的。这可能是安全的。例如,假设站点知道您的旧密码哈希( Q )。当您输入新密码p时,站点将计算与p非常接近的密码的散列。如果您的新密码是xyzzy,站点可能会尝试散列ayzzybyzzycyzzy等,以查看它们是否与旧的哈希Q匹配。这似乎是一个很大的努力,特别是当站点使用的哈希算法非常适合密码(特别是,一个计算速度慢)。因此,即使这种情况是真的,它似乎表明,该网站使用哈希算法,不适合保护密码。

当然,我们不知道这些可能性中哪一种是真的--所有这些都很容易导致你所描述的行为。

票数 21
EN

Security用户

发布于 2013-12-30 20:22:04

这是否意味着管理网站的公司不以安全的方式存储密码?

一种可能的方式,他们可以这样做,通过比较你的新密码和旧密码,你提供了在同一(或上一)页登录到这个网站。请注意,即使网站存储密码的散列,您的纯文本密码在每次登录时都会提交给该网站。对于更改密码功能,他们可以在会话中临时保存它,以完成这些“如何远离密码”的计算。

如果他们就是这样做的,我看不出有什么问题。然而,如果他们真的是以某种方式逆转密码,那么他们肯定不是这样做的。

或者,是否有一种方法来存储已加密的密码,但仍然能够发现前一个密码与新密码的不同之处?

不,无法从其散列中检索纯文本密码或计算纯文本长度(考虑到它的散列使用了一个好的散列算法,不能强制执行)。

票数 3
EN

Security用户

发布于 2013-12-30 20:20:08

散列是一个过程,其中最小的变化提供一个完全不同的结果,是不可逆的。只有这样,他们才能比较你的旧密码和你的新密码,如果他们是存储你的密码,而不被哈希。

这并不意味着他们在不安全地存储您的密码:散列只是一种安全的密码存储方法。无论如何,散列密码并不能保证安全性,哈希表和彩虹表哈希密码可以相对容易地破解。只要它们是被加密的,并且它们周围的控制是健全的,那么你就会像合理地期望的那样安全。

这一切都取决于该公司的产品开发得有多好,这在这里是无法回答的。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/47840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档