学习《计算机网络安全》
IPsec的协议实现
IPsec的结构
(1)AH协议:可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法(单向Hash函数)MD5和SHA-1实现该特性。如图所示为AH协议的报文格式。
AH的基本功能是为IP通信提供数据源认证、数据完整性和反重播保证。它不提供任何机密性服务。AH能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5、SHA-1等。
AH的工作原理是在每一个IP数据报上添加一个鉴别首部,此首部包含一个带密钥的散列。该散列在整个数据报中计算,因此对数据的任何更改将致使散列无效,从而对数据提供了完整性保护。
(2)ESP协议:可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA-1来实现数据完整性。如图所示为ESP协议的报文格式。
ESP协议的报文格式
ESP协议可为IP提供机密性、数据源验证、抗重放以及数据完整性等安全服务。ESP属于IPSec的机密性服务。其中,数据机密性是ESP的基本功能,而数据源身份认证、数据完整性检验以及抗重传保护都是可选的。ESP主要保障IP数据报的机密性,它将需要保护的用户数据进行加密后再重新封装到新的IP数据包中。
ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。
在实际进行IP通信时,可以根据实际安全需求同时使用AH和ESP这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。
(3)IKE因特网密钥交换协议:它定义了安全参数如何协商,以及共享密钥如何建立。但是它没有定义协商内容。这方面的定义是由“解释域(DOI)”文档来进行的。IKE负责建立和管理SA,并且负责为AH和ESP协议生成相关密钥。IKE的作用如图所示。
IKE的作用
(4)SA安全关联:它规定了通信双方使用哪种IPsec协议保护数据安全、应用的算法标识、加密和密钥取值以及密钥的生存周期等安全属性值。SA是通信双方对交换和保护数据的相关方法和参数的约定。
SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。建立SA的方式有手工配置和IKE自动协商两种。
SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。
SA由一个三元组来唯一标识,这个三元组包括SPI(Security ParameterIndex,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。SPI是用于唯一标识SA的一个32bit数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。
使用IKE协商产生SA时,SPI将随机生成。通过IKE协商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:
- 基于时间的生存周期,定义了一个SA从建立到失效的时间。
- 基于流量的生存周期,定义了一个SA允许处理的最大流量。
生存周期到达指定的时间或指定的流量,SA就会失效。SA失效前,IKE将为IPsec协商建立新的SA,这样,在旧的SA失效前新的SA就已经准备好。在新的SA开始协商而没有协商好之前,继续使用旧的SA保护通信。在新的SA协商好之后,则立即采用新的SA保护通信。