一个CISSP告诉我,.NET类Rfc2898DeriveBytes今天不会通过安全审核,因为它仍然使用SHA1。它对SHA1的依赖--即使是迭代--使得它太容易受到暴力破解的影响。就我个人的理解和其他偶然发现这个问题的人而言,Rfc2898DeriveBytes是否仍然被认为是一种安全的密码哈希方法?沿着同样的思路,带盐但没有迭代的HMAC SHA256是否足够?
为了记录这一点,由于我被授权使用Rfc2898DeriveBytes以外的任何东西,而且我比从头开始使用自己的代码更清楚,所以我打算拆解Rfc2898DeriveBytes,使用SHA256而不是SHA1复制代码。
发布于 2015-07-08 19:01:14
Rfc2898DeriveBytes
实现了标准算法,称为PBKDF2,并在RFC 2898中定义(因此名)。该算法使用可配置的底层伪随机函数(通常为HMAC ),而HMAC本身依赖于可配置的底层散列函数,通常是SHA-1。虽然所有这些都是可配置的,但是给定的实现可能不那么灵活,实际上,Rfc2898DeriveBytes
总是使用HMAC,并且总是使用SHA-1作为SHA-1的底层函数。
如今,被统称为“审计师”的人们在看到任何涉及沙一的东西时,往往会哀号、抱怨、尖叫、嘲弄和绕圈子。这在科学上是没有根据的。目前,在所有已发表的“科学”杂志中,没有丝毫迹象表明在HMAC中使用SHA-1会很弱。已知的SHA-1中的弱点是关于不影响HMAC的碰撞(而且这些仍然是理论上的)。如果某个拥有CISSP的家伙坚持认为SHA-1实际上使PBKDF2更容易受到暴力的伤害,那么他应该去重新学习他的教训。
尽管如此,切换SHA-256并不是个坏主意,所以如果避开SHA-1是摆脱审计人员所需要的,那就去吧。
然而,必须指出以下几点:
https://security.stackexchange.com/questions/93435
复制相似问题