APP下载

Kerberos认证协议的分析与改进

2009-10-22

科教导刊 2009年11期

郭 非

摘 要 Kerberos认证协议在身份认证领域具有广泛的应用,但是Kerberos协议还存在许多不足之处。本文详细分析了Kerberos协议的认证过程,并针对协议中的安全漏洞,提出基于AES和RSA结合的认证协议改进方案及利用Diffie-Hellman密钥协商改进Kerberos协议。

关键词 Kerberos 认证工作流程 AES RSA Diffie-Hellman密钥协商

中图分类号:TP311文献标识码:A

1引言

身份认证协议是一种特殊的通信协议,是通信双方身份认证的基础和前提,其目的在于通过协议消息的传递来达成通信主体身份的认证,并在此基础上为下一步的安全通信分配所使用的会话密钥。

Kerberos鉴别是一种使用对称密钥加密算法来实现通过可信第三方密钥分发中心(KDC)的身份认证系统。Kerberos是最早被广泛使用的认证服务。Kerberos实现了服务器和用户双向身份认证,防止了通信过程中非授权的用户获得未授权的服务或数据。

2 Kerberos认证协议

2.1 Kerberos认证协议基本原理

Kerberos使用对称密钥加密算法来实现通过可信第三方密钥分发中心的认证服务,它并不依赖于主机操作系统和地址,提供了通信双方之间相互的身份认证手段。

Kerberos协议中有3个参与方:包括通信双方及一个密钥分发中心(KDC)。当某个应用进程需要访问另外一个服务进程时,需要首先向服务器验证自己的身份,同时也要确认该服务器的身份,这样就构成了双向的身份认证。将发起认证服务的一方称为客户方,将客户方需要访问的对象称为服务器方。在Kerberos中,客户方证明自己身份的方式是向服务器方递交自己的“凭据”(ticket)。凭据是KDC发出的。客户方或者服务器方相信凭据真实性的基础是与KDC共享的密钥。一个凭据只在一段有限的时间内有效,称为凭据的生命期。

2.2 Kerberos认证协议的工作流程

Kerberos认证协议的工作流程如下:

(1)客户向认证服务器(Authentication Server,AS)提出“票据授予票据”(Ticket Granting Ticket,TCT)请求。

(2)Kerberos认证服务器返回会话密钥和一个TGT给客户。

(3)客户向TGS请求访问应用服务器的票据。

(4)票据授予服务器返回访问应用服务器的票据和新的会话密钥。

(5)客户用这个票据和认证器向应用服务器请求服务。

(6)服务器返回时间戳和服务器名来证明自己是客户需要的服务。

2.3 Kerberos协议的局限性

2.3.1 存在口令猜测攻击

Kerberos防止口令猜测攻击的能力很弱,Kerberos协议模型没有对口令进行额外的保护[6]。在Kerberos协议的第二个数据包中,会话密钥由KC进行加密的,而KC是由用户口令衍生而成的密钥,特别是当用户口令的强度不够时,将很容易受到基于密码字典的猜测攻击。攻击者通过以往搜集的用户信息,利用穷举的方法进行猜测攻击,并根据反馈的结果进行调整,最终获取用户的口令。

2.3.2客户方及服务器方缺乏相互认证

在Kerberos协议认证的过程中,服务器没有对用户进行认证,用户也没有确认服务器的真实性,导致了巨大的安全威胁。

对客户方而言,攻击者可以通过伪造认证服务器将以前截获的流程(2)中的数据包返回给用户,由于用户收到的是伪造的数据包和凭据信息,这些信息无法在后续过程中使用和验证,因此将造成用户验证失效,破坏系统的可用性。

对服务器方而言,攻击者可以利用认证服务器无需进行客户鉴别就产生“凭据”的漏洞对认证服务器进行拒绝服务攻击。例如攻击者在相当短的时间内发送大量的请求包,将造成认证服务器频繁创建票据许可票据,这将消耗大量的系统资源并有可能导致系统崩溃。

另外,不能提供抗否认认证机制,恶意软件攻击,抗重放攻击,密钥的管理、分配和存储等都是Kerberos协议面临的严峻问题。

3 Kerberos的改进

3.1 对称密钥与不对称密钥的结合使用

公共密钥方案相比对称密钥方案处理速度慢,因此通常把公共密钥与对称密钥技术结合起来实现最佳性能,即用公共密钥技术在通信双方之间传送对称密钥,而用对称密钥来实现对实际传输的数据加密和解密。

目前不对称密钥加密体制和对称密钥加密体制的代表算法分别为RSA算法和AES算法。RSA算法属于公共密钥方案,在密码体制中加密和解密采用两个不同的相关的密钥。每个通信方在进行保密通信的时候有两个相关的密钥,一个公开,另一个保密。对不同的通信对象只需保密自己的解密密钥即可,所以对加密密钥的更新非常便捷。AES算法属于对称密码体制,加密和解密采用相同的密钥,因此要求通信双方对密钥进行秘密分配,密钥的更新比较困难,而且对不同的通信对象,AES需产生和保管不同的密钥。AES算法的核心技术是在相信复杂函数可以通过简单函数迭代若干次得到的原则下,利用简单圈函数和对合等运算,充分利用了非线性运算,因此可以利用软件和硬件进行高速实现;而RSA算法中多次需要进行大整数的乘幂运算,通常密钥越长,加密效果越好,但加解密的开销也很大,相比而言效率上要相差很多。因此AES算法具有加解密速度快、安全强度高等优点,在军事、外交及商业应用中使用得越来越普遍,但是由于存在密钥发行与管理的不足,在提供数字签名、身份认证等方面需要与RSA算法共同使用,已达到更好的安全效果。

由于AES算法和RSA算法各具所长,因此我们可以将这两种算法相结合,得到一种新的加密方案,将其应用到Kerberos协议认证过程中去。这种加密方案的基本原理是:

在Kerberos通信双方的通信前期,若A要向B送去信息m,A可用A的保密的解密算法DA对m进行加密得到DA(m),再用B的公开算法E对DA(m)进行加密得到:

C=EB(DA (m))

B收到密文C后先用自己掌握的解密算法DB对C进行解密,再用A的公开算法EA对DAM进行节目得到EA(DA(m))=m,从而得到明文m。这样的加密方案既能保证数据传输的方便快捷,同时也确保了相关信息的安全性与机密性。

3.2 利用Diffie-Hellman密钥协商改进Kerberos协议

本文中提出的KDH协议利用了Diffie-Hellman密钥协商来克服Kerberos协议易受到口令攻击的安全缺陷。Diffie-Hellman密钥协商算法可以使得通信双方得到一个共享密钥从而安全地交换密钥。

假设x是素数,y是x的本原根,x和y作为全程的元素公开发布,不进行保密处理。A选择一个保密的随机整数a,并将A=ya mod x发送给B。B也选择一个保密的随机整数b,并将B=yb mod x发送给A。然后A计算K=Ba mod x,B计算K=Ab mod x,A和B通过计算可以得到相同的密钥。因为a和b是保密的,攻击者无法通过a或者b来获得K的信息,除非攻击者采用求离散对数难题的方式,但这几乎是不可行的。

在客户与认证服务器进行认证的过程中使用Diffie-Hellman密钥协商,采用强密钥KDH代替原中的弱密钥K进行加密,可以防范口令猜测攻击,缓解Kerberos协议中易受口令攻击的安全威胁。

4 总结

Kerberos协议是目前应用最广的网络身份认证协议,相对于其他身份认证协议而言,它有着安全性高和实用性高的特点。但是对称密钥方案的特性导致了Kerberos协议存在一定的局限性。本文深入研究了Kerberos认证协议规范,在此基础上提出了Kerberos协议改进方案,即在Kerberos协议中引人RSA+ AES相结合的数据传输加密方案和利用Diffie-Hellman密钥协商改进Kerberos协议,克服了传统Kerberos认证协议中容易受到口令攻击和密钥管理困难等缺点,提高了协议的安全性。Kerberos是一个运用很广泛的身份认证协议,随着应有的不断深入,为了使用网路的高度发展,我们对它的研究和改进还需要不断的进行。

参考文献

[1]文铁华,谷士文.增强Kerberos协议安全性的改进方案[J].通信学报,2004.25(6):76~79.

[2] 刘坤,杨世平.对基于对称密码体制的Kerberos协议改进[J].网络安全技术与应用,2005.(5):6~8.

[3]莫燕,张玉清,李学千.对Kerberos协议的攻击及对策研究[J].计算机工程,2005.31(10):66~69.

[4]王泽成,王文龙,李志斌.基于身份的可认证会议密钥协商[J].计算机工程与设计,2004.25(10):1767~1770.

[5]郝文江,杨永川.对Kerberos网络认证的一种改进技术[J].网络安全技术与应用,2007.6:24~26.

[6]范宏生,叶震,侯保花.基于公钥密码体制的Kerberos协议的改进[J].计算机技术与发展,2006.16(4):224~227.

[7]李继勇.基于Weil对改进的Kerberos协议设计[J].计算机应用,2008.2~28.

[8]陈云,高静,邓亚平. Kerberos认证协议的研究及其优化[J].重庆邮电学院学报,2006.6.

[9]陈锋,徐正全,徐彦彦.一种利用Diffie-Hellman密钥协商改进的Kerberos协议[J].计算机应用,2007:12~27.