IPsec VPN基本概念
IPsec是由Internet Engineering Task Force(IETF)定义的一套安全标准框架,主要用于在公网上为两个私有网络提供安全通信通道,保证连接的安全性。IPsec VPN通过在两个公共网关间提供私密数据封包服务,确保数据在传输过程中不被窃取、篡改或伪造。
IPsec VPN协议体系结构
IPsec主要由三个核心协议组成:IKE(Internet Key Exchange)、AH(Authentication Header)和ESP(Encapsulating Security Payload)。
IKE协议:IKE协议用于协商安全联盟(Security Association,SA)和密钥管理。它分为IKEv1和IKEv2两个版本,其中IKEv2修复了IKEv1中的安全漏洞,提高了协商效率和安全性能。IKE协议通过基于UDP的应用层协议,综合了ISAKMP、Oakley和SKEME协议,用于建立IKE SA和IPsec SA。
AH协议:AH协议主要用于对IP报文进行数据源认证和完整性校验,确保传输的IP报文的来源可信且数据不被篡改。但它不提供加密功能,而是在每个数据包的标准IP报文头后面添加一个AH报文头。
ESP协议:ESP协议除了提供数据源认证和完整性校验外,还能对数据进行加密。它在每个数据包的标准IP报头后方添加一个ESP报文头,并在数据包后方追加一个ESP尾。ESP协议在传输模式下的数据完整性校验范围不包括IP头,因此不能保证IP报文头不被篡改。
IKE协商
IKE协议分IKEv1和IKEv2两个版本。
IKEv1
IKEv1使用两个阶段为IPSec进行密钥协商并建立IPSec SA。
第一阶段,通信双方协商和建立IKE本身使用的安全通道,建立一个IKE SA。
主模式(Main Mode)
主模式包含三次双向交换,共涉及六条ISAKMP消息:
消息①:发起方发送封装有IKE安全提议的SA载荷进行安全提议协商。SA中的参数包括加密算法、认证算法、身份认证算法、Diffie-Hellman(DH)组、IKE SA生存周期等。
消息②:响应方查找最先匹配的IKE安全提议,并发送一个SA载荷,表明接受协商的IKE安全提议。
消息③和④:发起者和接受者交换DH公开值(KE载荷)和临时随机数(Ni、Nr)。这些值是计算共享密钥(用来生成加密密钥和认证密钥)所必需的。
消息⑤和⑥:双方交换身份ID(ID载荷)和验证Hash值(AUTH载荷)。这两个消息中传递的信息是加密的,加密的密钥由消息③和④中交换的密钥信息生成,所以身份信息受到保护。
野蛮模式(Aggressive Mode)
野蛮模式只用到三条信息:
消息①:发起端发送封装有IKE安全提议的SA载荷。在野蛮模式中,只带有一个安全提议(包括加密算法、认证算法、身份认证算法、DH组、IKE SA生存周期等),响应者可以选择接受或拒绝该安全提议。此外,DH公开值(KE载荷)、临时随机数(Ni载荷)和身份ID(ID载荷)也在其中发送。在野蛮模式下,身份信息未经加密,因此可以在获取报文头时看到。
消息②:响应者发送SA载荷,包含推荐的安全提议。同时,也发送DH公开值(KE载荷)、临时随机数(Nr载荷)、身份ID(ID载荷)和验证Hash值(AUTH载荷)。
消息③:发起端发送验证Hash值,确认协商成功。
第二阶段,利用这个已通过了认证和安全保护的安全通道,建立一对IPSec SA。
IKEv1协商第二阶段采用快速模式(Quick Mode)进行协商,通过三条ISAKMP消息完成双方IPsec SA的建立:
消息①:协商发起方发送本端的安全参数和身份认证信息
消息②:协商响应方发送确认的安全参数和身份认证信息并生成新的密钥
消息③:发送方发送确认信息
IKEv2
IKEv2则简化了协商过程,流程包括三个主要的交换类型:初始交换、创建子SA交换、通知交换
初始交换包含两次消息交换,共四条消息
消息①(发起者发送):包含SAi1(发起者的安全联盟提议)、KEi(发起者的密钥交换载荷)、Ni(发起者的随机数)等。
消息②(响应者发送):作为对消息1的回应,包含SAr1(响应者的安全联盟提议)、KEr(响应者的密钥交换载荷)、Nr(响应者的随机数)等。此外,还可能包含CERTREQ(证书请求)载荷
消息③(发起者发送):包含加密和认证后的IDi(发起者的身份标识)、[CERT](发起者的证书)、AUTH(身份验证载荷)、SAi2(发起者的第二个安全联盟提议)、TSi(发起者的流量选择器)和TSr(响应者的流量选择器)等。
消息④(响应者发送):作为对消息3的回应,包含加密和认证后的IDr(响应者的身份标识)、[CERT](响应者的证书)、AUTH(身份验证载荷)等
创建子SA交换包含两条消息:
消息①(发起者发送):包含创建子SA的请求和相关的参数。
消息②(响应者发送):作为对消息1的回应,包含创建子SA的结果和相关的参数
通知交换包含两条消息:
用于在IKE SA保护下传递一些控制信息,如错误信息或通告信息等。这些信息不会改变IKE SA或IPSec SA的状态,但可以提供有关协商过程或安全策略的重要信息
IPsec协议封装模式
IPsec VPN支持两种工作模式:传输模式和隧道模式
在传输模式下:IPSec头(AH头或ESP头)被插到IP头之后但在所有传输层协议之前,或所有其他IPSec协议之前。
在隧道模式下:IPSec头(AH头或ESP头)被插到原始IP头之前,另外生成一个新的报文头放到AH或ESP之前。
IPsec VPN应用场景
IPsec VPN应用场景包含IPSec点到点、点到多点应用场景
IPSec点到点VPN也称为局域网到局域网VPN,网关到网关VPN,主要用于两个网关之间建立IPSec隧道,从而实现局域网之间安全地互访。点到点VPN两端网关必须提供固定的IP地址。通信双方都可以主动发起连接。
IPSec点到多点VPN多用于一个总部与多个分支建立IPSec的场景。在实际的应用中,经常需要使用HUB-Spoke类型的组网,即一个总部到多个分支机构的组网,分支节点建立到总部的IPSec隧道,各个分支机构之间的通信由总部节点转发和控制。
IPsec VPN作为一种高效、安全、的VPN技术,通过深入了解IPsec VPN的原理和优势,我们可以更好地利用这一技术来保障网络数据传输的安全性。