彩虹桌攻击是什么?如何理解?

2021年4月2日12:05:21 发表评论 908 次浏览

什么是彩虹桌?

计算机系统中的密码不会直接存储为纯文本, 而是使用加密进行哈希处理。哈希函数是一种1向函数, 这意味着它无法解密。每当用户输入密码时, 密码都会转换为哈希值, 并与已存储的哈希值进行比较。如果值匹配, 则对用户进行身份验证。

彩虹表是一个数据库, 用于通过破解密码哈希来获得身份验证。它是一个预先计算的明文密码及其对应的哈希值字典, 可用于查找哪种明文密码会产生特定的哈希值。由于一个以上的文本可以产生相同的哈希, 因此只要能产生相同的哈希, 知道原始密码的真实性就无关紧要。

Rainbow Table Attack如何工作?

彩虹表可以非常快速有效地进行密码分析。与蛮力攻击不同, 蛮力攻击通过计算与它们一起出现的每个字符串的哈希函数, 计算它们的哈希值, 然后在每一步将其与计算机中的哈希值进行比较来进行工作。彩虹表攻击通过已经计算大量可用字符串的哈希消除了这种需求。其中有两个主要步骤:

创建表格

在这里,一个字符串的散列被获取,然后被简化以创建一个新的字符串,这个字符串再次被重复地简化。例如,让我们创建一个最常见的密码表,12345678,使用MD5哈希函数对前8个字符::

  1. 首先, 我们获取字符串并将其通过md5哈希函数传递。
    hashMD5(12345678) = 25d55ad283aa400af464c76d713c07ad
  2. 我们仅采用前8个字符来减少哈希。然后, 我们重新哈希它。
    hashMD5(25d55ad2) = 5c41c6b3958e798662d8853ece970f70
  3. 重复此过程, 直到输出链中有足够的散列为止。这代表一个链, 该链从第一个纯文本开始, 到最后一个哈希结束。
  4. 获得足够的链后, 我们将它们存储在表中。

破解密码

从哈希文本(密码)开始, 检查其是否存在于数据库中。如果是这样, 请转到链的开头并开始哈希, 直到找到匹配项为止。一旦获得匹配, 该过程将停止并且认证将被破解。以下流程图说明了步骤:

了解彩虹桌攻击1

Rainbow Table攻击的优缺点

优点:

  1. 与暴力破解不同, 执行哈希函数并不是这里的问题(因为所有内容都是预先计算的)。在已经计算出所有值的情况下, 它简化为对表的简单搜索和比较操作。
  2. 不需要知道确切的密码字符串。如果哈希值匹配, 则字符串不是密码本身也没关系。它将被认证。

缺点:

  1. 存储表需要大量存储。
  2. 在已经计算出所有值的情况下, 它简化为对表的简单搜索和比较操作。

防御彩虹桌攻击

彩虹表攻击可以很容易地通过使用防止盐技术, 它是与纯文本一起传递到哈希函数的随机数据。这样可以确保每个密码都有一个唯一的生成的哈希, 因此可以防止彩虹表攻击, 该攻击基于一个原则, 即多个文本可以具有相同的哈希值。

防止预计算攻击的另一种技术是密钥扩展。使用此功能, salt, 密码和一些中间哈希值将通过哈希函数多次运行, 以增加哈希每个密码所需的计算时间。另一种称为密钥加强的方法是使用随机的盐扩展密钥, 但随后(与密钥拉伸不同)安全删除该盐。这迫使攻击者和合法用户都对salt值执行暴力搜索。因此, 没有必要绕过盐渍。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: