一种安全协议注入攻击序列自动化搜索算法报告人:韩进2009-06一种安全协议注入攻击序列自动化搜索算法注入攻击——D-Y攻击者的必经之路相关概念及定义注入攻击序列的性质注入攻击序列自动化搜索算法算法分析总结与展望注入攻击——D-Y攻击者的必经之路Dolev-Yao攻击者模型含义N(m)→DY(m)窃听协议参与者发送的会话消息数据DY(m)→N(m)向协议参与者发送攻击者掌握的数据DY(m1),DY(m2)→DY(m1,m2)攻击者使用掌握的数据组合新的数据DY(m1,m2)→DY(m1),DY(m2)攻击者拆分掌握的数据DYi({m}k),DYi(k’),KeyP(k,k’)→DYi(m),KeyP(k,k’)攻击者利用已知秘钥解密掌握的数据DYi(m),DYi(k)→DYi({m}k)攻击者利用已知秘钥加密掌握的数据→n.DYi(n)生成新的nonceπ(m)→DYi(m),π(m)攻击者掌握公开数据集合DYi(m)→攻击者拦截会话消息数据注入攻击——D-Y攻击者的必经之路缺乏注入攻击对D-Y攻击者的攻击能力影响对安全协议秘密性破坏能力的影响对安全协议认证性破坏能力的影响成功的注入攻击使得安全协议P的角色R触发规则r,并使其由stati转换至stati+1从网络行为来看D-Y攻击方法攻击者行为:监听会话数据与注入攻击一个D-Y攻击方法,即是这两个行为组成的序列相关概念及定义数据集合符号含义Ld长期数据集合:安全协议参与者在多个安全协议会话中使用的数据Sd临时会话数据集合:安全协议参与者只在某次会话中使用的数据Pub公开数据集合:安全协议参与者共享的协议数据Pri私有数据集合:不为所有安全协议参与者所掌握的数据相关概念及定义算子符号含义.Guard求规则r中左端会话消息数据中的Guard数据集合.Sd求会话消息数据中的临时会话数据集合.Ld求会话消息数据中的长期会话数据集合.Pub求会话消息数据中的公开数据集合.Pri求会话消息数据中的私有数据集合.求规则r中右端会话消息数据中的新生成数据集合x相关概念及定义Sort函数N1,N2为同类型数据;若有,则有,且。 )},...,,({))(),...(),((),...,,()(),...,(),(}{)(121212121nnnnnddddEncryptdifdSortdSortdSortdddcompostiondifdSortdSortdSortTypeBasicdifddSort)2,2()1,1(QNSordQNSordiQNSordt)1,1(iQNSordt)2,2(''tt)2,2()1,1(QNSordQNSord相关概念及定义成功注入攻击的条件且N’与为同类型数据;注入攻击行为序列及可行注入攻击行为序列).,().::,::(''LdNNSortLdNrRNrRSortll).,()..::,::(''SdNNSortSdGuardNrRNrRSortllXfactN}{'jirRSidL::注入攻击序列的性质引理1:对于安全协议P,如果存在有一个注入攻击会话,针对会话中的所有参与会话的参与者集合A,使用Agentj,Agentj不属于A且Agentj≠X替换参与者集合中的Agenti,L仍然是可行的。定理1:安全协议P中拥有N个角色,若P中存在有一个可行的注入攻击序列L,则L序列中所有的协议会话参与者只需要N+1参与者,其中N个不同的Agent和以参与者身份参与会话的攻击者。注入攻击序列的性质引理2:若Nn.Guard.Sd集合不为空,则注入会话消息序列中,某个被注入攻击的会话Sidi,i≠n的注入消息Ni.Sd集合(1≤i≤n-1)中至少有一原子数据t,t∈Nn.Guard.Sd。引理3:若Nn.Guard.Sd集合不为空,则注入攻击序列L中第一个和最后一个协议会话必为同一协议会话。引理4:注入攻击序列L中每个协议会话Sidi,Sidi≠Sidn至少被注入攻击一次,窃听攻击一次。注入攻击序列的性质相似会话:若对于同一安全协议P的两个不同会话Sid,Sid’Sid,Sid’在初始化阶段角色与参与者指派一致相似会话数据关系:N1,N2满足则称N1,N2具有相似会话数据关系.定理:若可行攻击序列L中有+Sid:Ri:ri注入攻击,Sid≠Sidn,则L中不会再有注入攻击+Sid’:Ri:ri,其中,使用与+Sid:Ri:ri同样的注入数据N实现注入攻击。).2,2().1,1(LdNNSortLdNNSort)...2,2()...1,1(SdGuardNSdNNSortSdGuardNSdNNSortnn注入攻击序列的性质定义:若在一攻击序列L中有两注入攻击行为P与Q,其中P=+Sid:Ri:rj,Q=+Sid’:Ri:rj,P与Q满足下列条件:P,Q满足;P与Q使用的注入数据N1,N2具有相似会话数据关系则称P,Q具有相似注入攻击关系。记作:nnSidSidSidSidSidSid'',,QP注入攻击序列自动化搜索算法第一阶段:初始化攻击者的知识空间X_Know;第二阶段:针对的注入攻击第三阶段:针对的注入攻击监听包含的所有会话数据,添加至X_Know集合;对X_Know集合的数据进行拆分/组合/加解密操作;新生成N+1!两两不具相似会话关系的安全协议会话,使用X_Know集合数据对各会话进行注入攻击;SdGuardNrRl..::SdGuardNrRl..::SdGuardNrRl..::注入攻击序列自动化搜索算法若有成功注入攻击P,则:搜索P所在的攻击序列L中是否有注入攻击Q,Q与P注入点是否是具有相似会话关系的会话同一点,且使用同一注入数据N,若Q存在,则删除P;搜索P所在的攻击序列L中是否有注入攻击Q,与P具有相似注入攻击关系的注入攻击行为,若L存在有Q,删除P;否则,将P攻击所生成的数据加入X_KNOW中,再进行拆分/组合/加解密操作;检查X_KNOW中是否有新生成数据,其包含且与集合中其它数据不存在相似会话数据关系,若无,则当前攻击序列L失败.SdGuardNrRl..::注入攻击序列自动化搜索算法若有,则使用新数据对目标注入点进行注入攻击成功,则当前注入攻击序列L为一成功注入攻击序列若不成功,则返回第三阶段的第三步;算法分析删除与攻击路线中具有相似注入攻击关系的注入攻击不会对注入攻击路线搜索产生影响.分析P,Q注入攻击后产生的会话消息数据N1’,N2’,它们的数据类型,包括的长期会话数据与注入目标的匹配临时会话数据一致;将N1’,N2’添加到X_KNOW后,N2’中生成的数据能实现的注入攻击,N1’也可以实现.一个安全协议P的R:r,若P的角色数目有限,会话消息类型与长度有限,角色子理论中定义的规则有限,则本文算法的搜索步骤是有限的。总结与展望本文的工作提出注入攻击在D-Y攻击方法中的重要性提出搜索注入攻击序列算法注入攻击序列搜索算法的特点:该算法搜索步骤的有限性.基于D-Y模型的进一步拓展能力.注入攻击序列搜索可以对某些安全协议实现验证,并能给出攻击实现方法.缺点:对时间戳,数字签名等数据类型支持不够总结与展望实现该算法,并加以验证;进一步对该算法进行扩展:添加对加/解密等价关系的支持支持多种安全协议数据类型的注入攻击路线搜索,扩展其搜索的安全协议种类.谢谢各位老师与同学!