Kerberos身份认证协议的研究

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

Kerberos身份认证协议的研究
作者:李培培曹芳
来源:《科技视界》2015年第36期
【摘要】Kerberos身份认证协议是为TCP/ IP 网络而设计的基于Client/ Server模式的三方验证协议,广泛应用于Internet服务的访问,网络中的Kerberos服务起着可信仲裁者的作用。

本文首先介绍了Kerberos身份认证协议,重点分析了Kerberos身份认证协议的认证过程。

【关键词】Kerberos协议;身份认证;许可票据
0 引言
随着Internet的飞速发展,网络安全的地位日益突出。

网络的安全措施应是能全方位地针对各种不同的威胁,这样才能确保网络信息的保密性、完整性和可用性。

作为安全服务中的一种——实体认证尤为重要。

在一个公开的分布式网络环境中,工作站上的用户希望访问分布在网络上的服务器资源。

但网络上的资源仅允许授权用户的特定权限的访问,因此在分布式网络中,必须提供一种机制来对用户的身份进行认证。

1 Kerberos身份认证
Kerberos最早源于麻省理工学院的雅典娜计划,至今已有十余年的历史。

原义为凶猛的三个头的狗——地狱之门守护者,意喻该协议具有极其强大的安全性能,它是一种实用的网络认证系统。

1.1 Kerberos简介
Kerberos是一种适于在公共网络上进行分布计算的工业标准的安全认证系统,是由MIT 推出的基于可信赖第三方的用户认证系统。

客户在登录时,需要认证即用户必须获得由认证服务器发行的许可证,才能使用目标服务器上的服务。

许可证提供被认证的用户访问一个服务时所需的授权资格。

所有客户和服务器间的会话都是暂时的。

Kerberos 协议通过网络通信的实体可以互相证明彼此的身份,可以抵抗旁听和重放等方式的攻击,并且还可以保证通信数据的完整性和保密性。

它广泛应用于Internet服务的安全访问,具有“高度的安全性、可靠性、透明性和可伸缩性”等优点。

目前许多远程访问认证服务系统都支持Kerberos认证协议,如微软的EAP 、CISCO的终端访问控制器访问控制系统,以及远程认证拨号业务等。

1.2 Kerberos的认证方案[1]
Kerberos协议很简明,见图1,客户从认证服务器(AS)请求一张票据许可票据(Ticket Gran2ting Ticket,TGT)作为票据许可服务(Tikcet2Granting Service,TGS),该票据使用用户的秘密密钥加密后发送给用户。

为了使用特定的服务器,客户需要从TGS中请求一张服务票据,TGS将票据发回给客户,客户将票据呈示给服务器,若客户身份没问题,服务器便会让客户访问该服务。

Kerberos 工作原理分3个阶段,6个步骤。

图1 Kerberos的认证模型
1.2.1 认证服务交换:获得票据许可票据
用户C向AS发出请求,以获取访问TGS的票据:Tickettgs得到初始化票据的工作在用户登录工作站时进行,登录时用户被要求输入用户名,输入后系统向AS发送一条包含用户和TGS服务两者名字的请求,以及时戳TS1(表示是新请求)。

AS检查用户有效,则随机产生用户和TGS通信的会话密钥Kc,tgs,并创建票据Tickettgs,票据包含用户名,用户地址,TGS服务名,当前时间(时戳TS2),有效时间,还有刚才创建的会话密钥。

然后将票据用Ktgs加密。

AS向C发送加密过的票据Tickettgs和会话密钥Kc,tgs,发送的消息用只有用户和认证服务器AS知道的Kc来加密,Kc值基于用户密码。

用户机器收到AS回应后,要求用户输入密码,将密码转化为DES密钥Kc,然后将AS 发回的信息解开,保存票据Tickettgs和会话密钥Kc,tgs,为了安全,用户密码Pc和密钥Kc 则被丢弃。

当用户的登录时间超过了票据的有效时间时,用户的请求就会失败。

其过程即(图1):
(1)C→AS :IDc‖IDtgs‖TS1
(2)AS→C :EKc [ Kc ,tgs‖Tickettgs‖TS2‖IDtgs‖Lifetime2]
Tickettgs = EKtgs [ Kc ,tgs‖IDc‖ADc‖TS2‖Lifetime2]
1.2.2 票据许可服务交换阶段:获得服务许可票据
一个服务许可票据只能申请一个特定的服务,所以用户必须为每一个服务V申请新的许可票据,用户可以从TGS处得到服务票据Ticketv。

用户程序首先向TGS发出申请服务票据的请求。

请求信息中包含V的名字,上一步中得到的请求TGS服务的加密票据Tickettgs,还有加密过的认证符Authenticatorc。

认证符含有:用户身份、网址、时戳。

认证符与ticket不同,只用一次且有效期短。

如果有效,TGS生成用于C和V之间通信的会话密钥Kc,v,并生成用于C申请得到V 服务的票据Ticketv,其中包含C和V的名字,C的网络地址,当前时间,有效时间和会话密钥Kc,v。

服务票据Ticketv的有效时间是初始票据Tickettgs剩余的有效时间和所申请的服务缺省有效时间中最短的时间。

TGS用C和TGS之间的会话密钥Kc,tgs加密Ticketv和会话密钥Kc,v,然后发送给用户C。

C得到回答后,用Kc,tgs解密,得到所请求的服务票据Ticketv和会话密钥Kc,v。

(1)C→TGS :IDv‖Tickettgs‖Authenticatorc
Authenticatorc=EKc,tgs[IDc‖ADc‖TS3]
TGS拥有Ktgs,可以解密Tickettgs,然后使用从Tickettgs得到的Kc,tgs来解密Authenticatorc,然后将认证符中的数据与服务票据中的数据比较,以验证票据发送者就是票据持有者。

(2)TGS→C:EKc ,tgs [ Kc ,v ‖Ticketv‖TS4‖IDv ]
Ticketv = EKv [ Kc ,v‖IDc‖ADc‖IDv‖TS4‖Lifetime4]
1.2.3 用户/ 服务器鉴别交换:获得服务
C向V发送服务许可票据Ticketv和认证符Authenticatorc,V收到后用Kv解密Ticketv,然后用Kc,v解密认证符。

比较得到的用户名,网络地址,时间等信息,判断C的身份请求是否有效。

用户和服务程序之间的时钟必须同步在几分钟的时间段内,当请求的时间与系统当前时间相差太远时,认为请求是无效的,用来防止重放攻击。

而且V通常保存一份最近收到的有效请求的列表,当收到一份请求与已经收到的某份请求的票据和时间完全相同时,认为此请求无效。

当C也想验证V的身份时,V将收到的时间戳加1,并用会话密钥Kc,v加密后发送给用户,用户收到回答后,用Kc,v解密后对增加的时戳进行验证,从而确定V的身份。

此后,客户与服务器之间通过共享的会话密钥秘密通信。

(1)C→V:Ticketv‖Authenticatorc
Ticketv = EKv [ Kc ,v‖IDc‖ADc‖IDv‖TS4‖Lifetime4 ]
Authenticatorc = EKc ,v [ IDc‖ADc‖TS5 ]
(2)V→C:EKc ,v [ TS5+1 ]
整个过程结束以后,客户C和服务器V之间就建立了共享的会话密钥,以后可用来加密通信或者交换新的会话密钥。

Kerberos的一个完整服务范围由一个Kerberos服务器、多个客户机和多个应用服务器构成,并且满足以下两个要求:a)Kerberos服务器必须在它的数据库中存有所有用户的ID和口令的杂凑值,所有用户都已向Kerberos服务器注册。

b)Kerberos服务器必须在它的数据库中存有共享的密钥,所有应用服务器都已向Kerberos服务器注册。

满足以上两个要求的Kerberos的一个完整服务范围称为一个区域。

网络中隶属于不同行政机构的客户和服务器则构成不同的区域,一个区域的用户如果希望得到另一个区域中的服务器的服务,则还需满足以下第三个要求。

c)每个区域的Kerberos服务器必须和其他区域的服务器有共享的密钥,且两个区域的Kerberos服务器已彼此注册。

多区域Kerberos还要求两个区域间,某一区域的Kerberos服务器信任另一区域的Kerberos服务器对本区域中用户的认证。

用户通过自己的客户机首先向本区域的TGS申请一个访问远程TGS的票据许可票据,然后用这个票据许可票据向远程TGS申请获得服务器提供的服务许可票据。

从而,实现了一个本地客户访问远程服务的跨域认证过程。

但对有很多个区域的情况来说,以上方案的扩充性不好,因为如果有N个区域,则必须有N(N- 1)/2 次密钥交换才可使每个Kerberos区域和其他所有的Kerberos区域能够互操作,当N很大时,方案变得不现实。

2 总结
Kerberos协议作为一种主要的身份认证系统协议,自诞生以来已得到广泛的应用,增强了网络通信安全,但此协议本身存在无法克服的缺陷。

身份认证只是网络安全技术的一部分,它需要结合其他的防护措施和技术,如密码技术、访问控制、权限管理、病毒防护等来保证网络的安全。

随着密码学技术的发展和网络环境的变化,还会有新的身份认证协议不断的出现。

这一领域的深入研究还有待进一步的努力。

【参考文献】
[1]卿斯汉.安全协议[M].北京:清华大学出版社,2005.
[2]陈云,彭春山.Kerberos认证协议的研究和改进[J].电子技术应用,2006(10).
[3]戈军.基于Kerberos身份认证的分析和改进[J].沈阳工程学院学报:自然科学版,2006,7(3).
[责任编辑:汤静]。

相关文档
最新文档