「IPSEC-VPN」- 概述工作原理

组件关系

概述交互过程

第一步、协商安全联盟(IKE)

通过 IKE 协商,验证算法、加密算法、密钥管理 => 即校验数据和加密数据的配置信息;

IKE(Internet Key Exchange),是个协议,其用于:设置 SA(安全关联)的协议;自动协商 AH 和 ESP 所使用的密码算法;

IKE 协议分为两个版本:
1)IKEv1,使用两个阶段为 IPSec 进行密钥协商并建立 IPSec SA。第一阶段,通信双方协商和建立 IKE 本身使用的安全通道,建立一个 IKE SA。第二阶段,利用这个已通过了认证和安全保护的安全通道,建立一对 IPSec SA;
2)IKEv2,则简化协商过程,在一次协商中可直接产生 IPSec 的密钥,生成 IPSec SA;

IKE 支持的认证算法有:MD5、SHA1、SHA2-256、SHA2-384、SHA2-512、SM3;
IKE 支持的加密算法有:DES、3DES、AES-128、AES-192、AES-256、SM1 和 SM4;

IKE 通过 ISAKMP 交互 SA 信息:

第二步、加密数据发送

通过协商的配置信息,完成 AH / ESP 的封装,并加密发送数据;

IPsec 提供了两种安全机制:加密和认证。IPsec 采用对称加密算法对数据进行加密和解密。数据发送方和接收方使用相同的密钥进行加密、解密。IPsec 采用 HMAC(Hash-based Message Authentication Code)功能,比较数字签名进行数据完整性和真实性认证;

ICV(Integrity Check Value)用于接收方进行完整性校验。可选择的认证算法有 MD5、SHA1、SHA2、SM3;

IPsec 常用的对称加密算法包括:数据加密标准 DES(Data Encryption Standard)、3DES(Triple Data Encryption Standard)、先进加密标准 AES(Advanced Encryption Standard)国密算法(SM1 和 SM4)。其中,DES 和 3DES 算法安全性低,存在安全风险,不推荐使用;

IPsec 常用的验证算法包括:消息摘要 MD5(Message Digest 5)、安全散列算法 SHA1(Secure Hash Algorithm 1)、SHA2、国密算法 SM3(Senior Middle 3)。其中,MD5、SHA1 算法安全性低,存在安全风险,不推荐使用;

IPsec 的加密功能,无法验证解密后的信息是否是原始发送的信息或完整。IPsec 采用 HMAC(Keyed-Hash Message Authentication Code)功能,比较数字签名进行数据包完整性和真实性验证。通常情况下,加密和验证通常配合使用。在 IPsec 发送方,加密后的报文通过验证算法和对称密钥生成数字签名,IP 报文和数字签名同时发给对端;在 IPsec 接收方,使用相同的验证算法和对称密钥对加密报文进行处理,同样得到签名,然后比较数字签名进行数据完整性和真实性验证,验证不通过的报文直接丢弃,验证通过的报文再进行解密;

详细交互过程

在 IPSec VPN 中,当建立隧道时,其详细交互过程如下:

第一步、第一阶段协商(IKE SA 协商)

建立和维护 SA(安全联盟)等服务,这是第一阶段协商,该 SA 仅在特定时间内有效;

第二步、第二阶段协商(IPSec SA 协商)

进行 IPSec 协商,以完成 IPSec SA 协商(也被成为第二阶段协商),并用于加密 IP 报文;

第三步、网络设备加密传输数据

然后,通过 AH 和 ESP 两个协议来实现 IP 数据包的安全传送;
在数据传输过程中,使用 IPSec SA 加密 IP 报文进行数据传输;

加密基本思路

IPsec 同时使用对称加密与非对称加密,保证了安全也兼顾了性能。将对称加密所用的密钥,使用非对称算法加密并传递。数据通过交互后的对称密钥加密;

参考文献

About IPSec VPN Negotiations