1、1协议 n所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。n在日常生活中,几乎所有的事情都有非正式的协议:电话订货、玩扑克、选举中投票,没有人认真考虑过这些协议,这些协议随着时间的推移而发展,人们都知道怎样使用它们,而且它们也很有效。2协议的主要特点 n协议具有以下特点:n协议自始至终是有序的过程,每一个步骤必须执行,在前一步没有执行完之前,后面的步骤不可能执行;n协议至少需要两个参与者;n通过协议必须能够完成某项任务。3协议的其他特点 n协议还有其他特点:n(1)协议中的每人都必须了解协议,并且预先知道所要完成的所有步骤。n(2)协议中的每人都必须同意遵循它。n
2、(3)协议必须是不模糊的,每一步必须明确定义,并且不会引起误解。n(4)协议必须是完整的,对每种可能的情况必须规定具体的动作。4协议与算法 n相同点n完成某项任务n要求高效n区别n算法应用于协议中消息处理的环节,对不同的消息处理方式要求不同的算法n 协议是应用算法提供实现方案5安全协议n密码学的用途是解决种种难题。n当我们考虑现实世界中的应用时,常常遇到以下安全需求:机密性、完整性、认证性、匿名性、公平性等,密码学解决的各种难题围绕这些安全需求。n密码协议(cryptographic protocol)是使用密码学完成某项特定的任务并满足安全需求的协议,又称安全协议(security prot
3、ocol)。n在密码协议中,经常使用对称密码、公开密钥密码、单向函数、伪随机数生成器等。6安全协议设计应遵循原则n安全协议应满足应用需求n安全协议应满足安全需求n协议的运行应尽量简单高效7好的安全协议n满足目标(应用目标,安全目标)n各方计算量小n易于实现n各方存储量小n通信负载小(延迟小,占用带宽小)n交互轮数少8安全协议中的角色n协议参与者 n认证协议:发起者/响应者n签名协议:签名申请者/签署人/验证人n零知识证明:证明者/验证者n电子商务协议:商家/银行/用户n攻击者(或称敌手)n内部攻击者/外部攻击者n被动攻击者/主动攻击者n可信第三方9常用的安全协议n密钥建立协议密钥建立协议n认证
4、协议认证协议n电子商务协议电子商务协议n安全多方计算协议安全多方计算协议10常用的安全协议n根据是否有可信第三方的存在n仲裁协议n自执行协议11安全协议的安全性质 机密性机密性 完整性完整性 认证性认证性 非否认性非否认性 正确性正确性 可验证性可验证性 公平性公平性 匿名性匿名性 隐私属性隐私属性 强健性强健性 高效性高效性 这些要求这些要求根据应用组合根据应用组合 12Dolev和Yao攻击者模型n认为攻击者具有如下能力:n(1)可以窃听所有经过网络的消息;n(2)可以阻止和截获所有经过网络的消息;n(3)可以存储所获得或自身创造的消息;n(4)可以根据存储的消息伪造消息,并发送该消息;n
5、(5)可以作为合法的主体参与协议的运行。13安全协议的攻击方法n协议的参与者可能是完全信任的人,也可能是攻击者和完全不信任的人。n许多面对面的协议依靠人的现场存在来保证公平和安全。你会交给陌生人一叠现金去为你买食品吗?如果你没有看到他洗牌和发牌,你愿意和他玩扑克吗?如果没有匿名的保证,你会将秘密投票寄给政府吗?n那种假设使用计算机网络的人都是诚实的想法,是天真的。天真的想法还有:假设计算机网络的管理员是诚实的,假设计算机网络的设计者是诚实的。14攻击途径n攻击协议中所用的密码算法n攻击用来实现该算法和协议的密码技术n攻击协议15攻击手法n窃听 攻击者获取协议运行中所传输的消息n篡改 攻击者更改
6、协议运行中所传输的消息的内容n重放 攻击者记录已经获取的消息并在随后的协议运行中发送给相同的或不同的接收者n预重放 重放的一种n反射 攻击者将消息发回给消息的发送者n拒绝服务 攻击者阻止合法用户完成协议n类型攻击 攻击者将协议运行中某一类消息域替换成其它的消息域n密码分析 攻击者利用在协议运行中所获取的消息进行分析以获取有用的信息n证书操纵 攻击者选择或更改证书信息来攻击协议的运行16窃听n明文传输认证信息nPOP3/SMTPnFTPnTelnetn被动攻击,破坏机密性n搭线窃听/广播网络/肩窥17篡改n删除n修改n伪造n乱序n重放n插入n主动攻击,破坏完整性,有时加密并不能提供数据完整性18
7、重放n篡改的一种特例n拷贝+重放19预重放n重放的一种特例nC窃听A与B的会话,但计算不出A与B的会话密钥,之后,C与A会话,C与B会话,C计算出之前A与B的会话密钥20反射n重放特例n1.A B:NA Kn2.B A:NB K,NAn3.A B:NB21反射nC假冒Bn1.A C:NA Kn1.C A:NA Kn2.A C:NA K,NAn2.C A:NA K,NAn3.A C:NAn3.C A:NA22拒绝服务n例如:口令更换协议/RFID认证协议/死锁/邮件自动回复n1.Aura,Nikander提出的无状态连接保护对服务器的连接资源。客户端保存服务器需要的所有状态并在发送消息时返回给服
8、务器。这要求服务器对于每个消息的状态信息进行认证性和秘密性的验证,增加了通信代价和计算代价。例如cookies23拒绝服务n2.Meadows 的工作提出为保护连接资源,每一个信息必须被认证,但是可以采用弱认证的方式来降低认证时消耗的计算代价。提出了基于failstop思想的协议。n3.Juels,Brainard提出了基于client puzzles 思想的机制加强认证的强度。使得用户在发起新的连接时必须解决一个puzzle。这样对于攻击者来说要发起拒绝服务攻击就必须解决很多的puzzle。24类型攻击n当用户接收到的信息都是二进制串时,用户无法判断是否是经过加密等处理。类型攻击就是利用这一
9、点使得用户将一个消息错误的解释成其他的消息。25类型攻击nOtway Rees协议:类型攻击:假冒B.1,41.A B:M,A,B,NA,M,A,B KAS2.B S:M,A,B,NA,M,A,B KAS,NB,M,A,B KBS3.S B:M,NA,KAB KAS,NB,KAB KBS4.B A:M,NA,KAB KASABS26类型攻击n抵抗类型攻击的方法有很多,有的使用每次改变消息元素的顺序,确保每次的加密密钥不同。或者在消息中添加认证数或消息域的类型信息27密码分析n一般来讲在进行协议分析的时候我们不考虑算法本身的问题。但实际中还需要注意一些问题。例如产生弱密钥的可能性。尤其是在一些基
10、于口令的协议当中,为了便于记忆,口令一般不够长从而使得猜测或者遍历成为可能。28证书操纵 nA和B分别拥有公钥g a和g b n1.A B:g x,Cert(A)n2.B A:g y,Cert(B)n共享密钥是KAB=g ay+bx 29证书操纵 n攻击者C选择一个随机值c,声明g a c是他的公钥 n1.A CB:g x,Cert(A)n1.C B:g x,Cert(C)n2.B C:g y,Cert(B)n2.CB A:g y c,Cert(B)nA,B将计算密钥KAB=g a c y+b x。但A相信仅A和B知道这个密钥而B相信仅C和B知道这个密钥。30证书操纵 n一般的,用户可以使用零
11、知识证明向服务器证明自己掌握相应的私钥。或者用户可以用私钥签署一个特殊的消息或者挑战证明证书的可靠性。31协议交互n大多数长期密钥都用在单个的协议中。但是,可以出现密钥用于多个协议的情况。如在存储能力很小的设备有多个应用的情形(智能卡)。n例如,一个利用解密来证明持有认证密钥的协议,可能会被攻击者用来解密另外一个协议中的消息n攻击者也可以自己构造新的协议使其和要攻击的协议交互运行来达到自己的攻击目的(选择协议攻击)32安全协议设计的困难性 n安全协议设计与分析的困难性在于:n(1)安全目标本身的微妙性。例如,表面上十分简单的“认证目标”,实际上十分微妙。n(2)协议运行环境的复杂性.实际上,当安全协议运行在一个十分复杂的公开环境时,攻击者处处存在。n(3)攻击者模型的复杂性。我们必须形式化地描述攻击者的能力,对攻击者和攻击行为进行分类和形式化的分析。n(4)安全协议本身具有“高并发性”的特点。33安全协议的三大理论分析方法n安全多方计算安全多方计算 n安全协议的形式化分析方法安全协议的形式化分析方法 n安全协议的可证明安全性理论安全协议的可证明安全性理论