架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 2478|回复: 0

[windows] 【转】Windows AD 认证:Kerberos 和 NTLM

[复制链接]
发表于 2023-8-22 19:16:28 | 显示全部楼层 |阅读模式
AD认证主要用到两种协议:Kerberos 和 NTLM

NTLM

QQ截图20230822191309.jpg

认证过程如下:

  • client本地生成NTLM hash,值为用户密码的hash值。
  • client发送用户名给应用服务器。
  • 应用服务器随机生成一个值给client,这个值通常叫nonce或challenge。
  • client用NTLM hash对nonce进行加密,并发送给应用服务器。
  • 应用服务器收到后,连同用户名和nonce一并发送给AD服务器。
  • AD根据该用户的密码生成NTLM hash,并对nonce进行加密,然后对client发送的进行比对。
  • 若值相同,则通过认证,若不同,则认证失败。


Kerberos

QQ截图20230822191405.jpg

关键名词:

  • KDC:Key Distribution Center,密钥发行中心,提供两个服务:身份验证服务(Authentication Service 简称AS)和Ticket-Granting Service(TGS)。域会为KDC生成名为krbtgt的域账户,TGT的加密解密均使用该账户的密码。域用户首次访问时,会想AS进行身份验证,通过后,AS请求TGS向域用户提供票证(TGT)。
  • SPN:Service Principal Name。AD账户除了用户账户外,还有服务账户。应用程序也会有与之关联的服务账户,便于应用程序访问服务器资源,如exchange、SQL、IIS等。SPN则用于将应用程序启用的服务与AD中服务账户关联起来的一项服务。


认证流程:

1.当域用户登录时,会向DC发送一个AS request(AS_REQ),请求会包含一个加密的时间戳,通过该用户的密码hash和用户名进行加密。

2.DC收到请求后,使用该用户的用户名和密码hash进行解密,若加密成功且判断时间戳不重复,则认证成功。(时间戳判断防止重放攻击)DC向客户端回复一个AS reply(AS_REP),回复会包含一个session key和TGT(Ticket Granting Ticket)。session key是加密的,用用户的密码hash加密。TGT中包含了组成员关系、域、时间戳、客户端IP和session key。TGT也是加密的,用KDC服务账户密码加密,客户端无法解密。(默认TGT 10小时内有效,之后发生的更新无需用户重新输入密码)

3.当用户请求域内资源时,会发送一个Ticket Granting Service Request(TGS_REQ),包含用户名、时间戳、TGT、SPN。时间戳和用户名用session key进行加密。

4.KDC收到请求后,先判断是否域内是否存在请求中的SPN,然后解密TGT,提取session key和TGT中的时间戳等,用TGT中的session key对加密的用户名和时间戳进行解密。进行几项检查:

(1)TGT解密出来的时间戳,必须是有效的。(若发生了重放攻击,时间戳就失效了。)

(2)TGT里的username和请求中的username是否一致。

(3)TGT里的IP和请求中的IP是否一致。

通过检查则回复客户端Ticket Granting ServiceReply(TGS_REP),包含授权访问的SPN、客户端与SPN之间访问所用新的session key、新的Service Ticket服务票证(包含新的session key、用户名和用户组)。授权访问的SPN和访问SPN的session key均用TGT中的session key加密。service ticket使用对应SPN服务账户的密码加密。

1.经过以上过程,用户已经获取了与应用服务相关的session key和service ticket。用户向应用服务发送请求Application Request(AP_REQ),包含用户名和时间戳,均用session key进行加密。

2.应用服务用服务账号密码hash解密service ticket,提取用户、用户组、session key。用解密出来的session key解密AP_REQ中的用户名和时间戳。先比对service ticket中的用户名和AP_REQ中的用户名是否一致,若一致,则请求被接受,应用服务根据service ticket中的用户组信息分配权限,之后用户可以访问请求的服务。

原文地址:超链接登录可见。





上一篇:Windows Edge 浏览器用 IE 打开闪退解决方案
下一篇:域名解析之 DNS-over-HTTPS 和 DNS-over-TLS
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-6-15 21:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表