密钥拉伸算法与密码“散列”的限制

时间:2015-02-27 07:18:17

标签: security hash password-protection

为什么人们建议使用像bcrypt / pbkdf2这样的关键拉伸算法,这需要更长的时间来计算(故意),而不是使用更快的算法,这些算法也是安全的,比如salted sha-256或sha-512以及使用限制机制限制蛮力攻击?

限制不受CPU限制,并且会提供相同的延迟"对于普通用户而言仍然很快的暴力攻击。另一方面,bcrypt / pbkdf2是CPU绑定的,并且总是很慢。

1 个答案:

答案 0 :(得分:5)

当您使用键拉伸时,您可以为攻击者从数据库中窃取哈希值的情况做好准备。然后,攻击者可以使用GPU / CPU的全速启动脱机攻击和暴力破解密码。

只有绝对必要的代码才能计算哈希值,因为所有其他代码(如限制)都可以简单地省略。要设置每个哈希的最小时间,您必须使问题本身难以解决。这是关键的延伸,没有更便宜的方法来计算所有的哈希值,以获得类似的哈希值。

某些像BCrypt / SCrypt这样的算法是以某种方式设计的,因此很难用GPU解决这些算法。