我发现很难相信Active DirectoryforWindows2008 R2中的密码仍然使用未加盐的MD4 (也称为"NT“)算法存储。
这真的是真的吗?
最近,我一直在修改对密码存储的理解,并学习如何正确使用PKDBF2。然后我想我应该查一下主要的商业组织使用了什么。那时我把头放在手里!Windows中未加盐的MD4。这是对LM散列的改进。还有很多其他的坏例子。/etc/荫蔽带一个像样的地窖是在主要商业/开放资源中唯一的良好实现。
MySQL的OLD_PASSWORD是可怕的,甚至新的密码只是未加盐的SHA-1两次。
一般的商业/开源行业真的有那么糟糕吗?
发布于 2011-07-07 18:41:37
NTLMv1使用MD4,v2使用MD5,Kerberos的Windows实现使用KDF,使用HMAC-SHA1实现AES 128/256。Active Directory实际上可以存储多种类型的密码哈希,具体取决于您希望它做什么,以及启用了哪些版本的协议。
是的,使用未加盐的密码。这是安全问题吗?理论上是的,但实际上可能不是。AD数据库设计为存储在受保护的环境中,只有受信任的人才能访问实际文件,而且只有受信任的系统才能读取文件中的数据。只有当包含密码的特定存储可以被可能不受信任的人和/或不受信任的系统访问时,salt才能真正增加价值,比如也包含内容的SQL数据库。如果您让任何人和每个人访问AD数据库,您有比密码盐更大的问题。
当然,它的另一面也是向后兼容的。微软必须确保当前版本的AD向后兼容之前的一个4个版本。这对保安有好处吗?不完全是,但如果版本不兼容,他们会被钉死在十字架上。他们在把哈希变换成更安全的东西吗?是的,虽然很慢。
发布于 2021-05-26 15:26:50
是的,Windows域控制器仍然存储未加盐的MD4密码散列,以便使用遗留的rc4-hmac-md5密码启用遗留的NTLM身份验证和Kerberos身份验证。
默认情况下,Windows还为每个密码存储三个Kerberos密钥:其中两个通过PBKDF2派生,一个通过基于DES的密钥推导方法派生。但是,未加盐的MD4哈希计算效率要高得多,因此通常用于密码破解。
您可能会争辩说,当攻击者能够从帐户数据库中窃取散列时,他们实际上不必破译任何密码。他们可以通过传递散列或金银票攻击来模拟任何用户。不过,我不同意这种观点,因为人们倾向于为不同的服务重用密码:损害组织的域名是一回事,但访问私人雇员邮箱也是另一回事。
我曾经进行过一次最五次的评估,我们从退役的遗留域获得散列,但是不能在新域中重用其中的许多哈希,因为新域中需要修改密码。然而,在破解了70%的遗留哈希之后,我们能够想出不同的明文密码(通过替换它们中的年份和月份号),使我们在新域拥有更高的权限。如果Windows使用了更强的密码哈希方案,这将更加困难。
https://security.stackexchange.com/questions/5071
复制相似问题