2014-10-10 405 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哈希,而是使用一個現代的「慢」算法進行密碼散列。