问题描述
我一直在考虑ASP Net Identity
中的密码哈希流。我发现version 3
使用PBKDF2
(HMAC-SHA256
默认使用10k迭代)。并将其输出存储在password hash column
的数据库中,该数据库显然不仅仅包含密码哈希。以下结构适用于第3版:
- 第一到第二个字节-> ASP Net Identity版本(在我们的示例中为v3)
- 第2到第5个字节-> PRF的4个字节(伪随机函数,在我们的情况下为HMACSHA256)
- 第10至13日-> 4个字节,包含盐大小(始终为16)
- 14日至29日-> 存储随机盐的16个字节
- 第30到第61-> 32个字节,其中包含哈希密码
问题是,我们将纯盐和密码哈希存储在同一数据库中。在这种情况下,恶意软件可以使用预定义的巨大词典和常用密码,计算出更新后的哈希值,并一一攻击密码。
我了解每个新的/更新密码都会随机生成盐,并且我们进行了许多迭代,使得PBKDF2相对较慢(每秒70k),但是无论如何,至少仍有机会对小密码进行攻击考虑当今计算能力的密码数量。
我肯定在这里错过了一些东西。帮助请找到答案: 为什么在计算密码哈希(假设来自证书)时,在哈希密码或某种私钥的顶部不使用加密,以使我们的密码哈希真正安全呢?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)