密码过期和合规性(ISO、NIST、PCI 等)

信息安全 密码 pci-dss 密码策略 iso27001 尼斯特
2021-08-14 08:19:16

我对 2017 年密码过期/轮换的想法感到非常困惑,尤其是与 ISO、PCI 等安全认证相关的想法。我一直在阅读密码过期不是很有用,但我发现了几个幻灯片似乎仍然是政策/规则的一部分(对于 ISO 和 PCI)。

有一个特定的部分对我来说似乎有点不自然,这是(假设您有一个强大的密码策略,我们已经有了)需要将旧密码哈希存储在您的数据库中,以防止用户设置当前过期时的旧密码。

我一直(错误地)认为过期是从社交角度来解决问题的,这是一种告诉用户密码很重要的方式。因此,新密码必须与当前密码不同,但无需检查历史记录。

我的直觉认为这是不安全的,但似乎大公司知道使用它来提供 UI 提示(尽管我认为可以公平地假设这些组织可能比小公司更好地控制他们的备份,其中错误的可能性更大)。

我读过一篇文章,其中似乎 NIST 将不再强制密码过期。无论如何,既然我的系统由于要求将有密码过期,我认为在某种程度上匹配这些认证中存在的要求是有意义的。

  • 2017 年这些认证(ISO、PCI 等)的密码过期/轮换状态如何?它仍然是他们的一部分吗?

  • 他们是否针对/提到了您必须存储的旧密码的数量/期限?

我无权访问任何原始文档,因为我们没有处于任何采用过程中,但即使一般来说,也很高兴知道。

2个回答

PCI DSS的当前版本是 3.2.1 *,在第 8.2.4 节中,它要求用户每 90 天更改一次密码。第 8.2.5 节要求密码不得与之前的四个密码中的任何一个相同(请注意,它没有规定如何完成;标准没有具体说明需要“存储哈希”。)

但是,该文档显然不是基于最先进的密码安全性,因为同一文档的第 8.2.3 节要求密码“至少为七个字符”并包括“数字和字母字符”。现代计算机可以运行密码破解软件,该软件将在几秒钟内暴力破解 7 个字符的字母数字密码。仅仅因为这个糟糕的要求,很难相信他们的任何密码安全要求都是基于研究的,或者是有效的。

也就是说,我们知道这个标准不够好并不意味着我们可以忽略它。无论如何,我们都坚持 90 天轮换政策,无论它是否为攻击者提供任何有用的防御,或者它是否使我们的用户面临不便或额外风险,因为我们有合同义务满足 PCI标准。相反,由于我们知道该标准在这方面是不充分的,我们需要做的是在我们的组织中实施负责任的安全策略,以解决已知问题(要求符合NIST 建议的其他草案的 14 个字符的密码)例如,在 5.1.1.2 中)仍然符合 DSS 的所有要求。拥有一个组织安全策略并遵循它是 DSS 的要求 12,它实际上是一个非常好的策略。

* PCI DSS 3.2 是 2017 年的最新版本。2018 年,该版本更新为 3.2.1,这是一个小更新,未更改密码建议。

首先回答您的问题,从 ISO 27001 的角度来看,它没有规定您的到期期限,也没有指定您应该保留多少旧密码。

相反,它提供了有关密码管理的通用指南。为了合规和满足审核员的要求,密码有效期最好不超过 90 天,并至少保留最后 2 个密码以防止重复使用。

ISO 27k1 明确提到我们应该“保留以前使用过的密码的记录并防止重复使用”,但它没有指定应该保留多少密码。

整个控制和实施都提到了这样的事情。

控制 A.9.4.3

密码管理系统应具有交互性,并应确保密码质量。

根据 ISO 27001,密码管理系统应该(添加我自己的评论)。

  • 通过强制使用个人用户 ID 和密码来维护问责制。

  • 用户应该能够在必要时选择和更改他们的密码,这基本上意味着用户可以控制他们的密码。

  • 包括确认程序,以便在用户登录错误时允许输入错误。

  • 强制执行高质量的密码,最好在您的密码策略中定义并在您的应用程序中强制执行。

  • 强制用户在首次登录时更改其密码,否则用户根本不可能更改其默认密码。管理员重置密码时也应强制更新密码。

  • 强制执行定期密码更改,理想情况下应该是 90 天或更短。审计员似乎更喜欢 30 天,但这可能太多了。

  • 保留以前使用的密码并防止其重复使用,但未指定应保存多少密码。

  • 输入时不会在屏幕上显示密码,这是合乎逻辑的。

  • 将密码数据与应用程序系统数据分开存储,尽管我不确定从架构的角度来看这是否实用。

  • 以受保护的形式存储和传输密码,例如用于在线应用程序的 SSL。