安全协议分析与设计ppt课件第1章-上安全协议基础知识.ppt
-
资源ID:69938310
资源大小:925KB
全文页数:27页
- 资源格式: PPT
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
安全协议分析与设计ppt课件第1章-上安全协议基础知识.ppt
安全协议分析与设计课件第1章-上安全协议基础知识安全协议基础知识安全协议基础知识 nNSSK(Needham-Schroeder Shared Key)协议。AS:A,B,NaSA:Na,B,Kab,Kab,A Kbs KasAB:Kab,A KbsBA:Nb KabAB:Nb 1 Kab2n问题1:为什么需要随机数Na?n问题2:为什么在消息2中,要把B放在用Kas加密的部分中?n问题3:为什么要在消息2中出现A无法解读的 Kab,A Kbs?n问题4:最后两条消息是做什么用的?n问题5:为什么在消息5中使用 Nb 1 Kab而不是 Nb Kab或者 Nb 2 Kab?3n3年后,Denning 和Sacco在论文DS81中发表了对NSSK协议的一个攻击,攻击者在破获了一个过期的会话密钥Kab后,冒充A重放含有这个旧会话密钥的消息3给B,并冒充A完成随后的协议。从而使B接受了一个过期的被破获的Kab。n这个协议还有一个公开密钥算法版本:NSPK协议。17年后,Lowe在文献Lowe96a成功地找到NSPK的一个漏洞(见2.2节),而此前,该协议被多次“证明”是正确的。4安全协议形式化分析的现状安全协议形式化分析的现状 n逻辑类分析方法自1989年BAN逻辑为起源,大多数基于推理知识和信念的模态逻辑。n模型检测技术是一种有效的形式化分析工具,主要通过构造攻击来证明协议是不安全的。n定理证明类方法可以处理无限状态空间,不限制主体参与协议运行的回合。其缺点是证明过程复杂,缺乏自动化工具支持。5n除形式化方法外,可证明安全性理论也受到了很多关注,这类方法通常基于复杂性理论,将协议的安全性规约到一些极微本原(atomic primitives)上。严格地讲,称之为“规约安全”比“可证明安全”更为恰当。n上述的形式化方法可有效地发现协议中的漏洞,但人们普遍怀疑没有哪种方法能够完备地证明一个协议是正确无误的,也没有哪种方法被公认为是最有效的。6基本概念基本概念n安全协议:使用消息交换机制,通过各参与主体的执行,在某种攻击者能力模型下,为达到一定的安全目标而规定的一组关于消息含义和顺序的规则。n攻击者:以破坏认证协议目标为目标的实体。n主体:可以执行协议的实体。主体包括诚实主体和变节主体两种,后者为一种攻击者。主体通常用A,B,C来表示。n诚实主体:严格按照协议规范执行协议的主体。n变节主体:身份被诚实主体认可的攻击者。n会话:协议的每个运行实例为一个会话。主体可以同时参与多个会话。7n角色:协议中因执行动作不同而划分的主体类别。通常包括发起方、响应方和可信第三方3种角色,分别记作I、R和S。n发起方:在协议执行中,触发整个协议执行的角色。通常是第1条消息的发送方。n响应方:在协议执行中,发起方意欲与之建立安全目标的角色。n可信第三方:在协议执行中,起中心或服务器作用的角色。它辅助发起方和响应方之间建立认证目标。8n密钥建立:密钥建立是这样一个过程,通过该过程,使得两个或多个主体拥有良好的共享秘密,以用于后继的密码学运算。n会话密钥:在安全协议成功运行完毕后,主体间进行应用层会话时使用的密钥,使用时间较短。n长期密钥:与会话密钥相对应,可以长时间多次使用,可能是共享的对称密钥,也可能是公开密钥系统中的公钥或私钥。n前向安全:一个协议具备前向安全,是指即便安全协议中使用的长期密钥被攻击者破获,而由这些长期密钥所建立(通过安全协议建立)的会话密钥仍然是安全的。9协议描述:协议描述:Alice-Bob记法记法 n每条消息以Msg n起始,其中n表示消息的序号。n以“”符号表示消息的流向,两边的符号(如A、B、C等)表示主体。nPKa、PKb或者Ka、Kb表示相应主体的公钥。nSKa、SKb 或者Ka1,Kb1表示相应主体的私钥。nKab则表示主体A和B之间的共享密钥。nxK表示对x用密钥K加密(用私钥加密即意味着签名)。n以T代表时间戳,N代表Nonce(即用于检测新鲜性的随机数或称为“现时”)。10协议描述实例协议描述实例Msg1AB:A,NaMsg2BA:Nb,Na,A SKbMsg3AB:Na,Nb,B SKanISO 9798-3三条消息双向认证协议11对攻击的描述对攻击的描述n用号来标识不同的会话。n通常用Z和C表示攻击者,如用Z(A)表示Z冒充A和另一方交互。n对NSPK协议的攻击描述:Msg1 A C:A,Na PKcMsg1 C(A)B:A,Na PKbMsg2BC(A):Na,Nb PKaMsg2 C A:Na,Nb PKaMsg3 A C:Nb PKcMsg3 C(A)B:Nb PKb12协议分析的基本假设协议分析的基本假设 n完善加密假设n单一协议假设 n诚实主体假设 n随机数和时间戳的假设 13完善加密假设完善加密假设n完善加密假设使得安全协议的分析可以分层次地分析和设计,即先将协议使用的密码算法看做是能够提供安全密码服务的黑盒子,然后再在此基础上分析是否能够达到安全协议的目标。n该假设认为协议采用的密码算法是完美的,不考虑密码算法被攻破的情况。如Hash函数提供单向性和无碰撞性,加密算法提供语义安全性(Semantic Security)及不可延展性(Non-Malleability)等。n无加密项冲突,即若有m1k1=m2k2,则有m1=m2和k1=k2。这使得攻击者试图用 m2 k2使A相信其为m1k1是不可行的。14单一协议假设单一协议假设n单一协议假设是指协议运行环境中不存在其他协议的运行。目前各种形式化分析中都显式或隐式地包含了这个假设。n多个不同的安全协议同时运行可能会被攻击者利用造成攻击,这是因为有些密钥(如公钥)可以用于多个应用中,多个协议同时运行为攻击者提供了大量的加密和解密机会。nKelsey等人在文献KSW98中给出了一些这样的例子,称之为协议选择攻击。15诚实主体假设诚实主体假设nA如果是诚实主体,那么A必须忠实地按照协议的规范执行协议。采用诚实主体假设也即只考虑诚实主体间的交互是否会被破坏。n在协议执行过程中,一个不诚实的B在和A建立了一个密钥后,B没有按照协议规范的要求,私自将这个密钥通过网络广播了出去。或者可信第三方S应该产生一个新的密钥,但S却发送了一个旧的已经过期的密钥。那么能否说这两个密钥建立协议是不安全的?n诚实主体假设并不意味没有攻击者,攻击者可以在这个过程进行窃听、窜改、重放,也可以作为一个变节主体参与协议运行。简单地说,在诚实主体假设下,考虑协议中所有诚实主体间的认证目标是否会被外来的攻击者破坏。16随机数和时间戳的假设随机数和时间戳的假设 n随机数(Nonce)也称“现时”。Nonce和时间戳在协议中的主要作用是验证消息的新鲜性。通常有如下假设。n在所有运行实例中,主体产生的Nonce是唯一的(唯一性通常通过一定长度的随机数来逼近)。n主体通常不保存以往产生过或接收过的Nonce,这意味着主体是有通过检验本次会话中自己产生的Nonce来确认新鲜性的。n主体不保存任何时间戳。检验时,主体把消息中收到的时间戳与当前时间比较,如果其差异在一个许可的范围(常称为时间窗口)内,就认可该时间戳是正确的。17攻击者能力分析攻击者能力分析 n对安全协议的攻击,通常不是指如何运用密码分析技术来破坏安全协议使用的密码算法(完善加密假设),而是指攻击者不被察觉地获得了协议中主体的信任,从而对协议的某个目标造成破坏。n针对安全协议的攻击可以大体分为主动攻击和被动攻击两类。被动攻击被动攻击是指攻击者通过窃听消息来达到攻击目的;主动攻击是指攻击者对协议交互中的消息进行重放和伪造等行为来达到攻击目的。18诚实主体及攻击者的能力诚实主体及攻击者的能力 n对诚实主体和攻击者的能力进行分类,若为双方都具备的,则不做声明;若仅为攻击者所拥有,则在能力后标注“仅攻击者”。n消息发送:能够向其他网络地址发送消息。n消息接收:能够收到发往自己网络地址的消息。n消息窃听(仅攻击者):能够收到发往其他网络地址的消息。n消息阻断(仅攻击者):能够阻断一个网络地址发往另外一个网络地址的消息。n历史纪录(仅攻击者):能够存储所有已收到的消息。n本会话记录:记录本次会话中用到的消息。n伪造网络地址(仅攻击者):攻击者能够使用虚假的网络地址。19n变节执行协议(仅攻击者):变节执行协议是指攻击者能够以合法身份(也即系统内认可的身份)执行协议。具备该能力的攻击者为变节主体。n激活发起方(仅攻击者):触发某个诚实主体以发起方身份开始执行协议的能力。n消息生成:生成某个消息或子消息(消息的子项)的能力。如主体可以生成身份、Nonce、所有主体的公钥、自身的私钥以及自身与其他主体的预共享密钥等消息项;已知消息项x1,xn,则可计算消息f(x1,xn)。n消息获取:从某个消息中获取子消息的能力。n获取过期密钥(仅攻击者):获知已过期会话密钥的能力。20n诚实主体在密钥过期后会立即销毁该密钥,即便由于其他目的而保留,也不会再次使用,故不赋予诚实主体获取过期密钥的能力。n消息生成、消息阻断和消息发送能力的组合,意味着消息伪造(包括篡改)能力;消息生成、消息获取、消息发送和消息接收能力则意味着协议执行能力。消息生成、消息发送能力意味着激活响应方能力。21攻击类型攻击类型n重放攻击 n类型缺陷攻击 n协议交互攻击 n拒绝服务攻击 22重放攻击重放攻击n重放攻击是针对安全协议的最常见攻击,重放攻击指的是攻击者参与到协议的交互过程中,利用窃听到的已经发送过的部分或全部消息,在交互过程中重新发送,来干涉协议的正常进行。n关于重放攻击的分类,Paul Syverson在Syve94中提出了一个较为全面的分类方法。这个分类方法是根据重放消息的发送和接收情况来划分的。n并行会话攻击是一种常见的攻击,是指攻击者安排协议的一个或多个会话并行地执行,使得自己能够从一个会话中获得消息,并通过重放到其他并行的会话中以达到自己的目的,如针对NSPK的并行会话攻击。23类型缺陷攻击类型缺陷攻击n消息最终是由一系列的二进制比特串组成的,类型缺陷(Type flaw)攻击使得诚实主体对它所接收的消息发生了错误的理解。n如把攻击者重放的另一个会话中的Msg3当成了本会话中的Msg2,并进一步有可能把Msg3中的某个项(如一个随机数)当成是会话密钥。n在第2章中将介绍的Yahalom协议、Andrew Secure PRC协议和Otway-Rees协议都存在这样的类型缺陷攻击。n这种攻击并不是总能成功,因为这和实现密切相关,包括消息的格式、每个数据项的大小,是否有数据项标识,消息顺序号是否被加密或做完整性验证等。24协议交互攻击协议交互攻击n密钥通常是被设计在一个单独的协议中使用,然而,由于设计上或者使用上的疏忽,可能在多个协议中使用同一个密钥。n防范这种攻击可以考虑两种方法:一种方法是对于不同的协议使用不同的密钥;另外一种方法是在消息中添加协议标识(如协议名称及其版本号)并对其认证。n通常情况下,对协议的分析都只针对单个协议,并不考虑协议交互攻击。25拒绝服务攻击拒绝服务攻击n拒绝服务(Denial of service)攻击是一种常见的攻击手段,它主要通过耗尽诚实主体资源的方法,使之无法有效地运行安全协议。n具体分析和讨论见第六章。26Wei Jianfan27