如何检查密码是否在弱密码数据库中?

问题描述 投票:0回答:1

我正在考虑一个概念并提出一个潜在的密码安全检查解决方案。 假设有一个网站可以检查密码是否安全。

密码的安全性取决于是否在弱密码数据库中找到(如果用户的密码在数据库中,则说明该密码是弱密码)。该数据库存储弱密码的哈希值以及盐,但没有用户名。使用 SSL/TLS 和 HTTPS。

上述假设是不可改变的(可能碱中的盐可以被去除)。 以下可以修改。

目前,我设想的过程如下:

  1. 用户在网站上输入密码。
  2. 用户的密码与盐连接并使用 类似于 bcrypt(客户端哈希)的功能。
  3. 上一步的哈希值与盐连接在一起 使用 bcrypt(服务器端哈希)等函数再次进行哈希处理。

如何有效验证步骤3的哈希值是否在弱密码数据库中?服务器和数据库之间的通信应该是什么样的?

security hash passwords password-hash
1个回答
0
投票

有两种方法可以看到这一点:

  • 密码是否在列表中(现有技术
  • 密码是否符合复杂度要求

列表中的密码

互联网上已经有多个数百万个密码的纯文本列表。通过 bcrypt 等单向算法,使用一些盐来运行这些列表(或您可能拥有的任何列表),并存储结果。

提交密码进行验证时,对其运行相同的算法和盐并进行查找。

但是在这里使用 bcrypt 只是为了当你被黑客攻击时你不会再次泄露这些密码 - 无意冒犯。如果不是这样,以纯文本形式查找密码就可以了。

密码复杂度

您可以定义一组密码复杂性规则并根据该规则检查密码,但这本身并不是一个很好的信号。复杂性、密码管理器友好性、密码提示和其他实施细节将影响

身份验证强度,而这正是您想要优化的安全性。请参阅 NIST SP-800-63b 了解(很多)详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.