一种基于IPSec安全关联的网络报文路由转发和地址转换方法转让专利

申请号 : CN200810101195.3

文献号 : CN101499965B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈建军

申请人 : 沈建军

摘要 :

一种基于IPSec安全关联的网络报文路由转发和地址转换方法,把网络报文的地址转换、路由和转发与IPSec处理结合起来。该方法由连接本地网络和外部网络的网关系统实施,对经过网关系统的网络数据流进行三种模式之一的处理。在IPSec路由转发模式中,网关系统对于进入的网络报文,依据是否为IPSec报文、以及IPSec报文使用的安全关联确立目的(本地网络)节点和路由,并转发到目的节点;在IPSec处理及路由模式中,网关系统除了基于安全关联对进入报文做路由转发外,还对外出/进入报文进行IPSec处理;IPSec路由及地址转换模式较IPSec处理及路由模式增加了网络地址转换环节。

权利要求 :

1.一种基于IPSec安全关联的网络报文路由转发和地址转换方法,由连接本地网络和外部网络的网关系统实施,其特征在于,对经过网关系统的网络数据流进行以下三种模式之一的处理:a.模式A,IPSec路由转发模式:

对于从本地网络发送到外部网络的网络报文,即外出的网络报文,所述网关系统按常规方式传送到外部网络;

对于从外部网络接收的发往本地网络的网络报文,即进入的网络报文,所述网关系统依据报文是否为IPSec报文以及IPSec报文使用的IPSec安全关联确定报文的本地网络目的节点和路由,并转发到该节点;

b.模式B,IPSec处理及路由模式:

对于外出的网络报文,所述网关系统首先判定是否需要进行IPSec处理,若不需要处理则直接传送到外部网络,否则先选择适用的IPSec安全关联并应用于原始报文,再把得到的IPSec报文传送到外部网络;

对于进入的网络报文,所述网关系统首先检查是否为IPSec报文,若为合法的IPSec报文,则应用IPSec安全关联恢复原始报文,然后依据报文是否为IPSec报文以及IPSec报文使用的安全关联确定报文的本地网络目的节点和路由,并转发到该节点;

c.模式C,IPSec路由及地址转换模式:

除了完成模式B定义的处理外,模式C还对网络数据流做IP地址转换,对于外出的网络报文,所述网关系统先将报文的源IP地址替换为外部网络IP地址,再按照模式B定义的流程进行可能的IPSec处理和发送;

对于进入的网络报文,所述网关系统首先按照模式B定义的流程进行处理,在确立报文的目的节点和路由之后,先将报文的目的IP地址替换为其目的节点的本地网络IP地址,再转发到该节点;

采用模式A时,所述网关系统维护一张路由转发表,表中包含路由转发规则的集合,每项规则由一个本地网络节点标识、路由信息、和一个安全参数索引集合定义,其中安全参数索引集合属性为空值时对应于非IPSec报文,对于每个进入的网络报文,所述网关系统通过以下步骤确定路由及转发的目的节点:(1)检查报文是否是IPSec报文,若为IPSec报文,则从报文的各个IPSec报头中获取IPSec安全关联对应的安全参数索引集合,记为SPISet_In,若不是IPSec报文,则将SPISet_In设为空值;

(2)使用SPISet_In检索路由转发表,如果找到一条路由转发规则的安全参数索引集合属性值与SPISet_In相同,则把该规则指定的本地网络节点作为报文的目的节点,否则若无法找到匹配的路由转发规则,则丢弃报文;

采用模式B和模式C时,所述网关系统维护一个IPSec安全策略库和一个安全关联库,安全策略库中包含IPSec安全策略的集合,每条策略规定对一类网络报文应采取的操作,可为:禁止传输、绕过IPSec、或特定的IPSec处理,安全关联库中包含当前有效的IPSec安全关联集合,每个安全关联属于一个本地网络节点,对于每个外出的网络报文,所述网关系统通过以下步骤进行处理:(1)基于报文信息,包括:本地网络节点、目的IP地址、源端口号、目的端口号、协议、传输方向,从安全策略库中检索匹配的IPSec安全策略;

如果是采用模式C,还需要把报文的源IP地址替换为所述网关系统具有的外部网络IP地址;

(2)若不存在匹配的IPSec安全策略或策略为绕过IPSec,则跳过步骤(3)直接发送到外部网络,若匹配的策略要求进行IPSec处理,则进入步骤(3),若匹配的策略为禁止传输,则丢弃报文并终止发送过程;

(3)从安全关联库中查找与IPSec安全策略指定的处理方式、以及发出报文的本地网络节点相匹配的IPSec安全关联,先应用于原报文再把得到的IPSec报文发送到外部网络;

采用模式B和模式C时,对于每个进入的网络报文,所述网关系统通过以下步骤进行处理并确定转发的目的节点:(1)首先判断报文是否是IPSec报文,若为IPSec报文,则从安全关联库中查找报文使用的IPSec安全关联,如果报文应用了多个安全关联则要求它们所属的本地网络节点一致;

(2)若报文不是IPSec报文,则用一个预先设定的本地网络节点作为报文的目的节点,若为IPSec报文但没有匹配的安全关联,则用另一个预设的本地网络节点作为报文的目的节点并在以后的处理过程中视该报文为非IPSec报文,若为IPSec报文并且已经找到匹配的安全关联,就将安全关联所属的本地网络节点作为报文的目的节点;

(3)基于报文信息,包括:源IP地址、本地网络节点、源端口号、目的端口号、协议、传输方向,从安全策略库中查找IPSec安全策略,若存在匹配的策略且策略为禁止传输、或者策略规定的IPSec处理方式与报文不兼容,则丢弃报文并终止接收过程,若报文符合策略要求、或不存在匹配的策略,则进入步骤(4);

(4)若报文是IPSec报文并且找到匹配的安全关联,应用安全关联恢复原始报文;

如果是采用模式C,本步骤还要把报文的目的IP地址替换为目的节点的本地网络IP地址。

2.根据权利要求1所述的方法,其特征在于,所述安全关联库中的IPSec安全关联可以是事先配置好的,也可以是在安全关联库检索无法找到匹配的安全关联时,由系统发起安全关联协商建立并加入安全关联库中。

3.根据权利要求1所述的方法,其特征在于,一个本地网络节点可以是:局域网内具有独立IP地址的主机或网络设备、局域网内具有独立MAC层地址的主机或网络设备、具有其它独立网络标识的网络设备;所述网关系统与本地网络的连接也可以有多种形式,包括:网关系统与本地网络节点组成一个局域网、网关系统通过多个网络硬件接口或端口与不同的本地网络节点连接;相应地,一个本地网络节点可能由其IP地址、MAC地址、网络硬件接口或端口标识。

说明书 :

一种基于IPSec安全关联的网络报文路由转发和地址转换

方法

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及网络层安全(IPSec)技术、网络报文路由及地址转换技术。

背景技术

[0002] 网关系统(可由主机加网关软件、或路由器等专用网络设备实现)通常都应用网络地址转换(NAT)技术,连接内部局域网和外部网络并转发网络报文。NAT的基本原理是在网络报文经过网关时进行地址转换,把外出报文的源地址替换为外部网络可用的地址,而把进入报文的目的地址替换为内部局域网地址。关于NAT技术,可参考IETF RFC3022:TraditionalIP Network Address Translator(Traditional NAT)。
[0003] NAT分为基本NAT和网络地址端口转换(NAPT)两类。基本NAT只对报文的IP地址进行变换,把一组外网IP地址映射到内部局域网中的节点。采用这种方式,在同一时刻只能把数量有限的外网地址映射到相同数量的内网节点,而其它节点将不能正常访问外部网络。NAPT是应用更多的一种方式,除了IP地址外还对报文的端口信息做变换。采用这种方式,能够把数量有限的外网IP地址映射到更多的内网节点。
[0004] NAT破坏了Internet端到端透明的设计理念,主要适用于客户/服务器模型的应用,而不适合P2P应用模型。由于NAT需要修改原始报文,因而与要求验证报文完整性的安全协议(如IPSec协议)不能兼容。NAPT虽然提供了更好的灵活性,但是仍然无法解决多个内部网络节点需要并发地共享相同外部网络端口的情况,而很多应用协议都缺省或强制使用固定的端口号(例如:ISAKMP协议要求通信双方都必须使用UDP端口500)。
[0005] IPSec技术在网络层保障网络通信安全,使用封装安全负载(ESP)和认证头(AH)协议来提供IP报文的机密性和完整性保护、以及起源认证。在基于IPSec的虚拟专用网(VPN)应用中,一个专有网络可能被不可信网域分离为多个部分,IPSec网关对本地和远程专有网络之间、穿越不可信网域的网络数据流实施IPSec处理。此时,网络报文的IPSec处理、NAT处理和路由一般是相互独立的分离过程。例如,对于进入本地网络的报文,网关系统先进行IPSec处理恢复原始报文,再将报文转入NAT和路由环节。通常,基于报文的IP地址和端口信息做NAT转换,基于IP地址等建立路由,IPSec信息并未被加以利用。实际上,IPSec处理环节通常也包含(与NAT转换和路由选择环节中相似的)基于IP地址和端口号的检索过程,用于查找适用的IPSec安全策略和安全关联。
[0006] IETF RFC3947:Negotiation of NAT-Traversal in the IKE 和 RFC3948:UDP Encapsulation ofIPSec ESP Packets提出IPSec网络报文穿越NAT的建议方案。其中,RFC3947描述用于IPSec安全关联协商的IKE(Internet Key Exchange)对NAT穿越的支持;RFC3948描述如何通过UDP封装来实现IPSec ESP报文的NAT穿越。采用上述UDP封装方案,密钥或安全关联协商只能通过支持NAT穿越的IKE完成;并且实现复杂,通信双方必须定期发送NAT保活报文,确保网关系统上的NAT信息记录不被老化,一旦系统故障重启或异常必须重新建立安全关联。此外,该技术目前仅能支持ESP协议,而不支持AH协议。

发明内容

[0007] 本发明提出一种把网络报文的地址转换、路由和转发与IPSec处理结合起来的方法,主要思路是基于IPSec安全关联确立报文的路由和转发目的、并进行地址转换,又分为三种模式:模式A-IPSec路由转发模式,模式B-IPSec处理及路由模式,模式C-IPSec路由及地址转换模式。
[0008] 假设一个网关系统连接本地网络和外部网络。在模式A中,网关系统对于从外部网络进入的网络报文,依据是否为IPSec报文、以及IPSec报文使用的安全关联进行路由并转发到目的(本地网络)节点,但并不做IPSec处理和地址转换。采用此模式,进入报文的转发目的和路由都基于IPSec安全关联确立,而非常规的基于IP地址和端口号的方式,本地网络节点因而能够并发共享有限的外网IP地址及端口,克服了普通NAT技术的IF地址和端口共享冲突问题;因为路由转发过程不涉及地址转换,故不会影响报文的完整性校验。此模式下网关系统不执行IPSec处理,需要由本地网络节点自己(或使用一个单独的设备)负责IPSec处理以及安全关联配置,并且保证从IPSec安全关联组合到本地网络节点的映射不出现冲突。
[0009] 采用模式A时,网关系统维护一张路由转发表,表中包含路由转发规则的集合,每项规则由一个本地网络节点标识、路由信息、和一个安全参数索引(SPI)集合定义,其中SPI集合属性可为空值。对于每个进入的网络报文,网关系统通过以下步骤确定路由及转发的目的节点:
[0010] (1)检查报文是否是IPSec报文,若为IPSec报文,则从报文的各个IPSec报头中获取IPSec安全关联对应的安全参数索引集合,记为SPISet_In,若不是IPSec报文,则将SPISet_In设为空值。
[0011] (2)使用SPISet_In检索路由转发表,如果找到一条路由转发规则的安全参数索引集合属性值与SPISet_In相同,则把该规则指定的本地网络节点作为报文的目的节点;否则若无法找到匹配的路由转发规则,则丢弃报文。
[0012] 在模式B中,网关系统除了基于IPSec安全关联对进入的网络报文做路由转发外,还对外出/进入报文进行IPSec处理。不同于普通IPSec网关,此模式下进入报文的路由转发与IPSec处理不是分离的环节,路由和转发目的确立直接利用了报文的IPSec安全关联信息,而不是再次重复基于IP地址和端口号的检索,同时也使得本地网络节点能够并发地共享外网端口。
[0013] 模式C较模式B增加了网络地址转换环节,对于外出的网络报文,网关系统先把源IP地址替换为外网IP地址,再依据IPSec安全策略应用与源(本地网络)节点的匹配的安全关联进行处理;对于进入报文,网关系统在完成IPSec处理之后,依据原报文是否为IPSec报文、以及使用的安全关联确定报文的目的(本地网络)节点和路由,并在转发报文前将目的IP地址替换为该节点的本地网络地址。此模式下,本地网络使用局域IP地址,网关系统的作用类似于普通IPSec VPN网关。所不同的是,进入报文的地址转换和路由转发都依据IPSec处理环节得到的安全关联信息,而非基于IP地址和端口号映射。
[0014] 采用模式B和模式C时,网关系统维护一个IPSec安全策略库(SPD)和一个安全关联库(SAD)。SPD中包含IPSec安全策略的集合,每条策略规定对一类网络报文应采取的操作,可为:禁止传输、绕过IPSec、或特定的IPSec处理。SAD中包含当前有效的IPSec安全关联集合,每个安全关联属于一个本地网络节点。对于每个外出的网络报文,网关系统通过以下步骤进行IPSec处理和地址转换:
[0015] (1)基于报文信息,包括:本地网络节点、目的IP地址、源端口号、目的端口号、协议、传输方向,从SPD中检索匹配的IPSec安全策略。
[0016] 如果是采用模式C,还需要把报文的源IP地址替换为所述网关系统具有的外部网络IP地址。
[0017] (2)若不存在匹配的IPSec安全策略或策略为绕过IPSec,则跳过步骤(3)直接发送到外部网络;若匹配的策略要求进行IPSec处理,则进入步骤(3);若匹配的策略为禁止传输,则丢弃报文并终止发送过程。
[0018] (3)从SAD中查找与IPSec安全策略指定的处理方式、以及发出报文的本地网络节点相匹配的IPSec安全关联,先应用于原报文再把得到的IPSec报文发送到外部网络。
[0019] 另一方面,模式B和模式C中,对于每个进入的网络报文,网关系统通过以下步骤进行IPSec处理和地址转换并确定转发的目的节点:
[0020] (1)首先判断报文是否是IPSec报文,若为IPSec报文,则从SAD中查找报文使用的IPSec安全关联,如果报文应用了多个安全关联则要求它们所属的本地网络节点一致。
[0021] (2)若报文不是IPSec报文,则用一个预先设定的本地网络节点作为报文的目的节点;若为IPSec报文但没有匹配的安全关联,则用另一个预设的本地网络节点作为目的节点并在其后的处理过程中视为非IPSec报文;若为IPSec报文并且已经找到匹配的安全关联,就将安全关联所属的本地网络节点作为报文的目的节点。
[0022] (3)基于报文信息,包括:源IP地址、本地网络节点、源端口号、目的端口号、协议、传输方向,从SPD中查找IPSec安全策略,若存在匹配的策略且策略为禁止传输、或者策略规定的IPSec处理方式与报文不兼容,则丢弃报文并终止接收过程;若报文符合策略要求、或不存在匹配的策略,则进入步骤(4)。
[0023] (4)对于找到匹配的安全关联的IPSec报文,应用安全关联恢复原始报文。如果是采用模式C,本步骤还要把报文的目的IP地址替换为目的节点的本地网络IP地址。
[0024] 本发明所诉方法可适用于不同形式的本地网络,本地网络节点可以是:局域网内具有独立IP地址的主机或网络设备、局域网内具有独立MAC层地址的主机或网络设备、具有其它独立网络标识的网络设备。网关系统与本地网络的连接也可能有多种形式,包括:网关系统与本地网络节点组成一个局域网、网关系统通过多个网络硬件接口或端口与不同的本地网络节点连接。对于后一种情况,本地节点标识应该与网关系统的硬件接口绑定,在建立路由时得到进入报文的转发硬件接口,并将报文通过该硬件接口转发到目的节点。
[0025] 模式A和模式B不进行网络报文的地址转换,本地网络节点直接使用外网IP地址,本地网络节点也可能实际代表一个子网,由子网的网关对进出子网的报文实施地址转换。一种特殊情况是,所有本地节点都共享唯一的外网IP地址,此结构实质上把一个外部网络节点多实例化,可用于搭建安全网络(见图4和具体实施方式一节说明)。
[0026] 模式B其实也可用于计算机系统内部的网络报文路由,此时相当于把系统的网络端口多实例化,而本地网络节点对应于系统内进行网络通信的进程并相应地由进程号标识。在普通操作系统的网络应用程序接口(如套接字接口)实现中,网络地址和端口号与通信进程绑定,依据网络报文的目的IP地址和端口号确定接收进程。而以模式B的方式,将依据IPSec关联来确定报文的接收进程,这样多个进程可以并发地共享系统的网络端口。该技术可应用于安全系统,为系统的各个安全隔离域创建一份网络端口的虚拟视图。
[0027] 模式C中的网关系统能够取代普通网关实现本地局域网与外部网络的互连,尤其适合搭建VPN网络。

附图说明

[0028] 图1描绘了IPSec路由转发模式下的网络报文处理流程。
[0029] 图2描绘了IPSec处理及路由模式下的网络报文处理流程。
[0030] 图3描绘了IPSec路由及地址转换模式下的网络报文处理流程。
[0031] 图4描绘了利用本发明所述方法构建多级安全网络的实例。图中的多级安全网络被不可信的外部网域分隔为两部分A和B,A部分包括m个不同安全级别的子网A1-Am,B部分包括n个不同安全级别的子网B1-Bn,A部分和B部分各通过一个安全网关系统与外部网络连结。视安全网络的内部结构情况,安全网关可以采用本发明所述三种处理模式之一,对于进入的网络报文,依据IPSec安全关联确定安全级别和目标子网,并转发到该子网;(若采用IPSec处理及路由模式或IPSec路由及地址转换模式)对于外出的报文,依据报文的安全级别选择并应用合适的安全关联。通过这种方式,在两部分安全网络之间建立了穿越不可信网域的虚拟连接,并且整个安全网络内的多级安全策略维持一致。

具体实施方式

[0032] 本发明所诉方法可由多种类型的网关系统实施,可以是普通主机加网关软件的软件方式,也可以是专用网络设备的硬件方式。对网络报文的处理过程可以通过IPSec及路由协议栈的扩展实现,需要扩充普通IPSec实现的SPD和SAD定义,以记录IPSec安全策略和安全关联与网络节点的关联;还需要修改相关配置工具,以支持IPSec安全策略和安全关联的配置管理。
[0033] 根据网络体系结构和网关系统连接方式的不同,进入报文的路由转发的具体实施方式也不同。若网关系统与本地网络节点处于同一个局域网,那么它只需要(如同普通网关)设置报文的MAC层目的地址并传送到局域网中,就能完成报文转发;而若网关系统通过多个的网络硬件接口或端口与不同本地网络节点相连结,那么在转发报文前还必须先确立路由,把报文从吻合的硬件接口发往目的节点。
[0034] 取决于实际应用的网络结构与形式,一个本地网络节点可能相应地由:局域网IP地址、MAC地址、硬件接口、应用进程(对应于操作系统内部网络报文路由的情况)等标识。
[0035] 模式A和模式B可应用于搭建安全网络。例如,在一个多级安全网络中,每个网络节点(或子网)具有不同的安全级别,网关系统的实际工作是基于IPSec安全关联判断进入报文的安全级别并将之导向相同级别的本地节点;而外出报文将应用与其安全级别匹配的安全关联,并且检查源本地节点是否准许进行这样的网络通信。又如,服务商可把用户分类,每类用户获得不同质量和内容的服务,用户使用服务商分配的IPSec安全关联建立到达服务站点的安全通道,而服务站点的网关系统依据安全关联确定用户类型并将服务请求导向对应的服务节点。采用这种方式,能够对外部屏蔽安全网络的内部结构,还能够将跨越不可信网域的多个子安全网络连接起来,并维持整个安全网络范围内的策略一致性。
[0036] 模式B其实也可用于操作系统内部网络报文到接收进程或隔离域的路由。此时,进程或(或隔离域)对应于内部网络节点,将依据IPSec关联来确定报文的接收进程(或隔离域),这样多个进程(或隔离域)可以并发地共享系统的网络端口。
[0037] 模式C中的网关系统能够取代普通网关实现本地局域网与外部网络的互连,尤其适合搭建VPN网络。此时,本地网络使用局域IP地址,网关系统的作用类似于普通IPSec VPN网关。所不同的是,进入报文的地址转换和路由转发都依据IPSec处理环节得到的安全关联信息,而非基于IP地址和端口号映射。