我有一个Web应用程序,我想通过使用传递NTLM进行身份validation进行身份validation。 然而,有一个问题,NTLMv2显然不能在这种情况下工作(没有应用程序存储相同的密码哈希)。
我使用本地组策略:计算机 – > Windows设置 – >安全设置 – >networking安全:LANpipe理器身份validation级别在一台客户端计算机(Vista)上启用NTLMv1。 我将其更改为发送LM和NTLM – 如果协商使用NTLMv2会话安全性。
这工作,我可以使用NTLMlogin到Web应用程序。 现在这个应用程序将被所有的客户端机器使用…所以我想知道如果我把这个策略推送给所有的人(但不是域控制器本身),安全风险是什么?
这是一个非常糟糕的做法,就像启用WEP保护您的WiFi,因为你有一个Windows 98的计算机将无法使用WPA2。 现在是2009年,如果你确实需要SSO,Kerberos才能正常工作。
我也认为网站的集成身份validation是一个不好的做法,因为当用户拥有多个帐户(我们使用单独的用户/pipe理帐户)时,往往会导致古怪的问题,要求您使用IE信任区域,并要求您使用IE浏览器或拨弄Firefox设置。
考虑到IE自2002年以来IE6出现并一直持续下去,或IE6出现的时候(即带外ActiveX补丁 ),你是否真的想承诺这个平台?
NTLM在NT4.0 SP4中被NTLMv2取代。 那是十多年前的事了 NTLM比LM更难破解密码,而NTLMv2更难。 Vista默认只有NTLMv2是有原因的。 彩虹表已经编译完整的LM密码空间,最后我听说NTLM空间的工作正在进行中。 NTLMv2尚未完成。
是的,这样做会增加安全风险。 他们是否与你有关系,是你自己的风险评估。
正如Adam和系统pipe理员所说,从安全的angular度来看,这是一个非常糟糕的主意(更不用说从传统的angular度来看,NT已经被replace了4天,NTLMv1可能会从Windows的未来版本中删除)。 如何使用Kerberos进行身份validation/ SSO? 它甚至比NTLM v2更安全,在双跳场景下工作,并将在可预见的未来得到支持(微软内部和外部)。
如果你有什么敏感的话,我不会这样做。
如果黑客窃听到您的NTLMv1 SMBstream量,他们可以使用像凯恩和亚伯与彩虹表 ( HalfLMChall可能是最快的)或RainbowCrack破解密码。 如果密码是七个字符或更less,这可以在一天内完成。
NTLMv2使用其他实时variables创build哈希,并使用MD5(不是64位DESencryption)的128位密码空间,因此需要花费更长的时间才能破解(更多的是在这里破解NTLMv2)。
NTLMv1还将密码本地存储在可用于validation的哈希中, 而无需知道原始密码 。 因此,如果某人可以拥有本地机器作为本地pipe理员,他们可以提取域pipe理员或域用户的散列,并在不知道密码的情况下获取可从服务器上下载的信息(更多信息请参见此处 )。
如果你真的想要去NTLMv1路线,那么我会确保所有的密码超过14个字符,并包括特殊字符。
是的,NTLMv1的一个问题是,它使用DES,现在被认为是弱的只有56位。 尽pipe如此,DES的破解在这一点上仍然很难。 但是还有另一个弱点。 在NTLMv1中,LM / NT哈希被转换成三个不同的DES密钥,然后被用来encryption挑战。 由于哈希值是128位,DES只有56位,所以第三个密钥只有16位,其余的都是零,这样就容易破解,同时显示两个字节的NT和LM哈希值。 NTLMv2改为使用HMAC-MD5来代替。 MS-CHAPv1也有同样的缺陷,尽pipe它与NTLMv2同时发生,MS-CHAPv2并没有解决这个问题。 我想知道为什么。
编辑:现在,CloudCracker有一个云MS DESv强制服务,利用MS-CHAPv2中的这个问题。