您当前的位置:首页 > 计算机 > 加密解密

Ntml hash认证流程

时间:10-21来源:作者:点击数:

1、前言

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

2、NTLM HASH的产生

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

  明文密码转换为ASCII码——》16进制编码—》Unicode编码—》MD4

3、Windows本地认证

在这里插入图片描述

4、Windows网络认证

(1)第一步协商:客户端主要在这一步向服务器确认协议的版本,是v1还是v2。

(2)客户端向服务器端发送用户信息(用户名)请求,服务器接受到请求,生成一个16位的随机数,被称之为“Challenge”,使用登录用户名对应的NTLM Hash加密Challenge (16位随机字符),生成Challenge1。同时,生成Challenge1后,将Challenge (16位随机字符)发送给客户端。客户端接受到Challenge后,使用将要登录到账户对应的NTLMHash加密Challenge生成Response,然后将Response发送至服务器端

服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认证通过。

在这里插入图片描述

①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产生的结果。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门