FW: Kerberos协议

原创 2011年01月10日 14:29:00

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

Kerberos协议:

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

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

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

过程
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协议的重点在于第二部分,简介如下:

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

kerberos认证协议浅析

1 引言 在希腊神话中Kerberos是守护地狱之门的一条凶猛的三头神犬,而我们在本文中所要介绍的Kerberos认证协议是由美国麻省理工学院(MIT)首先提出并实现的,是该校雅典娜计划的一部分。这...
  • lengxiao1993
  • lengxiao1993
  • 2014年03月04日 14:08
  • 1487

Kerberos协议实现访问控制

Kerberos协议主要用于网络身份鉴别,该协议的特点是只要输入一次身份验证信息就可以访问多个服务,而且访问更加安全。其基本原理图如下所示: 该协议主要分为两大步骤。 第一步:Clie...
  • u010585448
  • u010585448
  • 2015年10月20日 10:47
  • 584

Kerberos协议

Kerberos协议适用于大规模的异构网络中,是目前使用最广泛的身份认证协议。协议的核心在于,在用户验证的过程中,引入一个可信的第三方,也就是Kerberos服务器,也通常称之为密钥分发服务器,负责执...
  • ShaoqunLiu
  • ShaoqunLiu
  • 2016年08月08日 19:21
  • 985

kerberos认证协议

什么是kerberos协议,估计很多人都没有通过,实际上它应用非常广泛,在windows域和许多开发平台上应用很广。它应用最多的是统一登录SSO(Single Sign On)框架上应用。     ...
  • stonesharp
  • stonesharp
  • 2016年01月07日 19:30
  • 547

Kerberos认证流程详解

Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoop生态系统中。了解Kerberos认证的流程将有助于解决Hadoop集群中的安全配置过程中的问题。为此,本...
  • jewes
  • jewes
  • 2014年03月08日 19:08
  • 22380

Kerberos V5 协议

Kerberos V5 协议 1. 简介          Kerberos协议是由MIT大学研究并开发出的一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的双向认证...
  • suanshuzuoyi
  • suanshuzuoyi
  • 2016年01月26日 17:18
  • 462

Kerberos协议学习报告

Kerberos协议学习报告 [摘要]Kerberos协议是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。在计算机网络的身份认证中, 其特点是用户只需输入一次身份验证...
  • huchaofeng1992
  • huchaofeng1992
  • 2013年07月26日 10:39
  • 1371

Kerberos认证协议

序言:近几天学习了Kerberos认证协议,觉得有必要把学习过程和学习心得记录一下,文章内容有William Stallings编著的《网络安全基础》中的部分内容,也有自己的理解和思考。我希望能用自己...
  • qq_35068075
  • qq_35068075
  • 2017年05月07日 22:02
  • 195

Kerberos协议的滥用

转自:http://www.freebuf.com/articles/system/45631.html
  • xiao_bodian
  • xiao_bodian
  • 2014年11月04日 13:04
  • 1179

Kerberos协议:

Kerberos协议:Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting...
  • zhongjiekangping
  • zhongjiekangping
  • 2009年09月02日 11:12
  • 879
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FW: Kerberos协议
举报原因:
原因补充:

(最多只允许输入30个字)