网际层的安全协议——IPSec
文章目录
一、IPSec(Internet Protocol Security)
1. IPSec概述
-
旨在网际层实现IP分组端到端的安全传输
-
实际是一个协议包,由一组安全协议组成(包括AH、ESP、SA和IKE等)
序号 | 协议 | 功能 |
---|---|---|
1 | SA(Security Association) | 用于描述双方如何安全地通信 |
2 | AH(Authentication Header) | 实现数据完整性检测 |
3 | ESP(Encapsulating Security Payload) | 实现数据加密和数据完整性检测 |
4 | IKE(Internet Key Exchange protocol) | 实现安全关联两端之间的双向身份鉴别,及安全关联相关参数的协商 |
2. 传输模式和隧道模式
为保证传输的安全,发送方和接收方应当是安全关联的两端。(关于安全关联,会在后文继续讨论)。
IPSec有以下两种工作模式,因为AH和ESP的工作模式略有差异,所以此处仅介绍概念,具体过程在"二、IPSec的组成"中有关AH和ESP的部分讨论。
-
传输模式
-
用于保证数据从端到端的安全传输,并对源端进行鉴别。
-
此时:
-
IPSec保护的数据是作为IP分组净荷的上层协议数据。
-
IP分组中源IP地址为发送端的IP地址,目的IP地址为接收端的IP地址。
-
-
-
隧道模式
- 源端和目的端各自的内部网络被一个公共网络分隔,在两个内部网络和公共网络之间各设置一个路由器(边界路由器),
- 此时:
- 发送端发出的IP分组被视为净荷封装在边界路由器R1中,此时整个。
- 在公共网络中传输的IP分组中源IP地址是R1的IP地址,目的IP地址是R2的IP地址。
源端 | 安全关联的发送端 | 安全关联的接收端 | 目的端 |
---|---|---|---|
PC1 | R1 | R2 | PC2 |
二、IPSec的组成(SA、AH、ESP和IKE)
1. 安全关联(SA——Security Association)
什么是安全关联?
-
安全关联是建立于发送者与接收者之间的关联,以期实现端源鉴别、数据加密和数据完整性
-
安全关联是单向的(发送者至接收者传输方向)
-
安全关联由三个信息来唯一确定:
(①安全参数索引SPI——Security Parameters Index;②目的IP地址;③安全协议标识符)
- ①SPI:接收者相同的安全关联之间需要分配不同的SPI(同目的IP地址的安全关联,其SPI不能相同)
- ②目的IP地址:接收端的IP地址
- ③安全协议标识符:指定安全协议是AH还是ESP
需要传输的数据需要先与安全关联绑定
-
发送者建立安全策略数据库(SPD——Security Policy Database)来实现数据与安全关联的绑定:
根据SPD中的策略,来将数据分类地施加不同的安全策略(包括丢弃、使用IPSec和不使用IPSec)。 -
安全关联数据库(SAD——Security Association Database):
SAD保存了已经建立的可用的安全关联SA条目。
安全关联有一些相关的参数
序号 | 参数名 | 功能 |
---|---|---|
1 | 序号 | 防重放攻击 |
2 | 防重放攻击窗口 | 区分收到的报文是否是重放报文 |
3 | AH信息 | AH协议的参数 |
4 | ESP信息 | ESP协议的参数 |
5 | 安全关联的寿命 | 确定安全关联存在的时间(可以是时间,也可以是允许发送的字节数) |
6 | IPSec的协议模式 | 有①传输模式和②隧道模式 |
7 | 路径最大传输单元(MTU) | 不切片的情况下,最大允许传输的分组长度 |
2.鉴别首部( AH——Authentication Header)
- 报文封装
①传输模式:直接在IP分组中的"IP首部"后插入AH首部。
②隧道模式:将源端发来的整个IP分组看作是一个"新净荷",并在其和"新IP首部"(源IP地址是安全关联的发送端|目的IP地址是安全关联的接收端)之间插入AH首部。
-
源端鉴别和完整性检验,鉴别算法一般有:HMAC-MD5-96和HMAC-SHA-1-96
以下选择HMAC-MD5-96算法(鉴别数据存放在AH首部)
-
发送端进行如下操作:
-
接收端进行如下操作:
-
3. 封装安全净荷(ESP——Encapsulating Security Payload)
-
报文封装
①传输模式:直接在IP首部和净荷之后分别插入ESP首部和尾部,并在末尾附上鉴别数据
②隧道模式:在"新IP首部"(源IP地址是安全关联的发送端|目的IP地址是安全关联的接收端)和"新净荷"后分别插入ESP首部和尾部,并在末尾附上鉴别数据。
- 源端鉴别和完整性检测:原理和AH相同,但不同的是,ESP的鉴别范围只覆盖ESP头部、净荷和ESP尾部。
4. Internet密钥交换协议(IKE——Internet Key Exchange protocol)
IKE用来干嘛?
-
AH和ESP能实现其安全功能的前提是,安全关联SA已经建立。
而静态地建立安全关联不够灵活,所以利用IKE来动态地建立安全关联并协商相关参数。
-
不是每种情况都会启动IKE,只有在:
- IP分组在SPD(安全策略数据库)中被设定为使用IPSec
- 且在SAD(安全关联数据库)中没有找到一条合适的安全关联时
才会启动IKE,试图动态地建立一条新的安全关联(可以将这个过程类比于路由的过程:先查看路由表内是否有合适的路由线路,若没有再尝试另辟蹊径)
-
IKE是如何完成动态建立安全管理的?
分两个阶段:
- 阶段一:
①主模式:建立安全传输通道(可以理解为建立IKE安全关联),六次发包包含了三轮双向信息交互。
②积极模式(通常不使用):该模式只有三次发包,多数的信息都被包含在了IKE的策略中,速度快,但不安全。
- 阶段二:
快速模式:建立安全关联(此处的安全关联指IPSec安全关联),过程可类比于"TCP的三次握手"。
IPSec是一种在TCP/IP中的网际层实现IP分组端到端安全传输的机制,由一组安全协议组成(SA、AH、ESP和IKE等)。
SA描述双方如何安全通信、AH实现数据完整性检测、ESP实现数据加密和完整性检测,而IKE实现两端之间安全关联的建立及相应参数的协商。