毕业论文_结合公钥认证方案的kerberos研究_第1页
毕业论文_结合公钥认证方案的kerberos研究_第2页
毕业论文_结合公钥认证方案的kerberos研究_第3页
毕业论文_结合公钥认证方案的kerberos研究_第4页
毕业论文_结合公钥认证方案的kerberos研究_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要身份认证是网络通信双方在通信时验证对方身份的技术。KERBEROS是基于可信第三方KDC使用对称密钥加密算法的认证协议。本文在对多种身份认证方法研究基础上,阐述了KERBEROS的原理,并分析其安全性和缺陷,提出利用KERBEROS公钥扩展方式来改善KERBEROS系统。关键词身份认证;KERBEROS;公钥证书;PKINIT协议第一章身份认证的研究与应用11身份认证概述身份认证的本质是被认证方有一些信息,如秘密的信息、个人持有的特殊硬件、个人特有的生物学信息,除被认证方自己外,该信息不能被任何第三方伪造。如果被认证方能采用某些方法,使认证方相信他确实拥有那些秘密,则他的身份就得到了认证。12身份认证方法的分类根据被认证方赖以证明身份的秘密的不同,身份认证方法可以分为三大类基于秘密信息的身份认证技术,基于信物的身份认证技术和基于生物特征的身份认证技术。大致来讲,有以下几种身份认证形式1根据用户所知道的某个信息,如口令、密码2根据用户所拥有的某个东西,用户必须持有的合法的物理介质,如智能卡、身份证、密钥盘3根据用户所具有的某种生物特征,如指纹、声音、视网膜扫描等。L基于口令的认证方式基于口令的认证方式是较常用的一种技术。认证方收到口令后,将其与系统中存储的用户口令进行比较,以确认对象是否为合法访问者。其优点在于简单易行,一般的系统,如WINDOWS,UNIX,NETWARE均提供对口令认证的支持。但这种方式存在严重的安全问题。它是一种单因素的认证,安全性仅依赖于口令,口令一旦泄漏,用户即可被冒充。也存在口令在传输过程中被截获的安全隐患。2基于信物智能卡的认证方式智能卡具有硬件加密功能,有较高的安全性。每个用户持有一张智能卡,智能卡存储用户个性化的秘密信息,同时在验证服务器中也存放该秘密信息。但其缺陷在于智能卡也可能会丢失、被复制,在这种情况下,系统的安全性也无从保障。3基于生物特征的认证方式这种认证方式以人体惟一的、可靠的、稳定的生物特征,如指纹、虹膜、掌纹等为依据,利用计算机的强大功能进行图像处理和模式识别。该技术具有很好的安全性、可靠性和有效性,与传统的身份确认手段相比,无疑产生了质的飞跃。但这种方案一般造价较高,适用于保密程度很高的场合。13身份认证技术如何有效的将各种身份认证技术有机的结合起来,设计和开发出更安全、便捷的身份认证系统,显得至关重要。目前主要有以下几种身份认证技术。131PAP认证PASSWORDAUTHENTIFICATIONPROTOCOLPAP认证1是最基本的安全认证协议,主要是口令核对,用户输入用户名、密码的验证过程。用户与服务器建立连接后,服务器根据用户输入的信息判定是否通过认证。密码以明文方式传输。132CHAP认证CHALLENGEHANDSHAKEAUTHENTIFICATIONPROTOCOLCHAP认证2是一种被广泛接受的工业标准,通过三次握手方式周期性的对被认证方的身份进行认证。其认证过程是,首先在通信双方链路建立阶段完成后,验证方向客户发送一个请求字符串,由标识符ID,随机数据,本地主机名或用户名组成;然后,客户方以请求的MDS哈希值作为响应最后认证方对发回的值进行校验,接受认证,并返回成功与否的信息。在双方通信过程中系统将以随机的时间间隔重复上述三步认证过程。在CHAP协议的实际使用过程中,用户为了便于记忆,往往使用容易记忆的口令,这样的口令不能有效地抵抗攻击者的字典攻击;而在服务器端,用户的口令是以明文方式存放,如果攻击者攻破服务器,那么就能轻而易举取得用户的口令。这些都是CHAP协议使用过程中的巨大隐患。133一次性口令认证一次性口令认证3在登录过程中加入不确定的因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。但是一次性口令认证只能防止在初次登录到站点时的重放攻击。认证结束之后,如果再登录网内的其他机器时,口令将以明文方式传输,此时口令的安全性就取决于企业内部网的安全性了。并且还存在小数攻击的问题。134基于挑战/应答CHALLENGE/RESPONSE方式的身份认证机制每次认证时认证服务器都给客户端发送一个不同的“挑战”字串,客户端收到后做出相应的应答。RADIUSREMOTEAUTHENTICATIONDIALINUSERSERVICE认证4就是采用这种方式,是目前拨号业务中较为成熟的一种远程认证技术。RADIUS认证系统采用基于UDP协议的客户机/服务器模式来认证和管理远程用户的连接和会话,是一种集“认证、授权、审计”AAA技术于一体的集中式管理方法。RADIUS系统只加密用户口令,用户其他信息以明文方式发送。135KERBEROS认证KERBEROS5是基于可信赖第三方认证协议,是较为成熟的身份认证机制。它利用随机产生的票据来获取会话密钥,避免了用户口令在网络上的传播,将认证从不安全的工作站转移到集中的认证服务器上,为开放网络环境中的两个主体提供身份认证,并通过会话密钥对通信进行加密。KERBEROS协议是当今重要的身份认证协议,优点很明显,但从其密钥分配和认证过程来看,还存在以下不足之处使用对称算法DESDATAENCRYPTIONSTANDARD,数据加密标准作为协议的基础,这就带来了密钥交换、密钥存储、以及密钥管理的困难,N个用户想同时通信,就需要NN1/2个密钥没有提供有效抵御口令猜测攻击的手段,同时还存在时钟同步问题。136X509基于X509证书6的认证技术类似于KERBEROS技术,它也依赖于共同依赖的第三方来实现认证,这里可依赖的第三方是指CACERTIFICATEAUTHORITY的认证机构。该认证机构负责认证用户的身份并向用户签发数字证书。数字证书遵循X509标准所规定的格式,因此称为X509证书。持有此证书的用户就可以凭此证书访问那些信任CA的服务器。基于X509证书的认证实际上是将个体之间的信任转化为个体对组织机构的信任,因此这种认证系统需要有CA的支持。目前,使用最多的认证方式还是最简单的口令形式,类似于系统登录过程中输入用户名/口令的基本认证方式系统事先保存每个用户的二元组信息,进入系统时用户输入其对应的用户名和密码,系统根据保存的用户信息与用户输入的信息相比较,从而判断用户身份的合法性。其安全性仅基于用户口令的保密性,不能有效的抵御口令猜测攻击并且用户名和口令都是以明文方式在网络中传输,极易遭受重放攻击REPLAYATTACK。攻击者通过监听网络连接来获得合法用户的登录名和口令等认证信息,随后利用这个获得的登录用户名和口令对系统进行非法访问。14身份认证技术的评价身份认证在一个安全系统中起着至关重要的作用,因此认证技术决定了系统安全程度。如何评价某一认证技术,可以遵循以下几个标准7L可行性2认证强度3认证粒度4认证数据正确。在深入比较和分析各种认证方法的基础上,KERBEROS协议是身份认证领域中较为成熟的应用协议,具有如下的一些优点它是基于可信赖的第三方的认证方式,适合于开放式的复杂网络环境认证过程设计合理,安全性高采用集中的用户帐号管理,减少了系统维护的负担采用双向认证机制等等。第一章KERBEROS协议分析21KERBEROS概述KERBEROS是MIT在80年代中期为其ATHENA8计划开发的一种基于KDC概念和NEEDHAMSCHROEDER方法的分布式认证服务系统,它可以在不安全的网络环境中为用户对远程服务器的访问提供自动的鉴别,数据安全性和完整性服务,以及密钥管理服务。KERBEROS的设计是针对以下要求实现的L安全性网络中的窃听者不能获得必要的信息来假冒网络的用户2可靠性KERBEROS应该具有高度的可靠性,并采用一个系统支持另一个系统的分布式服务结构3透明性用户除了被要求输入密码外,不会觉察出认证的进行过程4可扩充性系统应能够支持更多的用户和服务器,具有较好的伸缩性KERBEROS的设计目的分为三个领域认证、授权、记账,可用作建造安全网络的一个成分,它提供了可用于安全网络环境的认证机制和加密工具9。22KERBEROS协议原理KERBEROS系统要求用户使用其用户名和口令作为自己的标识,而客户与服务器之间的交互则使用由对应的用户名和口令所生成的会话密钥。每个用户都与KDC共享一个从自己口令中导出的密钥,称为主密钥。当用户A登录进本地系统的时候,便从KDC获取一个访问KDC所需的会话密钥SA和一个TGTTICKETGRANTINGTICKET,因此KDC又称为TGSTICKETGRANTINGSERVER。当A要访问B时,便凭借所获得的TGT向KDC申请一个临时的会话密钥KAB,客户使用这个会话密钥与对应的服务器交互。KDC自己拥有主密钥,用于在自己颁发的各种通知单中放置一块鉴别信息,以防止对通知单的伪造。在讨论协议之前我们需要定义一些符号和概念。C客户机S服务器A客户的网络地址V票据的有效时间T时间标记DC密钥分发中心S票据分发服务器AS认证服务器KXX与KDC的共享密钥KX,YX与Y的会话密钥TX,YX使用Y时的凭据AX,Y从X到Y的鉴别码MKX用X的秘密密钥加密的M在KERBEROSV系统中,整个认证过程模型如图21在KERBEROS认证模型中使用了两种数据结构作为包含有信任信息的信任状,分别是票据TC,S和认证标记AC,S。它们都是基于对称密钥加密的,但是被不同的密钥加密。票据被用来在身份认证服务器和应用服务器之间安全的传递票据使用者的身份。在图21中KERBEROUS基本认证过程可以分三段个阶段,分别由三组消息交换来完成。221票据允许票据的获得客户方和AS之间的消息交换和称为初始票据交换,这一阶段完成的是客户方向KDC请求与TGS通信时使用的票据以及会话密钥的过程,在RFC1510中被称为认证服务交换。用户进行网络登录时,需要输入用户名和口令,客户方通过发出消息KRB_AS_REQ向AS申请TGT,AS以消息KRB_AS_REQ作为响应。KRB_AS_REQ中主要包含有客户方名字,服务器名字和一个NONCE,这里的服务器是特殊的服务器票据发放服务器TGS。AS收到请求后判断请求的客户方确实存在,然后随机生成一个加密密钥KC,TGS作为下一阶段客户方与TGS通信时使用的会话密钥,构造一个特殊的票据TGT。TGT中列出了客户方,会话密钥,以及开始和时效时间等信息,用TGS的秘密密钥进行加密。AS将新的会话密钥和NONCE用客户方的密钥KC加密,完成一个简单的挑战/响应过程以保证消息的新鲜性,再将这些消息与TGT一起构成KRB_AS_REQ作为消息2送回给客户方。客户方计算机利用用户输入的口令变换出K。就能获得会话密钥KC,TGS,并且从NONCE可以验证该消息是新鲜的,确信获得的TGT是刚从AS最新生成的。222服务器票据的获得消息3和4构成了服务器票据交换过程,使客户方向TGS请求与最终应用服务器进行通信所需要的票据和会话密钥的过程。票据发放服务交换是在客户方与TGS之间进行的消息交换,当客户方需要与某个特定的服务器进行通信时需要向TGS申请访问该服务所需要的票据。对已有的票据进行更新,确认等也可以利用这一交换。TGS交换的消息的格式与AS交换的消息的格式相类似,但是有一个显著的区别在于这里使用的加密解密密钥是会话密钥而不是客户方的共享密钥。TGS交换由KRB_TG_REQ和KRB_TG_REP两个消息组成在KRB_TG_REQ中包含有客户方访问TGS的TGT,需要访问的服务器名字,保证消息新鲜性的NONCE以及一个身份认证者就是用会话密钥签名的客户方信息,这是为了保证这些数据在传输过程中没有被篡改。TGS用自己的密钥KTGS验证了TGT后获得会话密钥和客户方要访问的应用服务器名称,从数据库中获得应用服务器的密钥K后随机生成客户方与应用服务器之间通信用的会话密钥和票据。TGS将客户与服务器之间使用的新的会话密钥和NONCE用它从客户方发过来的TGT中获得的会话密钥KC,TGS加密后与新的服务器票据一起构成响应消息KRB_TGS_REP传回给客户方,完成TGS交换。223应用服务请求经过AS交换和TGS交换后,客户方获得了与服务器方进行通信所需要的票据和会话密钥。下面只要通过客户/服务器认证交换就可以完成双方的认证过程。客户/服务器认证交互是由KRB_TG_REQ和KRB_AP_REP两个消息组成的,其中后一个消息只是在需要双向认证,服务器向客户证实自己的身份时才使用的,对应于图21中的消息5和6。KRB_AP_REQ的结构很简单,包含有认证者信息和提交给服务器的票据。票据本身己经完全能够证明客户方的身份,认证者标记这是防止票据被篡改。服务器通过解密KRB_AP_REQ中的认证者标记获得客户方的时间标记或者是序列号,将这些信息用会话密钥加密后就构成了消息KRB_AP_REP。客户方保留有最近若干分钟内所有接收到的时间标记或者序列号的最大值,来防止重放攻击。第三章KERBEROS协议安全分析和改进措施31KERBEROS协议安全分析尽管KERBEROS的公开报告STEI88声称KERBEROS具有“高度的安全性、可靠性、透明性和可伸缩性如果系统自身是安全的,则KERBEROS身份验证服务就是安全的”等优点,但从第二章的KERBEROS系统具体的密钥分配、认证过程和攻击的角度来看,KERBEROS的局限性也是比较明显的10,有以下几个方面存在不足之处1时间同步问题整个KERBEROS的协议都严重地依赖于时钟,实际证明,要求在分布式系统环境中实现良好的时钟同步,是一个很难的课题,而且大多数网络的时间协议都是不安全的。但这并不是说KERBEROS没有出路可言。如果能够实现一种基于安全机制的时间服务,或是研制一种相对独立于计算机和网络环境、且基于一种或几种世界标准时钟的,能够准确进行时间转化和时间服务的联机物理时钟,这种问题将得到较好的解决。2口令猜测问题KERBEROS的口令没有进行额外的特殊处理,攻击者可以收集大量的许可证,通过计算和密钥分析进行口令猜测。攻击者使用强力攻击即穷举法的时间复杂度仅和用户口令的长度成比例。若是增加密钥长度换取更高的安全,会造成用户的使用困难和增加系统加/解密开销。3认证域之间的信任问题认证域之间的多级跳跃过程复杂且不明确,相互信任和协调不方便。若各KERBEROS区域形成复杂或不规则的网状结构,则要求方便的域间服务,将付出极大的代价,即系统的可扩充性不强。针对这种无序的状况,应有规划有目的地建立起全球一体化的分层树状结构,形成良好的信任链条。4密钥的存储问题KERBEROS认证中心要求保存大量的共享私钥,随网络用户数量的增加,密钥管理与分配较复杂,需要特别细致的安全保护措施甚至应采用硬件/物理方法,将付出极大的系统代价。5系统程序的安全性、完整性问题对KERBEROS系统程序进行攻击,特别是恶意篡改登录程序,是有效的攻击方法。所以,必须花一定的系统代价去防范对认证系统本身的集中攻击。其中,建立高性能的防火墙和进行日志是必要的。对于以上KERBEROS协议中的不足之处,加强工作可以引用执行公开密钥算法和密钥管理中使用的智能卡11L接口。32KERBEROS结合公钥认证方案的研究KERBEROS在最初设计的时候没有采用公钥体系,这是因为当时应用公钥体系的某些条件还不成熟。例如公钥算法的复杂程度比较高,需要占用一定的CPU资源,当初的一些计算机在性能上还不能满足高效的应用公钥算法的要求;另外公钥基础设施也尚不完备,与之配套的全球目录服务系统,证书和密钥的管理等方面的标准也不成熟。但是随着时间的推移和技术的发展,从安全技术的角度上来说,采用公钥系统也能够弥补对称密钥系统的一些难解决的问题,特别是在INTERNET环境中公钥系统比对称密钥系统有着明显的优势。但是公钥体系并不能消除对于其他安全和身份认证服务的需要,也不会取代传统基于KDC的身份认证系统,特别是像KERBEROS系统。公钥基础设施PKI和KERBEROS都是提供身份认证和授权服务的,但是它们各有特点和适用的范围。PKI适合在事先无法确定用户的场合下,例如在INTERNET中用户随时可能产并且也无法确定用户的具体情况,因此在电子邮件安全,电子商务事务等上边的应用非常的适合。KERBEROS适用于用户和应用事先都已经知道的的INTRANET的环境,而PKL适合于INTRANET和EXTRANET的网络环境。因此PKI和KERBEROS经常同时出现,使用KERBEROS向网络认证了用户,然后获得用于数字签名等功能的公钥证书或者私钥数据。经常同时出现,使用KERBEROS向网络认证了用户,然后获得用于数字签名等功能的公钥证书或者私钥数据。随着公钥系统的不断发展和基础设施的改进,人们提出了很多的KERBEROS公钥扩展方案,这些方案提供KERBEROS与公钥系统的互操作性并且改善KERBEROS系统的性能,其中包括领域间采用公钥认证方式,利用公钥进行预认证方式等。IETF的通用认证技术工作组提出了若干方案,如利用公钥进行预认证PKINIT12,利用公钥跨区域认证PKCROSS,基于公钥的KERBEROS协议PKCROSS13等。提供了KERBEROS与公钥系统的结合并且改善了KERBEROS系统性能。32PKINIT协议所有版本的KERBEROS都在寻找在通信双方建立安全同时维护数据的保密性和完整性同时发现假冒者和重放的攻击。在KERBEROS的早期版本,集中化的密钥分发中心通过对称密钥加密来认证用户,然后给这个用户一个共享密钥来与服务器进行后续的通信。这会潜在引起KDC成为整个系统的瓶颈同时单个登陆点的失败会引起整个系统的崩溃。另外在KERBEROS基本协议中每一次客户向AS要求票据允许票据时,票据允许票据总是由一个长期的客户方与AS共享的密钥加密,这个密钥是由用户口令经过计算产生的。但是由于用户趋向于选择的低质量容易记忆的口令,所以共享密钥容易遭受到字典猜测攻击,成了整个KERBEROS系统的安全弱点。PKINIT协议试图利用引入基于X509的公钥证书来克服这个弱点。在初始认证阶段AS_REQ和AS_REP消息中使用公钥机制,后续的消息操作继续使用原来的KERBEROS的协议。PKINIT协议消息交互过程如下PKINIT利用KERBEROS版本5中的PAPREAUTHENTICATION域。用户同往常一样向KDC发出认证请求,所不同的是用户在初始认证步骤中使用公钥体系,他的证书初始认证的PA域中。KDC接收到认证请求后,验证用户的公钥证书与往常一样签发TGT,但是不是使用用户的长期的密钥进行加密,而是使用随机生成的密钥。该随机密钥用用户证书中的公钥进行加密并且用KDC的私钥进行签名,出现在响应信息的PA域。AS_REQ这个消息定义公钥数据的传输PA_PK_AS_REQ,客户端发送公钥证书和证书链用户证书USERCERT在用户和KDC之间建立信任,以及传播用户的公钥。公钥可以由证书权威签发,如果KDC是受信任的权威也可以由KDC来维护公钥。初始认证的PA域中包含的数据内容有PA_PK_AS_REQSIGNEDAUTHPACK,TRUSTEDCERTIFICATES,KDCCERT,ENCRYPTIONCERTSIGNEDAUTHPACK是客户端用私钥签名的认证数据结构。这个数据结构由AUTHPACK数据以及用户用私钥对其的签名信息SIGNERINFOS构成。而AUTHPACK由随机数,客户方时间,校验和等内容组成,以防止重放攻击。TRUSTEDCERTIFIERS是客户端信任的CA列表。KDCCERT指明了客户端己经拥用的KDC证书。ENCRYPTIONCERT主要用于客户端的DIFFIEHELLMAN证书。整个信息包含在KERBEROS预认证字段为支持协议扩展而定义的。AS_REP这个消息定义了KDC向客户端返回的消息PA_PK_AS_REP。KDC通过验证SIGNEDAUTHPACK的数字签名来证实用户的身份。通过验证之后,KDC返回给用户一个用用户公钥加密KDC的公钥的证书链KDCCERT,KDC的数字签名SIGNEDREPLYKEYPACK和会话密钥ENCTMPKEYPACK的消息。KDC加密的票据允许票据响应消息不是用与用户长期共享的密钥,而是产生一个随机密钥来加密响应消息,然后对随机密钥使用用户公钥加密和KDC的私钥签名。客户端验证数字签名可以确定KDC的身份和获取TGT。用户从AS_REP消息中获取的TGT和基本KERBEROS没有区别,所以后面消息交互3,4,5使用传统的KERBEROS的消息处理。从上述的消息交互分析过程中可以看出,与KERBEROS基本认证协议相比PKINIT只对前两条认证消息中用PA数据类型进行公钥信息交换,实现上对KERBEROS改动很少。33现有方法的不足之处PKINIT的主要目的是为KERBEROS提供公钥初始认证的解决方案。采用公开密钥证书,一个客户方可以向KDC证明自己的身份并且获得TGT,TGT能使客户方获得对KERBEROS化服务的服务票据。与KERBEROS标准协议相比在PKINIT中AS_REQ和AS_REP消息都保持了原状,PKINIT只是在初始消息、交换利用了新的PA数据类型来进行公钥信息交换。由于KERBEROS版本4中KDC对于任何人发出的认证请求都给予响应,有人指出应该让请求服务的一方首先证明自己的身份,因此在KERBEROS版本5中加入了PA域。PKINIT协议就利用了PA域进行客户和服务器公钥证书的交换,证书的交换、公钥认证和TGT的传递在两个消息中就能够完成。以上的KERBEROS公钥结合方案还是存在一下的不足之处LPKINIT协议虽然是一个高效的公钥结合机制,但是PKINIT只描述了标准KERBEROS认证协议中使用的消息语法,所有的私钥和公钥都由KDC直接管理,没有结合PKI来管理证书或者撤消列表。这样限制了PKINIT的应用范围。2在KERBEROS基本认证过程6个消息中有4个需要KDC参与。KERBEROS结合公钥密码后,KDC的用于公钥密码的计算量比原来对称密钥要增大,当用户认证请求增多时,KDC可能成为整个系统中计算瓶颈的潜在因素,导致影响整个系统的性能。小结本章对身份认证方法和技术及KERBEROS协议的安全性和缺陷作了分析。KERBEROS存在“时间同步、口令攻击、没有提供用户对KBS和TGS的认证、不能分别处理认证信息与保密信息、密钥管理工作繁重”等缺点。严重的局限了KERBEROS系统在INTERNET环境下的应用。随着公钥基础设施的不断发展改进,提出利用公钥进行预认证PKINIT,提供KERBEROS与公钥系统的互操作性并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论