协议体系(组成部分)
IPSec 并非单独协议,其是由系列协议组成,其是定义在 IP Network 上数据安全的整套体系结构;
IPSec VPN 主要由如下协议套件组成:
IPsec 提供了两种安全机制:加密和认证;
安全协议
IPSec 使用 AH(Authentication Header)和 ESP(Encapsulating Security Payload)两种安全协议来传输和封装数据,提供认证或加密等安全服务;
1)AH:其功能为数据源验证、数据完整性校验、防报文重放;但 AH 不支持加密功能,所以无法加密被保护数据;
2)ESP:提供 AH 的所有功能外(但其数据完整性校验不包括 IP Header);还能加密 IP 报文;
当安全协议提供认证或加密等安全服务时,需要有密钥的存在。AH 和 ESP 提供的安全功能依赖于协议采用的验证算法、加密算法;
加密
IPsec 采用对称加密算法对数据进行加密和解密。数据发送方和接收方使用相同的密钥进行加密、解密;
ESP 能够对 IP Packet 内容进行加密保护,防止报文内容在传输过程中被窥探。通过 对称密钥 系统,来实现加密,它使用相同的密钥对数据进行加密和解密;
一般来说 IPSec 使用加密算法有以下几种:DES;3DES;AES;
验证
AH 和 ESP 都能够对 IP Packet 的完整性进行验证,以判别报文在传输过程中是否被篡改。验证算法的实现主要是通过杂凑函数,杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。IPSec 对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的;
IPsec 采用 HMAC(Hash-based Message Authentication Code)功能,比较数字签名进行数据完整性和真实性认证。一般来说 IPSec 使用两种验证算法:MD5;SHA-1;
密钥交换
密钥交换的方式有两种:
1)带外共享密钥:
1)可扩展性差,在点到多点组网中配置密钥的工作量成倍增加;
2)另外,为提升网络安全性需要周期性修改密钥,这种方式下也很难实施;
2)通过 IKE 协议自动协商密钥:
1)配置简单,可扩展性好,特别是在大型动态的网络环境下此优点更加突出;
2)同时,通信双方通过交换密钥交换材料来计算共享的密钥,即使截获双方用于计算密钥的所有交换数据,也无法计算出真正的密钥;
封装模式
封装模式是指将 AH 或 ESP 相关的字段插入到原始 IP Packet 中,以实现对报文的认证和加密;
传输模式 Transport
Implementing IPsec Transport Mode
在传输模式下,IPSec VPN 仅对数据进行加密,所以需要在 IP Header 与 Payload 间添加 AH Header 或 ESP Header 部分;
在传输模式中,AH Header 或 ESP Header 被插入到 IP 头与传输层协议头之间,保护 TCP/UDP/ICMP 负载。由于传输模式未添加额外的 IP 头,所以原始报文中的 IP 地址在加密后报文的 IP 头中可见;
AH 仅支持认证:
1)认证部分:其 HASH 为 IP + AH + Payload 部分(仅验证在传输过程中所有不变的部分);
ESP 支持认证和加密:
1)加密部分:Payload + ESP Trailer
2)认证部分:其 HASH 为 ESP + Payload + ESP Trailer 部分;
AH + ESP 支持认证和加密,其认证部分与加密部分如图所示;
在传输模式下,IP Header 依旧为原始地址:
1)多用于数据加密;在 L2TP over IPSec 中,IPSec 负责数据加密;
2)不能用于多个内网主机通讯(需要使用 IPSec VPN 的隧道模式)
应用场景:
1)GRE over IPSec;
2)两台主机间数据加密;
隧道模式 Tunnel
在隧道模式下,IPSec 将为整个 IP 报文添加 AH/ESP Header 部,此时 AH/ESP 将添加到 IP Header 间,并添加新的 IP 头部(路由器地址);
在隧道模式下,AH Header 或 ESP Header 被插到原始 IP Header 之前,另外生成一个新的报文头放到 AH Header 或 ESP Header 之前,保护 IP 头和负载;
应用场景:
1)Site to Site VPN:实现两个站点的互通;
感兴趣数据流(定义被保护流)
感兴趣数据流,是指需要通过 IPSec 处理的数据流,即指定要保护的数据流范围,筛选出需要进入 IPsec 隧道的报文;
IPsec 是基于定义的感兴趣流触发对特定数据的保护,可以通过以下两种方式定义:
策略方式 | Policy-based | ACL-based
通过 ACL 配置,来抓取感兴趣数据流,流量将会通过 SA 协商的各种参数进行处理、封装,并通过 IPSec 隧道进行转发。
路由方式 | Route-based
通过 IPsec 虚拟隧道接口建立 IPsec 隧道,将所有路由到 IPsec 虚拟隧道接口的报文都进行 IPsec 保护。
IPSec VTI (Virtual Tunnel Interface) 是一种用于简化 IPSec 隧道配置的技术,它将 IPSec 隧道的安全关联(SA)与虚拟接口绑定,使 IPSec 隧道的配置和管理更加直观和灵活。
性质:
简化配置:VTI 使用虚拟接口来表示 IPSec 隧道,使得配置方式与普通接口类似
路由集成:支持动态路由协议,可以直接在 VTI 接口上应用路由协议,简化了路由配置。
灵活性:支持动态路由协议(如 OSPF、BGP)在隧道上运行
NAT 穿越:更容易处理 NAT 穿越场景
多播支持:支持多播流量通过 IPSec 隧道
通过路由将需要 IPsec 保护的数据流引到虚拟隧道接口,不需使用 ACL 定义待加 / 解密的流量特征,简化 IPsec 配置的复杂性;
通过 GRE over IPsec 支持对组播流量的保护;
在现网中,GRE Over IPsec 一般使用路由方式定义被保护流;