4.1 安全协议概述
安全协议运用密码算法和协议逻辑来实现认证和密钥分配等目标,保障计算机网络信息系统中秘密信息的安全传递与处理。虽然安全协议为互联网通信提供了安全保障,但其安全性分析验证仍是一个悬而未决的问题,即安全协议本身并非一定是安全的。在实际中,安全协议被广泛应用于金融系统、商务系统、政务系统和军事系统等领域。
4.1.1 安全协议的基本概念
所谓协议(Protocol),指的是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,而且每一步必须依次执行,在前一步完成之前,后面的步骤都不能执行。在通信领域中,协议是无处不在的,例如,怎样建立连接、怎样进行身份识别等。只有遵守这个约定,计算机之间才能顺利进行通信交流。
一个好的协议应该满足以下几点要求。
1)协议中的每一方都必须了解协议,并且预先知道所要完成的所有步骤。
2)协议中的每一方都必须同意遵守协议。
3)协议必须是明确的,每个步骤都必须确切定义,避免引起误解。
4)协议必须是完备的,对每种可能的情况必须规定具体的动作。
许多协议依赖于当事人出场来保证真实性和安全性。然而,当通过网络与远端的用户进行交流时,真实性和安全性就难以得到保证。实际上,不仅难以保证使用网络的所有用户都是诚实的,而且也难以保证网络的管理者或设计者都是诚实的。因此,网络中使用的通信协议,不仅应该具有有效性、公平性和完整性,而且还应该具有足够高的安全性。
通常把具有安全性功能的协议称为安全协议。安全协议与通信协议的不同之处在于这种协议的作用是在网络等通信环境下为相关的用户提供安全的服务。安全协议的基本内容基于密码学原理,并运用协议逻辑来实现相应的安全目标。
安全协议可以用于确保网络系统中信息的安全传输和处理,确保用户身份的真实性和安全性。这类协议目前已经广泛应用于金融、商务、外交等社会生活领域,并随着信息技术向社会生活的各方面不断地渗透而变得越来越重要。特别是在通信领域,安全协议的目标不仅仅是实现信息的加密传输,更重要的是解决通信网络的安全问题。在协议中采用密码技术,是防止或检测非法用户对网络进行窃听和欺骗攻击的关键技术措施。
安全协议的功能包括:对网络中各实体的认证、网络中各实体间进行密钥的分发和管理、对消息发送或接收的不可否认性处理等。
按照目的的不同,可以把网络通信中基本和常用的安全协议分为以下几类。
1.认证协议
认证协议主要包括实体认证(身份认证)协议和消息认证协议,用于防止假冒、篡改、否认等攻击。
2.密钥建立协议
这类协议一般用于在参与协议的两个或者多个实体间构建共享的会话密钥。协议中的密码算法可以采用对称密码算法,也可以采用非对称密码算法。这一类协议往往与认证协议结合使用。
3.认证和密钥建立协议
这类协议将认证协议和密钥建立协议结合在一起,先对通信实体的身份进行认证,在认证成功的基础上,为下一步的安全通信分发所需的会话密钥。常见的认证和密钥建立协议有互联网密钥交换(IKE)协议和Kerberos认证协议。
4.1.2 安全协议的安全性
如果一个安全协议受到非法攻击,但攻击者不能获得有用的信息,那么就称这个协议是安全的。换言之,评估一个安全协议是否是安全的,可以检查其预期达到的安全性是否遭到攻击者的破坏。
通常,安全协议有以下几个安全性质。
1.认证性
认证性是最重要的安全性质之一,安全协议的其他性质都依赖于这一性质。认证性主要是完成对通信双方身份的识别和消息来源的确认。
2.机密性
机密性是指协议消息不被非授权者获得有用信息的一种性质。保证安全协议机密性的直接方法是对协议信息进行加密。
3.完整性
完整性是指协议数据在产生、传输和存储的过程中没有被非法改动的一种性质。在密钥协议中一般使用单向函数、消息认证码等机制来保护消息的完整性。
4.验证性
在协议执行过程中,每个参与者都应按照协议中预先设置的规定,交换一系列信息。在每个中间阶段,参与者做出回应前需要验证所收到信息的正确性。在协议结束时,每个参与者应该能够验证最终结果的正确性。
5.不可否认性
不可否认性主要是指通信主体提供对方参与协议的证据,以此来保证其合法权益不受侵害。常用的实现不可否认性的方法是数字签名。
6.正确性
正确性是安全协议的重要特征。只有正确完善的协议才能得到广泛的应用,否则不法分子会利用安全协议中存在的漏洞发起攻击,造成用户的损失。目前,一般采用安全设计准则以及形式化证明方法来保证协议的正确性。
7.公平性
公平性是指协议应保证双方都不能通过损害对方的利益来获取不应有的利益。
此外,一些安全协议还需要满足匿名性、强健性、高效性和隐私属性。这些安全性质还存在着互斥关系,比如,机密性和高效性,这就需要安全协议的设计者针对协议的应用场景在安全性质之间进行合理的取舍。
4.1.3 针对安全协议的常见攻击和防范措施
由于安全协议的目标是确认实体的身份并保障数据完整性。许多认证协议会在主体间分发密钥或其他的秘密信息。因此,对安全协议的攻击也呈现出多样性。
针对不同类型的安全协议的攻击方法主要有以下几种。
1.窃听
窃听是最基本的攻击方式之一,也是唯一的一种被动攻击方式。应对这一攻击的防范措施主要是采取加密方式,避免通信内容被窃取。
2.重放攻击
攻击者通过窃取并复制用户之间的通信内容,然后将用户之前发送的消息重放到信道中,让另一用户误以为对方又进行了新一轮的认证,会造成双方的通信内容泄露。针对这一攻击,可以通过设置序列号、时间戳或采用询问应答协议来应对。
3.篡改
篡改包括修改、删除等方式。这是一种主动攻击方式,主要破坏数据的完整性。即使对数据进行加密也不能提供完整性。为了应对这一攻击,可以在通信消息中加入消息认证码或数字签名来保证数据的完整性和信息来源的真实性。
4.拒绝服务攻击
拒绝服务攻击是一种阻止合法用户完成协议的攻击方式。在实际中,一般针对多客户端连接的服务器,通过发起大量的服务请求来消耗服务器的系统资源,使服务器无法向正规用户提供服务。