Kerberos 协议简介

Kerberos协议主要用于计算机网络身份鉴别, 用户只需输入一次身份验证信息就可凭借此验证获得票据访问多个服务。

由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。


Kerberos 协议简介



Kerberos协议分为两个部分:

1 . Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket), 并用协议开始前Client与KDC之间的密钥将TGT加密回复给Client。只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。


2. Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别。


Kerberos 协议简介



  1. Client将之前获得TGT和要请求的服务信息发送给KDC,KDC中的Ticket Granting Service将为Client和Service之间生成一个Session Key用于Service对Client的身份鉴别。KDC将这个Session Key和用户名,用户地址,服务名,有效期, 时间戳一起包装成一个Ticket发送给Service, 不过Kerberos协议并没有直接将Ticket发送给Service,而是通过Client转发给Service.

  2.  此时KDC将刚才的Ticket转发给Client。由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDC与Service之间的密钥将Ticket加密后再发送给Client。同时为了让Client和Service之间共享那个秘密, KDC用Client与它之间的密钥将Session Key加密随加密的Ticket一起返回给Client。

  3.  为了完成Ticket的传递,Client将刚才收到的Ticket转发到Service. 由于Client不知道KDC与Service之间的密钥,所以它无法算改Ticket中的信息。同时Client将收到的Session Key解密出来,然后将自己的用户名,用户地址打包成Authenticator用Session Key加密也发送给Service。

  4.  Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,从而获得Session Key和用户名,用户地址,服务名,有效期。然后再用Session Key将Authenticator解密从而获得用户名,用户地址将其与之前Ticket中解密出来的用户名,用户地址做比较从而验证Client的身份。

  5.  如果Service有返回结果,将其返回给Client。


参考文献:

http://idior.cnblogs.com/archive/2006/03/20/354027.html

你可能感兴趣的:(kerberos)