你如何强制执行强密码?

时间:2008-10-03 17:12:14

标签: security passwords

有很多技术可以在网站上强制使用强密码:

  • 请求密码通过不同复杂程度的正则表达式
  • 自主设置密码,以便临时用户拥有强密码
  • 让密码过期

另一方面存在缺点,因为所有这些都会让用户的生活变得不那么容易,这意味着更少的注册。

那么,你使用什么技术?哪个提供最佳保护与不便比率?

要清理,我不是指银行网站或存储信用卡的网站。想想仍然需要注册的热门(或不那么热门)网站,请多考虑一下。

8 个答案:

答案 0 :(得分:24)

我认为不可能强制执行强密码,但您可以做很多事情来尽可能地鼓励它们。

  • 为每个密码评分,并以分数或图形栏等形式向用户提供反馈。
  • 设置最低密码分数以清除糟糕的
  • 列出要禁止的常用字词列表,或使用密码分数

我喜欢使用的一个优秀技巧是让密码的失效日期与密码分数相关联。因此,不需要经常更改密码。如果您可以向用户提供有关他们所选密码的生存时间的直接反馈(并动态更新它以便他们可以看到添加字符如何影响日期),那么特别

答案 1 :(得分:8)

不执行任何操作......如果您不保护财务信息或同等重要的内容,请不要使用户选择强密码。

我在需要注册论坛等的整个网站上都有相同的弱密码。我真的不在乎是否有人猜到它并且可以像我一样发布消息(并且不认为有很多动机有人这样做)。我不能做的是记住十几个网站的不同强密码,并且真的不想使用另一个软件来管理它们。

最好的妥协方案是向用户展示一些关于密码强度的反馈(根据字典是否为字典,不同字符数量,长度等)。

答案 2 :(得分:2)

为什么强制执行呢?

我发现“密码强度计”(在您键入时表示密码强度的条形码)通常是一种很好的非侵入性措施。它让那些关心安全的人对密码缺乏感到内疚,但却不会让那些不关心密码的人感到沮丧。

此外,还有一篇关于why periodic password change policy is a bad idea with today's threat model的精彩文章。

答案 3 :(得分:2)

根据我的经验,它确实取决于网站的类型,正如您所说。

如果您要创建银行或金融网站,则用户通常会了解您是否拥有更安全的密码,因为他们的个人数据可能存在风险。

但是对于通常不包含大量个人信息的网站,更简单的密码就可以了。他们可能不太容易进行黑客攻击,也不会得到任何有价值的东西。

我还发现大多数人似乎也经常使用一些密码。一个很复杂,另一个很简单。因此,要求他们使用复杂的密码通常不会让人们注册。

我从未发现过期密码能够成功运行。正如我之前所说,许多人已经拥有了他们经常使用的一组密码,因此要求他们仅为您的网站访问这些密码可能会让他们不想回来。

答案 4 :(得分:1)

最好的方法取决于您的网站和您正在使用的内容。但理想的方法是在提交之前尽可能多地在客户端做。使用RegEx是一种好方法。如果你可以让他们不必再提交表格,这是理想的。

答案 5 :(得分:1)

在让密码过期时,这种做法存在两个值得注意的问题:

  • 用户发现记住他们当前的密码更加困难,因此他们更有可能做一些愚蠢的事情,比如将它们写在贴在显示器上的帖子上。
  • 用户在每次尝试时都不会生成新的,强大的,无关的密码。大多数时候,他们使用一些方案来生成类似于旧密码的密码。因此,如果攻击者获得旧密码,他们仍然很容易推断出更新的密码。

编辑:这并不是说我反对整个想法,而只是需要与其他因素一起考虑。

答案 6 :(得分:1)

有一个Ajax工具,PasswordStrength,可以让用户知道他们的密码是否有用。我喜欢它,因为它不必禁止创建密码。

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/PasswordStrength/PasswordStrength.aspx

答案 7 :(得分:0)

我从来没有看到过这样做,但似乎它可以很好地工作:密码创建页面可以有一个可扩展的列表,例如,最多50个common passwords,迫使用户向下滚动在输入密码之前咬一下。结合Checkers的建议,这将有助于防止粗心的选择。

然而,解决了防止密码重用的问题......没有任何线索。

相关问题