计算机安全高级课程--安全协议(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江大学计算机学院 陈刚 15
攻击4--消息重放攻击
对协议3的攻击 截获协议3中步骤1的消息请求
将步骤2修改为
Malice(“Trent”)发给Alice:{Bob,K’}KAT {Alice ,K’}KBT,此处K’是Malice从以前协议(Alice和Bob 之间的一次正常运行)的运行中记录的 因此该攻击会使Alice与Bob重新使用一个旧会话密 钥K’,既然是旧的,Malice就可能已经发现了该密 钥
个原根,如果数值 α mod q, α2 mod q,……, αq-1 mod q
是各不相同的整数并且以某种排列方式组成了从1到q-1的所有整数
对于一个整数b,可以找到一个唯一的指数i,使得
b = αi mod q
其中 0≤i ≤ q-1, 0≤b≤ q-1
指数i称为b的以α为基数的模q的离散对数 计算模一个素数的指数相对容易,计算离散对数很困难
浙江大学计算机学院 陈刚
18
修正2
1. Alice发送给Trent:Alice,Bob 2. Trent发送给Alice:{Bob,K,T,{Alice,K, T}KBT}KAT 3. Alice向Bob发送:{Alice,K,T}KBT 4. Bob解密{Alice,K}KBT,验证Alice的身份,生成随 机数NB,向Alice发送:{Hello, I’m Bob,NB}K 5. Alice向Bob发送: {Hello, I’m Alice,NB+1}
浙江大学计算机学院 陈刚
7
协议2--Trent产生会话密钥
假定:Alice和Trent共享密钥KAT,Bob和Trent共享密 钥KBT 目标:Alice和Bob想要建立共享密钥K 步骤:
1. Alice向Trent发送:Alice,Bob
2. Trent随机生成K,发送给Alice:{K}KAT,{K}KBT
浙江大学计算机学院 陈刚
23
Diffie-Hellman密钥交换算法
浙江大学计算机学院 陈刚
24
Diffie-Hellman算法思想
K = (YB)XA mod q
= (αXB mod q) XA mod q = (αXB) XA mod q = (αXA) XB mod q = (αXA mod q) XB mod q
浙江大学计算机学院 陈刚 16
协议4--询问/应答协议(Needham-Schroeder)
假定:Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT 目标:Alice和Bob想要建立共享密钥K(防止旧消息被重放) 步骤:
1. Alice随机生成NA,发给Trent:Alice,Bob,NA 2. Trent随机生成K,发送给Alice:{NA,K,Bob,{Alice,K}KBT}KAT 3. Alice解密NA,验证她的nonce,验证Bob的身份,向Bob发送:Trent ,{Alice,K}KBT 4. Bob解密{Alice,K}KBT,验证Alice的身份,生成随机数NB,向Alice 发送:{Hello, I’m Bob,NB}K 5. Alice向Bob发送: {Hello, I’m Alice,NB+1}
Malice不能做到的事:
不能猜到从足够大的空间中选出的随机数 没有正确的密钥,不能由给定的密文恢复出明文;也不能从给定的明 文构造出正确的密文 不能从公钥计算出相匹配的私钥 一般不能控制计算环境中的许多私有区域,如离线的存储器
浙江大学计算机学院 陈刚 2
对安全协议的攻击
对安全协议的成功攻击,并不是指攻破该协议所用的 密码算法,而是指Malice能够以在不用攻破密码算法
的前提下以不被察觉的方式获得某种密码或破坏某种
密码服务。 安全协议被攻击成功是因为协议设计的错误,而不是 密码算法的问题。
浙江大学计算机学院 陈刚
3
对安全协议的典型攻击方法


姓名遗漏攻击
消息重放攻击 中间人攻击 平行会话攻击 反射攻击


交错攻击
类型缺陷攻击 密码服务滥用攻击 ……
非轰炸机的敌我自动识别系统应答,安哥拉空防将应答信号传递给古 巴空军,古巴轰炸机发射给南非空防系统,于是被当作南非轰炸机大 摇大摆进入南非。
浙江大学计算机学院 陈刚
21
典型案例
对Diffie-Hellman密码交换协议的攻击
浙江大学计算机学院 陈刚
22
Diffie-Hellman算法思想
找到两个公开的数字:一个素数q和一个整数α,定义α为素数q的一
2. Trent解密{K}KAT恢复K,创建{K}KBT向Bob发送: Alice,Bob ,{K}KBT
3. Bob解密{K}KBT恢复K,向Alice发送:{Hello, I’m Bob}K
浙江大学计算机学院 陈刚
6
缺 陷
密钥由Alice生成,但是Bob可能不信任Alice 的能力,怀疑其产生的密钥的随机性不够好; 也许由于Alice的能力,也许Alice并不关心会 话密钥是否强而只是为了方便记忆 Bob可能不愿意接受由Alice生成的密钥
14
攻击3
重放攻击--对协议2的攻击,攻击目标:Alice认为 在和Bob共享密钥K,但实际上是在与Malice共享密钥K’:
1. Alice向Trent发送:Alice,Bob 2. Malice(“Trent”)发给Alice:{K’}KAT,{K’}KMT ,此处K’ 是以前Alice和Malice之间的一个会话,Malice已经记 下了{K’}KAT 3. Alice解密{K’}KAT恢复K’,发送给Malice(“Bob”) : Trent,Alice, {K’}KMT 4. Malice(“Bob”):{Hello, I’m Bob}K’
3. Alice解密{K}KAT恢复K,发送给Bob:Trent,Alice,{K}KBT 4. Bob解密{K}KBT恢复K,向Alice发送:{Hello, I’m Bob}K
浙江大学计算机学院 陈刚
8
姓名遗漏攻击
在认证协议中,一般与某条消息相关的名字可以从该 消息上下文的其他部分或者从使用的加密密钥推断出
安全协议(2)
陈 刚 浙江大学计算机学院
cg@
浙江大学计算机学院 陈刚
1
Dolev-Yao威胁模型
Malice能做到的事:
能截获经过网络的任何消息 是网络的一个合法使用者,能够发起与任何其他用户的对话
有机会成为任何主体发出信息的接收者
能够冒充任何别的主体给任意主体发消息
K
浙江大学计算机学院 陈刚
17
攻击5--Denning攻击
攻击目标:Bob认为他正在和Alice共享一个新的会话密钥,但实 际上该密钥并不是新的,Malice有可能知道该密钥 攻击步骤:
1. Alice随机生成NA,发给Trent:Alice,Bob,NA 2. Trent随机生成K,发送给Alice:{NA,K,Bob,{Alice,K}KBT}KAT 3. Alice向Malice(“Bob”)发送:Trent,{Alice,K}KBT
来。然而,当这些信息不能推断得出时,就会造成姓
名遗漏错误 业内专家更容易犯姓名遗漏错误,因为专家更希望设
计出精巧的协议,应当包含更少的冗余信息
浙江大学计算机学院 陈刚
9
攻击1--对协议2的攻击
假定:Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT, Malice和Trent共享密钥KMT 攻击目标:Alice认为在和Bob共享密钥K,但实际上是在与Malice 共享密钥K 步骤:
浙江大学计算机学院 陈刚
13
消息重放攻击
Malice预先记录某个协议先前的某次运行中的某条消 息,然后在该协议新的运行中重放记录消息


典型的例子是重放的消息中包含某个旧的被攻破的会
话密钥 这是最为传统的攻击方式,解决思路是保持足够新鲜 的标识符(利用一次性随机数+时间戳)
浙江大学计算机学院 陈刚
中间人攻击(1)
象棋大师问题 1980年代后期,古巴空军突破南非空防,轰炸了南非军营。这是中间
人攻击成功的一个经典案例。
当时南非的黑羚羊轰炸机正在轰炸安哥拉阵地。古巴空军便侵入南非 ,南非空防系统发送敌我自动识别系统的询问信号,古巴空军将信号
传给安哥拉阵地,由安哥拉空防阵地向南非轰炸机重放询问信号,南
认证服务器被每个用户所信赖,称为可信第三方,以下 用Trent代指
浙江大学计算机学院 陈刚 5
协议1--从Alice到Bob
假定:Alice和Trent共享密钥KAT,Bob和Trent共享密 钥KBT 目标:Alice和Bob想要建立共享密钥K 步骤:
1. Alice产生随机数K,向Trent发送:Alice,Bob,{K}KAT
1. Alice发给Malice(“Trent”):Alice,Bob 2. Malice(“Alice”)发给Trent:Alice,Malice 3. Trent随机生成K,发送给Alice:{K}KAT {K}KMT 4. Alice解密{K}KAT恢lice, {K}KMT
浙江大学计算机学院 陈刚 4
认证服务器
假设Alice和Bob以前从未见过面,因此不能讨论一个共 享密钥,也不能确定对方公钥,那么如何通过不安全的 网络进行安全通信? Alice和Bob可以彼此见一面,建立起相关的安全基础 但如果有N个用户,则需进行N(N-1)/2次联系,不实际
提出认证服务器的思路,每个用户都在认证服务器上注 册,每一用户都与服务器共享一个密钥
5. Malice(“Bob”)向Alice发送:{Hello, I’m Bob}K
浙江大学计算机学院 陈刚 10
修正1--掩盖Bob的身份
协议2的步骤1改为
1. Alice发送给Trent:Alice,{Bob}KAT
2. Trent随机生成K,发送给Alice:{K}KAT,{K}KBT
3. Alice解密{K}KAT恢复K,发送给Bob:Trent,Alice ,{K}KBT
3’. Malice(“Alice”)向Bob发送:Trent,{Alice,K’}KBT
4. Bob解密并验证Alice的身份,生成随机数NB,向Malice(“Alice”)发 送:{Hello, I’m Bob,NB}K’ 5. Malice(“Alice”)向Bob发送: {Hello, I’m Alice,NB+1}K’
K
浙江大学计算机学院 陈刚
19
说 明
当Alice和Bob收到Trent所发出的协议消息时 ,验证|Clock – T| < Δt1+ Δt2
其中,Clock是接收者的当地时间,Δt1是 Trent的时钟和当地时钟之间正常差值的区间 ,Δt2是所期望的网络时延区间
浙江大学计算机学院 陈刚
20
4. Bob解密{K}KBT恢复K,向Alice发送:{Hello, I’m Bob}K
浙江大学计算机学院 陈刚
11
攻击2
首先,Malice会执行
1. Malice(“Alice”)发给Trent:Alice,{Malice}KAT 其余部分与攻击1相同, {Malice}KAT在以前的某次Alice 与Malice的正常通讯中记录下来。
1. Alice发给Trent:Alice,Bob 2. Trent随机生成K,发送给Alice:{Bob,K}KAT,{Alice,K}KBT 3. Alice解密{Bob,K}KAT,验证Bob的身份,向Bob发送:Trent, {Alice,K}KBT 4. Bob解密{Alice,K}KBT,验证Alice的身份,向Alice发送:{Hello, I’m Bob}K
起初Malice不知道Alice打算和谁运行这个协议 ,但是后面步骤4中,网络头中必须包含Bob的地 址以便正确传递信息,因此此时Malice截获到该 消息后就可以知道Bob的信息
浙江大学计算机学院 陈刚
12
协议3--消息认证协议
解决思路--如果主体的身份对于消息的意义来说是必要的,那么 为了保险起见,应当在消息中明确置入主体的名字 假定:Alice和Trent共享密钥KAT,Bob和Trent共享密钥KBT 目标:Alice和Bob想要建立共享密钥K 步骤:
相关文档
最新文档