【问题标题】:Which user password parameters would make a secure Bcrypt password?哪些用户密码参数可以构成安全的 Bcrypt 密码?
【发布时间】:2015-12-15 20:20:05
【问题描述】:

这个问题与用户在创建帐户时输入的密码有关,例如,在某些网页上注册。

我遇到过要求用户输入大小写字母、数字和特殊字符的网站……有些网站走极端,要求用户遵守严格的准则。

所有这些真的有必要吗?

创建安全用户密码需要遵循哪些最简单、最少的规则?什么时候会变成安慰剂?

【问题讨论】:

  • 要求数字、标点符号、大小写混合等的规则可以防止用户使用一些非常糟糕的密码,比如password,但它们本身并不能防止几乎同样糟糕的密码,比如Passw0rd。这些限制让我们这些使用随机生成的密码(如vabisgwlnaoaeczi)的人感到恼火; vAbisgwlna0aeczi 并没有明显好转。
  • 这个问题主要不是基于意见的,因此off-topic?这个问题可能Information Security Stack Exchange上会更好。
  • @WaiHaLee - 这确实部分基于意见,但也有一些事实值得指出。

标签: passwords bcrypt


【解决方案1】:

复杂的密码规则通常不会带来更安全的密码,真正重要的是:

  1. 最小长度,即使您遵循存储密码的最佳做法,只要尝试每种组合,短密码也很容易被暴力破解。目前这意味着您应该接受不少于 8 个字符作为绝对最小值(越多越好)。
  2. 您可以采取的另一项措施是,维护最常用密码的列表并拒绝最常用的密码

人们无法记住大量强密码,复杂的规则可能会干扰良好的密码方案。如果好密码被其中一条规则拒绝,用户通常会切换到较弱的密码。

另一方面,即使是严格的密码规则也无法防止弱密码。人们可以非常有创意地绕过这些规则,例如通过使用像Password-2015 这样的弱密码(大多数规则都接受)。如果一个规则需要至少一个数字字符,它通常会以最后一个字符 password1 结束,这使得暴力破解并不困难。

如果您过度使用复杂的规则,您通常会得到较弱的密码而不是较强的密码。要改进密码,您可以鼓励您的用户发明一个密码短语,例如ILikeToSleepUntil8InTheEvening

【讨论】:

    【解决方案2】:

    根据受保护的内容(即真正需要的安全级别)存在很大差异。用 $ 评估您的需求。

    也就是说,很难想出规则来创建远离破解列表的密码。如果这是我的信息,如果我不需要安全性,我希望能够使用任何东西,包括非常愚蠢的密码。想出并记住好的/硬密码并不容易。让它变得非常困难,人们将开始依赖密码重置,这很糟糕。

    有密码列表,SecLists 可能是最大的汇编。看一看,你就会发现简单的规则是行不通的。

    有关 bcrypt 的信息,请参阅 How To Safely Store A Password

    虽然上面的网站说 bcrypt 是唯一不正确的选择,但另一个不错的选择 id PBKDF2(基于密码的密钥派生函数 2)是一个标准并且在大多数系统上都可用。

    【讨论】:

    • 感谢您的链接,我可以获得的有用信息是 brute-force 是关键字。但是,我不能接受这个答案(我期待一些关于创建用于登录网页的安全密码的指南,但在此之后这些指南已经过时了)但给它一个赞成票。
    猜你喜欢
    • 2016-05-28
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2013-05-19
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多