彩虹桌和开膛手约翰

Rainbow tables and John the Ripper

我正在做一个 uni 项目,我必须展示工具“John the Ripper”以及“Rainbow tables”的用法。

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

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

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

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

  • Rainbow tables 将给定的散列与 预先计算的 散列的大型(但有限)列表进行比较。如果彩虹 table 中不存在匹配的散列,则无法用该 table.

    发现明文

这是经典的“time/memory权衡”概念。破解需要更多的计算能力和时间,但存储空间更少。 Rainbow tables 占用的计算能力和时间更少,但存储空间更大(通常为 TB 级)。

并且因为现代 GPU 每秒可以尝试数十亿个未加盐的候选密码,所以彩虹 tables 仅在非常特定和受限的情况下比基于 GPU 的攻击更有用:

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

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

为新目标即时“构建彩虹 table”也没有意义,因为使用彩虹 table 的速度只有在 [] 之后才能实现=34=] 已经建好了。您可以简单地 运行 更快地通过等效的 GPU 攻击...并且仍然有 4TB 的磁盘 space 可用于其他用途。