《《身份认证》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《身份认证》PPT课件.ppt(51页珍藏版)》请在三一办公上搜索。
1、身份认证技术与应用示例,网络与信息安全课程,2002/4/5 公安大学 CS-IS05,主要内容,概述用户认证主机认证Kerberos系统基于公开密钥的身份认证,一、概述,认证(Authentication)证实客户的真实身份与其所声称的身份是否相符的过程,是保证系统安全的重要措施之一。当服务器提供服务时,需要确认来访者的身份,访问者有时也需要确认服务提供者的身份。认证过程的三要素:(1)知识(Knowledge):你知道什么,如口令等。(2)物品(Possession):你拥有什么,如IC卡等(3)特征(Characteristic):你有什么生理特征,如指纹等。在分布式系统中有两类主要认证
2、:即用户认证和主机认证。身份认证技术不可避免地会用到加密技术,同样地也可分为基于对称密钥技术的身份认证(如Kerberos)和基于公开密钥的身份认证(如CA)两类。,二、用户认证,简单口令提问/应答(Challenge/Response)式认证操作系统口令处理机制一次性口令拨号用户认证协议更强的基于口令的认证机制,2.1 简单口令认证,这是最简单的认证方式,当用户访问某项服务时,只需提供用户ID和口令对,服务器检查用户口令是否正确。虽说只简单口令认证就可以阻止不少威胁了,但由于在开放式系统中,窃听者很容易探听到时明文方式传输的口令,也就很容易成功地伪装成该用户。这种方式不可能充分满足安全需求,
3、但由于它简单、方便,在短时间内还不会完全消失。,2.2 提问/回答式认证,用户、服务器约定一个计算函数和密钥,基于口令的认证及其变体在实际应用中会遇到以下威胁,1、强力攻击:有时,对challenge可能不作加密,在这种情况下,攻击者可以截取challenge和response,试验所有可能的口令。2、字典式攻击:攻击者根据字典,再加上一些简单变换规则,如口令在字典中,就可以被计算出来。3、冒名顶替:攻击者假冒客户或服务器4、反射攻击:攻击者将认证消息用于其它地方如另一服务等5、客户/服务器认证数据库失窃6、修改客户/服务器之间传输的消息 7、对认证机制的高级攻击,2.3 操作系统口令处理机制
4、,Unix操作系统在主机上对用户口令进行了一次单向运算,将运算结果保存在/etc/passwd或/etc/shadow中。DES加密迭代/MD5算法 PAM:可插拔认证模块(Pluggable Authentication Modules),目前已在Sun的Solaris、Linux、FreeBSD、OpenBSD等操作系统中实现,它对以下几个方面提供支持:扩展的标准login(检查时间、登录地点等)|.rhosts、/etc/shells|cracklib(用于检查口令)|DES提问/回答|Kerberos|S/Key,OPIE|RADIUS|SecurID,Windows NT,2.4一次
5、性口令(One-Time Password),(1)动态安全ID(ACE)认证ACE是一种基于时间的认证方式,它使用了智能卡(Smart Card)技术,ACE卡每隔一段时间,根据用户身份标识(PIN)产生一个新的口令。当用户需要访问受保护资源时,输入PIN和ACE卡上产生的口令,服务器按下列步骤认证用户:服务器检索PIN和种子值,该种子值同赋给用户的安全ID卡相关。服务器利用上次连接的数据,对当前的时钟“漂移”进行估计。计算出正确的口令,并确定该口令可在多长时间内有效。ACE方式利用了前面提到过的两个因素:用户输入PIN,表明他知道某种秘密 用户输入正确口令,表明他拥有ACE卡。,(2)S/
6、Key,S/Key是由Bellcore公司为通过纯软件实现来产生并认证一次性口令而制定的系统,它使用单向Hash函数产生一次性口令序列,其原理关键在于以生成口令的逆序方式使用口令,大致如下:用户在与主机直接相连的设备(如控制台)或安全连接工具上输入加密口令;S/Key主机利用该口令和一个内部随机生成密钥来为口令表创建一个种子值x;S/Key主机重复地对该种子值使用n次Hash函数,保存最后结果yn=Hn(x);用户第一次登录到S/Key主机时会得到提示要求输入第n-1号口令x,接着S/Key计算H(x),如H(x)=yn,则允许用户访问;主机用刚使用过的口令代替保存的yn。,2.5拨号用户认证
7、协议,(1)口令认证协议(PAP)最初设计口令认证协议时,是希望为主机向另一台使用PPP协议的主机认证自己提供一种简单方法,其详细描述见RFC1334,使用简单“用户ID-口令”对进行认证,认证信息以明文方式传输,没有采取措施防止“重试攻击”或猜测口令攻击。,(2)询问握手认证协议(CHAP)描述见RFC1994,它为认证PPP链路提供了一种更安全的机制,采用提问/应答方式进行认证,由于认证过程由服务器方控制,可以避免“重试攻击”。,(3)远程认证拨号用户管理协议(RADIUS)CHAP虽然对拨号用户的认证比PAP要强,但它本身不具备充分的扩展性。另外,虽然CHAP不在网上传输任何秘密,却需要
8、通过Hash函数来操作大量共享秘密,为了保存这些秘密,拥有大量拨号用户的企业必须维护很大的数据库。RADIUS采用客户/服务器模型来安全地对远程网络连接用户和会话进行管理,旨在更容易地管理访问控制方案,同时也支持PAP、CHAP等其它类型的用户认证。其具体描述见RFC2058。,2.6更强的基于口令的认证机制,(1)EKE(Encrypted Key Exchange):Bellovin等将对称密钥加密算法与公开密钥机制相结合,提出了EKE协议,并在此基础上发展成一个协议族,如DH-EKE、SPEKE等。这些协议有以下特点:通过给窃听者不完整的信息,令其不能进行猜测口令的字典式攻击。前向保密:
9、攻击者得到一个口令并不能使其获得以前会话过程中使用的会话密钥。防强力攻击:会话密钥的失窃无助于攻击者进行强力攻击。EKE的最大的问题是它仍然是有“明文等价”问题,需要客户和服务器双方共享口令或口令的hash值。一些对它的改进如A-EKE解决了“明文等价”问题,但牺牲了前向保密;B-SPEKE又带来了很大的时间开销和算法复杂性。,(2)SRP(Secure Remote Password),Wu等提出了一种不同于EKE方式的口令认证技术,该技术不加密任何协议流,而代之与一组预先定义好的数学关系,通过短暂的交换数据过程建立起口令参数。SRP是一种基于检验的零知识协议,可以抵御字典式攻击。SRP还有
10、以下一些性质:双向认证攻击者即使窃取到主机口令文件也不会直接损害用户-主机认证攻击者攻破主机之后也不能从合法的认证过程中获得用户口令防强力攻击:会话密钥的失窃无助于攻击者进行强力攻击。前向保密:攻击者得到一个口令并不能使其获得以前会话过程中使用的会话密钥。,3主机认证,3.1基于网络的认证当前在Internet上对主机认证采用得最多的还是基于网络的,网络认证又可分为两大类:(1)基于地址(2)基于主机名不管是基于地址还是基于主机名的认证,可靠性都是很低的,网络地址,无论是IP地址,还是网卡MAC地址,都很容易被伪装,基于主机名的认证问题比基于地址更为严重,它过分依赖于DNS,这样,当Inter
11、net某处DNS被攻破后,很容易会被欺骗。,3.2 使用密码学技术这种认证方案包括了用户认证一节里所列NTLM认证,以及下面就要谈到的基于Kerberos或基于公开密钥技术的认证。这一类技术都依赖于某一“秘密”或保密密钥,在主机认证中,如何在主机上安全存放这一“秘密”将是一个关键的问题。,身份认证实例-Kerberos,引言,Kerberos:part of Project Athena at MITGreek Kerberos:希腊神话故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门的守卫。Modern Kerberos:意指有三个组成部分的网络之门的保卫者。“三头”包括:认证(authe
12、ntication)簿记(accounting)审计(audit),问题,在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应能够限制非授权用户的访问并能够认证对服务的请求。工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。,Kerberos要解决的问题,所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。不是为每一个服务器构造一个身份认证
13、协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。Kerberos采用传统加密算法。Kerberos Version4和Version5(RFC1510/1994年),信息系统资源保护的动机,单用户单机系统。用户资源和文件受到物理上的安全保护;多用户分时系统。操作系统提供基于用户标识的访问控制策略,并用logon过程来标识用户。Client/Server网络结构。由一组工作站和一组分布式或中心式服务器组成。,三种可能的安全方案,相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。要求客户端系统将它们自己
14、向服务器作身份认证,但相信客户端系统负责对其用户的识别。要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。,Kerberos的解决方案,在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。,Kerberos系统应满足的要求,安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。可靠。Kerberos应高度可靠,并且应借助于一 个分布式服务器体系结构,使得一个系统能够备份另一个系统。透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。可伸缩。系统
15、应能够支持大数量的客户和服务器。,Kerberos Version4,引入一个信任的第三方认证服务,采用一个基于Needham&Schroeder协议。采用DES,精心设计协议,提供认证服务。,一个简单的认证对话,引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经 物理上或以更安全的手段分发。,考虑以下假定的对话:,(1)C AS:IDC|PC|IDV(2)AS C:Ticket(3)C V:IDC|TicketTicket=EKVIDC|ADC|IDV,其中:C:clientAS:Authentication S
16、erver V:serverIDC:identifier of user on C,IDV:identifier of VPC:password of user on CADC:network address of CKV:AS与V共有的保密密钥,C,V,AS,(1),(2),(3),更安全的认证对话,两个主要问题希望用户输入口令的次数最少。口令以明文传送会被窃听。解决办法ticket reusableticket-granting server,改进后的假想的对话:,Once per user logon session:(1)C AS:IDC|IDtgs(2)AS C:EKCTickett
17、gsOnce per type of service(3)C TGS:IDC|IDv|Tickettgs(4)TGS C:TicketVOnce per service session(5)C V:IDC|TicketVTickettgs=EKtgsIDC|ADC|IDtgs|TS1|Lifetime1TicketV=EKVIDC|ADC|IDV|TS2|Lifetime2,C,V,AS,(1),(2),(3),TGS,(4),(5),Kerberos,Kerberos V4 Authentication Dialogue,两个问题与ticket-granting ticket相关的Lifet
18、ime问题;需要服务器向客户进行认证;解决方案session key,Summary of Kerberos Version 4 Message Exchanges(a)Authentication Service Exchange:to obtain ticket-granting ticket(1)C AS:IDC|IDtgs|TS1(2)AS C:EKCKc,tgs|IDtgs|TS2|Lifetime2|TickettgsTickettgs=EKtgs Kc,tgs|IDC|ADC|IDtgs|TS2|Lifetime2(b)Ticket-granting Service Exchan
19、ge:to obtain service-granting ticket(3)C TGS:IDV|Tickettgs|Authenticatorc(4)TGS C:EKc,tgsKc,v|IDV|TS4|TicketvTickettgs=EKtgsKc,tgs|IDC|ADC|IDtgs|TS2|Lifetime2Ticketv=EKVKc,v|IDC|ADC|IDv|TS4|Lifetime4Authenticatorc=EKc,tgsIDc|ADc|TS3(c)Client/Server Authentication Exchange:To obtain service(5)C V:Tic
20、ketv|Authenticatorc(6)V C:EKc,vTS5+1(for mutual authentication)Ticketv=EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc=EKc,vIDc|ADc|TS5,Rationale for the Elements of the Kerberos Version 4 Protocol(a)Authentication Service ExchangeMessage(1)Client 请求 ticket-granting ticket IDC:告诉AS本client端的用户标识;IDtg
21、s:告诉AS用户请求访问TGS;TS1:让AS验证client端的时钟是与AS的时钟同步的;Message(2)AS返回ticket-granting ticket EKC:基于用户口令的加密,使得AS和client可以验证口令,并保护Message(2)。Kc,tgs:session key的副本,由AS产生,client可用于在AS与client之间信息的安全交换,而不必共用一个永久的key。IDtgs:确认这个ticket是为TGS制作的。TS2:告诉client该ticket签发的时间。Lifetime2:告诉client该ticket的有效期;Tickettgs:client用来访问
22、TGS的ticket。,(b)Ticket-granting Service ExchangeMessage(3)client 请求service-granting ticket IDv:告诉TGS用户要访问服务器V;Tickettgs:向TGS证实该用户已被AS认证;Authenticatorc:由client生成,用于验证ticket;Message(4)TGS返回service-granting ticket EKc,tgs:仅由C和TGS共享的密钥;用以保护Message(4);Kc,tgs:session key的副本,由TGS生成,供client和server之间信息的安全交换,而
23、无须共用一个永久密钥。IDv:确认该ticket是为server V签发的;TS4:告诉client该ticket签发的时间;TicketV:client用以访问服务器V的ticket;Tickettgs:可重用,从而用户不必重新输入口令;EKtgs:ticket用只有AS和TGS才知道的密钥加密,以预防篡改;Kc,tgs:TGS可用的session key副本,用于解密authenticator,从而认证ticket;IDc:指明该ticket的正确主人;,Kerberos处理过程概要,C,V,AS,(1),(2),(3),TGS,(4),(5),Kerberos,(6),Kerberos管
24、辖范围与多重服务,一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站,和一组应用服务器,满足下列要求:Kerberos服务器必须在其数据库中拥有所有参与用户的ID(UID)和口令散列表。所有用户均在Kerberos服务器上注册。Kerberos服务器必须与每一个服务器之间共享一个保密密钥。所有服务器均在Kerberos服务器上注册。这样的环境被视为一个管辖国界(realm)。每一个辖区的Kerberos 服务器与其它辖区内的Kerberos服务器之间共享一个保密密钥。两个Kerberos服务器互相注册。,(1)C AS:IDC|IDtgs|TS1(2)AS C:EKCKc
25、,tgs|IDtgs|TS2|Lifetime2|Tickettgs(3)C TGS:IDtgsrem|Tickettgs|Authenticatorc(4)TGS C:EKc,tgsKc,tgsrem|IDtgsrem|TS4|Tickettgsrem(5)C TGSrem:IDvrem|Tickettgsrem|Authenticatorc(6)TGS C:EKc,tgsremKc,vrem|IDvrem|TSb|Ticketvrem(7)C Vrem:Ticketvrem|Authenticatorc,C,AS,TGS,TGSrem,Vrem,(1),(2),(3),(4),(5),(6
26、),(7),Kerberos Version 5,改进version 4 的环境缺陷加密系统依赖性Internet协议依赖性消息字节次序Ticket的时效性Authentication forwardingInter-realm authentication,Kerberos Version 5,改进Version 4 的技术缺陷Double encryptionPCBC encryptionSession keyPassword attacks,Kerberos References,MIT Kerberos Web Site:http:/web.mit.edu/kerberos/wwwUS
27、C/ISI Kerberos Page:Password-to-Key TransformationPropagating Cipher Block Chaining Mode,Kerberos协议模型的分析,可以证明Kerberos协议模型功能的正确性发现Kerberos协议模型依赖于安全的时间服务,功能特性分析,可信第三方所需的共享密钥分配和管理变得十分简单AS担负认证工作,减轻应用服务器的负担安全相关数据的集中管理和保护,从而使攻击者的入侵很难成功TicketAS的认证结果和会话密钥安全地传送给应用服务器在生存期内可重用,减少认证开销,提高方便性,功能特性分析,Ticket发放服务降低用
28、户口令的使用频度,更好地保护口令减轻AS的负担,提高认证系统的效率时间戳防止对Ticket和Authenticator的重放攻击以共享秘密(密钥)为认证依据,局限性分析,重放攻击ticket-granting ticket具有较长的生存期,很容易被重放对于有准备的攻击者,5分钟的生存期内也可能进行重放攻击保存所有存活鉴别符并通过比较检测重放攻击的办法难以实现与其他攻击形式结合的重放攻击更容易成功,局限性分析,时间依赖性实现较好的时钟同步往往是很困难的攻击者误导系统时间并进行重放攻击有可乘之机基于安全的时间服务?猜测口令攻击脆弱口令容易受到攻击协议模型未对口令提供额外的保护,猜测复杂度为O(K)
29、,局限性分析,域间鉴别多跳域间鉴别涉及很多因素,实现过程复杂不明确存在“信任瀑布”问题篡改登录程序认证系统本身的程序完整性很难保证密钥存储问题口令及会话密钥无法安全存放于典型的计算机系统中,MZ协议模型,Kerberos协议模型的改进模型消除认证协议对安全时间服务的依赖性更好地防止重放攻击提高口令猜测的复杂度简化域间认证使用混合加密算法使用nonce,传统加密方法,1、A KDC:IDA|IDB|N12、KDC A:EKaKs|IDB|N1|EKbKs|IDA3、A B:EKbKs|IDA4、B A:EKsN25、A B:EKsf(N2),保密密钥Ka和Kb分别是A和KDC、B和KDC之间共享
30、的密钥。本协议的目的就是要安全地分发一个会话密钥Ks给A和B。,A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密、并理解。第4步表明B已知道Ks了。第5步表明B相信A知道Ks并且消息不是伪造的。第4,5步目的是为了防止某种类型的重放攻击。特别是,如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。,Needham/Schroeder Protocol 1978,上述方法尽管有第4,5步的握手,但仍然有漏洞。,假定攻击方C已经掌握A和B之间通信的一个老的会话密钥。C可以在第3步冒充A利用老的会话密钥欺骗B。除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。如果C可以中途阻止第4步的握手信息,则可以冒充A在第5步响应。从这一点起,C就可以向B发送伪造的消息而对B来说认为是用认证的会话密钥与A进行的正常通信。,