【问题标题】:How do I make sure a new password does not contain 3 or more characters from a previous password? [closed]如何确保新密码不包含旧密码中的 3 个或更多字符? [关闭]
【发布时间】:2014-10-20 13:30:42
【问题描述】:

安全办公室已更改安全密码的要求。我需要弄清楚如何做到这一点。必须防止新密码包含来自先前密码的三 (3) 个或更多字符的序列。我将所有以前的密码存储在一个表中。我们使用 MS SQL Server。在此之后,我还需要加密密码。

【问题讨论】:

  • 在表中存储普通密码远非安全。
  • 你用的是什么数据库
  • 记住:在表中存储密码(甚至是以前的密码)是邪恶的!这是您的安全团队应该解决的第一件事!
  • 不要使用真正的哈希工具和盐来加密密码,对其进行哈希处理。但这会阻止您实现此要求。
  • 好吧,我想他仍然可以保留以前的散列密码,并且在更改密码的那一刻,他会要求用户提供他以前的密码以使用旧的未散列密码。你试过reg ex吗?

标签: sql security passwords


【解决方案1】:

如果安全部门想要提高安全性,他们应该改用具有成本因素的慢速哈希算法,例如 BCrypt 或 PBKDF2。这比找到复杂的密码规则要好得多。

适当的哈希算法不允许对原始密码做出结论,因此您无法判断是否使用了相同的字符。如果您的应用程序能够找到相似之处,那么攻击者也可以这样做。所以找到相似之处的唯一可能是,在更改密码时询问旧密码(顺便说一句,这是件好事)。

不过,复杂的密码规则通常不会带来更安全的密码。人们无法记住大量的强密码,这样的规则会干扰好的密码方案。人们可以非常有创意地绕过这些规则,例如通过更改密码两次,或使用弱密码(如“Password-2014”)进行复杂规则或强制更改密码。通常,您最终会得到较弱的密码,而不是较强的密码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多