我需要实施一个“停止列表”以防止用户在新的在线服务中选择常用密码。
有人能在网上任何地方给我提供这样的列表吗?
编辑:请注意,我只是试图消除最常见的密码,而不是详尽的字典。当然,这补充了相当强的密码策略(长度、使用非字母字符等)。
谢谢。
答案1
如果客户要求对照已知错误密码列表进行检查,那么我可能会要求他们提供他们认为错误的密码列表。如果他们不能提供列表,那么我会按照其他人的建议采用密码复杂性规则。
答案2
旧的 Unix“破解”工具不是附带常用密码列表吗?我相信它有暴力破解和字典破解方法。
答案3
我觉得这个顾客需要被狠狠地教训一顿。:)
令人恼火的是,我可以理解甚至同情他们的出发点。但从长远来看,这种要求只会带来痛苦和麻烦(例如,我可以看到未来要求每年甚至更频繁地更新“已知常用密码”列表)。众所周知,密码复杂性要求在该领域是有效的,即使是最基本的复杂性要求(例如大写字母、小写字母、数字或符号中的任意 3 个)也会自动排除绝大多数字典单词。
另一个问题是,很多人会使用他们熟悉的东西作为密码。例如,社会安全号码可能满足复杂性要求(数字、字母和连字符,也许),而且肯定会绝不出现在任何假设的“已知常用密码”列表中,但也是不安全的,因为它是潜在破解者会尝试的事情之一(假设他们知道它或有办法获得它)。
我曾经使用过一项在线服务,该服务通过测量多种因素来衡量密码安全性:密码中每种字符的数量以及密码总长度。该服务会提供即时反馈,因此您可以根据其指标来判断您的密码是否安全。这种方法对我来说似乎更可取。
同样有吸引力的是使用诸如 OpenID 或 Microsoft Passport(或本周的任何名称)之类的服务,而不是自己实现。我非常怀疑那些要求用户对访问的所有内容进行单独登录的服务。主要的风险是用户需要记住的用户名/密码组合太多,以至于他们最终会把它们写下来,而且他们最终会对所有用户名和密码使用相同的用户名和密码,这样如果其中一个 - 只需要一个 - 被破解,那么所有用户名和密码实际上都会被破解。最弱链接规则在这里适用,只需打开旋钮即可。选择专门从事该领域的提供商是一件好事(您可以自由地专注于服务的细节,您有一个已知良好的身份验证机制等)。
答案4
为什么不直接执行良好的密码策略呢?比如至少 8 个字符、大小写混合、至少 1 个数字和 1 个非字母数字字符。除此之外,还有许多不错的字典可以与密码进行比较。