CN101156420A - 防止来自网络地址端口转换器所服务的客户机的重复源 - Google Patents

防止来自网络地址端口转换器所服务的客户机的重复源 Download PDF

Info

Publication number
CN101156420A
CN101156420A CNA200680011629XA CN200680011629A CN101156420A CN 101156420 A CN101156420 A CN 101156420A CN A200680011629X A CNA200680011629X A CN A200680011629XA CN 200680011629 A CN200680011629 A CN 200680011629A CN 101156420 A CN101156420 A CN 101156420A
Authority
CN
China
Prior art keywords
napt
grouping
ipsec
source port
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200680011629XA
Other languages
English (en)
Other versions
CN101156420B (zh
Inventor
P·贾库比克
L·H·小奥弗毕
J·A·波特
D·J·维尔波夫斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101156420A publication Critical patent/CN101156420A/zh
Application granted granted Critical
Publication of CN101156420B publication Critical patent/CN101156420B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

在使用网络地址、协议和端口号以标识由NAPT所服务的源应用的协议连接上防止重复源。如果到达分组封装了加密分组,并且已经穿过NAPT在通往目的主机的途中,则解密所述封装分组以便从解密分组获得原始源端口号和原始分组协议。为了与NAPT源地址和端口号关联的原始分组协议、原始源端口,以及该NAPT源地址之间的关联而搜索源端口映射表(SPMT)。如果找到不正确的关联,则所述分组由于代表非法重复源而被拒绝;也就是说,来自由NAPT所服务的不同主机的第二分组正在使用相同的源端口和协议。

Description

防止来自网络地址端口转换器所服务的客户机的重复源
技术领域
本发明一般地涉及因特网连网,并且具体而言,涉及由网络地址和端口转换所引起的寻址冲突。
背景技术
文中所描述的问题和解决方案均是就形成因特网通信的基础的TCP/IP协议和因特网方面来描述的。然而,取决于协议的细节,该技术同样也可以应用于其它的通信协议。
使用因特网网络地址转换有几个原因。主要原因是节省公共地址的使用。网络地址转换器(Network Address Translator,NAT)的网际协议(IP)地址通常是公共地址。也就是,对外界来说NAT IP地址是已知的,而在NAT之后的服务器和客户机的所有地址却是专用地址,对外界来说是不可知的。在这样的情况下,外界与NAT进行通信,并且NAT控制与其后的适当服务器和客户机的通信。这就意味着在NAT之后的设备的IP地址仅需在该族(family)内是唯一的,但在其它地方却可以是重复的其它的IP地址。NAT仅涉及IP地址的转换。还有被称为网络地址端口转换(NetworkAddress Port Translation,NAPT)的另外的转换类型,在该转换中,IP地址和端口号均被转换。在题为“Traditional IP Network AddressTranslation”的因特网工程任务组(IETF)RFC 3022中阐述了用于网络地址转换(Network Address Translation,NAT)和网络地址端口转换(NAPT)的标准。
并没有将安全作为主要因素来设计最初的因特网。事实上,特意将因特网构造得相对开放来作为对科学和教育通信的辅助。然而,Web的出现及其商业使用已经增加了对安全的因特网通信的需要。针对这些问题定义了通常被称为IPsec的因特网安全协议(Internet Security Protocol)。例如,IPsec提供了对网络设备的认证和/或对传输数据的加密。依照安全关联(security association,SA)来管理源与目的地址之间的IPsec通信,安全关联(SA)是定义应用于通信的IPsec处理的一个或多个规则。在RFC2401和其它的RFC中定义了IPsec。通过将分组的属性与安全策略数据库(security policy database,SPD)中的安全规则相匹配来确定是否拒绝分组、在没有IPsec处理的情况下准许分组或者在有IPsec处理的情况下准许分组。为了做出该确定,现有技术以输出和输入分组这二者的最具体到最不具体的属性的顺序来搜索静态和动态两种规则。静态规则的集合实际上是安全策略。静态规则被预定义并且通常并不经常变化。动态规则是在IKE(Internet Key Exchange,因特网密钥交换)处理期间在节点之间协商的并且根据需要以动态方式添加到安全策略数据库的规则。国际商业机器公司的美国专利6,347,376描述了一种搜索SPD的静态和动态规则的优选方法。在此通过引用的方式将该专利的全部内容并入本说明书。
在网络地址或端口转换与IPsec处理之间存在固有的不兼容性。这些不兼容性是部署IPsec的障碍。RFC 3715承认并讨论了这些不兼容性中的一些,但却没有提供一般的解决方案。例如,RFC 3715的第4.1节涉及RFC 3456中所提议的限制解决方案,“Dynamic Host ConfigurationProtocol(DHCPv4,Configurtion of IPsec Tunnel Mode)”,但却声明需要更一般的解决方案。另外,来自IETF的IPsec工作组的题为“UDPEncapsulation of IPsec ESP Packets”的RFC 3948的第5节也针对一些不兼容性问题。特别地,RFC的第5.2节简要描述了关于确定在通往由NAT所服务的客户机的连接上将使用什么IPsec安全关联方面的问题。该节还描述了关于当NAPT也处理IPsec通信量时允许通往该NAPT之后的客户机的明文连接方面的另一问题。
因而需要解决当客户机由NAPT服务时避免重复源(duplicate source)的问题。任何相关的IETF RFC文献均没有提供对该问题的解决方案。对本说明书来说,重复源被定义为具有相同的源地址(例如,分派给IPsec封装原始分组的NAPT的IP地址)、相同的传输协议和相同的原始源端口号(即,在IPsec封装分组的传输报头(transport header)中的端口号)的分组。
重复源导致对网络完整性形成打击(breech)的重复连接。例如,可能将分组发送至错误的目的地。
题为“Negotiation of NAT-Traversal in the IKE”的RFC 3947描述了在IKE(因特网密钥交换)阶段1和2中需要用于NAT遍历支持的内容。这包括检测在分组通信中的两端是否支持NAT遍历,以及检测沿从主机到主机的路径是否存在一个或多个NAT。其还涵盖如何协商在IKE快速模式中使用用户数据报协议(UDP)封装的IPsec分组,并且描述了如何在需要时将原始源IP地址传输至另一端。在RFC 768中定义了UDP。RFC3948“UDP Encasulation of IPsec ESP Packets”定义了出于遍历NAT的目的在UDP分组内部封装和拆封ESP(封装安全有效载荷)分组的方法。在RFC 2406中定义了ESP。ESP被设计成在IPv4和IPv6中提供混合安全服务。
发明内容
本发明相应地提供用于在使用源地址、协议和源端口号以标识由NAPT所服务的源应用的连接中防止分组的重复源。当在服务器处接收到分组的时候,对关于所述分组是否是封装了ESP分组的UDP分组进行确定,其中所述ESP分组的传输路径含有网络地址端口转换器(NAPT)。在这样的情况下,拆封原始分组以获得原始源端口和原始传输协议。为了与NAPT源IP地址和转换的源端口号关联的原始传输协议、所述原始源端口号,以及所述NAPT源IP地址之间的关联而搜索源端口映射表(sourceport mapping table,SPMT)。如果找到不正确的关联,则所述分组由于代表非法重复源而被拒绝;也就是说,来自由NAPT所服务的不同主机的第二分组具有相同的源IP地址、源端口号和协议。
在优选的实施例中,响应于来自因特网主机的因特网密钥交换(IKE)消息,动态构建在服务器处的SPMT中的网络地址端口转换器(NAPT)主机条目。每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口。当加密分组到达并且被解密时动态构建所述SPMT中的源端口条目,并且在所述源端口条目与所述SPMT的NAPT主机条目之间建立关联。每个源端口条目均含有NAPT的源IP地址、原始源端口号和原始协议。
附图说明
现参照以下附图,仅借助于例子来描述本发明的优选实施例,其中:
图1示出了从客户机经由NAPT前进到目的主机的分组,以及当该分组前进时对分组报头和内容的改变;
图2示出了响应于图1的分组的返回分组;
图3示出了源端口映射表(SPMT)的说明性实施例;
图4示出了封装加密原始分组的NAPT转换分组;
图5示出了解密后的图4的分组;
图6和7分别对应于图4和5,并且示出了与较早分组在相同路径上的第二分组,其代表由在传输路径中包括NAPT所导致的非法重复源;
图8是在SPMT中创建NAPT主机条目的流程图;
图9是示出了在入站分组首先到达目的主机时可用的选项的流程图;
图10是示出了对封装了加密原始分组并且已经穿过NAPT的入站分组的处理的流程图;以及
图11和12是示出了处理不满足封装和穿过NAPT这两个条件的入站分组的可选方式的流程图。
具体实施方式
尽管文中所描述的本发明的实施例所涉及的问题在因特网传输中的传输模式和隧道模式下均存在,然而,所公开的实施例针对的是传输模式。将要描述的少量改动使得传输模式公开适于隧道模式下的操作。
可以用软件或硬件或者软件和硬件的组合来实现本发明的实施例。此外,实施例可以采取计算机可用或计算机可读存储介质上的计算机程序产品的形式,该计算机可用或计算机可读存储介质具有体现于由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的介质中的程序代码装置。在本文档的上下文中,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传输由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何装置。
介质可以是,例如但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的例子(不完全列表)将包括具有一条或多条线路的电连接、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤,以及便携式光盘只读存储器(CD-ROM)。要注意,计算机可用或计算机可读介质甚至可以是其上印有程序的纸张或其它合适的介质,这是因为,可以通过例如光学扫描该纸张或其它介质来电子获取该程序,然后如果有必要的话,以适当的方式对该程序进行编译、解释或者其它处理,并且继而将其存储在计算机存储器中。
在本说明书中,类似的标号始终指的是类似的元件。
IPsec处理可以用于出于安全的目的对分组的内容进行认证或加密。可以将认证和加密均应用于分组或者可以单独应用其一。为了简化这一表示,对IPsec处理的描述就加密和解密方面讨论了分组的封装和拆封。在单独应用或结合加密应用认证的情况下,所描述的处理均同样有效。
当将IPsec处理应用于来自源客户机的输出分组时,该处理加密原始源和目的端口以及协议字段,并且将该加密材料封装到UDP分组中。原始客户机源IP地址保留在UDP分组中,但是源端口号被设置成4500,如RFC 3948“UDP Encapsulation of IPsec ESP packets”所规定的。如果UDP分组然后穿过NAPT,则NAPT进行进一步的变换。下面关于图1和图2对这些变换详细进行了描述。具体地,NAPT用其自己的IP地址来取代客户机源IP地址,分派新的唯一端口号给UDP报头,并且保持对这些转换的跟踪,以便可以将返回分组映射到原始源。RFC 3948描述了这样的方案,即在该方案中,在TCP或UDP分组中的原始源端口号并未被NAPT设备改变,由于其是原始传输报头的一部分,该原始传输报头现在被加密为IPsec ESP有效载荷的一部分。而被添加用于UDP封装的UDP报头中的端口号却被改变,如以上所提及的。当这样的IPsec分组被服务器接收并且被解密时,便揭示出该分组的原始源和目的端口。对于没有通过IPsec处理的分组来说,NAPT设备转换原始源IP地址和源端口。对于未加密分组来说,NAPT确保没有重复连接(重复源)。
图1示出了从客户机10.1.1.1经由NAPT 210.1.1.1和NAT 211.1.1.1到目的主机11.1.1.1的分组前进以及当分组前进时对分组报头和内容的改变。图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的公共地址。NAT 211.1.1.1的职责是将分组映射到诸如11.1.1.1的其后端服务器。在100处,分别将源和目的端口说明性地设置成4096和21。在102处示出了在IPsec处理之后分组的内容。在分组102底部的浅阴影部分说明由IPsec加密的部分。102中较深的阴影部分(以及在传输路径的其它点处的分组内容)说明在传输中已经改变的或者已在该点处被添加的字段。在102处,真实的源和目的端口由IPsec加密4096和21的值,并且在该点不可读。IPsec处理已经添加了UDP报头以指示这是封装了原始客户机分组的端口和协议的IPsec分组。按照RFC 3948中的规定,将IPsec所添加的明文UDP报头中的源和目的端口设置成4500。将SPI(安全参数索引)字段说明性地设置成256。SPI字段,连同安全协议和目的地址一起指向客户机10.1.1.1与服务器11.1.1.1之间的安全关联,该安全关联管理这些实体之间的加密算法和其它的安全参数。
由IP地址210.1.1.1处的NAPT来转换102处的分组以产生104处所示的分组。在该点处,NAPT 210.1.1.1已经改变了源IP地址以反映其自己的地址210.1.1.1。NAPT还设置了新的唯一的源端口号。在图1中,将所选择的源端口号说明性地从4500改变成4501。NAPT 210.1.1.1为来自服务器11.1.1.1的返回分组以及为来自客户机IP 10.1.1.1和源端口4500的将来的出站分组保持对这一转换的跟踪。
由NAT 211.1.1.1将104处的分组重新转换成服务器11.1.1.1的输入分组。在106处示出了该输入分组。实际上,由NAT 211.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。然而,在NAPT 210.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示出了具有相同的NAPT IP源地址210.1.1.1和由该NAPT所分派的不同源端口4502的第二说明性NAPT客户机304。在SPMT 300的右侧是源端口条目。当IPsec编码分组到达且对其不存在现有条目时创建这些条目。添加源端口条目的过程发生在已发生IPsec解密之后。当创建源端口条目时创建将源端口条目映射到NAPT主机条目的关联306。当删除属于NAPT主机条目的最后的安全关联时,移除该条目。当分组到达并且被解密时,源NAPT地址、原始分组的源端口和原始分组的协议可用。搜索SPMT的源端口条目中关于这些属性的匹配。如果找到了匹配,则检查关联的NAPT主机条目中关于NAPT源地址和NAPT所分派的源端口的匹配。如果这些后面的属性不匹配,这就意味着源NAPT之后的两个客户机正在试图使用相同的源端口号。这代表重复源并且第二分组被拒绝。如果这些后面的属性匹配,那么该分组被允许。
图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报尾(trailer)。依照IPsec处理来加密传输报头406和有效载荷408。图5表示在目的主机处解密之后图4的分组。现注意到,现在从字段506可获得客户机源端口4096和协议(TCP),以及源NAPT地址210.1.1.1(从分组字段500)。使用这些属性来搜索SPMT 300的源端口条目。在该例中,在308处找到匹配。对应的关联306指向NAPT主机条目302。源NAPT地址210.1.1.1和NAPT源端口4501匹配于该分组(从输入分组的字段402可不受阻碍地获得NAPT源端口4501)。因而,该分组与正确的连接关联,并且被接受。
图6和图7表示将被拒绝的、第二到达的重复源分组。这是因为,虽然来自字段700的NAPT源地址210.1.1.1、来自字段706的协议,以及源客户机端口4096匹配于SPMT 300的源端口条目308,但是关联的NAPT条目302并不匹配于来自输入分组的字段602的、NAPT所分派的端口号4502。
现在结合适当的流程图在下面更加详细地解释该过程。
图8说明了在IKE协商期间对SPMT 300的NAPT主机条目的初始化。在步骤802处表示IKE协商。在协商之后,步骤804向TCP/IP栈发送通知,以便在SPMT 300中创建关联的NAPT主机条目。该通知含有从IKE流检索到的端口号和NAPT源地址。
当数据分组到达目的主机时,图9开始检测重复源的过程。步骤902确定输入分组是否含有封装在UDP报头中的ESP分组,并且该UDP报头中的源端口不是预定义的UDP封装端口4500。如果以上为真,那么该分组正在使用IPsec来加密或认证,并且在传输路径中涉及NAPT。如果分组正在使用具有目的端口4500的UDP协议,并且最初四个字节含有非零数据,那么将该分组标识为UDP封装的ESP分组。如果在步骤902处的答案是否定的,那么存在两个可选的处理选项,步骤904处的选项1和步骤906处的选项2。下面对这二者进行讨论。假设在902处的答案为是,那么908在图10中的A处继续。在图10中,步骤1002进行所需的IPsec处理来解密分组。结果,如以上所解释的,不受阻碍地获得了NAPT源地址、原始客户机源端口号,以及协议。步骤1004搜索关于这些属性的、SPMT300的源端口条目。在1006处,如果没有找到匹配,则在步骤1008处创建源端口条目,并且对分组的入站处理正常继续。如果在步骤1006处找到了匹配,那么步骤1010使用对应的关联306,以便将NAPT所分派的源地址和来自对应的NAPT主机条目的端口号与来自解密分组的相同属性进行比较。如果该比较失败,则在1011处拒绝分组。如果获得匹配,则分组处理在1012处照常继续。
来自图9的选项1和2表示这样的情况,即在该情况下,不受阻碍地发送分组(无IPsec处理)或者在路径中没有地址转换(NAPT)。然而,重复源仍是可能的。可选的选项1和2均检测这样的复制分组。选项1的处理开始于图11的B处。该选项通过SPMT表300处理所有的数据分组。这是通过添加被指定为“NO IPSEC/NAPT”的另外的单个NAPT主机条目来完成的。当分组到达时,如以上所解释的,搜索SMPT 300的源端口条目。如果没有找到匹配,则在1106处创建源端口条目并且将其与“NOIPSEC/NAPT”NAPT主机条目相关联。如果在1104处找到了匹配的源端口条目,则步骤1110确定对应的关联306是否指向“NO IPSEC/NAPT”NAPT主机条目。如果是的话,则在步骤1108处允许该分组。否则,在1112处拒绝该分组。该选项1的优点是简单。其缺点是通过SPMT表300处理所有的数据通信量。
选项2使用入站IPsec分组过滤来拒绝重复源分组。一旦IPsec在主机处就位,就通过IPsec规则表(SPD)来处理所有的分组,不管任何分组是否被加密。这用来检验在给定连接上的未加密分组实际上被管理该连接的IPsec规则所允许。选项2过程开始于图12的C处。在步骤1202处通过IPsec规则表(未示出)来处理输入分组。从前述美国专利6,347,376可以确定如何在优选实施例中完成这一过程的例子。在此通过引用的方式将该专利的全部内容并入本说明书。如果分组被加密(步骤1204),那么步骤1206确定管理IPsec规则是否要求加密。假设是这种情况,则在1208处允许该分组。否则,在1210处拒绝该分组。如果在步骤1204处该分组未加密,那么在1212处确定管理IPsec规则是否允许未加密分组,并且相应地允许或拒绝该分组。
在隧道模式中,IPsec SA不一定是端到端的。例如,可以在主机与服务多个客户机或服务器的网关之间协商SA。在隧道模式中,单个NAPT地址(其是UDP封装报头中的源IP地址)可以潜在地表示多个主机。在隧道模式中,分组的封装、加密部分含有源的原始IP地址以及传输报头这二者。对于本说明书来说,在隧道模式中,源的原始IP地址被称为内部源IP地址。因为内部源IP地址并不是全球唯一的,所以其对分组路由或者对表示连接的源来说是不可用的。如以上对传输模式所描述的,原始源端口(例如含于SPMT 300的源端口条目中),以及单独具有UDP端口的封装源IP地址可能并不唯一。为了处理该问题,将含有内部源IP地址的附加字段添加到图3中的SPMT 300的源端口条目(例如,308)。内部源IP地址(在传输模式中不可用)在与源端口条目的其它值组合时产生用于隧道模式IPsec SA所保护的主机的唯一标识符。作为步骤1008的一部分,将内部源IP地址添加到源端口条目。当隧道模式分组到达时,如步骤1004中所描述的,搜索SPMT的源端口条目以找到NAPT主机条目的关联,并且步骤1010,除了已经描述的之外,检验从解密分组所获得的内部源客户机IP地址与源端口条目中的客户机IP地址相同。如果该检验失败,则拒绝该分组。
对本领域的技术人员将显而易见的是,优选实施例可以具有很多小的变化。例如,ICMP协议不使用端口号;而是使用了查询标识符。就按照公开并请求保护的本发明而言,查询标识符等同于端口号。

Claims (33)

1.一种在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的方法,其包括:
a)在服务器处接收分组,
b)确定所述分组是否已经被网络地址端口转换器转换并且含有IPsec封装分组,
c)如果所述分组已经被转换并且含有IPsec封装分组,则处理所述分组以获得原始连接信息,并且搜索源端口映射表(SPMT)中NAPT转换的连接信息与所述原始连接信息之间的关联,以及
d)如果步骤c)的结果揭示了重复源,则拒绝所述分组。
2.根据权利要求1的方法,其中所述源端口映射表含有在协商客户机与服务器之间的安全关联时创建的NAPT主机条目,以及当非重复源分组到达且对其不存在具有用于检测重复源的、源端口条目与所述NAPT主机条目之间的映射的现有条目时创建的源端口条目。
3.根据权利要求2的方法,其进一步包括:
在所述源端口映射表中建立NO IPSEC/NAPT主机条目,以表示在权利要求1的步骤b)失败的所有输入分组,以及为不具有源端口条目的所有这样的输入分组创建源端口条目,并且将所述源端口条目映射到所述NO IPSEC/NAPT主机条目,以及
拒绝任何这样的输入分组,即所述输入分组在所述源端口映射表中已经具有未被映射到所述NO IPSEC/NAPT主机条目的源端口条目。
4.一种在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的方法,其包括:
a)在服务器处接收分组,
b)确定所述分组是否是IPsec封装分组,
c)如果所述分组是IPsec封装分组,则确定所述分组的传输路径是否含有网络地址端口转换器(NAPT),
d)如果所述分组的传输路径含有NAPT,则拆封所述IPsec封装分组以获得原始源端口号和原始分组协议,
e)搜索源端口映射表(SPMT)中所述NAPT源地址、所述原始源端口,以及所述原始分组协议之间与所述NAPT源地址和端口号的关联,以及
f)如果在步骤e)处找到与不同于所述分组中所含的原始端口号的原始端口号的关联,则拒绝所述分组。
5.根据权利要求4的方法,其中步骤b)进一步包括:确定所述分组是否含有由用户数据报协议(UDP)报头所封装的封装安全有效载荷(ESP)报头。
6.根据权利要求4的方法,其中步骤c)进一步包括:确定所述封装的UDP报头是否含有不同于4500的源端口号以及等于4500的目的端口号。
7.根据权利要求4的方法,其进一步包括:
响应于来自因特网主机的因特网密钥交换(IKE)消息,在所述服务器处的SPMT中动态构建网络地址转换器(NAPT)主机条目,每个NAPT主机条目均含有所述NAPT的源IP地址,以及由所述NAPT所分派的源端口号。
8.根据权利要求7的方法,其进一步包括:
当IPsec分组到达并且被处理时,在所述SPMT中动态构建源端口条目,每个源端口条目均含有NAPT的源地址、原始源端口号和原始协议,以及
在所述SPMT的NAPT主机条目与源端口条目之间建立关联。
9.根据权利要求8的方法,其中所述建立关联的步骤进一步包括:在IPsec分组到达且对其不存在关联时,动态建立每个关联。
10.根据权利要求9的方法,其进一步包括:
将单个主机“NO IPSEC/NAPT”条目添加到所述SPMT,用于与不含ESP报头或者并未穿过NAPT的所有分组关联,
当分组到达且其不含ESP报头或者并未穿过NAPT并且不具有关联的时候,在所述“NO IPSEC/NAPT”条目与所述SPMT的源端口条目之间形成关联,以及
如果已经存在为并不指向所述“NO IPSEC/NAPT”条目的匹配源端口条目而建立的关联,则拒绝不含ESP报头或者并未穿过NAPT的分组。
11.根据权利要求4的方法,其进一步包括:
如果到达分组的传输路径不含NAPT或者所述到达分组不是IPsec分组,则搜索规则的安全表中对所述分组的拒绝或接受进行管理的规则匹配,
如果所述分组是IPsec分组并且所述匹配规则并不要求IPsec处理,则拒绝所述分组,以及
如果所述分组不是IPsec分组并且所述匹配规则要求IPsec处理,则拒绝所述分组。
12.一种计算机程序产品,其包括含有程序代码的存储介质,当所述程序代码被加载到计算机中并且被执行的时候,其使得所述计算机实现以下步骤,用于在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源,所述步骤包括:
a)在服务器处接收分组,
b)确定所述分组是否已经被网络地址端口转换器转换并且含有IPsec封装分组,
c)如果所述分组已经被转换并且含有IPsec封装分组,则解密所述封装分组以获得原始连接信息,并且搜索源端口映射表(SPMT)中NAPT转换的连接信息与所述原始连接信息之间的关联,以及
d)如果步骤c)的结果揭示了重复源,则拒绝所述分组。
13.根据权利要求12的计算机程序产品,其中所述源端口映射表含有在协商客户机与服务器之间的安全关联时创建的NAPT主机条目,以及当非重复源分组到达且对其不存在具有用于检测重复源的、源端口条目与所述NAPT主机条目之间的映射的现有条目时创建的源端口条目。
14.根据权利要求13的计算机程序产品,其进一步包括用于以下步骤的程序代码:
在所述源端口映射表中建立NO IPSEC/NAPT主机条目,以表示在权利要求1的步骤b)失败的所有输入分组,以及为不具有源端口条目的所有这样的输入分组创建源端口条目,并且将所述源端口条目映射到所述NO IPSEC/NAPT主机条目,以及
拒绝任何这样的输入分组,即所述输入分组在所述源端口映射表中已经具有未被映射到所述NO IPSEC/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“NO IPSEC/NAPT”条目添加到所述SPMT,用于与不含ESP报头的所有分组相关联,
当非IPsec分组到达且对其不存在关联时,在所述“NO IPSEC/NAPT”NAPT条目与所述SPMT的源端口条目之间形成关联,以及
如果已经存在为并不指向所述NAPT“NO IPSEC/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的设备,其进一步包括:
用于在所述源端口映射表中建立NO IPSEC/NAPT主机条目以表示既不是IPsec封装的又不是由NAPT转换的所有输入分组的装置,
用于为既不是IPsec封装的又不是由NAPT转换的所有输入分组创建源端口条目的装置,
用于将源端口条目映射到所述NO IPSEC/NAPT主机条目的装置,以及
用于拒绝这样的输入分组的装置,即所述输入分组既不是IPsec封装的又不是由NAPT转换的,并且其在所述源端口映射表中已经具有未被映射到所述NO IPSEC/NAPT主机条目的源端口条目。
26.一种用于在使用网络地址、协议和端口号以标识应用的网络协议中防止重复源的设备,其包括:
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的设备,其进一步包括:
用于将单个主机“NO IPSEC/NAPT”条目添加到所述SPMT,以便与不含ESP报头的所有分组相关联的装置,
用于当非IPsec分组到达且对其不存在关联的时候,在所述“NOIPSEC/NAPT”条目与所述SPMT的源端口条目之间形成关联的装置,以及
用于在已经存在为并不指向所述“NO IPSEC/NAPT”条目的匹配源端口条目而建立的关联的情况下拒绝非IPsec分组的装置。
33.根据权利要求26或27的设备,其进一步包括:
用于响应于确定到达分组的传输路径不含NAPT或者所述到达分组是非IPsec,搜索规则的安全表中对所述分组的拒绝或接受进行管理的规则匹配的装置,
用于在所述分组是IPsec分组并且所述匹配规则不要求IPsec处理的情况下拒绝所述分组的装置,以及
用于在所述分组是非IPsec分组并且所述匹配规则要求IPsec处理的情况下拒绝所述分组的装置。
CN200680011629XA 2005-04-11 2006-04-07 防止来自网络地址端口转换器napt所服务的客户机的重复源的方法 Expired - Fee Related CN101156420B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/907,661 2005-04-11
US10/907,661 US7656795B2 (en) 2005-04-11 2005-04-11 Preventing duplicate sources from clients served by a network address port translator
PCT/EP2006/061433 WO2006108805A1 (en) 2005-04-11 2006-04-07 Preventing duplicate sources from clients served by a network address port translator

Publications (2)

Publication Number Publication Date
CN101156420A true CN101156420A (zh) 2008-04-02
CN101156420B CN101156420B (zh) 2011-07-20

Family

ID=36636455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680011629XA Expired - Fee Related CN101156420B (zh) 2005-04-11 2006-04-07 防止来自网络地址端口转换器napt所服务的客户机的重复源的方法

Country Status (8)

Country Link
US (1) US7656795B2 (zh)
EP (1) EP1872561B1 (zh)
JP (1) JP4766574B2 (zh)
CN (1) CN101156420B (zh)
BR (1) BRPI0607515B1 (zh)
CA (1) CA2602778C (zh)
TW (1) TWI365651B (zh)
WO (1) WO2006108805A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984068A (zh) * 2012-11-23 2013-03-20 汉柏科技有限公司 实现报文穿越网络地址转换设备的方法
CN106210095A (zh) * 2016-07-18 2016-12-07 杭州华三通信技术有限公司 一种端口处理方法和装置
CN112242943A (zh) * 2020-11-26 2021-01-19 迈普通信技术股份有限公司 IPSec隧道建立方法及装置、分支设备、中心端设备
CN112887259A (zh) * 2019-11-29 2021-06-01 瞻博网络公司 基于应用的网络安全

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158959A1 (en) * 2002-02-15 2003-08-21 Jay Jayapalan Establishment of communications using point to point protocols such that duplicate negotiations are avoided
US8787393B2 (en) * 2005-04-11 2014-07-22 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
JP4709583B2 (ja) * 2005-05-31 2011-06-22 株式会社東芝 データ送信装置およびデータ送信方法
CN1937531B (zh) * 2006-08-28 2010-05-12 华为技术有限公司 检测维护组完整性的方法及装置和增加端点的方法及装置
JP2009111437A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd ネットワークシステム
CN101631113B (zh) * 2009-08-19 2011-04-06 西安西电捷通无线网络通信股份有限公司 一种有线局域网的安全访问控制方法及其系统
CN101635710B (zh) * 2009-08-25 2011-08-17 西安西电捷通无线网络通信股份有限公司 一种基于预共享密钥的网络安全访问控制方法及其系统
WO2012111222A1 (ja) 2011-02-17 2012-08-23 日本電気株式会社 ネットワークシステム、及びネットワークフロー追跡方法
US9525627B2 (en) 2014-05-27 2016-12-20 Google Inc. Network packet encapsulation and routing
US11095617B2 (en) 2017-12-04 2021-08-17 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
US11902264B2 (en) * 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
TWI793904B (zh) * 2021-12-08 2023-02-21 中華電信股份有限公司 為本地服務進行訊務轉址的行動邊緣運算裝置和方法
CN114465755B (zh) * 2021-12-15 2024-02-23 广西电网有限责任公司电力科学研究院 基于IPSec传输异常的检测方法、装置及存储介质
US11863514B2 (en) 2022-01-14 2024-01-02 Vmware, Inc. Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs
US11956213B2 (en) 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615357B1 (en) 1999-01-29 2003-09-02 International Business Machines Corporation System and method for network address translation integration with IP security
US7684317B2 (en) * 2001-06-14 2010-03-23 Nortel Networks Limited Protecting a network from unauthorized access
US7747758B2 (en) * 2001-10-29 2010-06-29 International Business Machines Corporation Dynamic port assignment
US20030154306A1 (en) * 2002-02-11 2003-08-14 Perry Stephen Hastings System and method to proxy inbound connections to privately addressed hosts
US7143137B2 (en) * 2002-06-13 2006-11-28 Nvidia Corporation Method and apparatus for security protocol and address translation integration
KR100479261B1 (ko) 2002-10-12 2005-03-31 한국전자통신연구원 네트워크 주소 변환 상에서의 데이터 전송 방법 및 장치
US7346770B2 (en) 2002-10-31 2008-03-18 Microsoft Corporation Method and apparatus for traversing a translation device with a security protocol
US7386881B2 (en) * 2003-01-21 2008-06-10 Swander Brian D Method for mapping security associations to clients operating behind a network address translation device
CN100505634C (zh) * 2003-06-23 2009-06-24 腾讯科技(深圳)有限公司 数字信息穿透nat/fw的方法和系统
US20050166206A1 (en) * 2004-01-26 2005-07-28 Parson Dale E. Resource management in a processor-based system using hardware queues
JP4489008B2 (ja) * 2005-11-16 2010-06-23 株式会社東芝 通信装置、通信方法および通信プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984068A (zh) * 2012-11-23 2013-03-20 汉柏科技有限公司 实现报文穿越网络地址转换设备的方法
CN106210095A (zh) * 2016-07-18 2016-12-07 杭州华三通信技术有限公司 一种端口处理方法和装置
CN106210095B (zh) * 2016-07-18 2020-01-24 新华三技术有限公司 一种端口处理方法和装置
CN112887259A (zh) * 2019-11-29 2021-06-01 瞻博网络公司 基于应用的网络安全
CN112887259B (zh) * 2019-11-29 2023-05-26 瞻博网络公司 基于应用的网络安全
US11706216B2 (en) 2019-11-29 2023-07-18 Juniper Networks, Inc. Application-based network security
CN112242943A (zh) * 2020-11-26 2021-01-19 迈普通信技术股份有限公司 IPSec隧道建立方法及装置、分支设备、中心端设备

Also Published As

Publication number Publication date
JP2009532919A (ja) 2009-09-10
CA2602778A1 (en) 2006-10-19
CN101156420B (zh) 2011-07-20
TW200708009A (en) 2007-02-16
JP4766574B2 (ja) 2011-09-07
EP1872561A1 (en) 2008-01-02
US20060227807A1 (en) 2006-10-12
US7656795B2 (en) 2010-02-02
CA2602778C (en) 2014-04-01
BRPI0607515B1 (pt) 2020-04-22
WO2006108805A1 (en) 2006-10-19
EP1872561B1 (en) 2012-11-07
BRPI0607515A2 (pt) 2016-10-25
TWI365651B (en) 2012-06-01

Similar Documents

Publication Publication Date Title
CN101156420B (zh) 防止来自网络地址端口转换器napt所服务的客户机的重复源的方法
US7386881B2 (en) Method for mapping security associations to clients operating behind a network address translation device
US9253146B2 (en) Preventing duplicate sources from clients served by a network address port translator
US7346770B2 (en) Method and apparatus for traversing a translation device with a security protocol
KR100798660B1 (ko) 로컬 ip 어드레스 및 변환불능 포트 어드레스를사용하는 구내 통신망에 대한 네트워크 어드레스 변환게이트웨이
US6795917B1 (en) Method for packet authentication in the presence of network address translations and protocol conversions
US7107614B1 (en) System and method for network address translation integration with IP security
EP1328105B1 (en) Method for sending a packet from a first IPsec client to a second IPsec client through a L2TP tunnel
KR100479261B1 (ko) 네트워크 주소 변환 상에서의 데이터 전송 방법 및 장치
US20040243837A1 (en) Process and communication equipment for encrypting e-mail traffic between mail domains of the internet
US7908481B1 (en) Routing data to one or more entities in a network
US20040037284A1 (en) Method for secure packet-based communication between two units via an intermedia unit
CN115277190B (zh) 一种链路层透明加密系统在网络上实现邻居发现的方法
JP6075871B2 (ja) ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム
Schläger Using the Remote Socket Architecture as NAT Replacement Michael Eyrich, Tobias Poschwatta

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110720