【问题标题】:Rainbow tables and John the Ripper [closed]彩虹桌和开膛手约翰[关闭]
【发布时间】:2023-04-02 21:37:01
【问题描述】:

我正在做一个 uni 项目,我必须展示工具“开膛手约翰”以及“彩虹表”的用法。

我玩弄了“开膛手约翰”的不同模式,并搜索了“彩虹桌”的概念。

问题是我无法理解这两个是如何连接的,如果可能的话,我如何在密码哈希的解密中使用我自己的“彩虹表”?

【问题讨论】:

    标签: hash passwords rainbowtable


    【解决方案1】:

    他们解决了同样的问题,但方向相反:

    • 像 JtR 这样的密码破解软件会动态地对大量候选明文进行散列处理,直到找到生成与目标散列匹配的散列的明文。如果没有候选明文产生匹配,那么原始明文还没有被发现并且哈希没有被“破解”。

    • Rainbow 表将给定的散列与 预计算 散列的大(但有限)列表进行比较。如果彩虹表中不存在匹配的哈希,则无法使用该表发现明文。

    这是经典的“时间/内存权衡”概念。破解需要更多的计算能力和时间,但需要更少的存储空间。彩虹表需要更少的计算能力和时间,但需要更多的存储空间(通常为 TB 大小)。

    而且由于现代 GPU 每秒可以尝试数十亿次未加盐的候选密码,因此彩虹表仅在非常特定且受限制的情况下比基于 GPU 的攻击更有用:

    • 密码的长度及其组成(是否需要特定字符等)是预先知道的,并且足够小,可以批量生成并存储在彩虹表中(通常不超过 9 或 10 个字符,取决于成分)
    • 密码可能是随机生成的(因为大多数非随机生成的候选者,其长度和复杂性要大得多,都可以在 GPU 上尝试)

    因此,除非您是一名渗透测试人员,并且知道高价值密码是随机生成的但也相对较短(这在实践中很少见),否则彩虹表在很大程度上已经过时了。

    为新目标动态“构建彩虹表”也没有任何意义,因为使用彩虹表的速度只有在构建之后才能实现。您可以简单地更快地通过等效的 GPU 攻击......并且仍然有 4TB 的磁盘空间可用于其他用途。

    【讨论】:

    • 注意:彩虹表适用于多个目标。您不想为单个目标构建一个。
    • 感谢您的回答。我想知道我是否可以将 JtR(如果有命令或其他东西)与彩虹表结合使用,以便仅出于演示测试目的破解密码。
    • kelalaka,恰恰相反——你拥有的目标越多,彩虹表的效率就越低,破解的效率就越高(对于未加盐的哈希,唯一符合彩虹表的哈希类型)
    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多