IPSEC协议簇安全框架
需求背景
对保密性得需求越来越高——>
GRE、L2TP等VPN技术部支持保密性的要求——>
————>IPSec
IPSec VPN简介
IPSec(Internet Protocol Security):是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议族。
IPSec协议的设计目标:是在IPV4和IPV6环境中为网络层流量提供灵活的安全服务。
IPSec VPN:是基于IPSec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
IPSec协议簇安全体系框架
IKE协商
IPSec协议簇
IPSEC工作模式
传输模式
主要应用场景:经常用于主机和主机之间端到端通信的数据保护。
封装方式:不改变原有的IP包头,在原数据包头后面插入IPSec包头,将原来的数据封装成被保护的数据
隧道模式
主要应用场景:经常用于私网与私网之间通过公网进行通信,建立安全VPN通道。
IPSEC通信协议
AH协议
AH(Authentication Header,认证报头):
AH提供的安全服务:
无连接数据完整性 通过哈希函数(如MD5、SHA1)产生的校验来保证;
数据源认证 通过在计算验证码时加入一个共享密钥来实现;
抗重放服务 AH报头中的序列号可以防止重放攻击。
AH不提供任何保密性服务:它不加密所保护的数据包。
不论是传输模式还是隧道模式下,AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的TTL和TOS字段)。
AH在传输模式下封装
AH在隧道模式下封装
ESP协议
ESP(Encapsulating Security Payload,封装安全有效载荷):
保密服务通过使用密码算法加密 IP 数据包的相关部分来实现。
数据流保密由隧道模式下的保密服务提供。
ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证。
ESP在传输模式下封装
ESP在隧道模式下封装
AH和ESP对比
安全特性
AH
ESP
协议号
51
50
数据完整性校验
支持
支持(不验证IP头)
数据源验证
支持
支持
数据加解密
不支持
支持
抗重放服务
支持
支持
NAT-T(NAT穿越)
不支持
隧道支持
IPSEC建立阶段
IKE协商阶段
安全联盟SA
定义:SA(Security Association)是通信对等体间对某些要素的约定 ,通信的双方符合SA约定的内容,就可以建立SA。
SA由三元组来唯一标识:
安全参数索引
目的IP地址
安全协议号
IKE的产生背景
用IPSec保护一个IP包之前,必须先建立安全联盟(SA)
IPSec的安全联盟可以通过手工配置的方式建立。但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPSec对SA进行协商。
IKE的用途
IKE为IPSec协商生成密钥,供AH/ESP加解密和验证使用。
在IPSec通信双方之间,动态地建立安全关联(SA:Security Association),对SA进行管理和维护。
IKE与AH/ESP之间关系
IKE工作模式
IKE经过两个阶段为IPSec进行密钥协商并建立安全联盟:
第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)。
第一阶段交换有两种协商模式:
主模式协商
野蛮模式协商
第二阶段交换:用已经建立的安全联盟(IKE SA)为IPSec协商安全服务,即为IPSec协商具体的安全联盟,建立IPSec SA,产生真正可以用来加密数据流的密钥,IPSec SA用于最终的IP数据安全传送。
IKE阶段1
IKE阶段1两种模式对比
主模式
野蛮模式
消息交互
交互6个消息
交互3个消息
身份ID
以IP地址作为身份ID,自动生
成本端身份ID和对端身份ID
可以以多种形式(IP,字符串等)手动或自动的生成本端和对端的身份ID
域共享密钥
只能基于IP地址来确定
预共享密钥。
基于ID信息(主机名和IP地址)来确定预共享密钥。
安全性
较高
前4个消息以明文传输,最后
两个消息加密,对对端身份
进行了保护
较低
前两个消息以明文传输,最后一个消息进行加密,不保护对端身份
速度
较慢
较快
标准IPSEC VPN建立过程
IKE 阶段2
双方协商IPSec安全参数,称为变换集transform set,包括:
加密算法
Hash算法
安全协议
封装模式
存活时间
标准IPSec第二阶段
ISAKMP/IKE阶段2只有一种信息交换模式——快速模式,它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的。
标准IPSEC 有几对的出站入站,在DLAN运行状态里面就会显示几条连接,每一对快速模式交互的包都是三个,第一个包由主连接发起方发起响应
快速模式有两个主要的功能:
协商安全参数来保护数据连接。
周期性的对数据连接更新密钥信息。
第二阶段的效果为协商出IPSec 单向SA,为保护IPsec数据流而创建。第二阶段整个协商过程受第一阶段ISAKMP/IKE SA保护。
数据传输阶段
数据传输阶段是通过AH或者ESP通信协议进行数据的传输。
数据传输建立在网络层。
VPN隧道黑洞
对端的VPN连接已经断开而我方还处在SA的有效生存期时间内,从而形成了VPN隧道的黑洞。
我方不停的发送加密后的VPN数据过去,但对方拒绝接受。
DPD解决VPN隧道黑洞
DPD:死亡对等体检测(Dead Peer Detection),检查对端的ISAKMP SA是否存在。当VPN隧道异常的时候,能检测到并重新发起协商,来维持VPN隧道。
DPD主要是为了防止标准IPSEC出现“隧道黑洞”。
DPD只对第一阶段生效,如果第一阶段本身已经超时断开,则不会再发DPD包。
DPD包并不是连续发送,而是采用空闲计时器机制。每接收到一个IPSec加密的包后就重置这个包对应IKE SA的空闲定时器;如果空闲定时器计时开始到计时结束过程都没有接收到该SA对应的加密包,那么下一次有IP包要被这个SA加密发送或接收到加密包之前就需要使用DPD来检测对方是否存活。
DPD检测主要靠超时计时器,超时计时器用于判断是否再次发起请求,默认是发出5次请求(请求->超时->请求->超时->请求->超时)都没有收到任何DPD应答就会删除SA。
IPSEC VPN应用场景
IPSec VPN网关部署场景
企业的分支和总部都安放了VPN设备,分支机构希望通过VPN同步企业总部的研发资源。
研发资源属于商业机密,必须要在公网上能够安全保密传输。
解决方案:可以直接用Ipsec VPN的隧道工作模式进行传输,使用Ipsec VPN 的ESP通信协议来保障数据传输的保密性
IKE协商总结
1.SANGFOR的IPSEC VPN 主模式身份ID是默认配置的,不能修改,在NAT环境下会出现上述协商问题,所以只能选择野蛮模式。
2.其他厂商的IPSEC VPN主模式身份ID若可以自由配置,在NAT环境下则可以协商成功。
IKE第一阶段的身份识别
IPV4_ADDR、FQDN、USER_FQDN只是三种不同类型的身份认证方式,可以理解为SANGFOR设备中 VPN的用户名,主要用来确认对端身份。
主模式:IPV4_ADDR、证书认证
野蛮模式:IPV4_ADDR、FQDN、USER_FQDN、证书认证
NAT-T技术
因此出现了NAT-T用来解决标准IPSec VPN只能同时进行一个VPN连接的问题,NAT-T允许多个IPSec VPN同时连接,出现了NAT-T的技术。
(1)NAT-T协议运用在IPSec VPN中,在IKE协商和VPN连接时,允许源端口为非UDP 500端口,使用目的端口是UDP4500端口。
(2)NAT-T协议为ESP增加了UDP头部,从而解决了数据传输过程经过防火墙后无法进行端口复用的问题
————————————————
版权声明:本文为CSDN博主「Piwrim丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_60941423/article/details/122245276