摘 要:随着网络技术的迅速发展,组播作为一种高效的数据传输方式,正在得到越来越广泛的应用,人们对其安全性的重视程度也越来越高。IPsec作为一种拥有很高实用性和可靠性的协议,越来越受企业和个人用户的欢迎。文章首先介绍了IPsec对等部署方案、无GCKS的组播密钥管理结构和对端网关发现机制,然后基于对端网关发现机制提出了一种适用于IPsec对等部署方案的对端组播IPsec发现机制,最后讨论了发现报文在实网中的路由问题并提出了解决方案。
关键词:IPsec;对等部署;网关发现;组播IPsec发现
中图分类号:TN915.04 文献标识码:A 文章编号:2096-4706(2024)15-0006-04
End-to-End Multicast IPsec Discovery Mechanism for Peer-to-Peer Deployment Scheme Based on IPsec
GAO Yangyang, YI Heng, ZHOU Huaming
(The 30th Institute of CETC, Chengdu 610041, China)
Abstract: With the development of network technology, multicast, as an efficient data transmission method, is being used more and more widely, and people are paying more and more attention to its security. IPsec, as a protocol with high practicality and reliability, is becoming more and more popular among enterprises and individual users. This paper first introduces the IPsec peer-to-peer deployment scheme, the multicast key management structure without GCKS, and the end-to-end gateway discovery mechanism. Then, based on the end-to-end gateway discovery mechanism, it proposes an end-to-end multicast IPsec discovery mechanism suitable for the IPsec peer-to-peer deployment scheme. Finally, it discusses the routing problem of discovery packets in the real network and proposes a solution.
Keywords: IPsec; peer-to-peer deployment; gateway discovery; multicast IPsec discovery
0 引 言
随着互联网的普及和信息安全的重要性日益凸显,越来越多的组织和个人开始关注网络安全的问题。在数据传输过程中,用户都希望能够确保数据的安全性。为了实现这一目标,众多的加密技术被应用于网络通信中。作为保障网络通信安全的重要技术之一,IPsec(Internet Protocol Security)在企业和个人用户中越来越受欢迎。它拥有很高的实用性和可靠性,是一种用于确保网络数据传输安全的协议,通过加密和认证技术,保障数据的机密性、完整性和可用性[1-2]。
在实际应用中,根据不同的需求,IPsec可以选择不同的部署方案,包括单机部署、网关部署以及对等部署。其中对等部署是一种适应于多个节点之间通信的部署方案。在这种方案下,多个节点(可能是计算机、服务器、路由器或其他网络设备)之间建立IPsec连接,用于保护彼此之间的通信。对等部署方案有以下几个优点:1)灵活性和可扩展性。通过在每个节点上部署IPsec,可以根据实际需要动态调整网络的拓扑和通信路径。2)成本效益。对等部署充分利用了网络设备的资源,每台设备都负责自己的IPsec配置和管理,不需要额外的设备来充当网关,节省了硬件资源和成本。3)互通性强。对等模式可以连接不同厂商的设备,提高更大的互通性。这对于跨越不同的网络或组织进行安全通信非常重要。
针对一对多或者多对多的应用场景,IETF提出了IP组播通信模型,并且为了使IPsec的安全特性能适用于组播,IETF制定了IPsec安全组播管理协议GDOI[3]。RFC4046中定义的组密钥管理结构包括:组播发送方IPsec VPN、组播接收方IPsec VPN、组控制器和密钥服务器(Group Controller and Key Server, GCKS)。GCKS负责密钥的生成、分配以及更新[4]。该架构要求网络中所有IPsec VPN支持GDOI协议并且在现有的网络中部署GCKS比较困难。
为了解决现有网络中部署GCKS遇到的困难,组播源IPsec替代GCKS角色的组播加密方案被提出。该方案中组播密钥管理结构由2种实体组成:组播发送方IPsec VPN、组播接收方IPsec VPN。方案实现的基本思路为:阶段1组播发送方IPsec VPN与组播接收方IPsec VPN产生阶段2协议交互的保护密钥。阶段2利用阶段1产生的保护密钥在组播接收方IPsec建立为特定的组播组建立密钥更新SA和(或)数据安全SA[5-6]。
1 对端网关发现机制
因特网安全关联密钥管理协议(Internet Security Association Key Management Protocol, ISAKMP)、因特网密钥交换协议[7](Internet Key Exchange, IKE)定义了两个安全网关之间如何协商安全联盟 (Security Association, SA),但是它们都没有关于发起者网关如何找到对端网关的描述。这也就导致了传统的IPsec隧道建立必须预先知道对端网关的IP地址。这种方法很大程度上限制了隧道建立的灵活性。于是FreeS/WAN 项目提出了一种在VPN 连接时动态认证对方的方法——机会加密(Opportunistic Encryption, OE)。
OE是用DNS服务器代替CA,双方把自己的公钥放在DNS服务器上,连接的时候进行反向DNS查询(依靠IP地址查找域名信息,获取对端安全网关的地址和公钥信息)实现密钥交换并建立加密通道,公钥的合法性靠DNS服务器来保证。相对于证书/CA的方法,OE较简单且更容易实现。为了保证安全,DNS实际操作时使用DNSSEC。之后,Cisco提出了一种隧道自动建立机制——隧道端点发现[8](Tunnel Endpoint Discover, TED),它基于标准路由协议。通过它可以实现IPsec安全网关的动态发现。
TED机制使用固有的路由协议来发现需要保护的通信的对端网关。发现远端网关的具体步骤如下:图1为一个安全网关保护的网络拓扑图。图中有A、B、C三个节点,三个安全网关SG_A、SG_B、SG_C。
1)A发送一个数据包到B。当IP数据包路由到SG_A时,SG_A上的IPsec策略指出到B的数据包需要进行加密处理,但是没有和此相关的SA。
2)SG_A发送TED探测报文,报文的源地址为SG_A,目的地址为B。
3)TED探测报文被SG_B所截获。SG_B根据报文的源和目的地址进行SPD查找,从而确定该源地址和目的地址间的通信是否需要受到保护。同时发现B是受自己保护的。于是,SG_B发送一个TED响应报文。
4)当SG_A收到TED响应后,它读取响应报文中的载荷,从而得到对端IKE实体(SG_B)的IP地址。
2 对端组播IPsec发现机制
OE和TED两种发现机制共同点:一是都只适用于单播,二是发现的对象为网关部署方案中的网关,两种机制都未对组播进行说明。在无GCKS的组播加密方案中,本文基于对端网关发现机制提出了一种适用于对等部署方案的对端组播IPsec发现机制——组播末端发现(Multicast Endpoint Discovery, MED)。
2.1 MED的基本原理
如图2所示为MED报文交互流程,具体的步骤如下。
首先,组播源IPsec(Ipsec_send)获取MED发现报文的目的地址(即业务组播地址mul_ip),方法有以下两种:1)通过组播业务数据包获取,具体方法为:组播源(mul_send)发送组播地址为mul_ip的数据包,该报文经过网络设备路由到Ipsec_send后,Ipsec_send根据业务数据包信息查询相应的IPsec安全策略。如果安全策略指出该业务需进行加密处理,那么Ipsec_send可根据组播业务数据包获取其中的mul_ip。2)通过Ipsec_send上配置的安全策略获取,具体方法为:Ipsec_send遍历IPsec安全策略中需要对组播业务进行加密处理的安全策略,获取策略中的组播地址mul_ip。
然后,Ipsec_send根据获取到的组播地址mul_ip构造MED发现报文,该报文为IKE消息。消息报文格式如图3所示为UDP报文。其中,以太网头中源MAC地址设置为Ipsec_send的MAC地址,目的MAC地址设置为mul_ip对应的组播MAC地址。以太网类型根据Ipsec_send部署环境而定(例如:部署在Trunk环境时以太网类型为0x8100-VLAN协议;部署在一般二、三层环境时以太网类型为0x0800-IP协议)。IP头中的源IP地址设置为Ipsec_send的IP地址,目的IP地址设置为mul_ip,协议设置为17(UDP协议),源端口号和目的端口号设为500,载荷部分包含Ipsec_send的IP信息。
当出现用户主机通过IGMP加入组播组时,MED发现报文可经过路由设备路由到组播接收IPsec(Ipsec_recv)。由于组播为广播业务,Ipsec_recv收到MED发现报文说明保护的节点中有节点想要收到该组播业务,故该通信需要受到保护。于是Ipsec_recv发送一个MED响应报文。响应报文的格式和请求报文格式类似,不同的是响应报文为单播报文,以太网头中源MAC地址设置为Ipsec_recv的MAC地址,目的MAC地址设置为外网网关MAC地址(如果是二层环境目的地址设置为Ipsec_send的MAC地址)。以太网类型根据Ipsec_recv部署环境而定(例如:部署在Trunk环境时以太网类型为0x8100-VLAN协议;部署在一般二、三层环境时以太网类型为0x0800-IP协议)。IP头中的源地址设置为Ipsec_recv的地址,目的地址设置为Ipsec_send的地址,协议设置为17(UDP协议),源端口号和目的端口号设为500。响应报文构造完成后发出,经过路由设备到达Ipsec_send时被截获,Ipsec_send收到应答报文后,获取载荷中的载荷信息(对端组播IPsec地址)。
MED发现报文交互流程完成后可实现以下功能:
1)对端组播IPsec发现。Ipsec_send收到应答报文,获取报文中的地址载荷,从而得到Ipsec_recv的地址。之后,Ipsec_send和Ipsec_recv可以进行正常IKE通信,建立用来保护建立密钥更新SA和数据安全SA过程中协议交互的SA,以及密钥更新SA和数据安全SA。如果Ipsec_send和Ipsec_recv均未配置组播业务相对应的IPsec安全策略,但缺省情况下对组播业务进行加密处理时,还可以通过IPsec SA协商过程中添加载荷来自动建立组播IPsec安全策略。
2)检测对端组播IPsec的动态加入、动态替换、动态撤离。Ipsec_send定时发送MED发现报文,当网络中有新的组成员出现(用户主机通过发送IGMP报告通知路由器要加入某组播组G)时,发现报文通过路由设备可以转发到Ipsec_recv。
如果Ipsec_recv在线,经过MED发现报文的交互,Ipsec_send可以获取到它的相关信息。Ipsec_send查看自己的成员列表,如果无该成员信息,证明该Ipsec_recv为新加入成员,则将其添加到成员列表中。如果Ipsec_send的成员列表中存在Ipsec_recv信息,但已有信息与应答报文中的信息不一致,说明该成员发生过替换。Ipsec_send更新成员列表中成员信息。考虑到前向安全,Ipsec_send检测到有成员动态加入或动态替换的情况时发起密钥更新,同时将更新后的密钥发送给当前所有Ipsec_recv。
如果某Ipsec_recv不在线,那么Ipsec_send在发送n次MED发现报文后未收到它的MED应答报文,则认为该Ipsec_recv动态撤离。考虑到后向安全,Ipsec_send发起密钥更新,同时将更新后的密钥发送给当前所有Ipsec_recv。
2.2 发现报文的路由问题
PIM-DM(密集模式)假设网络中的所有主机都对接收组播流量感兴趣。当路由器接收到组播流量并通过RPF检查后,它将复制并向其所有PIM邻居发送流量。因此,它默认向所有下游接口转发组播流量。然如果没有接收者的分支,PIM密集模式通过主动报告或超时机制发起剪枝[9]。之后让新加入的组成员快速得到组播报文是通过嫁接机制实现的。叶子路由器通过IGMP报文获取与其相连的用户网段上组播组G有新的组成员加入。随后叶子路由器会向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中,之后组播组G的组播会被路由设备转发到新的组成员。
PIM-SM网络中ASM(Any-Source Multicast)模型,当用户主机通过IGMP报告加入某组播组G时,组成员端DR向RP发送Join报文,在通向RP的路径上逐跳创建(*,G)表项,生成一棵以RP为根的RPT[9]。组播源将组播报文发送给路由设备(源端DR)。路由设备收到后将其封装在Register报文中发送给RP。RP接收到Register报文,将其解封装,建立(S,G)表项,并将组播数据沿RPT发送到达组成员[10]。
PIM-SM网络中SSM(Any-Source Multicast)模型,用户主机通过IGMPv3报告告知路由器要接收从哪些源地址发往组播组的数据。组成员端DR收到用户主机的IGMPv3报告后,直接向组播源端的DR路由设备发送Join报文。Join报文逐跳向上传输,在源与组成员之间建立SPT,无须维护RP、构建RPT、注册组播源。
如图4所示,组播接收IPsec部署在叶子路由器内侧。由上述组播转发机制可知:PIM-DM网络和PIM-SM网络中ASM(Any-Source Multicast)模型环境下,组播成员Host通过IGMP加入某组播组G时,组播源IPsec发出的MED发现报文可以通过路由设备转发到组播接收IPsec。PIM-SM网络中SSM(Any-Source Multicast)模型下,组播成员Host仅向叶子路由器R3发送IGMPv3报告(G,INCLUDE,(S)),告知路由器只接收源地址S发往组播组G的数据,故源地址为S1的MED发现报文无法被组播接收IPsec接收到。
如图5所示,组播接收IPsec部署在叶子路由器和中间路由器之间。由上述转发机制可知:PIM-DM网络和PIM-SM网络中ASM(Any-Source Multicast)模型环境下,组播成员Host通过IGMP加入某组播组G时,组播源IPsec发出的MED发现报文可以通过路由设备转发到组播接收IPsec。PIM-SM网络中SSM(Any-Source Multicast)模型下,组播接收Host仅向叶子路由器R3发送IGMPv3报告(G,INCLUDE,(S)),告知路由器只接收源地址S发往组播组G的数据,故源地址为S1的MED发现报文无法被组播接收IPsec接收。
综上所述:MED发现报文在PIM-SM网络中SSM(Any-Source Multicast)模型下存在路由问题。
2.3 解决方案
方法一:由组播成员Host向叶子路由器R3发送IGMPv3报告(G,INCLUDE,(S1)),告知路由器要接收来自源地址S1发往组播组G的组播数据。这样,MED发现报文就会被路由设备转发到组播接收Host,从而能被组播接收IPsec拦截完成MED报文交互流程。
方法二:组播接收IPsec定时发送IGMPv3报告(G,INCLUDE,(S1))。如图4所示,组播接收IPsec部署在叶子路由器内侧。组播接收IPsec定时向R3发送IGMPv3报告(G,INCLUDE,(S1)),告知路由器要接收来自源地址S1发往组播组G的组播数据。如图5所示,组播接收IPsec部署在叶子路由器和中间路由器之间。首先,配置路由器R2的port1端口使能IGMPv3功能;其次组播接收IPsec定时向R2发送IGMPv3报告(G,INCLUDE,(S1)),告知路由器要接收来自源地址S1发往组播组G的组播数据。然后配置R2、R3地址或优先级使R2选举为DR。原因是:组播接收IPsec部署在中间路由器R2和叶子路由器R3之间的级联网段上,R2和R3都启用PIM协议,为了争取在该网段中唯一的组播报文转发权,R2和R3之间就需要通过交互Hello报文进行DR竞选。竞选时,首先比较Hello报文中携带的DR优先级,优先级大的获胜;如果优先级相同或者一方的Hello报文中未携带优先级,那么IP地址大的获胜。如果R3竞选为DR,由上述PIM-SM网络中SSM模型下组播转发机制可知,组播接收IPsec通过IGMPv3加入组播组,指定从S1接收信息,组成员端DR(路由器R3)无法了解到组播接收IPsec的需求,从而无法向源端DR发送Join报文,导致MED发现报文路由出现问题。
3 结 论
本文基于无GCKS的组播加密方案,针对IPsec对等部署模式提出了一种对端组播IPsec发现机制,该机制不仅能发现对端组播IPsec,动态建立IPsec隧道,还能实时检测对端组播IPsec的动态加入、动态更换、动态撤离。
参考文献:
[1] 郭慧.IPSec的NAT穿越技术应用 [J].自动化应用,2024,65(10):282-284.
[2] 王格.基于网络仿真平台的GRE over IPsec VPN设计与实现 [J].信息记录材料,2024,25(1):169-171.
[3] 姜鹏博,王纲领,康彬,等.基于GDOI的特定源组播加密方案 [J].通信技术,2021,54(7):1726-1733.
[4] 李旭阳.软件定义网络组播安全机制的设计与实现 [D].北京:北京交通大学,2020.
[5] 张坤银.基于IPSec技术的可变情报板信息发布安全加密系统 [J].中国交通信息化,2023(6):126-129.
[6] 黄怀霖,常安,何珏,等.基于IPSec的网络数据安全传输模型设计 [J].电子设计工程,2023,31(13):137-140+145.
[7] 杨文祺.基于IKE的IPSec技术在软件定义切片网络中的安全应用 [D].武汉:华中科技大学,2019.
[8] FLUHRER S. Tunnel Endpoint Discovery [M].Cisco Systems,2001.
[9] 纪伟潇.SDN组播路由跳变防御方法研究与系统实现 [D].北京:北京邮电大学,2023.
[10] 张成,吴明曦,刘小娟,等.基于VxWorks的PIM-SM协议的改进设计 [J].通信技术,2023,56(12):1383-1389.
作者简介:高洋洋(1989—),男,汉族,河南许昌人,工程师,硕士,研究方向:网络安全;易恒(1990—),男,汉族,四川成都人,工程师,硕士,研究方向:网络安全;周华明(1989—),男,汉族,四川绵阳人,助理工程师,学士,研究方向:网络安全。