我读到Windows (可能不是新的开放源码软件,但比如说Windows 2008)使用NTLMv2协议(使用MD5哈希函数)使用哈希存储密码。我的问题是:众所周知,MD5是不安全的,因为它不能抵抗冲突。如何在Windows 2008服务器中使用?
发布于 2014-04-04 19:59:38
冲突与哈希函数与密码的大多数用法无关。对于密码哈希,预图像电阻是重要的,而不是碰撞的阻力。MD5's对预图像的抗性(几乎)和新的一样好。
但是,用于密码存储的MD5不是“单独”的选择,因为密码散列需要盐类和慢度,这两种特性都是MD5没有提供的。有关密码哈希的入门信息,请参见这个答案。
NTLMv2不使用MD5存储密码。存储的是一个名为“NT-散列”的“密码等效”值,它是带有MD4的密码的散列,而不是MD5。不,这并不弱;对于特定的用法,MD4仍然很好。至于MD5,它作为质询响应协议的一部分在HMAC中使用,但不用于存储的任何内容。
没有已知的攻击HMAC/MD5。已知的MD5弱点使“保证”无效:从数学上保证HMAC是安全的安全证明依赖于底层散列函数的压缩函数:该压缩函数必须是PRF。已知的对MD5的碰撞攻击表明,MD5's压缩函数不是PRF;然而,这并不会破坏HMAC/MD5。这只会破坏安全证据。HMAC/MD5不能“被证明是强大的”。它只是属于“我们不知道如何打破它”这一更广泛的范畴。
https://security.stackexchange.com/questions/54875
复制相似问题