一、 IPsec简介
- 是一组基于网络层的,应用密码学的安全通信协议族。IPsec不是具体指哪个协议,而是一个开放的协议族。
- 设计目标:是在IPv4和IPv6环境中为网络层流量提供灵活的安全服务。
- 是基于IPsec协议族构建的在IP层实现的安全虚拟专网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
** IPsec提供的安全服务**
机密性、完整性、数据源鉴别、重传攻击保护、不可否认性
二、 IPsec协议簇安全框架
2.1 IPsec协议族
- 两种工作模式:传输模式、隧道模式
- 两个通信保护协议:鉴别头(AH,Authentication Header)、封装安全载荷(ESP,Encapsulating Security Payload)
- 密钥交换管理协议(IKE):阶段一(两种基本模式:主模式、野蛮模式)、阶段2(Quick mode)
- 两个数据库:安全策略数据库SPD(Security Policy Database)、安全关联数据库SAD(Security Association Database)
- 解释域DOI(Domain of Interpretation)
三、 IPsec工作模式
3.1 传输模式
主要应用场景:经常用于主机和主机之间端到端通信的数据保护。
封装方式:不改变原有的IP包头,在原数据包后面插入如IPsec包头,将原来的数据封装成被保护的数据
3.2 隧道模式
主要应用场景:经常用于私网与公网之间通过公网进行通信,建立安全VPN通道。
封装方式:增加新的IP(外网IP)头,其后是ipsec包头,之后再将原来的整个数据包封装。公网传输过程中看到的是公网IP,无法看到数据包中的私网IP
四、 IPsec通信协议
4.1 通信保护协议AH
- 不提供任何保密性服务:它不加密所保护的数据包
- 不论是传输模式还是隧道模式下,AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的TTL和TOS字段)
4.2 ESP(加密&认证)
- 保密服务通过使用密码算法加密IP数据包的相关部分来实现
- 数据流保密由隧道模式下的保密服务提供
- ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性认证
4.3 AH和ESP对比
五、IPsec建立阶段
5.1 安全联盟SA
- 安全联盟SA:SA(Security Association)是通信对等体间对某些要素的约定,通信的双方符合SA约定的内容,就可以建立SA
- SA由三元组来唯一标识,包括:安全参数索引、目的IP地址、安全协议号
5.2 IKE
5.2.1 IKE的产生背景
- 用IPsec保护一个IP包之前,必须先建立安全联盟(SA)
- IPsec的安全联盟可以通过手工配置的方式建立,但是当网络中节点较多时,手工配置将非常困难,而且难以保证安全性。这时就可以使用IKE(Internet Key Exchange)自动进行安全联盟建立与密钥交换的过程。Internet密钥交换(IKE)就用于动态建立SA,代表IPsec对SA进行协商。
5.2.2 IKE的用途
- IKE为IPsec协商产生密钥,供AH/ESP加解密和验证使用
- 在IPsec通信双方之间,动态地建立安全关联(SA),对SA进行管理和维护
5.2.3 IKE工作过程
IKE经过两个阶段为IPsec进行密钥协商并建立安全联盟:
-
第一阶段交换:通信各方彼此建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA(也可称为IKE SA)。第一阶段交换由两种协商模式:主模式协商(公网IP固定)、野蛮模式协商(拨号等公网IP不固定)
-
第二阶段交换:用已经建立的安全联盟(IKE SA)为IPsec协商安全服务,即IPsec协商具体的安全联盟,建立IPsec SA,产生真正可以用来加密数据流的密钥,IPsec SA用于最终的IP数据安全传送。
5.3 数据传输阶段
- 数据传输阶段通过AH或者ESP通信协议进行数据的传输
- 数据传输建立在网络层
5.4 VPN隧道黑洞
对端的VPN连接已经断开而我方还处在SA的有效生存期事件内,从而形成了VPN隧道的黑洞
5.4.1 DPD解决VPN隧道黑洞
- DPD:死亡对等体监测(Dead Peer Detection),检查对端的ISAKMP SA是否存在。当VPN隧道异常的时候,能检测到并重新发起协商,来维持VPN隧道
- DPD主要是为了防止IPsec出现“隧道黑洞”
- DPD只对第一阶段生效,如果第一阶段本身已经超时断开,则不会再发
5.4.1.1 DPD概述
- DPD包并不是连续发送,而是采用空闲计时器机制
- 没收到一个IPsec加密的包后就重置这个包对于IKE SA的空闲定时器
- 如果空闲定时器计时开始到计时结束过程都没有接收到该SA对于的加密包,那么下一次有IP包要被这个SA加密发送或接受到加密包之前就需要使用DPD来检测对方是否存活
六、IPsec应用场景
6.1 IPsec网关部署场景
- 企业的分支和总部都安放了VPN设备,分支机构希望通过VPN同步企业总部的资源
- 总部资源属于商业机密,必须要在公网上能够安全保密传输
- 解决方案:可以直接用IPsec VPN的隧道工作模式进行传输,使用IPsec VPN的ESP通信协议来保障数据传输的保密性
6.2 NAT下的部署场景
- 企业为了内部局域网安全考虑,在网络出口安放了防火墙,要求内网所有设备通过防火墙代理上网(NAT)
NAT端口复用技术