IPSEC VPN
0x0 WHY-为什么要使用IPSEC VPN?
现在对保密性要求越来越高,传统的GRE、L2TPvpn不支持认证,所以为了安全性使用IPSEC VPN
0x1 WHAT-什么是IPSEC VPN?
- IPSec(Internet Protocol Security):是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议族。
-
IPSec VPN:是基于IPSec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
- IPsec vpn可以提供的服务?
- 访问控制
- 机密性:对称加密,非对称加密
- 完整性:哈希函数来实现摘要
- 不可否认性:CA机构进行认证
- 重传攻击保护
- 数据源鉴别
0x2 HOW-IPsec VPN如何实现上述功能
0x2.1 两种工作模式
- 传输模式(transport):不改变原有IP头部,在原有IP头部后面插入新的IPsec包头,用于主机和主机之间端到端的数据保护;适用于拉专线、公司内部访问
- 隧道模式(tunnel):增加新的(外网)IP包头,之后是IPsec包头,再将整个数据包封装,用于私网与私网之间通过公网传输;适用于需要使用NAT的场景
0x2.2 两种通信协议
AH:只提供哈希算法来提供完整性检测,可以实现数据源认证,提供抗重放服务
- AH不提供保密服务:不加密
- 对整个头部+数据进行哈希算法,不可用于使用NAT的场景,因为NAT改变了源IP导致哈希值不同
ESP:AH提供的服务+加密+有限的数据流保护
- ESP只对数据部分进行完整性检测,对数据部分进行加密
- ESP在传输模式中对数据部分进行加密
- ESP在隧道模式下对原始IP头部和数据部分进行加密:因为隧道模式加入了新的头部,就将原始头部当作数据部分
- AH和esp的对比
0x2.3 IPSEC建立阶段基础知识补充
- 安全联盟SA(Security Association)是通信对等体间对某些要素的约定 ,通信的双方符合SA约定的内容,就可以建立SA。
- 安全参数索引+目的IP地址+安全协议号
- WHY-IKE:当网络中节点过多的时候,为了保证安全性和方便配置,就是用可以自动进行SA的建立和密钥交换的IKE(Internet Key Exchange)
- WHAT-IKE:为IPSec协商生成密钥,供AH/ESP加解密和验证使用;在IPsec双方通信时,动态建立SA
- HOW-IKE:使用两个阶段为IPsec进行密钥协商并且建立SA
- 阶段一:通信双方彼此建立一个已经通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)
- 野蛮模式
- 主模式
- 阶段二:用IKE SA为IPSec协商安全服务,建立IPSec SA,产生真正可以用来加密数据流的密钥,IPSec SA用于最终的IP数据安全传送。
- 快速模式
- 阶段一:通信双方彼此建立一个已经通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)
阶段一建立的IKE SA、协商的密钥是用来保护阶段二,为了让阶段二的密钥传输更加安全
阶段二建立的IPSEC SA是用来对数据流传输进行加密的(阶段二是全程加密的)
0x2.4 IKE 阶段一的两种模式
IKE 阶段一的工作模式
主模式:默认使用自己IP作为身份标识,自动生成双方身份ID,不适用NAT
主模式协商6个包:前4个包为明文,5,6个包,身份认证为加密
野蛮模式:可以手动配置身份ID,没有保护ID,可用NAT
野蛮模式3个包,前两个包为明文,后一个包为密文
- 阶段一SA交换使用的参数:加密算法,哈希算法,sa的存活时间,域共享密钥,DH组
0x2.5 IKE 阶段二
IKE 阶段二的工作模式
-
IKE阶段二使用快速模式,它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的。
- 快速模式有两个主要的功能:
- 协商安全参数来保护数据连接。
- 周期性的对数据连接更新密钥信息。
- 阶段二协商IPSEC交换使用的参数:加密算法,哈希算法,sa的存活时间,域共享密钥,DH组,安全协议,封装模式