文章目录
NTLMNTLM工作流程为何采用NTLMNTLM使用场景NTLM
NTLM工作流程
client本地生成NTLM hash,值为用户密码的hash值。客户端将用户名以纯文本的方式发送到要访问的服务器服务器产生一个 16 字节的随机数并将该随机数发送给客户端,该随机数通常称为:挑战(Challenge或Nonce)客户端使用用户密码的散列值加密服务器发送过来的 Challenge,并将结果发回给服务器, 该步骤通常称为:应答 (Response)服务器将用户名、Challenge、Response三项内容发送到域控制器 (Domain Controller)域控制器使用 用户名 从安全账号管理数据库 (Security Account Manager database)中获得用户密码的散列值, 并使用获得的密码散列值来加密 Challenge域控制器比较步骤(5)中计算得到的加密后的 Challenge值与步骤(4)中客户端加密得到的 Response,如果两者一致,则认证通过为何采用NTLM
微软采用 Kerberos 作为 Windows 2000及之后的活动目录域的默认认证协议。当某个服务器隶属于一个Windows 服务器域或者通过某种方式(如Linux到Windows AD的认证)与Windows 服务器域建立了信任关系的时候,通常采用Kerberos作为认证协议。但是无论你是否拥有活动目录域,NTLM都可以被采用。
NTLM使用场景
(1) 客户端使用 IP 地址向服务器认证
(2) 客户端向另一个有 Legacy NTLM 信任而非传递性林间信任的活动目录域林的服务器
认证
(3) 客户端向一个未加入域的服务器认证
(4)未使用活动目录的场景(通常指 ‘工作组’ 或 ‘对等网络’)
(5) 防火墙策略限制了 Kerberos 使用的端口(通常为 TCP port 88)