2014-10-10 409 views
1

今天我发现了一件令人难以置信的愚蠢 - 我的朋友用sha512算法散列用户密码而没有盐。我立即向他提出这个问题,但他说他想看到任何人在他的数据库中破解一个密码。我告诉他,如果没有散列,他的数据库很容易受到彩虹攻击,但他说没有人拥有这个sha512的大彩虹表,因为每个彩色表都有64个十六进制字符。我的朋友使用SHA512算法无密码哈希密码。我如何说服他说他需要加盐?

我如何说服他,他仍然需要加盐?有谁知道sha512的散列破解率是多少?我可以说,然后,它会采取这么多或那么多时间来破解所有的8名字符的密码等

+0

http://security.stackexchange.com/questions/51959/why-are-salted-hashes-more-secure – Grice 2014-10-10 20:05:14

+0

尝试对他的数据库进行字典攻击。 – Henry 2014-10-10 20:05:27

+0

这可能有助于http://stackoverflow.com/questions/6776050/how-long-to-brute-force-a-salted-sha-512-hash-salt-provided – Sorceri 2014-10-10 20:08:04

回答

5

请教各位朋友,如果他有任何在他的数据库中的以下散列:

b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86 
bc547750b92797f955b36112cc9bdd5cddf7d0862151d03a167ada8995aa24a9ad24610b36a68bc02da24141ee51670aea13ed6469099a4453f335cb239db5da 
adfb6dd1ab1238afc37acd8ca24c1279f8d46f61907dd842faab35b0cc41c6e8ad84cbdbef4964b8334c22c4985c2387d53bc47e6c3d0940ac962f521a127d9f 
3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2 
d404559f602eab6fd602ac7680dacbfaadd13630335e951f097af3900e9de176b6db28512f2e000b9d04fba5133e8b1c6e8df59db3a8ab9d60be4b97cc9e81db 
3627909a29c31381a071ec27f7c9ca97726182aed29a7ddd2e54353322cfb30abb9e3a6df2ac2c20fe23436311d678564d0c8d305930575f60e2d3d048184d79 
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413 
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f 
c70b5dd9ebfb6f51d09d4132b7170c9d20750a7852f00680f65658f0310e810056e6763c34c9a00b0e940076f54495c169fc2302cceb312039271c43469507dc 
0dd3e512642c97ca3f747f9a76e374fbda73f9292823c0313be9d78add7cdd8f72235af0c553dd26797e78e1854edee0ae002f8aba074b066dfce1af114e32f8 
401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429080fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1 
9719a6439375c9115e01dceda86e210e5f2d78a6cf3f4872997746832c4c0f58c5ae0923fabe5acfb923dfc94a117a7d444e453622912dfa193fc6636581f159 

在你想知道的情况下,这些都是SHA-512散列为passwordpassword1letmein123123412345123456abcabc123qwerty,分别asdfswordfish。如果你愿意,你可以很容易地find more likely candidates

然后请您的朋友阅读有关precomputed dictionary attacksrainbow tables

3

告诉他,可以用公用硬件计算出多少个数值。现在它是关于180 Mega SHA-512 per second

所以,你可以建立一个彩虹表...

  • 含一本英语词典所有单词(≈150'000)
  • 从电话簿所有名称(≈5'000'000)
  • 和6个地方(20'158'268'676)

2分钟字符的所有组合...!

然后我会告诉他,结果哈希值的长度与破解密码所需的时间完全无关。

即使是盐腌的SHA-512也不足以使密码安全,因为此算法速度太快。这就是为什么人们应该使用慢速算法,如PBKDF2的BCrypt和成本因素。

最后,我只是谷歌他的一些哈希,因为无盐虹雨表已经存在于互联网上。所以机会很好,你会发现其中一个较弱的密码。

我在关于safely storing passwords的教程中收集了所有这些信息。不应超过10分钟。

0

除了彩虹表之外,人们还可以使用简单的散列表,参见http://hashcat.net/oclhashcat/。只要问他估计他的用户密码能抵抗多久,如果你能以每秒20亿次的猜测进行攻击。

现代算法,如scrypt,bcrypt,pbkdf2,sha512_crypt(后者使用sha512,但是多轮)速度较慢,因此暴力攻击需要更长的时间。

所以你想要的不仅仅是说服他添加一个盐到他的sha512哈希,而是使用一个现代的“慢”算法进行密码散列。