17.1.1 IPSec VPN相关概念
1.IPSec概念
IPSec是一种开放标准的安全框架结构,特定的通信方之间在IP 层通过加密和数据摘要(Hash)等手段来保证数据包在Internet上传输时的私密性、完整性和真实性。
IPSec只能工作在IP层,要求乘客协议和承载协议都是IP,如图17-1所示。
图17-1 IPSec数据包结构
(1)通过加密保证数据的私密性
私密性:防止信息泄漏给未经授权的个人。
通过加密把数据从明文变成无法读懂的密文,从而确保数据的私密性。
(2)对数据进行Hash运算来保证完整性
完整性:数据没有被非法篡改。
通过对数据进行Hash运算,产生类似于指纹的数据摘要,以保证数据的完整性。
(3)对数据和密钥一起进行Hash运算
攻击者篡改数据后,可以根据修改后的数据生成新的摘要,以此掩盖自己的攻击行为。通过对数据和密钥一起进行Hash运算,可以有效抵御上述攻击。
2.IPSec架构
IPSec主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成,如图17-2所示。
图17-2 IPSec架构
AH 协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放。然而,AH并不加密所保护的数据报。
ESP协议:除提供AH 协议的所有功能外(其数据完整性校验不包括IP头),还可提供对IP报文的加密功能。
IKE协议:用于自动协商AH 和ESP所使用的密码算法,建立和维护安全联盟等服务。
IPSec不是一个单独的协议,它通过AH 和ESP这两个安全协议来实现IP数据报的安全传送。
3.安全联盟
安全联盟(Security Association,SA)定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。SA 是单向的,两个对等体之间的双向通信至少需要两个SA。如果两个对等体希望同时使用AH 和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SA。
SA 由一个三元组来唯一标识,这个三元组包括安全参数索引(Security Parameter Index,SPI)、目的IP地址、安全协议(AH 或ESP),如图17-3所示。建立SA 的方式有以下两种。
图17-3 安全联盟
①手动方式:SA 所需的全部信息都必须手动配置。手动方式建立SA 比较复杂,但优点是可以不依赖IKE而单独实现IPSec功能。当对等体设备数量较少时,或在小型静态环境中,手动配置SA 是可行的。
②IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由IKE 自动协商来创建和维护SA。动态协商方式建立SA 相对简单,对于中大型的动态网络环境,推荐使用IKE协商建立SA。
4.IPSec封装模式
IPSec有两种封装模式:传输模式和隧道模式。
(1)传输模式
传输模式中,在IP报文头和高层协议之间插入AH 或ESP头。传输模式中的AH 或ESP主要对高层协议数据提供保护,如图17-4所示。
图17-4 传输模式
传输模式中的AH:在IP头部之后插入AH 头,对整个IP数据报进行完整性校验。
传输模式中的ESP:在IP头部之后插入ESP头,在数据字段后插入ESP尾部以及认证字段,对高层数据和ESP尾部进行加密,对IP数据报中的ESP报文头、高层数据和ESP尾部进行完整性校验。
传输模式中的AH+ESP:在IP头部之后插入AH 和ESP头,在数据字段后插入ESP尾部以及认证字段,对高层数据和ESP尾部进行加密,对整个IP数据报进行完整性校验。
(2)隧道模式
隧道模式中,AH 或ESP头封装在原始IP 报文头之前,并生成一个新的IP 头封装到AH 或ESP之前,如图17-5所示。隧道模式可以完全地对原始IP报文进行认证和加密,而且可以使用IPSec对等体的IP地址来隐藏客户机的IP地址。
图17-5 隧道模式
隧道模式中的AH:对整个原始IP 报文进行完整性校验和认证,认证功能优于ESP。但AH 不提供加密功能,所以通常和ESP联合使用。
隧道模式中的ESP:对整个原始IP报文和ESP尾部进行加密,对ESP报文头、原始IP报文和ESP尾部进行完整性校验。
隧道模式中的AH+ESP:对整个原始IP报文和ESP尾部进行加密,对除新IP头之外的整个IP数据报进行完整性校验。