我的朋友在没有盐的情况下使用SHA512算法散列密码。我怎么说服他需要加盐?

时间:2014-10-10 20:02:11

标签: security hash passwords sha512

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

我如何说服他仍然需要加盐?有谁知道sha512的哈希破解率是多少?我可以争辩说,要花费这么多或者那么多时间来破解所有8个字符密码等等。

3 个答案:

答案 0 :(得分:6)

问你的朋友他的数据库中是否有以下任何哈希值:

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

如果您想知道,那些是passwordpassword1letmein1231234的SHA-512哈希值,分别为12345123456abcabc123qwertyasdfswordfish。如果您愿意,可以轻松find more likely candidates

然后让您的朋友阅读precomputed dictionary attacksrainbow tables

答案 1 :(得分: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分钟的时间。

答案 2 :(得分:0)

除了rainbowtables之外,还可以强制使用简单的哈希,请参阅http://hashcat.net/oclhashcat/。只要问他多长时间估计他的用户'如果每秒可以进行20亿次猜测,密码就会抵制。

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

所以你想要的不只是说服他在他的sha512哈希中添加盐,而是使用现代的"慢"用于密码散列的算法。