「IPSEC-VPN」- 安全联盟 | SA | Security Association

问题描述

IPSec 是在两个端点之间提供安全通信,端点被称为 IPSec 对等体。IPSec 能够允许系统、网络的用户或管理员控制对等体间安全服务的粒度;

例如,某个组织的安全策略可能规定来自特定子网的数据流应同时使用 AH 和 ESP 进行保护,并使用 3DES 进行加密;另一方面,策略可能规定来自另一个站点的数据流只使用 ESP 保护,并仅使用 DES 加密;

解决方案

SA(Security Association,安全联盟),是通信对等体间对某些要素的约定,帮助 IPsec 对特定要素进行约定,SA 定义 IPSec 通信对等体间将使用的 数据封装模式认证和加密算法密钥 等等参数;

例如,使用哪种安全协议、协议的操作模式(传输模式和隧道模式)、加密算法(DES 和 3DES)、特定流中保护数据的共享密钥以及密钥的生存周期等;

通过 SA,IPSec 能够对不同的数据流提供不同级别的安全保护,在建立 IPSec Tunnel 过程中,需要完成 SA 的建立;

通信的双方符合 SA 约定的内容,就可以完成 SA 的建立。SA 是 IPSec 的基础,也是 IPSec 的本质;

特性特征

SA 是单向的逻辑连接(IPSec SA,但注意 IKE SA 是双向的),所以:
1)两个 IPSec 对等体间的双向通信(即建立一条 IPSec 隧道),至少需要两个 SA 来分别对两个方向(出向、入向)的数据流进行安全保护;
2)如果两个对等体希望同时使用 AH 和 ESP 安全协议来进行通信,则对等体针对每种安全协议都需要协商一对 SA,一个用于 AH,另个用于 ESP;

SA 通过三元组来标识,该三元组包括:

  • 安全参数索引(SPI,Security Parameter Index),是为了唯一标识 SA 而生成的一个 32-bit 的数值,它在 AH 和 ESP 头中传输;在手工配置 SA 时,需要手工指定 SPI 的取值;当使用 IKE 协商产生 SA 时,SPI 将随机生成;
  • 目的网络地址(DST-IP-ADDR)
  • 安全协议号(AH 或 ESP)

生成方式

IPsec 技术在数据加密,数据验证,数据封装等方面有多种实现方式或算法,两端的设备使用 IPsec 进行通信时需要保证一致的加密算法,验证算法等。因此需要一种机制帮助两端设备协商这些参数;

生成 SA 的方式通常有两种:

  • 通过管理员配置,来指定 SA 中的各个参数;
  • 通过 IKE 协议,来自动协商生成 SA 中的各个参数;

手工方式

SA 所需的全部信息都必须手工配置;

特性特征:

  • 缺点:手工方式建立 SA 比较复杂;手工方式建立 IPsec SA 管理成本很高,加密验证方式需要手工配置,手工刷新 SA,且 SA 信息永久存在安全性较低
  • 优点:不依赖其他服务,便能单独实现 IPSec 功能;

应用场景:

  • 当对等体设备数量较少时,
  • 或在小型静态网络环境中,手工配置 SA 是可行的;

IKE 动态协商方式

只需要通信对等体间配置好 IKE 协商参数,由 IKE 自动协商来创建和维护 SA;

特性特征:
动态协商方式建立 SA 相对简单些;IKE 方式建立 IPsec SA 管理成本比较低,加密验证方式通过 DH 算法生成,SA 信息有生成周期,且 SA 动态刷新,适用于小型,中大型网络;

应用场景:

  • 针对中、大型的动态网络环境中,推荐使用 IKE 协商来完成 SA 建立;

保存位置

IPSec 设备会把 SA 的相关参数放入 SPD(Security Policy Database)里面,SPD 里面存放着“什么数据应该进行怎样的处理”这样的消息;

在 IPSec 数据包出站和入站的时候会首先从 SPD 数据库中查找相关信息并做下一步处理;