防止来自网络地址端口转换器所服务的客户机的重复源的制作方法

文档序号:7636782阅读:202来源:国知局

专利名称::防止来自网络地址端口转换器所服务的客户机的重复源的制作方法
技术领域
:本发明一般地涉及因特网连网,并且具体而言,涉及由网络地址和端口转换所引起的寻址冲突。
背景技术
:文中所描述的问题和解决方案均是就形成因特网通信的基础的TCP/IP协议和因特网方面来描述的。然而,取决于协议的细节,该技术同样也可以应用于其它的通信协议。使用因特网网络地址转换有几个原因。主要原因是节省公共地址的使用。网络地址转换器(NetworkAddressTranslator,NAT)的网际协+义(IP)地址通常是7>共地址。也就是,对外界来说NATIP地址是已知的,而在NAT之后的服务器和客户机的所有地址却是专用地址,对外界来说是不可知的。在这样的情况下,外界与NAT进行通信,并且NAT控制与其后的适当服务器和客户机的通信。这就意味着在NAT之后的设备的IP地址仅需在该族(family)内是唯一的,但在其它地方却可以是重复的其它的IP地址。NAT仅涉及IP地址的转换。还有被称为网络地址端口转换(NetworkAddressPortTranslation,NAPT)的另外的转换类型,在该转换中,IP地址和端口号均被转换。在题为"TraditionalIPNetworkAddressTranslation"的因特网工程任务组(IETF)RFC3022中阐述了用于网络地址转换(NetworkAddressTranslation,NAT)和网络地址端口转换(NAPT)的标准。并没有将安全作为主要因素来i殳计最初的因特网。事实上,特意将因特网构造得相对开放来作为对科学和教育通信的辅助。然而,Web的出现及其商业使用已经增加了对安全的因特网通信的需要。针对这些问题定义了通常被称为IPsec的因特网安全协议(InternetSecurityProtocol)。例如,IPsec提供了对网络设备的认证和/或对传输数据的加密。依照安全关联(securityassociation,SA)来管理源与目的地址之间的IPsec通4言,安全关联(SA)是定义应用于通信的IPsec处理的一个或多个规则。在RFC2401和其它的RFC中定义了IPsec。通过将分组的属性与安全策略数据库(securitypolicydatabase,SPD)中的安全规则相匹配来确定是否拒绝分组、在没有IPsec处理的情况下准许分组或者在有IPsec处理的情况下准许分组。为了做出该确定,现有技术以输出和输入分组这二者的最具体到最不具体的属性的顺序来搜索静态和动态两种规则。静态规则的集合实际上是安全策略。静态规则被预定义并且通常并不经常变化。动态规则是在IKE(InternetKeyExchange,因特网密钥交换)处理期间在节点之间协商的并且根据需要以动态方式添加到安全策略数据库的规则。国际商业机器/>司的美国专利6,347,376描述了一种搜索SPD的静态和动态规则的优选方法。在此通过引用的方式将该专利的全部内容并入本说明书。在网络地址或端口转换与IPsec处理之间存在固有的不兼容性。这些不兼容性是部署IPsec的障碍。RFC3715承认并讨论了这些不兼容性中的一些,但却没有提供一般的解决方案。例如,RFC3715的第4.1节涉及RFC3456中所提议的限制解决方案,"DynamicHostConfigurationProtocol(DHCPv4,ConfigurtionofIPsecTunnelMode)",但却声明需要更一般的解决方案。另外,来自IETF的IPsec工作组的题为"UDPEncapsulationofIPsecESPPackets"的RFC3948的第5节也针对一些不兼容性问题。特别地,RFC的第5.2节简要描述了关于确定在通往由NAT所服务的客户机的连接上将使用什么IPsec安全关联方面的问题。该节还描述了关于当NAPT也处理IPsec通信量时允许通往该NAPT之后的客户机的明文连接方面的另一问题。因而需要解决当客户机由NAPT服务时避免重复源(duplicatesource』的问题。任何相关的IETFRFC文献均没有提供对该问题的解决方案。对本说明书来说,重复源;故定义为具有相同的源地址(例如,分派给IPsec封装原始分组的NAPT的IP地址)、相同的传输协议和相同的原始源端口号(即,在IPsec封装分组的传输才艮头(transportheader)中的端口号)的分组。重复源导致对网络完整性形成打击(breech)的重复连接。例如,可能将分组发送至错误的目的地。题为"NegotiationofNAT画TraversalintheIKE"的RFC3947描述了在IKE(因特网密钥交换)阶段1和2中需要用于NAT遍历支持的内容。这包括检测在分组通信中的两端是否支持NAT遍历,以及检测沿从主机到主机的路径是否存在一个或多个NAT.其还涵盖如何协商在IKE快速模式中使用用户数据报协议(UDP)封装的IPsec分组,并且描述了如何在需要时将原始源IP地址传输至另一端。在RFC768中定义了UDP。RFC3948"UDPEncasulationofIPsecESPPackets"定义了出于遍历NAT的目的在UDP分組内部封装和拆封ESP(封装安全有效栽荷)分组的方法。在RFC2406中定义了ESP。ESP被设计成在IPv4和IPv6中提供混合安全服务。
发明内容本发明相应地提供用于在使用源地址、协议和源端口号以标识由NAPT所服务的源应用的连接中防止分组的重复源。当在服务器处接收到分组的时候,对关于所述分組是否是封装了ESP分组的UDP分组进行确定,其中所述ESP分组的传输路径含有网络地址端口转换器(NAPT)。在这样的情况下,拆封原始分组以获得原始源端口和原始传输协i义。为了与NAPT源IP地址和转换的源端口号关联的原始传输协议、所述原始源端口号,以及所述NAPT源IP地址之间的关联而搜索源端口映射表(sourceportmappingtable,SPMT)。如果找到不正确的关联,则所述分组由于代表非法重复源而被拒绝;也就是说,来自由NAPT所服务的不同主机的第二分组具有相同的源IP地址、源端口号和协i义。在优选的实施例中,响应于来自因特网主机的因特网密钥交换(IKE)消息,动态构建在服务器处的SPMT中的网络地址端口转换器(NAPT)主机条目。每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口。当加密分組到达并且被解密时动态构建所述SPMT中的源端口条目,并且在所述源端口条目与所述SPMT的NAPT主机条目之间建立关联。每个源端口条目均含有NAPT的源IP地址、原始源端口号和原始协议。现参照以下附图,仅借助于例子来描述本发明的优选实施例,其中图1示出了M户机经由NAPT前进到目的主机的分组,以及当该分组前进时对分组l艮头和内容的改变;图2示出了响应于图1的分組的返回分组;图3示出了源端口映射表(SPMT)的说明性实施例;图4示出了封装加密原始分组的NAPT转换分组;图5示出了解密后的图4的分组;图6和7分别对应于图4和5,并且示出了与较早分组在相同路径上的笫二分组,其代表由在传输路径中包括NAPT所导致的非法重复源;图8是在SPMT中创建NAPT主机条目的流程图;图9是示出了在入站分组首先到达目的主机时可用的选项的流程图;图10是示出了对封装了加密原始分组并且已经穿过NAPT的入站分组的处理的流程图;以及图11和12是示出了处理不满足封装和穿过NAPT这两个条件的入站分组的可选方式的流程图。具体实施方式尽管文中所描述的本发明的实施例所涉及的问题在因特网传输中的传输模式和隧道模式下均存在,然而,所公开的实施例针对的是传输模式。将要描述的少量改动使得传输模式公开适于隧道4莫式下的^作。可以用软件或硬件或者软件和硬件的组合来实现本发明的实施例。此外,实施例可以采取计算机可用或计算机可读存储介质上的计算枳一呈序产品的形式,该计算机可用或计算机可读存储介质具有体现于由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的介质中的程序代码装置。在本文档的上下文中,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传输由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何装置。介质可以是,例如但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的例子(不完全列表)将包括具有一条或多条线路的电连接、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤,以及便携式光盘只读存储器(CD-ROM)。要注意,计算机可用或计算机可读介质甚至可以是其上印有程序的纸张或其它合适的介质,这是因为,可以通过例如光学扫描该纸张或其它介质来电子获取该程序,然后如果有必要的话,以适当的方式对该程序进行编译、解释或者其它处理,并且继而将其存储在计算机存储器中。在本^L明书中,类似的标号始终指的是类似的元件。IPsec处理可以用于出于安全的目的对分组的内容进行认证或加密。可以将认证和加密均应用于分组或者可以单独应用其一。为了简化这一表示,对IPsec处理的描述就加密和解密方面讨论了分组的封装和拆封。在单独应用或结合加密应用i人证的情况下,所描述的处理均同样有效。当将IPsec处理应用于来自源客户机的输出分组时,该处理加密原始源和目的端口以及协议字段,并且将该加密材料封装到UDP分组中。原始客户机源IP地址保留在UDP分组中,但是源端口号净皮设置成4500,如RFC3948"UDPEncapsulationofIPsecESPpackets"所规定的。如果UDP分组然后穿过NAPT,则NAPT进行进一步的变换。下面关于图1和图2对这些变换详细进行了描述。具体地,NAPT用其自己的IP地址来取代客户机源IP地址,分派新的唯一端口号给UDP报头,并且保持对这些转换的跟踪,以便可以将返回分组映射到原始源。RFC3948描述了这样的方案,即在该方案中,在TCP或UDP分組中的原始源端口号并未^皮NAPTi殳备改变,由于其是原始传输报头的一部分,该原始传输报头现在^:加密为IPsecESP有效载荷的一部分。而被添加用于UDP封装的UDP报头中的端口号却被改变,如以上所提及的。当这样的IPsec分组^J艮务器接收并且被解密时,便揭示出该分组的原始源和目的端口。对于没有通过IPsec处理的分组来说,NAPT设备转换原始源IP地址和源端口。对于未加密分组来说,NAPT确保没有重复连接(重复源)。图1示出了/^户机10.1.1.1经由NAPT210.1.1.1和NAT211.1.1.1到目的主机ll丄l.l的分组前进以及当分组前进时对分组报头和内容的改变。图2说明了在相反方向上(从服务器到客户机)的返回分组的前进。参照图1,在IP地址10.1.1.1处的客户机发送以IP地址11.1.1.1处的服务器为目的地的加密分组。在100处示出了分组在由IPsec处理之前的原始内容。100的左栏描述了分组的字段类型,而右栏示出了字段内容。注意到,在100处的目的IP地址是211.1.1.1,其是真实的目的服务器11.1.1.1前面的NAT的乂/^共地址。NAT211.1.1.1的职责是将分组映射到诸如11.1.1.1的其后端服务器。在100处,分别将源和目的端口说明性地i殳置成4096和21。在102处示出了在IPsec处理之后分组的内容。在分组102底部的浅阴影部分i兌明由IPsec加密的部分。102中较深的阴影部分(以及在传输路径的其它点处的分组内容)说明在传输中已经改变的或者已在该点处净皮添加的字段。在102处,真实的源和目的端口由IPsec加密4096和21的值,并且在该点不可读。IPsec处理已经添加了UDP报头以指示这是封装了原始客户机分组的端口和协议的IPsec分组。按照RFC3948中的规定,将IPsec所添加的明文UDP才艮头中的源和目的端口i殳置成4500。将SPI(安全参数索引)字段说明性地设置成256。SPI字段,连同安全协议和目的地址一起指向客户机10.1.1.1与服务器11.1.1.1之间的安全关联,该安全关联管理这些实体之间的加密算法和其它的安全参数。由IP地址210.1.1.1处的NAPT来转换102处的分组以产生104处所示的分组。在该点处,NAPT210.1.1.1已经改变了源IP地址以反映其自己的地址210.1.1.1。NAPT还设置了新的唯一的源端口号。在图1中,将所选择的源端口号说明性地从4500改变成4501。NAPT210.1.1.1为来自月良务器11.1.1.1的返回分组以及为来自客户机IP10.1.1.1和源端口4500的将来的出站分組保持对这一转换的跟踪。由NAT211.1.1.1将104处的分组重新转换成服务器11.1.1.1的输入分组。在106处示出了该输入分组。实际上,由NAT211.1.1.1将该分组的目的IP地址映射成目的服务器的真实目的地址11.1.1.1。对该分组的IPsec处理移除了在源10.1.1.1处由IPsec处理所添加的UDP报头,并且'恢复真实的源和目的端口号。然后,如108处所示,将恢复的分组传递至目的端口(在该例中是21)用于应用处理。为了完整起见,图2示出了从服务器211.1.1.1到原始客户机10.1.1.1的返回分组流。不需要以任何详细的方式讨论该分组流,因为对于返回分組来说,本发明的实施例所处理的重复源问题不会发生。再次参照图1,在108处的分组含有作为源地址的NAPT的地址210.1.1.1和源端口号4096。然而,在NAPT210.1.1.1之后的另一客户机,比方说10.1.1.2,也有可能从源端口4096向主机11.1.1.1发送分组。因此,由于在客户机10.1.1.1与主机11.1.1.1之间的路径中存在NAPT,可能会有导致冲突的非法重复源。源端口映射表(SPMT)用于检测重复源,在其中从NAPT所服务的客户机或服务器接收分组。在图3中的300处示出了说明性SPMT。当建立了IPsec安全关联的时候,随着在服务器处接收因特网密钥交换(IKE)分组而动态构建该表。参照图3,当IKE协商遍历NAPT的IPsec安全关联时,TCP/IP栈被通知创建诸如302的NAPT主机条目以表示远程客户机(其由NAPT表示)。该条目含有NAPT的源IP地址(在该例中是210.1.1.1)以及由NAPT分派给该客户机的源端口(在该例中是4501)。图3示出了具有相同的NAPTIP源地址210.1.1.1和由该NAPT所分派的不同源端口4502的第二说明性NAPT客户机304。在SPMT300的右侧是源端口条目。当IPsec编码分组到达且对其不存在现有条目时创建这些条目。添加源端口条目的过程发生在已发生IPsec解密之后。当创建源端口条目时创建将源端口条目映射到NAPT主机条目的关联306。当删除属于NAPT主机条目的最后的安全关联时,移除该条目。当分组到达并且被解密时,源NAPT地址、原始分组的源端口和原始分组的协议可用。搜索SPMT的源端口条目中关于这些属性的匹配。如果找到了匹配,则检查关联的NAPT主机条目中关于NAPT源地址和NAPT所分派的源端口的匹配。如果这些后面的属性不匹配,这就意味着源NAPT之后的两个客户机正在试图^f吏用相同的源端口号。这代表重复源并且第二分组被拒绝。如果这些后面的属性匹配,那么该分组;陂允许。图4至图7有助于说明以上讨论。图4示出了来自源NAPT的分组。为了说明,分别假设客户机地址和端口为10.1.1.1和4096。400是由NAPT所更新的IP报头。其含有NAPT地址210.1.1.1和主机目的主机地址11.1.1.1。402是由IPsec处理所添加的并且由NAPT所更新的封装UDP报头。已经由NAPT将源端口4500改成4501。404含有由IPsec处理所添加的封装安全协议(ESP)报头。TCP传输报头406含有原始客户机源和目的端口4096和21。408含有有效载荷数据,该有效载荷数据后跟随ESP才^C(trailer)。依照IPsec处理来加密传输才艮头406和有效载荷408。图5表示在目的主机处解密之后图4的分组。现注意到,现在从字段506可获得客户机源端口4096和协议(TCP),以及源NAPT地址210.1.1.1(从分组字段500)。使用这些属性来搜索SPMT300的源端口条目。在该例中,在308处找到匹配。对应的关联306指向NAPT主机条目302。源NAPT地址210.1.1.1和NAPT源端口4501匹配于该分组(从输入分组的字段402可不受阻碍地获得NAPT源端口4501)。因而,该分组与正确的连接关联,并且被接受。图6和图7表示将净皮拒绝的、第二到达的重复源分组。这是因为,虽然来自字段700的NAPT源地址210.1.1.1、来自字段706的协议,以及源客户机端口4096匹配于SPMT300的源端口条目308,但是关联的NAPT条目302并不匹配于来自输入分组的字段602的、NAPT所分派的端口号4502。现在结合适当的流程图在下面更加详细地解释该过程。图8说明了在IKE协商期间对SPMT300的NAPT主机条目的初始化。在步骤802处表示IKE协商。在协商之后,步骤804向TCP/IP栈发送通知,以便在SPMT300中创建关联的NAPT主机条目。该通知含有从IKE流检索到的端口号和NAPT源地址。当数据分组到达目的主机时,图9开始检测重复源的过程。步骤902确定输入分组是否含有封装在UDP报头中的ESP分组,并且该UDP才艮头中的源端口不是预定义的UDP封装端口4500。如果以上为真,那么该分组正在使用IPsec来加密或认证,并且在传输路径中涉及NAPT。如果分组正在使用具有目的端口4500的UDP协议,并且最初四个字节含有非零数据,那么将该分组标识为UDP封装的ESP分组。如果在步骤902处的答案是否定的,那么存在两个可选的处理选项,步骤904处的选项1和步骤906处的选项2。下面对这二者进行讨论。假i更在卯2处的答案为是,那么908在图10中的A处继续。在图10中,步骤1002进^f亍所需的IPsec处理来解密分组。结果,如以上所解释的,不受阻碍地获得了NAPT源地址、原始客户机源端口号,以及协议。步骤1004搜索关于这些属性的、SPMT300的源端口条目。在1006处,如果没有找到匹配,则在步骤1008处创建源端口条目,并且对分组的入站处理正常继续。如果在步骤1006处找到了匹配,那么步骤1010使用对应的关联306,以^f更将NAPT所分派的源地址和来自对应的NAPT主机条目的端口号与来自解密分组的相同属性进4亍比较。如果该比较失败,则在1011处拒绝分组。如果获得匹配,则分组处理在1012处照常继续。来自图9的选项1和2表示这样的情况,即在该情况下,不受阻碍地发送分组(无IPsec处理)或者在路径中没有地址转换(NAPT)。然而,重复源仍是可能的。可选的选项1和2均检测这样的复制分组。选项1的处理开始于图11的B处。该选项通过SPMT表300处理所有的数据分组。这是通过添加被指定为"NOIPSEC/NAPT"的另外的单个NAPT主机条目来完成的。当分组到达时,如以上所解释的,搜索SMPT300的源端口条目。如果没有找到匹配,则在1106处创建源端口条目并且将其与"NOIPSEC/NAPT,,NAPT主机条目相关联。如果在1104处找到了匹配的源端口条目,则步骤1110确定对应的关联306是否指向"NOIPSEC/NAPT"NAPT主机条目。如果是的话,则在步骤1108处允许该分组。否则,在1112处拒绝该分组。该选项l的优点是简单。其缺点是通过SPMT表300处理所有的数据通信量。选项2使用入站IPsec分组过滤来拒绝重复源分组。一旦IPsec在主机处就位,就通过IPsec规则表(SPD)来处理所有的分组,不管任何分组是否密。这用来检验在给定连接上的未加密分组实际上被管理该连接的IPsec规则所允许。选项2过程开始于图12的C处。在步骤1202处通过IPsec规则表(未示出)来处理输入分组。从前述美国专利6,347,376可以确定如何在优选实施例中完成这一过程的例子。在此通过51用的方式将该专利的全部内容并入本说明书。如果分组祐力口密(步骤1204),那么步骤1206确定管理IPsec规则是否要求加密。假设是这种情况,则在1208处允许该分组。否则,在1210处拒绝该分组。如果在步骤1204处该分组未加密,那么在1212处确定管理IPsec规则是否允许未加密分组,并且相应地允i午或拒绝该分组。在隧道才莫式中,IPsecSA不一定是端到端的。例如,可以在主机与服务多个客户机或服务器的网关之间协商SA。在隧道模式中,单个NAPT地址(其是UDP封装报头中的源IP地址)可以潜在地表示多个主机。在隧道模式中,分组的封装、加密部分含有源的原始IP地址以及传输报头这二者。对于本说明书来说,在隧道4莫式中,源的原始IP地址被称为内部源IP地址。因为内部源IP地址并不是全球唯一的,所以其对分組路由或者对表示连接的源来说是不可用的。如以上对传输^t式所描述的,原始源端口(例如含于SPMT300的源端口条目中),以及单独具有UDP端口的封装源IP地址可能并不唯一。为了处理该问题,将含有内部源IP地址的附加字段添加到图3中的SPMT300的源端口条目(例如,308)。内部源IP地址(在传输;f莫式中不可用)在与源端口条目的其它值组合时产生用于隧道模式IPsecSA所保护的主机的唯一标识符。作为步骤1008的一部分,将内部源IP地址添加到源端口条目。当隧道模式分组到达时,如步骤1004中所描述的,搜索SPMT的源端口条目以找到NAPT主机条目的关联,并且步骤1010,除了已经描述的之外,检验从解密分组所获得的内部源客户机IP地址与源端口条目中的客户机IP地址相同。如果该检验失败,则拒绝该分组。对本领域的技术人员将显而易见的是,优选实施例可以具有很多小的变化。例如,ICMP协议不使用端口号;而是使用了查询标识符。就按照公开并请求保护的本发明而言,查询标识符等同于端口号。权利要求1.一种在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的方法,其包括a)在服务器处接收分组,b)确定所述分组是否已经被网络地址端口转换器转换并且含有IPsec封装分组,c)如果所述分组已经被转换并且含有IPsec封装分组,则处理所述分组以获得原始连接信息,并且搜索源端口映射表(SPMT)中NAPT转换的连接信息与所述原始连接信息之间的关联,以及d)如果步骤c)的结果揭示了重复源,则拒绝所述分组。2.根据权利要求l的方法,其中所述源端口映射表含有在协商客户机与服务器之间的安全关联时创建的NAPT主机条目,以及当非重复源分组到达且对其不存在具有用于检测重复源的、源端口条目与所述NAPT主机条目之间的映射的现有条目时创建的源端口条目。3.根据权利要求2的方法,其进一步包括在所述源端口映射表中建立NOIPSEC/NAPT主机条目,以表示在权利要求1的步骤b)失败的所有输入分组,以及为不具有源端口条目的所有这样的输入分组创建源端口条目,并且将所述源端口条目映射到所述NOIPSEC/NAPT主机条目,以及拒绝任何这样的输入分组,即所述输入分组在所述源端口映射表中已经具有未被映射到所述NOIPSEC/NAPT主机条目的源端口条目。4.一种在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的方法,其包括a)在服务器处接收分组,b)确定所述分组是否是IPsec封装分组,c)如果所述分组是IPsec封装分组,则确定所述分组的传输路径是否含有网络地址端口转换器(NAPT),d)如果所述分组的传输路径含有NAPT,则拆封所述IPsec封装分组以获得原始源端口号和原始分组协议,e)搜索源端口映射表(SPMT)中所述NAPT源地址、所述原始源端口,以及所述原始分组协议之间与所述NAPT源地址和端口号的关联,以及f)如果在步骤e)处找到与不同于所述分组中所含的原始端口号的原始端口号的关联,则拒绝所述分组。5.根据权利要求4的方法,其中步骤b)进一步包括确定所述分组报头。6.根据权利要求4的方法,其中步骤c)进一步包括确定所述封装的UDP才艮头是否含有不同于4500的源端口号以及等于4500的目的端口号。7.根据权利要求4的方法,其进一步包括响应于来自因特网主机的因特网密钥交换(IKE)消息,在所述月良务器处的SPMT中动态构建网络地址转换器(NAPT)主机条目,每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口号。8.根据权利要求7的方法,其进一步包括当IPsec分组到达并JU皮处理时,在所述SPMT中动态构建源端口条目,每个源端口条目均含有NAPT的源地址、原始源端口号和原始协议,以及在所述SPMT的NAPT主机条目与源端口条目之间建立关联。9.根据权利要求8的方法,其中所述建立关联的步骤进一步包括在IPsec分组到达且对其不存在关联时,动态建立每个关联。10.根据权利要求9的方法,其进一步包括将单个主机"NOIPSEC/NAPT"条目添加到所述SPMT,用于与不含ESP报头或者并未穿过NAPT的所有分组关联,当分组到达且其不含ESP报头或者并未穿过NAPT并且不具有关联的时候,在所述"NOIPSEC/NAPT"条目与所述SPMT的源端口条目之间形成关联,以及如果已经存在为并不指向所述"NOIPSEC/NAPT"条目的匹配源端口条目而建立的关联,则拒绝不含ESP报头或者并未穿过NAPT的分组。11.才艮据权利要求4的方法,其进一步包括如果到达分组的传输路径不含NAPT或者所述到达分组不是IPsec分组,则搜索规则的安全表中对所述分组的拒绝或接受进行管理的规则匹配,如果所述分组是IPsec分组并且所述匹配规则并不要求IPsec处理,则拒绝所述分组,以及如果所述分组不是IPsec分组并且所述匹配规则要求IPsec处理,则拒绝所述分组。12.—种计算机程序产品,其包括含有程序代码的存储介质,当所述程序代码^Li口载到计算机中并且被执行的时候,其使得所述计算机实现以下步骤,用于在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源,所述步骤包括a)在服务器处接收分组,b)确定所述分组是否已经被网络地址端口转换器转换并且含有IPsec封装分组,c)如果所述分组已经被转换并且含有IPsec封装分组,则解密所述封装分组以获得原始连接信息,并且搜索源端口映射表(SPMT)中NAPT转换的连接信息与所述原始连接信息之间的关联,以及d)如果步骤c)的结果揭示了重复源,则拒绝所述分组。13.根据权利要求12的计算机程序产品,其中所述源端口映射表含有在协商客户机与服务器之间的安全关联时创建的NAPT主机条目,以及当非重复源分组到达且对其不存在具有用于检测重复源的、源端口条目与所述NAPT主机条目之间的映射的现有条目时创建的源端口条目。14.根据权利要求13的计算机程序产品,其进一步包括用于以下步骤的程序代码在所述源端口映射表中建立NOIPSEC/NAPT主机条目,以表示在权利要求1的步骤b)失败的所有输入分组,以及为不具有源端口条目的所有这样的输入分组创建源端口条目,并且将所述源端口条目映射到所述NOIPSEC/NAPT主机条目,以及拒绝任何这样的输入分组,即所述输入分组在所述源端口映射表中已经具有未被映射到所述NOIPSEC/NAPT主机条目的源端口条目。15.—种计算机程序产品,其包括含有程序代码的存储介质,当所述程序代码#>载到计算机中并且被执行的时候,其使得所述计算机实现以下步骤,用于在使用网络地址和端口号以标识应用的网络协议中防止重复源,所述步骤包括a)在服务器处接收分组,b)确定所述分组的传输路径是否含有网络地址转换器(NAPT),c)如果所述分组的传输路径含有NAPT,则确定所述分组是否含有原始封装分组,d)如果所述分组含有原始封装分组,则解密所述原始封装分组以获得原始源端口号和原始分组协议,e)搜索源端口映射表(SPMT)中所述NAPT源地址、所述原始源端口,以及所述原始分组协议之间与所述NAPT源地址和原始端口号的关联,以及f)如果在步骤e)处找到与不同于所述分组中所含的原始端口号的原始端口号的关联,则拒绝所述分组。16.根据权利要求15的计算机程序产品,其中步骤b)进一步包括确定所述分组是否含有用户数据报协议(UDP)报头。17.根据权利要求15的计算机程序产品,其中步骤c)进一步包括确定所述分组是否含有封装安全有效载荷(ESP)报头。18.根据权利要求15的计算机程序产品,其进一步包括用于以下步骤的代码响应于来自因特网主机的因特网密钥交换(IKE)消息,在所述服务器处的SPMT中动态构建网络地址转换器(NAPT)主机条目,每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口号。19.才艮据权利要求18的计算机程序产品,其进一步包括用于以下步骤的代码当封装分组到达并且被解密时,在所述SPMT中动态构建源端口条目,每个源端口条目均含有NAPT的源地址、原始源端口号以及原始协议,以及在所述SPMT的NAPT主机条目与源端口条目之间建立关联。20.根据权利要求19的计算机程序产品,其中所述用于建立关联的代码进一步包括用于当封装分组到达且对其不存在关联时动态建立每个关联的代码。21.根据权利要求20的计算机程序产品,其进一步包括用于以下步骤的代码将单个主机NAPT"NOIPSEC/NAPT"条目添加到所述SPMT,用于与不含ESP报头的所有分组相关联,当非IPsec分组到达且对其不存在关联时,在所述"NOIPSEC/NAPT"NAPT条目与所述SPMT的源端口条目之间形成关联,以及如果已经存在为并不指向所述NAPT"NOIPSEC/NAPT"NAPT条目的匹配源端口条目而建立的关联,则拒绝非IPsec分组。22.根据权利要求15或16的计算机程序产品,其进一步包括在到达分组的传输路径不含NAPT或者所述到达分组是非IPsec分组的情况下,用于搜索规则的安全表中对所述分组的拒绝或接受进行管理的规则匹配的代码,用于在所述分组是IPsec分组并且所述匹配规则不要求IPsec处理的情况下拒绝所述分组的代码,以及用于在所述分组不是IPsec分组并且所述匹配规则要求IPsec处理的情况下拒绝所述分组的代码。23.—种在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的^殳备,其包括a)用于在服务器处接收分组的装置,b)用于确定所述分组是否已经被网络地址端口转换器转换并且含有IPsec封装分组的装置,c)用于处理来自NAPT的IPsec封装分组以获得原始连接信息的装置,以及用于搜索源端口映射表(SPMT)中NAPT转换的连接信息与所述原始连接信息之间的关联的装置,以及d)用于在所述SPMT揭示了重复源的情况下拒绝来自NAPT的IPsec封装分组的装置。24.根据权利要求23的设备,其进一步包括用于在协商客户机与服务器之间的安全关联时在所述源端口映射表中创建NAPT主机条目的装置,以及用于当非重复源分组到达时创建源端口条目的装置。25.根据权利要求24的设备,其进一步包括用于在所述源端口映射表中建立NOIPSEC/NAPT主机条目以表示既不是IPsec封装的又不是由NAPT转换的所有输入分组的装置,用于为既不是IPsec封装的又不是由NAPT转换的所有输入分组创建源端口条目的装置,用于将源端口条目映射到所述NOIPSEC/NAPT主机条目的装置,以及用于拒绝这样的输入分组的装置,即所述输入分組既不是IPsec封装的又不是由NAPT转换的,并且其在所述源端口映射表中已经具有未被映射到所述NOIPSEC/NAPT主机条目的源端口条目。26.—种用于在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的i殳备,其包括a)用于在服务器处接收分组的装置,b)用于确定所述分组的传输路径是否含有网络地址转换器(NAPT)的装置,c)用于响应于确定所述分组的传输路径含有NAPT,确定所述分组是否含有ipsec封装分组的装置,d)用于响应于确定所述分组含有IPsec封装分组,处理所述分组以获得原始源端口号和原始分组协议的装置,e)用于搜索源端口映射表(SPMT)中所述NAPT源地址、所述原始源端口,以及所述原始分组协议之间与所述NAPT源地址和原始端口号的关联的装置,以及f)用于响应于与不同于所述分组中所含的原始端口号的原始端口号的关联,拒绝所述分组的装置。27.根据权利要求26的设备,其中用于确定所述分组的传输路径是否含有网络地址转换器(NAPT)的装置进一步包括确定所述分组是否含有用户数据报协议(UDP)报头。28.根据权利要求26的设备,其中用于确定所述分组是否含有IPsec封装分组的装置进一步包括确定所述分组是否含有封装安全有效栽荷(ESP)报头。29.根据权利要求26的设备,其进一步包括用于响应于来自因特网主机的因特网密钥交换(IKE)消息,在所述服务器处的SPMT中动态构建网络地址转换器(NAPT)主机条目的装置,每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口号。30.根据权利要求29的设备,其进一步包括当IPsec分組到达并且被处理的时候,在所述SPMT中动态构建源端口条目,每个源端口条目均含有NAPT的源地址、原始源端口号和原始协议,以及用于在所述SPMT的NAPT主机条目与源端口条目之间建立关联的装31.根据权利要求30的设备,其中所述用于建立关联的装置进一步包括用于在IPsec分组到达且对其不存在关联的时候,动态建立每个关联的装置。32.根据权利要求31的设备,其进一步包括用于将单个主机"NOIPSEC/NAPT"条目添加到所述SPMT,以便与不含ESP报头的所有分组相关联的装置,用于当非IPsec分组到达且对其不存在关联的时候,在所述"NOIPSEC/NAPT"条目与所述SPMT的源端口条目之间形成关联的装置,以及用于在已经存在为并不指向所述"NOIPSEC/NAPT"条目的匹配源端口条目而建立的关联的情况下拒绝非IPsec分组的装置。33.根据权利要求26或27的设备,其进一步包括非IPsec,搜索规则的安全表中对所述分组的拒绝或接受进行管理的规则匹配的装置,用于在所述分组是IPsec分组并且所述匹配规则不要求IPsec处理的情况下拒绝所述分组的装置,以及用于在所述分组是非IPsec分组并且所述匹配规则要求IPsec处理的情况下拒绝所述分组的装置。全文摘要在使用网络地址、协议和端口号以标识由NAPT所服务的源应用的协议连接上防止重复源。如果到达分组封装了加密分组,并且已经穿过NAPT在通往目的主机的途中,则解密所述封装分组以便从解密分组获得原始源端口号和原始分组协议。为了与NAPT源地址和端口号关联的原始分组协议、原始源端口,以及该NAPT源地址之间的关联而搜索源端口映射表(SPMT)。如果找到不正确的关联,则所述分组由于代表非法重复源而被拒绝;也就是说,来自由NAPT所服务的不同主机的第二分组正在使用相同的源端口和协议。文档编号H04L29/12GK101156420SQ200680011629公开日2008年4月2日申请日期2006年4月7日优先权日2005年4月11日发明者D·J·维尔波夫斯基,J·A·波特,L·H·小奥弗毕,P·贾库比克申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1