NTLM
NTLM 是 Microsoft 提供的一套用于认证用户身份并保证用户活动的完整性和机密性的安全协议。 NTLM 的核心是一个单点登录 (SSO) 工具,它依靠质询-响应协议来确认用户,而无需用户提交密码。尽管 NTLM认证 存在已知漏洞,但仍被广泛部署,以保持与旧客户端以及服务器的兼容性。 尽管 Microsoft 仍支持 NTLM 认证,但它已经被 Kerberos 取代,不过当 Kerberos 认证失败的时候会转而使用 NTLM 认证。
以下是 NTLM 认证的流程
1 - 用户访问客户端主机并提供域名、用户名和密码,客户端计算密码的加密哈希并无视实际密码,将用户名以明文形式发送到服务器。
2 - 服务器生成一个 16 字节的随机数,称为质询,并将其发送回客户端。
3 - 客户端使用用户密码的哈希加密这个质询并将结果返回给服务器, 即响应。
4 - 服务器向域控制器发送以下3项:用户名、发送给客户的质询、从客户端收到的响应
5 - 域控制器使用用户名来检索用户密码的哈希值。 它将加密的质询与客户端的响应进行比较, 如果相同,则认证成功,并且通知服务器。
6 - 服务器将响应发送回客户端。
我们在先前的章节学习过了 Kerberos 认证协议,学员们可以自行体会一下其中的不同。