安全协议分析与设计 卫剑钒 -第2章-上

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

和ISO/IEC 9798-2单向单条消息认证协议大体类似, 提供的服务也相同。
两者的不同之处,仅在于两条消息认证协议中使用 的不是时间戳,而是随机数。
Msg1 Msg2
B→A: Nb
A→B: { Nb,B }Kab
5
ISO/IEC 9798-2 双向两条消息认证协议
它提供了双向的身份认证服务,A和B分别使用单向 单条消息认证协议中的方法,用一条消息来认证对 方的身份。
根据会话密钥产生方式的不同,可以将密钥建立协 议分为密钥传送协议和密钥协商协议。
密钥传送协议产生的会话密钥,是由一个主体产生 的,其他主体只是被动地接受。
密钥协商协议是指协议中主体共同合作参与,协商 产生出会话密钥。
在密钥协商协议中,每个主体根据交换得来的信息 和自己已有的信息,通过某个函数计算出会话密钥。
攻击者Z首先使A发起一个会话,然后在另一个会话 中,攻击者成功地冒充了A。
33
Yahalom协议
Yahalom协议是一个基于对称密码体制带可信第三 方的密钥传送协议,由于其不常见的结构使得该协 议经常被研究者用来进行形式化的验证分析。
34
A可以通过Msg3中的随机数Na来检查会话密钥的新 鲜性。但是,对B而言,Msg4中并没有关于Kab新 鲜性的标记。
Msg1 Z(A) →B: A Msg2 B→Z(A): Nb Msg3 Z(A) →B: Nb
Msg4 B→ Z(S): { A,Nb }Kbs Msg5 Z(S) →B: { A,Nb }Kbs
20
类型缺陷攻击
在Msg3中,攻击者Z将B在Msg2中发送的随机数Nb 反射给了B,Msg5则是对Msg4的反射。
13
ISO/IEC 9798-3 两条消息并行认证协议
这个协议可以看成是由两个并行的单向两条消息认 证协议组成的。
Msg1和Msg1'可以同时发送,Msg2和Msg2'也如此。
14
有可信第三方的认证协议
有可信第三方的身份认证协议,指的是协议的交互 需要借助可信的第三方来认证用户的身份。在这种 情况下,可信的第三方和每个用户都共享一个密钥。
攻击者将Msg5'作为Msg5转发给B,使得B认为在第1个交互 中和他会话的确实是A,Z达到了在第1个交互中冒充A的目的。
18
并行会话攻击
这个攻击中,攻击者重放的消息来源于协议当前的 交互之外,涉及两个会话并行的运行,故可被看做 是一种并行会话攻击(parallel session attack)。
安全协议分析与设计 第二章(上)
卫剑钒
身份认证协议
认证(Authentication)指的是对被认证对象某种属性真实性 的保证和确认。当被认证对象为人或机构且被认证的属性是 身份时,就称为身份认证。
身份认证可以分为单向身份认证和双向身份认证。单向身份 认证是指两个主体A和B,A认证了B的身份,但B的身份并没 有或者不需要被A认证。双向身份认证则是指A认证了B的身 份,并且B也认证了A的身份。
Msg1 Msg2 Msg3
B→A: Nb
A→B: { Nb,Na,B }Kab B→A: { Nb,Na }Kab
7
ISO/IEC 9798-3 单向单条消息认证协议
主体A将时间戳Ta和B的身份用自己的私钥Ka−1签名, B收到后,用A的公开密钥对此进行解密,检查时间 戳以及身份B是否正确,从而验证A的身份。
B只能间接地通过核对{Nb}Kab中的随机数Nb来获得 一定的新鲜性保证。
Kab本身是一个会话密钥,在协议未完成之际就使用 Kab是很不明智的。
但是,该协议并未被发现严重漏洞。
35
对Yahalom协议的类型缺陷攻击
Msg2中的{A,Na,Nb}Kbs被重放到Msg4中,并用 Na和Nb的连接作为密钥对Nb加密,使得B误将{Na, Nb}当成新的会话密钥。
29
Andrew Secure PRC协议 的类型缺陷攻击
• 攻击者可以利用Msg2来代替Msg4。 • A可能会误以为Msg2中的随机数Na+1是新的会话密
钥Kab‘,A接受了一个并非B产生的会话密钥。 • 协议运行中的随机数可能是可以预知的。
30
Andrew Secure PRC协议的 并行会话攻击
S没有参与协议的运行,但B不能得知。 这个攻击可以看做是一个类型缺陷(type flaw)攻
击,这种攻击依赖于实现,如果一个协议执行实体 不能分辨协议中的两种数据类型,就容易导致这种 攻击,如本例中攻击者用Nb冒充{Nb}Kas,而执行 者不能分辨它们的不同。
21
SPLICE/AS协议
SPLICE/AS协议是Yamaguchi在1990年提出的一个身份认证 协议,它提供了客户A和服务器B之间的相互身份认证。其中 可信第三方S负责公开密钥的分发,T为时间戳,L是消息的 有效时限。N1、N2和N3都是随机数。
为了保证一次通信会话过程的安全,成功地建立一个会话密 钥是十分重要的。为用户在一次通信中建立会话密钥的安全 协议,被称为密钥建立协议。
密钥建立是有赖于身份认证的,否则可能在密钥建立后,都 不清楚是否是和自己期望的对象建立的,因此密钥建立协议 一般都包含有身份认证的功能。
27
密钥建立协议的分类
15
Woo-Lam单向认证协议
B收到A的认证发起后,发送给A一个随机数Nb,A使用与可 信第三方S共享的密钥Kas对Nb加密。
Msg1 A→B: A Msg2 B→A: Nb Msg3 A→B: { Nb }Kas
B收到加密结果{Nb}Kas后,将其发送给可信第三方S,S将 解密的结果用与B共享的密钥加密,发送给B。
24
对SPLICE/AS协议的攻击2
25
攻击过程
省略了攻击者获得PKb和PKa的过程。 Z冒充了B,使得A认为自己和B完成了一次认证,而
B却认为自己和Z完成了一次认证,B并不认为自己 最近(指的是用N2这个保证新鲜性的随机数)和A 交互过。
26
密钥建立协议
通信双方之间要进行安全的通信,通常需要密钥来加密通信 数据。和协议的会话类似,一次通信过程也可以看成是一次 会话。如果一个加密密钥只在一次会话期间使用,把它称为 会话密钥(Session Key)。
Msg1 B→A: Nb
Msg2 A→B: Na,Nb,B,{ Na,Nb,B} Ka−1
9
ISO/IEC 9798-3 双向两条消息认证协议
它可以看成是由两个独立单向单条消息认证过程组 成的。主体B通过Msg1认证了主体A的身份,A通过 Msg2认证B的身份。
Msg1 A→B: Ta,B,{ Ta,B } Ka−1 Msg2 B→A: Tb,A,{ Tb,A } Kb−1
对于Woo-Lam单向认证协议的这个缺陷,Abadi提 出了改进方案,方法是在最后一条可信第三方S发给 B的消息中,增加发起者的身份标识,即
Msg5 S→B: { A,Nb }Kbs
那么,如果仍然按照该方法攻击时,B将能够识别出 Z的身份,Z伪装A失败。
19
仍然不安全
不过,这个修正后的Woo-Lam单向认证协议仍然是 不安全的,Clark和Jacob在文献[CJ97]中提出了对 Woo-Lam单向认证协议修正版本的攻击。
31
Needham-Schroeder Public Key(NSPK) 协议
NSPK协议提供了对主体双方的双向认证。主体A和 B交换各自的随机数Na、Nb,从而共享Na和Nb,并 将其结合以生成一个新的会话密钥。PKa和PKb分别 为A和B的公开密钥。
32
协议发布后,被多种方法检验无误,直到 1996年,Gavin Lowe发现该协议的一个并行会话缺 陷[Lowe96a],即Lowe对NSPK协议的攻击。
11
ISO/IEC 9798-3双向3条消息认证协议的早期版本中, B在Msg3中发送给A的不是Nb,而是一个新的随机 数Nb‘。
Msg1 B→A: Nb
Msg2 A→B: Na,Nb,B,{Na,Nb,B}Ka−1 Msg3 B→A: Nb',Na,A,{Nb',Na,A}Kb−1
12
这个早期版本存在Canadian攻击。攻击者同时发起两个会话, 一个是冒充B对A发起,一个是冒充A对B发起。将第2个会话 中B的回应消息Msg2‘直接作为第1个会话中的Msg3发给A, 使得A认为自己和B完成了第1个会话(实际上B并没有参加)。

Andrew Secure PRC协议
A和B使用已有的共享密钥Kab确认了相互的身份。 主体B产生一个新的会话密钥Kab‘以及新的随机数Nb’,用
Kab加密后传送给A,从而在A和B之间建立一个新的会话密 钥Kab‘。 攻击者可能将在后面其他的协议交互中重放Msg4,使得A将 一个旧的会话密钥当做当前新建立的会话密钥
10
ISO/IEC 9798-3 双向3条消息认证协议
A和B各自都使用了自己的随机数Na和Nb,通过验 证对方的签名,来达到认证对方身份的目的。
Msg1 Msg2 Msg3
B→A: Nb
A→B: Na,Nb,B,{ Na,Nb,B } Ka−1 B→A: Nb,Na,A,{ Nb,Na,A } Kb−1
根据在协议中可信第三方的参与情况,可以将身份认证协议 分为无可信第三方的和带可信第三方的这两大类。
2
无可信第三方的认证协议
在无可信第三方身份认证协议中,用户之间认证身 份的交互,不需要可信第三方的参与。
由于没有第三方,协议中消息加密使用的密钥,需 要保存在双方本地。
如果使用对称加密体制,需要各用户之间存在共享 的密钥;如果使用公钥加密体制,则要求每个用户 都拥有其他用户的公开密钥。
3
ISO/IEC 9798-2 单向单条消息认证协议
协议的目的是B用单条消息认证A的身份。 B收到A发来的消息后,用和A共享的密钥Kab将
Msg1解密,检验时间戳Ta和身份B是否正确,如果 正确,则认可发送消息的源用户是A。
Msg1 A→B: { Ta,B }Kab
4
ISO/IEC 9798-2 单向两条消息认证协议
在冒充A的交互中,当Z接收到B发送的随机数Nb后,Z发送 一个随机数R作为响应,而使用自己与S共享的密钥Kzs对Nb 加密,将加密后的数据{Nb}Kzs作为在另外一个交互中对B的 响应。
因为Z在另外一个交互中,是以自己的身份和B通信,因此B 将Z的身份以及{Nb}Kzs发送给S。可信第三方S将解密后的数 据用Kbs加密,以Msg5‘发送给B。
Msg1 Msg2
A→B: { Ta,B }Kab B→A: { Tb,A }Kab
6
ISO/IEC 9798-2 双向3条消息认证协议
和ISO/IEC 9798-2双向两条消息认证协议的不同之 处在于使用的是随机数,而不是时间戳。
协议的最后一条消息,B将两个随机数绑定在一起, 用A和B共享的秘密密钥加密后,发送给A。
Msg1 A→B: Ta,B,{Ta,B} Ka-1
8
ISO/IEC 9798-3 单向两条消息认证协议
A在给B发送的数据中,加入了自己产生的随机数, 这个随机数并不是为了身份认证而加入的。
通过在签名中加入Na,使得A不会盲目地对B发送的 信息进行签名,以防止攻击者获得一个它需要的签 名。
22
对SPLICE/AS协议的攻击1
23
攻击过程
攻击者Z的目的是冒充A的身份,与B完成身份认证。 攻击者篡改了B向可信第三方S请求A的公开密钥的
消息Msg4,使得S以为B请求的是Z的公开密钥。因 此,服务器B接收到Msg5后,把PKz看成用户A的公 开密钥,并可用PKz成功地验证Msg3中的数字签名。 协议交互完毕后,服务器B将以为的确是用户A和自 己会话。 这种攻击的主要原因是在Msg2和Msg5这种类似证 书的对公钥的签名中没有绑定公钥的所有者名字。
Msg4 B→S: { A,{ Nb }Kas }Kbs Msg5 S→B: { Nb }Kbs
B收到后,用与S共享的密钥对其解密,验证解密后的数据是 否是原先发送的随机数Nb,若是,则认为A的身份可信。
16
Abadi对Woo-Lam单向认证协议的攻击
17
攻击过程
攻击者Z对B发起了两次并行的会话,在其中一个会话里冒充 A的身份,另一个会话里以Z自己的身份和B交互。
相关文档
最新文档