图解:
Kerberos认证一共分为三个阶段:
Kerberos认证一共分为三个阶段
AS-REQ---AS-REP阶段:(Client和AS的认证)
1.首先Client(客户端)用自己的哈希值(NTLM-hash)对(时间戳,客,服)等数据加密后,发送给AS(身份验证服务)向AS请求TGT票据。 -----AS-REQ----
2.当AS收到Client发来的数据后,AS会向AD(域控)发起请求,询问是否有该client用户,如果有的话就取出client的 NTLM-hash,然后生成一个Session-key as(随机密钥)临时密钥Session-key 并使用client NTLM-hash加密随机密钥,作为一部分。
3.TGT----使用KDC(密钥分发中心)一个特定账户的NTML-hash对(随机密钥,时间戳,客户端信息)加密,然后将这两部分发给Client ----AS-REP---
TGS-REQ---TGS-REP阶段:(client和KDC通信)
(---TGS-REQ---)
1.client收到AS发来的AS-REP后,先用自己的NTLM-HASH解密得到随机密钥,然后使用随机密钥对(客户信息,时间戳,服务器请求)加密作为一部分,加上TGT,一并发送给KDC(密钥分发中心)中的TGS(票据授予服务)。
2.TGS收到请求后,使用特殊用户的NTLM-hash解密TGT,得到(随机密钥,时间戳,客户端信息)同时,使用TGT解密出的随机密钥去解密第一部分的内容,得到(客户端信息,时间戳)。对比这解密得到的内容以验证是否通过。通过后新生成一个随机密钥2,并向client回复TGS-REP的两部分内容:
一部分是用(随机密钥1)加密的新生成的(随机密钥2)
另一部分是ST,即服务器的NTML-hash加密的数据(随机密钥2,时间戳,客户端信息)
AP-REQ---AP-REP阶段:
1.client收到TGS-REP后,先用自己保存的(随机密钥)解密出(随机密钥2).再使用随机密钥2加密(客户端信息,时间戳)作为一部分,另一部分是ST,一并发送给Server(服务器)。
----------AP-REQ---------
2.服务器收到AP-REQ后,用自己的NTML-hash解密ST,得到(随机密钥2)再用随机密钥2解密第一部分得到(客户端信息,时间戳),然后与ST的(客户端信息,时间戳)对比。
时间戳一般为8个小时。验证通过后,回复AP-REP,最终建立通信。
什么是白银票据?
ST(白银票据)即为服务器NTML-hash加密的数据(随机密钥,时间戳,客户端信息)等信息。
什么是黄金票据?
TGT(黄金票据)----使用KDC(密钥分发中心)一个特定账户的NTML-hash加密的(随机密钥,时间戳,客户端信息)等信息。