Kerberos简介

Kerberos简介

Posted on 2006-03-20 15:24 idior 阅读(24939) 评论(22) 编辑 收藏 所属分类: Security

Kerberos 协议:

Kerberos 协议主要用于计算机网络的身份鉴别 (Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据 (ticket-granting ticket) 访问多个服务,即 SSO(Single Sign On) 。由于在每个 Client Service 之间建立了共享密钥,使得该协议具有相当的安全性。

条件

先来看看 Kerberos 协议的前提条件:

如下图所示, Client KDC KDC Service 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了 Kerberos 协议往往用于一个组织的内部, 使其应用场景不同于 X.509 PKI

Kerberos简介_第1张图片  

过程

Kerberos
协议分为两个部分:

1 . Client KDC 发送自己的身份信息, KDC Ticket Granting Service 得到 TGT(ticket-granting ticket) 并用协议开始前 Client KDC 之间的密钥将 TGT 加密回复给 Client

此时只有真正的 Client 才能利用它与 KDC 之间的密钥将加密后的 TGT 解密,从而获得 TGT

(此过程避免了 Client 直接向 KDC 发送密码,以求通过验证的不安全方式)

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

 Kerberos 协议的重点在于第二部分,简介如下:

 

Kerberos简介_第2张图片

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

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

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

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

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

总结

概括起来说 Kerberos 协议主要做了两件事

1.    Ticket 的安全传递。

2.    Session Key 的安全发布。

再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用 Session Key,在通过鉴别之后 Client Service 之间传递的消息也可以获得 Confidentiality(机密性), Integrity(完整性) 的保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制了它的应用。不过相对而言它比 X.509 PKI 的身份鉴别方式实施起来要简单多了。

推荐资料:

Kerberos的原理

Kerberos: An Authentication Service for Computer Networks

Web Services Security系列文章

你可能感兴趣的:(加密,session,Security,service,解密,Authentication)