您好,欢迎访问三七文档
1认证协议刘昆中国矿业大学徐海学院2使用公钥密码的认证和密钥传输协议3引言公钥密码技术的优势直接定义数字签名简化了密钥管理在目前这种分布式通信环境中,基于公钥密码体制的协议就更加重要了。4公钥密码技术的问题计算量大速度慢机器处理速度提高,但对于多客户端的服务器以及smartcard这样计算能力低的设备来说负担很重密钥要加长增加了密钥操作的计算量协议设计者要尽量最小化公钥操作的次数协议设计时还要考虑需要更多的私钥操作还是更多的公钥操作.RSA及相关算法对公钥操作更有效,而基于离散对数的算法则相反。公钥仍然需要管理完整性5记号EX(M)用X的公钥加密MSigX(M)X对M做的签名NXX产生的随机nonceTXX选择的时间戳{M}K用对称密钥K对消息M加密6公钥协议设计原则1.加密之前签名。否则不能保证签名人知道被加密的数据。2.要注意实体的区分。尽可能避免对不同目的使用同一密钥(例如加密和签名)。要区分同一协议的不同运行。3.在签名和解密数据时小心别被敌手当成oracle4.考虑到所有的比特,哪些提供模糊性,冗余,计算复杂性等。5.不要假定其他人的秘密是秘密(CA可能除外)6.不要假定收到的消息有特定的形式,除非你能验证,如gr7.要明确安全参数7实体认证协议-11.AB:TA,B,SigA(TA,B)ISO/IEC9798-3单向认证81.BA:NB2.AB:NA,NB,SigA(NA,NB,B)ISO/IEC9798-3单向认证•加入NA的作用是不被B当作oracle•标准允许省略签名中的B,但Protocol4.1不可省略。实体认证协议-291.AB:TA,B,SigA(TA,B)2.BA:TB,A,SigB(TB,A)ISO/IEC9798-3双向认证实体认证协议-310ISO/IEC9798-3双向认证1.BA:NB2.AB:NA,NB,B,SigA(NA,NB,B)3.BA:NB,NA,A,SigB(NB,NA,A)实体认证协议-411EarlyversionofProtocol4.41.BA:NB2.AB:NA,NB,B,SigA(NA,NB,B)3.BA:NB',NA,A,SigB(NB',NA,A)1.CBA:NC2.ACB:NA,NC,B,SigA(NA,NC,B)1'.CAB:NA2'.BCA:NB,NA,A,SigB(NB,NA,A)3.CBA:NB,NA,A,SigB(NB,NA,A)CanadianattackonProtocol4.5针对这种攻击可以在签名的消息中加入协议标识符实体认证协议-5ISO/IEC9798-3双向并行认证1.AB:NA1'.BA:NB2.AB:NA,NB,B,SigA(NA,NB,B)2'.BA:NB,NA,A,SigB(NB,NA,A)实体认证协议-613密钥传输协议1.AB:EB(A,KAB,TA)ISO/IEC11770-3Mechanism1•密钥控制:A•密钥新鲜性:A(没有发送方的认证,B不能保证新鲜性)•密钥认证性:B•密钥机密性:No•安全性证明:No•攻击:No141.AB:B,TA,EB(A,KAB),SigA(B,TA,EB(A,KAB))ISO/IEC11770-3Mechanism2•密钥控制:A•密钥新鲜性:A+B•密钥认证性:A+B•密钥机密性:B•安全性证明:No•攻击:No151.AB:EB(B,KAB,TA,SigA(B,KAB,TA))ISO/IEC11770-3Mechanism3•它交换了机制2中签名和加密的顺序.•与机制2可以达到相同的目标.161.AB:EB(KAB,TA,SigA(KAB,TA))Denning-Saccopublickeyprotocol1.AB:EB(KAB,TA,SigA(KAB,TA))2.BAC:EC(KAB,TA,SigA(KAB,TA))AttackofProtocolA,B正常通信,同时B假冒A与C通信171.AB:NA2.BA:A,NA,NB,EA(B,KAB),SigB(A,NA,NB,EA(B,KAB))ISO/IEC11770-3Mechanism4•类似机制二•密钥控制:A•密钥新鲜性:A+B•密钥认证性:A+B•密钥机密性:B•安全性证明:Yes•攻击:No181.AB:NA2.BA:NB,NA,A,EA(B,KBA),SigB(NB,NA,A,EA(B,KBA))3.AB:NA,NB,B,EB(A,KAB),SigA(NA,NB,B,EB(B,KAB))ISO/IEC11770-3Mechanism5•密钥控制:A+B•密钥新鲜性:A+B•密钥认证性:A+B•密钥机密性:A?•安全性证明:No•攻击:No191.AB:EB(A,KAB,NA)2.BA:EA(B,KBA,NA,NB)3.AB:NBISO/IEC11770-3Mechanism6•密钥控制:A+B•密钥新鲜性:A+B•密钥认证性:A+B•密钥机密性:A+B•安全性证明:No•攻击:No201.AB:EB(A,KAB,NA)2.BA:EA(KBA,NA,NB)3.AB:NBHelsinkiprotocol(earlierversion)1.AC:EC(A,KAB,NA)1'.CAB:EB(A,KAB',NA)2'.BCA:EA(KBA,NA,NB)2.CA:EA(KBA,NA,NB)3.AC:NB3'.CAB:NBAttackonHelsinkiprotocolA,C正常通信,同时C假冒A与B通信211.AB:EB(NA,A)2.BA:EA(NA,NB)3.AB:EB(NB)Needham-Schroederpublickeyprotocol1.AC:EC(NA,A)1'.CAB:EB(NA,A)2'.BCA:EA(NA,NB)2.CA:EA(NA,NB)3.AC:EC(NB)3'.CAB:EB(NB)AttackonNeedham-SchroederprotocolA,C正常通信,同时C假冒A与B通信221.AB:EB(NA,A)2.BA:EA(NA,NB,B)3.AB:EB(NB)Lowe’svariantofNeedham-Schroederprotocol•Lowe使用checkerFDR模型证明协议安全•NA,NB可以作为一个共享的秘密,所以第3步,使用加密23•密钥控制:A•密钥新鲜性:A•密钥认证性:A•密钥机密性:No•攻击:Yes•Thesignatureshouldincludetheunencryptedkey(hashedtoprotectconfidentiality)withtheencryptedkeysentseparately.攻击者I替换签名.A以为与B通信,B以为与攻击者I通信X.509one-passauthentication1.AB:TA,NA,B,EB(KAB),SigA(TA,NA,B,EB(KAB))241.AB:TA,NA,B,EB(KAB),SigA(TA,NA,B,EB(KAB))2.BA:TB,NB,A,NA,EA(KBA),SigB(TB,NB,A,NA,EA(KBA))X.509two-passauthentication1.AB:TA,NA,B,EB(KAB),SigA(TA,NA,B,EB(KAB))2.BA:TB,NB,A,NA,EA(KBA),SigB(TB,NB,A,NA,EA(KBA))3.AB:NB,B,SigA(NB,B)X.509two-passauthentication25总结单纯的加密方案不能提供完整性保护接收者的身份信息应包含在相应的签名或加密中,否则会被敌手利用成oracle.最近研究的注意力都集中在密钥协商,而不是密钥传输以及提供前向安全性。26密钥协商协议27密钥协商协议双方(或多方)都对秘密导出函数提供输入,并计算出一致的共享秘密,单方不能预测此共享秘密。A、B形成会话密钥的两个阶段1.利用随机输入rA、rB、或长期公开/私有密钥联合生成共享秘密ZAB。2.利用密钥导出函数,以ZAB或其它的输入为参数,生成会话密钥KAB。密钥控制协议各方都可对密钥值施加影响,使得各方不用依赖单方生成密钥,单方也不能决定密钥。保证了密钥的随机性、新鲜性。引言28未知密钥共享攻击(unknownkey-shareattacks)攻击者C可以是合法的协议参与者,他的目的是使某个主体,如A,相信与C共享会话密钥K,而实际上A与B共享了K。C不一定需要获得K。预防措施:1.确保公钥证书持有者拥有对应的私钥。2.增加密钥确认。3.在密钥导出函数中增加双方的身份信息。密钥协商协议分类1.基于Diffie-Hellman密钥交换:灵活选择交换群;可提供前向秘密性。2.基于单向函数的密钥交换:更少的计算量;保证密钥的随机性。29数论背景——离散对数──在模意义下的对数设正整数α、β、a和p,若αaΞβ(modp),则称a是β的以α为底在模p意义下的离散对数,记作aΞlogαβ(modp)。例如:因54=625Ξ9(mod11),故log59(mod11)=430本原元和循环群定义:设p是素数,Zp={0,1,2,3,…,p-1},Zp*={1,2,3,…,p-1},若对任一β∈Zp*,总存在正整数a,使得αaΞβ(modp),也即:Zp中任意非0元素总存在离散对数logαβ(modp),则α称为Zp*(或p)的本原元(或生成元、基元、原根),也即Zp对模p乘构成循环群31可以证明:1.对于素数p,Zp*共有φ(p-1)个本原元2.对于素数p,设Zp*有一个本原元g,则Zp*的所有本原元由以下集合给出:{gt|1≤t≤p-1,GCD(t,p-1)=1}3.对于素数p,判断g是否Zp*的本原元,不需要逐一计算g1,g2,…,gp-1,而仅需要计算所有gt(modp),其中t|p-1。只要不产生重复结果,g就是素数p的本原元32例如:Z19={0,1,2,3,…,18},φ(18)=6(1,5,7,11,13,17),故Z19*={1,2,3,…,18}共有6个本原元:2,3,10,13,14,15;验证15是Z19*的本原元:满足t|18的t有:1,2,3,6,9151=15,152=16,153=12,156=11,159=1833Diffie-Hellman密钥协商一些符号p大素数ZAB主体计算的共享秘密q素数,q|(p-1)KAB会话密钥GZ*p的子群SAB静态DH密钥gxAxBgG的生成元NA,NBA、B选择的noncesrA,rBA、B在G中选择的随机数H()单向函数tA,tBtA=grA,tB=grBxRX从X中随机选择xxA,xBA、B的私钥F≟G验证F与G是否相等yA,yByA=gxA,yB=gxB34Diffie-Hellman密钥交换(ZAB称为瞬时DH密钥)共享信息:乘法群G的生成元gABrARZqrBRZqtA=grAtAtB=grBtBZAB=tBrAZAB=tArB中间人攻击(缺少消息认证引起的)ACBrARZqrCRZqrBRZqtA=grAtAtC=grCtCtB=grBtCtBZAB=tCrAZAC=tArCZAB=tCrBZCB=tBrC35静态DH密钥生成会话密钥K=H(SAB,freshvalue),传输{KAB}K,或KAB=MACK(r)r是序列号或随机数。特点:提供隐含密钥认证。缺乏联合控制密钥,没有前向秘密性,易遭密钥泄露假冒攻击。小子群攻击分析群G的结构,若ord(G)是合数,则它存在子群。如果grA在某个小子群中,则grArB也在其中。小子群有助于攻击者穷尽搜索发现会话密钥。此攻击的关键是强迫(诱使)共享秘密存在于小子群中。对策:选ord(G)是比较大的素数。一般ord(G)=素数q,q|(p-1)36•适用于单向通信。•
本文标题:4认证协议4
链接地址:https://www.777doc.com/doc-2892605 .html