JP4426443B2 - Improved security method and apparatus for communicating over a network - Google Patents

Improved security method and apparatus for communicating over a network Download PDF

Info

Publication number
JP4426443B2
JP4426443B2 JP2004514302A JP2004514302A JP4426443B2 JP 4426443 B2 JP4426443 B2 JP 4426443B2 JP 2004514302 A JP2004514302 A JP 2004514302A JP 2004514302 A JP2004514302 A JP 2004514302A JP 4426443 B2 JP4426443 B2 JP 4426443B2
Authority
JP
Japan
Prior art keywords
address
client
gateway
computer
remote
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.)
Expired - Fee Related
Application number
JP2004514302A
Other languages
Japanese (ja)
Other versions
JP2005530404A (en
Inventor
トーマス, アルバート マウファー,
サミア ナンダ,
ポール, ジェー. サイデンブラッド,
Original Assignee
エヌヴィディア コーポレイション
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
Priority claimed from US10/172,046 external-priority patent/US7143188B2/en
Priority claimed from US10/172,345 external-priority patent/US7191331B2/en
Priority claimed from US10/172,352 external-priority patent/US7143137B2/en
Priority claimed from US10/172,683 external-priority patent/US7120930B2/en
Application filed by エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2005530404A publication Critical patent/JP2005530404A/en
Application granted granted Critical
Publication of JP4426443B2 publication Critical patent/JP4426443B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Abstract

Method and apparatus for Internet Protocol Security (IPSec) and Network Address Translation (NAT) integration is described. Additionally, method and apparatus for enhanced security for communication over a network, and more particularly to control of security protocol negotiation to enable multiple clients to establish a virtual private network connection with a same remote address, is described. Furthermore, method and apparatus for enhanced security for communication over a network, and more particularly to NAT integration IPSec, is described. Moreover, method and apparatus for integration of NAT and source address security, including, but not limited to, determining whether a gateway computer is integrated for NAT and source address security, is described.

Description

発明の分野Field of Invention

本発明は、一般に、ネットワークを経て通信するための改善セキュリティ(enhanced security)に係る。   The present invention generally relates to enhanced security for communicating over a network.

発明の背景Background of the Invention

インターネットは、いまだに成長を続けるパブリックネットワークである。多くの会社は、自身の営業活動を容易にするためにインターネットを経ての通信に依存している。しかしながら、パブリックアクセスは、セキュリティの危険も伴う。インターネットにおけるセキュリティを改善するために、インターネット・エンジニアリング・タスク・フォース(IETF)は、インターネットプロトコルセキュリティ(「IPSec」)として集合的に知られている1組のプロトコルを設計した。このIPSecは、インターネット等のネットワークを経て通信するための認証及び暗号化を与えるように設計されている。ネットワークアドレス変換(NAT)も、インターネットの成長における大きな要因となっているが、不都合なことに、NATのオペレーションは、IPSecと合致していない。   The Internet is a public network that continues to grow. Many companies rely on communication over the Internet to facilitate their sales activities. However, public access also carries security risks. In order to improve security on the Internet, the Internet Engineering Task Force (IETF) has designed a set of protocols collectively known as Internet Protocol Security ("IPSec"). This IPSec is designed to provide authentication and encryption for communication over a network such as the Internet. Network address translation (NAT) is also a major factor in the growth of the Internet, but unfortunately, NAT operations are not consistent with IPSec.

NATは、ローカル内部ネットワークトラフィックに使用される1つ以上のプライベートIP(インターネットプロトコル)アドレスのセットと、内部アドレスが外部マシンとトラフィックを交換したいときに動的に選択されるべき1つ以上の「パブリック」IPアドレスとの間を変換する。NATゲートウェイにおける変換テーブルは、組織のインターネットトラフィックが、その組織に指定された1つ(又はそれ以上)のパブリックアドレスを共有するのを許す。新たな接続のための出て行くパケットは、新たなNAT変換テーブルエントリーをゲートウェイに生成させる。NAT変換テーブルは、逆方向に到着するトラフィック(即ち、パブリックインターネットから到来するトラフィック)に対して逆変換を実行するように使用される。   A NAT is a set of one or more private IP (Internet Protocol) addresses used for local internal network traffic, and one or more “to be dynamically selected when an internal address wants to exchange traffic with an external machine. Convert between public IP addresses. The translation table at the NAT gateway allows an organization's Internet traffic to share one (or more) public addresses specified for that organization. An outgoing packet for a new connection causes the gateway to create a new NAT translation table entry. The NAT translation table is used to perform inverse translation on traffic arriving in the reverse direction (ie, traffic coming from the public Internet).

LANのクライアントコンピュータは、静的に指定されたローカルIPアドレスを有してもよいが、従来、ダイナミックホストコンフィギュレーションプロトコル(DHCP)サーバーエンティティが、LANのクライアントコンピュータにプライベートIPアドレスを動的に指定する。このようなプライベートアドレスは、使用可能なプライベートIPアドレスのプールから独特に選択される。DHCPサーバープロセスは、しばしばNATゲートウェイに同一配置されるが、プライベートネットワーク内の個別装置においてホストとすることができる。従って、例えば、NATゲートウェイに対して(「背後の」)ローカル又はプライベートドメインの一部分であるクライアントコンピュータ又は他のローカルマシンからのIPパケットは、IPソース及び行先アドレスをパケットのIPヘッダに含むと共に、ソース及び行先ポートアドレスをパケットのユーザデータグラムプロトコル又は送信制御プロトコル(UDP又はTCP)ヘッダに含む。従来、パケットのIPソースアドレスフィールドは、クライアントコンピュータに静的に又は動的に指定されたプライベートIPアドレスを含むが、パケットのIP行先アドレスフィールドは、NATゲートウェイの背後にある別のマシンを行先とするパケットについてはプライベートIPアドレスを含み、或いはインターネットに接続されたリモートコンピュータのような、NATゲートウェイの背後にない別のマシンを行先とするパケットについてはパブリックIPアドレスを含む。   A LAN client computer may have a statically assigned local IP address, but traditionally a dynamic host configuration protocol (DHCP) server entity dynamically assigns a private IP address to a LAN client computer. To do. Such private addresses are uniquely selected from a pool of available private IP addresses. The DHCP server process is often co-located with the NAT gateway, but can be hosted on a separate device in the private network. Thus, for example, an IP packet from a client computer or other local machine that is part of a local or private domain ("behind") to the NAT gateway includes an IP source and destination address in the IP header of the packet, and Source and destination port addresses are included in the packet's User Datagram Protocol or Transmission Control Protocol (UDP or TCP) header. Traditionally, the IP source address field of a packet contains a private IP address that is statically or dynamically assigned to the client computer, whereas the IP destination address field of the packet is destined for another machine behind the NAT gateway. Packets that contain private IP addresses, or packets that are destined for another machine that is not behind a NAT gateway, such as a remote computer connected to the Internet.

後者の例では、NATゲートウェイは、出て行くパケットのIPソースアドレスフィールドを、ローカルに独特のプライベートIPアドレスから、パブリック又はグローバルに独特のIPアドレスに変更する。パケットの新たなソースアドレス、ここではパブリックIPソースアドレスは、従来、NATゲートウェイの外部インターフェイスのIPアドレスであるか、又はNATゲートウェイにより管理される使用可能なパブリックアドレスのプールから割り当てられたIPアドレスである。   In the latter example, the NAT gateway changes the IP source address field of the outgoing packet from a locally unique private IP address to a public or globally unique IP address. The new source address of the packet, here the public IP source address, is conventionally the IP address of the NAT gateway's external interface, or an IP address assigned from a pool of available public addresses managed by the NAT gateway. is there.

更に、NATゲートウェイは、更に多くの接続が同じIPアドレスを共有するのを許すために、トランスポート層アドレス(即ちTCP又はUDPポート)の変換を必要とすることがある。NATゲートウェイが、それ自身のパブリックIPアドレスを、ローカルマシンから出て行くパケットに対するパブリックIPアドレスとして使用する場合には、外部接続がNATゲートウェイコンピュータから出て来るように見える。2つのローカルクライアントマシンが同じリモートIPアドレスと通信して同じ行先TCP又はUDPポートを選択し、どのクライアントがトラフィックを返送すべきかNATゲートウェイが決定できないようにするのを防止するために、NATゲートウェイコンピュータの各接続を変換して、出て行くトラフィックが、独特に識別可能なIPパブリックアドレス及びTCP又はUDPソースポート対から出て来るように見えるようにする。このような事態が生じる機会は、微々たるものと思われるが、特に、ローカルクライアントの数が増加するにつれて考えられ、IPアドレス変換に加えてTCP又はUDPポート変換を実行することにより回避できる状態である。NATゲートウェイは、プライベート/パブリックIPアドレス関連性だけでなく、到来するトラフィックを変換及び転送するためのTCP又はUDPポート関連性も記憶するので、NATは、時々、ネットワークアドレス及びポート変換(NAPT)とも称される。   In addition, NAT gateways may require translation of transport layer addresses (ie TCP or UDP ports) to allow more connections to share the same IP address. If the NAT gateway uses its own public IP address as the public IP address for packets leaving the local machine, the external connection appears to come out of the NAT gateway computer. A NAT gateway computer to prevent two local client machines from communicating with the same remote IP address and selecting the same destination TCP or UDP port to prevent the NAT gateway from determining which clients should send traffic back To make outgoing traffic appear to come out of a uniquely identifiable IP public address and TCP or UDP source port pair. Opportunities such as this appear to be insignificant, especially as the number of local clients increases and can be avoided by performing TCP or UDP port translation in addition to IP address translation. is there. NAT gateways store not only private / public IP address associations, but also TCP or UDP port associations for translating and forwarding incoming traffic, so NAT sometimes also has network address and port translation (NAPT). Called.

IPSecは、改善セキュリティを要求する接続を支配するパラメータのネゴシエーションに一部依存する。ピアステーション間のネゴシエーションされたセキュリティパラメータを支配する他の既知のアイテムの中でも、認証及び/又は暗号化セッションキー、キーライフライム、暗号化又は認証アルゴリズムのような例示的アイテムを含むパラメータの集合は、セキュリティアソシエーション(SA)として集合的に知られている。SAネゴシエーションは、オークリーキー決定アルゴリズムを使用するインターネットセキュリティアソシエーション及びキーマネージメントプロトコル(ISAKMP)として知られているプロトコルに基づいて実行される。ISAKMP/オークリーは、より一般的には、インターネットキー交換(IKE)として知られている。IKEネゴシエーションの1つの結果は、暗号化及び暗号解読、及び/又はデジタル符牒メッセージ(即ちIPパケット)に使用されるべきランダム選択セッションキーに対するプライベートアグリーメントである。ISAKMP、IPSec制御プロトコルに対してUDPポート500が指定される。   IPSec relies in part on the negotiation of parameters governing connections that require improved security. Among other known items governing negotiated security parameters between peer stations, a set of parameters including exemplary items such as authentication and / or encryption session key, key life time, encryption or authentication algorithm is , Collectively known as Security Association (SA). SA negotiation is performed based on a protocol known as the Internet Security Association and Key Management Protocol (ISAKMP) that uses the Oakley key determination algorithm. ISAKMP / Oakley is more commonly known as Internet Key Exchange (IKE). One result of IKE negotiation is a private agreement on a random selection session key to be used for encryption and decryption and / or digital signature messages (ie, IP packets). A UDP port 500 is designated for the ISAKMP and IPSec control protocols.

IPSec保護のIPパケットは、IKEにおいて認証がネゴシエーションされたか、暗号化がネゴシエーションされたか又はその両方がネゴシエーションされたかに基づいて、IPSecセキュリティプロトコルヘッダの2つの形式の少なくとも1つを合体する。これらIPSecセキュリティプロトコルヘッダを明瞭化のために要約すると、認証がネゴシエーションされたときには「認証ヘッダ」(AH)が使用され、暗号化がネゴシエーションされたときには「カプセル化セキュリティペイロード」(ESP)ヘッダが使用され、IPパケットがAH及びESPの両ヘッダを含むとき、例えば、ESPがAHと共にネゴシエーションされたときには、ESPヘッダをカプセル化するAHが使用される。   IPSec protected IP packets coalesce at least one of the two forms of the IPSec security protocol header based on whether authentication was negotiated in IKE, encryption was negotiated, or both were negotiated. Summarizing these IPSec security protocol headers for clarity, the “authentication header” (AH) is used when authentication is negotiated and the “encapsulated security payload” (ESP) header is used when encryption is negotiated. When an IP packet includes both AH and ESP headers, for example, when ESP is negotiated with AH, AH that encapsulates the ESP header is used.

IPSecセキュリティアソシエーションが確立されると、各IPSec保護のパケットのインターネットプロトコルヘッダは、使用するセキュリティプロトコルの形式、即ちAH又はESP、その組合せを含む、を指定する。IPバージョン4(「IPv4」)では、IPv4ヘッダに8ビットの「プロトコル」フィールドがあり、これは、論理的にIP層の上にある次の上位層プロトコルを指示する。IPバージョン6(「IPv6」)では、IPv4ヘッダにおけるプロトコルフィールドと同様の機能を果たす8ビットの「次のヘッダ」フィールドがある。IPv4及びIPv6の両方において、0x32の値は、ESPを意味し、そして0x33は、AHを意味する。AH及びESPの両ヘッダは、セキュリティパラメータインデックス(SPI)として知られている数値に対して32ビットフィールドを含む。IPパケットにデジタル符牒が付けられた(AHを使用して)場合には、このようなIPパケットのIPヘッダのある重要な部分を変更しなくてもよく、さもなければ、このようなIPパケットを受信するIPSecピアステーションは、IPパケットのデジタル符牒が正しいことを確認できない。しかし、従来のオペレーション中には、NATゲートウェイが、出て行く(即ちローカルからリモート又はプライベートからパブリックへの)パケットに対するパケットのIPソースアドレス、又は到来する(即ちリモートからローカル又はパブリックからプライベートへの)パケットに対するパケットの行先アドレスを変更する。いずれの方向においても、IPヘッダのNAT変換は、AHデジタル符牒を確認するIPSecピアステーションの能力を妨げる。出て行くトラフィックの例では、介在するNATゲートウェイ又はルーターがパケットのプライベートIPソースアドレスをグローバル又はパブリックIPアドレスに変換すると、受信側コンピュータにおける認証が失敗となる。というのは、プライベートIPアドレスが、デジタル符牒の確認に、受信器にもはや得られないからである。これまで、NATゲートウェイを経て移動する間にIPパケットに必要な変更がなされるために、IPSec AHがNATに適合しない。   When an IPSec security association is established, the Internet protocol header of each IPSec protected packet specifies the type of security protocol to use, ie, AH or ESP, or a combination thereof. In IP version 4 (“IPv4”), there is an 8-bit “Protocol” field in the IPv4 header, which points to the next higher layer protocol that is logically above the IP layer. In IP version 6 (“IPv6”), there is an 8-bit “next header” field that performs the same function as the protocol field in the IPv4 header. In both IPv4 and IPv6, a value of 0x32 means ESP and 0x33 means AH. Both AH and ESP headers contain a 32-bit field for the numeric value known as the security parameter index (SPI). If an IP packet is digitally signed (using AH), certain important parts of the IP header of such an IP packet need not be changed, otherwise such IP packet The IPSec peer station receiving the IP packet cannot confirm that the digital signature of the IP packet is correct. However, during conventional operation, the NAT gateway is the IP source address of the packet for outgoing (ie local to remote or private to public) packets, or incoming (ie remote to local or public to private). ) Change the packet destination address for the packet. In either direction, NAT translation of the IP header interferes with the IPSec peer station's ability to verify AH digital signatures. In the outgoing traffic example, if the intervening NAT gateway or router translates the packet's private IP source address to a global or public IP address, authentication at the receiving computer fails. This is because the private IP address is no longer available to the receiver for digital signature verification. To date, IPSec AH is not compatible with NAT because of the necessary changes to IP packets while traveling through a NAT gateway.

暗号化されたが符牒が付けられないパケット(即ちAHを伴わずにESPにより保護されたIPSecパケット)の場合には、トランスポート層ヘッダが、NATゲートウェイを含む第三者に暗号解読できず(たとえ暗号解読できてもパケット内の通常の位置にはなく)、従って、出て行く及び/又は到来する変換のプロセスに使用するためのTCP又はUDPポート番号がNATゲートウェイに得られない。従って、IPSec ESP単独(即ちAHを伴わずにESPのみ)でも、認証ヘッダの存在に関わらず、基本的NATオペレーションの妨げとなる。拡張すると、AH及びESPの両方で保護されたIPパケットの場合、そのソースIPアドレスは変更しなくてよいが、ポート番号が暗号化される。   In the case of a packet that is encrypted but not signed (ie, an IPSec packet protected by ESP without AH), the transport layer header cannot be decrypted by a third party including the NAT gateway ( Even though it can be decrypted, it is not in a normal position within the packet), and therefore, no TCP or UDP port number is available to the NAT gateway for use in the outgoing and / or incoming translation process. Thus, IPSec ESP alone (ie, only ESP without AH) prevents basic NAT operation regardless of the presence of the authentication header. By extension, in the case of an IP packet protected by both AH and ESP, the source IP address does not need to be changed, but the port number is encrypted.

要約すれば、IPパケットには、AHヘッダ、ESPヘッダ又はその両方が追加されてもよい。NATについて重要なこととして、AH保護されたパケットのIPソースアドレスフィールドは、デジタル符牒アルゴリズムへの入力の一部分であるので、変更できない。ESP保護されたパケットについて重要なこととして、ピアステーションが受信パケットを暗号解読する能力を妨げずにIPソースアドレスを変更してもよいが、ソース及び行先ポート番号が暗号化され、従って、NATゲートウェイにより暗号解読することができない。従って、ESPについては、NATゲートウェイによりTCP又はUDPポート番号を暗号解読できないので、これまで、戻りトラフィックルートを明確にし、即ちESP保護されたパケットをどのプライベートステーションが受信すべきか決定するメカニズムが存在しない。更に、バーチャルプライベートネットワーク(VPN)に対するESP保護されたトラフィックは、これまで、VPNセッションの数を同じリモートIPアドレスに制限するか、或いは当該非標準変更をVPNクライアントに制限していた。   In summary, an AH header, an ESP header, or both may be added to an IP packet. Important for NAT, the IP source address field of an AH protected packet cannot be changed because it is part of the input to the digital signature algorithm. Importantly for ESP protected packets, the peer station may change the IP source address without interfering with the ability to decrypt the received packet, but the source and destination port numbers are encrypted, so the NAT gateway Cannot be decrypted. Thus, for ESP, the TCP or UDP port number cannot be decrypted by the NAT gateway, so far there is no mechanism to clarify the return traffic route, i.e. to determine which private stations should receive ESP protected packets. . Furthermore, ESP protected traffic for virtual private networks (VPNs) has so far limited the number of VPN sessions to the same remote IP address, or limited such non-standard changes to VPN clients.

従って、著しいオーバーヘッドを追加することがなく、且つIPSecのセキュリティアルゴリズムに適合しないIPソース又は行先アドレス及び/又はTCP又はUDPソース又は行先ポート変換を必要とすることもないNAT及びIPSecの一体化を提供することが要望され且つ有用となる。   Thus providing NAT and IPSec integration without adding significant overhead and without requiring IP source or destination address and / or TCP or UDP source or destination port translation that does not conform to IPSec security algorithms It is desired and useful to do.

発明の概要Summary of the Invention

本発明の態様は、アドレス変換構成のゲートウェイコンピュータの背後にあるクライアントコンピュータと、リモートコンピュータとの間でネットワークを経て通信するときの改善セキュリティ方法に係る。ゲートウェイコンピュータのクライアントコンピュータにはパブリックアドレスが与えられ、このパブリックアドレスは、ゲートウェイコンピュータパブリックアドレスと、ゲートウェイコンピュータパブリックアドレスのプールとの一方である。ゲートウェイコンピュータは、リモートコンピュータとのセキュリティアソシエーションネゴシエーションに参加する。ゲートウェイコンピュータは、クライアントコンピュータのローカルアドレスをリモートコンピュータの行先アドレスに関連して記録するための指示子としてセキュリティアソシエーションネゴシエーションを使用し、ローカルアドレス及び行先アドレスは、セキュリティアソシエーションネゴシエーションから得られて、ゲートウェイコンピュータによりアクセスできるデータ構造体に記憶される。   Aspects of the present invention relate to an improved security method when communicating over a network between a client computer behind a gateway computer configured for address translation and a remote computer. The client computer of the gateway computer is given a public address, which is one of the gateway computer public address and a pool of gateway computer public addresses. The gateway computer participates in the security association negotiation with the remote computer. The gateway computer uses security association negotiation as an indicator for recording the local address of the client computer in relation to the destination address of the remote computer, and the local address and destination address are obtained from the security association negotiation and the gateway computer Stored in a data structure accessible by.

本発明の別の態様は、インターネットプロトコルセキュリティ(IPSec)パケットをネットワークアドレス変換(NAT)ゲートウェイコンピュータで処理するための方法に係る。IPSecパケットのためのパブリックインターネットプロトコル(IP)ソースアドレスをNATゲートウェイコンピュータで指定できることをNATゲートウェイにおいてチェックし、そしてパブリックIPソースアドレスをNATゲートウェイコンピュータにより指定できることに応答して、IPSecパケットがローカルコンピュータにより送信されたものかどうかの確認がなされる。IPSecパケットがローカルコンピュータにより送信されたという確認に応答して、IPSecパケットは、パブリックIPソースアドレスを変換せずに行先アドレスへ送信される。   Another aspect of the invention relates to a method for processing Internet Protocol Security (IPSec) packets with a Network Address Translation (NAT) gateway computer. In response to checking at the NAT gateway that the public Internet Protocol (IP) source address for the IPSec packet can be specified at the NAT gateway computer, and in response to being able to specify the public IP source address at the NAT gateway computer, the IPSec packet is sent by the local computer. A check is made to see if it has been sent. In response to the confirmation that the IPSec packet was sent by the local computer, the IPSec packet is sent to the destination address without translating the public IP source address.

本発明の別の態様は、ソースアドレス及びゲートウェイコンピュータのパブリックアドレスを有する受信パケットをルーティングするための方法に係る。ゲートウェイコンピュータのパブリックアドレスに関連してリストされたマッピングテーブルのソースアドレスについてチェックし、受信パケットからセキュリティパラメータインデックスを得る。マッピングテーブルのセキュリティパラメータインデックスが受信パケットのソースアドレスに関連していることをチェックする。マッピングテーブルのセキュリティパラメータインデックスが受信パケットのソースアドレスに関連しているのを見つけるのに応答して、受信パケットは、マッピングテーブルにおけるセキュリティパラメータインデックス及びソースアドレスに関連したローカルアドレスへルーティングされ、ここで、ローカルアドレスは、ゲートウェイコンピュータのパブリックアドレスではない。   Another aspect of the invention relates to a method for routing a received packet having a source address and a public address of a gateway computer. Check the source address of the mapping table listed in relation to the public address of the gateway computer and obtain the security parameter index from the received packet. Check that the security parameter index of the mapping table is related to the source address of the received packet. In response to finding that the security parameter index of the mapping table is related to the source address of the received packet, the received packet is routed to the local address associated with the security parameter index in the mapping table and the source address, where The local address is not the public address of the gateway computer.

本発明の別の態様は、インターネットキー交換(IKE)制御方法に係る。マッピングテーブルと共に構成されたゲートウェイコンピュータが設けられる。ローカルクライアントコンピュータからゲートウェイコンピュータにパケットが受け取られ、このパケットがIKEパケットであるかどうか決定するためのチェックがなされる。パケットがIKEパケットであるのに応答して、マッピングテーブルにおけるIKEパケットのインターネットプロトコル(IP)行先アドレス及びローカル媒体アクセス制御(MAC)アドレスの両方に一致するマッピングテーブルの記録に対してチェックが行われる。マッピングテーブルの記録を識別するのに応答して、マッピングテーブルの記録に関連したセキュリティパラメータインデックスについてチェックが行われる。   Another aspect of the present invention relates to an Internet Key Exchange (IKE) control method. A gateway computer configured with a mapping table is provided. A packet is received from the local client computer to the gateway computer and a check is made to determine if this packet is an IKE packet. In response to the packet being an IKE packet, a check is made against the mapping table record that matches both the Internet Protocol (IP) destination address and the local medium access control (MAC) address of the IKE packet in the mapping table. . In response to identifying the mapping table record, a check is made for a security parameter index associated with the mapping table record.

本発明の別の態様は、ゲートウェイコンピュータのためのセキュリティネゴシエーション制御方法に係る。ゲートウェイコンピュータには、データ構造体へのアクセスが与えられる。ゲートウェイコンピュータにおいてパケットが受信され、そのパケットがセキュリティネゴシエーションパケットであるかどうか決定される。データ構造体は、パケットがセキュリティネゴシエーションの一部分であることに応答して、媒体アクセス制御(MAC)ソースアドレス及び行先アドレスについてチェックされる。データ構造体に行先アドレスが見つかり且つデータ構造体にその行先アドレスに関連したMACソースアドレスが見つからないのに応答して、行先アドレスのセキュリティ値がデータ構造体にあるかどうか決定される。行先アドレスのセキュリティ値がデータ構造体に見つからないのに応答して、セキュリティネゴシエーションパケットの送信が抑制される。   Another aspect of the present invention relates to a security negotiation control method for a gateway computer. The gateway computer is given access to the data structure. A packet is received at the gateway computer and it is determined whether the packet is a security negotiation packet. The data structure is checked for a medium access control (MAC) source address and a destination address in response to the packet being part of a security negotiation. In response to the destination address being found in the data structure and the MAC source address associated with the destination address not found in the data structure, it is determined whether the security value of the destination address is in the data structure. In response to the fact that the security value of the destination address is not found in the data structure, transmission of the security negotiation packet is suppressed.

本発明の別の態様は、クライアントコンピュータによってパケットを形成する方法に係る。ネットワークアドレス変換ゲートウェイコンピュータからクライアントコンピュータに対するパブリックアドレスが得られる。得られたパブリックアドレスは、パケットに対するソースアドレスとして使用される。   Another aspect of the invention relates to a method for forming a packet by a client computer. A public address for the client computer is obtained from the network address translation gateway computer. The obtained public address is used as the source address for the packet.

本発明の別の態様は、インターネットプロトコルセキュリティ(IPSec)保護されたパケットとのネットワークアドレス変換(NAT)一体化のためのマッピングテーブルを生成する方法に係る。ゲートウェイコンピュータには、マッピングテーブルへのアクセスが与えられる。ゲートウェイコンピュータにおいて、媒体アクセス制御アドレスに関連したクライアントコンピュータからパケットが受信され、媒体アクセス制御アドレスは、パケットのソースアドレスに加えて、パケットと共に送信される。ソースアドレスは、ゲートウェイコンピュータのパブリックアドレスである。ゲートウェイコンピュータは、パケットがセキュリティネゴシエーションパケットであるかどうか決定し、そしてパケットがセキュリティネゴシエーションパケットであるのに応答して、媒体アクセス制御アドレスは、この媒体アクセス制御アドレスに関連したパケットの行先アドレスと、これら媒体アクセス制御アドレス及び行先アドレスの少なくとも一方に関連したイニシエータ指示子と共に、マッピングテーブルに記録される。   Another aspect of the invention relates to a method for generating a mapping table for network address translation (NAT) integration with Internet Protocol Security (IPSec) protected packets. The gateway computer is given access to the mapping table. At the gateway computer, a packet is received from a client computer associated with the media access control address, and the media access control address is transmitted along with the packet in addition to the source address of the packet. The source address is the public address of the gateway computer. The gateway computer determines whether the packet is a security negotiation packet, and in response to the packet being a security negotiation packet, the media access control address is a destination address of the packet associated with the media access control address; The initiator is associated with at least one of the medium access control address and the destination address, and is recorded in the mapping table.

本発明の別の態様は、認証ヘッダ(AH)保護されたパケットとのネットワークアドレス変換(NAT)一体化のための方法に係る。クライアントコンピュータには、NATゲートウェイコンピュータからのパブリックアドレスが与えられる。クライアントコンピュータは、パブリックアドレスをソースアドレスとしてもつAH保護のパケットを形成し、そのAH保護のパケットをクライアントコンピュータからNATゲートウェイコンピュータへ送信する。   Another aspect of the invention relates to a method for network address translation (NAT) integration with an authentication header (AH) protected packet. The client computer is given a public address from the NAT gateway computer. The client computer forms an AH protected packet having the public address as a source address, and transmits the AH protected packet from the client computer to the NAT gateway computer.

本発明の別の態様は、ゲートウェイコンピュータのためのデータ構造体に係る。媒体アクセス制御アドレスフィールドと、この媒体アクセス制御アドレスフィールドに関連したローカルパブリックアドレスフィールドと、媒体アクセス制御アドレスフィールドに関連した非ローカルアドレスフィールドと、この非ローカルアドレスフィールドに関連したセキュリティパラメータインデックスフィールドとが設けられる。このセキュリティパラメータインデックスフィールドは、非ローカルマシンからの通信に関連したセキュリティパラメータインデックスを記憶するためのものである。   Another aspect of the invention relates to a data structure for a gateway computer. A medium access control address field, a local public address field associated with the medium access control address field, a non-local address field associated with the medium access control address field, and a security parameter index field associated with the non-local address field. Provided. The security parameter index field is for storing a security parameter index related to communication from a non-local machine.

本発明の別の態様は、ネットワークアドレス変換がソースアドレスセキュリティと一体化されたかどうか決定するためにクライアントコンピュータによりゲートウェイコンピュータを探査する方法に係る。第1クライアント識別子をもつクライアントコンピュータによりゲートウェイコンピュータについて第1アドレスに対する第1要求がなされる。この第1要求に応答してゲートウェイコンピュータにより第1アドレスが送信される。第2クライアント識別子をもつクライアントコンピュータによりゲートウェイコンピュータから第2アドレスについて第2要求がなされ、ここで、第2クライアント識別子は、第1クライアント識別子と同様である。第2アドレスは、第2要求に応答してゲートウェイコンピュータからクライアントコンピュータにより受信される。クライアントコンピュータは、要求された第2アドレスから、ネットワークアドレス変換がゲートウェイコンピュータに対するソースアドレスセキュリティと一体化されたかどうか決定する。   Another aspect of the invention relates to a method for probing a gateway computer by a client computer to determine whether network address translation is integrated with source address security. A first request for a first address is made for a gateway computer by a client computer having a first client identifier. In response to the first request, a first address is transmitted by the gateway computer. A second request is made for the second address from the gateway computer by the client computer having the second client identifier, where the second client identifier is similar to the first client identifier. The second address is received by the client computer from the gateway computer in response to the second request. The client computer determines from the requested second address whether network address translation is integrated with source address security for the gateway computer.

本発明の別の態様は、ソースアドレス保護のパケットに対するネットワークアドレス変換方法に係る。クライアントコンピュータは、アドレスサーバーコンピュータと通信するように設けられる。クライアントコンピュータからの第1要求が、アドレスサーバーコンピュータからの第1アドレスに対してなされ、クライアントコンピュータは、アドレスサーバーコンピュータにより媒体アクセス制御番号で識別できる。この第1要求に応答してアドレスサーバーコンピュータによりクライアントコンピュータにプライベートアドレスが与えられる。媒体アクセス制御番号の変更がクライアントコンピュータにより発生され、変更された媒体アクセス制御番号が与えられる。アドレスサーバーからの第2アドレスがクライアントコンピュータにより要求され、クライアントコンピュータは、アドレスサーバーコンピュータにより、変更された媒体アクセス制御番号で識別できる。アドレスサーバーコンピュータは、媒体アクセス制御番号をその変更された媒体アクセス制御番号に関係付けることにより、クライアントコンピュータと第1要求及び第2要求とを関連付けると共に、第2要求に応答してパブリックアドレスをクライアントコンピュータに与える。   Another aspect of the present invention relates to a network address translation method for source address protection packets. The client computer is provided to communicate with the address server computer. A first request from the client computer is made to the first address from the address server computer, and the client computer can be identified by the media access control number by the address server computer. In response to the first request, the address server computer provides a private address to the client computer. A change in the media access control number is generated by the client computer and given the changed media access control number. A second address from the address server is requested by the client computer, and the client computer can be identified by the address server computer with the changed media access control number. The address server computer associates the client computer with the first request and the second request by associating the media access control number with the changed media access control number, and in response to the second request, the address server computer sends the public address to the client. Give to computer.

本発明の前記特徴、効果及び目的がいかに達成されるかを詳細に理解するために、前記で簡単に要約した本発明を、添付図面に示されたその実施形態を参照して詳細に述べる。   For a detailed understanding of how the features, advantages and objects of the present invention are achieved, the present invention, briefly summarized above, will be described in detail with reference to the embodiments thereof illustrated in the accompanying drawings.

しかしながら、添付図面は、本発明の典型的な実施形態を示すに過ぎず、その範囲をこれに限定するものではなく、本発明は他のやり方でも等しく有効に実施できることに注意されたい。   It should be noted, however, that the accompanying drawings illustrate only typical embodiments of the present invention and are not intended to limit the scope thereof, and that the present invention can be equally effectively implemented in other ways.

詳細な説明Detailed description

本発明は、IPSec及びNATを共存させる方法及び装置であって、クライアントコンピュータの外部を行先とするパケットがプライベートIPソースアドレスを使用しないように構成されたときに、IPSecに適合しないNATのIPアドレス或いはTCP又はUDPポート変換をパケットに対して実行する必要がないメカニズムを生成するような方法及び装置を提供する。むしろ、クライアントのIPSecソフトウェアは、その外部を行先とするパケットを、NAT装置により与えられるパブリックIPアドレスを使用して生成する。   The present invention relates to a method and apparatus for coexisting IPSec and NAT, and when a packet destined for the outside of a client computer is configured not to use a private IP source address, the IP address of a NAT that does not conform to IPSec Alternatively, a method and apparatus is provided that creates a mechanism that does not require TCP or UDP port translation to be performed on the packet. Rather, the client's IPSec software generates a packet destined for the outside using the public IP address provided by the NAT device.

各リモートIPアドレスから各ローカルピアクライアントマシンへのトラフィックは、AH又はESPヘッダに独特のセキュリティパラメータインデックスを有し、これを、TCP又はUDPポートに代わって使用して、どのローカルステーションにIPSec保護のパケットを送信すべきかNATが判断するのを許すことができる。各ローカルクライアントが1つのリモートIPアドレスに話をし、他のクライアントがその同じリモートIPアドレスに話をしない限り、変換は、IPソースアドレスフィールドのみを含む従来のNAT変換でよい。しかしながら、多数のローカルクライアントマシンが、同じリモートIPアドレスと通信するように向けられた場合には、IPSec可能なNATゲートウェイは、ローカル/リモート対のマシン間で一度に1つのSAしかネゴシエーションされないよう確保するためにIKE抑制を実行する必要がある。セキュリティパラメータインデックスは、平文で使用されるが、プライベートにネゴシエーションされるという事実においてここには難解さが存在し、従って、NATゲートウェイは、リモートステーションが第1のIPSec保護のパケットをローカルステーションへ送信するまで使用中のネゴシエーションされたセキュリティパラメータインデックスへアクセスできない。そのセキュリティパラメータインデックスが分かると、他のローカルステーションは、そのリモートステーションとの自身のセキュリティアソシエーションを、一度に1つ、ネゴシエーションしてもよい。   The traffic from each remote IP address to each local peer client machine has a unique security parameter index in the AH or ESP header, which can be used in place of the TCP or UDP port for any local station to have IPSec protection. The NAT can be allowed to determine whether to send a packet. As long as each local client speaks to one remote IP address and no other clients speak to that same remote IP address, the translation may be a conventional NAT translation that includes only the IP source address field. However, if multiple local client machines are directed to communicate with the same remote IP address, the IPSec capable NAT gateway ensures that only one SA is negotiated at a time between the local / remote pair machines. In order to do this, it is necessary to execute IKE suppression. The security parameter index is used in clear text, but there is some confusion here in the fact that it is negotiated privately, so the NAT gateway sends the first IPSec protected packet to the local station. Until you have access to the negotiated security parameter index in use. Knowing the security parameter index, other local stations may negotiate their security associations with the remote station, one at a time.

本発明の一態様は、NATゲートウェイがクライアントコンピュータとリモートコンピュータとの間に配置された状況においてIPSecのAHの使用を許すための方法に係る。クライアントコンピュータは、ゲートウェイコンピュータからのパブリックアドレスを要求し、それに応答して、パブリックアドレスがクライアントコンピュータへ与えられる。IPSecセキュリティアソシエーションがリモートコンピュータとネゴシエーションされる。セキュリティアソシエーションのネゴシエーションは、クライアントのローカルアドレス(NAT/AH共存の場合のそのMACアドレス、NAT/ESP共存の場合のそのプライベートIPアドレス)と、リモートコンピュータのIPアドレスとの間の関連性を記録するためのトリガーとしてゲートウェイコンピュータにより使用され、ここで、ローカルアドレス及び行先アドレスは、第1の出て行くセキュリティアソシエーションネゴシエーションパケットから得られる。リモートコンピュータとのセキュリティアソシエーションネゴシエーションから生じるセキュリティパラメータインデックス値は、将来使用するためのローカルアドレスに関連して得られて記憶され、即ちリモートステーションがIPSec保護のトラフィックをローカルクライアントに向けて送信し始めるときに得られて記憶される。   One aspect of the invention relates to a method for allowing the use of IPSec AH in a situation where a NAT gateway is located between a client computer and a remote computer. The client computer requests a public address from the gateway computer, and in response, the public address is provided to the client computer. An IPSec security association is negotiated with the remote computer. The security association negotiation records the association between the client's local address (its MAC address in the case of NAT / AH coexistence, its private IP address in the case of NAT / ESP coexistence) and the IP address of the remote computer. Used as a trigger for the gateway computer, wherein the local address and the destination address are obtained from the first outgoing security association negotiation packet. The security parameter index value resulting from the security association negotiation with the remote computer is obtained and stored in relation to the local address for future use, i.e. when the remote station begins to send IPSec protected traffic to the local client Is obtained and stored.

本発明の一態様は、ゲートウェイコンピュータのためのデータ構造体に係る。このデータ構造体は、ローカルアドレス(媒体アクセス制御(MAC)又はIPアドレス)フィールドと、前記ローカルアドレスフィールドに関連したリモートIPアドレスフィールドと、ローカルアドレスフィールドに関連したリモート対ローカルセキュリティパラメータインデックス(SPI)フィールドと、リモートアドレスからローカルアドレスへ流れるトラフィックを特に識別するためのリモートアドレスフィールドとを備えている。リモート対ローカルSPIフィールドは、リモート配置のマシンからの少なくとも1つのセキュリティパラメータインデックスを記憶するためのものである。   One aspect of the invention relates to a data structure for a gateway computer. The data structure includes a local address (medium access control (MAC) or IP address) field, a remote IP address field associated with the local address field, and a remote-to-local security parameter index (SPI) associated with the local address field. And a remote address field for specifically identifying traffic flowing from the remote address to the local address. The remote to local SPI field is for storing at least one security parameter index from a remotely located machine.

本発明の一態様は、インターネットキー交換(IKE)抑制方法に係る。ゲートウェイコンピュータは、マッピングテーブルと共に構成される。受信したパケットは、IKEパケットであるかどうか決定するようにチェックされる。IKEパケットである場合には、マッピングテーブルをチェックして、行先(リモート)IPアドレスが、パケットのソースMAC又はIPアドレスにも一致するマッピングテーブルのエントリーに一致するかどうか調べる。更に、ISAKMP「イニシエータクッキー」値(64ビット)を、このマッピングテーブルのエントリー、即ちクライアントのMAC又はIPアドレスとリモートIPアドレスである一対のアドレスに一致するエントリー、との一致に対してチェックする。マッピングテーブルにおける一致するエントリーが見つかるのに応答して、ローカルクライアントとリモートIPアドレスとの間のセキュリティネゴシエーションが進行中であるか又は完了したという指示に対してチェックがなされる。リモート対ローカルのセキュリティパラメータインデックスがまだマッピングテーブルにない場合には、IKEパケットの送信が抑制される。   One aspect of the invention relates to an Internet Key Exchange (IKE) suppression method. The gateway computer is configured with a mapping table. The received packet is checked to determine if it is an IKE packet. If it is an IKE packet, the mapping table is checked to see if the destination (remote) IP address matches a mapping table entry that also matches the source MAC or IP address of the packet. In addition, the ISAKMP “initiator cookie” value (64 bits) is checked for a match between entries in this mapping table, ie, entries that match the client's MAC or IP address and a pair of addresses that are remote IP addresses. In response to finding a matching entry in the mapping table, a check is made for an indication that a security negotiation between the local client and the remote IP address is in progress or has been completed. If the remote-to-local security parameter index is not already in the mapping table, transmission of the IKE packet is suppressed.

本発明の一態様は、ゲートウェイルーティング方法にある。リモート対ローカルパケットは、マッピングテーブルエントリーに対する有効なセキュリティパラメータインデックスが、パケットのリモートIPアドレス(リモート対ローカルパケットのIPソースアドレス)及びそのIP行先アドレスに一致するかどうかについてチェックされ、これは、ゲートウェイマシンがローカルクライアントのMACアドレスを使用してマシンに割り当てたパブリックIPアドレスでなければならない。このリモートIPアドレスに関連した一致するリモート対ローカルセキュリティパラメータインデックスが見つかった場合には、マッピングテーブルのその行のコンテンツで指示されるように、そのパブリックIP行先アドレス及びそのMACアドレス、又はそのプライベートIPアドレスを使用して、パケットがローカルクライアントへ転送される。プライベートIPアドレスフィールドがいっぱいになると、パブリックIPアドレス及びMACアドレスフィールドのコンテンツがブランクになる。   One aspect of the present invention resides in a gateway routing method. The remote-to-local packet is checked to see if the valid security parameter index for the mapping table entry matches the packet's remote IP address (the IP source address of the remote-to-local packet) and its IP destination address, which is the gateway The machine must be the public IP address assigned to the machine using the local client's MAC address. If a matching remote-to-local security parameter index associated with this remote IP address is found, its public IP destination address and its MAC address, or its private IP, as indicated by the contents of that row in the mapping table Using the address, the packet is forwarded to the local client. When the private IP address field is full, the contents of the public IP address and MAC address fields are blank.

本発明の一態様は、NATゲートウェイコンピュータによりIPSecのAHパケットを処理するための方法に係る。ローカル対リモートのIPSecパケットに対するIPソースアドレスフィールドは、パケットのMACソースアドレスフィールドに見つかったMACアドレスを処理するステーションに指定されたプライベートアドレスを含むかパブリックアドレスを含むかを調べるようにチェックされる。パケットのIPソースアドレスがパブリックアドレスであることをゲートウェイが発見し、このパブリックアドレスは、パケットのMACソースアドレスフィールドにおけるMACアドレスと同じMACアドレスを有するマシンに指定したものであることもゲートウェイが知っている場合には、IPSecパケットは、NATゲートウェイコンピュータにより不変のまま(IPv4パケットの場合にはTTLを減少し、IPチェック和を更新することを除いて;IPv6パケットは、NATが要求されないほど豊富であり、従って、IPv6の場合IPSec対NATの問題はない)送信される。   One aspect of the invention relates to a method for processing IPSec AH packets by a NAT gateway computer. The IP source address field for a local-to-remote IPSec packet is checked to see if it contains a private address or a public address specified for the station processing the MAC address found in the MAC source address field of the packet. The gateway also discovers that the IP source address of the packet is a public address, and that the gateway also knows that this public address was specified for a machine with the same MAC address as the MAC source address field of the packet If so, the IPSec packet remains unchanged by the NAT gateway computer (except for reducing the TTL and updating the IP checksum for IPv4 packets; the IPv6 packet is so abundant that NAT is not required. Yes, so there is no IPSec vs. NAT issue for IPv6).

リモート対ローカルIPSecパケットのIPソースアドレスフィールドは、マッピングテーブルにおけるリモートIPアドレス列に対して一致がとられ、パケットのSPIは、このリモートIPアドレスに関連したマッピングテーブルの行に記憶された予想されるリモート対ローカルSPIに対して一致がとられる。一致するマッピングテーブルエントリーが見つかった場合は、マッピングテーブルの一致する行から抽出されたローカルクライアントのMACアドレス(又はプライベートIPアドレス)へパケットが転送される。   The IP source address field of the remote-to-local IPSec packet is matched against the remote IP address string in the mapping table, and the packet's SPI is expected to be stored in the mapping table row associated with this remote IP address. A match is made against the remote versus local SPI. If a matching mapping table entry is found, the packet is forwarded to the local client MAC address (or private IP address) extracted from the matching row in the mapping table.

以下の説明では、本発明をより完全に理解するために多数の特定の細部について述べる。しかしながら、当業者であれば、本発明は、これら特定の細部の1つ以上を伴わずに実施できることが明らかであろう。他の場合に、本発明が不明瞭になるのを回避するために良く知られた特徴は説明しない。   In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without one or more of these specific details. In other instances, well-known features are not described in order to avoid obscuring the present invention.

図1は、本発明の1つ以上の態様に基づくコンピュータシステム10の実施形態を示すブロック図である。このコンピュータシステム10は、CPU11と、システムメモリ13と、入力/出力(I/O)インターフェイス12と、NIC100とを備えている。NIC100は、I/Oとしてネットワーク110から/へ結合されてもよい。NIC100は、ローカルメモリ112を含む。   FIG. 1 is a block diagram illustrating an embodiment of a computer system 10 in accordance with one or more aspects of the present invention. The computer system 10 includes a CPU 11, a system memory 13, an input / output (I / O) interface 12, and a NIC 100. NIC 100 may be coupled to / from network 110 as an I / O. The NIC 100 includes a local memory 112.

図2は、本発明の1つ以上の態様に基づくネットワーク110の実施形態を示すネットワーク図である。ネットワーク110は、ワイドエリアネットワーク(WAN)104を備えている。このWAN104は、インターネットでもよいし、インターネットサブネットワーク(「サブネット」)でもよいし、又は他のワイドエリアネットワークでもよい。1つ以上のコンピュータシステム101をWAN104に時々ログオンすることができる。重要なことに、1つ以上のコンピュータシステム101がサーバーとなってもよい。更に、DHCPサーバー/NATゲートウェイ(「ゲートウェイ」)106及び107は、各々LAN102及び103に結合される。クライアントコンピュータ106−A、106−B及び106−Cは、LAN102を経てゲートウェイ106との通信状態に入ってもよい。同様に、クライアントコンピュータ107−A、107−B及び107−Cは、LAN103を経てゲートウェイ107との通信状態に入ってもよい。NATゲートウェイ106及び107は、ルーター108を経てWAN104に結合されてもよい。或いはまた、ゲートウェイ106及び107は、ゲートウェイ−ルーター、即ちNATゲートウェイとルーターとの組合体でもよく、また、その一体化装置にDHCPサーバーファンクションが組み込まれてもよい。   FIG. 2 is a network diagram illustrating an embodiment of a network 110 in accordance with one or more aspects of the present invention. The network 110 includes a wide area network (WAN) 104. The WAN 104 may be the Internet, an Internet subnetwork (“subnet”), or other wide area network. One or more computer systems 101 may be logged on to the WAN 104 from time to time. Importantly, one or more computer systems 101 may be servers. In addition, DHCP server / NAT gateways (“gateways”) 106 and 107 are coupled to the LANs 102 and 103, respectively. Client computers 106 -A, 106 -B and 106 -C may enter a state of communication with gateway 106 via LAN 102. Similarly, the client computers 107 -A, 107 -B and 107 -C may enter a communication state with the gateway 107 via the LAN 103. NAT gateways 106 and 107 may be coupled to WAN 104 via router 108. Alternatively, the gateways 106 and 107 may be gateway-routers, ie, NAT gateway and router combinations, and DHCP server functions may be incorporated into the integrated device.

ネットワーク110は、単なる実施例に過ぎず、より少数の又は多数のコンピュータ、ゲートウェイ、LAN又はWAN、及びその組合体が使用されてもよい。更に、クライアントコンピュータ106−A、106−B及び106−Cは、その各々がNIC100をローカルメモリ112と共に有するという点で図1のコンピュータシステム10と同様に構成されてもよい。明瞭化のため、他の構成体をここに述べるように使用してもよいが、この説明の残り部分は、リモートサーバー101と通信するためにルーター108を経てインターネット104に結合されたDHCP/NATゲートウェイ106の背後にあるクライアントコンピュータ106−Aについてである。このようなネットワークの従来の例は、インターネットを経て会社のサーバーに接続するスモールオフィス/ホームオフィス(SOHO)ネットワークの社員でよい。明瞭化のため、ローカルアドレスは、ゲートウェイにより指定されるアドレスを指し、非ローカルアドレスは、他の全てのアドレスを指す。   Network 110 is merely an example, and fewer or more computers, gateways, LANs or WANs, and combinations thereof may be used. Further, the client computers 106-A, 106-B, and 106-C may be configured similarly to the computer system 10 of FIG. 1 in that each has a NIC 100 with a local memory 112. For clarity, other constructs may be used as described herein, but the remainder of this description is DHCP / NAT coupled to the Internet 104 via the router 108 to communicate with the remote server 101. This is for the client computer 106 -A behind the gateway 106. A conventional example of such a network may be an employee of a small office / home office (SOHO) network that connects to a company server via the Internet. For clarity, the local address refers to the address specified by the gateway, and the non-local address refers to all other addresses.

図3は、本発明の1つ以上の態様に基づくIPSec/NAT一体化プロセス200一部分の実施形態を示すフローチャートである。一体化プロセス200は、IPSec/NATクライアント側一体化サブプロセス299と、IPSec/NATゲートウェイ側一体化サブプロセス298とを含む。図3を参照すると共に、図1及び2を再度参照して、一体化プロセス200について説明する。   FIG. 3 is a flowchart illustrating an embodiment of a portion of an IPSec / NAT integration process 200 in accordance with one or more aspects of the present invention. The integration process 200 includes an IPSec / NAT client side integration subprocess 299 and an IPSec / NAT gateway side integration subprocess 298. With reference to FIG. 3 and with reference again to FIGS. 1 and 2, the integration process 200 will be described.

ステップ201において、クライアントコンピュータ(又は「クライアント」)106−Aのようなクライアントコンピュータは、ゲートウェイ106のようなゲートウェイからIPアドレスを要求する。ステップ201におけるこのような要求は、クライアントコンピュータ106−Aにプログラムされたソフトウェアによって行なわれてもよいし、更に詳細には、「ネットワークインターフェイスカード」即ち「NIC」100のようなネットワークインターフェイスのためのドライバの一部分であってもよいし、或いはローカルメモリ112に記憶されたプログラムコード299(これに限定されないが)を含むNICのハードウェア又はファームウェアの一部分であってもよい。   In step 201, a client computer, such as a client computer (or “client”) 106 -A, requests an IP address from a gateway, such as gateway 106. Such a request in step 201 may be made by software programmed in the client computer 106-A, and more specifically for a network interface such as a “network interface card” or “NIC” 100. It may be part of the driver, or part of NIC hardware or firmware, including but not limited to program code 299 stored in local memory 112.

クライアント106−AがプライベートIPアドレスを受信した場合に、クライアント106Aは、クライアント106Aがプライベートアドレスドメインの外部にトラフィックを送信できるのでNATゲートウェイが使用されることを知る。プライベートIPアドレスのリストは良く知られているので、クライアント106Aは、それにプライベートIPアドレスが指定されたかどうか決定するテストを行うことができる。ステップ202において、クライアント106Aは、IPアドレスに対する別の要求を提出し、このときには、そのDHCPクライアント識別子(そのMACアドレスとしても知られている)におけるローカルビットを反転する。良く知られたように、ゲートウェイ及びクライアントの両方を含むLANの各コンピュータには、このようなLANに対する独特の番号、即ちMACアドレスが指定される。従来のMACアドレスは、組織独特の識別子(OUI)及び製造者独特の識別子として知られている2つの24ビットセグメントに分割された48ビット番号である。OUIの第1バイトは、最下位ビット(LSB)がマルチキャストビットである。最上位バイトにおける最下位の次のビットがローカルビットである。   When client 106-A receives the private IP address, client 106A knows that the NAT gateway is used because client 106A can send traffic outside the private address domain. Since the list of private IP addresses is well known, the client 106A can perform a test to determine whether a private IP address has been assigned to it. In step 202, client 106A submits another request for an IP address, this time inverting the local bit in its DHCP client identifier (also known as its MAC address). As is well known, each computer in a LAN, including both gateways and clients, is assigned a unique number, or MAC address, for such a LAN. Traditional MAC addresses are 48-bit numbers divided into two 24-bit segments known as organization-specific identifiers (OUI) and manufacturer-specific identifiers. In the first byte of the OUI, the least significant bit (LSB) is a multicast bit. The least significant next bit in the most significant byte is the local bit.

例えば、NATゲートウェイ106におけるDHCPプロセスは、LAN102のようなLANにログオンされたクライアントコンピュータ106−Aに、ステップ201からの第1クライアント識別子を伴う第1DHCP要求に応答して、ステップ251でプライベートIPアドレスを指定し、次いで、第2DHCP要求が、ステップ202において、LAN102にログオンされたクライアントコンピュータ106−Aからの異なるクライアント識別子と共に、NATゲートウェイ106へ行なわれてもよい。この第2のクライアント識別子が、それに関連する第1クライアント識別子から導出されるのが重要である。従って、ゲートウェイ106が、ステップ252における暗示的チェックで示されるように、NAT以上にIPSecをサポートする場合には、2つのMACアドレスが同じ要求ステーションからのものであると認識できる。AH IPSecをサポートするように構成されたNATゲートウェイがこの決定を行い、従って、第2のプライベートIPアドレスを送信せず、むしろ、ステップ255においてパブリックIPアドレスを送信する。しかしながら、このようなNATゲートウェイがAH IPSecをサポートしない場合には、DHCPサーバーがステップ253において第2のプライベートIPアドレスを指定する。というのは、これは、各ローカルビット値のみが異なる2つのMACアドレス間の関係に起因しないからである。   For example, the DHCP process at the NAT gateway 106 responds to the first DHCP request with the first client identifier from step 201 to the client computer 106-A logged on to the LAN, such as the LAN 102, and at step 251 the private IP address. Then, a second DHCP request may be made to the NAT gateway 106 in step 202 with a different client identifier from the client computer 106-A logged on to the LAN 102. Importantly, this second client identifier is derived from the associated first client identifier. Thus, if the gateway 106 supports IPSec beyond NAT, as indicated by the implicit check in step 252, it can be recognized that the two MAC addresses are from the same requesting station. A NAT gateway configured to support AH IPSec makes this determination and therefore does not send a second private IP address, but rather a public IP address in step 255. However, if such a NAT gateway does not support AH IPSec, the DHCP server specifies a second private IP address in step 253. This is because it does not result from the relationship between two MAC addresses that differ only in their local bit values.

ゲートウェイ106がAH IPSecをNATと共に実行するように構成された場合には、ステップ254において、ゲートウェイ106は、クライアントコンピュータ106−AのMACアドレスを、マッピングテーブルに、パブリックIPソースアドレスと共にゲートウェイ106のパケットを送信するのに適格なものとして記録してもよい。或いはまた、ゲートウェイ106は、以下に詳細に述べるように、IKEを待機してもよい。   If the gateway 106 is configured to run AH IPSec with NAT, at step 254, the gateway 106 sends the MAC address of the client computer 106-A to the mapping table in the mapping table along with the public IP source address. May be recorded as eligible for transmission. Alternatively, the gateway 106 may wait for an IKE, as described in detail below.

ステップ201の後のプライベートIPアドレスの指定に基づいて、クライアント106−Aは、NATゲートウェイ106の存在を予め推測することができる。第2のプライベートIPアドレスの指定は、ステップ204において、クライアント106−Aに、NATゲートウェイ106がAH IPSecをサポートしないことを指示する。しかしながら、クライアント106−Aが、ステップ202からのDHCP要求に応答して、非プライベート(即ちパブリック)IPアドレスを受信した場合には、クライアント106−Aは、それに応答して、ステップ206で、NATゲートウェイ106がAH IPSecをサポートすることを知り、ステップ206において、以下に詳細に述べるように、MACアドレスに関連してパブリックIPアドレスを記録する。更に、NATゲートウェイ106がAH IPSecをサポートする場合には、クライアント106−Aがその後にIKEを使用してAH及び/又はESPをネゴシエーションしてもよく、この能力は、ステップ207に示すように注目又は記録されてもよい。一方、クライアント106−Aは、NATゲートウェイ106がAH IPSecをサポートしないことが検出された場合には、ESPをIKEのみとネゴシエーションすることに制限される。   Based on the designation of the private IP address after step 201, the client 106-A can infer the presence of the NAT gateway 106 in advance. The designation of the second private IP address indicates in step 204 to client 106-A that NAT gateway 106 does not support AH IPSec. However, if client 106-A receives a non-private (ie, public) IP address in response to a DHCP request from step 202, client 106-A responds with a NAT at step 206 in response. Knowing that the gateway 106 supports AH IPSec, step 206 records the public IP address in relation to the MAC address, as described in detail below. Further, if the NAT gateway 106 supports AH IPSec, the client 106-A may subsequently negotiate AH and / or ESP using IKE, and this capability is noted in step 207. Or it may be recorded. On the other hand, if it is detected that the NAT gateway 106 does not support AH IPSec, the client 106-A is limited to negotiating ESP with only IKE.

NATゲートウェイ106におけるDHCPサーバーは、最初のDHCP要求で供給されたクライアント識別子が、ローカルビットが反転している点だけ、その後のDHCPクライアント識別子と相違するときに、2つのMACアドレスを同じクライアントコンピュータ106−Aに対応するものとして相関するように構成される。換言すれば、ローカルビットを除くと、各DHCPクライアント識別子は、他の点で同一である。このようなDHCPサーバーは、マッピングテーブルに記憶された2つのMACアドレスがローカルビットだけ異なることに応答して、ゲートウェイ106に得られるパブリックアドレス(の1つ)をクライアントコンピュータ106−Aへ送信するようにプログラムされ、これにより、このようなパブリックIPアドレスを、以下に詳細に述べるように、AH又はESPとAH IPSecとのセッションに使用することができる。   The DHCP server at the NAT gateway 106 sets the two MAC addresses to the same client computer 106 when the client identifier supplied in the initial DHCP request differs from the subsequent DHCP client identifier only in that the local bit is inverted. Configured to correlate as corresponding to -A. In other words, with the exception of local bits, each DHCP client identifier is otherwise identical. Such a DHCP server is responsive to the fact that the two MAC addresses stored in the mapping table differ by a local bit so as to send the public address (one of) obtained to the gateway 106 to the client computer 106-A. So that such public IP addresses can be used for AH or ESP and AH IPSec sessions, as described in detail below.

しかしながら、DHCPサーバーが、上述したように、クライアント識別子のローカルビット値だけが相違するという同じクライアントコンピュータ106−Aからの2つのDHCP要求の相関をサポートしない場合には、第2のプライベートIPアドレスが、要求を発しているクライアントコンピュータ106−Aへ送信される。クライアントコンピュータ106−Aは、第2のプライベートアドレスを受信すると、DHCPを使用して、ステップ204において、プライベートIPアドレスの一方を解除してプライベートアドレスのプールへ戻し、それを別のローカルステーションに指定できるようにする。従って、第2のプライベートIPアドレスがDHCPサーバーから送信された場合には、これが、クライアントコンピュータ106−Aに、NATが使用されていること、及びパブリックIPアドレス指定能力が設けられていないことを通知する。換言すれば、ゲートウェイ106は、NATをサポートするが、ここに定義するアルゴリズムに基づくAH IPSec及びNATをサポートしない。従って、ステップ205において、クライアントコンピュータは、以下に詳細に述べる理由で、ESPベースのセキュリティアソシエーションのIKEネゴシエーションしか安全にサポートできないことを決定する。   However, if the DHCP server does not support correlation of two DHCP requests from the same client computer 106-A, as described above, only the local bit value of the client identifier is different, the second private IP address is Sent to the requesting client computer 106-A. When client computer 106-A receives the second private address, it uses DHCP to release one of the private IP addresses back to the pool of private addresses in step 204 and designate it as another local station. It can be so. Thus, if the second private IP address is sent from the DHCP server, this informs the client computer 106-A that NAT is being used and that public IP addressing capability is not provided. To do. In other words, the gateway 106 supports NAT but does not support AH IPSec and NAT based on the algorithm defined herein. Accordingly, at step 205, the client computer determines that only IKE negotiations of ESP-based security associations can be securely supported for reasons detailed below.

注目すべきことに、ESPのみのIPSecに対する本発明の1つ以上の態様ではパブリックIPアドレスが必要とされない。しかしながら、従来は、IKEネゴシエーションの結果として、AHのみ、ESPのみ、又はAHを伴うESPのいずれのIPSecが使用されようとするか前もって分からない。従って、プロセス200は、IKEに対してAHのみ又はAHを伴うESPのIPSecが合意される場合のようにパブリックIPアドレスを前もって要求する。もし入手できれば、パブリックIPソースアドレスを使用して、IPSec通信が実行されているというフラグをゲートウェイ106に立てる。また、ゲートウェイ106は、クライアント106AがパブリックIPアドレスを要求するためにローカルビットが反転されたDHCPクライアント識別子を送信したこと(及びゲートウェイ106により1つが指定されたこと)を観察することにより、且つクライアント106−AからのIKE交換の開始に基づいて、IPSec通信が実行されているという手掛りを得ることもできる。更に、ここに述べるパブリックIPソースアドレスは、ESPのみのIPSec、並びにAHのみ又はAHを伴うESPのIPSecのトラフィックに対して作用するので、IKE及び他の全てのIPSecトラフィックに対してパブリックIPソースアドレスが入手できるときにそれを使用することにより、首尾良いIPSecオペレーションの見込みが高くなる。ステップ210では、クライアントコンピュータ106−AがIKEネゴシエーションを開始する。IKEネゴシエーションは、プロトコルスタックがプライベートIPアドレスでスタートしてIKE開始パケットを生成するという従来のやり方で進められる。注目すべきことに、IKEネゴシエーションの場合に、IKEが「NAT保安」プロトコルであるので、プライベートIPアドレスは、IPソースアドレスとして使用されてもよい。クライアント106−Aは、パブリックIPアドレスが入手できる場合には、IKEネゴシエーションを開始するときにパブリックIPアドレスをIPソースアドレスとして使用するように選択してもよい。   Notably, one or more aspects of the present invention for ESP-only IPSec do not require a public IP address. However, conventionally, it is not known in advance whether IPSec of AH only, ESP only, or ESP with AH will be used as a result of IKE negotiation. Thus, the process 200 requests a public IP address in advance, such as when an ASP alone or an ESP IPSec with an AH is agreed upon with the IKE. If available, the public IP source address is used to flag the gateway 106 that IPSec communication is being performed. The gateway 106 also observes that the client 106A has sent a DHCP client identifier with the local bit inverted to request a public IP address (and that one was specified by the gateway 106), and the client 106A Based on the start of IKE exchange from 106-A, a clue that IPSec communication is being executed can also be obtained. In addition, the public IP source address described here works for ESP-only IPSec and ESP IPSec traffic with AH only or with AH, so the public IP source address for IKE and all other IPSec traffic. Using it when it is available increases the likelihood of a successful IPSec operation. In step 210, client computer 106-A initiates an IKE negotiation. The IKE negotiation proceeds in a conventional manner where the protocol stack starts with a private IP address and generates an IKE start packet. Notably, in the case of IKE negotiation, the private IP address may be used as the IP source address because IKE is a “NAT security” protocol. If a public IP address is available, client 106-A may choose to use the public IP address as the IP source address when initiating IKE negotiation.

或いはまた、クライアントコンピュータ106−Aは、パブリックIPアドレスを得る前にIKEでスタートしてもよい。しかしながら、ゲートウェイ106がパブリックIPアドレスを与えるように構成されていない(又はこのような動作を行なうことができない)場合には、このようなゲートウェイ106に合致しないAHのみ又はAHを伴うESPを使用するための合意を含んでもよいIKEネゴシエーションが完了するまで、このことが発見されない。従って、新たなIKEを実行することが必要になる。クライアントコンピュータ106−Aは、ゲートウェイ自身のパブリックアドレスであるか或いはゲートウェイ106が管理するパブリックアドレスのプールから選択されたアドレスであるパブリックアドレスをそのIPソースアドレスとして有するパケットを形成してもよい。クライアントコンピュータ106Aは、プライベートIPソースアドレスを有するパケットを形成してもよい。換言すれば、クライアントコンピュータ106−Aは、プライベートIPアドレスとパブリックIPアドレスとの間で選択を行うように構成されてもよく、この選択は、ある場合にはその利用性を前提とし、別の場合には、もし入手できれば、IPSecプロトコルを使用すべきかどうかを前提とする。パブリックアドレスが得られると、このようなパブリックアドレスをソースアドレスとしてパケットを形成することが従来のやり方で行なわれてもよい。後者の場合に、AH IPSec NATが許されれば、IPSec保護のトラフィック及び非IPSec保護のトラフィックの両方が流れてもよい。非IPSec保護のトラフィックは、従来のNATを使用してもよいことを想起されたい。また、LANのようなプライベートドメイン内で、クライアント106−Aは、別のローカルクライアントとのIPSec保護通信に参加してもよいし、しなくてもよい。IPSecとのイントラドメイン通信のこのような例では、たとえIPSecが使用されていても、IP行先アドレスがクライアントコンピュータ106−Aと同じプライベートアドレスドメイン内にあるので、パブリックIPアドレスを使用する必要はない。従って、クライアント106−Aのユーザは、IPSecをもつピアステーションと通信すべきかどうか決定し、更に、このようなピアステーションが、このような通信の場合に、クライアントコンピュータ106−Aのプライベートアドレスドメインに対して内部であり即ちローカルドメインアドレスを有するかどうか決定してもよい。   Alternatively, the client computer 106-A may start with an IKE before obtaining a public IP address. However, if the gateway 106 is not configured to provide a public IP address (or cannot perform such operations), use only AH or ESP with AH that does not match such gateway 106. This is not discovered until an IKE negotiation is completed that may include an agreement for Therefore, it is necessary to execute a new IKE. The client computer 106-A may form a packet having as its IP source address a public address that is a public address of the gateway itself or an address selected from a pool of public addresses managed by the gateway 106. Client computer 106A may form a packet having a private IP source address. In other words, the client computer 106-A may be configured to make a selection between a private IP address and a public IP address, and this selection may be based on availability in some cases, In some cases, it is assumed that the IPSec protocol should be used if available. Once a public address is obtained, a packet may be formed in a conventional manner using such a public address as a source address. In the latter case, if AH IPSec NAT is allowed, both IPSec protected traffic and non-IPSec protected traffic may flow. Recall that non-IPSec protected traffic may use conventional NAT. Also, in a private domain such as a LAN, the client 106-A may or may not participate in IPSec protected communication with another local client. In such an example of intra-domain communication with IPSec, even if IPSec is used, it is not necessary to use a public IP address because the IP destination address is in the same private address domain as client computer 106-A. . Thus, the user of client 106-A decides whether to communicate with a peer station with IPSec, and, in the case of such communication, such a peer station is in the private address domain of client computer 106-A. Alternatively, it may be determined whether it is internal, i.e. has a local domain address.

クライアントコンピュータによりステップ210においてIKEが開始されるのに応答して、ゲートウェイ106は、ステップ260において、IKE初期化パケットの受信を使用して、このようなクライアントコンピュータのMACアドレスと、このようなIKE初期化パケットの行先IPアドレスとを記録してもよい。NATゲートウェイ106は、パケットが、ソースポート及び行先ポートの両方が500に等しいUDPパケットであることをチェックすることにより、パケットがIKEパケットであることを決定してもよい。このMACアドレスをもつIKEに対する出て行くトラフィックが送信されたことを指示するために、ステップ260において、ビット即ちペンディングビットがセットされてもよい。このIKEパケットの行先IPアドレスは、上述したリモートサーバーのようなリモートマシンに対するものである。ゲートウェイ106は、IKEネゴシエーションにはいずれにせよ直接的に参加しないが、その他IKEパケットのNAT変換も考えられ、これは、クライアント106−AがIKEパケットのソースアドレスのようなプライベートIPアドレスを使用する場合だけである。IPSecをサポートするNATゲートウェイは、IKE抑制をサポートしなければならず、これは、いかなる所与の時間にも1つのIKEネゴシエーションしか進行せず、従って、IKEパケットをネットワークアドレス変換するときには、IPアドレス変換だけで充分であるから、ポート変換は必要でないことを意味する点に注意されたい。   In response to the IKE being initiated at step 210 by the client computer, the gateway 106 uses the receipt of the IKE initialization packet at step 260 to identify the MAC address of such client computer and such IKE. The destination IP address of the initialization packet may be recorded. The NAT gateway 106 may determine that the packet is an IKE packet by checking that the packet is a UDP packet where both the source and destination ports are equal to 500. In step 260, a bit or pending bit may be set to indicate that outgoing traffic for the IKE with this MAC address has been transmitted. The destination IP address of this IKE packet is for a remote machine such as the remote server described above. The gateway 106 does not participate directly in the IKE negotiation anyway, but other NAT translation of the IKE packet is also possible, which is the client 106-A uses a private IP address such as the source address of the IKE packet. Only if. A NAT gateway that supports IPSec must support IKE suppression, which can only proceed with one IKE negotiation at any given time, so when translating an IKE packet to a network address, the IP address Note that port conversion is not necessary because only conversion is sufficient.

図5A及び5Bには、本発明の1つ以上の態様に基づく異なる時間におけるIPSec割り当てマッピングテーブル(IPSAMT)300の実施形態が示されている。このIPSAMT300は、開始される各IKEに対する行と、タイムスタンプ305、ISAKMPイニシエータクッキー307、IPSecプロトコル識別子、ローカルクライアントMACアドレス301、ローカルクライアントパブリックIPアドレス309、ローカルクライアントプライベートIPアドレス306、リモート対ローカルセキュリティパラメータインデックス302、ペンディングビット303、及びリモートIPアドレス304の各フィールドに対する列とを備えている。   5A and 5B illustrate an embodiment of an IPSec allocation mapping table (IPSAMT) 300 at different times in accordance with one or more aspects of the present invention. This IPSAMT 300 includes a row for each IKE to be started, a time stamp 305, an ISAKMP initiator cookie 307, an IPSec protocol identifier, a local client MAC address 301, a local client public IP address 309, a local client private IP address 306, remote-to-local security. A column for each field of a parameter index 302, a pending bit 303, and a remote IP address 304.

タイムスタンプフィールド305は、ペンディングビットフィールド303の状態に基づいて解釈される。ペンディングビットフィールド303がセットされた場合には、タイムスタンプフィールド305は、リモートIPアドレスフィールド304のアドレスとローカルクライアントMACアドレスフィールド301の関連アドレスとの間の最新のIKEパケットの時間で集団構成される。ペンディングビットフィールド303の状態がクリアである場合には、タイムスタンプフィールド305は、マッピングテーブル300の行におけるリモートIPアドレスフィールド304のアドレスに一致するリモートIPアドレスから最新のIPSec保護パケットが受信された時間を含む。マッピングテーブル300がいっぱいになった場合には、最も長い時間アイドル状態であった行が、タイムスタンプフィールド305からの情報を使用して最初の削除ラインとされる。   The time stamp field 305 is interpreted based on the state of the pending bit field 303. When the pending bit field 303 is set, the time stamp field 305 is configured by the time of the latest IKE packet between the address of the remote IP address field 304 and the related address of the local client MAC address field 301. . When the state of the pending bit field 303 is clear, the time stamp field 305 is a time when the latest IPSec protection packet is received from the remote IP address that matches the address of the remote IP address field 304 in the row of the mapping table 300. including. If the mapping table 300 is full, the row that has been idle for the longest time is taken as the first deleted line using information from the timestamp field 305.

IPSecプロトコルフィールド308は、2ビットフィールドとしてエンコードすることができ、00のパターンは無効パターンを示し、10はAHを示し、01はESPを示し、更に、11はAHを伴うESPを示すが、他のエンコードも考えられることを理解されたい。リモート対ローカルセキュリティパラメータインデックスフィールド302は、リモートIPアドレスフィールド304のアドレスから、MACアドレス及びパブリック又はプライベートIPアドレスにより識別された特定のローカルクライアントに向けられたトラフィックに関連したセキュリティパラメータインデックス値を記憶するためのものである。   The IPSec protocol field 308 can be encoded as a 2-bit field, where 00 indicates an invalid pattern, 10 indicates AH, 01 indicates ESP, and 11 indicates ESP with AH, while others It should be understood that encoding is also possible. The remote-to-local security parameter index field 302 stores a security parameter index value associated with traffic destined for a particular local client identified by the MAC address and public or private IP address from the address of the remote IP address field 304. Is for.

図5A及び5Bを参照し続けると共に、図1、2及び3を再び参照すると、NATゲートウェイ106が、クライアントコンピュータ106−AのMACアドレスを、マッピングテーブルに記録された第1リモートIPアドレスに一致させるようにマッピングテーブルに記録した後に、「IKE抑制」を使用して、ローカルクライアントマシンとリモートIPアドレスとの間に一度に1つのIKE交換しか生じないように確保することができる。ローカルクライアントとリモートIPアドレスとの間で所与の時間に未決着であるIKEネゴシエーションは1つだけであるから、所与の時間にマッピングテーブルの行に対して不完全の欠落したセキュリティパラメータインデックスエントリーは1つだけである。多数のローカルマシンがIPSecを使用して同じリモートIPアドレスにアクセスするよう向けられる場合には、IKEネゴシエーションが先着・先処理ベースで処理される。最も以前のIKEネゴシエーションが完了し、即ち新たに到来するセキュリティパラメータインデックスがそのリモートIPアドレスから記録されると、別のIKEネゴシエーションを開始することが許される。より詳細には、ゲートウェイ106は、リモートIPアドレスからそのパブリックIPアドレスの1つを宛先とするパケットを受信し、これは、1)マッピングテーブルの行にセットされたペンディングビット303を有し、2)マッピングテーブルのその行にセキュリティパラメータインデックスエントリーをもたない。ゲートウェイ106は、このパケットのセキュリティパラメータインデックスを、IPSAMT300のようなマッピングテーブルのこの行におけるこの空きスロットに記録し、次いで、このパケットを、マッピングテーブルの同じ行から取り出されたクライアントアドレスへ転送する。   Continuing to refer to FIGS. 5A and 5B and referring again to FIGS. 1, 2 and 3, the NAT gateway 106 matches the MAC address of the client computer 106-A with the first remote IP address recorded in the mapping table. Thus, after recording in the mapping table, “IKE suppression” can be used to ensure that only one IKE exchange occurs at a time between the local client machine and the remote IP address. Since there is only one IKE negotiation outstanding between a local client and a remote IP address at a given time, an incomplete missing security parameter index entry for a mapping table row at a given time There is only one. If multiple local machines are directed to access the same remote IP address using IPSec, IKE negotiation is handled on a first-come, first-served basis. Once the earliest IKE negotiation is complete, i.e. a new incoming security parameter index is recorded from that remote IP address, another IKE negotiation is allowed to begin. More specifically, the gateway 106 receives a packet destined for one of its public IP addresses from the remote IP address, which has 1) a pending bit 303 set in a row of the mapping table. ) Does not have a security parameter index entry in that row of the mapping table. The gateway 106 records the security parameter index of this packet in this empty slot in this row of the mapping table, such as IPSAMT 300, and then forwards this packet to the client address taken from the same row of the mapping table.

注目すべきことに、AH及びESPは、各々のセキュリティパラメータインデックス形式を有し、到来する及び出て行く、の両方のセキュリティパラメータインデックス形式が存在する。従って、マッピングテーブルは、AH又はESPトラフィックに対する列を有してもよく、ここで、AHは、AHを伴うESPを含む。しかしながら、ローカルマシンと、リモートIPアドレスに関連したリモートマシンとの間のIKE交換を監視することによりマッピングテーブルに行が追加される。   Notably, AH and ESP have their own security parameter index types, and there are both incoming and outgoing security parameter index types. Thus, the mapping table may have a column for AH or ESP traffic, where AH includes ESP with AH. However, a row is added to the mapping table by monitoring IKE exchanges between the local machine and the remote machine associated with the remote IP address.

IKEピアのリモートIPアドレスと、このようなIKEピアとのIKE会話に参加するローカルクライアントのMACアドレスとを有するマッピングテーブルを使用して、このようなIKEピアからセキュリティパラメータインデックスを記憶する。注目すべきことに、IKEネゴシエーションが完了した後、このようなセキュリティパラメータインデックスは、IPSec保護されたトラフィックがこのようなリモートIPアドレスに対するリモートマシンからNATゲートウェイ106へ実際に流れるまで、このようなマッピングテーブルに追加することができない。セキュリティパラメータインデックスは、IKE中に暗号化され、そしてこのようなIPSecセッションに対する真のデータが送信されるとき、即ちIKEセッションが首尾良く完了した後でなければ、非暗号即ち「平文」で現われない。リモートアドレスからのセキュリティパラメータインデックス間の関連性に関する上述した理由に加えて、セキュリティパラメータインデックスはIKE中に暗号化されて、真の暗号化データが流れ始めたときしか平文で現われないので、IKE抑制の一部分として実際のデータが流れ始めるまで、同じ行先IPアドレスに対して一度に1つのみのオープンのリモート対ローカルセキュリティパラメータインデックスエントリーがマッピングテーブルに許されてもよい。各アクティブなクライアントが異なるリモートIPアドレスとネゴシエーションする限り、ゲートウェイ106を経て多数のIKEセッションが行なわれてもよい。首尾良くネゴシエーションされたIKEに対するセキュリティパラメータインデックスがリモートIPアドレスに対して得られると、その同じリモートIPアドレスに対して別のIKEセッションが開始されてもよい。   A security table index is stored from such an IKE peer using a mapping table having the remote IP address of the IKE peer and the MAC address of the local client participating in the IKE conversation with such an IKE peer. Notably, after the IKE negotiation is complete, such a security parameter index may be used for such mapping until IPSec protected traffic actually flows from the remote machine for such remote IP address to the NAT gateway 106. Cannot add to table The security parameter index is encrypted during IKE and does not appear unencrypted or “plaintext” unless the true data for such an IPSec session is transmitted, ie after the IKE session has been successfully completed. . In addition to the reasons described above regarding the relevance between security parameter indexes from remote addresses, the security parameter index is encrypted during IKE and appears only in plain text when true encrypted data begins to flow, so IKE suppression Only one open remote-to-local security parameter index entry at a time for the same destination IP address may be allowed in the mapping table until the actual data begins to flow as part of. Multiple IKE sessions may occur through the gateway 106 as long as each active client negotiates with a different remote IP address. Once a security parameter index for a successfully negotiated IKE is obtained for a remote IP address, another IKE session may be initiated for that same remote IP address.

従って、多数の通信モードがあることを理解されたい。クライアント106−Aが、そのIKE又はIPSec保護トラフィックを送信するときにパブリックIPアドレスをソースアドレスとして使用した場合には、その戻りトラフィックは、マッピングテーブルを使用して、クライアントのMACアドレスに対してセキュリティパラメータインデックスが得られるときにはそこへマップされ、そしてこのようなセキュリティパラメータインデックスが得られるまでは、戻りトラフィックは、マッピングテーブルを使用して、クライアントのMACアドレスに対してオープンのペンディングビットを有するリモートIPアドレスへマップされる。   Thus, it should be understood that there are multiple communication modes. If client 106-A uses the public IP address as the source address when sending its IKE or IPSec protected traffic, the return traffic is secured against the client's MAC address using the mapping table. When a parameter index is obtained, it is mapped to it, and until such a security parameter index is obtained, the return traffic is sent to a remote IP having a pending bit open to the client's MAC address using a mapping table. Maps to an address.

クライアント106−Aが、そのESPのみのIPSecトラフィックを送信するときにプライベートIPアドレスを使用し、そのトラフィックがその後にネットワークアドレス変換される場合には、到来するトラフィックに対して、NAT IPアドレス変換は、クライアントのプライベートIPアドレスと、マッピングテーブルに記憶されたリモートIPアドレス(即ち到来するトラフィックに対するソースアドレス)との関連付けにより実行され、更に、ポートアドレス変換は、マッピングテーブルを使用して、クライアントのプライベートIPアドレスに対してセキュリティパラメータインデックスが得られるときにはそこへマッピングされる。このようなリモートIPアドレスに対してセキュリティパラメータインデックスが得られない場合には、このようなリモートIPアドレスに関連したオープンのペンディングビットを有するクライアントのプライベートIPアドレスが使用される。ゲートウェイ106は、ローカルクライアント106−Aにより開始されたISAKMPネゴシエーションが首尾良く完了したかどうか明確なやり方で決定できない。しかしながら、不必要なペンディング状態がマッピングテーブルに維持されないよう保つ助けをする上で使用できる2つの暗示的な手掛りがある。ローカルクライアントがISAKMPメインモード交換を開始する場合には、このようなメインモード交換の直後にクイックモード交換が続かねばならない。クイックモードパケットが見られない状態で5秒以上経過した場合には、このネゴシエーションが失敗となり、このようなISAKMPメインモード交換に応答して生成された行をこのようなマッピングテーブルから除去することができる。   If client 106-A uses a private IP address when sending its ESP-only IPSec traffic, and the traffic is subsequently network address translated, NAT IP address translation for incoming traffic is , By associating the client's private IP address with the remote IP address stored in the mapping table (ie, the source address for incoming traffic), and port address translation is performed using the mapping table. When a security parameter index is obtained for an IP address, it is mapped there. If no security parameter index is available for such a remote IP address, the client's private IP address with an open pending bit associated with such remote IP address is used. The gateway 106 cannot determine in a definite manner whether the ISAKMP negotiation initiated by the local client 106-A has been successfully completed. However, there are two implicit cues that can be used to help keep unnecessary pending states from being maintained in the mapping table. When the local client starts the ISAKMP main mode exchange, the quick mode exchange must be continued immediately after such a main mode exchange. If more than 5 seconds have passed without a quick mode packet being seen, this negotiation will fail and the lines generated in response to such an ISAKMP main mode exchange may be removed from such a mapping table. it can.

或いはまた、ローカルクライアントが、常に3つのパケットを取り上げるアグレッシブモード交換を開始するも考えられる。2つのパケットが見られ、次いで、第3のパケットを見ずに5秒が経過した場合には、このようなネゴシエーションが失敗となり、このようなISAKMPアグレッシブモード交換に応答して生成された行をこのようなマッピングテーブルから除去することができる。従って、マッピングテーブルにおいてタイムスタンプをISAKMPイニシエータクッキーに関連付けることを使用して、このような時間限界が経過したかどうか決定してもよい。従って、ポート番号ではなく、セキュリティパラメータインデックスが逆変換に使用されるので、多数のVPN接続を同時にサポートするのに特殊な又は変更型のVPNが必要とされないことが明らかであろう。それ故、ここに述べるように逆変換のためにTCP又はUDPヘッダにアクセスできる必要はない。更に、セキュリティパラメータインデックスは固定のオフセットであるから、マッピングテーブルに対するインデックスとして使用するためにパケットにおいてそれにアクセスすることが容易にされる。或いはまた、パブリックIPアドレスを得るための第2のDHCP要求を実行するように構成されたプログラム製品のドライバによりローカルクライアントのNICを変更するのではなく、ESPのみのVPNが使用される場合には、ゲートウェイ106は、マッピングテーブルで構成されるが、クライアント106−Aは、IKE及びESPのみのIPSecがNATに合致するので、変更を必要としない。   Alternatively, the local client may initiate an aggressive mode exchange that always picks up three packets. If two packets are seen and then 5 seconds elapse without looking at the third packet, such negotiation fails and the line generated in response to such an ISAKMP aggressive mode exchange is It can be removed from such a mapping table. Thus, associating a time stamp with an ISAKMP initiator cookie in a mapping table may be used to determine if such a time limit has passed. Thus, it will be apparent that a special or modified VPN is not required to support multiple VPN connections simultaneously since the security parameter index, not the port number, is used for the reverse translation. Therefore, there is no need to be able to access a TCP or UDP header for reverse conversion as described herein. Furthermore, since the security parameter index is a fixed offset, it is easy to access it in the packet for use as an index into the mapping table. Alternatively, if an ESP-only VPN is used instead of changing the local client's NIC by the driver of the program product configured to execute a second DHCP request to obtain a public IP address The gateway 106 is configured with a mapping table, but the client 106-A does not need to change because the IPSec of IKE and ESP only matches the NAT.

IKE抑制は、ESPのみのIPSecを使用して多数の個別のリモートIPアドレスと通信しているクライアントには使用されない。IKE抑制は、同じリモートIPアドレスと通信している多数のローカルマシンをサポートするのに使用される。しかしながら、VPNを変更せずにVPNセッションのためにローカル対リモートマシンに対して多数対1のマッピングをもたせる能力が実質的に効果的である。その一例は、会社の同じサーバーへ通信することを全てが希望する会社用のテレコミュターである。   IKE suppression is not used for clients communicating with a number of individual remote IP addresses using ESP-only IPSec. IKE suppression is used to support multiple local machines communicating with the same remote IP address. However, the ability to have a many-to-one mapping for local to remote machines for VPN sessions without changing the VPN is substantially effective. An example is a telecommuter for a company that all wants to communicate to the same server of the company.

パブリックIPアドレスをネットワークインターフェイスレベルで得ることを組み込むことにより、オペレーティングシステム(OS)を含む必要がなくなる。換言すれば、OSレベルにおいて、IKEが開始され、このような開始に応答して、NIC100がパブリックIPアドレスを自動的に要求する。この要求は、IKE開始以外のOSアクションを必要としない。更に、NIC100は、IPSecに対して構成され、従って、パブリックアドレスが得られた場合には、それがIPSecパケットに自動的に使用されてもよい。更に、クライアント及びゲートウェイによりサポートされる既知のプロトコルは、付加的な信号チャンネルを導入せずに使用されてもよい。   Incorporating obtaining a public IP address at the network interface level eliminates the need to include an operating system (OS). In other words, at the OS level, IKE is started, and in response to such start, the NIC 100 automatically requests a public IP address. This request does not require any OS action other than IKE initiation. Furthermore, the NIC 100 is configured for IPSec, so if a public address is obtained, it may be automatically used for IPSec packets. Furthermore, known protocols supported by clients and gateways may be used without introducing additional signaling channels.

図3Aには、本発明の1つ以上の態様に基づくIKE抑制を伴うIPSec/NATゲート側一体化サブプロセス298の実施形態を示すフローチャートである。ステップ217において、NATゲートウェイ106は、パケットを受信する。このパケットは、図3のステップ210からのIKE開始パケットでよい。ステップ218において、NATゲートウェイ106は、このようなパケットをチェックして、それがIKEパケットであるかどうか決定する。   FIG. 3A is a flowchart illustrating an embodiment of an IPSec / NAT gate side integration sub-process 298 with IKE suppression in accordance with one or more aspects of the present invention. In step 217, the NAT gateway 106 receives the packet. This packet may be an IKE start packet from step 210 of FIG. In step 218, the NAT gateway 106 checks such a packet to determine if it is an IKE packet.

図3Aを参照し続けると共に、図1、2、5A及び5Bを再度参照すると、ステップ218において、受信パケットがIKEパケットでない場合には、ステップ219において、このようなパケットがソースIPアドレスとしてパブリック又はプライベートIPアドレスを有するかどうか決定するチェックが行われる。NATゲートウェイ106は、IPSec及び非IPSecパケットを受信できるが、LAN102のクライアントコンピュータ106−AからCのようなクライアントコンピュータは、IPSecセッションに関する通信についてのみNATゲートウェイ106へIPソースアドレスとしてパブリックIPアドレスを送信する。注目すべきことに、ESPのみのIPSecをネゴシエーションすることは問題でない。というのは、NATゲートウェイ106を通るESPのみのトラフィックに対してパブリックIPアドレスがIPソースアドレスとして使用されてもよいからである。ステップ219において、ソースIPアドレスが、NATゲートウェイ106に得られるパブリックIPアドレスである場合には、これが、NATゲートウェイ106に、このような受信パケットをIPSecセッションに対して処理すべきことを指示する。従って、パブリックIPソースアドレスをもつパケットがステップ219において見つかった場合には、それがステップ256においてNATを伴わずに処理される。換言すれば、NATゲートウェイ106は、パブリックIPアドレスをソースIPアドレスとしてもつがNATを伴わないパケットを送信する。プライベートIPソースアドレスをもつパケットがステップ219において見つかった場合には、それがステップ257においてNATを伴って処理される。換言すれば、NATゲートウェイ106は、このパケットをWAN104に送信する前に、パブリックIPアドレスをこのようなプライベートIPソースアドレスに置き換える。   Continuing to refer to FIG. 3A and referring again to FIGS. 1, 2, 5A and 5B, if in step 218 the received packet is not an IKE packet, then in step 219 such packet is public or A check is made to determine if it has a private IP address. The NAT gateway 106 can receive IPSec and non-IPSec packets, but client computers such as client computers 106-A to C in the LAN 102 send a public IP address as an IP source address to the NAT gateway 106 only for communications related to the IPSec session. To do. It should be noted that negotiating an ESP-only IPSec is not a problem. This is because the public IP address may be used as the IP source address for ESP only traffic through the NAT gateway 106. In step 219, if the source IP address is a public IP address obtained to the NAT gateway 106, this instructs the NAT gateway 106 to process such received packets for the IPSec session. Thus, if a packet with a public IP source address is found in step 219, it is processed in step 256 without NAT. In other words, the NAT gateway 106 transmits a packet having a public IP address as a source IP address but not accompanied by a NAT. If a packet with a private IP source address is found in step 219, it is processed in step 257 with NAT. In other words, the NAT gateway 106 replaces the public IP address with such a private IP source address before sending this packet to the WAN 104.

ステップ218において、受信パケットがIKEパケットである場合には、ステップ221において、このようなパケットの行先IPアドレスがIKE抑制サブルーチン297の一部分としてマッピングテーブルにあるかどうか決定するチェックがなされる。IKE制御又は抑制により、IKE抑制されたパケットは、以下に詳細に述べるように、リモート対ローカルSPIが記憶され且つペンディングビットが反転されるまで、ゲートウェイ106により送信されることを理解されたい。換言すれば、所与のローカルクライアントMACアドレスと所与のリモートIPアドレスとの間に1つのIKE「会話」だけが進行中であってもよい。   If the received packet is an IKE packet at step 218, a check is made at step 221 to determine if the destination IP address of such a packet is in the mapping table as part of the IKE suppression subroutine 297. With IKE control or suppression, it should be understood that IKE suppressed packets are sent by the gateway 106 until the remote-to-local SPI is stored and the pending bit is inverted, as described in detail below. In other words, only one IKE “conversation” may be in progress between a given local client MAC address and a given remote IP address.

仮定により、NATが全ての外部トラフィックをローカルクライアントにより開始するように強制するので、IKEトラフィックは、常に、クライアント106−Aのようなローカルクライアントにより開始される。これは、直感的には、パブリックアドレスをプライベートアドレスに置き換えねばならず、従って、トラフィックは、最初、NATを経て一方向に、即ちローカル(プライベート)側からリモート(パブリック)側へしか流れ得ないからである。クライアント106−Aの最初のIKE「メインモード」トランザクション、及びそれに続くIKE「クイックモード」トランザクション(或いは、メイン及びクイックに代わって、クライアントは「アグレッシブモード」トランザクションを選択してもよい)は、同じクライアント選択64ビットイニシエータクッキーをISAKMPヘッダに使用する。その後の再キーイングがローカルクライアント106−Aの判断で行われ、これは、更に別のクイックモード交換又は新たなメインモード交換のいずれかで構成できる(これは、クライアントが新たなイニシエータクッキーを選択して、IPSAMP300に新たな行を生成させることを要求し、この行は、ローカルクライアントのIP又はMACアドレス、リモートIPアドレス、及びクライアントのイニシエータクッキーにより最初に定義される)。   Assuming that NAT forces all external traffic to be initiated by the local client, IKE traffic is always initiated by a local client, such as client 106-A. This intuitively requires public addresses to be replaced with private addresses, so traffic can only flow through NAT in one direction, that is, only from the local (private) side to the remote (public) side. Because. The first IKE “main mode” transaction of client 106-A and the subsequent IKE “quick mode” transaction (alternatively, the client may choose an “aggressive mode” transaction instead of main and quick). A client selected 64-bit initiator cookie is used in the ISAKMP header. Subsequent rekeying is done at the discretion of the local client 106-A, which can be configured with either another quick mode exchange or a new main mode exchange (this means that the client selects a new initiator cookie). Request that IPSAMP 300 generate a new line, which is initially defined by the local client's IP or MAC address, the remote IP address, and the client's initiator cookie).

ステップ221では、このような行先IPアドレスがIPSAMT300に現われず、次いで、ステップ222において、IPSAMT300に行が生成され、更に、ステップ260において、クライアントコンピュータ106−AのMACアドレス及びリモートコンピュータシステム101の行先IPアドレスが関連状態で記憶され、このような行に対するペンディングビットがセットされ、例えば、マッピングテーブルにおいて1にセットされると、リモートIPアドレスに関連したリモート対ローカルのセキュリティパラメータインデックス(ローカルクライアントのIKEパケットに見つかった最初のIP行先アドレス)がまだ観察されないことを指示する。IKEパケットはNATに適合するので、NAT処理は、次いで、ステップ257で実行される。   In step 221, such a destination IP address does not appear in IPSAMT 300, then in step 222 a line is generated in IPSAMT 300, and in step 260, the MAC address of client computer 106-A and the destination of remote computer system 101 are also generated. If the IP address is stored in the relevant state and the pending bit for such a row is set, for example, set to 1 in the mapping table, the remote-to-local security parameter index associated with the remote IP address (IKE of the local client) Indicates that the first IP destination address found in the packet has not yet been observed. Since the IKE packet conforms to NAT, NAT processing is then performed at step 257.

ステップ221において、受信パケットの行先IPアドレスがIPSAMT300に既に存在する場合には、ローカルクライアントMACアドレス又はプライベートIPアドレスとリモートIPアドレスとの間のセキュリティネゴシエーションが既に進行中であるという指示に対してISAKMP「イニシエータクッキー」のチェックが行われる。従来、ISAKMPイニシエータクッキーは、64ビットの2進数であるが、ISAKMP規格の将来の改定で、このフィールドのサイズをクライアントマシンによりランダムに選択して変更し、このようなクライアントとそのISAKMPピアとの間の全ての後続ISAKMP会話を独特に識別できるようになる。このクッキーは、ウェブサーバーがウェブブラウザによりクライアントコンピュータに記憶する従来の小さなテキストファイルであるウェブクッキーではない。このフィールドの使用は、多数のISAKMPネゴシエーションを相関するのを許す。ステップ221において、このようなイニシエータクッキーがこのようなマッピングテーブルに現われない場合には、ステップ222において、IPSAMT300に行が生成される。   In step 221, if the destination IP address of the received packet already exists in IPSAMT 300, an ISAKMP is issued in response to an indication that a security negotiation between the local client MAC address or private IP address and the remote IP address is already in progress. The “initiator cookie” is checked. Traditionally, an ISAKMP initiator cookie is a 64-bit binary number, but with future revisions of the ISAKMP standard, the size of this field will be randomly selected by the client machine and changed to allow such clients and their ISAKMP peers to change. All subsequent ISAKMP conversations in between can be uniquely identified. This cookie is not a web cookie, which is a traditional small text file that a web server stores on a client computer by a web browser. Use of this field allows to correlate multiple ISAKMP negotiations. If such an initiator cookie does not appear in such a mapping table at step 221, a row is generated in IPSAMT 300 at step 222.

ステップ221において、マッピングテーブルのISAKMPイニシエータクッキーが受信ISAKMPクッキーに一致する場合には、ステップ223において、ペンディングビットが、このようなマッピングテーブルの関連する行、即ちクライアントのMACアドレス、リモートIPアドレス、及び処理されているこの受信IKEパケットに一致するイニシエータクッキーにより関連付けられた行に対してセットされたかどうか決定するチェックがなされる。注目すべきことに、ペンディングビットは任意である。というのは、それに代わってセキュリティパラメータインデックスのチェックを行なってもよいからである。ローカルクライアント106−AとリモートIPアドレスとの間の新たなIKE会話の場合には、セキュリティパラメータインデックスフィールド302は、この行に対してオープン即ち空のエントリーとなる。というのは、このIKE交換から生じるIPSec保護トラフィックがゲートウェイ106によってまだ観察されていないからである。注目すべきことに、その後の又は新たなIKE会話において、再キーイングは、新たなIKE会話で、古いセキュリティパラメータインデックスが期限切れとなったときに引き継がれる新たなセキュリティパラメータインデックスをネゴシエーションするのを許すことができる。ペンディングビットフィールド303のペンディングビットがセットされ、且つリモート対ローカルSPIフィールド302にセキュリティパラメータインデックス値が存在する場合には、そのセキュリティパラメータインデックス値が間もなく期限切れになることがあり、それ故、ゲートウェイ106は、IPSec保護トラフィックにおけるこのようなセキュリティパラメータインデックスが新たな値に変化することを予想してもよい。このペンディングビットは、このような新たなセキュリティパラメータインデックスがリモート対ローカルIPSec保護パケットにおいて検出されたときにクリアされる。   If, in step 221, the ISAKMP initiator cookie in the mapping table matches the received ISAKMP cookie, then in step 223 the pending bits are the relevant row of such mapping table: the client's MAC address, the remote IP address, and A check is made to determine if it was set for the associated row by an initiator cookie that matches this received IKE packet being processed. Of note, the pending bits are arbitrary. This is because the security parameter index may be checked instead. In the case of a new IKE conversation between the local client 106-A and the remote IP address, the security parameter index field 302 is an open or empty entry for this row. This is because IPSec protected traffic resulting from this IKE exchange has not yet been observed by the gateway 106. Notably, in subsequent or new IKE conversations, re-keying allows a new IKE conversation to negotiate a new security parameter index that will be carried over when the old security parameter index expires. Can do. If the pending bit field 303 pending bit is set and a security parameter index value exists in the remote-to-local SPI field 302, the security parameter index value may expire soon, so the gateway 106 The security parameter index in IPSec protected traffic may be expected to change to a new value. This pending bit is cleared when such a new security parameter index is detected in a remote-to-local IPSec protection packet.

ステップ223において、ペンディングビットフィールド303のペンディングビットがセットされ、例えば、1にセットされると、リモート対ローカルセキュリティパラメータインデックスが、行先IPアドレスが得られてIPSAMT300に記録されたマシンからのものであることを指示する。このようなビットがセットされて、リモート対ローカルセキュリティパラメータインデックスがその行先IPアドレスに関連したマシンに対して得られたものであることを指示する場合には、ステップ222において、このようなマッピングテーブルに行が生成される。これは、以前のIKEに対するリモート対ローカルセキュリティパラメータインデックス(異なるローカルクライアントからの)が得られているので、別のIKEが同じリモートIPアドレスに対して抑制されないことを意味する。しかしながら、ステップ223において、ペンディングビットフィールド303におけるリモート対ローカルセキュリティパラメータインデックスペンディングビットがその初期設定値から反転されておらず即ち依然ゼロ(0)である場合には、これは、他のローカルクライアントがIKEを使用して同じリモートIPアドレスとネゴシエーションできないことを指示する。というのは、指示されたリモートIPアドレスからのリモート対ローカルセキュリティパラメータインデックスが使用中に観察されていないからである。従って、ステップ224では、このようなIKEパケット又はより詳細にはIKE初期パケットが任意に待ち行列に入れられ、そしてステップ223でチェックを繰り返すことにより以前のIPSecセッションに対してリモート対ローカルセキュリティパラメータインデックスペンディングビット303がセットされたときにステップ222においてそれが解除されてマッピングテーブルに行が生成される。ISAKMPパケットを待ち行列に入れる以外のオプションは、ローカルクライアントに、サブコード==3(ポート不到達)でICMP行先不到達(形式==3)を送信するか、又はサブコード==9(行先ホストとの通信が管理上禁止される)でICMP行先不到達(形式==3)を送信することである。   In step 223, the pending bit in the pending bit field 303 is set, eg set to 1, the remote-to-local security parameter index is from the machine whose destination IP address was obtained and recorded in the IPSAMT 300. Instruct. If such a bit is set to indicate that the remote-to-local security parameter index is obtained for the machine associated with the destination IP address, then in step 222 such mapping table A row is generated at This means that another IKE is not suppressed for the same remote IP address because the remote-to-local security parameter index (from a different local client) is obtained for the previous IKE. However, if in step 223 the remote-to-local security parameter index pending bit in the pending bit field 303 has not been inverted from its default value, i.e. still zero (0), this means that other local clients Indicates that IKE cannot be used to negotiate with the same remote IP address. This is because the remote-to-local security parameter index from the indicated remote IP address has not been observed in use. Thus, in step 224, such IKE packets or more specifically IKE initial packets are optionally queued, and the remote vs. local security parameter index for the previous IPSec session by repeating the check in step 223. When the pending bit 303 is set, it is released in step 222 and a row is generated in the mapping table. Options other than queuing the ISAKMP packet are to send an ICMP destination unreachable (format == 3) to the local client with subcode == 3 (port unreachable) or subcode == 9 (destination The communication with the host is administratively prohibited), and ICMP destination unreachable (format == 3) is transmitted.

図4は、本発明の1つ以上の態様に基づくIPSec/NAT一体化プロセス200の受信器側の実施形態を示すフローチャートである。図4を参照し続けると共に、図1及び2を更に参照して、一体化プロセス200の受信器側について説明する。ステップ407において、IPパケットは、コンピュータシステム101からNATゲートウェイ106により受信される。ステップ408では、このように受信したパケットにセキュリティパラメータインデックスが存在するかどうか決定するための比較が行なわれる。換言すれば、AHのみ、ESPのみ、及びAHを伴うESPの1つを使用するIPSec保護パケットである。   FIG. 4 is a flowchart illustrating a receiver-side embodiment of an IPSec / NAT integration process 200 in accordance with one or more aspects of the present invention. With continued reference to FIG. 4 and further reference to FIGS. 1 and 2, the receiver side of the integration process 200 will be described. In step 407, the IP packet is received by the NAT gateway 106 from the computer system 101. In step 408, a comparison is made to determine whether a security parameter index exists in the packet thus received. In other words, it is an IPSec protected packet that uses one of AH only, ESP only, and ESP with AH.

IKEネゴシエーションがローカルクライアントによりあるリモートIPアドレスに対して開始された場合には、ペンディングビットフィールド303のペンディングビットがセットされる。というのは、リモートコンピュータシステム101から、このようなIKEネゴシエーションを開始したローカルクライアント106−Aへのトラフィックに関連したリモート対ローカルセキュリティパラメータが観察及び記録されていないからである。ローカルクライアント106−AのIKEパケットのIPソースアドレスがプライベートアドレスである場合には、そのクライアントのプライベートIPアドレスが、ローカルクライアントIPアドレスフィールド306に記憶される。このフィールドが占有されたときには、ゲートウェイ106は、IPSecトラフィックに対して、クライアント106−Aと、このリモートIPアドレスに関連したリモートマシンとの間にESPのみのトラフィックが割り当てられねばならないことを知る。しかしながら、ローカルクライアント106−AがパブリックIPアドレスをIKEパケットにおけるIPソースアドレスとして使用する場合には、ゲートウェイ106は、このクライアントのMACアドレスをローカルクライアントMACアドレスフィールド301に記憶することによりこれを忘れないようにしなければならない。このIKEローカルクライアントMACアドレスのフィールドが占有されたときには、クライアント106−Aは、IPSecのAHのみ、ESPのみ、又はAHを伴うESPの形態を使用できる。注目すべきことに、このような場合に、クライアント106−Aは、ゲートウェイ106により指定されたパブリックIPアドレスを使用することになり、ステップ254で記憶されているので、このMACアドレスをもつマシンにパブリックIPアドレスが指定されたことを想起できる。ステップ254で記録されたMACアドレスだけが、それに関連したパブリックIPアドレスの使用を許されねばならない。   When an IKE negotiation is initiated by a local client for a remote IP address, the pending bit in the pending bit field 303 is set. This is because remote-to-local security parameters related to traffic from the remote computer system 101 to the local client 106-A that initiated such IKE negotiations are not observed and recorded. When the IP source address of the IKE packet of the local client 106 -A is a private address, the private IP address of the client is stored in the local client IP address field 306. When this field is occupied, the gateway 106 knows for IPSec traffic that ESP-only traffic must be allocated between the client 106-A and the remote machine associated with this remote IP address. However, if the local client 106-A uses the public IP address as the IP source address in the IKE packet, the gateway 106 forgets this by storing the client's MAC address in the local client MAC address field 301. Must do so. When this IKE local client MAC address field is occupied, client 106-A can use IPSec AH only, ESP only, or ESP with AH. Notably, in such a case, client 106-A will use the public IP address specified by gateway 106 and is stored in step 254, so that the machine with this MAC address Recall that a public IP address has been specified. Only the MAC address recorded in step 254 must be allowed to use the associated public IP address.

IKE抑制が使用され、且つIPSec保護データが、IKEネゴシエーション後に、関連リモートIPアドレスをもつマシンからマッピングテーブル内のローカルクライアントへ流れない場合には、ペンディングビットフィールド303のペンディングビットが例えば1にセットされたままとなり、他のクライアントが同じ行先IPアドレスとIKEネゴシエーションを開始するのを防止する。従って、タイムスタンプ305を使用し、リモート対ローカルセキュリティパラメータインデックスフィールド302におけるリモート対ローカルセキュリティパラメータインデックスが、決定された時間内に得られず、従って、このようなペンディングビットを例えばゼロ(0)にクリアする場合には、期限切れとなった行をIPSAMT300から除去して、同じリモートIPアドレスへの別のIKEを実行するのを許すことができる。この行は、別のステーションが実際に同じリモートIPアドレスとのIKEネゴシエーションを開始するよう試み、この時点で衝突が通知されるまで、除去される必要はない。従って、ペンディングビットフィールド303のペンディングビットは1にセットされることが確認され、そしてタイムスタンプフィールド305の関連タイムスタンプは、この行又はこれらの行エントリーがパージするに充分なほど古いことを確認するようチェックされる。   If IKE suppression is used and IPSec protection data does not flow from the machine with the associated remote IP address to the local client in the mapping table after IKE negotiation, the pending bit in the pending bit field 303 is set to 1, for example. To prevent other clients from initiating IKE negotiation with the same destination IP address. Therefore, using the time stamp 305, the remote-to-local security parameter index in the remote-to-local security parameter index field 302 is not obtained within the determined time, so such a pending bit is set to eg zero (0). If cleared, the expired row can be removed from the IPSAMT 300 to allow another IKE to the same remote IP address to be performed. This line does not need to be removed until another station actually attempts to initiate an IKE negotiation with the same remote IP address and is notified of a collision at this point. Thus, it is confirmed that the pending bit in the pending bit field 303 is set to 1 and the associated timestamp in the timestamp field 305 confirms that this row or these row entries are old enough to purge. Will be checked.

ペンディングビット303がクリアされ、即ちゼロ(0)にセットされた場合には、同じ2つのアドレス、即ちローカルMAC又はローカルクライアントプライベートIPアドレスとリモートIPアドレスとの間に別のIKEセッションが開始されるまで、その関連行がIPSAMT300に保たれる。リモート対ローカルセキュリティパラメータインデックスが得られたIKEセッションを既に有するマシン間に別のIKEセッションが開始された場合には、これら2つのマシン間の以前のIKEセッションに対する関連行は、たとえリモート対ローカルセキュリティパラメータインデックスが既知であっても、ペンディングビットフィールド303のビットをセットしている。この場合に、このようなペンディングビットを例えば1にセットすると、関連行が削除ペンディング中であることを指示する。   If the pending bit 303 is cleared, ie set to zero (0), another IKE session is started between the same two addresses, namely the local MAC or local client private IP address and the remote IP address. Until then, the relevant row is kept in IPSAMT 300. If another IKE session is started between machines that already have an IKE session for which a remote-to-local security parameter index has been obtained, the relevant line for the previous IKE session between these two machines is the remote-to-local security Even if the parameter index is known, the bit of the pending bit field 303 is set. In this case, setting such a pending bit to 1, for example, indicates that the related line is in the delete pending state.

リモート対ローカルセキュリティパラメータインデックスが得られた既存のIKEに新たなIKEが取って代わる状況においては、リモートIPアドレスからローカルクライアントへのトラフィックに対して新たなリモート対ローカルセキュリティパラメータインデックスを使用し始めることが予想され、この時点で、リモート対ローカルセキュリティパラメータインデックスの値だけが異なる新たな行を古い行からクローン生成することができる。このような新たな行が生成されると、古い行のペンディングビットフィールド303のペンディングビットを再びクリアし、即ちゼロ(0)にセットすることができる。より一般的には、パケットがテーブルエントリーに一致するように見えるたびに、タイムスタンプフィールド305が更新されるが、古い行は、古いリモート対ローカルセキュリティパラメータインデックスを使用してトラフィックを到達させ、時間経過と共に行を益々古くさせてしまうのを直ちに止めねばならない。この行は、充分古くなると、通常の「廃物収集」動作により排除される。例えば、交換したキーが期限切れになりつつあるか又は期限切れしたために、新たなIKEを開始することができる。   In situations where a new IKE replaces an existing IKE for which a remote-to-local security parameter index has been obtained, start using the new remote-to-local security parameter index for traffic from the remote IP address to the local client At this point, a new row that differs only in the value of the remote-to-local security parameter index can be cloned from the old row. When such a new row is generated, the pending bit in the pending bit field 303 of the old row can be cleared again, i.e. set to zero (0). More generally, each time a packet appears to match a table entry, the timestamp field 305 is updated, but the old row causes traffic to arrive using the old remote-to-local security parameter index and the time You must immediately stop making the line older and older with the passage of time. When this line is old enough, it is eliminated by the normal “garbage collection” operation. For example, a new IKE can be initiated because the exchanged key is about to expire or has expired.

新たなIKEネゴシエーションは、新たなIKE通信を開始するローカルクライアントの判断でいつでも行ない得る。IKEネゴシエーションは、確立されたIKEセッションであっても、リモートマシンやリモートIPアドレスでは開始されない。NATの場合に常にローカルクライアントでなければならないセッションオリジネータは、全ての更に別のIKE会話、例えば、再キーイングネゴシエーションを開始する。図5A及び5Bを参照し続けると共に、図4を再度参照すれば、ステップ408において、IPSecで保護されないパケットのような受信パケットにセキュリティパラメータインデックスがない場合には、このようなパケットが、ステップ409において、IPSAMT300を調べずにルーティングされる。このようなルーティングの判断は、ゲートウェイ106の非IPSec NATファンクションを推進するゲートウェイNATテーブルにより推進されてもよい。NATは良く知られているので、NATの詳細な説明は、明瞭化のため省略する。   A new IKE negotiation can be made at any time at the local client's decision to initiate a new IKE communication. The IKE negotiation is not initiated at the remote machine or remote IP address, even for an established IKE session. The session originator, which must always be a local client in the case of NAT, initiates all further IKE conversations, eg, rekeying negotiations. Continuing to refer to FIGS. 5A and 5B and referring again to FIG. 4, if in step 408 the received packet, such as a packet not protected by IPSec, does not have a security parameter index, such a packet is In FIG. 3, the routing is performed without checking the IPSAMT 300. Such routing decisions may be driven by a gateway NAT table that promotes the non-IPsec NAT function of the gateway 106. Since NAT is well known, a detailed description of NAT is omitted for clarity.

ステップ408において、ステップ407で受信されたパケットにセキュリティパラメータインデックスが見つかった場合には、ステップ410において、IPSAMT300のチェックを行なって、リモートIPアドレスフィールド304のアドレスに一致するパケットのIPソースアドレスに対してリモート対ローカルセキュリティパラメータインデックスが存在するかどうか決定する。ステップ410において、ISAMT300からのリモート対ローカルセキュリティパラメータインデックスフィールド302に値が存在する場合には、ステップ411において、そのような一致するパケットが、そのような受信パケットで見つかったIPSAMT300からのリモート対ローカルセキュリティパラメータインデックスフィールド302におけるそのような値に関連したローカルクライアントMACアドレスフィールド301又はローカルクライアントプライベートIPアドレスフィールド306の関連アドレスへルーティングされる。   In step 408, if a security parameter index is found in the packet received in step 407, the IPSAMT 300 is checked in step 410 to determine the IP source address of the packet that matches the address in the remote IP address field 304. To determine if a remote-to-local security parameter index exists. If there is a value in the remote-to-local security parameter index field 302 from the ISAMT 300 at step 410, then at step 411 such a matching packet is remote-to-local from the IPSAMT 300 found in such a received packet. Routed to the associated address in the local client MAC address field 301 or local client private IP address field 306 associated with such a value in the security parameter index field 302.

ゲートウェイ106が、マッピングテーブルのMACアドレスを使用してクライアントコンピュータを識別するときには、このローカルクライアントが、ゲートウェイ供給されたパブリックIPアドレスを、そのローカル対リモートパケットにおけるIPソースアドレスとして使用している。このような場合、ゲートウェイ106は、ローカルクライアントパブリックIPアドレスフィールド309からのこのようなローカルクライアントアドレスを、想起し又は忘れないために記憶し、従って、ゲートウェイ106は、(そのローカルビットを反転することにより)このようなパブリックIPアドレスを得るためにDHCPを最初に使用したこのドメインにおけるMACアドレスしかこのパブリックIPアドレスを使用できないように確保することができる。このようなローカル対リモートパケットのIPソースアドレスは、既にパブリックIPアドレスであるから、ゲートウェイは、パケットのNAT変換を実行する必要がない。それ故、AH保護されたパケットは、IPアドレス変換に遭遇せずにローカルドメインを脱出することがあり、従って、リモート側では、AHヘッダに埋め込まれたデジタル符牒を確認することができる。ローカルクライアントアドレスは、プライベートIPアドレスであるか又は(パブリックIPアドレス、MACアドレス)対であるかに関わらず、ローカルクライアントからリモートIPアドレスへの初期トラフィックから記録され、従って、ゲートウェイ106は、どのローカルクライアントへ戻りトラフィックを転送すべきか決定することができる。ローカルクライアントのMACアドレスは、リモートIPアドレスを行先とした第1のローカル対リモートパケットのMACソースアドレスフィールドから抽出される。   When the gateway 106 identifies a client computer using the MAC address of the mapping table, the local client uses the gateway-provided public IP address as the IP source address in its local-to-remote packet. In such a case, the gateway 106 stores such a local client address from the local client public IP address field 309 to remember or remember, so the gateway 106 (reverses its local bit). It is possible to ensure that only the MAC address in this domain that first used DHCP to obtain such a public IP address can use this public IP address. Since the IP source address of such a local-to-remote packet is already a public IP address, the gateway need not perform NAT translation of the packet. Therefore, AH protected packets may leave the local domain without encountering IP address translation, and thus the remote side can see the digital signature embedded in the AH header. Regardless of whether the local client address is a private IP address or (public IP address, MAC address) pair, it is recorded from the initial traffic from the local client to the remote IP address, so the gateway 106 It is possible to decide whether to return traffic to the client. The local client's MAC address is extracted from the MAC source address field of the first local-to-remote packet with the remote IP address as the destination.

ゲートウェイ管理されるパブリックIPアドレスよりアクティブなクライアントが存在する状況では、リモートIPアドレス対ローカルクライアントの多数対1のマッピングが存在し、この場合、リモート対ローカルセキュリティパラメータインデックスを使用して、テーブルのどの行が適切なローカルクライアントに対応するか識別する。ゲートウェイ106は、ローカルステーションへ最終的に配送するために行先アドレスのどの形態を使用すべきかを、想起のために記憶する。MACアドレス及びパブリックIPアドレスが記録されたローカルクライアントマシンについては、戻りトラフィックにおけるIP行先アドレスも、ゲートウェイ106がこのようなローカルクライアントマシンに各々指定した同じパブリックIPアドレスである。従って、ゲートウェイ106は、クライアントのパブリックIPアドレスを宛先とするパケットを、変更せずに(MACフレームのMACソースアドレスがローカルサブネットワークにおけるゲートウェイのLANインターフェイスのアドレスとなり、且つフレームのMAC行先アドレスが、ゲートウェイ106がテーブルの一致する行に記録したローカルクライアントMACアドレスとなることを除いて)安全に送信できることを知る。   In situations where there are clients that are more active than gateway-managed public IP addresses, there is a many-to-one mapping of remote IP addresses to local clients, in this case using the remote-to-local security parameter index to determine which of the tables Identifies whether the row corresponds to an appropriate local client. The gateway 106 remembers for recall what form of destination address to use for final delivery to the local station. For local client machines where the MAC address and public IP address are recorded, the IP destination address in the return traffic is also the same public IP address that the gateway 106 assigns to each such local client machine. Therefore, the gateway 106 does not change the packet destined for the client's public IP address (the MAC source address of the MAC frame becomes the address of the LAN interface of the gateway in the local subnetwork, and the MAC destination address of the frame is The gateway 106 knows it can be sent securely (except that it becomes the local client MAC address recorded in the matching row of the table).

プライベートIPアドレスが記録されているローカルクライアントへのトラフィック(ESPのみのトラフィックだけがこのカテゴリーに入る)については、ゲートウェイ106は、リモートIPアドレスフィールド304のアドレスと、リモート対ローカルセキュリティパラメータインデックスフィールド302の値とを使用して、マッピングテーブルにおける適切な行を識別し、そこから、ローカルクライアントプライベートIPアドレスフィールド306のアドレスを抽出し、これにより、パケットのIP行先アドレスをこのようなローカルクライアントのプライベートIPアドレスに変換する。   For traffic to the local client where the private IP address is recorded (only ESP-only traffic falls into this category), the gateway 106 sets the address in the remote IP address field 304 and the remote-to-local security parameter index field 302. The value is used to identify the appropriate row in the mapping table, from which the address in the local client private IP address field 306 is extracted, so that the IP destination address of the packet is the private IP of such local client. Convert to address.

ステップ410において、リモートIPアドレスフィールド304のアドレスが受信パケットのIPソースアドレスに一致するマッピングテーブルの行に関連したリモート対ローカルセキュリティパラメータインデックスフィールド302に値が存在せず、且つこのようなマッピングテーブルのこの行のペンディングビットフィールド303のビットが例えば1にセットされる場合には、ステップ412において、このようなIPソースアドレスを有すると共にこのようなペンディング値を有する受信パケットからリモート対ローカルセキュリティパラメータインデックスフィールド302に追加される値を加算することによりIPSAMT300が更新される。これに応答して、ペンディングビットフィールド303のビットがこの行に対してクリアされ(即ち、ゼロ(0)にセットされ)、ペンディング中のリモート対ローカルセキュリティパラメータインデックス値の受信を指示する。パケットがテーブルの行に一致するたびに、タイムスタンプフィールド305がその行に対して更新される。   In step 410, there is no value in the remote-to-local security parameter index field 302 associated with the mapping table row whose address in the remote IP address field 304 matches the IP source address of the received packet, and in such a mapping table. If the bit in the pending bit field 303 of this row is set to 1, for example, in step 412, from a received packet having such an IP source address and having such a pending value, a remote to local security parameter index field IPSAMT 300 is updated by adding the value added to 302. In response, the bit in pending bit field 303 is cleared for this row (ie, set to zero (0)) to indicate receipt of the pending remote-to-local security parameter index value. Each time a packet matches a row in the table, the timestamp field 305 is updated for that row.

図5Bでは、リモート対ローカルセキュリティパラメータインデックスフィールド302の値と、ペンディングビットフィールド303の値が、一例として、リモート対ローカルセキュリティパラメータインデックス列即ちフィールド302と、ペンディングビット列即ちフィールド303とに各々書き込まれ、IPSec IPSAMT300を更新する。更に、IKE抑制がアクティブである場合には、ペンディングビットフィールド303のビットを、例えば、ゼロ(0)に反転することによりクリアすると、別のローカルクライアントが、以前にセキュリティパラメータインデックス値の受信ペンディング状態にあった同じリモートIPアドレスへのIKEセッションを開始するのを許す。ステップ412における更新の後に、ステップ411において、このような受信IPパケットは、NATゲートウェイ106により、アドレスに基づいて、IPSAMT300におけるローカルクライアントMACアドレスフィールド301又はローカルクライアントプライベートIPアドレスフィールド306から、それに関連したクライアントコンピュータ106−Aへルーティングされる。   In FIG. 5B, the value of the remote-to-local security parameter index field 302 and the value of the pending bit field 303 are written to the remote-to-local security parameter index string or field 302 and the pending bit string or field 303, respectively, as an example. The IPSec IPSAMT 300 is updated. Furthermore, if IKE suppression is active, clearing the bit in the pending bit field 303, for example, by inverting it to zero (0), causes another local client to previously receive the security parameter index value pending state. Allows to initiate an IKE session to the same remote IP address. After the update in step 412, in step 411 such an incoming IP packet is associated with it from the local gateway MAC address field 301 or the local client private IP address field 306 in the IPSAMT 300 based on the address by the NAT gateway 106. Routed to client computer 106-A.

注目すべきことに、受信パケットに対して一致するリモート対ローカルセキュリティパラメータインデックス302をもつ行がない場合には、NATゲートウェイ106は、このようなリモートIPアドレスと通信するのが1つのローカルクライアントMACアドレスだけであるとすれば、このような受信パケットを依然として正しくルーティングすることができる。或いはまた、同じリモートIPアドレスに対して2つ以上のオープンのリモート対ローカルセキュリティパラメータインデックスが許された場合には、このようなパケットは、このようなリモートIPアドレスと通信する各ローカルクライアントMACアドレスへ送信されてもよいし、或いはLAN102上の全てのクライアントコンピュータに対するブロードキャストMACアドレスへ送信されてもよく、次いで、NATゲートウェイ106は、適切なローカルクライアントをそのリモートIPアドレスに対する適切なリモート対ローカルセキュリティパラメータインデックスとリンクできるように両方向応答を待機することができる。   Notably, if there is no row with a matching remote-to-local security parameter index 302 for the received packet, the NAT gateway 106 communicates with such a remote IP address to be one local client MAC. Given only the address, such a received packet can still be routed correctly. Alternatively, if more than one open remote-to-local security parameter index is allowed for the same remote IP address, such a packet will be sent to each local client MAC address that communicates with such remote IP address. Or may be sent to the broadcast MAC address for all client computers on the LAN 102, and then the NAT gateway 106 sends the appropriate local client to the appropriate remote-to-local security for that remote IP address. A two-way response can be awaited so that it can be linked to the parameter index.

2つの異なるローカルクライアントは、同じリモートIPアドレスとのIKEネゴシエーションに参加するときには同じリモート対ローカルセキュリティパラメータインデックス値を選択し得ることが考えられる。これは、全てのクライアントが同じパブリックIPアドレスを共有している場合にはたとえIKE抑制が使用されても考えられることである。   It is possible that two different local clients may select the same remote-to-local security parameter index value when participating in an IKE negotiation with the same remote IP address. This is possible even if IKE suppression is used if all clients share the same public IP address.

しかしながら、2つのクライアントが、同じリモート対ローカルセキュリティパラメータインデックス値を選択すると共に、それらに異なるローカルクライアントパブリックIPアドレスが指定されている場合には、受信パケットとの4個の関連性、即ちリモートIPアドレス、リモート対ローカルセキュリティパラメータインデックス、IPSecプロトコル、及びローカルクライアントパブリックIPアドレスに基づいて、パケットを転送することができる。   However, if two clients select the same remote-to-local security parameter index value and they are assigned different local client public IP addresses, the four associations with the received packet, namely the remote IP Packets can be forwarded based on address, remote-to-local security parameter index, IPSec protocol, and local client public IP address.

ローカルクライアントが同じパブリックIPアドレスを有する場合には、最初にIPSAMT300に入るどちらかのMACアドレスが、そのリモート対ローカルセキュリティパラメータインデックス302に対する全ての関連トラフィックを受信する。というのは、ゲートウェイ106が、あるステーションに対するトラフィックを、同じ4個の関連性をもつ別のステーションのトラフィックとは別に輪郭定めする方法がないからである。しかしながら、第2のローカルクライアントとこのリモートIPアドレスとの間の通信は成功とならず、従って、それらの通信当事者は新たなIKEネゴシエーションを試みることになり、これは、あらゆる可能性において、独特のリモート対ローカルセキュリティパラメータインデックス値の選択を生じることになろう。というのは、リモート対ローカルセキュリティパラメータインデックスは、0から255までが指定済みで、256から4,294,967,295までの範囲からランダムに選択された番号だからである。重畳するリモート対ローカルセキュリティパラメータインデックスの選択を防止する1つの方法は、最終ステーションがそれらの現在のIPアドレス及びセキュリティパラメータインデックスをLANにブロードキャストするようにさせ、従って、ドメインの他のステーションが重複をチェックできるようにすることである。しかしながら、このような構成は、クライアントソフトウェアの著しい変更を必要とし、従って、通信セッションを失敗させ、低い確率の事象を生じ、且つ最終ステーションで無効となったIKEセッションの回復を別のIKEセッションの開始により行なうことに比して、かなり複雑になる。   If the local client has the same public IP address, either MAC address that first enters IPSAMT 300 receives all relevant traffic for that remote-to-local security parameter index 302. This is because there is no way for the gateway 106 to contour the traffic for one station separately from the traffic of another station with the same four relationships. However, communication between the second local client and this remote IP address will not be successful, so those communicating parties will attempt a new IKE negotiation, which is unique in all possibilities. This will result in the selection of remote versus local security parameter index values. This is because the remote-to-local security parameter index has been designated from 0 to 255 and is a number randomly selected from the range from 256 to 4,294,967,295. One way to prevent the selection of overlapping remote-to-local security parameter indexes is to have the final stations broadcast their current IP address and security parameter index to the LAN, thus causing other stations in the domain to duplicate. It is to be able to check. However, such a configuration requires significant changes in the client software, thus causing the communication session to fail, causing a low probability event, and restoring the IKE session that was invalid at the last station to another IKE session. Compared to what is done by starting, it is considerably more complicated.

注目すべきことに、成功したIKEネゴシエーションの後に、IPSecパケットは、プロトコル情報の上位層を暗号化し、従って、この情報は、NATゲートウェイには得られない。しかしながら、セキュリティパラメータインデックスは、IPSecセッションに対して暗号化されていないので、ゲートウェイに得られる。更に、セキュリティパラメータインデックスは、各ヘッダ形式、即ちESPヘッダ及びAHにおいて得ることができ、AHは、AHを伴うESPを含むがこれに限定されない。従って、IKEがクライアントコンピュータ及び行先コンピュータにより完了となり、且つ暗号化データがキーを用いて交換されると、NATゲートウェイは、いずれか又は両方の形式のIPSec、即ちESP及びAHとの通信に使用できるリモート対ローカルセキュリティパラメータインデックス値を伴う更新されたIPSAMT300を備える。注目すべきことに、IPSAMT構造体は、ここでは、単一のエンティティとして説明するが、このようなIPSAMTを多数のテーブルに分割して、1つ以上の列を複写してもよいことが明らかであろう。これは、1つ以上のテーブルをハードウェア、ファームウェア、ソフトウェア又はその組合せで形成できるという効果がある。従って、マッピングテーブルとは、単一のマッピングテーブル、及び関連性を有する複数のマッピングテーブルを包含するものとする。更に、ここで述べる収集されて関連付けされた情報は、テーブル以外の形態で記憶されてもよく、これは、データベース等のデータ構造体を含むが、これらに限定されない。   Notably, after a successful IKE negotiation, the IPSec packet encrypts the upper layer of protocol information, so this information is not available to the NAT gateway. However, the security parameter index is obtained at the gateway because it is not encrypted for the IPSec session. Furthermore, the security parameter index can be obtained in each header type, ie, ESP header and AH, where AH includes, but is not limited to, ESP with AH. Thus, once the IKE is completed by the client computer and the destination computer and the encrypted data is exchanged using the key, the NAT gateway can be used to communicate with either or both types of IPSec, ie ESP and AH. It includes an updated IPSAMT 300 with remote-to-local security parameter index values. Of note, although the IPSAMT structure is described herein as a single entity, it is clear that such an IPSAMT may be divided into multiple tables to duplicate one or more columns. Will. This has the effect that one or more tables can be formed by hardware, firmware, software or a combination thereof. Therefore, the mapping table includes a single mapping table and a plurality of related mapping tables. Further, the collected and associated information described herein may be stored in forms other than tables, including but not limited to data structures such as databases.

また、AH又はESPパケットにおける新たなセキュリティパラメータインデックスは、このようなパケットにおけるシーケンス番号フィールドの使用により識別されてもよい。新たなセキュリティアソシエーション(SA)における第1パケットは、常に、シーケンス番号「0x00−00−00−01」を有する。ヘッダのフォーマットは異なるが、AH及びESPの各々は、その両方の場合にシーケンス番号が「0x00−00−00−01」でスタートし、送信された各パケットに対して1だけ増加され、且つ0xFF−FF−FF−FFを越えることがないという点で、シーケンス番号フィールドを同様に使用する。第1のリモート対ローカルセキュリティパラメータインデックスは、シーケンス番号「0x00−00−00−01」で到着しなければならず、2つのステーションが再キーイングに参加するときには、新たなリモート対ローカルセキュリティパラメータインデックスが、「0x00−00−00−01」にセットされたシーケンス番号フィールドで到着しなければならない。新たなセキュリティパラメータインデックス値を含むがそのシーケンス番号が「0x00−00−00−01」より大きいパケットは、無効パケットであり、ゲートウェイは、これを破棄するように選択することができる。しかしながら、クライアントは、このようなエラー状態を同等に検出できるので、このようなパケットを転送してもおそらくほとんど害はない。   A new security parameter index in an AH or ESP packet may also be identified through the use of a sequence number field in such a packet. The first packet in a new security association (SA) always has the sequence number “0x00-00-00-01”. Although the header formats are different, AH and ESP each start with a sequence number “0x00-00-00-01” in both cases, incremented by 1 for each transmitted packet, and 0xFF The sequence number field is used in the same way in that it does not exceed -FF-FF-FF. The first remote-to-local security parameter index must arrive with the sequence number “0x00-00-00-01” and when two stations participate in re-keying, the new remote-to-local security parameter index , Must arrive with a sequence number field set to "0x00-00-00-01". A packet that includes a new security parameter index value but whose sequence number is greater than “0x00-00-00-01” is an invalid packet and the gateway can choose to discard it. However, since the client can detect such an error condition equally, forwarding such a packet is probably not harmful.

ゲートウェイが実施のために選択できる別のエラー状態は、リモート対ローカルセキュリティパラメータインデックスが0xFF−FF−FF−FFから0x00−00−00−00へとラップするパケットを阻止することである。ゲートウェイがこの制限を実施するために、ゲートウェイは、マッピングテーブルから一致する行を削除して、将来トラフィックを転送できないようにすることで、マッピングテーブルにおける各行のシーケンス番号を追跡するか、又は0xFF−FF−FF−FFのシーケンス番号値をトリガーしなければならない。この場合にも、ローカルクライアントもこの制限を実施できねばならず、従って、ゲートウェイがクライアントをこの状態からシールドする必要はないが、このようなシールドは、もし可能にされた場合でも、ここに述べるアルゴリズムの妨げとはならない。   Another error condition that the gateway can select for implementation is to block packets whose remote-to-local security parameter index wraps from 0xFF-FF-FF-FF to 0x00-00-00-00. In order for the gateway to enforce this restriction, the gateway tracks the sequence number of each row in the mapping table by deleting the matching row from the mapping table so that future traffic cannot be forwarded, or 0xFF− The sequence number value of FF-FF-FF must be triggered. Again, the local client must be able to enforce this restriction, so the gateway does not need to shield the client from this state, but such a shield is described here even if enabled. It does not interfere with the algorithm.

更に、SA再ネゴシエーションをゲートウェイにより予め決定するか又は予想してもよい。というのは、上述したように、シーケンス番号フィールドは、0xFF−FF−FF−FFから0x00−00−00−00へとラップすることが許されないからである。シーケンス番号値が0xFF−FF−FF−FFの33%以下になると、ゲートウェイは、新たなIKE交換を見て新たなSAを設定するように合理的に予想できる。もちろん、2つの当事者は、シーケンス番号空間がラップし得るより即座に新たなSAをネゴシエーションすることを選択でき、即ちSAのネゴシエーションされたライフタイムは、おそらく、ピアが4,294,967,295個のパケットを送信するに要する時間よりかなり短いものとなる。しかしながら、SAが非常に長いライフタイムでネゴシエーションされ、その間にパケット送信レートが非常に高かった場合には、シーケンス番号は、新たなIKE交換が切迫しているというキューを与える。ローカルクライアントとリモートマシンとの間には多数のSAが存在することがある。AHのみ、ESPのみ、又はAHを伴うESPがあり、その各々が独特のセキュリティパラメータインデックスを有する。従って、マッピングテーブル300は、リモート対ローカルセキュリティパラメータインデックス値がAHに関連するか、ESPに関連するか又はその両方に関連するかを指示する「IPSecプロトコル」値列308を備えている。更に、マッピングテーブル300は、AH及びESPの両セキュリティパラメータインデックスを独立して、例えば、テーブル300の別々の行に記録してもよい。というのは、リモート対ローカルセキュリティパラメータインデックス値がAH及びESPに対して同じになる機会があり、従って、どちらがどちらであるか知らせるために、AH又はESPプロトコル形式を記録することが必要になる。注目すべきことに、2つのローカルクライアントが同じリモートIPアドレスと話をし、更に、その両方が同じIPSecプロトコルに対して同じリモート対ローカルセキュリティパラメータインデックスを選択した場合には、ゲートウェイ106は、両セキュリティアソシエーションに対する全てのトラフィックを、そのリモート対ローカルセキュリティパラメータインデックスを最初にネゴシエーションしたクライアントへ転送する。   In addition, SA renegotiation may be predetermined or anticipated by the gateway. This is because, as described above, the sequence number field is not allowed to wrap from 0xFF-FF-FF-FF to 0x00-00-00-00. When the sequence number value falls below 33% of 0xFF-FF-FF-FF, the gateway can reasonably expect to see a new IKE exchange and set a new SA. Of course, the two parties can choose to negotiate a new SA more quickly than the sequence number space can wrap, ie the negotiated lifetime of the SA is probably 4,294,967,295 peers. This is much shorter than the time required to transmit the packet. However, if the SA is negotiated with a very long lifetime and the packet transmission rate is very high during that time, the sequence number gives a queue that a new IKE exchange is imminent. There may be multiple SAs between the local client and the remote machine. There are AH only, ESP only, or ESP with AH, each with a unique security parameter index. Accordingly, the mapping table 300 includes an “IPSec protocol” value column 308 that indicates whether the remote-to-local security parameter index value is associated with AH, ESP, or both. Furthermore, the mapping table 300 may record both the AH and ESP security parameter indexes independently, for example, in separate rows of the table 300. This is because the remote-to-local security parameter index value has the same opportunity for AH and ESP, so it is necessary to record the AH or ESP protocol type to inform which is which. Notably, if two local clients talk to the same remote IP address, and both choose the same remote-to-local security parameter index for the same IPSec protocol, the gateway 106 Forward all traffic for the security association to the client that initially negotiated its remote-to-local security parameter index.

SAは、IKR初期交換の後又は再キーイング交換の後に長時間アイドル状態であることが考えられ、たとえ各側で新たなセキュリティパラメータインデックスについて合意しても、それらがIPSec保護データを通信しないことがあり、従って、マッピングテーブル300内のリモート対ローカルセキュリティパラメータインデックスフィールド302を集団構成するのを許すようにIPSec保護データがゲートウェイ106に到達しないことになる。この静寂な時間中に、第三者が、ランダムに選択された(無効)セキュリティパラメータインデックスにおいて模造で偽物のパケットをシーケンス番号0x00−00−00−01で送信し得ることが考えられる。ゲートウェイ106は、到来するパケットにおける意図されたIPソースアドレスに一致する行についてのIKEが内部マシンと外部マシンとの間で実行されないことが分かった場合に(即ち、ペンディングビットフィールド303が1にセットされているが、リモート対ローカルセキュリティパラメータインデックスフィールド306にセキュリティパラメータインデックス値をもたない行がマッピングテーブル300に存在しない場合に)、このようなパケットを直ちに拒絶することができる。しかしながら、IKE交換が行なわれたが、IPSecトラフィックがゲートウェイ106を経てまだ流れていない場合には、セキュリティパラメータインデックスが有効であるかどうか確実に分かるのは、IKE接続のエンドポイントだけである。それ故、ゲートウェイ106は、新たなリモート対ローカルセキュリティパラメータインデックスをフィールド302に記録する前に、IKEピア間の完全な両方向IPSec保護トラフィック交換を監視しなければならない。   SAs may be idle for a long time after an IKR initial exchange or after a re-keying exchange, even if they agree on a new security parameter index on each side, they may not communicate IPSec protected data. Yes, therefore, IPSec protection data will not reach the gateway 106 to allow the remote-to-local security parameter index field 302 in the mapping table 300 to be clustered. During this quiet period, it is possible that a third party could send a counterfeit and fake packet with sequence number 0x00-00-00-01 at a randomly selected (invalid) security parameter index. Gateway 106 determines that the IKE for the line matching the intended IP source address in the incoming packet is not performed between the internal and external machines (ie, pending bit field 303 is set to 1). However, if there is no row in the mapping table 300 that does not have a security parameter index value in the remote-to-local security parameter index field 306, such a packet can be immediately rejected. However, if an IKE exchange has occurred but IPSec traffic has not yet flowed through the gateway 106, only the endpoint of the IKE connection can reliably know whether the security parameter index is valid. Therefore, the gateway 106 must monitor the complete two-way IPSec protected traffic exchange between IKE peers before recording a new remote-to-local security parameter index in field 302.

模造パケットが上述したように送信された場合には、ローカルクライアント106−Aは、このような模造パケットを破棄するか、エラーメッセージを送信するか、或いは新たなIKE交換をスタートして、既存のSAを確認し、又は新たなネゴシエーションを行なう。クライアント106−AはIPSec保護パケットで応答するが、リモートIPアドレスがその応答に異なるセキュリティパラメータインデックスを使用する場合には、ゲートウェイ106は、それが見た第1セキュリティパラメータインデックスが模造のリモート対ローカルセキュリティパラメータインデックスであったことを知る。   If the counterfeit packet is transmitted as described above, the local client 106-A discards the counterfeit packet, transmits an error message, or starts a new IKE exchange, and Confirm SA or make a new negotiation. If the client 106-A responds with an IPSec protection packet, but the remote IP address uses a different security parameter index in its response, the gateway 106 will assume that the first security parameter index that it sees is imitation remote vs. local. Know that it was a security parameter index.

ゲートウェイ106は、外部マシンと内部マシンとの間に両方向のIPSec保護交換を見るまでペンディングビット303をクリアすることができない。ゲートウェイ106は、それが正しいリモート対ローカルセキュリティパラメータインデックス値を有することの付加的な証拠として初期シーケンス番号を使用することができる。偽物のパケットが受け取られ、このような偽物のパケットのセキュリティパラメータインデックスがマッピングテーブル300にない場合には、ゲートウェイ106は、既知のセキュリティパラメータインデックスをもたないリモートIPアドレスからのものとされるIPSec保護パケットを破棄することができる。但し、これは、IKE交換が行なわれず、マッピングテーブル300の既存のセキュリティパラメータインデックスを正当に無効であるとしてもよいことをゲートウェイ106が知っている場合である。ゲートウェイ106は、このようなパケットを、シーケンス番号フィールドの値に関わらず破棄することができる。簡単に述べると、不一致のセキュリティパラメータインデックスがリモートIPアドレスから到達し、そのIPアドレスに一致する行で、ペンディングビット303がセットされた行がない場合には、パケットが削除されてもよい。   Gateway 106 cannot clear pending bit 303 until it sees a two-way IPSec protection exchange between the external machine and the internal machine. The gateway 106 can use the initial sequence number as additional evidence that it has the correct remote-to-local security parameter index value. If a fake packet is received and the security parameter index of such a fake packet is not in the mapping table 300, then the gateway 106 is assumed to be from a remote IP address that does not have a known security parameter index. A protection packet can be discarded. However, this is a case where the gateway 106 knows that the IKE exchange is not performed and the existing security parameter index of the mapping table 300 may be validly invalidated. The gateway 106 can discard such a packet regardless of the value of the sequence number field. Briefly, if a mismatched security parameter index arrives from a remote IP address and there is no line with the pending bit 303 set in a line that matches the IP address, the packet may be deleted.

本発明のある実施形態は、ゲートウェイ及び/又はクライアントコンピュータに完全に又は部分的に常駐できるプログラム製品である。メモリは、揮発性及び/又は不揮発性メモリであって、磁気的に読み取り可能なメモリ(例えば、フロッピーディスク、ハードディスク等)、光学的に読み取り可能なメモリ(例えば、CD−ROM、−RW、DVD−ROM、−RAM等)、並びに電気的に読み取り可能なメモリ(例えば、DRAM、SRAM、EEPROM、レジスタ、ラッチ等)を含むが、これらに限定されない。従って、本発明のある実施形態は、マシン読み取り可能なプログラムを含むプログラム製品である。プログラム製品のプログラム(1つ又は複数)は、これら実施形態のファンクションを定義するもので、種々の信号/保持媒体に含ませることができ、これらは、(i)書き込み不能の記憶媒体(例えば、CD−ROMドライブにより読み取り可能なCD−ROMディスクのようなコンピュータ内のリードオンリメモリ装置)に永久的に記憶された情報、(ii)書き込み可能な記憶媒体(例えば、ディスケットドライブ又はハードディスクドライブ内のフロッピーディスク)に記憶される変更可能な情報、或いは(iii)ワイヤレス通信を含むコンピュータ又は電話ネットワークのような通信媒体によりコンピュータへ搬送される情報を含むが、これらに限定されない。後者の実施形態は、特に、インターネット及び他のネットワークからダウンロードされる情報を含む。このような信号保持媒体は、本発明のファンクションを指令するコンピュータ読み取り可能な命令を搬送するときには、本発明の実施形態を表わす。   Certain embodiments of the present invention are program products that can be fully or partially resident on a gateway and / or client computer. The memory is a volatile and / or nonvolatile memory, such as a magnetically readable memory (for example, floppy disk, hard disk, etc.), an optically readable memory (for example, CD-ROM, -RW, DVD). -ROM, -RAM, etc.), as well as electrically readable memory (e.g., DRAM, SRAM, EEPROM, registers, latches, etc.), but not limited thereto. Accordingly, an embodiment of the present invention is a program product that includes a machine-readable program. The program product (s) define the functions of these embodiments and can be included in various signal / retention media, including (i) non-writable storage media (eg, Information permanently stored in a read-only memory device in a computer such as a CD-ROM disk readable by a CD-ROM drive), (ii) a writable storage medium (eg in a diskette drive or hard disk drive) Including, but not limited to, changeable information stored on a floppy disk) or (iii) information carried to the computer by a communication medium such as a computer or telephone network including wireless communication. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such a signal bearing medium represents an embodiment of the present invention when carrying computer readable instructions that direct the functions of the present invention.

以上、本発明の好ましい実施形態を説明したが、本発明の基本的範囲から逸脱せずに本発明の他の及び更に別の実施形態を案出することもでき、それ故、本発明の範囲は、特許請求の範囲により規定される。ステップを記載した請求項は、ステップの順序が明確に指示されない限りその順序を意味するものではない。全ての商標は、各々所有者の財産である。   While preferred embodiments of the invention have been described above, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and thus the scope of the invention Is defined by the claims. A claim describing a step does not imply that order unless the order of steps is clearly indicated. All trademarks are the property of their respective owners.

本発明の1つ以上の態様に基づくコンピュータシステムの実施形態を示すブロック図である。FIG. 7 is a block diagram illustrating an embodiment of a computer system in accordance with one or more aspects of the present invention. 本発明の1つ以上の態様に基づくネットワークの実施形態を示すネットワーク図である。1 is a network diagram illustrating an embodiment of a network in accordance with one or more aspects of the present invention. FIG. 本発明の1つ以上の態様に基づくIPSec/NAT一体化プロセスの各部分の実施形態を示すフローチャートである。6 is a flowchart illustrating an embodiment of portions of an IPSec / NAT integration process in accordance with one or more aspects of the present invention. 本発明の1つ以上の態様に基づくIPSec/NAT一体化プロセスの各部分の実施形態を示すフローチャートである。6 is a flowchart illustrating an embodiment of portions of an IPSec / NAT integration process in accordance with one or more aspects of the present invention. 本発明の1つ以上の態様に基づくIPSec/NAT一体化プロセスの各部分の実施形態を示すフローチャートである。6 is a flowchart illustrating an embodiment of portions of an IPSec / NAT integration process in accordance with one or more aspects of the present invention. 本発明の1つ以上の態様に基づくIPSec関連付けマッピングテーブル(IPSAMT)の実施形態を示すテーブル図である。FIG. 6 is a table diagram illustrating an embodiment of an IPSec association mapping table (IPSAMT) in accordance with one or more aspects of the present invention. 本発明の1つ以上の態様に基づくIPSec関連付けマッピングテーブル(IPSAMT)の実施形態を示すテーブル図である。FIG. 6 is a table diagram illustrating an embodiment of an IPSec association mapping table (IPSAMT) in accordance with one or more aspects of the present invention.

符号の説明Explanation of symbols

10・・・コンピュータシステム、11・・・CPU、13・・・システムメモリ、12・・・入力/出力(I/O)インターフェイス、100・・・NIC、101・・・コンピュータシステム、102、103・・・LAN、104・・・ワイドエリアネットワーク(WAN)、106、107・・・DHCPサーバー/NATゲートウェイ(ゲートウェイ)、106−A、106−B、106−C・・・クライアントコンピュータ、107−A、107−B、107−C・・・クライアントコンピュータ、108・・・ルーター、110・・・ネットワーク、112・・・ローカルメモリ、200・・・IPSec/NAT一体化プロセス、298・・・IPSec/NATゲートウェイ側一体化サブプロセス、299・・・IPSec/NATクライアント側一体化サブプロセス、300・・・IPSec割り当てマッピングテーブル(IPSAMT)
DESCRIPTION OF SYMBOLS 10 ... Computer system, 11 ... CPU, 13 ... System memory, 12 ... Input / output (I / O) interface, 100 ... NIC, 101 ... Computer system, 102, 103 ... LAN, 104 ... Wide area network (WAN), 106, 107 ... DHCP server / NAT gateway (gateway), 106-A, 106-B, 106-C ... Client computer, 107- A, 107-B, 107-C ... client computer, 108 ... router, 110 ... network, 112 ... local memory, 200 ... IPSec / NAT integration process, 298 ... IPSec / NAT gateway side integration subprocess, 299 ... IPSe / NAT client integration subprocess, 300 · · · IPSec allocation mapping table (IPSAMT)

Claims (10)

ネットワークアドレス変換(NAT)が可能であり、リモートコンピュータとクライアントコンピュータとの間にセキュア通信チャネルを確立するゲートウェイコンピュータであって、A gateway computer capable of network address translation (NAT) and establishing a secure communication channel between a remote computer and a client computer,
メモリと、Memory,
前記メモリに結合されたプロセッサと、A processor coupled to the memory;
を備え、With
前記プロセッサが、The processor is
ゲートウェイコンピュータパブリックアドレスのプールの中の一つのゲートウェイコンピュータパブリックアドレスを前記クライアントコンピュータに提供し、Providing the client computer with one gateway computer public address in a pool of gateway computer public addresses;
前記リモートコンピュータに対応するインターネットプロトコル(IP)アドレスに関する第1の要求を前記クライアントコンピュータから受信し、Receiving from the client computer a first request for an Internet Protocol (IP) address corresponding to the remote computer;
前記リモートコンピュータとセキュリティアソシエーションについてネゴシエーションすることでセキュリティパラメータインデックス(SPI)値を取得し、A security parameter index (SPI) value is obtained by negotiating a security association with the remote computer;
前記SPI値に基づいて、ネゴシエーションされた前記セキュリティアソシエーションから得られる前記クライアントコンピュータのローカルアドレスと、該セキュリティアソシエーションから得られる前記リモートコンピュータの行先アドレスと、マッピングテーブル内の媒体アクセス制御(MAC)アドレスとを前記メモリに記憶し、Based on the SPI value, a local address of the client computer obtained from the negotiated security association, a destination address of the remote computer obtained from the security association, a medium access control (MAC) address in a mapping table, In the memory,
前記リモートコンピュータから受信したデータパケットを前記マッピングテーブルに基づいて前記クライアントコンピュータに向けることで、前記リモートコンピュータと前記クライアントコンピュータとの間にセキュア通信チャネルを確立する、Establishing a secure communication channel between the remote computer and the client computer by directing data packets received from the remote computer to the client computer based on the mapping table;
ことを特徴とするゲートウェイコンピュータ。A gateway computer characterized by that.
前記プロセッサが、更に、ネゴシエーションされた前記セキュリティアソシエーションに関連付けられたネゴシエーションステータスビットを含むイニシエータ指示子を前記クライアントコンピュータから取得する、The processor further obtains an initiator indicator from the client computer that includes a negotiation status bit associated with the negotiated security association;
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記プロセッサが、更に、前記イニシエータ指示子と、タイムスタンプと、前記第1の要求のセキュリティプロトコルヘッダに関連付けられたセキュリティプロトコルタイプ識別子とを前記マッピングテーブルに記憶する、The processor further stores in the mapping table the initiator indicator, a time stamp, and a security protocol type identifier associated with a security protocol header of the first request;
ことを特徴とする請求項2に記載のゲートウェイコンピュータ。The gateway computer according to claim 2.
前記プロセッサが、更に、The processor further comprises:
前記SPI値が前記マッピングテーブルに記憶されていないことを示すフラグビットをセットし、Setting a flag bit indicating that the SPI value is not stored in the mapping table;
前記SPI値を取得した後に前記フラグビットをクリアする、Clearing the flag bit after obtaining the SPI value;
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記プロセッサが、更に、所定時間を経過しても新たな情報を取得できなかった場合に前記マッピングテーブルに記憶されている情報を除去する、The processor further removes information stored in the mapping table when new information cannot be acquired even after a predetermined time has elapsed.
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記プロセッサが、更に、The processor further comprises:
第1のクライアント識別子を前記第1の要求に割り当て、Assigning a first client identifier to the first request;
異なるIPアドレスに関する第2の要求を前記クライアントコンピュータから受信し、Receiving from the client computer a second request for a different IP address;
前記第1のクライアント識別子から導出される第2のクライアント識別子を前記第2の要求に割り当てる、Assigning to the second request a second client identifier derived from the first client identifier;
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記マッピングテーブルが、更に、前記クライアントコンピュータにより確立された、前記クライアントコンピュータと前記リモートコンピュータとの間の更なる通信を識別するイニシエータクッキーを記憶する、The mapping table further stores an initiator cookie established by the client computer that identifies further communication between the client computer and the remote computer;
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記クライアントコンピュータのみが前記提供されたゲートウェイコンピュータパブリックアドレスを使用可能である、Only the client computer can use the provided gateway computer public address,
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
前記SPI値が前記マッピングテーブル内の一意の行を指定する、The SPI value specifies a unique row in the mapping table;
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
インターネットプロトコルセキュリティ(IPSec)が前記ゲートウェイコンピュータと前記リモートコンピュータとの間のトランザクションを管理し、Internet Protocol Security (IPSec) manages transactions between the gateway computer and the remote computer;
前記トランザクションが、認証ヘッダ(AH)又はカプセル化セキュリティペイロード(ESP)を有するヘッダを含む、The transaction includes a header having an authentication header (AH) or an encapsulating security payload (ESP);
ことを特徴とする請求項1に記載のゲートウェイコンピュータ。The gateway computer according to claim 1.
JP2004514302A 2002-06-13 2003-06-03 Improved security method and apparatus for communicating over a network Expired - Fee Related JP4426443B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/172,046 US7143188B2 (en) 2002-06-13 2002-06-13 Method and apparatus for network address translation integration with internet protocol security
US10/172,345 US7191331B2 (en) 2002-06-13 2002-06-13 Detection of support for security protocol and address translation integration
US10/172,352 US7143137B2 (en) 2002-06-13 2002-06-13 Method and apparatus for security protocol and address translation integration
US10/172,683 US7120930B2 (en) 2002-06-13 2002-06-13 Method and apparatus for control of security protocol negotiation
PCT/US2003/017502 WO2003107624A1 (en) 2002-06-13 2003-06-03 Method and apparatus for enhanced security for communication over a network

Publications (2)

Publication Number Publication Date
JP2005530404A JP2005530404A (en) 2005-10-06
JP4426443B2 true JP4426443B2 (en) 2010-03-03

Family

ID=34109062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004514302A Expired - Fee Related JP4426443B2 (en) 2002-06-13 2003-06-03 Improved security method and apparatus for communicating over a network

Country Status (4)

Country Link
JP (1) JP4426443B2 (en)
AU (1) AU2003240506A1 (en)
DE (1) DE10392807B9 (en)
GB (2) GB2413248B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11888982B2 (en) 2018-11-15 2024-01-30 Huawei Technologies Co., Ltd. Rekeying a security association SA

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042170B2 (en) * 2004-07-15 2011-10-18 Qualcomm Incorporated Bearer control of encrypted data flows in packet data communications
JPWO2007069327A1 (en) * 2005-12-15 2009-05-21 富士通株式会社 RELAY DEVICE, RELAY METHOD, RELAY PROGRAM, COMPUTER-READABLE RECORDING MEDIUM CONTAINING RELAY PROGRAM, AND INFORMATION PROCESSING DEVICE
JP2008079059A (en) * 2006-09-22 2008-04-03 Fujitsu Access Ltd COMMUNICATION EQUIPMENT WHICH PROCESSES MULTIPLE SESSIONS OF IPsec, AND PROCESSING METHOD THEREOF
JP4708297B2 (en) * 2006-09-29 2011-06-22 富士通テレコムネットワークス株式会社 Communication device for processing a plurality of IPsec sessions
JP2008259099A (en) * 2007-04-09 2008-10-23 Atsumi Electric Co Ltd Security system
CN104980405A (en) * 2014-04-10 2015-10-14 中兴通讯股份有限公司 Method and device for performing authentication header (AH) authentication on NAT (Network Address Translation)-traversal IPSEC (Internet Protocol Security) message
JP6109990B1 (en) * 2016-03-31 2017-04-05 西日本電信電話株式会社 Web authentication compatible repeater

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI105753B (en) * 1997-12-31 2000-09-29 Ssh Comm Security Oy Procedure for authentication of packets in the event of changed URLs and protocol modifications
EP1159815B1 (en) * 1999-03-17 2005-11-23 3Com Corporation Method and system for distributed network address translation with network security features
US7058973B1 (en) * 2000-03-03 2006-06-06 Symantec Corporation Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses
US7155740B2 (en) * 2000-07-13 2006-12-26 Lucent Technologies Inc. Method and apparatus for robust NAT interoperation with IPSEC'S IKE and ESP tunnel mode

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11888982B2 (en) 2018-11-15 2024-01-30 Huawei Technologies Co., Ltd. Rekeying a security association SA

Also Published As

Publication number Publication date
DE10392807B9 (en) 2011-06-16
JP2005530404A (en) 2005-10-06
GB2413248B (en) 2006-06-21
GB0509902D0 (en) 2005-06-22
GB2405300A (en) 2005-02-23
GB2405300B (en) 2006-07-12
DE10392807T5 (en) 2005-07-28
AU2003240506A1 (en) 2003-12-31
DE10392807B4 (en) 2011-03-10
GB0427337D0 (en) 2005-01-19
GB2413248A (en) 2005-10-19

Similar Documents

Publication Publication Date Title
US7120930B2 (en) Method and apparatus for control of security protocol negotiation
US7191331B2 (en) Detection of support for security protocol and address translation integration
US7143188B2 (en) Method and apparatus for network address translation integration with internet protocol security
US7143137B2 (en) Method and apparatus for security protocol and address translation integration
US9712494B2 (en) Method and system for sending a message through a secure connection
JP3793083B2 (en) Method and apparatus for providing security by network address translation using tunneling and compensation
US8583912B2 (en) Communication system of client terminals and relay server and communication method
US6795917B1 (en) Method for packet authentication in the presence of network address translations and protocol conversions
US7472411B2 (en) Method for stateful firewall inspection of ICE messages
US6976177B2 (en) Virtual private networks
JP4579934B2 (en) Addressing method and apparatus for establishing a Host Identity Protocol (HIP) connection between a legacy node and a HIP node
JP4766574B2 (en) Preventing duplicate sources from clients handled by network address port translators
JP4443558B2 (en) Secure communication method and apparatus for IPv4 / IPv6 integrated network system
KR101851826B1 (en) Network gateway apparatus
EP1560396A2 (en) Method and apparatus for handling authentication on IPv6 network
US7181612B1 (en) Facilitating IPsec communications through devices that employ address translation in a telecommunications network
JP2009111437A (en) Network system
JP2008536418A (en) Preventing duplicate sources from clients handled by network address port translators
WO2010124014A2 (en) Methods, systems, and computer readable media for maintaining flow affinity to internet protocol security (ipsec) sessions in a load-sharing security gateway
US20050135359A1 (en) System and method for IPSEC-compliant network address port translation
Richardson et al. Opportunistic encryption using the internet key exchange (ike)
JP4426443B2 (en) Improved security method and apparatus for communicating over a network
WO2008114007A1 (en) Data communication method and apparatus
JP4003634B2 (en) Information processing device
GB2418821A (en) Security protocol and address translation integration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090302

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees