Bootstrap

IPSec协议框架

定义

IPSec是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,包括认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议、密钥交换和用于验证及加密的一些算法等。

通过这些协议,在两个设备之间建立一条IPSec隧道。数据通过IPSec隧道进行转发,实现保护数据的安全性。

基本框架:

安全协议

封装模式

传输模式

隧道模式

加密和验证

安全联盟

密钥交换



安全协议

IPSec使用认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两种IP传输层协议来提供认证或加密等安全服务。

  • AH协议

    AH仅支持认证功能,不支持加密功能。AH在每一个数据包的标准IP报头后面添加一个AH报文头,如封装模式所示。AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

  • ESP协议

    ESP支持认证和加密功能。ESP在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Trailer和ESP Auth data),如封装模式所示。与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护,除非IP头被封装在ESP内部(采用隧道模式)。

AH和ESP协议的简单比较如表1所示。

表1 AH协议与ESP协议比较
安全特性 AH ESP
协议号 51 50
数据完整性校验 支持(验证整个IP报文) 支持(传输模式:不验证IP头,隧道模式:验证整个IP报文)
数据源验证 支持 支持
数据加密 不支持 支持
防报文重放攻击 支持 支持
IPSec NAT-T(NAT穿越) 不支持 支持

从表中可以看出两个协议各有优缺点,在安全性要求较高的场景中可以考虑联合使用AH协议和ESP协议。

报文头结构

AH报文头结构

AH报文头结构如图1所示;AH报文头字段含义如表2所示。

图1 AH报文头结构
 

​​

表2 AH报文头字段含义

字段

长度

含义

下一头部

8比特

标识AH报文头后面的负载类型。传输模式下,是被保护的上层协议(TCP或UDP)或ESP协议的编号;隧道模式下,是IP协议或ESP协议的编号。

说明:

当AH与ESP协议同时使用时,AH报文头的下一头部为ESP报文头。

负载长度

8比特

表示以32比特为单位的AH报文头长度减2,缺省为4。

保留字段

16比特

保留将来使用,缺省为0。

SPI

32比特

IPSec安全参数

;