安全协预习(密码协议)安全服务的项目包含:•对代理和结点的认证•建立结点之间的会话密钥•确保安全性、完整性、不可否认性使用的密码机制:对称、非对称、哈希函数、数字签名、时戳、随机数和序列号等。设计和分析安全协议的困难•1.安全协议所确保的各种性质非常细微。•2.协议的执行环境复杂且充满入侵者,要考虑代理蓄意破坏协议的可能性。•3.完全获知入侵者的能力极其困难。入侵者除了通常操纵经过的网络信息外,还假定他们掌握密码分析技术。例:很多协议的漏洞都经过若干年才发现。Needham-Schroeder安全协议(NSSK)Jeeves共享密钥(Anne)共享密钥(Bob)AnneKabBob安全通道的建立一些假设•ServerKey(a)【kas】长期密钥•ServerKey(b)【kbs】长期密钥•每个用户与服务器有一个长期密钥•用户之间没有长期密钥•为什么不是每两个用户之间都拥有一个长期密钥?N个用户,N2个密钥。NSSK协议步骤•消息1aJ:a.b.na•消息2Ja:{na.b.Kab.{kab.a}ServerKey(b)}ServerKey(a)•消息3ab:{kab.a}ServerKey(b)•消息4ba:{nb}kab•消息5ab:{nb-1}kab协议中的符号含义•一般格式消息mab:data•{data}k:该符号表示用密钥k对data加密后得到的值。•m.n:该符号表示正文m后紧跟着(连接符)文本n。•na:随机数(nonce)本协议目标若协议正常运行,则用户Anne和Bob最终可以使用临时密钥kab共享信息。消息4和5:认证信息。a收到消息4可以确认b知道密钥Kab。b收到消息5可以确认a知道密钥Kab。安全协议的脆弱性例11.用户Anne向Bob发送一条消息{X}pkAnne。2.当用户Bob不能阅读收到的消息,只有用户Anne可以解密。因此Bob{{X}pkAnne}pkBob并将它发送回给用户Anne。3.现在根据RSA算法的交换性,可以得出:{{X}pkAnne}pkBob={{X}pkBob}pkAnne4.用户Anne可以将上述结果回发给用户Bob,然后也只有Bob能解密。中间人攻击1.攻击者Yves截获用户Anne向Bob发送的第1条消息{X}pkAnne,用自己的公钥对它加密。{{X}pkAnne}pkYves2.攻击者将加密结果发给用户Anne,而用户Anne无法识别这个应答消息是不是它所期望的从用户Bob发出的。{X}pkYves3.攻击者Yves在消息传递至用户Bob之前再次截获它,解密就得到了秘密信息X。安全协议的脆弱性例2—穿插•攻击者试图使协议在两个或者多个连接中间时执行以多个步骤之间的重叠。•考察Needham-Schroeder公钥协议消息1ab:{a.na}pkb消息2ba:{na.nb}pka消息3ab:{nb}pkb最终所有用户都确信的原则•■他们知道自己正在和谁进行会话。•■他们对na和nb的值达成一致。•■没有其他人知道na和nb的值。多年以后发现的一个攻击:G.Lowe,BreakingandfixingtheNeedham-Schroederpublic-keyprotocolusingFDR.ProceedingsofTACASnumber1055inLNCS,Springer,1996攻击原理如下•消息.1AY:{a,na}PKY•消息.1Y(A)B:{a,na}PKB•消息.2BY(A):{na.nb}PKA•消息.2YA:{na.nb}PKA•消息.3AY:{nb}PKY•消息.3Y(A)B:{nb}PKBAnne、Yvve共享na,nb。Bob、Anne却认为仅他们单独共享na,nb。Yahalom---密码泄漏消息1ab:a.na消息2bJ:b.{a.na.nb}serverkey(b)消息3Ja:{b.kab.na.nb}serverkey(a).{a.kab}ServerKey(b)消息4ab:{a.kab}ServerKey(b).{nb}kab安全协议2.3安全协议及其受到的攻击实例2.3安全协议及受到攻击的实例•A,B,…:表示参与协议的主体。•Kij:主体i,j共享的会话密钥。•Ki:主体i的公钥。•Ki-1:主体i的私钥。•Ri:主体i生成的随机数。•Ni:主体i生成的序列号。•Ti:主体i生成的时戳。•[m1|m2]:表示消息的级联续上页•E(k:m):表示用密钥K对消息m加密。•Text1,Text2,…:为消息常量。•fKab(X):表示用Kab加密的Hash函数。•Z:表示攻击者。2.3.1无可信第三方参与的对称密钥协议1.ISOone-pass单方对称密钥认证协议1)AB:Text2,E(Kab:[Ta|Na],B,Text1)2.ISOtwo-pass单方对称密钥认证协议1)BA:Rb,Text12)AB:Text3,E(Kab:Rb,B,Text2)无可信第三方参与的对称密钥协议(2)•3.ISOtwo-pass双方对称密钥认证协议1)AB:Text2,E(Kab:[Ta|Na],B,Text1)2)BA:Text4,E(Kab:[Tb|Nb],A,Text3)无可信第三方参与的对称密钥协议(3)4.ISOthree-pass双方对称密钥认证协议1)BA:Rb,Text12)AB:Text3,E(Kab:Ra,Rb,B,Text2)3)BA:Text5,E(Kab:Rb,Ra,Text4)无可信第三方参与的对称密钥协议(4)•5使用单向函数1)BA:B,Rb2)AB:A,E(Kab:f(Rb),Ra,A,K)3)BA:B,E(K:f(Ra))使用单向函数验证消息的正确性。无可信第三方参与的对称密钥协议(5)•6.RFC协议1)AB:A,E(Kab:Na)2)BA:E(Kab:Na+1,Nb)3)AB:E(Kab:Nb+1)4)BA:E(Kab:K’ab,N’b)有缺陷,例如4)易被E(Kab:Na+1,Nb)替代,并且A不能觉察()。RFC协议的修改1)AB:A,Na2)BA:E(Kab:Na’,K’ab)3)AB:A,E(K’ab:Na’)4)BA:Nb仍有缺陷,存在多重会话攻击多重会话攻击—A与B建立会话,Z假冒B又邀请A建立会话1)AZ(B):A,Na1’)Z(B)A:B,Na2’)AZ(B):E(Kab:Na’,K’ab)2)Z(B)A:E(Kab:Na’,K’ab)3)AZ(B):A,E(K’ab:Na’)3’)Z(B)A:A,E(K’ab:Na’)4)Z(B)A:Ni4’)AZ(B):Na’2.3.2有可信第三方参与的对称密钥协议(1)•1.Needham-Schroeder私钥协议1)AS:A,B,Na2)SA:E(Kas:Na,B,Kab,E(Kbs:Kab,A))3)AB:E(Kbs:Kab,A)4)BA:E(Kab:Nb)5)AB:E(Kab:Nb-1)问题:消息3)新鲜性无法保证。若使用流密码则消息4)和5)差别很小,易被攻击。缺陷分析•若在给定的时间内旧密钥Kab被解密,则该协议有问题:•由于消息3)中没有新鲜性标记,因此攻击者重放一个以前A发给B的报文。Z(A)B:E(Kbs:Kab,A)使得B以为是A发来的。2.修订的NeedhamSchroeder协议1)AB:A2)BA:E(Kbs:A,Nb’)3)AS:A,B,Na,E(Kbs:A,Nb’)4)SA:E(Kas:Na,B,Kab,E(Kbs:Kab,Nb’,A))5)AB:E(Kbs:Kab,Nb’,A)6)BA:E(Kab:Nb)7)A—B:E(Kab:Nb-1)该协议仍然有缺陷,见文献C.Boyd.Towardsaformalframeworkforauthentication.Manuscript,UniversityofManchester,19903.Yahalom协议1)AB:A,Na2)BS:B,E(Kbs:A,Na,Nb)3)SA:E(Kas:B,Kab,Na,Nb),E(Kbs:A,Kab)4)AB:E(Kbs:A,Kab),E(Kab:Nb)对协议的一个攻击为1)Z(A)B:A,Na2)BZ(S):B,E(Kbs:A,Na,Nb)3)SA:E(Kas:B,Kab,Na,Nb),E(Kbs:A,Kab)4)Z(A)B:E(Kbs:A,Na,Nb),E(Na,Nb:Nb)Nb怎么获取?若Z为A很容易做到。其他协议1)Needham-Schroeder签名协议2)大嘴青蛙协议3)CarlsonSKI协议4)ISO四向认证协议5)ISO五向认证协议6)Woo&Lam认证协议7)NeumanStubblebine协议2.3.3无可信第三方参与的公钥协议1.ISOone-pass单方公钥认证协议AB:CertA,[Ta|Na],B,Text2,E(Ka-1:[Ta|Na],B,Text1)2.ISOtwo-pass单方公钥认证协议1)BA:Rb,Text12)AB:CertA,Ra,Rb,B,Text3,E(Ka-1:Ra,Rb,B,Text2)3.Diffie-Hellman协议1)AB:X=GxmodN2)BA:Y=GymodNG,N是通信主体A、B的共识。协议执行完成后,双方计算得到新的密钥K=GXYmodN(本协议不提供认证)4.station-to-station协议1)AB:A,B,ax2)BA:B,A,ay,E(K:(ayax))3)AB:A,B,E(K:(axay))攻击:B与Z通信,不知道A的存在对该协议的攻击1)AZ(B):A,B,ax1’)ZB:Z,B,ax2’)BZ:B,Z,ay,E(K:(ayax))2)Z(B)A:B,A,ay,E(K:(ayax))3)AZ(B):A,B,E(K:(axay))对STS协议的修改1)AB:A,B,ax2)BA:B,A,ay,E(K:(A,ayax))3)AB:A,B,E(K:(B,axay))此时,2’)BZ:B,Z,ay,E(K:(Z,ayax))2)Z(B)A:B,A,ay,E(K:(Z,ayax))其他协议1.ISOtwo-pass双方公钥认证协议2.ISOthree-pass双方公钥认证协议3.Bilateral密钥交换公钥协议4.Station-to-Station协议2.3.4有可信第三方参与的公钥协议1.Needham-Schroeder公钥协议1)AS:A,B2)SA:E(Ka-1:Kb,B)3)AB:E(Kb:Na,A)4)BS:B,A5)SB:E(Ks-1:Ka,A)6)BA:E(Ka:Na,Nb)7)AB:E(Kb:Nb)Lowe发现的对此协议的攻击3)AZ:E(Kz:Na,A)3’)Z(A)B:E(Kb:Na,A)6)ZA:E(Ka:Na,Nb)7)AZ:E(Kz:Nb)7’)Z(A)B:E(Kb:Nb)Lowe的修改6)BA:E(Ka:Na,Nb,B)2.DenningSacco密钥分配协议1)AS:A,B2)SA:Certa,Certb3)AB:Certa,Certb,E(Kb:E(Ka-1:Kab,T))欺骗过程:1)BS:B,C2)SA:Certb,Certc3)BC:Certa,Certc,E(Kc:E(Ka-1:Kab,T))其他协议•SPLICE/AS认证协议•DenningSacco密钥分配协议•SRAthree-pass协议•Gong双方认证协议•加密的密钥交换协议2.4安全协议的形式化分析•新兴领域•目前的技术主要用于对密钥正确的认证•安全协议的形式化分析有助于:1.更准确地描述安全协议的行为。2.更准确地定义安全协议的特性。3.证明安全协议满足其说明,以及证明安全协议在什么条件下不能满足其说明。安全协