让我们假设一个简单的非加盐哈希函数,只是一个普通的 old $hash = md5($pass)
。
前提:
- 密码散列全部发生在服务器端,散列存储在数据库中。客户无法看到这些。
- 彩虹表攻击必须知道哈希值才能检索密码。
鉴于前提 2.,这意味着黑客已经控制了数据库,此时您手头的问题要大得多。
因此,试图阻止彩虹表攻击只是为了保护从已经受损的数据库/系统中检索密码的目的。是这么简单还是我还缺少其他东西。
我已经熟悉密码散列技术,但我只是想知道为什么有这么多关于彩虹表的炒作。谢谢!
让我们假设一个简单的非加盐哈希函数,只是一个普通的 old $hash = md5($pass)
。
前提:
鉴于前提 2.,这意味着黑客已经控制了数据库,此时您手头的问题要大得多。
因此,试图阻止彩虹表攻击只是为了保护从已经受损的数据库/系统中检索密码的目的。是这么简单还是我还缺少其他东西。
我已经熟悉密码散列技术,但我只是想知道为什么有这么多关于彩虹表的炒作。谢谢!
是的。
许多人对所有事情都使用相同的密码。破坏原始密码(而不是简单地将其更改为您知道的密码)通常可以让攻击者访问其他服务上某人的帐户。
与字典攻击(需要散列)或蛮力(需要更多散列)相比,彩虹表的计算密集度(简单查找)也少得多。
使用强而独特的密码!
大多数时候,从数据库中窃取数据是通过注入成功的。有时甚至是盲注。
在您的一个脚本中发现数据库注入漏洞的攻击者无法控制系统的其余部分,直到他能够检索某种更高的凭据(可能是管理员的密码)。
如果您(作为管理员)将您的密码与其他用户一起存储为一个简单的 md5() 哈希,并且攻击者设法检索它 - 他最终可能会通过使用彩虹表查找它来超越您的系统。
如果我理解正确,彩虹表消除了计算哈希的计算负担(故意很高),因此攻击速度更快。