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