为什么有些网站会阻止用户重复使用他们的旧密码?

信息安全 密码 密码策略
2021-08-25 23:25:11

我一直想知道为什么重用旧密码会那么糟糕。如果我们碰巧使用了以前使用的旧密码,那不应该是世界末日。

毕竟,我相信大多数时候我们更改密码并不是因为真正的威胁(通常是因为我们内心的偏执狂)。但是,虽然确实在某些时候,这些威胁之一将是真实的,并且我们将成功保存我们的帐户,但黑客不太可能存储不成功的密码并重试。

但正如我常说的,公司不会无缘无故地打扰成千上万的用户,对他们来说,利明显大于弊

但是,当我拍这张照片时,我不由自主地用手指遮盖了重要的细节,任何有完整画面头脑的人告诉我我错过了什么?(我的手指真的很大。)

4个回答

第一个问题是:为什么有些服务需要定期更改密码。答案是“风险缓解”。

公司治理要求根据风险管理计划定义 IT 安全策略。风险管理计划提出的问题之一是,如果风险发生,如何减轻风险。在密码的背景下,问题是我们如何限制密码泄露的损害。

如果系统管理员知道泄漏,则可以通知用户并且可以采取其他步骤。为了减少管理员不知道的密码泄露造成的损害,密码的生命周期是有限的,任何泄露的密码只能在很短的时间内使用。

因此服务需要定期更改密码。问题是用户真的不喜欢更改他们的密码。因此,用户在被迫更改密码时通常会更改两次——一次更改为临时密码,第二次更改为原始密码。这当然会使要求更改密码的策略的目的无效。

因此管理员接下来要做的就是存储最后两个密码并检查新密码是否与前两个密码不同。狡猾的用户通过更改密码三次来反驳这一点 - 两次临时密码并恢复为原始密码。

您可能认为用户不会为了不更改密码而费尽心思,但这就是实际发生的情况。我的一位管理员朋友曾经在一年后比较了他系统中的散列密码,发现几乎所有密码都是相同的——尽管密码策略强制用户每三个月更改一次密码。

因此管理员开始存储最后 10 个密码。用户使用固定密码加最后一位变化的数字进行反击,以 10 个密码为周期。因此,我们今天遇到了许多系统存储所有以前的密码的情况。

说了这么多,这些政策的真正价值是值得怀疑的。人类记住密码的能力有限,如果浪费在记住这些快速变化的密码上,它就不能用于在不同的站点上保存不同的密码(这更重要)。

因为官僚喜欢官僚。他们认为他们通过施加所有这些限制来增加价值。实际上,并没有那么多。目前尚不清楚要求人们定期更改密码或防止重复使用旧密码是否有任何价值。但你能做什么呢?

这些政策通常是由非技术人员强加的,他们不习惯以逻辑、系统的方式仔细考虑风险分析。如果感觉对了,他们就随它去。我可以理解为什么提出这种要求感觉是件好事:感觉就像你在“做某事”。当然,做某事总比没有好,对吧?无论如何,想法是这样的。(这种想法可能是错误的,但不要介意。)

或者,有时存在可能迫使系统管理员强加此类要求的外部合规性要求。这些合规要求实际上可能没有用或不明智,但如果它们存在,则别无选择:您必须遵守。

我想向您指出有关该主题的出色研究论文:

该论文检查了 75 个不同的网站,涵盖了广泛的受众和安全要求:从在线金融网站、政府网站、教育网站、商业和娱乐等。它调查他们的密码要求。

它有一些令人惊讶的发现。例如,安全敏感程度、受保护资源的价值和用户数量往往与网站密码要求的严格程度无关。正如论文所说,“互联网上一些规模最大、价值最高和受攻击最多的网站,例如 Paypal、Amazon 和 Fidelity Investments,允许使用相对较弱的密码。” 即使是那些因安全漏洞而损失惨重的网站,其安全要求也往往很薄弱。

这是为什么?这似乎有点令人困惑。

当发现政府和教育网站往往有严格的密码要求时,该论文开始提供一些提示,但接受广告或每用户获得更多收入的网站往往有更宽松的安全要求。

论文最终得出以下结论:对于教育和政府网站,其用户别无选择。他们的用户不能叛逃到竞争对手的网站。因此,这类网站可以避免不必要的严格密码要求;他们没有动力去提高可用性。相比之下,用户可以选择的商业网站已经做出了自己的风险权衡,并认为严格密码要求的可用性损失超过了严格密码要求带来的任何适度的安全收益。事实上,即使是那些可能因安全漏洞而损失惨重的商业网站——例如,网上银行和金融网站——通常也有相对较弱的密码要求。如果您假设这些网站知道他们在做什么并且已经进行了成本效益分析,

这是一篇很棒的论文。你应该阅读它。

顺便说一句,我知道这篇论文谈到了强度要求,而不是密码更改策略或密码重用策略,但同样的结论同样适用于后者(实际上,强度更大)。密码强度要求确实有一些安全优势。相比之下,尚不清楚是否有任何合理的风险模型暗示强制更改密码(并防止重复使用旧密码)的策略有任何好处。这向我表明,严格的密码更改策略和密码重用可能没有意义。

让密码长寿也不错。

但是,有些人认为密码更新很重要,可以提高安全性。老实说,在理解该断言中的推理方式时,我有点不知所措。充其量,如果我们考虑到一些密码已经被盗,强制定期更改密码可能会有所帮助——更改所有密码就像表面清洁一样,是一种让糟糕情况变得更容易容忍的方法。

然而,如果系统管理员希望用户更改他们的密码,那么禁止密码重用是很合乎逻辑的:如果用户重用旧密码,那么他们并没有真正改变他们的密码。无论从密码更改中获得什么好处,都将被旧密码重用所抵消。

我基本上同意 Thomas Pornin 和 David Wachtfogel 所说的。我想补充的是,有时在某些应用程序中强制执行此策略是出于技术性不强的原因。例如,如果一家公司想要认证 PA-DSS 合规性,它应该满足某些要求:

The payment application keeps password history and requires 
that a new password is different than any 
of the last four passwords used.

PA-DSS

我最近看到了这样的实现。如果密码散列很弱(例如 MD5),我认为这可能会降低整体系统的安全性。此外,如果人们经常被迫更改密码,他们最终会将密码写在纸、笔记、文本文件等上。或者他们只是更改密码中的一位数字或字符。另一方面,PA-DSS 不会阻止使用弱算法来存储密码(例如 MD5、SHA2 哈希而不是 PBKDF2 或 bcrypt/scrypt)。

我真的找不到和理解任何支持此类政策的有力论据。