我读上盐和密码哈希值和少数人的几篇文章中提彩虹攻击。 到底什么是彩虹攻击,什么是防止它的最佳方法是什么?
Answer 1:
维基百科的文章是有点难以理解。 概括地说,你能想到的彩虹表作为一个大字典,预先计算哈希值,并从他们所计算的密码。
彩虹表和其他字典之间的差别只是在条目是如何存储的方法。 彩虹表的哈希和密码进行了优化,从而实现了巨大的空间优化,同时仍保持良好的查找速度。 但在本质上,它只是一本字典。
当攻击者从窃取您的密码哈希值的一个长长的清单,他可以快速检查是否有任何人都在彩虹表。 对于那些,彩虹表也将包含它们从被散列什么字符串。
当然,也有太多的哈希将它们全部存储在彩虹表。 所以,如果一个哈希是不是在特定的表,黑客是出于运气。 但是,如果您的用户使用简单的英语单词,你已经散列他们只有一次,有一个大的可能性,一个良好的彩虹表将包含密码。
Answer 2:
这是当有人使用彩虹表来破解密码。
如果你担心这个,你应该使用盐 。 还有一个堆栈过低的问题 ,可以帮助你了解盐比维基百科好一点...
Answer 3:
这是一个关于彩虹表有用的文章上篮人。 (不建议你是外行,但它写得很好,简洁。)
Answer 4:
迟到了,但我也知道彩虹表是对散列/加盐的口令攻击的方法。 然而在Twitter最近http://codahale.com/how-to-safely-store-a-password/被共享,并根据您的需求和关注..你可能无法盐用自己的方式安全密码存储。
我希望这是信息给你。
Answer 5:
维基百科是你的朋友:
http://en.wikipedia.org/wiki/Rainbow_table
Answer 6:
从广义上讲,你加密了广大可能短明文字符串(即口令),以及存储加密值旁边的明文。 这使得它的(相对)简单简单地查找明文当你有加密值。
这是软弱和/或无盐密码哈希最有用的。 一个流行的例子是LAN Manager的哈希 ,使用的Windows版本高达XP以存储用户密码。
请注意,甚至一些为LM哈希作为简单的预先计算的彩虹表需要大量的CPU时间来生成和占地空间相当数量(IIRC千兆字节的10s的量级)。
Answer 7:
彩虹表基本上允许有人来存储大量的预先计算哈希可行。
这可以很容易地破解你的密码散列,因为不是执行的哈希函数整个堆,这项工作已经完成,他们几乎只需要做一个数据库查询。
针对这种攻击最好的保护方法是在你的密码才能使用的盐(随机字符)。 即而不是存储MD5(密码),商店MD5(密码+盐),或甚至更好的MD5(盐+ MD5(密码))。
因为即使有彩虹表,这将是几乎不可能存储所有可能的盐腌哈希。
顺便说一句,显然你有你的盐存储与您的哈希值,这样就可以验证用户。