Ntml hash认证流程

Ntml hash认证流程

  • 1、前言
  • 2、NTML HASH的产生
  • 3、Windows本地认证
  • 4、Windows网络认证

1、前言

  密码保存在 %SystemRoot%\system32\config\ sam ,我们登录windows系统的时候,系统自动读取SAM中的密码与我们输入的密码进行比较,相同,则认证成功。

2、NTML HASH的产生

  NTLM Hash是支持Net NTLM认证协议及本地认证,长度为32位,由数字与字母组成。Windows本身不存储用户的明文密码,它会将用户的明文密码经过加密算法后存储在SAM数据库中。当用户登录时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。NTLM Hash的前身是LMHash。
  明文密码转换为ASCII码——》16进制编码—》Unicode编码—》MD4

3、Windows本地认证

Ntml hash认证流程_第1张图片

4、Windows网络认证

(1)第一步协商:客户端主要在这一步向服务器确认协议的版本,是v1还是v2。
(2)客户端向服务器端发送用户信息(用户名)请求,服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”,使用登录用户名对应的NTLM Hash加密Challenge (16位随机字符),生成Challenge1。同时,生成Challenge1后,将Challenge (16位随机字符)发送给客户端。客户端接受到Challenge后,使用将要登录到账户对应的NTLMHash加密Challenge生成Response,然后将Response发送至服务器端
服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认证通过。
Ntml hash认证流程_第2张图片
①Server接收到Client发送的用户名后,判断本地账户列表是否有用户名,如果没有,返回认证失败,如果有,生成Chanllenge,并且从本地查找该用户名对应的NTLM Hash,使用NTLM Hash加密Chanllenge,生成一个Net-NTLM Hash存在内存中,并将Chanllenge发送给Client。
②Client接收到Chanllenge后,将自己提供的用户名的密码转换为NTLM Hash,使用NTLM Hash加密Chanllenge,这个结果叫Response,表现形式是Net-NTLM Hash,最后将Response发送给Server。
③Server接收到Client发送的Response,将Response与之前的Net-NTLM Hash进行比较,如果相等,则认证通过。
提示:Chanllenge是Server产生的一个16字节的随机数,每次认证都不同,Response的表现形式是Net-NTLM Hash,它是由客户端提供的密码Hash加密Server返回的Chanllenge产生的结果。

你可能感兴趣的:(Windows安全,系统安全,安全)