Kerberos协议及安全性分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Kerberos协议及其安全性分析

一、概况:

Kerberos协议是20世纪80年代由MIT开发的一种协议。Kerberos主要是为TCP/IP网络设计的可信第三方鉴别协议,允许客户以一种安全的方式来访问网络资源。Kerberos的基础是NS协议。他与NS协议不同在于:kerberos认为所有的时钟已经同步好了。

Kerberos基于对称密钥体质,通常采用的DES,但也可用其他算法替代。他与网络上的每个实体共享一个不用的密钥,是否知道共享密钥便是实体的身份证明。

Kerberos的基本原理:在一个分布式的Client/Server体制机构中采用一个或多个kerberos服务器提供一个鉴别服务。客户端想请求应用服务器Server上的资源时,首先客户端向kerberos认证服务器请求一张身份证明,然后将身份证明交给Server进行验证,Server在验证通过后,即为客户端分配请求资源。

二、票据:

票据是kerberos中一个重要概念。票据是kerberos协议中用来记录信息、密钥等得数据结构,客户端用它向Server证明身份,包括了客户端身份标识、会话密钥、时间戮和其他信息。所有内容都是用Server密钥加密,因此只有认证服务器和合法验证者知道密钥,而客户端是不知道这个密钥的,故无法篡改票据内容。

根据党情对认证服务器的请求和客户端获得票据的方式,kerberos服务器自动设置标志:

(1)初始化表示

(2)认证前标志

(3)非法标志

(4)更新标志

(5)延期标志

(6)代理和代理标志

(7)前趋标志

三、域:

域指一个kerberos服务器直接提供认证服务的有效范围。通常kerberos 系统使用领域来控制一个由认证服务器进行认证的区域,每个认证服务器建立和维护自己的区域,并且支持跨域认证,即一个域中的客户端能够被另一个域的服务器认证。

四、K erberos的工作过程:

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协议的安全性分析:

Kerberos协议拥有不少优点,如:密码不易被窃听、密码不在网上传输,相比其他协议更安全、密码猜测更困难、对于用户而言更便捷:一次使用口令登录,可以获得多个服务。

但是,Kerberos协议本身并不是无限安全的,而且也不能自动提供安全。其安全威胁存在于以下几个方面:

1、kerberos不能解决拒绝服务攻击

2、入侵者通过某种方法窃取了主体的私钥,他就能冒充身份

3、Kerberos无法应付口令猜测攻击

4、要保证网络上每个主机时钟都是松散同步的

5、要保证主体的标识不能频繁地循环使用。

针对kerberos的安全弱点,我们可以使用TPM增强kerberos安全性:

相关文档
最新文档