【问题标题】:I'm confusing between NTLM and NTLM (on network)我在 NTLM 和 NTLM 之间感到困惑(在网络上)
【发布时间】:2011-05-17 16:46:46
【问题描述】:

我正在对 Windows 密码进行一些研究,但我有一个小问题。

Windows 加密用户密码并将其存储在:C:\WINDOWS\system32\config\SAM 使用 NTLM 算法(加上 Syskey)加密它们

NTLM也是一种网络身份验证协议,所以我搞砸了。

我想知道 NTLM 加密是否与 NTLM 网络协议相同。我的意思是,在 Windows 中,当您输入用户名和密码时,如果系统在同一系统 (localhost) 上启动网络协议,就像它们是不同的计算机 (ip) 一样。

否则,如果它们是同名的两个不同事物。 如果有人能稍微解释一下这两种方法的区别,那就太好了。

希望你能理解我的问题,因为我不是英国人!
提前致谢!

【问题讨论】:

    标签: windows encryption ntlm


    【解决方案1】:

    免责声明:我为 Microsoft 工作,但不在 Windows 或任何开发 NTLM 的团队工作。这些知识来自外部来源,因此可能不准确。

    NTLM 是两件事:一种单向哈希算法和一种身份验证协议。

    单向哈希函数是 Windows 操作系统用来存储密码的(在秘密文件中,正如您所注意到的)。当然,这样明文密码就不需要存储在磁盘上。当您在登录屏幕上键入密码时,它将使用 NTLM 哈希算法进行哈希处理,并与机密文件中的现有哈希进行比较。如果它们匹配,您将通过身份验证。如果没有,系统会提示您再次输入密码。

    身份验证协议是一种质询/响应协议,用于对某些在线协议(如 CIFS 或 HTTP)进行身份验证。该算法利用上述 NTLM 哈希算法,根据用户输入的密码构建对服务器质询的响应。 NTLM 身份验证协议的协议规范可从 Microsoft 在其开放规范许可下获得。

    要回答您的问题,当您登录 Windows 时,很可能只是使用 NTLM 哈希并根据磁盘文件检查它,而不是进行一些网络调用。当然,如果您的机器碰巧是域控制器(并且不知何故,无法执行 Kerberos),那么它可能会通过网络对 localhost 执行 NTLM 身份验证,但这是一个非常人为的示例。当然,如果您要访问该本地计算机上的网络资源(例如,CIFS 文件共享或访问网站),那么您将使用网络身份验证协议,而不是直接访问机密文件。

    【讨论】:

      【解决方案2】:

      NTLM 不是网络协议。它是一种身份验证协议。它们是完全不同的东西。

      这里对NTLM 进行了很好的讨论。请特别注意 NTLM 不再使用(它已被 Kerberos 和 NTLM2 取代,这两者都在链接文章中定义和讨论)。

      【讨论】:

      • 几周前我查看了维基百科的文章。如您所见,它以“在 Windows 网络中...”开头跨度>
      • 这在文章中也有解释。它讨论了在域不可用或通过 IP 地址完成身份验证的情况下使用 NTLM(现在为 NTLM2)。阅读整篇文章;它回答了您迄今为止提出的所有问题或评论。事实上,您针对我的回答所做的评论已在第一部分(最后一段以“While Kerberos”开头)中解决。
      • 但是维基百科的文章只讨论了 NTLM 作为身份验证协议(通过网络),它没有讨论用于 SAM 文件的 NTLM 哈希算法。
      • 是的,这就是我想说的爱德华。我想要两者之间的比较。
      • 是的,我的陈述是为肯·怀特指定的。 Borja,请看下面我的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      相关资源
      最近更新 更多