彩虹桌,为什么?

时间:2013-12-27 09:55:27

标签: php mysql sql security hash

在密码安全的情况下,我经常读到,欢迎使用彩虹表。 有可能,我说得不对,但我目前的看法只是混乱。

在表中保存了几个salt,但是必须在表中使用password hash引用它们,这样可以重建密码哈希。所以我会这样做:

通过创建新密码,将哈希(输入+盐)保存到表

表格: 密码:哈希, 盐参考: 123

我想,这用于防止“字典攻击”,但是当用户使用字典包含的密码时会发生什么。攻击者可以很容易地通过。

只是一个包含事件的列表,这些事件正在我的观点中发生:

  1. 此登录数据中的用户/攻击者“类型”
  2. 查找电子邮件/用户名并返回盐参考
  3. 参考
  4. 查找盐
  5. 构建密码
  6. 使用电子邮件/用户名检查表中的密码
  7. 那么如果自动查找盐,盐怎么会重要? 这可能有点令人困惑,但最终它对我来说都很有意义。

1 个答案:

答案 0 :(得分:0)

  

那么如果自动查找盐,盐怎么会重要?这可能有点令人困惑,但最终它对我来说很有意义

你只考虑彩虹表的方法。如果有人在您的应用程序中发现一个漏洞利用以显示包含用户密码的数据库表,该怎么办?

当然,他们可以对被利用的表转储使用彩虹攻击,但是如果他们没有电源/资源会怎么样?

另外,请阅读以下内容;

  

在密码学中,salt是随机数据,用作哈希密码或密码短语的单向函数的附加输入。[1]盐的主要功能是防御字典攻击和预先计算的彩虹表攻击

     

Source

salt添加了“额外的安全层”,因为他们必须传入password + salt才能查看他们提供的密码是否是用户密码。< / p>

当然,你可以争辩说在数据库中持有盐会破坏这个目的,这就是为什么我包括混淆(一点点),并包括他们注册为盐的microtime(),这将保留在无论如何,registration_date列 - 在我脑海中。