是否有任何关于密码复杂性策略如何提高或降低密码质量的研究?
如果您对密码没有任何要求,那么可能 90% 的用户会使用他们的姓名或其他不安全的东西,但他们不会那么容易忘记密码。
但另一方面,如果您必须拥有包含大小写字符、数字和特殊字符(如 )的密码,则会! % €
增加用户忘记密码的问题(以及相关的支持成本)。
那么有关如何创建密码策略以帮助用户创建他们可以记住但仍然具有足够复杂性的密码的任何文档?
是否有任何关于密码复杂性策略如何提高或降低密码质量的研究?
如果您对密码没有任何要求,那么可能 90% 的用户会使用他们的姓名或其他不安全的东西,但他们不会那么容易忘记密码。
但另一方面,如果您必须拥有包含大小写字符、数字和特殊字符(如 )的密码,则会! % €
增加用户忘记密码的问题(以及相关的支持成本)。
那么有关如何创建密码策略以帮助用户创建他们可以记住但仍然具有足够复杂性的密码的任何文档?
Matt Weir 在 Reusable Security: New Paper on Password Security Metrics和CCS Paper Part #2: Password Entropy中介绍了一些与策略相关的链接和最近的研究以及破解密码的实际阻力
一个快速的结论是:“强迫用户每六个月更改一次密码并不是很有用”
另请参阅此处的其他问题,例如此问题。
密码通常被认为是从根本上被破坏的,因此任何密码策略充其量只是试图支撑事情。话虽如此,“最佳实践”密码策略通常至少包括以下要求,除了最小密码长度:
密码老化:
密码的最长使用期限,因此不会无限期使用相同的密码
密码历史记录,以阻止用户更改回以前使用的N个密码之一(因此实际上根本不会更改它)。
一些策略还会有一个最小年龄,以阻止人们更改密码N次(从而有效地绕过密码历史机制,并且根本不更改它)。
(请注意,这些控件中的最后两个是阻止用户尝试绕过第一个!这是密码被严重破坏的另一个线索)
密码复杂度:
通常,这些将包括对“特殊”字符的要求,或使用多个字符类别,目的是增加密码中的有效位数并增加暴力破解密码所需的时间。
制定一个不仅禁止字典单词(例如password)而且禁止字典派生单词(例如password123、drowssap321等)的策略也很有用。这里的目标是防止可以加速自动密码破解的字典攻击。
除此之外,还可以讨论各种其他要求和各种参数的确切值(用户必须每 90 天或 30 天或每 5 分钟更改一次密码吗?等),以及您获得/损失的熵量复杂性要求——但是在这些事情很重要的地方,密码几乎肯定不是一个足够好的控制。
这是一个小图:
以及支持它的研究。
据我了解,在安全性和可用性之间取得平衡是一场持续的战斗。理想情况下,用户应该尽可能使用最安全的密码,但他们中的许多人(可能全部)无法记住这些复杂的字符串。
根据我的个人经验,最安全的密码是短语或我知道的短语的第一个字母。通过这样做,它会创建一个看似任意的字母字符串(使用短语:您无法轻易猜出此密码 --- ycgtpve)。然后需要一个数字,它会创建一个难以提示的密码,不会轻易泄露。
就文档而言,我设法找到了一些有关创建强大密码的资源:
- http://technet.microsoft.com/en-us/library/cc736605(WS.10).aspx
本文概述了如何指导用户使用良好的密码实践。
这篇文章提供了很好的算法来创建容易记住的困难密码。
希望这可以帮助。