网络安全协议认证协议是网络安全的一个重要组成部分,需要通过认证协议进行实体之间的认证、在实体之间安全地分配密钥或其他各种秘密、确认发送和接受的消息的非否认性等。近年来,认证协议越来越多地用于保护因特网上传送的各种交易,保护针对计算机系统的访问。但是经验表明,设计和分析一个正确的认证协议是一项十分困难任务。迄今所知的许多协议都存在这样或那样的安全缺陷,其原因是多方面的,例如,缺乏正确设计认证协议的指导原则;对认证协议进行非形式化的推理分析;缺乏有力地分析认证协议的形式化工具;没有考虑到针对认证协议的多种攻击类型等。因此,目前的状况大体是:设计一个认证协议——发现其安全缺陷——改进该协议——发现新的安全缺陷——进一步改进该协议……基本概念网络安全协议1997年,Clark和Jacob对认证协议进行了概括和总结,并列举了一系列有研究意义和实用价值的认证协议。他们将认证协议如下进行分类:(1)无可信第三方的对称密钥协议。(2)应用密码校验函数的认证协议。(3)具有可信第三方的对称密钥协议。(4)对称密钥重复认证协议。(5)无可信第三方的公开密钥协议。(6)具有可信第三方的公开密钥协议。认证协议的分类网络安全协议1.经典认证协议本节介绍几个典型的经典认证协议,他们的共同特点是:都是早期设计的认证协议,反映了当时的设计和分析水平。它们或多或少都存在一些安全缺陷,但是它们在认证协议的发展史中都起过重要的作用,为今天认证协议设计与分析技术的发展积累了宝贵的经验。其中,许多认证协议已经成为认证协议设计与分析的“试验床”,即每当出现一个新的形式化分析方法,都要先分析这几个认证协议,验证新方法的有效性。同时,研究人员也经常以它们为例,说明认证协议的设计原则和各种不同分析方法的特点。网络安全协议Needham-Schroeder认证协议是1978年提出的,在认证协议的发展史中具有历程培的意义。该协议就是一个最常用的认证协议与分析的“试验床”。它可以分为对称密码体制和非对称密码体制下的两种版本,分别简称NSSK协议和NSPK协议。NSSK协议网络安全协议•NSSK协议的目的是在通信双方之间分配会话密钥。其中,前3条消息的作用是主体A在认证服务器S的帮助下,进行会话密钥的分配。后2条消息的目的是使B相信A现在在线,但不能使B相信会话密钥是新鲜的。该协议如图2-1所示。NSSK协议ababbsasbsKbKbKabKKababaaNBANABAKBAAKKBNASNBASA}1{:5}{:4},{:3}},{,,,{:2,,:1网络安全协议BAS12345图2-1NSSK协议网络安全协议•(1)针对NSSK协议的“新鲜性”型攻击''}1{:)('5}{:)('4},{:)('3}},{,,,{:2,,:1'ababbsasbsKbKbKabKKababaaNBAPNAPBAKBAPAKKBNASNBASA网络安全协议•(2)针对上述攻击的改进bsasbsKabKKababTKABATKATKBASBASA},,{:3}},,{,,,{:2,:1解决这一问题的另一个方法是,令B也向S发送一个临时值,然后S将B的临时值放在发送给B的密钥证书中。网络安全协议•攻击NSSK协议的一种新方法•即使攻击者P没有得到泄漏的会话密钥,A也不能通过消息3、4、5推断出B知道会话密钥。攻击如下:网络安全协议•改进:ababbsasbsKbKabKsabaKKsabaabaaNBANNABTKANBATKANKBNASNBASA}{:.5,},{:.4,},,,{:.3,}},,,{,,,{:.2,,,:.1网络安全协议NSPK协议BAS12236745basbsKbKbaKaKaKbNBANNABAKBSABSBANBABKASBASA}{:7},{:6},{:5,:4},{:3},{:2,:111图2-2NSPK协议以其他大多数公开密钥认证协议不同,NSPK协议的目的是使通信双方安全地交换两个彼此独立的秘密。网络安全协议•针对NSPK协议的攻击•针对NSPK协议的最有名的攻击来自Lowe。Lowe指出,NSPK协议的主要安全缺陷在于其中的消息6。由于消息中没有B的标识符,攻击者可以假冒B的身份发送消息6。网络安全协议网络安全协议basbsKbKbaKaKaKbNBANNBABAKBSABSBANBABKASBASA}{:7},,{:6},{:5,:4},{:3},{:2,:111改进后的NSPK协议:网络安全协议Otway-Rees协议是1978年提出的一种早期的认证协议。Otway-Rees协议SAB14223asbsasbsasasKabaKabbKabaKbKaKaKNMABKNKNMBSBAMNBAMNBAMSBBAMNBAMBA},{,:4},{,},{,:3},,,{,},,,{,,,:2},,,{,,,:1图2-3Otway-Rees协议网络安全协议•注意:在Otway-Rees协议中,M是会话识别号;而临时值和不仅提供了时序信息,还因为在消息1和消息2中受到了加密保护,所以在消息4和消息5中这两个临时值作为主体身份的替身出现。S检查消息2中两个加密消息内的M,A,B是否一致,如果匹配,才会为A,B生成会话密钥,并向B发送消息3。aNbNabK网络安全协议•针对Otway-Rees协议的“类型缺陷”型攻击•“类型攻击”的特点是利用认证协议实现时的固定格式对协议进行攻击。假定在Otway-Rees协议中,M的长度是64比特,A和B的长度各为32比特,会话密钥的长度为128比特。用户A在发起协议后,预期在协议的第4步可以收回他在协议第1步建立的临时值,以及认证服务器S为他分配的会话密钥。这时,攻击者P可以冒充B,重放消息1中的加密分量,将它作为消息4中的加密分量发送给A,攻击过程如下:asasKaKaBAMNMABPBAMNBAMBPA},,,{,:)(4},,,{,,,:)(1''网络安全协议•攻击者还可以冒充认证服务器S攻击Otway-Rees协议。这时,P只需将消息2中的加密分量重放给B即可。攻击过程如下:asbsasbsasasKaKbKaKbKaKaBAMNMABBAMNBAMNMBSPBAMNBAMNBAMSPBBAMNBAMBA},,,{,:4},,,{,},,,{,:)('3},,,{,},,,{,,,:)('2},,,{,,,:1网络安全协议•Otway-Rees协议Abadi-Needham改进版本aNBABA,,:baNNBASB,,,:baNNBASB,,,:bsasKabbKabaKBANKBANBS,,,,,,,:asKabbKBANAB,,,:1.2.3.4.网络安全协议•攻击Otway-Rees协议的2种新方法(卿斯汉发现)•(1)攻击原始Otway-Rees协议的一种新方法网络安全协议网络安全协议•该攻击的成功需要对服务器S进行下述假设:•(1)服务器S对A,B之间时间相隔很短的两次密钥申请不进行限制;•(2)服务器S只对消息2中两个加密消息内的会话识别号M及主体身份进行匹配检查,而对A,B之间密钥分配请求中的M不做记录。网络安全协议•(2)攻击Otway-Rees协议Abadi-Needham改进版本的一种新方法aNBABA,,:1..1.2baNNBASPB,,,:.2.2paNNBASBP,,,:'.2bpNNBASBP,',,:.1.3bsasKabpKabaKBANKBANBPS,,,,,,,:'.3bsasKabbKabpKBANKBANBPS',,,,',,,':.2.3bsasKabbKabaKBANKBANBSP',,,,,,,:.4asKabaKBANAB,,,:网络安全协议•注意:这种攻击的成功,也需要关于服务器S的如下假设成立:S对A,B之间时间间隔很短的两次密钥申请不进行限制。网络安全协议1988年提出的Yahalom协议是另外一个经典认证协议。该协议的特别之处在于,A向S间接发送临时值,并从S处直接取得会话密钥,B直接发送临时值,并从S处间接得到会话密钥。Yahalom协议SAB3241abbsbsasbsKbKabKabKbaabKbaaNKABAKANNKBASNNABSBNABA}{,},{:4},{,},,,{:3},,{,:2,:1图2-4Yahalom协议网络安全协议•BAN逻辑的分析结果与Yahalom协议的改进建议•应用BAN逻辑分析Yahalom协议的结果表明,如果A在第4条消息中选择一个旧密钥重放给B,则B不可能发现这个问题。为此,对Yahalom协议作了如下修改,修改后的协议成为BAN-Yahalom协议。abbsbsasbsKbKbabKbabKaabbKabaNNKABANKANKBNASNANBSBNABA}{,},,{:4},,{,},,{:3},{,:2,:1,,网络安全协议•针对BAN-Yahalom协议的攻击网络安全协议Andrew安全RPC协议BA22134ababababKbabKbKbaKaNKABNBANNABNABA},{:4}1{:3},1{:2}{,:1''图2-5Andrew安全RPC协议网络安全协议•针对Andrew安全RPC协议的攻击•(1)针对Andrew安全RPC协议的“类型缺陷”型攻击•假设临时值、序列号与密钥的长度都相同,例如均为128比特,则攻击者P可以记录监听到的消息2,截获A发送给B的消息3,并在第4步重放消息2给A。攻击过程如下:ababababKbaKbKbaKaNNABPNBPANNABNABA},1{:)(4}1{:)(3},1{:2}{,:1网络安全协议•如此协议执行后,A相信临时值是服务器B新分配给她的会话密钥,因此攻击是有效的。虽然,这时攻击者并不一定知道新的会话密钥。但是,临时值的作用与密钥不同,绝对不能当作会话密钥使用。猜测密钥要比猜测临时值困难得多。因为,在协议的各个回合中,临时值均不相同就足够了,并不要求临时值一定是随机的。因此,临时值往往容易猜测。1aN1aN网络安全协议•(2)针对Andrew安全RPC协议的“新鲜性”型攻击•攻击者P可以记录在协议前一个回合中监听到的消息4,并在第4步重放该消息给A。网络安全协议“大嘴青蛙”协议是由Burrows提出的,这是一种最简单的、应用对称密码的三方认证协议。“大嘴青蛙”协议SAB12bsasKabsKabaKATBSKBTASA},,{:2},,{,:1图2-6“大嘴青蛙”协议网络安全协议•针对“大嘴青蛙”协议的攻击•这个简单的协议有多种安全缺陷,攻击它也有多种方法。一种方法是在有效的时间范围内重放第1个消息,其后果实将进行重新认证。第二种攻击方法需要应用3个协议回合,攻击过程如下:bsasasbsbsasKabsKabsKabsKabsKabsKabaKATBPSKBTASAPKBTAPSKATBSBPKATBSKBTASA},,{:)(2},,{,:)(1},,{:)('2},,{,:)('1},,{:2},,{,:1''网络安全协议•在回合1中,攻击者P记录A与B之间的一次会话。然后,在第2与第3回合,攻击者假冒A与B从S处获得对他有用的消息和•这时,攻击者P可以假冒S向A与B重放上述消息,引起A与B之间的重新认证。bsasKabsKabsKATBSPKBTASP},,{:)(2},,{:)(1''''22网络安全协议2.其他重要的认证协议(1)Helsinki协议的描述Helsinki协议是国际标准ISO/IECDIS11770-3中提出的认证协议草案