收藏 分享(赏)

第8讲-密码协议(新).pptx

上传人:无敌 文档编号:331750 上传时间:2018-03-29 格式:PPTX 页数:55 大小:446.30KB
下载 相关 举报
第8讲-密码协议(新).pptx_第1页
第1页 / 共55页
第8讲-密码协议(新).pptx_第2页
第2页 / 共55页
第8讲-密码协议(新).pptx_第3页
第3页 / 共55页
第8讲-密码协议(新).pptx_第4页
第4页 / 共55页
第8讲-密码协议(新).pptx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、网络安全技术与实践(第2版)刘建伟 王育民 编著清华大学出版社2012-10-18,普通高等教育“十一五”国家级规划教材教育部2011年精品教材,课件制作人声明,本课件总共有17个文件,版权属于刘建伟所有,仅供选用此教材的教师和学生参考。本课件严禁其他人员自行出版销售,或未经作者允许用作其他社会上的培训课程。对于课件中出现的缺点和错误,欢迎读者提出宝贵意见,以便及时修订。课件制作人:刘建伟2012年2月8日,第8章 密码协议,安全协议分类及基本密码协议,二,三,秘密分拆协议,一,协议的基本概念,一,秘密广播协议和会议密钥分配,四,五,密码协议的安全性,一、协议的基本概念,是指两个或两个以上的参

2、与者为完成某项特定的任务而采取的一系列步骤协议自始至终是有序的过程,每一步骤必须依次执行协议至少需要两个参与者。一个人可以通过执行一系列步骤来完成某项任务,但它不构成协议通过执行协议必须能够完成某项任务。即使某些东西看似协议,但没有完成任何任务,也不能成为协议,协议的定义,协议的含义,1.1 仲裁协议,Trent为仲裁者(arbitrator),是公正的第三方,其他各方均信赖他“公正”意味着仲裁者对参与协议的任何一方没有偏向“可信赖”意味着他所说的话、做的事是正确的仲裁者将帮助两个互不信赖的实体完成任务,仲裁协议举例说明,在汽车交易中,Trent可以是律师Alice将车主权和钥匙交给律师;Bo

3、b将支票交给Alice;Alice在银行兑现支票;在规定的时间内,若证明支票是真的,律师将车主权和钥匙交给Bob;若支票是假的,Alice向律师提供证据,此后律师将车主权和钥匙归还Alice。,仲裁协议的特点,在计算机网络通信中,彼此互不信任的通信双方在通信时,也需要某台计算机充当仲裁者。但是,由于计算机网络的复杂性,使得互相怀疑的计算机很可能也怀疑作为仲裁者的计算机。在计算机网络中,要设立一个仲裁者,就要象平请律师一样付出一定的费用。然而在网络环境下,没有人愿意承担这种额外的开销。协议中引入仲裁时,会增加时延;由于仲裁者需要对每次对话加以处理,它有可能成为系统的瓶颈;仲裁者会成为黑客攻击的目

4、标。,1.2 裁决协议,裁决人(adjudicator)也是公正的可信赖的第三方,但他不直接参与协议。一旦通信双方发生纠纷,则需要他来裁决。,裁决协议举例说明,无仲裁子协议Alice和Bob协商协议条款;Alice签署这个合同;Bob签署这个合同;裁决子协议Alice和Bob 出现在法官面前;Alice向法官提供他的证据;Bob向法官提供他的证据;法官根据双方提供的证据进行裁决。,裁决协议的特点,裁决协议建立在通信双方均是诚实的基础上。当有人怀疑发生欺骗时,可信赖的第三方就可以根据所存在的证据判定是否存在欺骗。一个好的裁决协议应当能够确定欺骗者的身份;裁决协议只能检测欺骗是否存在,但是不能防止

5、欺骗的发生。,1.3 自动执行协议,自执行协议(self-enforcing)协议是最好的协议。协议本身就保证了公平性。这种协议不需要仲裁者的参与,也不需要仲裁者解决争端。如果协议中的一方试图欺骗另一方,那么另一方会立刻检测到该欺骗的发生,并停止执行协议。,好的协议应具备的特点,协议涉及的各方必须知道此协议的所有步骤。协议涉及的各方必须同意遵守协议。协议必须是非模糊的。对协议的每一步都必须确切定义,力求避免产生误解。协议必须是完整的。对每一种可能发生的情况都要作出反应。每一步操作要么是由一方或多方进行计算,要么是在各方之间进行消息传递,二者必居其一。,二、安全协议分类及基本密码协议,认证协议(

6、authentication protocol);密钥建立(交换、分配)协议(Key agreement/ exchange/distribution protocol);认证的密钥建立(交换、分配)协议(authenticated key agreement/exchange/ distribution protocol)。高层协议(higher layer protocol)低层协议(lower layer protocol)。,根据安全协议的功能分类,根据ISO的七层参考模型分类,安全协议分类及基本密码协议(续),双钥(或公钥)协议(public-key protocol)单钥协议(se

7、cret-key protocol) 混合协议(hybrid protocol),根据协议中采用的算法分类,安全协议分类及基本密码协议(续),认证协议(authentication protocol)向一个实体提供关于另外一个实体身份的确信度;密钥建立协议(key establishment protocol) 在两个通信实体之间建立共享密钥;认证的密钥建立协议(authenticated key establishment protocol)在另一实体的身份已被证实的基础之上,两个通信实体之间建立共享密钥。,作者认为比较科学的分类方法,2.1 密钥建立协议,该共享秘密通常用作通信双方一次性通

8、信的会话密钥;它也可以扩展到多方共享密钥建立,如会议密钥建立。协议可以采用单钥、双钥体制实现,有时要借助于可信赖的第三方;密钥建立协议可分为密钥传输协议和密钥协商协议;前者是将密钥从一个实体传给另一个实体,而后者则是由双方或多方共同提供信息建立起共享密钥。,密钥建立协议可在实体之间建立共享秘密,什么是会话密钥?在保密通信中,通常对每次会话都采用不同的密钥进行加密,所以叫做会话密钥。会话密钥只在通信的持续范围内有效。通信结束后,会话密钥会被清除。,(1)采用单钥体制的密钥建立协议,Alice Trent:请求得到与Bob的会话密钥;Trent Alice:EKA(Key), EKB(Key)Al

9、ice解密:DKAEKA(Key)=KeyAlice Bob: EKB(Key)Bob解密:DKBEKB(Key)=KeyAlice和Bob:采用会话密钥Key进行保密通信。,(2)采用双钥体制的密钥建立协议,Alice从数据库中得到Bob的公钥;Alice Bob:Bob解密:Alice和Bob:采用会话密钥Key进行保密通信。注意:此协议没有对公钥的合法性进行验证,所以不能抵抗中间人攻击。,Alice,Bob,KBP,KBS,(3)中间人攻击,Alice Bob:Alice发送其公钥KAP 给Bob;Mallory截获这一公钥,并将自己的公钥KMP发送给Bob;Bob Alice:Bob发

10、送其公钥KBP 给Alice;Mallory截获这一公钥,并将自己的公钥KMP发送给Alice;Alice Bob:当Alice采用“Bob”的公钥对消息加密并发送给Bob时,Mallory就会截获它;Bob Alice :当Bob采用“Alice”的公钥对消息加密并发送给Alice时,Mallory就会截获它。,Alice,Bob,Mallory,(4)联锁协议,Alice Bob:Alice发送其公钥KAP 给Bob;Bob Alice:Bob发送其公钥KBP 给Alice;Alice Bob: Alice采用Bob的公钥对消息加密,并发送一半密文给Bob;Bob Alice:Bob采用A

11、lice的公钥对消息加密,并发送一半密文给Alice;Alice Bob:Alice将另一半密文发送给Bob;Bob将两半密文组合在一起,并采用其私钥解密;Bob Alice: Bob发送它的另一半密文给Alice;Alice将Bob的两半密文组合在一起,并采用其私钥解密。,Alice,Bob,Mallory,联锁协议的安全性讨论,当仅获得一半而未获得另一半密文时,这些数据对攻击者毫无用处,因为攻击者无法解密(见书236页)。如果加密算法是一个分组加密算法,每一半消息可以是输出。对消息解密可能要依赖于某个初始化矢量,该初始化矢量可以作为消息的第二半发送给对方。发送的第一半消息可以是加密消息的单

12、向杂凑函数,而另一半消息可以是加密的消息。,联锁协议可以有效地抵抗中间人攻击,在实际中如何实现呢?,(5)采用数字签名的密钥交换,Alice从Trent中得到Bob的公钥证书(对Bob公钥的签名);Bob从Trent中得到Alice的公钥证书(对Alice公钥的签名) ;Alice和Bob采用CA的公钥验证CA签名的正确性,并获得对方的可信公钥;Alice和Bob:采用可信的公钥进行保密通信。,(6)密钥和消息传输,Alice生成一随机数K,并用其对消息M加密:EK(M);Alice从数据库中得到Bob的公钥;Alice用Bob的公钥对会话密钥加密: EBP(K)Alice将加密的消息和会话密

13、钥发送给Bob: EK(M), EBP(K)Bob采用其私钥对Alice的会话密钥解密:DBSEBP(K)=KBob采用会话密钥K对Alice的消息解密:DKEK(M)=M,(7)密钥和消息广播,Alice生成一随机数K,并用其对消息M加密:EK(M);Alice从数据库中得到Bob, Carol, Dave的公钥;Alice用Bob, Bob, Carol, Dave的公钥对会话密钥加密: EBP(K), ECP(K), EDP(K)Alice广播加密的消息和所有加密的会话密钥: EK(M), EBP(K) , ECP(K), EDP(K)仅有Bob, Carol, Dave可以采用各自的私

14、钥解密求出会话密钥K:DBSEBP(K)=K, DCSECP(K)=K, DDSEDP(K)=KBob , Carol, Dave采用会话密钥K对Alice的消息解密:DKEK(M)=M,Carol,Dave,ECP(K), EDP(K),(8)Diffie-Hellman密钥交换协议,约定:Alice和Bob均知道两个大素数n和g,g是群(0,n-1)上的本原元。这两个整数公开,可通过不安全信道传输它们。(1)AliceBob:Alice选择一个随机的大整数x: X=gx mod n(2)BobAlice:Bob选择一个随机的大整数y: Y=gy mod nAlice计算:K=Yx mod

15、n=gxy mod nBob计算: K=Xy mod n=gxy mod n至此,Alice和Bob就可以采用密钥K进行保密通信。注意:Diffie-Hellman攻击不能抵抗中间人攻击!要学会证明!,2.2 认证建立协议,认证包含消息认证、数据源认证和实体认证,用以防止欺骗、伪装等攻击。传统的认证方法是采用口令来解决这个问题。但是,口令容易被窃取。所以,采用口令认证的方式,其安全性比较脆弱。要解决这个问题,必须设计安全的认证协议,以防止假冒和欺骗等攻击。认证分为单向认证和双向认证。,(1)采用单向函数的认证协议,Alice Host:Alice向主机发送它的口令:PasswdHost计算该口

16、令的单向(杂凑)函数值:MD=H(Passwd)Host将计算得到的MD与预先存储的值MD进行比较;如果相同,则通过认证;如果不同,则拒绝Alice登录。,Alice,Host,(2)字典攻击和掺杂,一个采用单向函数加密的口令文件仍然易遭受攻击。Mallory可以编制100万个最常用的口令,然后用单向函数加密并存储密文。若每个口令为8B,那么密文不会超过8MB。然后,Mallory可以窃取某个加密的口令文件,并与它存储的密文相比较,看有哪些密文重合。这种攻击叫做字典攻击。事实证明,字典攻击非常有效。掺杂是一种使字典攻击变得更加困难的技术。掺杂是一个伪随机序列,常常将其与口令级联后再采用单向函数

17、加密。然后,将掺杂值和密文一起存储于主机的数据库中。如果掺杂的空间足够大,就会大大削弱字典攻击的成功概率。许多Linux系统仅采用12b的掺杂。但是,掺杂不是万灵药。,字典攻击,掺杂,(3)SKey认证程序,Skey是一个认证程序,它的安全性取决于所采用的单向函数开始时,Alice键入一个随机数R;计算机计算f(R), f(f(R),f(f(f(R)等100次,将其记为x1,x2,x100。并将x101和Alice的姓名存放在某个登录数据库中;Alice首次登录时,键入其姓名和x100。计算机计算x101,并将其与存储在数据库中的值x101相比较;如果相等,则Alice就通过认证;最后,计算机

18、用x101取代x100;Alice也将保存x101,将x100从其清单中删除。,什么是SKey,工作原理,(4)采用双钥体制的认证,Host Alice :主机向Alice发送一随机数:RAlice Host:EAS(R)(实质上就是对R签名), IDAHost在其数据库中搜索Alice的公钥,并采用此公钥解密(实质是验证签名):DAPEAS(R)=R如果R=R,则通过认证;如果RR ,则拒绝Alice登录。注意:此协议实现了Host对Alice 的认证,而没有实现Alice对Host 的认证,因此认证是单向的。,Alice,Host,(5)采用联锁协议的双向认证,Alice(口令PA) 和B

19、ob (口令PB)相互交换公钥;Alice Bob:EBP(PA)Bob Alice: EAP(PB)Alice对中收到的消息解密,并验证:DASEAP(PB)=PBBob对2中收到的消息解密,并验证:DBSEBP(PA)=PA注意:Mallory可以对此协议成功实施中间人攻击。,Alice,Bob,(6)SKID身份识别协议,SKID2和SKID3采用单钥体制构造(RACE的RIPE计划,MAC)下面是单向认证协议SKID2:Bob向Alice认证其身份。Alice Bob:随机数RA(RIPE规定为64b)Bob Alice:随机数RB,HK(RA, RB, B)=MAC(K, RA|RB

20、|B)Alice:计算HK(RA, RB, B)=MAC(K, RA|RB|B),并与收到来自Bob的值进行比较。若相等,则Alice成功认证Bob;否则,Alice认为Bob不拥有密钥K,所以是非法的。注意:此协议不能抵抗中间人攻击(请同学自己证明)。,双向SKID身份识别协议SKID3,Alice Bob:随机数RA(RIPE规定为64b)Bob Alice:随机数RB,HK(RA, RB, B)=MAC(K, RA|RB|B)Alice:计算HK(RA, RB, B)=MAC(K, RA|RB|B),并与收到来自Bob的值进行比较。若相等,则Alice成功认证Bob;否则,Alice认为

21、Bob不拥有密钥K,所以是非法的。 Alice Bob:HK(RB, A)=MAC(K, RB|A)Bob:计算HK(RB, A)=MAC(K, RB|A),并与收到来自Bob的值进行比较。若相等,则Bob成功认证Alice ;否则, Bob认为Alice不拥有密钥K,所以是非法的。注意:此协议不能抵抗中间人攻击(请同学自己证明)。,(7)消息认证,当Bob收到Alice的消息M,它如何判断这条消息是真的?有以下三种方法:Alice对消息M签名,并将签名发给Bob。Alice采用单钥体制对消息M加密,并将密文发给Bob。Alice计算消息M的MAC值,并将MAC发送给Bob。注意:第一种方法可

22、以向Trent证明此消息来自Alice;第二、 第三种方法不能向Trent证明此消息来自Alice。,2.3 认证的密钥建立协议,这类协议将认证和密钥建立结合在一起,使Alice和Bob确信他们正在与可信赖的对方进行保密通信。密钥认证分为三种:隐式密钥认证。Alice确信Bob的身份,只需验证密钥。密钥确认。目标是:Alice确信未经身份识别的Bob确实拥有某个特定密钥。此类协议的中心问题是识别Bob的密钥值。显式密钥认证。目标是:Alice确信已进行了身份识别的参与者具有给定密钥。此类协议的中心问题是识别Bob的身份。,认证和密钥交换协议中采用的符号,(1)大嘴青蛙协议,该协议是最简单的三方

23、协议,采用单钥体制构造:Alice Trent:A, EA(TA, B, K)Trent Bob:EB(TB, A, K)Alice与Bob:共享密钥K。此后,双方将采用密钥K进行保密通信。,(2)Yahalom协议,Alice Bob:A, RABob Trent:B, EB(A, RA, RB)Trent Alice: EA(B, K, RA, RB), EB(A, K)Alice:解密第1条消息,提取K,并验证RA与中相等;然后,发送给Bob: EB(A, K), EK(RB)Bob:用它的共享密钥对第1条消息解密,求出K;然后,采用K,求出RB。验证是否与中的值相同。,(3)Needh

24、am-Schroeder协议,Alice Trent:A, B, RATrent Alice:EARA, B, K, EB(A, K)Alice:对消息解密求出K,并验证RA是否与中值相等;然后,向Bob发送消息: EB(A, K)Bob:对收到的消息解密,求出K;然后,生产随机数RB,采用K加密后发送给Alice: EK(RB)Alice:对收到的消息解密求出RB;然后,生成RB-1, 向Bob发送: EK(RB-1)Bob:采用K对消息解密,并验证得到的明文就是RB-1。,Alice,Trent,Bob,(4)Otway-Rees协议,Alice Bob:I, A, B, EA(RA, I

25、, A, B)Bob Trent:I, A, B, EA(RA, I, A, B), EB(RB, I, A, B)Trent Bob: I, EA(RA, K), EB(RB, K)Bob:对收到的消息解密,求出K;然后,将属于Alice的消息发送给Alice: EA(RA, K)Alice:对收到的消息解密,求出K和RA;然后,验证RA与中的值相等。,(5)Kerberos协议,Alice Trent:A, BTrent Alice:EA(T, L, K, B), EB(T, L, K, A)Alice Bob:对第一条消息解密求出K;然后,向Bob发送消息: EK(A, T), EB(T

26、, L, K, A)Bob:对收到的消息解密,求出K;然后,将T加1,采用K加密后发送给Alice: EK(T+1)Alice:对收到的消息解密求出T+1,并验证其正确性。,(6)Neuman-Stubblebine协议,Alice Bob:A, RABob Trent: B, RB, EB(A, RA, TB)Trent Alice: EA(B, RA, K, TB), EB(A, K, TB), RBAlice Bob : EB(A, K, TB), EK(RB)Bob:对收到的第1条消息解密求出K,并采用K对第2条消息解密得到RB;Bob验证RB的值是否与中的值相等。,(7)DASS协议

27、(DEC公司),Alice Trent:BTrent Alice:ST(B, KB)Alice Bob: EK(TA), SKA(L, A, KP), SKPEKB(K)Bob Trent:ATrent Bob: ST(A, KA)Bob:用KA验证SKA(L, A, KP)得到KP ;用KP验证SKPEKB(K)得到EKB(K);再用其私钥KB解密得到会话密钥K。Bob Alice: EK(TB)Alice对收到的消息解密得到TB,并验证此消息是新发送的。,(8)Denning-Sacco协议,Alice Trent:A, BTrent Alice:ST(B, KB), ST(A, KA)A

28、lice Bob: EBSA(K, TB), ST(B, KB), ST(A, KA)Bob:对收到的第1条消息解密求出SA(K, TB), 然后采用Trent的公钥对第2、3条消息验证签名求出Alice的公钥KA和Bob的公钥KB;然后采用KA验证签名SA(K, TB), 并求出K。这样,Alice和Bob共享密钥K。注意:协议完成后,Bob可以假冒Alice与Carol通信,不安全。,(9)Woo-Lam协议,Alice Trent:A, BTrent Alice:ST(KB)Alice Bob: EKB(A, RA)Bob Trent:A, B, EKT(RA)Trent Bob:ST(

29、KA), EKBST(RA, K, A, B)Bob Alice: EKAST(RA, K, A, B), RBAlice Bob: EK(RB)Bob采用中获得的K对收到的消息解密得到RB,并验证此消息是否被改动过。,(10)EKE协议,此协议假设:Alice和Bob共享一个秘密口令PAlice Bob:A, EP(K)Bob Alice:EPEK(K)Alice Bob:EK(RA)Bob Alice:EK(RA, RB)Alice Bob:EK(RB)Bob:采用K对消息解密得到RB,并验证是否被改动过。,Alice,Bob,P,P,三、秘密分拆协议,假如你有一种饮料的配方,但出于保密考

30、虑,只能将配方让最亲密的人知道;如果其中任何一个人背叛了你,就会将配方出卖给竞争对手;将秘密配方分拆,一个人只能掌握配方中一种成分的比例;一个人出卖配方,将毫无用处;只有所有的人组合在一起,才能恢复配方。,问题提出,解决方案,秘密分拆协议(2方),Trent生成一随机比特串R,它与消息M具有相同的长度;Trent将M与R进行异或运算,得到S:S=MRTrent将R分给Alice,而将S分给Bob。若想重组这条消息,Alice和Bob仅需执行:Alice和Bob将各自得到的比特串进行异或运算,就会得到消息M:M=SR,秘密分拆协议(4方),Trent生成3个随机数R,S,T,它们与消息M具有相同

31、的长度;Trent将M与3个随机数进行异或运算,得到U=MRSTTrent将R分给Alice,S分给Bob,T分给Carol,U分给Dave。若想重组这条消息,Alice、Bob、Carol和Dave仅需执行:Alice和Bob将各自得到的比特串进行异或运算,就会得到消息M:M=URST,四、秘密广播协议和会议密钥分配协议,Alice想通过一个发射机广播一条消息,但是她不想让所有的人听懂她的消息M,而是有选择的;方法1:Alice与所选择的听众分别共享一个不同的密钥。方法2:采用代数方法。方法3:采用门限方案。此部分内容请参考通信网的安全理论与技术,问题提出,解决方案,4.3 Tatebaya

32、shi-Matsuzaki-Newman协议,Alice Trent:rA3 mod n;Trent通知Bob有人想与他交换密钥;Bob Trent:rB3 mod n;Trent Alice:rA rBAlice计算: (rA rB) rA= rB此协议是不安全的,请同学们自己证明,五、密码协议的安全性,认证协议是许多分布式系统安全的基础。虽然密码协议中仅仅进行很少的几组消息传输,但是其中每一消息的组成都是经过巧妙设计的,而且这些协议之间有着复杂的相互作用和制约。但是,很多协议都存在严重的安全缺陷。协议设计者有可能误解了所采用的密码技术不恰当地照搬了协议的某些特性人们对某一特定的通信环境及其

33、安全需求研究不够,问题提出,存在缺陷的原因,5.1 对密码协议的攻击,1. 已知明文攻击攻击者通过搭线窃听,收集明文/密文对。通过长期窃听,攻击者可以建立一个加密表。有可能进一步发现密钥。2. 选择密文攻击攻击者选择特定的密文比特串如全0和全1,来更快地解出密钥。这种攻击是主动攻击,因此更危险。3. 预言者会话攻击(详见书259页)4. 并行会话攻击(详见书260页),5.2 密码协议的安全性分析,这种方法就是采用现有的一些有效的协议攻击方法,逐个对协议进行攻击,检验其是否具有抵御这些攻击的能力。分析时,主要采用语言描述的形式,对协议所交换的密码消息的功能进行剖析。采用非专门语言和验证工具对协议建立模型并加以验证。通过开发专家系统,对密码协议进行开发研究。采用能够分析知识和信任的逻辑,对协议进行安全性研究。基于密码系统的代数特点,开发某种形式方法对协议进行分析和验证。,攻击检验法,形式语言逻辑分析法,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报