使用哈希冲突来增强安全性



为给定范围(长度为 x 的字符串)创建一个包含所有可能哈希的彩虹表是一项艰巨的任务,但有些已经为 MD5 等方法编写了。因此,为任何给定的加密哈希编写已知冲突表肯定是一项指数级更大的任务?

是否有可能使用碰撞来帮助保护系统,因为它们比哈希本身更难找到?

也许不是因为这些很少,而发现的将是一小部分,实际上构成了一组非常小的排列,从中创建碰撞彩虹表?

只是大声思考。这有用吗?

通过 MD5 或任何加密哈希函数提高安全性的典型解决方案是迭代。

仅仅加盐对提高安全性几乎没有作用。而是使用随机盐迭代 HMAC 大约 100 毫秒的持续时间,并使用哈希保存盐。使用诸如PBKDF2(又名Rfc2898DeriveBytes)、password_hashBcrypt和类似功能等函数。关键是让攻击者花费大量时间通过蛮力查找密码。

这不是指数级的,而是攻击者的工作因素的大幅增加。我的笔记本电脑可以在 20 秒内执行 512 字节 SHA1 操作,因此 100 毫秒的工作系数增加了 5 个数量级。

最新更新