运行安全--身份认证.ppt_第1页
运行安全--身份认证.ppt_第2页
运行安全--身份认证.ppt_第3页
运行安全--身份认证.ppt_第4页
运行安全--身份认证.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1,运行安全 -身份认证,主讲人:翟健宏 Email: 办公室:新技术楼509 Tel2,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),3,1问题的提出,身份欺诈 中间欺骗 象棋大师问题 Mafia问题 多身份欺诈,4,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),5,2 身份认证概念,定义:证实客户的真实身份与其所声称的身份是否相符的过程 依据: Something the user know (所知):密码、口令等 Something the user possesses (拥有):身份证、护照、密钥盘等 Something the user is or How he behaves (特征):指纹、笔迹、声纹、虹膜、DNA等 协议:PAP,CHAP、Kerberos、X.509 形式:主要有单向认证(one-way authentication) 、双方认证(mutual authentication)两种形式。,6,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),7,3 单向认证,传统加密方法 公钥加密方法,8,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),9,4双向认证协议,4.1 双向认证 双方认证是最常用的协议,该协议使得通信各方互相认证鉴别各自的身份,然后,交换会话密钥。 基于认证的密钥交换核心问题有两个:保密性、时效性。 为了防止伪装和防止暴露会话密钥,基本认证与会话密码信息必须以保密形式通信,这就要求预先存在保密或公开密钥供实现加密使用,第二个问题也很重要,因为涉及防止消息重放攻击。,10,4.2消息重放,常见的消息重放攻击形式有: 简单重放:攻击者简单复制一条消息,以后在重新发送它; 可检测的重放:攻击者可以在一个合法有效的时限内,重放一个带时间戳的消息; 不可检测到的复制品:这种情况可能出现原因是原始信息已经被拦截无法到达目的地,而只有重放的信息到达目的地; 反向重放,不做修改,向消息发送者重放,当采用传统对称加密方式时,这种攻击是可能的,因为消息发送者不能简单地识别发送和收到的消息在内容上的区别。 消息重放威胁: 最坏情况下可能导致向敌人暴露会话密钥,或敌人干扰系统的正常运行,处理不好将导致系统瘫痪。,11,对付重放攻击的一种方法是: 在认证交换中,使用一个序数来给每一个消息报文编号,仅当收到的消息序数顺序合法时才接受之,但这种方法的困难是要求双方必须保持上次消息的序号 .,两种更为一般的方法是: 时间戳:A接受一个新消息,仅当该消息包含一个时间戳,该时间戳在A看来是足够接近A所知道的当前时间,这种方法要求不同参与者之间的时钟需要同步。 盘问/应答方式(Challenge/Response): A期望从B获得一个新消息,首先发给B一个临时值(challenge),并要求后续从B收到的消息(response)包含正确的这个临时值。,12,时间戳方法似乎不能用于面向连接的应用,固有的困难: (1)需要在各种处理器时钟中维持同步。该协议必须既要容错以对付网络出错,又要安全以对付重放攻击; (2)由于某一方的时钟机制故障,可能导致临时失去同步,这将增大攻击成功的机会; (3)由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟保持精确的同步,因此,任何基于时间戳的过程必须采用时间窗的方式来处理,一方面时间窗应足够大以包容网络延迟;另一方面时间窗应足够小以最大限度地减小遭受攻击的机会。,盘问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。 安全的时间服务器用以实现时钟同步可能是最好的方法。,13,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),14,5加密方法,5.1 传统加密方法 Needham/Schroeder Protocol 1978 1 A KDC: IDA|IDB|N1 2 KDC A: EKaKs|IDB|N1|EKbKs|IDA 3 A B:EKbKs|IDA 4 B A:EKsN2 用KS加密的信息N2-A 通知A 5 A B:EKsf(N2),15,保密密钥Ka和Kb分别是A和KDC,B和KDC之间共享的密钥,本协议的目的就是要安全地分发一个会话密钥Ks给A和B。 A在第2步安全地得到了一个新的会话密钥,第3步只能由B解密并理解,第4步表明B已知道Ks了,第5步表明A相信B知道Ks,并且,消息不是伪造的。 第4、5步目的是为了防止某种类型的重放攻击,特别是如果敌方能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。,16,上述方法尽管有第4,5步的握手但仍然有漏洞。 假定攻击方C已经掌握A和B之间通信的一个老的会话密钥,C可以在第3步冒充A利用老的会话密钥欺骗B,除非B记住所有以前使用的与A通信的会话密钥,否则B无法判断这是一个重放攻击。 如果C可以中途阻止第4步的握手信息,则可以冒充A在第5步响应,从这一点起C就可以向B发送伪造的消息,而对B来说,认为是用认证的会话密钥与A进行的正常通信。,17,Denning Protocol 1982 改进 1 A KDC:IDA|IDB 2 KDC A:EKaKs|IDB|T|EKbKs|IDA|T 3 A B:EKbKs|IDA|T 4 B A:EKsN1 5 A B:EKsf(N1) | Clock - T | t1 + t2 其中:t1是KDC时钟与本地时钟A或B之间差异的估计值,t2 是预期的网络延迟时间。,18,Denning Protocol 比Needham/Schroeder Protocol在安全性方面增强了一步,然而,又提出新的问题,即必须依靠各时钟均可通过网络同步。 如果发送者的时钟比接收者的时钟要快,攻击者就可以从发送者窃听消息,并在以后当时间戳对接收者来说成为当前时,重放给接收者,这种重放将会得到意想不到的后果(称为抑制重放攻击)。,19,KEHN92 1 A B:IDA|Na 2 B KDC:IDB|Nb | EKbIDA | Na | Tb 3 KDC A:EKaIDB|Na |Ks| Tb | EKbIDA | Ks |Tb | Nb 4 A B:EKbIDA | Ks | Tb | EKs Nb ,20,5.2公钥加密方法,一个使用时间戳的方法是 1 A AS:IDA|IDB 2 AS A:EKRasIDA |KUa | T | EKRasIDB |KUb | T 3 A B:EKRasIDA|KUa| T | EKRasIDB | KUb | T |EKUbEKRa Ks|T,21,一个基于临时值握手协议WOO92a 1 A KDC:IDA|IDB 2 KDC A:EKRauthIDB |KUb 3 A B:EKUbNa |IDA 4 B KDC:IDB|IDA | EKUauthNa 5 KDC B: EKRauthIDA |KUa| EKUbEKRauthNa|Ks|IDB 6 B A:EKUaEKRauth Na |Ks | IDB|Nb 7 A B EKsNb,22,一个基于临时值握手协议WOO92b 1 A KDC:IDA|IDB 2 KDC A:EKRauthIDB |KUb 3 A B:EKUbNa |IDA 4 B KDC:IDB|IDA | EKUauthNa 5 KDC B:EKRauthIDA |KUa| EKUbEKRauthNa|Ks|IDA|IDB 6 B A:EKUaEKRauth Na |Ks |IDA | IDB|Nb 7 A B:EKsNb,23,1 问题的提出 2 身份认证概念 3 单向认证 4 双向认证协议 5 加密方法 6 身份认证应用实例(Kerberos) 7 实例分析(Windows NT 4.0身份认证),24,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,6 身份认证应用实例(Kerberos),25,6.1 Kerberos Kerberos: part of Project Athena at MIT。Greek Kerberos: 希腊神话故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门的守卫。Modern Kerberos: 意指有三个组成部分的网络之门的保卫者。“三头”包括:认证(authentication)、簿记(accounting)、审计(audit) 。,26,1)问题 在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。 服务器应能够限制非授权用户的访问,并能够认证对服务的请求。 工作站不能够被网络服务所信任,其能够正确地认定用户,即工作站存在三种威胁。 一个工作站上一个用户可能冒充另一个用户操作; 一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作; 一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。,27,2) Kerberos要解决的问题 所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。 不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。 Kerberos采用传统加密算法。 Kerberos Version4和Version5 (RFC1510)。,28,3)信息系统资源保护的策略 单用户单机系统。用户资源和文件受到物理上的安全保护; 多用户分时系统。操作系统提供基于用户标识的访问控制策略,并用logon过程来标识用户。 Client/Server网络结构。由一组工作站和一组分布式或中心式服务器组成。,29,4)三种可能的安全方案 相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。 要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。 要求每一个用户对每一个服务器证明其标识身份,同样要求服务器向客户端证明其标识身份。,30,5)Kerberos的解决方案 在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。,31,6)Kerberos系统应满足的要求 安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。 可靠。Kerberos应高度可靠,并且应借助于一个分布式服务器体系结构,使得一个系统能够备份另一个系统。 透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。 可伸缩。系统应能够支持大数量的客户和服务器。,32,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,33,6.2 Kerberos Version4,1) Kerberos Version4特点: 引入一个信任的第三方认证服务, 采用一个基于Needham & chroeder协议, 采用DES, 精心设计协议, 提供认证服务。,34,2) 一个简单的认证对话 引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。 AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经物理上或以更安全的手段分发。,35,考虑以下假定的对话: (1) C AS: IDC | PC | IDV (2) AS C: Ticket (3) C V : IDC | Ticket Ticket = EKVIDC | ADC | IDV 其中: C : client AS : Authentication Server V : server IDC : identifier of user on C IDV : identifier of V PC : password of user on C ADC: network address of C KV : AS与V共有的保密密钥,36,3) 更安全的认证对话 两个主要问题 希望用户输入口令的次数最少。 口令以明文传送会被窃听。 解决办法 ticket reusable ticket-granting server,37,改进后的假想的对话: Once per user logon session: (1) C AS : IDC | IDtgs (2) AS C : EKCTickettgs Once per type of service (3) C TGS : IDC | IDv | Tickettgs (4) TGS C : TicketV Once per service session (5) C V : IDC | TicketV Tickettgs = EKtgsIDC|ADC|IDtgs|TS1|Lifetime1 TicketV = EKVIDC|ADC|IDV|TS2|Lifetime2,38,4) Kerberos V4 Authentication Dialogue 两个问题 与ticket-granting ticket相关的Lifetime问题; 需要服务器向客户进行认证; 解决方案 session key,39,Summary of Kerberos Version 4 Message Exchanges 身份验证服务交换:获得服务授予的票据(Authentication Service Exchange: to obtain ticket-granting ticket) (1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs Tickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2 | Lifetime2,40,(1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs Tickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2 | Lifetime2 注: Message(1) Client 请求 ticket-granting ticket IDC :告诉AS本client端的用户标识; IDtgs :告诉AS用户请求访问TGS; TS1 :让AS验证client端的时钟是与AS的时钟同步的; Message(2) AS返回ticket-granting ticket EKC :基于用户口令的加密,使得AS和client可以验证口令,并保护Message(2)。 Kc,tgs :session key的副本,由AS产生,client可用于在tgs与client之间信息的安全交换,而不必共用一个永久的key。 IDtgs :确认这个ticket是为TGS制作的。 TS2 :告诉client该ticket签发的时间。 Lifetime2:告诉client该ticket的有效期; Tickettgs:client用来访问TGS的ticket。,41,b) 票据授予的服务交换:获得服务授予的票据(Ticket-granting Service Exchange: to obtain service-granting ticket) (3) C TGS : IDV | Tickettgs | Authenticatorc (4) TGS C : EKc,tgsKc,v | IDV | TS4 | Ticketv Tickettgs = EKtgsKc,tgs| IDC| ADC| IDtgs | TS2 | Lifetime2 Ticketv = EKVKc,v|IDC|ADC| IDv|TS4|Lifetime4 Authenticatorc = EKc,tgsIDc|ADc|TS3,42,(3) C TGS : IDV | Tickettgs | Authenticatorc (4) TGS C : EKc,tgsKc,v | IDV | TS4 | Ticketv 注: Message(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之间 信息的安全交换,而无须共用一个永久密钥。 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的正确主人;,43,c) 客户/服务器身份验证交换:获得服务(Client/Server Authentication Exchange: To obtain service) (5) C V : Ticketv | Authenticatorc (6) V C : EKc,vTS5+1 ( for mutual authentication) Ticketv = EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4 Authenticatorc = EKc,vIDc|ADc|TS5 注: Message(5) client 请求服务service-granting ticket Ticketv :向服务器证实该用户已被AS认证 Authenticatorc:由client生成用于验证ticket Message(6) 服务器对客户机可选的身份验证 EKc,v : 仅由C和服务器共享的密钥用以保护Message(6) TS5+1: 向C保障这不是重放的应答,44,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,45,6.3Kerberos管辖范围与多重服务,1) 一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站,和一组应用服务器,满足下列要求: Kerberos服务器必须在其数据库中拥有所有参与用户的ID(UID)和口令散列表。所有用户均在Kerberos服务器上注册。 Kerberos服务器必须与每一个服务器之间共享一个保密密钥。所有服务器均在Kerberos服务器上注册。,46,2) 这样的环境被视为一个管辖国界(realm)。 每一个辖区的Kerberos 服务器与其它辖区内的Kerberos服务器之间共享一个保密密钥。两个Kerberos服务器互相注册。,47,3) 算法描述: (1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,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,48,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,49,6.4 Kerberos Version 5,1) 改进version 4 的环境缺陷 加密系统依赖性 Internet协议依赖性 消息字节次序 Ticket的时效性 Authentication forwarding Inter-realm authentication,V4使用DES加密;V5使用加密类型标志,可以使用任何类型加密。,V4需要使用ip地址;V5网络地址加上了类型标志,可使用任何网络地址。,V4须按照低位字节在低地址的字节序;V5采用更灵活的记法和编码规则。,V4的有效期值为8位编码,单位5分钟,28*5=1280;V5采用开始、结束时间,长度任意。,V4不允许鉴别证书转发使用; V5提供此能力。,V4中N个域的kerberos之间的联系由N2种,过于复杂。 V5进行了相应的简化。,50,2) 改进Version 4 的技术缺陷 Double encryption PCBC encryption Session key Password attacks,提供给用户的票据加密两次,一次用KV,一次用KC,第二次不必要,浪费计算。,V4采用DES的非标准模式(传播密码分组连接PCBC ),容易受密文互换分组攻击,V5允许使用标准CBC模式。,V4同一票据多次用于访问同一服务器,易出现使用旧报文的重放攻击;V5使用CV之间协商子会话密钥的方法,不断变换会话密钥。,V4与V5都易受到口令攻击。,51,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,52,6.5 Kerberos的分析,1) 协议模型的分析 可以证明Kerberos协议模型功能的正确性 发现Kerberos协议模型依赖于安全的时间服务,53,2) 功能特性分析 可信第三方 所需的共享密钥分配和管理变得十分简单 AS担负认证工作,减轻应用服务器的负担 安全相关数据的集中管理和保护,从而使攻击者的入侵很难成功 Ticket AS的认证结果和会话密钥安全地传送给应用服务器 在生存期内可重用,减少认证开销,提高方便性 Ticket发放服务 降低用户口令的使用频度,更好地保护口令 减轻AS的负担,提高认证系统的效率 时间戳 防止对Ticket和Authenticator的重放攻击 以共享秘密(密钥)为认证依据,54,3)局限性分析 重放攻击 ticket-granting ticket具有较长的生存期,很容易被重放 对于有准备的攻击者,5分钟的生存期内也可能进行重放攻击 保存所有存活鉴别符并通过比较检测重放攻击的办法难以实现 与其他攻击形式结合的重放攻击更容易成功 时间依赖性 实现较好的时钟同步往往是很困难的 攻击者误导系统时间并进行重放攻击有可乘之机 基于安全的时间服务?,55,3)局限性分析 猜测口令攻击 脆弱口令容易受到攻击 协议模型未对口令提供额外的保护,猜测复杂度为O(K) 域间鉴别 多跳域间鉴别涉及很多因素,实现过程复杂不明确 存在“信任瀑布”问题 篡改登录程序 认证系统本身的程序完整性很难保证 密钥存储问题 口令及会话密钥无法安全存放于典型的计算机系统中,56,6.1 Kerberos 6.2 Kerberos Version4 6.3 Kerberos管辖范围与多重服务 6.4 Kerberos Version 5 6.5 Kerberos的分析 6.6 MZ协议模型,57,6.6 MZ协议模型的改进,Kerberos协议模型的改进: 消除认证协议对安全时间服务的依赖性 更好地防止重放攻击 提高口令猜测的复杂度 简化域间认证 使用混合加密算法 使用nonce,58,1问题的提出 2身份认证概念 3单向认证 4双向认证协议 5加密方法 6身份认证应用实例(Kerberos) 7实例分析(Windows NT 4.0身份认证),59,7 实例分析(Wind

温馨提示

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

评论

0/150

提交评论