【问题标题】:Are Rainbow Tables Attacks even a threat?彩虹桌攻击甚至是一种威胁吗?
【发布时间】:2011-05-12 19:25:00
【问题描述】:

让我们假设一个简单的非加盐哈希函数,只是一个普通的旧 $hash = md5($pass)

场地:

  1. 密码散列全部发生在服务器端,散列存储在数据库中。客户无法看到这些。
  2. 彩虹表攻击必须知道哈希值才能检索密码。

假设前提 2.,这意味着黑客已经控制了数据库,此时你手头的问题要大得多。

因此,试图挫败彩虹表攻击的目的仅仅是为了保护从已经受到威胁的数据库/系统中检索密码。是这么简单还是我还缺少其他东西。

我已经熟悉密码散列技术,但我只是想知道为什么有这么多关于彩虹表的炒作。谢谢!

【问题讨论】:

  • 想想你的用户。您想向他们解释他们所有的密码都被泄露了吗?问问 Gizmodo...

标签: security rainbowtable rainbowattack


【解决方案1】:

是的。

许多人对所有事情都使用相同的密码。泄露原始密码(而不是简单地将其更改为您知道的密码)通常可以让攻击者访问他人在其他服务上的帐户。

与字典攻击(需要散列)或蛮力(需要更多散列)相比,彩虹表的计算密集度(简单查找)也少得多。

使用强而独特的密码!

【讨论】:

  • +1,决定我不会在您所说的内容中大量添加任何内容。
【解决方案2】:
  1. 密码泄露不需要控制数据库。如果我闯入你的车并偷走一堆带有数据库转储的 DVD 怎么办?您确实备份您的数据库,对吗?
  2. 如前所述,人们对多个站点使用相同的密码。 HBGary 最近被 Anonymous 攻击时成为了受害者。一台存在 SQL 注入漏洞的服务器变成了更大的危害。
  3. 如果我可以访问您的数据库 5 分钟并获取哈希值,那么我现在可以访问您的帐户,直到您更改密码。
  4. 盐很便宜。
  5. 无论如何您都应该使用密钥派生函数,而不是盐。

【讨论】:

  • 您应该使用盐和密钥派生函数。事实上,PBKDF2 需要一个(基于密码的密钥的标准派生函数)......
  • 感谢第 1 点。我没有考虑到这一点。是的,我备份了我的数据库 :) 我也同意你的第 4 点和第 5 点。
  • @ircmaxwell -- 是的,我并不清楚。我的意思是“不仅仅是盐”。
【解决方案3】:

大多数情况下,从数据库中窃取数据是通过注入成功的;有时甚至是盲注。

在您的某个脚本中发现数据库注入漏洞的攻击者无法控制系统的其余部分,直到他能够检索某种更高的凭据(可能是管理员的密码)。

如果您(作为管理员)将您的密码与其他用户一起存储为简单的 md5() 哈希,并且攻击者设法检索它 - 他最终可能会通过使用彩虹表来超越您的系统起来吧。

【讨论】:

    【解决方案4】:

    如果我理解正确的话,彩虹表消除了计算哈希的计算负担(故意很高),因此攻击速度更快。

    【讨论】:

    • 实际上,计算哈希应该是非常低的负担(事实上,它是选择一个好的加密强度哈希函数的标准之一,它是)。您所说的负担是因为有很多尝试的可能性,而不是每种可能性都很昂贵(事实上,一些破解者可以散列超过 1500 万个密码每秒)。这就是为什么你应该stretch your keys 让他们更慢地暴力破解......
    猜你喜欢
    • 2011-06-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2012-03-21
    相关资源
    最近更新 更多