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) 进行校验,完成认证
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构