kerberos协议认证流程

KDC = Key Distribute Center 密钥分发中心

Authentication Service 身份验证服务

Ticket Granting Service 票据分发服务

AD = Account Database 存储所有的client

1.client发送自己的信息以及要连接的server信息给AS

AS会去AD中查找client是否存在

2.AS返回两个票据TGT1,TGT2

TGT1(session key,TGS服务信息,结束时间)

使用client对应的NTLM hash加密

TGT2(session key,client信息,结束时间)

使用KDC NTLM hash加密

3.客户拿到票据

(1) 使用自身的NTLM hash解密TGT1,获取到session key

(2) 生成认证因子(client信息,当前时间......)

使用解密出的session key加密

(3) 发送认证因子+TGT2+客户端信息+服务端信息到TGS

4. TGS拿到认证因子等信息

(1) 使用KDC NTLM hash解密TGT2

得到session key,client信息,结束时间

(2) 使用解密得到的session key解密认证因子

得到client 信息,时间戳

(3) 经过校验

时间戳与当前时间(差距是否很大)

TGT2的client信息与认证因子的client信息

client访问server的权限

(4) TGS生成server session key

(5) 发送票据TGT3,TGT4到client

TGT3(server session key,服务器信息,票据到期时间)

使用session key 加密

TGT4(server session key,client信息,票据到期时间)

使用服务器NTLM hash加密

5.client收到TGT3,TGT4

(1) 使用session key解密TGT3

得到server session key,服务器信息,票据到期时间

(2) 生成认证因子2(服务器信息,票据到期时间)

使用server session key加密

(3) 发送认证因子2+TGT4到server

6.server获取认证因子2+TGT4

(1) 使用服务器自身的NTLM hash解密TGT4

得到server session key,client信息,票据到期时间

(2) 使用server session key解密认证因子2

得到服务器信息,票据到期时间

(3) 进行校验,完成认证

posted @     阅读(332)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示