【问题标题】:What exactly is a rainbow attack? [closed]究竟什么是彩虹攻击? [关闭]
【发布时间】:2009-06-18 13:49:05
【问题描述】:

我正在阅读一些关于盐和密码哈希的文章,一些人提到了彩虹攻击。究竟什么是彩虹攻击?预防它的最佳方法是什么?

【问题讨论】:

    标签: cryptography saltedhash rainbowattack


    【解决方案1】:

    维基百科的文章有点难以理解。简而言之,您可以将彩虹表视为一个包含预先计算的哈希值和计算它们的密码的大型字典。

    Rainbow Tables 与其他字典的区别仅在于条目的存储方式。 Rainbow 表针对哈希和密码进行了优化,因此在保持良好查找速度的同时实现了极大的空间优化。但本质上,它只是一本字典。

    当攻击者从您那里窃取一长串密码哈希时,他可以快速检查其中是否在彩虹表中。对于那些,Rainbow Table 也将包含它们是从哪个字符串进行哈希处理的。

    当然,散列太多了,无法将它们全部存储在彩虹表中。因此,如果哈希不在特定表中,那么黑客就不走运了。但是,如果您的用户使用简单的英文单词并且您只对它们进行了一次哈希处理,那么好的彩虹表很有可能包含密码。

    【讨论】:

    • 虽然不是流行的选择,但这是我一直在寻找的。我对盐和密码哈希有一点经验,但由于某种原因,直到今天我才听说彩虹表攻击。所有这些答案确实有助于澄清它。谢谢
    • “而且你只对它们进行了一次哈希处理”是什么意思?我可以理解加盐密码的价值,但是在递归地对它们进行 n 次散列(就像我有时看到的那样)有什么好处?
    • @Jeach - 它使暴力检查每个密码的速度变慢,并且您需要一个彩虹表,该表是根据递归哈希的确切数量制作的。
    【解决方案2】:

    当有人使用Rainbow table 来破解密码时。

    如果你担心这个,你应该使用Salt。还有一个Stack Overlow question 可以帮助你比维基百科更好地理解盐......

    【讨论】:

      【解决方案3】:

      这是外行人士的useful article on Rainbow Tables。 (不是说你是外行,但写得很好,简洁。)

      【讨论】:

        【解决方案4】:

        一般来说,您加密了大量可能的短明文字符串(即密码),并将加密值与明文一起存储。当您拥有加密值时,这使得(相对)简单地查找明文。

        这对于弱和/或未加盐的密码哈希最有用。一个流行的例子是LAN Manager hash,被 Windows 至 XP 的版本用来存储用户密码。

        请注意,即使像 LM 哈希这样简单的东西,预先计算的彩虹表也需要大量的 CPU 时间来生成并占用相当多的空间(大约 10 千兆字节的 IIRC)。

        【讨论】:

          【解决方案5】:

          Rainbow Tables 基本上允许某人存储大量预先计算的哈希值。

          这使得破解您的散列密码变得容易,因为无需执行一大堆散列函数,这项工作已经完成,他们实际上只需要进行数据库查找。

          针对此类攻击的最佳保护措施是在密码中使用盐(随机字符)。即不是存储 md5(password),而是存储 md5(password + salt),甚至更好的 md5(salt + md5(password))。

          由于即使使用彩虹表,也几乎不可能存储所有可能的加盐哈希。

          顺便说一句,显然您必须将您的盐与您的哈希一起存储,以便您可以对用户进行身份验证。

          【讨论】:

            【解决方案6】:

            聚会迟到了,但我也知道 Rainbow Tables 是一种攻击散列/未加盐密码的方法。然而,最近在 Twitter 上分享了@98​​7654321@,这取决于您的需求和顾虑。您可能无法安全地存储密码。

            我希望这对你有用。

            【讨论】:

              【解决方案7】:

              维基百科是你的朋友:

              http://en.wikipedia.org/wiki/Rainbow_table

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-06-01
                • 2011-06-28
                • 2013-07-04
                • 2019-08-28
                • 1970-01-01
                • 2015-01-10
                • 1970-01-01
                • 2013-02-17
                相关资源
                最近更新 更多