windows认证之网络认证:基于响应认证的NTLM协议

目录

1、什么是NTLM协议​​​​​​​

2、计算机组的概念

3、认证流程

3.1、协商

3.2、质询

3.3、验证


1、什么是NTLM协议

处于工作组中的计算机之间是无法建立一个可信的信托机构的,只能是点对点进行信息的传输。

主机A想要访问主机B上的资源,就要向主机B发送一个存在于主机 B上的一个账户,主机B接收以后会在本地进行验证,如果验证成功,才会允许主机A进行相应的访问。 在进行网络认证的时候用到的协议就是NTLM协议。

2、计算机组的概念

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都 列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。

3、认证流程

NTLM 协议是一种基于 挑战(Challenge)/响应(Response) 认证机制,仅支持Windows的网络认证协议。 它主要分为协商、质询和验证三个步骤.

3.1、协商

是为了向下兼容,确定传输协议的版本等各种信息。

3.2、质询

即主要的认证步骤。

a、 首先client向server发送一个username,这个username是存在于server上的一个用户。

b、server收到请求,会在本地查询是否存在该用户名,如果存在,生成一个16位的challenge字符,然后用储存在sam中的该usr对应的密码进行NTLM加密,生成challenge1,并将challenge传给客户端client。

c、client接收到challenge后,即在client端进行加密,得到一个response的值,发送给server

d、server收到response的值,如果和challenge1的值相同,即验证成功。

这边总结一下就是server生成一个随机数,双方同时使用这个随机数来对于密码进行加密,如果获得相同的值,那就是验证成功。

3.3、验证

即对质询的最后结果进行一个验证,验证通过后即允许访问资源。

猜你喜欢

转载自blog.csdn.net/hmysn/article/details/128521847