admin管理员组

文章数量:1530354

2024年7月30日发(作者:)

计算机系统 用 2011 第2O卷第1期 

Kerberos协议在单点登录系统中的改进及应用① 

陈丽,于东海 

(黄河科技学院计算机科学系,郑州450063) 

摘要:深入分忻了Lj前国内外流行的 点登录摸掣,探tqT对称密铡下Kerberos协议的局限性,然后结合公 

点登录系统的安全性。该方案在可实施性、运行可靠性以及管 等方山都有较好的性能。 

钥技术,对Kerberos认证协议进行改进。设讣并实现了基于代 的 点登录子系统,使用_二次票据方法保证了 

关键词: .点登录:Kerberos协议;身份认证;代理;票据 

Improvement and Application of Kerberos Protocol to Single Sign-On System 

CHEN Li,YU Dong—Hai 

(Department ofComputer Science,HUANGttE Science and Technology College,Zhengzhou 450063,China) 

Abstract:This paper researches existing popular Single Sign-On model and Kerberos authentication protocol,and 

discusses the limits of Kerberos protocol in symmetric key technology,inlproves Kerberos protocol with the public key 

technology.Then it designs and realizes the agent—based single sign—on system,and by the second ticket method,ensures 

the safety of the SSO system.Meanwhile,the program has better performance in implementation,operating and 

management. 

Keywords:SSO;Kerberos protocol;identify authentication protocols;agent;ticket 

随着计算机和网络应用的快速发展,计算机用户 

每天都要登录到多个不同的应用系统中【1】。用户将不 

得不按照各个应用系统的要求分别登录进入相应的系 

统。这需要管理员针对不同的应用系统和用户设置登 

(5)无法统一分析用户的应用行为。 

解决上述问题的方案是采用单点登录技术(single 

sign.on,SSO) 。用户只需一次身份验证,就可对所 

有被授权的应用系统或资源进行无缝的访问,从而提 

录凭证、维护管理各个系统的用户信息库,不但增加 

了_【=作量同时也存在安全隐患,将导致以下问题: 

(1)如每个系统都开发各白的身份认证系统将造 

成资源的浪费,消耗开发成本,并延缓开发进度; 

高工作效率,降低操作成本,提高系统的整体安全性。 

1 SSO模型 

当前流行的SSO模型主要有三种I31:基于Broker 

(2)多个身份认证系统会增加整个系统的管理工 

作成本; 

(3)用户需要记忆多个帐户和口令,使用极为不 

便。 

的SSO模型;基于Agent的SSO模型;基于Gateway 

的SSO模型。三种模型中,通过分析基于Agent的SSO 

模型系统扩展性好,方便系统增加新的服务。在此模 

型中,应用服务器在认汪代理服务器注册后,即可为 

(4)无法实现统一认证和授权,多个身份认证系统 

使安全策略必须逐个在不同的系统内进行设置,因此 

修改策略的速度可能跟不上策略的变化; 

①收稿州间:2010.05—03:收到修改稿时I'nJ:2010-06.21 

客户提供新服务。与基于认证网关的模型相比,此模 

型减小了认证服务器的负担,经过身份认证后,客户 

机和服务器交互时不再经过认证服务器,而足二者直 

36系统建设System Constuctrion 

20 1 1年第2O卷第1期http://www.C-S-a.org.{211 计算机系统心用 

接通信,没有了认Ⅱ 关模型叶1由丁认证网关而带米 

的瓶颈问题。 援捌对灵活,此模型中认证代 服务 

器和 用服务器可分布 互联网巾的不同地方,而不 

必集中在一起。 

技术自‘机地融合到Kerberos中去,便能提高Kerberos 

协议的安全性。从将米的发腱来看,将公铡系统结合 

进现有的系统rf1去也足一种趋势。基丁 这种考虑,并 

结合系统的实际情况,文中设讣了一个适合于本系统 

的认汪协议。在此协议中使用代表用户访问次数的“共 因此,选择基-T Agent的SSO模型构建单点登录 

认证系统。 

2 SSO协议的设计 

现有的 点登录系统多基于Kerberos协议实现。 

Kerberos采用对称密钥技术给协议的应用带来一定局 

限性。本文对SSO系统认证协议的设计,充分吸取了 

Kerberos协议的设计思想,并通过分析该协议的缺点, 

设计了适用于本系统的认证协议。 

Kerberos协议在用户登录时,利用AS验证用户 

身份并发放票据。用户使用该票据获得TGS的授权访 

问其它任何一个服务,这样,在访问各应用服务时, 

用户只需进行一次身份认证,实现了单点登录,即 

SS0。 

关于Kerberos协议的基本原理不再详细叙述。通 

过分析Kerberos协议存在以下局限性: 

(1)认证票据的正确性足基于网络中所有的时钟 

保持同步,如果主机的时间发生错误,则原来的认证 

票据就是可能被替换的。因为大多数网络的时间协议 

是不安全的,所以,分布式计算机系统中这将导致极 

为严重的问题。 

(2)原有的认证服务可能被存储或替换,虽然时间 

戳是专门用于防止重放攻击的,但在票据的有效时间 

内仍然可能奏效,假设在一个Kerberos认证域内的全 

部时钟均保持同步,收到消息的时间在规定的范围内 

(假定规定为3分钟),就认为该消息是新的。而事实上, 

攻击者可以事先把伪造的消息准备好,一旦得到票据 

就马上发出伪造的票据,在这3分钟内是难以检查出 

来的。 

(3)Kerberos防止口令猜测攻击的能力很弱,攻击 

者通过长期监听可以收集大量的票据,经过计算和密 

钥分析进行口令猜测。4.随着用户数增加,密刨管理 

较复杂。Kerberos拥有每个用户的口令字的散列值,AS 

与TGS负责用户问通信密钥的分配。当N个用户想 

同时通信时,仍需N fN.1)/2个密钥。 

从对Kerberos的局限性分析可以看出,其很多缺 

陷均是由于采用对称密钏技术造成的。如果能将公钥 

享变量”N来防止重放,图l足对本协议消息流程的 

描述。 

认证代理暇务器AA 

图1本系统协议消息流程图 

改进后的协议如下: 

①票据请求(Ticket

_

req),C->AS:C,S,N,CertC 

②票据发放(Ticketrep),AS->C:TGT,((Kct,N) 

SignAS)EncCp 

TGT ((C,AS,Kct,N,lifetime)SignAS)EncTGTp 

@TGS票据请求(Ticket req),C。>TGS:TGT,(N, 

seq)Kct 

@TGS票据发放(Ticket

_

rep),TGS一>C:TS,((Kcs,N) 

SignTGT)EncCp 

TS ((C,S,Kcs,N,lifetime)SignTOT)EncCs 

⑤服务请求(S

_

req),C->S:Ts, ,ra,seq,opinion)Kcs 

⑥服务器身份认证(S_rep),S->C:(ra)Kcs( ̄由 

opinion决定) 

符号表示说明: 

AA:认证代理服务器(Authentication Agen0: 

C:用户端(Client)唯一标识; 

S:应用服务器(Server)唯一标识; 

Xs:X的私 ; 

Xp:X的公钥; 

CertC:C的证书序列号; 

(1nfo)SignXs:用x的私钥对信息Info签名: 

(1nfo)EncXp:用X的公钥对lnfo加密: 

(1nfo)K:用对称密铡K对Info加密; 

计算机系统成用 http://www.c—S—a.org.cn 201 1年第20卷第1期 

TGT:认证代理AS为用户C访问服务器TGS而 

生存期内用户能够重复使用票据,而不必再向认证代 

理AA提出申请。对于票据生存时间,由认证代理AA 

颁发的票据: 

TS:TGS为用户C颁发的访 服务器S的票据; 

No:用户端C保存的一个整数,记录用户访问次 

数; 

在发放票据的时候给出。 

在第五步中,用户C除了向应用服务器S提交最 

初协议中的内容外,还加入了ra和seq,ra为C生成 

的一个随机数。在最初的协议中,使用Kcs做为会话 

Ns:应用服务器S所保存的用户访问次数,用于 

防止重放; 

密钥,在这里使用ra做为二者会话密钥,因为用户C 

在票据的生存期内可以重复访问服务器S,出于安全 N:协议消息中使用的用于防止重放的整数,其 

值由Nc决定,在此称之为“同步变量”。 

Lifetime:票据生存时问,(从服务器第一次接收 

服务请求后开始计时); 

ra:随机会话密钥; 

seq:服务请求序列号; 

opinion:用户是否要求对服务器验证,1:要求, 

0:不要求。 

在Kerberos中,采用了发放票据的方法实现了权 

限的集中管理,本系统中也采用用户向认证代理AA 

证实自己的身份来取得票据。此时,认证代理便可以 

根据用户的权限的情况来决定是否发给用户票据。当 

应用服务器S取得服务请求后,S应该可以验证票据 

的发放者和票据的持有者的身份。 

由于采用了公钥体制,用户的身份已经包含在证 

书中了:利用签名,则可以保证消息来源的真实性、 

完整性和不可否认性:利用接收方的公钥加密,即可 

以保证只有接收方才能将数据解开,同时也能保证消 

息的完整性和机密性:使用各方所拥有的本地所保存 

的同步变量N,就可以保证消息的新鲜性。 

在规模较大,网络中各实体比较分散的网络环境 

下,实现系统各部分的时间同步可以说非常困难。本 

系统利用了同步变量N来替换Kerberos中的时间戳。 

对于同步变量N,其应为位数足够大的整数,在初始 

使用时,由于客户端C、服务器s本地均没有变量N, 

则认为其值为null,null小于任何一个整数。当用户端 

第一次进行传输时需要取N=Nc+l,即N=null+l,这 

时可以取一个适当范围内的随机数,做为第一次会话 

中使用的N。当应用服务器S收到N后,便可以为此 

用户设置本地变量N的值。 

在上述协议巾可以引入票据生存期(1ifetime)参 

量。 

在第_:和第四步中,认证代理AA在票据中加入 

了票据的生存期lifetime,说明此票据的生存时间。在 

38系统建设System Consturction 

性考虑,每次会话都使用不同的会话密钥ra。为了防 

止在票据的生存期内攻击者对服务器请求消息的重 

放,协议中引入了请求的序列号seq。seq从1开始,每 

次加一。 

对于服务器S,除了保留同步变量N外,还要保 

存用户票据的到期时问Texp,以及用户最后一次服务 

请求的序号seq。 

当服务器S收到用户的请求服务消息后,取得票 

据中的N有可能出现以下三种情况: 

(1)N>Ns,说明此请求使用的是新票据,在对请 

求的所有验证通过后,则使Ns=N,设置过期时间 

Texp=Tnow+lifetime,同时使本地所保存的seq为此次 

请求的中的seq; 

(2)N=Ns,说明此请求为重新登录请求,此时检 

查Tnow>Texp,看票据是否过期,在验证票据的发放 

者和持有者后,还要检查请求中的序列号seq是否大 

于本地所保存的上次请求的序列号,如果成立,则将 

seq更新为此次的请求的序列号,否则认为此消息为重 

放消息。 

(3)若N<Ns,则认为此消息为重放消息,将其抛 

弃。 . 

若opinion=1,则用户要求对服务器验证,此时服 

务器S需要返回消息6,若opinion=0则服务器不需要 

返回用户对自己的认证消息6。 

在第六步中,服务器将ra加密后返回给用户C, 

由于ra的随机性,所以攻击者无法冒充,也无法进行 

重放,这样就验证了此消息的真实性和新鲜性。 

3安全性分析 

分析此协议的安全性时,我们主要从协议的逻辑 

性方面米分析,因为像拒绝服务等攻击方式,应该由 

防火墙或入侵检测系统来阻1 这里我们主要采用了 

BAN逻辑分析协议的安全性,BAN逻辑足基于知识 

2011年第2O卷第J期 http://w, ̄,W.C—s—a.org.cn 汁算机系统应用 

和信仰的形式逻辑分析方法,它足通过认证协议运行 

过程中消息的接收和发送,来从最初的信仰逐渐发展 

为协议运行要达到的目的主体的最终信仰。由于协议 

足所要中请的服务,然后向合法用户发放票据,并规 

定票据的生命期等。 

在本系统中使用 二次票据法米增强系统安全性。 

证明篇幅较长辑方法来分析协议的安全性,由于篇幅 

较长,这里不再给出具体的证明过程。 

用户端中请服务票据时,用户需要分别与AS和TGS 

进行交互,在这其中用户使用了两张票据,~张用来 

访问TGS,一张用米访问所请求的服务,而且每个票 

4 SS0系统的实现 

上述对SSO系统的设计主要是在高速公路工程信 

据都有其生命期。将认汪代理服务器分为两部分,一 

部分为AS,另一部分为TGS,如图3所示。当用户申 

息管理系统(HighWay Project Information Management 

System,简称HWPIMS)中应用。在本系统中包括多个 

应用子系统,如:支付系统、信息上报系统、审批系 

统、信息查询系统等,同时用户众多,人员结构复杂, 

这就给运行在网络环境下的系统提出了较高安全性要 

求。因此在HWPIMS系统中提供单点登录功能,用户 

可以无缝地访问信息平台中所有授权的应用系统,同 

时提高了系统的整体安全性。整个系统的运作主要是 

基于Windows平台,认证代理服务器和应用服务器程 

序的运行平台为Windows 2000,而客户端主要使用的 

是Pocket PC,操作系统为Windows 2000。开发工具 

主要是VC,密码函数库选用的是微软的CryptoAPI。 

单点登录子系统主要负责用户的登录与认证,也 

为应用服务器提供用户的一些基本权限信息。系统结 

构如图2所示。主要包括认证代理AA及证书颁发机 

构 

图2认证系统结构图 

证书分颁发机构(CA):或称认证中心,主要负责 

对整个系统中各实体身份进行统一管理,能够生成证 

书与制定证书安全策略,同时还要负责对证书库的管 

理和维护,从而完成整个证书的生命周期管理。另外, 

证书中心还需要提供对私钥的备份与恢复功能。 

认证代理(AA):认证代理作为々门用:】 提供认证 

服务的服务器,主要完成用户访问 用服务的授权, 

负责对用户的合法性及其级别进行检查,看其是否满 

请服务时,先与AS交互,得到访问TGS的票据,用 

户可以在较长一段时问内,利用此票据来向TGS提出 

申请其它服务。这样,用户输入用户口令的操作只在 

向AS提出申请访问TGS的票据时使用,在此票据生 

存期内,用户申请其它服务,用AS颁发的票据向TGS 

提出申请即可,而不用再利用自己的私钥。 

图3 “二次票据”方法 

在会话期间,非法攻击者有可能会盗取用于向 

TGS申请服务的票据,但由于此票据有生命期,当票 

据过期后,攻击者再进行进一步的破坏活动,因此可 

减小由此带来的损失。 

4.1 SSo流程 

下图描述了未认证的用户访问应用程序的过程, 

认证服务器分为AS与TGS两部分。具体描述如图4 

所示。

 

 一

 

TG3 l F1Iter  {b 

—T一一 r一 …r——一 

r__L堑盟缝 ’f、 

蛐 

 

一, 

… 

IL

 :

……….

上翌 ……』

;) 

.,一 :

 

 

 

 

jI  :IIl_ l4、 I \ j1 

0…… I.………一} I上 …k……一…0……  。 t一; 

图4 SSO流程序列图 

System Construction系统建设39 

一 

汁算机系统应用 http://www.c・S-a.org.cn 20 1 1年第20卷第1期 

(1)用户首先到第一个认证代 服务器AS请求 

访问TGS的票据,如用户验证通过,则到第二个认征 

分负责接收发送与用户进行通信的消息;消息处理 

部分主要负责对用户消息进行具体处理;数据库部 

分主要负责用户CRL列表以及用户的权限的存放; 

代理服务器请求访问应用服务所需要的票据TS,否 

则,返『p1失败信息。 

(2)用户通过认征则将请求转发到Filter,Filter 

策略配置模块主要负责系统运行时一些可变参数的 

指定:日志部分负责记录各种事件,并提供管理员 

查询接口。 

拦截此请求,判断是否已经通过认证。如果用户未通 

过认证,返回失败信息。 

(3)如果用户已经通过认证,Filter判断用户请求 

5 总结 

中有没有希望访问的业务应用程序地址信息,将请求 

转发到系统选择页面。 

4.2 SSO代理服务器 

认征代理服务器主要负责用户访问的授权,为用 

户对应用服务器的请求颁发票据。图5是认证代理服 

务器的总体结构。 

图5认证代理总体结构 

认证代理主要功能为完成对用户的票据请求处 

理,根据用户等级及权限进行访问授权。通信接口部 

本文结合公钥技术,对Kerberos认证协议进行 

改进。设计并实现了基于代理的单点登录系统,使 

用二次票据方法保证了单点登录系统的安全性。在 

本系统中减少了用户多次登录认证;减轻了维护人 

员数据维护的困难;第三方应用容易实现单点登录。 

同时该系统在开发时就充分考虑了扩展性。Server 

使用了平台无关的Java语言开发,整个系统的数据 

通信过程采用SSL协议。下一步的工作重点是将该 

系统进一步完善,由于在系统中使用加解密算法增 

加了系统的时耗,怎样降低系统负担,提高效率也 

是一个要解决重要问题。 

参考文献 

1孙宝林,杨球,吴长海.RSA公开密钥密码算法及其在信息 

交换中的应用.武汉理工大学学报(交通科学与工程版), 

2000,24(2):169—172. 

2李腊元,李春林.计算机网络技术.北京:国防工业出版社, 

2001.300. 

3肖攸安,李腊元.一类高效密钥协商方案的研究.武汉理工大 

学学报(交通科学与工程版),2003,27(6):758--761. 

本文标签: 用户系统票据