Loading

Kerberos协议

kerberos的相关概念

KDC:密钥分发中心。域内认证不再是两台机器之间互相请求的认证,而是通过第三方可信机构KDC来实现整个认证体系。从物理层面看,KDC的角色实际为域控制器,包括AD数据库、AS身份认证中心、TGS票据分发中心

AD:活动目录数据库。存放者域控的NTDS.dit文件,存储域中所有用户名和对应的NTLM Hash,KDC可以从AD中提取域中所有用户的NTLM Hash,这是kerbberos协议能够成功的基础。

AS:身份认证服务。负责对client的身份验证,像client发放TGT票据

TGS:票据授予服务。负责向client发放ticket,ticket允许client像server发起请求

kerberos认证流程

1、client像KDC发起访问请求,希望获取到server的访问权限,KDC中的AS得到消息后,会从AD数据库中寻找该用户是否可以访问,如果可以访问则放回TGT给Client。

2、client收到AS给的TGT之后,再次像KDC发起请求,希望想访问到server,KDC中的TGS收到请求之后,判断Client拥有访问权限,于是发放Ticket给Client

3、Client收到TGS发放的Ticket之后,便可以访问到Server,但是这个Ticket只能用于申请访问的Server,别的Server不可以,如果需要访问,则需要重新请求

kerberos认证具体过程

image-20211203101841489

1、A用明文(包括登记的身份)向鉴别服务器AS表明自己的身份。AS掌握了各实体登记的身份和口令。AS对A进行身份验证,如果验证通过,允许A和票据授予服务器TGS进行联系。

2、鉴别服务器AS向A发送用A的对称密钥Ka加密的报文,这个报文包含A和TGS通信的会话密钥Ks以及AS要发送给TGS的票据(用TGS的对称密钥Ktg加密的)。A不保存密钥Ka报文到达A之后,A就键入口令,配合算法一起就能生成密钥Ka,随机口令被销毁。密钥Ka用来对AS发送过来的报文进行解密,这样就能提取出会话密钥Ks(这个是A和TGS通信用的)以及要转发给TGS的票据(密钥Ktg加密的)

3、 A向TGS发送三项内容: a、转发AS发的票据 b、服务器B的名字,这表示A请求B的服务。注意到现在A向TGS证明自己的身份 不再是键入口令(因为入侵者能够从网上截取口令),而是通过转发AS发出的 票 据(只有A才能提取)。票据是加密的,入侵者无法伪造 c、用Ks加密的时间戳T,防止入侵者的重放攻击

4、TGS发送两个票据,每一个都包含A和B通信的会话密钥Kab,给A的票据用Ks加密,给B的票据用B的密钥Kb加密,请注意,现在入侵者无法提取Kab,因为不知道Ks和 Kb,入侵者也无法重放步骤3。

5、A用ks解密之后可以得到kab,也就是获得了和B通信的资格,然后A向B转发TGS发来的票据,同时发送用Kab加密的时间戳T

6、B把时间戳T加1来证实收到票据,B向A发送的报文用密钥Kab加密。

以后,A和B就使用TGS给出的会话密钥Kab进行通信。

posted @ 2021-12-30 13:26  Hel10  阅读(263)  评论(0编辑  收藏  举报