过程包含的任容
- TGT1
- 包含:as生成的session key(as) tgs信息
- 用客户端的ntlm加密的
- TGT2
- 包含:as生成的session key(as) 客户端信息
- 用krbtgt ntlm加密的
- 客户端解密TGT1
- 因为用客户端ntlm加密 可以解密
- 得到session key(as)
- 客户端生成认证因子1
- 包含:客户端信息
- 用session key(as)加密的
- 发送给TGS的有TGT2和认证因子1
- 解密TGT2因为TGS有krbtgt的ntlm 得到了session ket(as)的信息 和客户端的信息
- 用session key(as)解密认证因子1 得到客户端信息 比较相同 发送TGT3 TGT4
- TGT3
- 包含:tgs生成的session key(tgs) 服务器信息
- 用session key(as)加密的
- TGT4
- 包含:tgs生成的session key(tgs) 客户端信息
- 用服务器的ntlm加密的
- 客户端解密TGT3
- 用session key(as)解密
- 得到tgs生成的session key(tgs)
- 客户端生成认证因子2
- 包含 客户端信息
- 用session key(tgs)加密的
- 发送给服务器的有TGT4和认证因子2
- 解密TGT4 因为用的服务器的ntlm所以能解密 得到了session key(tgs) 客户端信息
- 用session key(tgs) 解密认证因子2 得到客户端信息
- 比较相同 提供服务
过程
1、客户端发送自己的用户名给AS
2、AS验证用户名是否在白名单列表,如果在的话随机生成session key(as),返回如下信息
TGT1(session key(as),TGS服务器信息等)--客户端NTLM哈希加密
TGT2(session key(as),客户端信息等)--KRBTGT NTLM哈希加密
3、用自己的NTML哈希解密TGT1,获得TGS服务器信息以及session key(as),TGT2由于是别人的哈希,所以解不开
生成认证因子(客户端信息,当前时间)--session key(as)加密
发送认证因子以及TGT2给TGS服务
4、TGS服务先解密TGT2获得session key(as),紧接着利用session key(as)解密认证因子,对比认证因子与TGT2的客户端信息是否一致,如果一致生成session key(TGS),返回如下信息给客户端
TGT3(session key(TGS),服务器信息,票据到期时间)--session key(as)加密
TGT4(session key(TGS),客户端信息,票据到期时间)--客户端想要访问的服务器的哈希加密
5、客户端解密TGT3,得到session key(TGS),服务器信息
生成认证因子2(服务器信息,客户端信息、票据到期时间)--session key(TGS)加密
发送认证因子2以及TGT4给服务器
6、服务器先用自己的哈希解密TGT4得到session key(TGS),客户端信息,票据有效期
利用session key(TGS)解密认证因子对比客户端信息决定是否提供服务