历览千载书,时时见遗烈。这篇文章主要讲述华为防火墙IPSec网络安全协议相关的知识,希望能为你提供帮助。
IPSec简介IPSec(Internet Protocol Security)是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合
IPSec通过验证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议实现IP报文的安全保护
AH和ESP协议提供的安全功能依赖于协议采用的验证、加密算法
IPSec通过加密与验证等方式,从以下几个方面保障了用户业务数据在Internet中的安全传输:
安全联盟SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址和使用的安全协议号(AH或ESP)。其中,SPI是为唯一标识SA而生成的一个32位比特的数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。
SA是单向的逻辑连接,因此两个IPSec对等体之间的双向通信,最少需要建立两个SA来分别对两个方向的数据流进行安全保护。如图1所示,为了在对等体A和对等体B之间建立IPSec隧道,需要建立两个安全联盟,其中,SA1规定了从对等体A发送到对等体B的数据采取的保护方式,SA2规定了从对等体B发送到对等体A的数据采取的保护方式。
另外,SA的个数还与安全协议相关。如果只使用AH或ESP来保护两个对等体之间的流量,则对等体之间就有两个SA,每个方向上一个。如果对等体同时使用了AH和ESP,那么对等体之间就需要四个SA,每个方向上两个,分别对应AH和ESP。
有两种方式建立IPSec安全联盟:手工方式和IKE自动协商方式。二者的主要区别为:
手工方式下,建立SA所需的全部参数,包括加密、验证密钥,都需要用户手工配置,也只能手工刷新,在中大型网络中,这种方式的密钥管理成本很高;IKE方式下,建立SA需要的加密、验证密钥是通过DH算法生成的,可以动态刷新,因而密钥管理成本低,且安全性较高。
手工方式建立的SA,一经建立永久存在;IKE方式建立的SA,其生存周期由双方配置的生存周期参数控制。
安全协议IPSec使用认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两种IP传输层协议来提供认证或加密等安全服务。
AH报文头结构
封装模式
传输模式和隧道模式的区别在于:
当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式。
数据加密IPSec采用对称加密算法对数据进行加密和解密。对称加密算法是指数据发送方和接收方使用相同的密钥进行加密、解密。
采用对称加密算法进行数据加密和解密的过程如图1所示。
用于加密和解密的对称密钥可以手工配置,也可以通过IKE协议自动协商生成。
常用的对称加密算法包括:
验证过程虽然加密后的数据只能通过原始的加密密钥进行解密,但是无法验证解密后的信息是否是原始发送的信息。另外加密和解密的过程非常的消耗CPU,恶意用户可能会通过发送欺骗数据包,占用CPU性能。HMAC(Keyed-Hash Message Authentication Code)功能通过比较数字签名进行数据包完整性和真实性验证,这个过程消耗的CPU资源非常少,效率非常高。因此,IPSec采用HMAC功能进行验证。
HMAC验证过程
同加密一样,用于验证的对称密钥也可以手工配置,或者通过IKE协议自动协商生成。
常用的验证算法包括:
IKE协议IKE与IPSec的关系如图1所示,对等体之间建立一个IKE SA完成身份验证和密钥信息交换后,在IKE SA的保护下,根据配置的AH/ESP安全协议等参数协商出一对IPSec SA。此后,对等体间的数据将在IPSec隧道中加密传输。
IKE的安全机制IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA:
IKEv1协议和IKEv2协议比较IKE协议分IKEv1和IKEv2两个版本。IKEv2与IKEv1相比有以下优点:
身份认证确认通信双方的身份(对等体的IP地址或名称),包括预共享密钥PSK(pre-shared key)认证、数字证书RSA(rsa-signature)认证和数字信封认证。
身份数据在密钥产生之后加密传送,实现了对身份数据的保护。
支持的算法有:DES、3DES、AES-128、AES-192、AES-256和SM4。
DH是一种公共密钥交换方法,它用于产生密钥材料,并通过ISAKMP消息在发送和接收设备之间进行密钥材料交换。然后,两端设备各自计算出完全相同的对称密钥。该对称密钥用于计算加密和验证的密钥。在任何时候,通信双方都不交换真正的密钥。DH密钥交换是IKE的精髓所在。
MD5、SHA1、DES、3DES、AES等算法都可以采用DH算法来共享对称密钥。
DH使用密钥组定义自己产生的密钥长度。密钥组长度越长,产生的密钥就越强壮。
完善的前向安全性PFS(Perfect Forward Secrecy)是一种安全特性,指一个密钥被解密,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。IPSec SA的密钥是从IKE SA的密钥导出的,由于一个IKE SA协商生成一对或多对IPSec SA,当IKE的密钥被窃取后,坏仁将可能收集到足够的信息来导出IPSec SA的密钥,PFS通过执行一次额外的DH交换,保证IPSec SA密钥的安全。
IPSec增强原理DHCP over IPSec
DHCP over IPSec的工作原理如下:
IKEv1+XAUTH认证PC用户采用RSA方式与总部协商建立IPSec。此方式的PC用户无需输入用户名和密码用证书与总部进行认证,如果PC被盗,则非法获取该设备的人可以毫无障碍地接入总部,获取机密信息,存在安全隐患。
为了解决以上问题,IKEv1+XAUTH认证(即IKEv1扩展认证)方案被提出,在IKE协商时,第一阶段IKE SA协商完成后,总部会对PC用户发起IKEv1扩展认证来验证用户的用户名和密码,如果扩展认证通过,则继续进行第二阶段IPSec SA的协商;如果扩展认证失败,则停止IKE协商,建立IPSec隧道失败。
IKEv2+EAP认证无线设备通过基站远程接入IP核心网,或者移动PC通过Internet远程接入IP核心网,基站/移动用户与IP核心网网关FW之间通过建立IPSec隧道进行安全传输。基站采用EAP(Extensible Authentication Protocol)认证接入总部网关,EAP认证的认证服务器(以RADIUS服务器为例)部署在IP核心网。为此,需要在IKE报文中传递EAP认证报文以实现EAP认证。
EAP协议有20多种,目前设备只支持基本的EAP-MD5(Message Digest 5)协议、基于SIM(Subscriber Identity Module)卡的EAP-AKA(Authenticantion and Key Agreement)和EAP-SIM协议:
L2TP over IPSecL2TP over IPSec,即先用L2TP封装报文再用IPSec封装,这样可以综合两种VPN的优势,通过L2TP实现用户验证和地址分配,并利用IPSec保障通信的安全性。L2TP over IPSec既可以用于分支接入总部,也可以用于出差员工接入总部。
GRE over IPSecGRE over IPSec可利用GRE和IPSec的优势,通过GRE将组播、广播和非IP报文封装成普通的IP报文,通过IPSec为封装后的IP报文提供安全地通信,进而可以提供在总部和分支之间安全地传送广播、组播的业务,例如视频会议或动态路由协议消息等。
IPSec多实例IPSec多实例主要用于向小企业提供防火墙租赁业务和实现企业内部网络隔离。
三个小企业的分支共用一台VPN网关。三个企业之间需要保持网络独立,互相之间不会产生影响。三个企业的分支内部网络IP地址是各自规划的,可能出现IP地址重叠(即不同私网出现使用相同IP地址的情况),此时需要在网关上应用IPSec多实例功能,将三个企业的IPSec隧道与三个IPSec多实例绑定,保证相同IP地址的报文能够正确转发。
IPSec可靠性IPSec智能选路
通过在FW_B上配置IPSec智能选路功能,可以实现分支和总部之间多条IPSec隧道动态切换。使用其中一条链路建立IPSec隧道后,网关设备会实时检测已有IPSec隧道的时延或丢包率。在时延或丢包率高于设定的阈值时,动态切换到备用链路上重新建立IPSec隧道。
从分支网关FW_B到总部网关FW_A之间有两条链路Link1和Link2,FW_B与Internet之间运行动态路由协议(此处以OSPF为例)。在FW_B上配置IPSec智能选路功能,可以实现分支和总部之间多条IPSec隧道动态切换。
链路冗余备份
FW_A通过主备两条链路连接FW_B。在FW_A上创建两个Tunnel接口,借用同一个物理接口的IP地址,分别应用不同的IPSec安全策略,在FW_B的两个物理接口上也分别应用不同的IPSec安全策略,这样可以创建主备两条IPSec隧道。正常情况下,流量通过由主链路和Tunnel1接口建立的IPSec隧道传输;当主链路故障时,FW_A感知变化,采用Tunnel2接口与FW_B的备份链路建立IPSec隧道,旧的IPSec隧道被拆除,流量切换也随之完成。
FW_A通过主备两条链路连接FW_B。系统在FW_A的物理接口与FW_B的Tunnel接口之间建立一个IPSec隧道,流量通过Tunnel接口进行IPSec处理,然后通过路由表选择物理接口发送。当主物理链路失效时,其路由变为不可达,流量自然切换到备用链路。这种情况下,IPSec隧道不需要进行重协商,故可快速完成流量切换。
IPSec双机热备
FW_A1和FW_A2对外配置VRRP备份组1,并在VRRP备份组1和分支网关FW_B的物理接口之间建立IPSec隧道。当主用FW_A1物理接口、链路或主机故障时,流量被引导到备用FW_A2进行IPSec和转发处理。这种情况下,原有的IPSec隧道并不会被拆除,切换速度更具优势。
FW_A1和FW_A2以负载分担方式工作。eNodeB1和FW_A1、FW_A2各建了一条IPSec隧道,这两条IPSec隧道共同分担了分支发往总部的流量。这两条IPSec隧道之间不存在备份关系,彼此独立,因而互不影响。当FW_A1发生故障时,eNodeB1与FW_A1的IPSec隧道将断开,分支发往总部的流量将全部通过eNodeB1与FW_A2之间的IPSec隧道发往总部。反之,当FW_A2发生故障时,流量将会全部通过eNodeB1与FW_A1之间的IPSec隧道发往总部。
建立隧道的基本原理是:在FW_A1和FW_A2上分别创建一个VRRP备份组1,eNodeB1将会以VRRP备份组1的虚拟IP地址作为隧道对端地址与FW_A1和FW_A2建立主、备IPSec Tunnel1。同样,在FW_A1和FW_A2上分别创建一个VRRP备份组2,eNodeB2将会以VRRP备份组2的虚拟地址作为隧道对端地址与FW_A1和FW_A2建立主、备IPSec Tunnel2。当FW_A1和FW_A2运行正常时,eNodeB1下的用户发给总部的流量将由eNodeB1与FW_A1之间的主IPSec Tunnel1发往总部。eNodeB2下的用户发给总部的流量将由eNodeB2与FW_A2之间的主IPSec Tunnel2发往总部。当FW_A1出现故障时,eNodeB1则会将流量通过eNodeB1与FW_A2之间的备IPSec Tunnel1发往总部。同样,当FW_A2出现故障时,eNodeB2也将会使用备IPSec Tunnel2发送流量。
IPSec集群
在LTE场景中,基站所承载的客户流量需要在不安全的传输网络与安全的核心网络之间传输。为保护客户流量的安全,就需要在核心网络的边缘部署IPSec网关。在基站与IPSec网关之间建立IPSec隧道,客户流量通过IPSec隧道安全地传输。问题在于LTE场景中基站数量众多,且随着4G业务的发展每个基站承载的客户流量也大量增加。
一台IPSec网关的性能有限,无法承载所有基站的客户流量。所以LTE场景下通常需要多台IPSec网关才能满足IPSec隧道和VPN流量带宽的需求。由于基站所承载的客户流量不是固定的,多台IPSec网关之间彼此独立,很容易造成某些IPSec网关负载过重而无法建立新的IPSec隧道,某些IPSec网关却没有得到充分利用的情况。IPSec集群功能正是在此背景下产生的。
IPSec集群是指彼此有关联的一组IPSec网关的集合,这些IPSec网关对外相当于一台虚拟设备。对于基站来说,它与IPSec集群协商建立IPSec隧道,而不需要知道具体与哪个IPSec网关协商IPSec隧道。集群内部可以根据成员的负载情况选择一台IPSec网关响应基站的IPSec协商请求。
【华为防火墙IPSec网络安全协议】设备仅支持作为IPSec协商响应端与做为IPSec协商发起方的基站进行IPSec协商。
推荐阅读
- Mockjs模拟接口实现增删改查分页多条件查询
- Selenium3自动化测试40Html测试报告
- Linux环境利用Rman添加Oracle rac控制文件
- 时间复杂度和空间复杂度
- Lvs+DR模式
- OSPF路由重分发配置实例
- 大数据笔记(HDFS-伪分布式模式)
- socket编程与线程的结合
- Pyhacker编写指南端口扫描器