一、IPsec vpn简介
1、IPsec是一组基于网络层的,应用密码学的安全通信协议族
2、IPsec vpn是基于IPsec协议族构建的在ip层实现的安全虚拟专用网
3、IPsec提供的安全服务:访问控制、机密性、完整性、数据源鉴别、重传攻击保护、不可否认性
4、IPsec协议族
二、IPsec工作模式
1、传输模式
①主要应用场景:经常用于主机和主机之间端到端通信的数据保护
②封装方式:不改变原有的ip包头,在原数据包头后面插入IPsec包头,将原来的数据封装成被保护的数据
2、隧道模式
①主要应用场景:经常用于私网与私网之间通过公网进行通信,建立安全VPN通道
②封装方式:增加新的ip头,其后是IPsec包头,之后再将原来的整个数据包封装
三、IPsec通信协议
1、AH协议(认证报头)
①AH提供的安全服务
无连接数据完整性、数据源认证、抗重放服务
②AH不提供任何保密服务:它不加密所保护的数据包
③不论是传输模式还是隧道模式下,AH提供对数据包的保护时,它保护的是整个ip数据包
2、ESP协议(封装安全有效载荷)
①ESP提供的安全服务:无连接数据完整性、数据源认证、抗重放服务、数据保密、有限的数据流保护
②数据流保密由隧道模式下的保密服务提供
③ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证
3、AH和ESP对比
①ESP支持加密,AH不支持加密
②ESP支持NAT穿越,AH不支持NAT穿越
四、IPsec建立阶段
1、IKE协商阶段
①定义:SA(安全联盟)是通信对等体间对某些要素的约定,通信的双方符合SA约定的内容,就可以建立SA
②SA由三元组来唯一标识,包括安全参数索引、目的ip地址、安全协议号
③IKE经过两个阶段为ipsec进行密钥协商并建立安全联盟:
第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即IKE SA。第一阶段交换有两种协商模式:
主模式协商和野蛮模式协商
第二阶段交换:用已经建立的安全联盟(IKE SA)为ipsec协商安全服务,即为ipsec协商具体的安全联盟,建立ipsec SA,产生真正可以用来加密数据流的密钥,ipsec SA用于最终的ip数据安全传送
④主模式:默认使用ip地址作为身份标识,即传递自己的出口地址做身份标识,一般用于双方皆为出口的场景
野蛮模式:可以使用用户名或ip等作为双方身份标识,即可以手动配置身份ID
⑤IKE阶段协商过程
主模式:三次交换过程,6个消息交互
野蛮模式:三次交换过程,三个消息交互
野蛮模式标识为Aggressive,野蛮模式下的三个交互包:
第一个交互包发起方建议SA,发起DH交换
第二个交互包接收方接受SA
第三个交互包发起方认证接收方
前两个数据为明文传输,消息3为加密传输
⑥IKE阶段1两种模式对比
⑦IKE第二阶段
阶段2只有一种信息交换模式——快速模式,它定义了受保护数据连接是如何在两个ipsec对等体之间构成的
2、数据传输阶段
数据传输阶段是通过AH或ESP通信协议进行数据的传输
①VPN隧道黑洞
可能的情况:
对端的VPN连接已经断开而我方还处在SA的有效生存期时间内,从而形成了VPN隧道的黑洞。
我方不停地发送加密后的vpn数据过去,但对方拒绝接受
②DPD解决vpn隧道黑洞
DPD:死亡对等体检测,检查对端的ISAKMP SA是否存在。当vpn隧道异常的时候,能检测到并重新发起协商,来维持vpn隧道,只对第一阶段生效
五、Ipsec vpn应用场景
1、ipsec vpn网关部署场景
可以直接用ipsec vpn的隧道工作模式进行传输,使用ipsec vpn的ESP通信协议来保障数据传输的保密性
2、NAT下的vpn部署场景(vpn设备在内网)
①隧道协商过程中,IKE规定源和目的端口都必须为UDP 500,在多vpn场景下源端口可能会在防火墙设备NAT后发生变化,从而导致IKE协商失败
②数据传输过程中,由于ESP在工作在网络层,没有传输层头部,从而无法进行NAPT端口复用,导致数据传输失败
六、NAT-T技术
因此出现了NAT-T用来解决标准ipsec vpn只能同时进行一个vpn连接问题,NAT-T允许多个ipsec vpn同时连接,出现了NAT-T技术
①NAT-T协议运用在ipsec vpn中,在IKE协商和vpn连接时,允许源端口为非UDP 500端口,使用目的端口是UDP4500端口
②NAT-T协议为ESP增加了UDP头部,从而解决了数据传输过程经过防火墙后无法进行端口复用的问题