JP4489008B2 - 通信装置、通信方法および通信プログラム - Google Patents

通信装置、通信方法および通信プログラム Download PDF

Info

Publication number
JP4489008B2
JP4489008B2 JP2005332070A JP2005332070A JP4489008B2 JP 4489008 B2 JP4489008 B2 JP 4489008B2 JP 2005332070 A JP2005332070 A JP 2005332070A JP 2005332070 A JP2005332070 A JP 2005332070A JP 4489008 B2 JP4489008 B2 JP 4489008B2
Authority
JP
Japan
Prior art keywords
protocol
port number
message
server
header
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
JP2005332070A
Other languages
English (en)
Other versions
JP2007142675A (ja
Inventor
康之 小堺
茂雄 松澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005332070A priority Critical patent/JP4489008B2/ja
Priority to US11/555,490 priority patent/US8654755B2/en
Publication of JP2007142675A publication Critical patent/JP2007142675A/ja
Application granted granted Critical
Publication of JP4489008B2 publication Critical patent/JP4489008B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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/256NAT traversal
    • H04L61/2564NAT traversal for a higher-layer protocol, e.g. for session initiation protocol [SIP]
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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

Landscapes

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

Description

この発明は、アドレス変換機能を有するネットワーク中継装置を介して外部ネットワークに接続された他の通信装置と通信する通信装置、通信方法および通信プログラムに関するものである。
近年、限られたグローバルIPアドレスの数を越える複数の装置が同時にインターネット上の別の装置と通信できるようにするため、NAT boxを利用したネットワーク構成が広く利用されている。NAT boxとは、受信したパケットのIPアドレスやポート番号等を書き換えてからパケットを転送する、ネットワークアドレス変換(NAT:Network Address Translation)機能を有するルータ(ネットワーク中継装置)である。
NAT boxは、NAT box配下の装置から開始された新しい通信を検知するたびに、NATマッピングと呼ばれる、パケット中の送信元アドレスおよび送信先アドレスの組に対して変換先のアドレスをマッピングするデータを作成し、保持する。そして、NAT boxは、このNATマッピングを参照してパケット中のアドレスを変換する。
ここで、アドレスにはIPアドレスだけでなくTCPヘッダ、UDPヘッダのポート番号などの、トランスポートプロトコルにおけるアドレスも含む場合が多い。なお、NAT boxによるアドレスの変換を以下ではNAT変換と記述することとする。
広く普及しているNAT boxでは、NAT変換して転送することが可能なパケットの種類が、IPヘッダの次のヘッダがTCPヘッダ、UDPヘッダ、ICMPヘッダであるものに限られる。そこで、例えばNAT box配下の装置がESP(Encapsulating Security Payload)のTransport Modeを利用して暗号化し、かつIPヘッダの次にESPヘッダを付与したパケットで通信を試みても、NAT boxはパケットをNAT変換できず、転送することができない。そこで、UDPヘッダをIPヘッダとESPヘッダの間に挿入することで、NAT boxがNAT変換し転送できるようにする技術が提案されている(例えば、非特許文献1、非特許文献2)。
ところが、例えば同一NAT配下に存在する複数の装置が、非特許文献1の方法を用いてインターネット上に存在する同一のサーバに通信を行う場合、サーバ内のアプリケーションがNAT配下の装置のいずれから受信したパケットかを判別できず混信するケースが存在する。
例えば、同一NAT配下の複数の装置がUDPヘッダの送信元ポート番号、送信先ポート番号の組を同一に設定し、非特許文献1の方法にしたがってUDPデータグラムをESPヘッダと新たなUDPヘッダでカプセル化してサーバに送信し、サーバが非特許文献1の手法にしたがってESP、UDPヘッダを除去しパケットを復号化したとする。この場合、いずれの装置から受信した送信したパケットについても、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、トランスポートプロトコル種別の組が同一になる。したがって、サーバ内のアプリケーションはNAT box配下のいずれの装置から受信したパケットかを判別することができない。
これに対し、非特許文献1では、上述のような混信の発生を回避する技術が提案されている。具体的には、ESPによる通信前の鍵交換においてSA(Security Association)のIPアドレスやポート番号を受信したサーバが、すでに同じIPアドレスおよびポート番号の組でSA存在するかを確認し、存在する場合は鍵交換を中断し、ESPの通信を取りやめることにより、混信を回避する技術が提案されている。
また、サーバが、受信したパケット中のIPヘッダとESPヘッダの間に設定されているUDPヘッダ内の送信元ポート番号で、ESPでカプセル化されたUDPヘッダの送信元ポート番号を置き換えることにより、混信を回避する技術も提案されている(例えば、特許文献1)。
前記パケットのIPアドレスおよびESPヘッダの間のUDPヘッダ内の送信元ポート番号は、NAT boxによりNAT変換されているが、NAT boxの性質上、必ず送信元IPアドレス、送信元ポート番号、プロトコル種別の組が唯一になる。その結果、アプリケーションが受信するパケットの送信元IPアドレス、送信先IPアドレス、プロトコル種別の組も唯一になる。したがって、サーバ内のアプリケーションは、同一NAT配下のどちらの装置から受信したパケットかを判別することができる。
米国特許出願公開第2004/0143758号明細書 A. Huttunen et al.、"RFC 3948、 UDP Encapsulation of IPsec ESP Packets"、[online]、 January 2005、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3948.txt> T. Kivinen et al.、"RFC 3947、 Negotiation of NAT-Traversal in the IKE"、[online]、 January 2005、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3947.txt>
しかしながら、上記文献のいずれの方法によっても、サーバ側の処理負担が増大するという問題があった。すなわち、例えば、非特許文献1では、サーバ側ですでに同一のIPアドレスおよびポート番号によるSAが存在するか否かを判断する処理が必要となる。また、特許文献1では、パケットを受信するたびにサーバ側で送信元ポート番号の置換を行う処理が必要となる。
本発明は、上記に鑑みてなされたものであって、サーバの処理負荷を増大させずにサーバ内のアプリケーションが混乱なくネットワーク中継装置配下の複数の装置と通信することができる通信装置、通信方法および通信プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、送信されるメッセージのプロトコルヘッダに含まれる送信元ポート番号を外部ネットワークと通信可能な送信元ポート番号に変換するネットワーク中継装置を介して接続されたサーバと通信する通信装置において、前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを前記サーバに送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むポート番号情報メッセージを、前記サーバから前記ネットワーク中継装置を介して受信する受信手段と、前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手段が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手段と、前記第1プロトコル処理手段が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手段と、前記第2プロトコル処理手段が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手段と、前記第3プロトコル処理手段が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する送信手段と、を備えたことを特徴とする。
また、本発明は、送信されるメッセージのプロトコルヘッダに含まれるプロトコルと送信元IPアドレスと送信元ポート番号との組み合わせごとに送信元IPアドレスと送信元ポート番号とを外部ネットワークと通信可能な一定の値に変換するネットワーク中継装置を介して接続されたサーバ、および、前記ネットワーク中継装置を介して接続され、送信元ポート番号を含むアドレスに関する情報を提供するアドレス情報提供装置と通信する通信装置において、前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを、前記ネットワーク中継装置を介して前記アドレス情報提供装置に送信する第1の送信手段と、前記第1の送信手段が前記第1のメッセージを前記アドレス情報提供装置に送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むアドレス情報メッセージを、前記アドレス情報提供装置から前記ネットワーク中継装置を介して受信する受信手段と、前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手段が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手段と、前記第1プロトコル処理手段が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手段と、前記第2プロトコル処理手段が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手段と、前記第3プロトコル処理手段が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する第2の送信手段と、を備えたことを特徴とする。
また、本発明は、上記装置を実行することができる通信方法および通信プログラムである。
本発明によれば、混信せずに通信を行える送信元ポート番号を、事前に外部ネットワーク上の通信装置から受信し、当該送信元ポート番号を用いて通信装置側でパケットを作成することができる。このため、サーバの処理負荷を増大させずにサーバ内のアプリケーションが混乱なくネットワーク中継装置配下の複数の装置と通信することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる通信装置、通信方法および通信プログラムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかる通信装置は、UDPで送信するメッセージを、NAT変換ができない暗号化通信プロトコルであるESPによりカプセル化し、さらにNAT変換可能とするためにUDPヘッダでカプセル化したメッセージをインターネット上のサーバに送信するものである。
その際、サーバからNAT変換後の送信元ポート番号を受信し、当該送信元ポート番号を、ESPでカプセル化するUDPヘッダの送信元ポート番号に設定してサーバとの通信を行うものである。
インターネット上で送受信されるメッセージは、通常、パケットと呼ばれるデータの単位に分割されて送信される。パケットは、送信元、送信先のアドレス情報等を格納するヘッダ部と、データ自体を格納するペイロード部から構成される。なお、ヘッダ部とペイロード部とを合わせた情報をデータグラムと呼ぶ場合もある。
以下では、IPヘッダとIPペイロードから構成されるものをパケットと呼び、UDPヘッダとUDPペイロードから構成されるものをUDPデータグラムと呼ぶ。また、ESPにより暗号化された情報を含むパケットを特にESPパケットと呼ぶ。
また、カプセル化とは、既存のパケットまたはデータグラムを任意のプロトコルの新たなペイロードとし、当該プロトコルの新たなヘッダを付与することにより、既存のパケットまたはデータグラムを生成したプロトコルを隠蔽化することをいう。なお、新たなペイロードを生成する際に、暗号化等のデータの加工処理を行う場合を含む。
例えば、UDPプロトコルで作成されたUDPデータグラムをESPプロトコルにより暗号化し、ESPヘッダを付与することにより、UDPデータグラムをESPでカプセル化することができる。
なお、NAT変換可能とするためにカプセル化するプロトコルはUDPに限られるものではなく、NAT BoxがNAT変換して転送可能なプロトコルであればあらゆるプロトコルに対して本提案の内容を適用することができる。また、NAT変換ができないプロトコルはESPに限られるものではなく、他の暗号化通信プロトコルなど、NAT BoxがNAT変換して転送することができないプロトコルであればあらゆるプロトコルが対象となる。さらに、NAT変換ができないプロトコルでカプセル化されるプロトコルはUDPに限られるものではなく、TCPなどの送信元ポート番号が重複することにより混信が生じうるものであれば、あらゆるプロトコルに対して本提案の内容を適用することができる。
図1は、第1の実施の形態にかかる通信装置100を含むネットワーク全体の構成を示すブロック図である。同図に示すように、第1の実施の形態にかかるネットワークは、通信装置100が、NAT Box120を介してインターネット130に接続され、インターネット130に接続された通信相手であるサーバ140と通信を行うように構成されている。
なお、同図では、異なるプライベートIPアドレスCおよびDが割り当てられた2つの通信装置100a、100bが記載されているが、機能や構成は同一である。通信装置100a、100bをまとめて通信装置100と呼ぶ。サーバ140には、グローバルIPアドレスSが割り当てられている。
NAT Box120は、受信したパケットに含まれる宛先のIPアドレスを参照して送信経路を選択する機能を有し、当該パケットを他のネットワークに中継する装置であり、プライベートIPアドレスをグローバルIPアドレスに変換するネットワークアドレス変換(NAT)機能を有する。NAT Box120のインターネット130に接続する側のネットワークインタフェースには、グローバルIPアドレスNが割り当てられている。
通信装置100は、暗号化鍵の交換・管理を行うプロトコルであるIKE(Internet Key Exchange)を拡張することにより、サーバ140からNAT変換後のUDPヘッダの送信元ポート番号を取得し、取得した送信元ポート番号をUDPヘッダに設定したUDPデータグラムをESPヘッダおよび別のUDPヘッダでカプセル化したパケットを作成してサーバ140と通信を行うものである。
図2は、第1の実施の形態で送受信されるパケットの形式の一例を示した説明図である。同図に示すように、通信装置100およびサーバ140間で送受信されるパケット201は、UDPヘッダが付与されたデータをESPプロトコルにより暗号化してESPヘッダでカプセル化し、さらにUDPヘッダでカプセル化したものに、IPヘッダを付与した形式となっている。
このような形式により、メッセージの安全性を確保しつつ、NAT Box120が対応していないプロトコルをNAT Box120が対応しているプロトコルによりカプセル化し、NAT Box120を超えた通信が可能となる。
図3は、第1の実施の形態にかかる通信装置100の構成を示すブロック図である。同図に示すように、通信装置100は、IKE処理部101と、クライアントアプリケーション102と、UDP処理部103と、ESP処理部104と、カプセル化UDP処理部105と、送受信部106と、記憶部107とを備えている。
IKE処理部101は、IKEプロトコルにしたがってサーバ140との間で送受信するメッセージであるIKEメッセージの処理を行うものである。具体的には、IKE処理部101は、暗号化された通信を確立するために、ISAKMP(Internet Security Association Key Manager Protocol) SAを作成するIKEメッセージや、認証を要求するIKEメッセージなどを作成する。
また、IKE処理部101は、作成したIKEメッセージをUDPで送信するためにUDP処理部103に渡す処理や、サーバ140から返信されたIKEメッセージから暗号化および復号化に使用する鍵やISAKMP SAの作成および維持に必要なパラメータなどのパラメータを取得し、記憶部107に記憶する処理を行う。
さらに、IKE処理部101は、サーバ140が作成して返信した、NAT変換後の送信元ポート番号を含むように拡張されたIKEメッセージから、当該NAT変換後の送信元ポート番号を取得し、記憶部107に記憶する処理を行う。このようにして記憶部107に記憶された送信元ポート番号を利用することにより、サーバ140との通信時に混信が発生することが回避可能となる。
クライアントアプリケーション102は、サーバ140内のサーバアプリケーション142と通信を行うことにより所定の処理を行うアプリケーションである。具体的には、クライアントアプリケーション102は、サーバ140と通信する際に用いるデータを生成しUDP処理部103に渡し、サーバ140から返信されたデータをUDP処理部103から受け取って所定の処理を行う。サーバ140内のサーバアプリケーション142と通信を行う処理を含むものであれば、クライアントアプリケーション102の処理内容はどのようなものであってもよい。
UDP処理部103は、UDPのプロトコルにしたがってサーバ140との間で送受信するUDPデータグラムの処理を行うものである。具体的には、UDP処理部103は、IKE処理部101から渡されたIKEメッセージにUDPヘッダを付加し送受信部106に渡す処理、クライアントアプリケーション102から渡されたデータにUDPヘッダを付加しESP処理部104に渡す処理を行う。
また、UDP処理部103は、ESP処理部104から渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードをクライアントアプリケーション102に渡す処理を行う。
また、UDP処理部103は、送受信部106から受信したUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得し、UDPペイロードがESPヘッダを含む場合は、送受信部106から受信したUDPデータグラムをカプセル化UDP処理部105に渡す。すなわち、パケットがESPでカプセル化されている場合は、カプセル化されているパケットを処理するためのカプセル化UDP処理部105にUDPデータグラムを渡している。
また、UDP処理部103は、UDPペイロードがESPヘッダを含まない場合は、IKE処理部101にUDPペイロードを渡す。
ESP処理部104は、ESPプロトコルにしたがってサーバ140との間で送受信するデータの暗号化処理を行うものである。具体的には、ESP処理部104は、記憶部107に記憶された暗号化用の鍵などのパラメータを使用してUDP処理部103から渡されたUDPデータグラムを暗号化し、ESPヘッダを付加し、カプセル化UDP処理部105に渡す処理を行う。
また、ESP処理部104は、記憶部107に記憶された復号化用の鍵などのパラメータを使用してカプセル化UDP処理部105から渡された、暗号化されたUDPデータグラムを復号化しUDP処理部103に渡す処理を行う。
カプセル化UDP処理部105は、UDPのプロトコルにしたがって、ESP処理部104が暗号化したUDPデータグラムに対して、さらにUDPヘッダでカプセル化したUDPデータグラムを作成し、サーバ140から受信したパケットに対しては、暗号化されたUDPデータグラムをさらにカプセル化しているUDPヘッダを削除する処理を行うものである。
具体的には、カプセル化UDP処理部105は、ESP処理部104から渡されたESPで暗号化されたUDPデータグラムに、記憶部107に記憶されている送信元ポート番号を設定したUDPヘッダを付加し送受信部106に渡す処理を行う。
また、カプセル化UDP処理部105は、ESPで暗号化されたUDPデータグラムをさらにカプセル化しているUDPヘッダを削除し、UDPデータグラムをESP処理部104に渡す処理を行う。
送受信部106は、UDP処理部103またはカプセル化UDP処理部105から渡されたUDPデータグラムにIPヘッダを付加してサーバ140に送信するものである。また、送受信部106は、サーバ140から受信したパケットのIPヘッダを削除したUDPペイロードを、UDP処理部103またはカプセル化UDP処理部105に渡す処理を行う。
記憶部107は、NAT Box120がNAT変換した後の送信元ポート番号、暗号化および復号化に使用する鍵、ISAKMP SAの作成および維持に必要なパラメータを記憶するものであり、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶デバイスにより構成することができる。
以上が、通信装置100を構成する各部の処理内容である。次に、サーバ140の構成について説明する。
サーバ140は、IKEプロトコルにより通信装置100と暗号化された通信を確立した後、通信装置100と暗号化されたパケットの送受信をするものである。
図4は、第1の実施の形態にかかるサーバ140の構成を示すブロック図である。同図に示すように、サーバ140は、IKE処理部141と、サーバアプリケーション142と、UDP処理部143と、ESP処理部144と、カプセル化UDP処理部145と、送受信部146と、記憶部147とを備えている。
IKE処理部141は、通信装置100のIKE処理部101と同様に、IKEプロトコルにしたがって通信装置100との間で送受信するIKEメッセージの処理を行うものである。具体的には、IKE処理部141は、暗号化された通信を確立するために、ISAKMP SAを作成するIKEメッセージや、認証を要求するIKEメッセージなどを作成する。
また、IKE処理部141は、作成したIKEメッセージをUDPで送信するためにUDP処理部143に渡す処理や、通信装置100から送信されたIKEメッセージから暗号化および復号化に使用する鍵やISAKMP SAの作成および維持に必要なパラメータなどのパラメータを取得し、記憶部147に記憶する処理を行う。
さらに、IKE処理部141は、通信装置100から送信され、NAT変換された後のUDPデータグラムの送信元UDPポート番号を取得して記憶部147に記憶するとともに、記憶した送信元ポート番号を付加して拡張したIKEメッセージを作成し、通信装置100に送信する点が、IKE処理部101と異なっている。拡張したIKEメッセージの詳細については後述する。
サーバアプリケーション142は、通信装置100内のクライアントアプリケーション102と通信を行うことにより所定の処理を行うアプリケーションである。具体的には、サーバアプリケーション142は、通信装置100と通信する際に用いるデータを生成しUDP処理部143に渡し、通信装置100から返信されたデータをUDP処理部143から受け取って所定の処理を行う。通信装置100内のクライアントアプリケーション102と通信を行う処理を含むものであれば、サーバアプリケーション142の処理内容はどのようなものであってもよい。
UDP処理部143は、UDPのプロトコルにしたがって通信装置100との間で送受信するUDPデータグラムの処理を行うものである。具体的には、UDP処理部143は、IKE処理部141から渡されたIKEメッセージにUDPヘッダを付加し送受信部146に渡す処理、サーバアプリケーション142から渡されたデータにUDPヘッダを付加しESP処理部144に渡す処理を行う。
また、UDP処理部143は、ESP処理部144から渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードをサーバアプリケーション142に渡す処理を行う。
また、UDP処理部143は、送受信部146から受信したUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得し、UDPペイロードがESPヘッダを含む場合は、送受信部146から受信したUDPデータグラムをカプセル化UDP処理部145に渡し、UDPペイロードがESPヘッダを含まない場合は、IKE処理部141にUDPペイロードを渡す処理を行う。
ESP処理部144は、ESPプロトコルにしたがって通信装置100との間で送受信するデータの暗号化処理を行うものである。具体的には、ESP処理部144は、記憶部147に記憶された暗号化用の鍵などのパラメータを使用してUDP処理部143から渡されたUDPデータグラムを暗号化し、ESPヘッダを付加し、カプセル化UDP処理部145に渡す処理を行う。
また、ESP処理部144は、記憶部147に記憶された復号化用の鍵などのパラメータを使用してカプセル化UDP処理部145から渡されたパケットを復号化しUDP処理部143に渡す処理を行う。
カプセル化UDP処理部145は、UDPのプロトコルにしたがって、ESP処理部144が暗号化したUDPデータグラムに対して、さらにUDPヘッダでカプセル化したUDPデータグラムを作成し、通信装置100から受信したパケットに対しては、ESPで暗号化されたUDPデータグラムをさらにカプセル化しているUDPヘッダを削除する処理を行うものである。
具体的には、カプセル化UDP処理部145は、ESP処理部144から渡されたESPで暗号化されたUDPデータグラムにUDPヘッダを付加し送受信部146に渡す処理を行う。また、カプセル化UDP処理部145は、ESPで暗号化されたUDPデータグラムをさらにカプセル化しているUDPヘッダを削除したUDPデータグラムをESP処理部144に渡す処理を行う。
送受信部146は、UDP処理部143またはカプセル化UDP処理部145から渡されたUDPデータグラムにIPヘッダを付加して通信装置100に送信するものである。また、送受信部146は、通信装置100から受信したパケットのIPヘッダを削除したUDPデータグラムを、UDP処理部143またはカプセル化UDP処理部145に渡す処理を行う。
記憶部147は、暗号化および復号化に使用する鍵、ISAKMP SAの作成および維持に必要なパラメータを記憶するものであり、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶デバイスにより構成することができる。
次に、このように構成された第1の実施の形態にかかる通信装置100およびサーバ140間の通信処理について説明する。図5および図6は、第1の実施の形態における通信処理の全体の流れを示すシーケンス図である。
なお、以下では通信装置100とサーバ140はIKEの電子署名による認証機能つきのAggressiveモードを用いて通信を確立する処理であるIKEのフェーズ1の折衝を行うものとして説明するが、IKEのMainモードを用いてもよいし、認証方式に電子署名以外の方式を用いてもよい。
まず、通信装置100がサーバ140にISAKMP SAの作成を提案する処理を行う(ステップS501)。具体的には、ステップS501では、以下の処理が行われる。
まず、IKE処理部101がSA作成提案メッセージであるIKEメッセージ701を生成し、UDP処理部103に渡す。UDP処理部103はIKEメッセージ701に送信元ポート番号および送信先ポート番号が500であるUDPヘッダを付加し、送受信部106に渡す。送受信部106は、さらに送信元IPアドレスがCで送信先IPアドレスがSであるIPヘッダを付加する。
IKEメッセージ701はIKEプロトコルの標準仕様を定めた非特許文献2に準拠したフォーマットで構成される。図7は、第1の実施の形態で送受信されるIKEメッセージのフォーマットの一例を示した説明図である。
同図に示すように、IKEメッセージ701は、ISAKMPヘッダ(HDR)、SAペイロード(SA)、Key Exchangeペイロード(KE)、Nonceペイロード(Ni)、IDペイロード(IDii)、VendorIDペイロード(VID)を含む。
ステップS501でIPヘッダを付加されたIKEメッセージ701は、送受信部106によりNAT Box120に送信される(ステップS502)。なお、ステップS502の下部に記載された“(500→500)”は、IKEメッセージ701のUDPヘッダの送信元ポート番号が500、送信先ポート番号が500に設定されていることを表す。
次に、NAT Box120がIKEメッセージ701を受信し、IKEメッセージ701をNAT変換し、インターネット130に転送する(ステップS503)。この結果、IKEメッセージ701の送信元IPアドレスがNに変換される。UDPヘッダの送信元ポート番号もNAT変換により変換される。図5では、NAT変換後のIKEメッセージ701の送信元ポート番号をpn1としている。なお、NAT変換後の送信元ポート番号が、NAT変換前と同じポート番号になる場合もある。
次に、サーバ140がISAKMP SA作成提案の検証を行う(ステップS504)。具体的には、ステップS504では、以下の処理が行われる。
まず、送受信部146がIKEメッセージ701を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部143に渡す。UDP処理部143は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。ISAKMP SA作成提案の段階では、ESPによる暗号化は行われていない。すなわち、UDPペイロードにESPヘッダは含まれないため、UDP処理部143は、IKE処理部141にUDPペイロードを渡す。IKE処理部141は渡されたIKEメッセージ701を検証し、IKEメッセージ701で示される提案を受諾するか否かを決定する。
提案を受諾する場合、サーバ140は、提案の受諾処理を行う(ステップS505)。具体的には、ステップS505では、以下の処理が行われる。
まず、ISAKMP SAの確立に必要なパラメータを通信装置100に通知するために、IKE処理部141がIKEメッセージ702を作成し、UDP処理部143に渡す。UDP処理部143は送信元ポート番号が500で送信先ポート番号がpn1であるUDPヘッダを付加し送受信部146に渡す。送受信部146は送信元IPアドレスがSで送信先IPアドレスがNであるIPヘッダを付加する。
IKEメッセージ702は図7に示すようにISAKMPヘッダ(HDR)、SAペイロード(SA)、Key Exchangeペイロード(KE)、Nonceペイロード(Nr)、IDペイロード(IDir)、Certペイロード(CERT)、VendorIDペイロード(VID)、2つのNAT−Dペイロード(NAT−D)、SIGNATUREペイロード(SIG_I)を含む。
ステップS505でIPヘッダを付加されたIKEメッセージ702は、送受信部146によりインターネット130を介してNAT Box120に送信される(ステップS506)。
次に、NAT Box120がIKEメッセージ702を受信し、IKEメッセージ702をNAT変換し、通信装置100に転送する(ステップS507)。この結果、IKEメッセージ702の送信先IPアドレスがCに変換され、送信先ポート番号は500に変換される。
次に、通信装置100がサーバの認証処理を行う(ステップS508)。具体的には、ステップS508では、以下の処理が行われる。
まず、送受信部106がIKEメッセージ702を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部103に渡す。UDP処理部103は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。UDPペイロードにESPヘッダが含まれないため、UDP処理部103は、IKE処理部101にUDPペイロードを渡す。IKE処理部101は渡されたIKEメッセージ702のSIGNATUREペイロードなどを用いてサーバ140から受信したメッセージであることを検証する。さらに、IKE処理部101は、IKEメッセージ702に含まれるISAKMP SAの作成に必要なパラメータを記憶部107に記憶する。
次に、通信装置100は、サーバ140に自装置の認証を要求する認証要求処理を実行する(ステップS509)。具体的には、ステップS509では、以下の処理が行われる。
まず、IKE処理部101は、通信装置100内の他のアプリケーションに使用されていないUDPヘッダのポート番号pcをUDP処理部103から取得してIKEメッセージ703を生成し、生成したIKEメッセージ703をUDP処理部103に渡す。UDP処理部103は渡されたIKEメッセージ703に送信元ポート番号がpc、送信先ポート番号が4500であるUDPヘッダを付加し、送受信部106に渡す。送受信部106は渡されたIKEメッセージ703に送信元IPアドレスがC、送信先IPアドレスがSであるIPヘッダを付加する。
IKEメッセージ703は、図7に示すようにISAKMPヘッダ(HDR)、Certペイロード(CERT)、2つのNAT−Dペイロード(NAT−D)、SIGNATUREペイロード(SIG_I)を含むものである。
ステップS509でIPヘッダを付加されたIKEメッセージ703は、送受信部106によりNAT Box120に送信される(ステップS510)。
次に、NAT Box120がIKEメッセージ703を受信し、IKEメッセージ703をNAT変換し、インターネット130に転送する(ステップS511)。この結果、IKEメッセージ703の送信元IPアドレスがNに変換される。UDPヘッダの送信元ポート番号もNAT変換により変換される。図5では、NAT変換後のIKEメッセージ703の送信元ポート番号をpn2としている。なお、NAT変換後の送信元ポート番号が、NAT変換前と同じポート番号になる場合もある。
次に、サーバ140が通信装置100の認証処理を行う(ステップS512)。具体的には、ステップS512では、以下の処理が行われる。
まず、送受信部146がIKEメッセージ703を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部143に渡す。UDP処理部143は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。UDPペイロードにESPヘッダは含まれないため、UDP処理部143は、IKE処理部141にUDPペイロードを渡す。IKE処理部141は渡されたIKEメッセージ703のSIGNATUREペイロードなどを用いて通信装置100から受信したメッセージであることを検証する。
正常に検証された場合は、サーバ140は、通信装置100に対してUDPヘッダの送信元ポート番号を通知するポート番号通知処理を実行する(ステップS513)。ポート番号通知処理の詳細については後述する。
ポート番号通知処理により、IKEメッセージ704がインターネット130を介してNAT Box120に送信される(ステップS514)。IKEメッセージ704のフォーマットについては後述する。
次に、NAT Box120がIKEメッセージ704を受信し、IKEメッセージ704をNAT変換し、通信装置100に転送する(ステップS515)。この結果、IKEメッセージ704の送信先IPアドレスがCに変換され、送信先ポート番号はpcに変換される。
次に、通信装置100は、ISAKMP SAの設定処理を実行する(ステップS516)。ISAKMP SA設定処理の詳細については後述する。
次に、通信装置100のクライアントアプリケーション102は、記憶部107に記憶された送信元ポート番号pn2を使用することをUDP処理部103に要請するポート番号予約処理を行う(ステップS517)。
通信装置100内で動作しているプログラムのいずれかが既にUDPヘッダのポート番号としてpn2を使用していた場合、UDP処理部103は送信元ポート番号pn2の使用許可の要請を拒否する。この場合、再度ステップS501のISAKMP SA作成提案処理から処理をやり直す。再処理では、ステップS509で異なるポート番号pcを取得するように構成することにより、最初に取得したpn2とは異なるポート番号を取得して、再度使用許可を要請することができる。なお、要請を拒否する旨をクライアントアプリケーション102に通知し、シーケンスを終了するように構成してもよい。
一方、ポート番号pn2が使用可能な場合は、通信装置100は、ESPで暗号化されたパケットで通信するために必要なパラメータを通知するIPSec SA作成提案処理を実行する(ステップS518)。具体的には、ステップS518では、以下の処理が行われる。
まず、クライアントアプリケーション102はIKE処理部101にサーバ140との折衝を継続することを通知する。IKE処理部101はESPで暗号化されたパケットによる通信に必要なパラメータを記憶部107に記憶するとともに、IKEメッセージ705を生成し、UDP処理部103にIKEメッセージ705を渡す。UDP処理部103は渡されたIKEメッセージ705に送信元ポート番号がpc、送信先ポート番号が4500であるUDPヘッダを付加し、送受信部106に渡す。送受信部106は渡されたIKEメッセージ705に送信元IPアドレスがCで送信先IPアドレスがSであるIPヘッダを付加する。
IKEメッセージ705は、図7に示すようにISAKMPヘッダ(HDR)、HASHペイロード(HASH(1))、SAペイロード(SA)、Nonceペイロード(Ni)、Key Exchangeペイロード(KE)、2つのIDペイロード(IDciおよびIDcr)、2つのNAT−OAペイロード(NAT−OAi、NAT−OAr)を含む。
ステップS518でIPヘッダを付加されたIKEメッセージ705は、送受信部106によりNAT Box120に送信される(ステップS519)。
次に、NAT Box120がIKEメッセージ705を受信し、IKEメッセージ705をNAT変換し、サーバ140に転送する(ステップS520)。この結果、IKEメッセージ705の送信元IPアドレスがNに変換され、送信元ポート番号はpn2に変換される。
次に、サーバ140がIPSec SA作成提案の検証を行う(ステップS521)。具体的には、ステップS521では、以下の処理が行われる。
まず、送受信部146がIKEメッセージ705を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部143に渡す。UDP処理部143は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。UDPペイロードにESPヘッダは含まれないため、UDP処理部143は、IKE処理部141にUDPペイロードを渡す。IKE処理部141は渡されたIKEメッセージ705に記載された提案の内容を検証する。提案を受諾する場合、IKE処理部141はIKEメッセージ705に記載された、ESPで暗号化したパケットによる通信に必要なパラメータを記憶部147に記憶する。
正常に検証された場合は、サーバ140は、通信装置100に対してIPsec SAの確立に必要なパラメータを通知するパラメータ通知処理を実行する(ステップS522)。具体的には、ステップS522では、以下の処理が行われる。
まず、IKE処理部141はIKEメッセージ706を作成し、UDP処理部143に渡す。UDP処理部143は送信元ポート番号が4500で送信先ポート番号がpn2であるUDPヘッダを付加し送受信部146に渡す。送受信部146は送信元IPアドレスがSで送信先IPアドレスがNであるIPヘッダを付加する。
IKEメッセージ706は、図7に示すようにISAKMPヘッダ(HDR)、HASHペイロード(HASH(2))、SAペイロード(SA)、Nonceペイロード(Nr)、Key Exchangeペイロード(KE)、2つのIDペイロード(IDciおよびIDcr)、2つのNAT−OAペイロード(NAT−OAi、NAT−OAr)を含む。
ステップS522でIPヘッダを付加されたIKEメッセージ706は、送受信部146によりインターネット130を介してNAT Box120に送信される(ステップS523)。
次に、NAT Box120がIKEメッセージ706を受信し、IKEメッセージ706をNAT変換し、通信装置100に転送する(ステップS524)。この結果、IKEメッセージ702の送信先IPアドレスがCに変換され、送信先ポート番号はpcに変換される。
次に、通信装置100は、IPSec SAの設定処理を実行する(ステップS525)。具体的には、ステップS525では、以下の処理が行われる。
まず、送受信部106がIKEメッセージ706を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部103に渡す。UDP処理部103は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。UDPペイロードにESPヘッダが含まれないため、UDP処理部103は、IKE処理部101にUDPペイロードを渡す。IKE処理部101は渡されたIKEメッセージ706を検証し、IKEメッセージ706に記載されたIPsec SAの確立に必要なパラメータを記憶部107に記憶する。
ここまでの処理によって、通信装置100がサーバ140とESPで暗号化されたパケットで通信する準備が完了する。
この後、通信装置100は、サーバ140に対して送信するESPで暗号化されたパケット作成するESPパケット作成処理を実行する(ステップS526)。ESPパケット作成処理の詳細については後述する。
ここで、ESP作成処理で作成されるESPパケットについて説明する。図8は、第1の実施の形態で送受信されるESPパケットの一例を示した説明図である。
同図の上部のESPパケット801は、例えば、通信装置100aが取得したポート番号pn2がUDPヘッダの送信元ポート番号とされたパケットを表している。また、同図の下部のESPパケット802は、例えば、通信装置100aと異なる通信装置100bが取得したポート番号pn3がUDPの送信元ポート番号とされたパケットを表している。
ESPパケット作成処理で作成されたESPパケットは、送受信部106によりNAT Box120に送信される(ステップS527)。
次に、NAT Box120がESPパケットを受信し、ESPパケットをNAT変換し、サーバ140に転送する(ステップS528)。ESPパケットのIPアドレス、最も外側のUDPヘッダのポート番号は、IKEメッセージ703やIKEメッセージ705と同じである。このため、IKEメッセージ703やIKEメッセージ705をNAT変換したときと同様にESPパケットの送信先IPアドレスがNに変換され、送信先ポート番号はpn2に変換される。
次に、サーバ140がESPパケットの受信処理を行う(ステップS529)。具体的には、ステップS529では、以下の処理が行われる。
まず、送受信部146がESPパケットを受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部143に渡す。UDP処理部143は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。ここでは、UDPペイロードにESPヘッダが含まれるため、UDP処理部143は、カプセル化UDP処理部145にUDPデータグラムを渡す。カプセル化UDP処理部145は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードをESP処理部144に渡す。ESP処理部144は、暗号化されているUDPデータグラムを復号化し、UDP処理部143に渡す。UDP処理部143は、送信元IPアドレスがN、送信元ポート番号がpn2であるデータとしてサーバアプリケーション142にESPパケットに含まれていたデータを渡す。
以上のような処理により、通信装置100はサーバ140とESPで暗号化されたパケットによる通信を行う。
次に、ステップS513のポート番号通知処理の詳細について説明する。図9は、ポート番号通知処理の全体の流れを示すフローチャートである。
まず、サーバ140のIKE処理部141はNAT変換後のIKEメッセージ703の送信元ポート番号pn2を通信装置100に通知するために、送信元ポート番号pn2を記載したIKEメッセージ704を生成する(ステップS901)。
IKEメッセージ704は図7に示すようにISAKMPヘッダ(HDR)を含み、さらにUDPヘッダの送信元ポート番号を記載するために拡張したフィールドを有する。第1の実施の形態では、拡張したフィールドは新たなペイロードとし、NAT−OPiと記すこととする。
ステップS901では、IKE処理部141は、IKEメッセージ704のNAT−OPiにpn2を記載する。なお、新たなペイロードを定義せず、既存のペイロード中の使用されていないフィールドにポート番号を記載するように構成してもよい。
次に、UDP処理部143は、送信元ポート番号が4500、送信先ポート番号がpn2であるUDPヘッダを付加する(ステップS902)。
次に、送受信部146は、IKEメッセージ704に送信元IPアドレスがS、送信先IPアドレスがNであるIPヘッダを付加し(ステップS903)、インターネット130を介して通信装置100に送信する(ステップS904)。
このように、NAT変換後の送信元ポート番号pn2をサーバ140側から通信装置100へ通知することにより、通信装置100側で、ESPでカプセル化するUDPデータグラムの送信元ポート番号を通知されたポート番号pn2に設定することができる。このため、ESPでカプセル化されたUDPデータグラムを受信したサーバ140のサーバアプリケーション142は、送信元ポート番号の置換等の処理を行うことなく、復号化したUDPデータグラムに含まれる送信元ポート番号(pn2)を用いて適切に通信を行うことが可能となる。
次に、ステップS516のISAKMP SA設定処理の詳細について説明する。図10は、第1の実施の形態におけるISAKMP SA設定処理の全体の流れを示すフローチャートである。
まず、通信装置100の送受信部106がIKEメッセージ704を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部103に渡す(ステップS1001)。
次に、UDP処理部103は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードをIKE処理部101に渡す(ステップS1002)。ここでは、UDPペイロードにESPヘッダが含まれないためである。
次に、IKE処理部101は、SIGNATUREペイロードなどを用いてサーバ140から受信したメッセージであることを検証する(ステップS1003)。さらに、IKE処理部101は、IKEメッセージ704に含まれるNAT−OPiペイロードに記載されたUDPヘッダの送信元ポート番号(pn2)を記憶部107に記憶する(ステップS1004)。
次に、IKE処理部101は、ステップS508で記憶部107に記憶されたISAKMP SAの作成に必要なパラメータを読み出し、読み出したパラメータによりISAKMP SAを設定し、クライアントアプリケーション102にISAKMP SAの設定が完了したことを通知する(ステップS1005)。
このように、ISAKMP SA設定処理では、事前に記憶されたパラメータを用いてISAKMP SAの設定を行うとともに、拡張したIKEメッセージ704から取得した送信元ポート番号(pn2)を記憶部107に記憶する。これにより、後述するESPパケット作成処理で、取得した送信元ポート番号を利用可能となる。
次に、ステップS526のESPパケット作成処理の詳細について説明する。図11は、第1の実施の形態におけるESPパケット作成処理の全体の流れを示すフローチャートである。
まず、通信装置100のクライアントアプリケーション102がサーバ140のサーバアプリケーション142との通信に必要なデータを作成し、UDP処理部103に渡す(ステップS1101)。
次に、UDP処理部103は、記憶部107からポート番号(pn2)を取得し、取得したポート番号(pn2)を送信元ポート番号、サーバアプリケーション142用のポート番号(ps)を送信先ポート番号とするUDPヘッダをデータに付加する(ステップS1102)。
次に、ESP処理部104は、データにUDPヘッダを付加したUDPデータグラムを記憶部107に記憶したパラメータを用いて暗号化し、ESPヘッダを付加する(ステップS1103)。
次に、カプセル化UDP処理部105は、記憶部107に記憶されたポート番号pcを送信元ポート番号、IKE処理用のポート番号4500を送信先ポート番号とするUDPヘッダを付加する(ステップS1104)。
次に、送受信部106は、送信元IPアドレスがC、送信先IPアドレスがSであるIPヘッダを付加することにより、図8に示すようなESPパケット801を形成し、ESPパケット801をNAT Box120に送信する(ステップS1105)。
以上のような処理を行うことにより、例えばNAT Box120配下の別の通信装置100bがサーバ140のUDP用のポート番号psに対し、ESPで暗号化されたパケットで通信することを試みた場合であっても、通信装置100a、100bが同時にサーバ140と混乱なく通信を行うことができる。以下にその理由について説明する。
NAT box120の性質上、NAT box120は配下の複数の通信装置がインターネット130上の同一のサーバ140上の同一のUDPポート宛のパケットを送信した場合、NAT box120がNAT変換した後の送信元ポート番号は、それぞれ異なるポート番号になる。
そこで、通信装置100bが図5および図6に示したシーケンスと同様の処理を行い、IKEメッセージをサーバ140のUDP用のポート番号(4500)に送信すると、NAT Box120は、通信装置100aが送信したIKEメッセージに対して変換したポート番号とは異なる送信元ポート番号でIKEメッセージをNAT変換する。
ここで、通信装置100bに対するNAT変換前のUDPヘッダの送信元ポート番号をpdとし、NAT変換後のUDPヘッダの送信元ポート番号をpn3とすると、通信装置100bが送信するパケットは図8のESPパケット802のようになる。図8に示すように、通信装置100aが送信するESPパケット801と通信装置100bが送信するESPパケット802のESPで暗号化されたUDPデータグラムの送信元ポート番号はそれぞれpn2、pn3であり、必ず異なるポート番号になる。
したがって、サーバ140内のサーバアプリケーション142は、通信装置100aと通信装置100bが送信したパケットがそれぞれ異なる通信装置から送信されたパケットであることを認識可能となり、混乱なく同時に通信装置100aと通信装置100bに通信可能となる。
なお、上述の処理では、鍵交換プロトコルとして拡張したIKEを用いているが、情報交換時に送信元ポート番号を通知できるものであれば、他のプロトコルを用いてもよい。
また、サーバ140自体が混信を避ける機能を有している場合は、ステップS505またはステップS513で、サーバ140から通信装置100に対してポート番号pn2以外のポート番号をESPでカプセル化するUDPヘッダの送信元ポート番号として使用してもよい旨を示すメッセージを通知するように構成してもよい。
この場合は、サーバ140のIKE処理部141が、送信するIKEメッセージ内に上記メッセージを記載し、UDP処理部143および送受信部146により通信装置100にIKEメッセージを送信する。当該IKEメッセージを受信した通信装置100は、ステップS517で予約する送信元ポート番号をpn2以外にすることができる。
このように、第1の実施の形態にかかる通信装置では、インターネット上のサーバからNAT変換後の送信元ポート番号を受信し、当該送信元ポート番号を、暗号化通信プロトコルによりカプセル化するプロトコルの送信元ポート番号に設定してサーバとの通信を行うことができる。このため、カプセル化を原因とする混信を生じることなく、サーバ内のアプリケーションがネットワーク中継装置配下の複数の装置と通信することができる。また、サーバ側で送信元ポート番号の置換等の処理を行う必要がないため、サーバの処理負荷を増大させずに混信を回避した通信を行うことができる。
(第2の実施の形態)
第2の実施の形態にかかる通信装置は、送信元ポート番号を含むアドレスに関する情報を提供するアドレス情報提供装置であるSTUN(Simple Traversal of UDP through NATs)サーバからNAT変換後の送信元ポート番号を受信し、当該送信元ポート番号を、ESPでカプセル化するUDPヘッダの送信元ポート番号に設定してサーバとの通信を行うものである。
図12は、第2の実施の形態にかかる通信装置1200を含むネットワーク全体の構成を示すブロック図である。同図に示すように、第2の実施の形態にかかるネットワークは、通信装置1200が、NAT Box1220を介してインターネット130に接続され、インターネット130に接続された通信相手であるサーバ1240およびSTUNサーバ1250と通信を行うように構成されている。
なお、同図では、異なるプライベートIPアドレスCおよびDが割り当てられた2つの通信装置1200a、1200bが記載されているが、機能や構成は同一である。通信装置1200a、1200bをまとめて通信装置1200と呼ぶ。サーバ1240には、グローバルIPアドレスSが割り当てられており、STUNサーバ1250には、グローバルIPアドレスT1およびT2が割り当てられている。
NAT Box1220は、第1の実施の形態におけるNAT Box120と同様にNAT変換機能を有するネットワーク中継装置であり、インターネット130に接続する側のネットワークインタフェースには、グローバルIPアドレスNが割り当てられている。
第2の実施の形態では、NAT Box1220は、Cone NATと呼ばれる種類のNAT Boxであることを前提とする。Cone NATタイプのNAT Boxは、転送プロトコル、送信元IPアドレス、送信元ポート番号ごとに送信元IPアドレス、送信元ポート番号を一定の値に変換する。
このため、通信装置1200が転送プロトコル、送信元IPアドレス、送信元ポート番号を固定にしてサーバ1240またはSTUNサーバ1250と通信する限り、NAT変換後の送信元ポート番号はサーバ1240およびSTUNサーバ1250のいずれに対しても一定の値になる。したがって、STUNサーバ1250から通知されたNAT変換後の送信元ポート番号を使用してサーバ1240と通信を行っても正常にパケットの送受信を行うことが可能となる。
一方、送信先IPアドレス等も考慮してアドレスを変換するSymmetric NATタイプなどのNAT Boxの場合、通信相手によってNAT変換後の送信元ポート番号が変更される可能性がある。したがって、STUNサーバ1250から通知されたNAT変換後の送信元ポート番号を使用してサーバ1240と通信を行った場合、正常に通信できない可能性がある。
第2の実施の形態では、事前にSTUNサーバ1250から通知されたNAT変換後の送信元ポート番号を使用してサーバ1240と通信を行うため、NAT Box1220は、Cone NATタイプのNAT Boxであることが必要となる。
通信装置1200は、IKEプロトコルによりサーバ1240と暗号化通信の確立を行うとともに、STUNサーバ1250からNAT変換後のUDPヘッダの送信元ポート番号を取得し、取得した送信元ポート番号をUDPヘッダに設定したUDPデータグラムをESPヘッダおよび別のUDPヘッダでカプセル化したパケットを作成してサーバ140と通信を行うものである。
このように、第2の実施の形態にかかる通信装置1200は、サーバ1240ではなく、アドレス情報を提供するSTUNサーバ1250からNAT変換後の送信元ポート番号を取得する点が、第1の実施の形態にかかる通信装置100と異なっている。
なお、第1の実施の形態では、IKEメッセージを拡張し、サーバ140がNAT変換後の送信元ポート番号を返信していたが、第2の実施の形態ではIKEメッセージを拡張する必要はない。したがって、サーバ1240は非特許文献1および非特許文献2に記載されている標準的なプロトコルにしたがった動作をすれば十分であり、新たな機能を備える必要がない。
図13は、第2の実施の形態にかかる通信装置1200の構成を示すブロック図である。同図に示すように、通信装置1200は、IKE処理部1201と、クライアントアプリケーション102と、UDP処理部1203と、ESP処理部104と、カプセル化UDP処理部105と、送受信部106と、記憶部107と、STUNクライアント1208とを備えている。
第2の実施の形態では、STUNクライアント1208を追加したこと、および、IKE処理部1201とUDP処理部1203の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる通信装置100の構成を表すブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
IKE処理部1201は、第1の実施の形態におけるIKE処理部101と同様に、IKEプロトコルにしたがってサーバ1240との間で送受信するメッセージであるIKEメッセージの処理を行うものである。第2の実施の形態では、IKEメッセージを拡張せず、標準のIKEプロトコルにしたがって処理を行うため、NAT変換後の送信元ポート番号を含むように拡張されたIKEメッセージの処理を行わない点が、第1の実施の形態におけるIKE処理部101と異なっている。
UDP処理部1203は、第1の実施の形態におけるUDP処理部103と同様に、UDPのプロトコルにしたがってサーバ1240との間で送受信するUDPデータグラムの処理を行うものである。
また、UDP処理部1203は、第1の実施の形態におけるUDP処理部103の機能に加え、STUNクライアント1208から渡されたSTUNメッセージであるBinding RequestにUDPヘッダを付加し送受信部106に渡す処理を行う。
Binding Requestは、STUNサーバ1250に対して送信元のアドレス情報を問い合わせる際に送信するメッセージである。
また、UDP処理部1203は、UDPペイロードがESPヘッダを含まない場合に、送信元の装置がサーバ1240である場合はIKE処理部1201にUDPペイロードを渡し、送信元の装置がSTUNサーバ1250である場合はSTUNクライアント1208にUDPペイロードを渡す点が、第1の実施の形態におけるUDP処理部103と異なっている。
STUNクライアント1208は、STUNメッセージであるBinding Requestを生成しUDP処理部1203に渡す処理や、UDP処理部1203から渡されたSTUNメッセージであるBinding Responseから、Binding RequestをNAT変換した後の送信元ポート番号を取得し、取得した送信元ポート番号を記憶部107に記憶する処理を行う。
Binding Responseは、受信したBinding Requestに対してSTUNサーバ1250が返信するアドレス情報を含むメッセージである。
図14は、第2の実施の形態にかかるサーバ1240の構成を示すブロック図である。同図に示すように、サーバ1240は、IKE処理部1241と、サーバアプリケーション142と、UDP処理部143と、ESP処理部144と、カプセル化UDP処理部145と、送受信部146と、記憶部147とを備えている。
第2の実施の形態では、IKE処理部1241の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる通信装置100の構成を表すブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
IKE処理部1241は、第1の実施の形態のIKE処理部141と同様に、IKEプロトコルにしたがって通信装置1200との間で送受信するIKEメッセージの処理を行うものであるが、拡張したIKEメッセージを作成して送信する機能を有さない点が、第1の実施の形態におけるIKE処理部141と異なっている。
図15は、第2の実施の形態にかかるSTUNサーバ1250の構成を示すブロック図である。同図に示すように、STUNサーバ1250は、UDP処理部1503と、送受信部1506と、STUNデーモン1509とを備えている。
なお、STUNサーバ1250はSTUNプロトコルにしたがった動作を行えば十分であり、新たな機能を備える必要はない。また、STUNサーバ1250は、UDPポート番号pt1およびpt2でSTUNメッセージを待ち受けるものとする。
UDP処理部1503は、UDPのプロトコルにしたがって通信装置1200との間で送受信するUDPデータグラムの処理を行うものである。具体的には、UDP処理部1503は、STUNデーモン1509から渡されたBinding ResponseにUDPヘッダを付加し送受信部1506に渡す処理、送受信部1506から渡されたBinding RequestのUDPヘッダを削除しSTUNデーモン1509に渡す処理を行うものである。
STUNデーモン1509はUDP処理部1503から渡されたBinding Requestに対してBinding Responseを生成しUDP処理部1503に渡すものである。
送受信部1506は、UDP処理部1503から渡されたBinding ResponseにIPヘッダを付加して通信装置1200に送信するものである。また、送受信部1506は、通信装置1200から受信したBinding RequestのIPヘッダを削除しUDP処理部1503に渡す処理を行う。
次に、このように構成された第2の実施の形態にかかる通信装置1200と、サーバ1240およびSTUNサーバ1250間の通信処理について説明する。図16は、第2の実施の形態における通信処理の全体の流れを示すシーケンス図である。
ステップS1601からステップS1612までのISAKMP SA作成提案処理、サーバ認証処理、通信装置の認証処理は、第1の実施の形態にかかる通信装置100におけるステップS501からステップS512までと同様の処理なので、その説明を省略する。
通信装置1200の認証処理を行ったあと、サーバ1240は、認証が完了したことを通知する認証完了通知処理を実行する(ステップS1613)。具体的には、ステップS1613では、以下の処理が行われる。
まず、IKE処理部1241がIKEメッセージ707を作成し、UDP処理部143に渡す。UDP処理部143は送信元ポート番号が4500で送信先ポート番号がpn2であるUDPヘッダを付加し送受信部146に渡す。送受信部146は送信元IPアドレスがSで送信先IPアドレスがNであるIPヘッダを付加する。
IKEメッセージ707は、図7に示すようにISAKMPヘッダ(HDR)のみを含む。このように、第2の実施の形態では、送信元ポート番号を記載するように拡張したNAT−OPiペイロードを含まない点が、第1の実施の形態と異なっている。
認証完了通知処理により、IKEメッセージ707がインターネット130を介してNAT Box1220に送信される(ステップS1614)。
次に、NAT Box1220がIKEメッセージ707を受信し、IKEメッセージ707をNAT変換し、通信装置1200に転送する(ステップS1615)。この結果、IKEメッセージ707の送信先IPアドレスがCに変換され、送信先ポート番号はpcに変換される。
次に、通信装置1200は、ISAKMP SAの設定処理を実行する(ステップS1616)。ISAKMP SA設定処理の詳細については後述する。
次に、通信装置1200は、STUNサーバ1250にアドレス情報を問い合わせるためのBinding Request送信処理を実行する(ステップS1617)。具体的には、ステップS1617では、以下の処理が行われる。
まず、クライアントアプリケーション102からポート番号の検知を要請されたSTUNクライアント1208が、Binding Requestを生成し、UDP処理部1203に渡す。UDP処理部1203は送信元ポート番号がpcで送信先ポート番号がpt1であるUDPヘッダを付加し送受信部106に渡す。送受信部106は送信元IPアドレスがCで送信先IPアドレスがT1であるIPヘッダを付加する。
Binding Request1701はSTUNプロトコルに準拠したフォーマットで構成される。図17は、第2の実施の形態で送受信されるSTUNメッセージのフォーマットの一例を示した説明図である。同図に示すように、Binding Request1701は、STUNヘッダを含んでいる。
ステップS1617でIPヘッダを付加されたBinding Request1701は、送受信部106によりNAT Box1220に送信される(ステップS1618)。
次に、NAT Box1220がBinding Request1701を受信し、Binding Request1701をNAT変換し、インターネット130に転送する(ステップS1619)。
Binding Request1701の送信元IPアドレス、送信元ポート番号は既に送信したIKEメッセージ707と同じである。そこで、NAT box1220がCone NATのタイプのNAT boxである場合、Binding Request1701の送信元IアドレスがNに変換され、送信元ポート番号がpn2に変換される。
次に、STUNサーバ1250がBinding Request受信処理を行う(ステップS1620)。具体的には、ステップS1620では、以下の処理が行われる。
まず、送受信部1506がBinding Request1701を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部1503に渡す。UDP処理部1503は、渡されたUDPデータグラムのUDPヘッダを削除したUDPペイロードをSTUNデーモン1509に渡す。
次に、STUNサーバ1250がBinding Response送信処理を行う(ステップS1621)。具体的には、ステップS1621では、以下の処理が行われる。
まず、STUNデーモン1509が、Binding Request1701の送信元UDPポート番号pn2を記載したBinding Response1702を生成し、UDP処理部1503に渡す。UDP処理部1503は送信元ポート番号がpt1で送信先ポート番号がpn2であるUDPヘッダを付加し送受信部1506に渡す。送受信部1506は送信元IPアドレスがT1で送信先IPアドレスがNであるIPヘッダを付加する。
Binding Response1702は、図13のようにSTUNヘッダ、MAPPED−ADDRESS属性、SOURCE−ADDRESS属性、CHANGED−ADDRESS属性を含む。Binding Request1701の送信元ポート番号pn2は、MAPPED−ADDRESS属性に含まれる。
ステップS1621でIPヘッダを付加されたBinding Response1702は、送受信部1506によりNAT Box1220に送信される(ステップS1622)。
次に、NAT Box1220がBinding Response1702を受信し、Binding Response1702をNAT変換し、通信装置1200に転送する(ステップS1623)。この結果、Binding Response1702の送信先IPアドレスがCに変換され、送信先ポート番号はpcに変換される。
次に、通信装置1200がBinding Response受信処理を行う(ステップS1624)。具体的には、ステップS1624では、以下の処理が行われる。
まず、送受信部106がBinding Response1702を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部1203に渡す。UDP処理部1203は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードを取得する。UDPペイロードにESPヘッダが含まれず、また、送信元がSTUNサーバ1250であるため、UDP処理部1203は、STUNクライアント1208にUDPペイロードを渡す。STUNクライアント1208は渡されたBinding Response1702のMAPPED−ADDRESS属性に記載されている送信元ポート番号pn2を記憶部107に記憶させ、クライアントアプリケーション102に送信元ポート番号pn2を取得したことを通知する。
ステップS1625のポート番号予約処理は、第1の実施の形態にかかる通信装置100におけるステップS517と同様の処理なので、その説明を省略する。
また、この後に実行されるIPSec SA作成提案処理、IPSec SA作成提案の検証処理、パラメータ通知処理、IPSec SA設定処理、ESPパケット作成処理、ESPパケット受信処理は、第1の実施の形態の図6で示したステップS518からステップS529までの処理と同様であるのでその説明を省略する。
このように、第1の実施の形態では、サーバ140が送信したIKEメッセージからNAT変換後の送信元ポート番号を取得するのに対し(ステップS513、ステップS516)、第2の実施の形態では、アドレス情報を提供するSTUNサーバ1250が返信するBinding Response1702からNAT変換後の送信元ポート番号を取得する点が異なっている(ステップS1620、ステップS1624)。
次に、ステップS1616のISAKMP SA設定処理の詳細について説明する。図18は、第2の実施の形態におけるISAKMP SA設定処理の全体の流れを示すフローチャートである。
まず、通信装置1200の送受信部106がIKEメッセージ704を受信し、IPヘッダを削除して得られるUDPデータグラムをUDP処理部1203に渡す(ステップS1801)。
次に、UDP処理部1203は、渡されたUDPデータグラムのUDPヘッダを削除してUDPペイロードをIKE処理部1201に渡す(ステップS1802)。ここでは、UDPペイロードにESPヘッダが含まれず、かつ、送信元がサーバ1240だからである。
次に、IKE処理部1201はSIGNATUREペイロードなどを用いてサーバ1240から受信したメッセージであることを検証する(ステップS1803)。
次に、IKE処理部1201は、ステップS1608で記憶部107に記憶されたISAKMP SAの作成に必要なパラメータを読み出し、読み出したパラメータによりISAKMP SAを設定し、クライアントアプリケーション102にISAKMP SAの設定が完了したことを通知する(ステップS1804)。
このように、第2の実施の形態におけるISAKMP SA設定処理では、拡張したIKEメッセージ704から取得した送信元ポート番号(pn2)を記憶部107に記憶する処理を実行しない点が、第1の実施の形態と異なっている。
なお、ステップS1624の直後、NAT Box1220がCone NATタイプのNAT Boxであるか否かをチェックする処理を実行するように構成してもよい。図19は、このように構成された、第2の実施の形態にかかる通信装置1900の別の構成を示すブロック図である。同図に示すように、通信装置1900は、NAT Box1220のNAT変換方法をチェックする変換方法検証部1910を備えている。NAT変換方法のチェック処理は以下のように行う。
まず、STUNクライアント1208が、送信先IPアドレスをT2に変更するか、送信先ポート番号をpt2に変更した図17のBinding Request1703をSTUNサーバ1250に送信する。
次に、送受信部106が、Binding Request1703に対してSTUNサーバ1250が返信したBinding Response1704を受信する。
次に、変換方法検証部1910が、Binding Response1704内のMAPED−ADDRESS属性に記載されたポート番号pn3が、pn2と等しいか否かを確認する。変換方法検証部1910は、pn3とpn2とが等しいときに、NAT Box1220がCone NATタイプのNAT Boxであると判断する。
NAT Box1220がCone NATタイプのNAT Boxである場合は、サーバ1240と正常にパケットの送受信を実行できるため、処理を継続する。NAT Box1220がCone NATタイプのNAT Boxでない場合は、サーバ1240と正常にパケットの送受信を実行できない可能性があるため、変換方法検証部1910は、通信処理を終了する。
なお、サーバ1240にSTUNサーバ1250の機能を搭載し、STUNサーバ1250の代わりにアドレス情報の提供処理を行ってもよい。この場合、通信相手が変わることによって送信元ポート番号が変更されうるという問題が生じないため、NAT box1220はCone NATのタイプである必要はない。
このように、第2の実施の形態にかかる通信装置では、送信元ポート番号を含むアドレスに関する情報を提供するSTUNサーバからNAT変換後の送信元ポート番号を受信し、当該送信元ポート番号を、暗号化通信プロトコルでカプセル化するプロトコルの送信元ポート番号に設定してサーバとの通信を行うことができる。このため、カプセル化を原因とする混信を生じることなく、サーバ内のアプリケーションがネットワーク中継装置配下の複数の装置と通信することができる。また、サーバ側で送信元ポート番号の置換等の処理を行う必要がないため、サーバの処理負荷を増大させずに混信を回避した通信を行うことができる。
なお、第1または第2の実施の形態で、サーバが例えば非特許文献1のように混信が生じるか否かをチェックする機能を有している場合であっても、本提案の内容をさらに適用することができる。すなわち、本提案の技術によれば、通信装置側で混信を回避する処理を実行可能であるが、通信の信頼性を向上させるために、サーバ側でさらに混信に関するチェックを行うように構成してもよい。
第1または第2の実施の形態にかかる通信装置は、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1または第2の実施の形態にかかる通信装置で実行される通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、第1または第2の実施の形態にかかる通信装置で実行される通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第1または第2の実施の形態にかかる通信装置で実行される通信プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、第1または第2の実施の形態の通信プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1または第2の実施の形態にかかる通信装置で実行される通信プログラムは、上述した各部(IKE処理部、クライアントアプリケーション、UDP処理部、ESP処理部、カプセル化UDP処理部、送受信部、STUNクライアント、変換方法検証部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から通信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる通信装置、通信方法および通信プログラムは、NAT機能を有するルータに接続されたコンピュータなどの通信装置に適している。
第1の実施の形態にかかる通信装置を含むネットワーク全体の構成を示すブロック図である。 第1の実施の形態で送受信されるパケットの形式の一例を示した説明図である。 第1の実施の形態にかかる通信装置の構成を示すブロック図である。 第1の実施の形態にかかるサーバの構成を示すブロック図である。 第1の実施の形態における通信処理の全体の流れを示すシーケンス図である。 第1の実施の形態における通信処理の全体の流れを示すシーケンス図である。 第1の実施の形態で送受信されるIKEメッセージのフォーマットの一例を示した説明図である。 第1の実施の形態で送受信されるESPパケットの一例を示した説明図である。 ポート番号通知処理の全体の流れを示すフローチャートである。 第1の実施の形態におけるISAKMP SA設定処理の全体の流れを示すフローチャートである。 第1の実施の形態におけるESPパケット作成処理の全体の流れを示すフローチャートである。 第2の実施の形態にかかる通信装置を含むネットワーク全体の構成を示すブロック図である。 第2の実施の形態にかかる通信装置の構成を示すブロック図である。 第2の実施の形態にかかるサーバの構成を示すブロック図である。 第2の実施の形態にかかるSTUNサーバの構成を示すブロック図である。 第2の実施の形態における通信処理の全体の流れを示すシーケンス図である。 第2の実施の形態で送受信されるSTUNメッセージのフォーマットの一例を示した説明図である。 第2の実施の形態におけるISAKMP SA設定処理の全体の流れを示すフローチャートである。 第2の実施の形態にかかる通信装置の別の構成を示すブロック図である。
符号の説明
100 通信装置
101 IKE処理部
102 クライアントアプリケーション
103 UDP処理部
104 ESP処理部
105 カプセル化UDP処理部
106 送受信部
107 記憶部
120 NAT Box
130 インターネット
140 サーバ
141 IKE処理部
142 サーバアプリケーション
143 UDP処理部
144 ESP処理部
145 カプセル化UDP処理部
146 送受信部
147 記憶部
201 パケット
701、702、703、704、705、706、707 IKEメッセージ
801、802 ESPパケット
1200 通信装置
1201 IKE処理部
1203 UDP処理部
1208 STUNクライアント
1220 NAT Box
1240 サーバ
1241 IKE処理部
1250 STUNサーバ
1503 UDP処理部
1506 送受信部
1509 STUNデーモン
1900 通信装置
1910 変換方法検証部

Claims (13)

  1. 送信されるメッセージのプロトコルヘッダに含まれる送信元ポート番号を外部ネットワークと通信可能な送信元ポート番号に変換するネットワーク中継装置を介して接続されたサーバと通信する通信装置において、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを前記サーバに送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むポート番号情報メッセージを、前記サーバから前記ネットワーク中継装置を介して受信する受信手段と、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手段が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手段と、
    前記第1プロトコル処理手段が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手段と、
    前記第2プロトコル処理手段が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手段と、
    前記第3プロトコル処理手段が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する送信手段と、
    を備えたことを特徴とする通信装置。
  2. 前記送信手段は、前記第1のプロトコルで送信され、暗号化通信プロトコルによる通信を確立する際に用いる情報を含む通信確立メッセージを前記サーバにさらに送信し、
    前記受信手段は、前記サーバが、前記通信確立メッセージのプロトコルヘッダに含まれる送信元ポート番号を前記変換後ポート番号として設定して送信した前記ポート番号情報メッセージを、前記ネットワーク中継装置を介して受信することを特徴とする請求項1に記載の通信装置。
  3. 前記送信手段は、前記第1のプロトコルで送信され、IKE(Internet Key Exchange)プロトコルによる通信を確立する際に用いる情報を含む通信確立メッセージを前記サーバにさらに送信することを特徴とする請求項2に記載の通信装置。
  4. 前記受信手段は、前記サーバが前記IKEプロトコルで送信されるIKEメッセージに前記変換後ポート番号を格納する領域を追加し、追加した領域に前記通信確立メッセージのプロトコルヘッダに含まれる送信元ポート番号を前記変換後ポート番号として設定して送信した前記ポート番号情報メッセージを、前記ネットワーク中継装置を介して受信することを特徴とする請求項3に記載の通信装置。
  5. 前記受信手段は、前記サーバが前記IKEプロトコルで送信されるIKEメッセージに含まれる未使用領域に前記通信確立メッセージのプロトコルヘッダに含まれる送信元ポート番号を前記変換後ポート番号として設定して送信した前記ポート番号情報メッセージを、前記ネットワーク中継装置を介して受信することを特徴とする請求項3に記載の通信装置。
  6. 送信されるメッセージのプロトコルヘッダに含まれるプロトコルと送信元IPアドレスと送信元ポート番号との組み合わせごとに送信元IPアドレスと送信元ポート番号とを外部ネットワークと通信可能な一定の値に変換するネットワーク中継装置を介して接続されたサーバ、および、前記ネットワーク中継装置を介して接続され、送信元ポート番号を含むアドレスに関する情報を提供するアドレス情報提供装置と通信する通信装置において、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを、前記ネットワーク中継装置を介して前記アドレス情報提供装置に送信する第1の送信手段と、
    前記第1の送信手段が前記第1のメッセージを前記アドレス情報提供装置に送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むアドレス情報メッセージを、前記アドレス情報提供装置から前記ネットワーク中継装置を介して受信する受信手段と、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手段が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手段と、
    前記第1プロトコル処理手段が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手段と、
    前記第2プロトコル処理手段が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手段と、
    前記第3プロトコル処理手段が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する第2の送信手段と、
    を備えたことを特徴とする通信装置。
  7. 前記第1の送信手段は、プロトコルヘッダに含まれる送信先IPアドレスまたは送信先ポート番号を変更した前記第1のメッセージを、前記ネットワーク中継装置を介して前記アドレス情報提供装置にさらに送信し、
    送信先IPアドレスまたは送信先ポート番号を変更する前の前記第1のメッセージに対して前記アドレス情報提供装置が送信した前記アドレス情報メッセージに含まれる前記変換後ポート番号である第1変換後ポート番号と、送信先IPアドレスまたは送信先ポート番号を変更した前記第1のメッセージに対して前記アドレス情報提供装置が送信した前記アドレス情報メッセージに含まれる前記変換後ポート番号である第2変換後ポート番号と同一であるか否かを判断し、前記第1変換後ポート番号と前記第2変換後ポート番号とが同一でないと判断した場合に通信を終了する変換方法検証手段をさらに備えたことを特徴とする請求項6に記載の通信装置。
  8. 前記第1のプロトコルおよび前記第3のプロトコルは、UDPまたはTCPであることを特徴とする請求項1〜7のいずれか1つに記載の通信装置。
  9. 前記第2のプロトコルは、ESP(Encapsulating Security Payload)であることを特徴とする請求項請求項1〜8のいずれか1つに記載の通信装置。
  10. 送信されるメッセージのプロトコルヘッダに含まれる送信元ポート番号を外部ネットワークと通信可能な送信元ポート番号に変換するネットワーク中継装置を介して接続されたサーバと通信する通信方法において、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを前記サーバに送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むポート番号情報メッセージを、前記サーバから前記ネットワーク中継装置を介して受信する受信ステップと、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信ステップが受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理ステップと、
    前記第1プロトコル処理ステップが作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理ステップと、
    前記第2プロトコル処理ステップが作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理ステップと、
    前記第3プロトコル処理ステップが作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する送信ステップと、
    を備えたことを特徴とする通信方法。
  11. 送信されるメッセージのプロトコルヘッダに含まれるプロトコルと送信元IPアドレスと送信元ポート番号との組み合わせごとに送信元IPアドレスと送信元ポート番号とを外部ネットワークと通信可能な一定の値に変換するネットワーク中継装置を介して接続されたサーバ、および、前記ネットワーク中継装置を介して接続され、送信元ポート番号を含むアドレスに関する情報を提供するアドレス情報提供装置と通信する通信方法において、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを、前記ネットワーク中継装置を介して前記アドレス情報提供装置に送信する第1の送信ステップと、
    前記第1の送信ステップが前記第1のメッセージを前記アドレス情報提供装置に送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むアドレス情報メッセージを、前記アドレス情報提供装置から前記ネットワーク中継装置を介して受信する受信ステップと、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信ステップが受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理ステップと、
    前記第1プロトコル処理ステップが作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理ステップと、
    前記第2プロトコル処理ステップが作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理ステップと、
    前記第3プロトコル処理ステップが作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する第2の送信ステップと、
    を備えたことを特徴とする通信方法。
  12. 送信されるメッセージのプロトコルヘッダに含まれる送信元ポート番号を外部ネットワークと通信可能な送信元ポート番号に変換するネットワーク中継装置を介して接続されたサーバと通信する通信装置における通信プログラムにおいて、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを前記サーバに送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むポート番号情報メッセージを、前記サーバから前記ネットワーク中継装置を介して受信する受信手順と、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手順が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手順と、
    前記第1プロトコル処理手順が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手順と、
    前記第2プロトコル処理手順が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手順と、
    前記第3プロトコル処理手順が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する送信手順と、
    をコンピュータに実行させる通信プログラム。
  13. 送信されるメッセージのプロトコルヘッダに含まれるプロトコルと送信元IPアドレスと送信元ポート番号との組み合わせごとに送信元IPアドレスと送信元ポート番号とを外部ネットワークと通信可能な一定の値に変換するネットワーク中継装置を介して接続されたサーバ、および、前記ネットワーク中継装置を介して接続され、送信元ポート番号を含むアドレスに関する情報を提供するアドレス情報提供装置と通信する通信装置における通信プログラムにおいて、
    前記ネットワーク中継装置で送信元ポート番号を変換可能なプロトコルである変換可能プロトコルに含まれる第1のプロトコルで送信される第1のメッセージを、前記ネットワーク中継装置を介して前記アドレス情報提供装置に送信する第1の送信手順と、
    前記第1の送信手順が前記第1のメッセージを前記アドレス情報提供装置に送信したときに前記ネットワーク中継装置がアドレス変換した後の送信元ポート番号である変換後ポート番号を含むアドレス情報メッセージを、前記アドレス情報提供装置から前記ネットワーク中継装置を介して受信する受信手順と、
    前記変換後ポート番号を使用して前記サーバと通信するアプリケーションが前記サーバに送信するメッセージであって、プロトコルヘッダに含まれる送信元ポート番号を、前記受信手順が受信した前記変換後ポート番号と同一の値に設定した前記第1のプロトコルで送信される第2のメッセージを作成する第1プロトコル処理手順と、
    前記第1プロトコル処理手順が作成した前記第2のメッセージに、前記変換可能プロトコルに含まれない第2のプロトコルのヘッダを付与した第3のメッセージを作成する第2プロトコル処理手順と、
    前記第2プロトコル処理手順が作成した前記第3のメッセージに、前記変換可能プロトコルに含まれる第3のプロトコルのヘッダを付与した第4のメッセージを作成する第3プロトコル処理手順と、
    前記第3プロトコル処理手順が作成した第4のメッセージを、前記ネットワーク中継装置を介して前記サーバに送信する第2の送信手順と、
    をコンピュータに実行させる通信プログラム。
JP2005332070A 2005-11-16 2005-11-16 通信装置、通信方法および通信プログラム Expired - Fee Related JP4489008B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005332070A JP4489008B2 (ja) 2005-11-16 2005-11-16 通信装置、通信方法および通信プログラム
US11/555,490 US8654755B2 (en) 2005-11-16 2006-11-01 Device and method for communicating with another communication device via network forwarding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005332070A JP4489008B2 (ja) 2005-11-16 2005-11-16 通信装置、通信方法および通信プログラム

Publications (2)

Publication Number Publication Date
JP2007142675A JP2007142675A (ja) 2007-06-07
JP4489008B2 true JP4489008B2 (ja) 2010-06-23

Family

ID=38066777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005332070A Expired - Fee Related JP4489008B2 (ja) 2005-11-16 2005-11-16 通信装置、通信方法および通信プログラム

Country Status (2)

Country Link
US (1) US8654755B2 (ja)
JP (1) JP4489008B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656795B2 (en) * 2005-04-11 2010-02-02 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
JP4709583B2 (ja) * 2005-05-31 2011-06-22 株式会社東芝 データ送信装置およびデータ送信方法
JP4489008B2 (ja) * 2005-11-16 2010-06-23 株式会社東芝 通信装置、通信方法および通信プログラム
US8041477B2 (en) * 2006-11-21 2011-10-18 Lockheed Martin Corporation Methods and apparatus for providing access to vehicle electronic systems
US7885209B1 (en) * 2007-04-03 2011-02-08 Avaya Inc. Alternatively enabling and disabling the talk paths of endpoints that share a virtual address
US7933273B2 (en) * 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
US7729366B2 (en) * 2007-10-03 2010-06-01 General Instrument Corporation Method, apparatus and system for network mobility of a mobile communication device
US9100361B1 (en) 2008-04-25 2015-08-04 Lockheed Martin Corporation Secure routing module
US8219799B1 (en) 2008-04-25 2012-07-10 Lockheed Martin Corporation Secure communication system
US8220038B1 (en) * 2008-04-25 2012-07-10 Lockheed Martin Corporation Method for securely routing communications
JP5091887B2 (ja) * 2009-02-23 2012-12-05 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、通信処理方法、及びプログラム
EP2449749B1 (en) * 2009-06-29 2014-03-12 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for relaying packets
TWI477117B (zh) * 2011-10-06 2015-03-11 Av Tech Corp 網路連線狀態檢測系統及其方法
TWI484804B (zh) * 2011-11-09 2015-05-11 Quanta Comp Inc 網路系統之資料管理方法及其相關系統
CN103973573B (zh) * 2014-05-16 2017-05-10 新华三技术有限公司 会话备份方法、报文转发方法及其装置
US11431730B2 (en) * 2019-11-25 2022-08-30 Cisco Technology, Inc. Systems and methods for extending authentication in IP packets
US11271974B2 (en) * 2020-04-30 2022-03-08 Rockwell Automation Technologies, Inc. Securely deploying security policy and configuration through network address translation systems
US11924179B2 (en) * 2022-08-08 2024-03-05 International Business Machines Corporation API based distribution of private session key to network communication device for secured communications
US11916890B1 (en) * 2022-08-08 2024-02-27 International Business Machines Corporation Distribution of a cryptographic service provided private session key to network communication device for secured communications
US11765142B1 (en) * 2022-08-08 2023-09-19 International Business Machines Corporation Distribution of private session key to network communication device for secured communications

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI105753B (fi) * 1997-12-31 2000-09-29 Ssh Comm Security Oy Pakettien autentisointimenetelmä verkko-osoitemuutosten ja protokollamuunnosten läsnäollessa
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US20020124090A1 (en) * 2000-08-18 2002-09-05 Poier Skye M. Method and apparatus for data communication between a plurality of parties
JP2002232450A (ja) 2001-01-31 2002-08-16 Furukawa Electric Co Ltd:The ネットワーク中継装置、データ通信システム、データ通信方法およびその方法をコンピュータに実行させるプログラム
US7386881B2 (en) * 2003-01-21 2008-06-10 Swander Brian D Method for mapping security associations to clients operating behind a network address translation device
EP1681811B1 (en) * 2003-10-27 2019-08-28 Panasonic Intellectual Property Management Co., Ltd. Communication system and communication method
JP4489008B2 (ja) * 2005-11-16 2010-06-23 株式会社東芝 通信装置、通信方法および通信プログラム

Also Published As

Publication number Publication date
US8654755B2 (en) 2014-02-18
JP2007142675A (ja) 2007-06-07
US20070110054A1 (en) 2007-05-17

Similar Documents

Publication Publication Date Title
JP4489008B2 (ja) 通信装置、通信方法および通信プログラム
JP4081724B1 (ja) クライアント端末、中継サーバ、通信システム、及び通信方法
JP4674502B2 (ja) 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
KR101851826B1 (ko) 네트워크 게이트웨이 장치
TWI225345B (en) Method and apparatus to manage address translation for secure connections
JP2009111437A (ja) ネットワークシステム
JP4260659B2 (ja) パケットのnat透過機能を有する端末装置及びそのプログラム
JP5640226B2 (ja) 第1ドメインのクライアントと第2ドメインのサーバとの間でセキュアな通信チャネルを確立するための装置、方法およびプログラム
WO2007037028A1 (ja) 情報処理システム、トンネル通信装置、トンネル通信方法、代理応答装置、及び代理応答方法
JP2010161823A (ja) トンネル情報に基づきアドレス指定衝突を解決する方法及びシステム
JP2006270894A (ja) ゲートウェイ装置、端末装置、通信システムおよびプログラム
JP3944182B2 (ja) セキュリティ通信方法
JP2008236130A (ja) 通信を確立してメッセージを中継する装置、通信を確立する方法およびプログラム
JP2011124770A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
JP2011188448A (ja) ゲートウェイ装置、通信方法および通信用プログラム
JP2010283762A (ja) 通信経路設定装置、通信経路設定方法、プログラム、及び記憶媒体
JP4933286B2 (ja) 暗号化パケット通信システム
JP4630296B2 (ja) ゲートウェイ装置および認証処理方法
JP5131118B2 (ja) 通信システム、管理装置、中継装置、及びプログラム
Bittau et al. TCP-ENO: Encryption negotiation option
US11888840B2 (en) Apparatus and method for selection and transmission of server certificate
JP2004158923A (ja) Httpセッション・トンネリング・システム、その方法、及びそのプログラム
JP6075871B2 (ja) ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム
JP3911697B2 (ja) ネットワーク接続機器、ネットワーク接続方法、ネットワーク接続用プログラムおよびそのプログラムを記憶した記憶媒体
EP4199417A1 (en) Remote access with man-in-the-middle attack-prevention

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

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: 20100302

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: 20100330

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees