您好,欢迎访问三七文档
当前位置:首页 > 外语资料 > 英语基础 > 崔永泉第四讲Kerberos协议
1第4讲Kerberos协议华中科技大学计算机学院信息安全研究室21Kerberos协议概论2Kerberos协议原理3Kerberos协议实现4Kerberos协议安全性分析第4讲Kerberos协议31Kerberos协议概论2Kerberos协议原理3Kerberos协议实现4Kerberos协议安全性分析第4讲Kerberos协议41.1引言1.2分布式系统面临的安全问题1.3Kerberos协议解决问题1.4Kerberos协议的安全方案1Kerberos协议概论51.1引言Kerberos:MIT的Athena计划的一部分。GreekKerberos:希腊神话故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门的守卫。ModernKerberos:意指有三个组成部分的网络之门的保卫者。“三头”包括:认证(authentication)簿记(accounting)审计(audit)61.2分布式系统面临的安全问题在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够认证对服务的请求。工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。71.3Kerberos要解决的问题所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。Kerberos采用传统加密算法(无公钥体制)。KerberosVersion4和Version5(RFC1510)。81.3信息系统资源保护的动机单用户单机系统。用户资源和文件受到物理上的安全保护;多用户分时系统。操作系统提供基于用户标识的访问控制策略,并用logon过程来标识用户。Client/Server网络结构。由一组工作站和一组分布式或中心式服务器组成。91.3C/S环境下三种可能的安全方案相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。101.4Kerberos的解决方案Kerberos支持以上三种策略。在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。总体方案是提供一个可信第三方的认证服务。111.4Kerberos系统应满足的要求安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。可靠。Kerberos应高度可靠,并且应借助于一个分布式服务器体系结构,使得一个系统能够备份另一个系统。透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。可伸缩。系统应能够支持大数量的客户和服务器。121Kerberos协议概论2Kerberos协议原理3Kerberos协议实现4Kerberos协议安全性分析第4讲Kerberos协议132KerberosVersion4引入一个信任的第三方认证服务,采用一个基于Needham&Schroeder协议。采用DES,精心设计协议,提供认证服务。145.5.1Needham/SchroederProtocol[1978]155.5.1传统加密方法1、AKDC:IDA||IDB||N12、KDCA:EKa[Ks||IDB||N1||EKb[Ks||IDA]]3、AB:EKb[Ks||IDA]4、BA:EKs[N2]5、AB:EKs[f(N2)]保密密钥Ka和Kb分别是A和KDC、B和KDC之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥Ks给A和B。A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密、并理解。第4步表明B已知道Ks了。第5步表明B相信A知道Ks并且消息不是伪造的。第4,5步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。Needham/SchroederProtocol[1978]165.5.1上述方法尽管有第4,5步的握手,但仍然有漏洞。假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。C可以在第3步冒充A利用老的会话密钥欺骗B。除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。如果C可以中途阻止第4步的握手信息,则可以冒充A在第5步响应。从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。175.5.1DenningProtocol[1982]改进:1、AKDC:IDA||IDB2、KDCA:EKa[Ks||IDB||T||EKb[Ks||IDA||T]]3、AB:EKb[Ks||IDA||T]4、BA:EKs[N1]5、AB:EKs[f(N1)]|Clock-T|t1+t2其中:t1是KDC时钟与本地时钟(A或B)之间差异的估计值;t2是预期的网络延迟时间。182一个简单的认证对话引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。另外,AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经通过物理上或以更安全的手段分发。19考虑以下假定的对话:(1)CAS:IDC||PC||IDV(2)ASC:Ticket(3)CV:IDC||TicketTicket=EKV[IDC||ADC||IDV]其中:C:clientAS:AuthenticationServerV:serverIDC:identifierofuseronCIDV:identifierofVPC:passwordofuseronCADC:networkaddressofCKV:AS与V共有的保密密钥CVAS(1)(2)(3)ADC防止何种攻击?20更安全的认证对话两个主要问题希望用户输入口令的次数最少。口令以明文传送会被窃听。解决办法票据重用(ticketreusable)票据许可服务器(ticket-grantingserver,TGS)21改进后的假想的对话:用户登录的每次对话:(1)CAS:IDC||IDtgs(2)ASC:EKC[Tickettgs]每种服务类型一次:(3)CTGS:IDC||IDv||Tickettgs(4)TGSC:TicketV每种服务会话一次:(5)CV:IDC||TicketVTickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]TicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]CVAS(1)(2)(3)TGS(4)(5)Kerberos222方案的详细描述用户向AS请求代表该用户的票据许可票据。AS发回加密的票据,密钥由口令导出(Why?)票据许可票据包含用户ID、网络地址、TGS的ID、时戳与生存期(Why?)。用户请求服务许可票据。TGS验证,如通过则发服务许可票据。用户使用服务许可票据请求服务。23KerberosV4的认证对话两个问题与TGS相关的生存期问题;太长则?太短则?如何应付票据的过期使用?需要服务器向客户进行认证其本身;假的服务器。解决方案会话密钥(sessionkey)AS用安全方式向用户和TGS各自提供一块秘密信息,然后用户也以安全方式向TGS出示该秘密来证明自己的身份。这个秘密就是会话密钥。24KerberosV4报文交换总结认证服务交换:获得票据许可票据(1)CAS:IDC||IDtgs||TS1(2)ASC:EKC[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]25KerberosV4报文交换总结票据许可服务交换:获得服务许可票据(3)CTGS:IDV||Tickettgs||Authenticatorc(4)TGSC:EKc,tgs[Kc,v||IDV||TS4||Ticketv]Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]Ticketv=EKV[Kc,v||IDC||ADC||IDv||TS4||Lifetime4]Authenticatorc=EKc,tgs[IDc||ADc||TS3]26KerberosV4报文交换总结客户/服务器认证交换:获得服务(5)CV:Ticketv||Authenticatorc(6)VC:EKc,v[TS5+1](formutualauthentication)Ticketv=EKV[Kc,v||IDc||ADc||IDv||TS4||Lifetime4]Authenticatorc=EKc,v[IDc||ADc||TS5]27基本原理(a)认证服务交换Message(1)Client请求ticket-grantingticketIDC:告诉AS本client端的用户标识;IDtgs:告诉AS用户请求访问TGS;TS1:让AS验证client端的时钟是与AS的时钟同步的;Message(2)AS返回ticket-grantingticketEKC:基于用户口令的加密,使得AS和client可以验证口令,并保护Message(2)。Kc,tgs:sessionkey的副本,由AS产生,client可用于在AS与client之间信息的安全交换,而不必共用一个永久的key。IDtgs:确认这个ticket是为TGS制作的。TS2:告诉client该ticket签发的时间。Lifetime2:告诉client该ticket的有效期;Tickettgs:client用来访问TGS的ticket。28(b)票据许可服务交换Message(3)client请求service-grantingticketIDv:告诉TGS用户要访问服务器V;Tickettgs:向TGS证实该用户已被AS认证;Authenticatorc:由client生成,用于验证ticket;Message(4)TGS返回service-grantingticketEKc,tgs:仅由C和TGS共享的密钥;用以保护Message(4);Kc,tgs:sessionkey的副本,由TGS生成,供client和server之间信息的安全交换,而无须共用一个永久密钥。IDv:确认该ticket是为serverV签发的;TS4:告诉client该ticket签发的时间;TicketV:client用以访问服务器V的ticket;Tickettgs:可重用,从而用户不必重新输入口令;EKtgs:ticket用只有AS和TGS才知道的密钥加密,以预防篡改;Kc,tgs:TGS可用的sessionkey副本,用于解密authenticator,从而认证ticket;IDc:指明该ticket的正确主人;29客户/服务器鉴别交换Message(5)client请求服务Ticketv:向服务器证实该用户已被AS认证;Authenticatorc:由客户生成,用于验证ticket有效;Message(6)客户对服务器的可选认证Ekc,v:使C确认报文来自V;TS5+1:使C确信这不使报文重放;TicketV:cli
本文标题:崔永泉第四讲Kerberos协议
链接地址:https://www.777doc.com/doc-5063536 .html