第七章网络中的认证网络安全——技术与实践信息系统资源保护的动机◆单用户单机系统。用户资源和文件受到物理上的安全保护;◆多用户分时系统。操作系统提供基于用户标识的访问控制策略,并用logon过程来标识用户。◆Client/Server网络结构。由一组工作站和一组分布式或中心式服务器组成。三种可能的安全方案◆相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。◆要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。◆要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。身份认证实例--Kerberos引言◆Kerberos:partofProjectAthenaatMIT◆GreekKerberos:希腊神话故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门的守卫。◆ModernKerberos:意指有三个组成部分的网络之门的保卫者。“三头”包括:–认证(authentication)–簿记(accounting)–审计(audit)问题在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够认证对服务的请求。工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。Kerberos要解决的问题◆所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。◆不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。◆Kerberos采用传统加密算法。◆KerberosVersion4和Version5(RFC1510)v4已得到广泛应用,v5进一步对v4中的某些安全缺陷做了改进。Kerberos的解决方案在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。Kerberos系统应满足的要求◆安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。◆可靠。Kerberos应高度可靠,并且应借助于一个分布式服务器体系结构,使得一个系统能够备份另一个系统。◆透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。◆可伸缩。系统应能够支持大数量的客户和服务器。KerberosVersion4◆引入一个信任的第三方认证服务器,采用一个基于Needham&Schroeder协议。◆采用DES,精心设计协议,提供认证服务。一个简单的认证对话引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经物理上或以更安全的手段分发。考虑以下假定的对话:(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)更安全的认证对话◆两个主要问题–希望用户输入口令的次数最少。–口令以明文传送会被窃听。◆解决办法–ticketreusable–ticket-grantingserver改进后的假想的对话:用户从AS获取票据许可票据:(1)CAS:IDC||Idtgs(2)ASC:EKC[Tickettgs]用户从TGS获取票据许可票据:(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)KerberosKerberosV4AuthenticationDialogue◆两个问题(p163)–与ticket-grantingticket相关的Lifetime问题;–需要服务器向客户进行认证;◆解决方案–sessionkeyRationalefortheElementsoftheKerberosVersion4Protocol(p163)(a)认证服务交换:用户从AS获得票据许可票据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。(b)票据许可服务交换:用户从TGS获取服务许可票据: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的正确主人;KerberosVersion4消息交换概要(a)认证服务交换:用户从AS获得票据许可票据(1)CAS:IDC||IDtgs||TS1(2)ASC:EKC[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]Tickettgs=EKtgs[Kc,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]CVAS(1)(2)(3)TGS(4)(5)Kerberos(6)(b)票据许可服务交换:用户从TGS获取服务许可票据:(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]CVAS(1)(2)(3)TGS(4)(5)Kerberos(6)(c)客户机-服务器的认证交换:用户从服务器获取服务(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]CVAS(1)(2)(3)TGS(4)(5)Kerberos(6)Kerberos处理过程概要CVAS(1)(2)(3)TGS(4)(5)Kerberos(6)Kerberos管辖范围与多重服务◆一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站,和一组应用服务器,满足下列要求:–Kerberos服务器必须在其数据库中拥有所有参与用户的ID(UID)和口令散列表。所有用户均在Kerberos服务器上注册。–Kerberos服务器必须与每一个服务器之间共享一个保密密钥。所有服务器均在Kerberos服务器上注册。◆这样的环境被视为一个管辖国界(realm)。–每一个辖区的Kerberos服务器与其它辖区内的Kerberos服务器之间共享一个保密密钥。两个Kerberos服务器互相注册。(1)CAS:IDC||IDtgs||TS1(2)ASC:EKC[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs](3)CTGS:IDtgsrem||Tickettgs||Authenticatorc(4)TGSC:EKc,tgs[Kc,tgsrem||IDtgsrem||TS4||Tickettgsrem](5)CTGSrem:IDvrem||Tickettgsrem||Authenticatorc(6)TGSC:EKc,tgsrem[Kc,vrem||IDvrem||TSb||Ticketvrem](7)CVrem:Ticketvrem||AuthenticatorcCASTGSTGSremVrem(1)(2)(3)(4)(5)(6)(7)KerberosVersion5◆改进version4的环境缺陷(p166)–加密系统依赖性–Internet协议依赖性–消息字节次序–Ticket的时效性–Authenticationforwarding–Inter-realmauthenticationKerberosVersion5◆改进Version4的技术缺陷(p167)–Doubleencryption–PCBCencryption–Sessionkey–PasswordattacksKerberosReferences◆MITKerberosWebSite:◆USC/ISIKerberosPage:◆Password-to-KeyTransformation◆PropagatingCipherBlockChainingModeKerberos协议模型的分析◆可以证明Kerberos协议模型功能的正确性◆发现Kerberos协议模型依赖于安全的时间服务功能特性分析◆可信第三方–所需的共享密钥分配和管理变得十分简单–AS担负认证工作,减轻应用服务器的负担–安全相关数据的集中管理和保护,从而使攻击者的入侵很难成功◆Ticket–AS的认证结果和会话密钥安全地传送给应用服务器–在生存期内可重用,减少认证开销,提高方便性功能特性分析◆Ticket发放服务–降低用户口令的使用频度,更好地保护口令–减轻AS的负担,提高认证系统的效率◆时间戳–防止对Ticket和Authenticator的重放攻击◆以共享秘密(密钥)为认证依据局限性分析◆重放攻击–ticket