(57)【特許請求の範囲】
【請求項１】
第１のポート番号を宛先に含むデータを取得可能な第１の装置と、
前記第１のポート番号を宛先に含むアクセスを通過させるファイアウォールと、
前記第１の装置と前記ファイアウォールを介して接続された第２の装置と、
第２のポート番号を宛先に含むデータを取得可能な第３の装置と、
を含み、
前記第２の装置が、
前記第２の装置が実行するアプリケーションプログラムに基づいて作成された情報であり、送信先を示す情報及び要求する処理内容を示す情報を含み、前記送信先を示す情報が前記第３の装置及び第２のポート番号を示す情報である接続要求情報について、前記送信先を示す情報を前記第１の装置及び前記第１のポート番号を示す情報に変換し、前記処理内容を示す情報を前記第３の装置を示す情報及び第２のポート番号を含む情報に変換する変換手段と、
変換した前記送信先を示す情報に基づいて、前記第１の装置及び前記第１のポート番号を含む宛先を生成する生成手段と、
生成した宛先に前記接続要求情報を送信する送信手段と、
を含み、
前記第１の装置が、
前記第２の装置が送信した接続要求情報であって、前記ファイアウォールを通過した接続要求情報を取得する取得手段と、
取得した前記接続要求情報の前記処理内容を示す情報から、前記第３の装置及び前記第２のポート番号を示す情報を読み出し、前記送信先を示す情報を前記第３の装置及び前記第２のポートを示す情報に変換する変換手段と、
変換した前記送信先を示す情報に基づいて、前記第３の装置及び前記第２のポート番号を含む宛先を生成する生成手段と、
生成した前記宛先に前記接続要求情報を送信する送信手段と、
を含むことを特徴とするシステム。
【請求項２】
ファイアウォールを経由して行なわれるデータ通信の中継処理を行なうコンピュータを、
アプリケーションプログラムに基づいて作成された情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報を取得する取得手段、
取得した前記接続要求情報の前記処理内容を示す情報から、装置及びポート番号を示す情報を読み出し、読み出した前記装置及びポート番号を示す情報に、前記送信先を示す情報を変換する変換手段、
変換した前記送信先を示す情報に基づいて、宛先を生成する生成手段、
生成した前記宛先に、前記接続要求情報を送信する送信手段、
として機能させることを特徴とする中継処理プログラム。
【請求項３】
前記コンピュータを、さらに、
前記接続要求情報に対応する接続許可を示すデータを取得した場合に、前記接続許可を示すデータを送信した装置と接続状態を維持する制御を行なう制御手段、
として機能させることを特徴とする請求項２記載の中継処理プログラム。
【請求項４】
ファイアウォールを経由して行なわれるデータ通信の中継処理を行なう中継装置において、
アプリケーションプログラムに基づいて作成された情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報を取得する取得手段と、
取得した前記接続要求情報の前記処理内容を示す情報から、装置及びポート番号を示す情報を読み出し、読み出した前記装置及びポート番号を示す情報に、前記送信先を示す情報を変換する変換手段と、
変換した前記送信先を示す情報に基づいて、宛先を生成する生成手段と、
生成した前記宛先に、前記接続要求情報を送信する送信手段と、
を有することを特徴とする中継装置。
【請求項５】
ファイアウォールを経由して行なわれるデータ通信の中継処理を行なう中継処理方法において、
アプリケーションプログラムに基づいて作成された情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報を取得し、
取得した前記接続要求情報の前記処理内容を示す情報から、装置及びポート番号を示す情報を読み出し、読み出した前記装置及びポート番号を示す情報に、前記送信先を示す情報を変換し、
変換した前記送信先を示す情報に基づいて、宛先を生成し、
生成した前記宛先に、前記接続要求情報を送信する、
手順を有することを特徴とする中継処理方法。
【請求項６】
第１のポート番号を宛先に含むデータを通過させるファイアウォールを経由して、第１の装置と通信処理を行うコンピュータを、
前記コンピュータが実行するアプリケーションプログラムに基づいて作成された情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報について、前記処理内容を示す情報を、前記送信先を示す情報を含む情報に変換し、前記送信先を示す情報を前記第１の装置及び前記第１のポート番号を示す情報に変換する変換手段と、
変換した前記送信先を示す情報に基づいて、前記第１の装置及び前記第１のポート番号を含む宛先を生成する生成手段と、
生成した宛先に前記接続要求情報を送信する送信手段と、
として機能させることを特徴とする通信処理プログラム。
【請求項７】
前記コンピュータを、さらに、
前記接続要求情報を、前記接続要求情報についての応答を示すデータを前記コンピュータが受信するまで、所定のタイミングで繰り返し送信する送信手段、
として機能させることを特徴とする請求項６記載の通信処理プログラム。
【請求項８】
第１のポート番号を宛先に含むデータを通過させるファイアウォールを経由して、第１の装置と通信処理を行う通信装置において、
アプリケーション処理で作成する情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報について、前記処理内容を示す情報を、前記送信先を示す情報を含む情報に変換し、前記送信先を示す情報を前記第１の装置及び前記第１のポート番号を示す情報に変換する変換手段と、
変換した前記送信先を示す情報に基づいて、前記第１の装置及び前記第１のポート番号を含む宛先を生成する生成手段と、
生成した宛先に前記接続要求情報を送信する送信手段と、
を有することを特徴とする通信装置。
【請求項９】
第１のポート番号を宛先に含むデータを通過させるファイアウォールを経由して、第１の装置と通信する通信処理方法において、
アプリケーション処理で作成する情報であり、送信先を示す情報及び要求する処理内容を示す情報を含む接続要求情報について、前記処理内容を示す情報を、前記送信先を示す情報を含む情報に変換し、
前記送信先を示す情報を前記第１の装置及び前記第１のポート番号を示す情報に変換し、
変換した前記送信先を示す情報に基づいて、前記第１の装置及び前記第１のポート番号を含む宛先を生成し、
生成した宛先に前記接続要求情報を送信すること、
を特徴とする通信処理方法。
【請求項１０】
所定のアプリケーションの実行によって、送信先を示す情報及び処理内容を示す情報を含む命令であり、前記送信先を示す情報が第１の送信先を示す命令を作成し、
作成した前記命令に含まれる送信先を示す情報を第２の送信先を示す情報に変換し、前記処理内容を示す情報に前記第１の送信先を示す情報を付加した情報に変換し、
変換した前記命令に基づいて宛先を決定し、
決定した前記宛先に、変換した前記命令を送信し、
ファイアウォールが、送信した前記命令を通過させ、
通過した前記命令を受信し、
受信した前記命令の前記送信先を示す情報を、処理内容を示す情報に含まれる前記第１の送信先を示す情報に変換し、
変換した前記命令に基づいて宛先を決定し、
決定した前記宛先に、変換した前記命令を送信すること、
を特徴とする通信処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中継処理プログラム及び通信処理プログラム並びにファイアウォールシステムに関し、特に外部ネットワークと内部ネットワークとの接続点に設置されて通信管理を行うファイアウォールを経由するデータ通信を中継する中継処理プログラム及び通信処理プログラム並びにファイアウォールシステムに関する。
【背景技術】
【０００２】
近年、コンピュータネットワークの拡大に伴って、ネットワーク環境での不正侵入の防御、機密保護などのネットワークセキュリティの重要性が増している。
従来、コンピュータ間で通信を行なう場合の一般的なプロトコルとしてＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）が普及しており、そのＴＣＰ／ＩＰでは、対象のコンピュータ機器を特定するために、ＩＰアドレスとＴＣＰポートを使用する。以下、ＩＰアドレスとＴＣＰポートで特定される対象のコンピュータ機器の通信ポートをポートまたはソケットとする。この際、情報管理におけるセキュリティをふまえ、コンピュータ機器間で使用する通信にはファイアウォールと呼ばれる制御機構を設け、特定のポートでの通信しか行うことができないようにしている。【０００３】
ファイアウォールは、外部ネットワークと内部ネットワークとの接続点に設置され、外部ネットワークからファイアウォールを超えるアクセス要求を受信すると、予め設定された規制条件に基づき、アクセス要求を許容するか否かを判断して内部ネットワークへの不正アクセスを防いでいる。この際、アクセス要求を許容するか否かを判断した後で、かつ許容する場合のみアクセス要求元のコンピュータ機器とコネクションを確立することによって、ネットワーク資源の有効利用を図るファイアウォール方式がある（たとえば、特許文献１参照）。【０００４】
図１２は、ファイアウォールによる通信制御機能の一例を示した図である。
ファイアウォール９０１は、通信元クライアント９０２が接続される外部ネットワークと、通信先サーバ１（９０３）、通信先サーバ２（９０４）が接続される内部ネットワークの接続点に配置され、予め設定された規制条件に基づき通信元クライアント９０２からのアクセス要求を許容するかどうかを判断する。通信元クライアント９０２からは、アプリケーションごとに特定のＴＣＰポートを利用してファイアウォールを越えた先にある通信先サーバ１（９０３）もしくは通信先サーバ２（９０４）にアクセス要求を行う。【０００５】
たとえば、ファイアウォール９０１に、ＩＰアドレス「１１１．１２３．１．５０」、ＴＣＰポート「８０」と、ＩＰアドレス「１１１．１２３．１．５１」、ＴＣＰポート「８１」のアクセス要求を許容するように設定がされていたとする。この場合、通信元クライアント９０２から受信したアクセス要求が、規制条件であるＩＰアドレス「１１１．１２３．１．５０」、ＴＣＰポート「８０」、もしくはＩＰアドレス「１１１．１２３．１．５１」、ＴＣＰポート「８１」に合致していた場合のみファイアウォール９０１を通過させる。
【特許文献１】特開平１０−２１５２４８号公報（段落番号〔００１３〕〜〔００２０〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の説明のように、特定のポートを利用してファイアウォールを越えた通信を行なうためには、通過を許可するポートをファイアウォールに登録する必要がある。たとえば、図１２では、ポート８０と８１をファイアウォールに対して設定する必要がある。【０００７】
しかしながら、従来のファイアウォールの設定では、アプリケーションごとに使用するポートを許可設定しなければならないため、アプリケーションが複数存在する場合には管理対象のポートも多数となり、そのためのセキュリティ管理に大幅な手間を必要としてしまうという問題点がある。また、外部ネットワークの通信元クライアントが、内部ネットワークの通信先サーバからイベント結果など取得するような双方向通信を行うアプリケーションでは、外部ネットワークからのアクセス要求のためのポートのほか、内部ネットワークからのイベント結果送信のためのポートを別個にファイアウォールに設定しなければならない。【０００８】
このように、ファイアウォールに設定して管理しなければならないポート数は、システム規模に応じて増大する傾向がある。管理対象のポートが多い場合、新たにアプリケーションをインストールする際、正しく行わなければならないファイアウォールの設定にミスが生じる可能性が高くなる。また、アプリケーションの削除や変更に応じてファイアウォールの設定を変更する必要があるが、登録が多数であると、設定ミスばかりでなく、変更の必要性を見逃されてしまうもしくは放置されてしまうケースも発生する。そして、このような設定ミスやバージョンアップ忘れなどによってセキュリティホールが発生し、セキュリティが大幅に低下してしまう可能性がある。実際、セキュリティホールは人為的なミスで発生することが多いことが知られている。【０００９】
本発明はこのような点に鑑みてなされたものであり、ファイアウォールにおけるセキュリティ管理を容易にし、人為的なミスによるセキュリティの低下を防止することが可能なファイアウォールを介した中継処理プログラム及びファイアウォールシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるための中継処理プログラムが提供される。本発明にかかる中継処理プログラムは、通信元クライアント４が接続する外部ネットワークと、通信先サーバＡ（３ａ）、通信先サーバＢ（３ｂ）及び通信先サーバＣ（３ｃ）が接続する内部ネットワークとの接続点に設置されるファイアウォール１を通過する通信を中継する中継機サーバ２に適用される。【００１１】
ファイアウォール１には、アクセスを許可する１または複数のポートを集約した集約ポートが許可設定されており、外部ネットワークを介して入力されるアクセスを監視し、集約ポートへのアクセスのみを通過させる。中継機サーバ２は、集約ポートを備え、集約ポートを介してファイアウォール１を通過したアクセスが入力される。また、通信元クライアント４は、所定のアプリケーションに応じてアクセスが必要となったときに、集約ポートを宛先として接続要求情報を発行して接続要求を行う。接続要求情報には、予め、通信元クライアント４が本来接続を要求する内部ネットワークの目的の接続先が設定されている。【００１２】
中継機サーバ２は、ファイアウォール１が通過させた接続要求情報を取得する接続要求情報取得手段２１と、接続要求情報に基づき目的の接続要求先へ接続要求情報を中継する中継手段２２を具備する。接続要求情報取得手段２１は、通信元クライアント４によって発行され、集約ポート経由で入力された接続要求情報を取得し、中継手段２２へ伝達する。中継手段２２は、接続要求先を接続要求情報に設定された目的の接続要求先に変更し、目的の接続要求先に対し接続要求情報を送信して接続要求を行うとともに、目的の接続要求先から接続結果情報を取得し、これを通信元クライアント４に送信する。【００１３】
このようなファイアウォール１、中継機サーバ２及び通信元クライアント４によれば、通信元クライアント４は、内部ネットワーク内の目的の接続要求先と接続を行う場合、目的の接続要求先が記述された接続要求情報を集約ポートを宛先として発行する。ファイアウォール１は、許可設定された集約ポートを宛先とするその接続要求情報を通過させる。中継機サーバ２では、接続要求情報取得手段２１が集約ポートを介して入力される接続要求情報を取得して中継手段２２に伝達する。中継手段２２は、接続要求情報に基づき、宛先を目的の接続要求先に変更して接続要求情報を送信する。そして、目的の接続先より接続結果情報を取得すると、宛先を通信元クライアント４として、これを送信する。このようにして、中継機サーバ２は、通信元クライアント４と、目的の接続要求先である通信先サーバＡ（３ａ）、通信先サーバＢ（３ｂ）、通信先サーバＣ（３ｃ）のいずれかとの間の接続処理を中継する。そして、接続要求が許可された後は、通信元クライアント４と目的の接続要求先のサーバとの通信を中継処理する。【００１４】
また、上記課題を解決するために、外部ネットワークと内部ネットワークとの接続点に設置されて通信管理を行うファイアウォールを越えて内部ネットワークに接続するサーバとの通信処理を行う通信処理プログラムが提供される。本発明にかかる通信処理プログラムは、通信元クライアントに適用される。通信元クライアントは、通信処理プログラムを実行することにより、通信処理手段を実現する。通信処理手段では、アクセスを許可する１または複数のポートを集約した中継機サーバの集約ポートが許可設定されるファイアウォールを超えて内部ネットワークに接続する目的の接続要求先にアクセスする場合に、目的の接続要求先を含む接続要求情報を作成し、集約ポートを宛先として接続要求情報を発行して接続要求を行うとともに、集約ポートを具備する中継機サーバによって目的の接続要求先に中継された接続要求情報に対して目的の接続要求先が作成した接続結果情報を中継機サーバ経由で受信する。【００１５】
このような通信元クライアントによれば、通信処理手段は、アクセスを許可するポートが集約された集約ポートが許可設定されるファイアウォールを越えなければならない接続要求先に対してアクセスを行う場合、目的の接続要求先を含む接続要求情報を作成し、集約ポートを宛先としてこの接続要求情報を発行して接続要求を行う。これにより、接続要求情報は、ファイアウォールを通過して集約ポートを有する中継機サーバに伝達される。そして、中継機サーバが目的の接続要求先に中継した接続要求情報に対し、目的の接続要求先が応答として作成した接続結果情報が中継機サーバを経由して通信元クライアントに送信されるので、これを受信する。【００１６】
また、上記課題を解決するために、中継機サーバと通信元クライアント及びファイアウォールを有するファイアウォールシステムが提供される。ファイアウォールは、アクセスを許可する１または複数のポートを集約した集約ポートが許可設定され、外部ネットワークに接続する通信元クライアントからのアクセスを捕捉し、集約ポートを宛先とするアクセスのみを通過させる。通信元クライアントは、ファイアウォールを越えて内部ネットワークに接続する目的の接続要求先にアクセスする場合に、目的の接続要求先を含む接続要求情報を作成し、集約ポートを宛先として接続要求情報を発行して接続要求を行うとともに、目的の接続要求先の作成した接続要求情報に対する接続結果情報を受信する。中継機サーバには集約ポートが設定されており、ファイアウォールが通過させた通信元クライアントからの接続要求情報を取得する接続要求情報取得手段と、取得した接続要求情報に基づき、宛先を目的の接続要求先に変更して接続要求情報を送信するとともに、目的の接続要求先から接続結果情報を受信して通信元クライアントに送信する中継手段と、を具備する。【００１７】
このようなファイアウォールシステムによれば、通信元クライアントは、ファイアウォールを越えて内部ネットワークの通信先サーバにアクセスする場合、本来接続を要求する目的の接続要求先に関する情報を含む接続要求情報を作成し、宛先を中継機サーバの集約ポートとして発行する。接続要求情報は、ファイアウォールを通過して中継機サーバに入力される。中継機サーバは、接続要求情報を取得し、接続要求情報に基づき宛先を目的の接続要求先に変更してこの接続要求情報を目的の接続要求先に送信する。そして、目的の接続要求先が作成した接続結果情報を受信すると、宛先を通信元クライアントにしてこれを送信する。こうして、外部ネットワークに接続する通信元クライアントがファイアウォールの内側の内部ネットワークに接続する目的の接続要求先に発行する接続要求は、中継機サーバが集約して取得して目的の接続要求先に振り分けるとともに、目的の接続要求先の作成した接続結果情報が中継機サーバを経由して通信元クライアントに返る。
【発明の効果】
【００１８】
本発明では、中継機サーバが外部ネットワークに接続する通信元クライアントから受信したリクエストを一旦集約し、そこから内部ネットワークに接続する通信先サーバにリクエストを配布するので、ファイアウォールに設定するポートを最小で１つに集約することができる。これにより、ファイアウォールに設定するポートの管理を容易にすることが可能となり、この結果、設定ミスや、バージョンアップ忘れなどの人為的なミスによるセキュリティホールの発生を回避し、セキュリティレベルを保持することができる。【００１９】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００２０】
【図１】実施の形態に適用される発明の概念図である。
【図２】第１の実施の形態の構成を示す概略図である。
【図３】本実施の形態の通信元クライアントのハードウェア構成例を示すブロック図である。
【図４】実施の形態の中継機サーバのソフトウェアモジュール構成例を示した図である。
【図５】実施の形態のＨＴＴＰの中継処理の流れを示した図である。
【図６】実施の形態の通信元クライアントの接続要求情報（ＨＴＴＰヘッダ）の変換例を示す図である。
【図７】実施の形態の中継機サーバの接続要求情報（ＨＴＴＰヘッダ）の変換例を示す図である。
【図８】本実施の形態におけるＳＳＬ通信手順について示した図である。
【図９】本実施の形態のＳＳＬトンネリング通信の流れを示した図である。
【図１０】本実施の形態のＳＳＬトンネリング通信の通信例を示した図である。
【図１１】本実施の形態のイベント通知手順を示した図である。
【図１２】ファイアウォールによる通信制御機能の一例を示した図である。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。【００２２】
本発明に係るファイアウォールシステムは、外部ネットワークに接続する通信元クライアント４と、内部ネットワークに接続する中継機サーバ２、通信先サーバＡ（３ａ）、通信先サーバＢ（３ｂ）及び通信先サーバＣ（３ｃ）と、外部ネットワークと内部ネットワークとの接続点に設置されるファイアウォール１を有し、通信元クライアント４と通信先サーバ（３ａ、３ｂ、３ｃ）との間でパケット通信が行なわれている（以下、特に特定する必要がない場合は、通信先サーバ（３ａ、３ｂ、３ｃ）と表記する。）。【００２３】
ここで、外部ネットワークは、ファイアウォール１によって内部ネットワークへのアクセスが制限されるネットワークで、内部ネットワークは、ファイアウォール１によって外部からの攻撃や不正アクセスから守られるセキュリティレベルが高位なネットワークを指す。なお、ファイアウォール１と中継機サーバ２は、別装置もしくは１台の装置のいずれで構成されてもよい。また、図では、通信元クライアント４からファイアウォール１、中継機サーバ２を経由して通信先サーバ（３ａ、３ｂ、３ｃ）へ続くパケットの流れを示しているが、通信の際には、さらに応答として通信先サーバ（３ａ、３ｂ、３ｃ）から中継機サーバ２、ファイアウォール１を経由して通信元クライアント４へ応答パケットが流れる。【００２４】
ファイアウォール１は、外部ネットワークと内部ネットワークを介して行われる通信を監視し、予め設定された規制条件に基づいて接続要求を許容するか否かを判断し、許容するもののみ通過させる。ここでは、１または複数のポートを集約した１つの集約ポートに対するアクセス要求のみを許容するように規制条件が設定される。ここで、集約ポートには、中継機サーバ２のポート（図１の例では、ポート８０８０）が最小で１つ設定される。このため、外部ネットワークに接続する通信元クライアント４から内部ネットワーク内の通信先サーバ（３ａ、３ｂ、３ｃ）にアクセスする場合、必ず中継機サーバ２を経由しなければならない。【００２５】
中継機サーバ２は、接続要求情報を取得する接続要求情報取得手段（以下、ヘッダ取得手段とする）２１、中継処理を行う中継手段２２及びトンネリング処理を行うトンネリング手段２３を具備する。【００２６】
ヘッダ取得手段２１は、接続要求情報が含まれる通信パケットのヘッダ部を取得し、ヘッダ部の内容を解析し、トンネリング処理が必要である場合は、トンネリング手段２３を起動する。それ以外の場合は、そのまま中継手段２２を起動する。【００２７】
中継手段２２は、通信元クライアント４が送信したパケットの宛先を目的の接続要求先に変換して、通信先サーバ（３ａ、３ｂ、３ｃ）に送信する中継処理を行う。また、通信先サーバ（３ａ、３ｂ、３ｃ）から取得した応答パケットの宛先を通信元クライアント４に送信する中継処理を行う。パケット及び応答パケットを中継する場合に、ヘッダ部の内容に変更する必要があれば、ヘッダ部を更新した後、送信処理を行う。たとえば、接続要求情報に目的の接続要求先までに経由するサーバに関する経由情報が含まれており、経由情報に自装置（中継機サーバ２）に関する情報が含まれているときには、経由情報から中継機サーバ２に関する情報を削除する。また、これに対する通信先サーバ（３ａ、３ｂ、３ｃ）からの応答パケットには、経由情報を付加して通信元クライアント４に送信させる。【００２８】
トンネリング手段２３は、通信元クライアント４との間及び通信先サーバ（３ａ、３ｂ、３ｃ）との間の接続を確保し、接続が確保された後は、通信元クライアント４から受信したパケットの宛先を通信先サーバ（３ａ、３ｂ、３ｃ）としただけでパケットの内容を操作せずに送信し、同様に、通信先サーバ（３ａ、３ｂ、３ｃ）から受信した応答パケットも宛先を通信元クライアントとしただけでパケットの内容を操作せずに送信する。このように、中継機サーバ２がパケットの内容を関知せずに、宛先を付け替えて中継する処理をトンネリング処理とする。双方との接続を確保するネゴシエーション手順を含むトンネリング処理の詳細については後述する。【００２９】
通信先サーバＡ（３ａ）、通信先サーバＢ（３ｂ）及び通信先サーバＣ（３ｃ）は、通信元クライアント４がデータ通信を行う目的の接続先であって、中継機サーバ２を経由して通信元クライアント４との間のデータ通信が行なわれる。【００３０】
通信元クライアント４は、複数のアプリケーション、アプリケーションＡ（４１ａ）、アプリケーションＢ（４１ｂ）及びアプリケーションＣ（４１ｃ）を具備し、通信処理を行う通信処理手段４２を具備する。なお、特に限定する必要がない場合は、アプリケーション（４１ａ、４１ｂ、４１ｃ）と表記する。【００３１】
アプリケーション（４１ａ、４１ｂ、４１ｃ）は、それぞれ所定のアプリケーション処理を実行し、必要に応じて通信先サーバ（３ａ、３ｂ、３ｃ）にアクセスするため、通信処理手段４２に対して目的の接続要求先の指定や接続要求先への要求などを記述した接続要求情報を含むヘッダ部を作成し、通信処理手段４２に通信を依頼する。ヘッダ部はアプリケーションに応じて内容が異なる。また、使用する通信プロトコルも異なる場合もある。たとえば、ＷＥＢサーバに対してＨＴＴＰを用いて通信する場合や、さらにＳＳＬを用いてセキュリティを確保して通信を行なう場合などがある。また、通信先サーバ（３ａ、３ｂ、３ｃ）で発生するイベント情報を必要とする場合がある。【００３２】
通信処理手段４２は、アプリケーション（４１ａ、４１ｂ、４１ｃ）からのリクエストによって、ファイアウォール１を超えて内部ネットワークに接続する通信先サーバ（３ａ、３ｂ、３ｃ）にアクセスする。アプリケーション（４１ａ、４１ｂ、４１ｃ）からヘッダ部を取得すると、必要であれば、ヘッダ部の内容を変更し、集約ポートを宛先として接続要求情報を発行して接続要求を行う。たとえば、ヘッダ部にパケットを中継する中継機サーバに関する情報を設定する必要がある場合には、ヘッダ部に経由情報を付加した後、集約ポートに向けてパケットを送信する。そして、応答として目的の接続要求先が作成した接続結果情報を中継機サーバ２経由で受信する。また、通信先サーバ（３ａ、３ｂ、３ｃ）の任意のタイミングで発生するイベント情報が必要な場合、イベント情報が取得されるまで、イベント情報を要求するパケットを上記のような手順で繰り返し送信する。【００３３】
なお、上記の説明の中継機サーバ２の各処理手段は、コンピュータが中継処理プログラムを実行することによりその処理機能を実現する。また、上記の説明の通信元クライアント４の各処理手段及びアプリケーションは、コンピュータが通信処理プログラム及びアプリケーションプログラムを実行することにより、その処理機能を実現する。【００３４】
このような構成のファイアウォールシステムの動作について説明する。
ファイアウォール１には、予め中継機サーバ２の所定のポートが割り当てられる集約ポート（８０８０）のみが許可設定されている。【００３５】
通信元クライアント４は、アプリケーション（４１ａ、４１ｂ、４１ｃ）から接続要求情報を取得すると、必要に応じて、中継を行う中継機サーバ２に関する経由情報を付加するなどのヘッダ変換処理を行い、宛先を中継機サーバ２の集約ポート（８０８０）に設定してパケットを送信する。【００３６】
パケットを監視するファイアウォール１は、宛先が集約ポート（８０８０）であるこのパケットの通過を許可し、パケットが中継機サーバ２に受信される。
中継機サーバ２では、ヘッダ取得手段２１が、ヘッダ部を読み出してその内容を解析し、トンネリング処理が必要であれば、トンネリング手段２３を起動する。【００３７】
トンネリング処理が必要のない場合、中継手段２２がそのまま起動される。中継手段２２では、通信元クライアント４から取得したパケットの接続要求情報に付加された経由情報を削除するなどのヘッダ変換処理をした後、宛先を目的の接続要求先の通信先サーバ（３ａ、３ｂ、３ｃ）に設定してパケットを送信する。そして、通信先サーバ（３ａ、３ｂ、３ｃ）から接続結果情報を含む応答パケットを受信すると、経由情報を付加するなどのヘッダ変換処理をした後、宛先を通信元クライアント４に設定して送信する。【００３８】
一方、トンネリング処理を行う場合は、トンネリング手段２３が起動され、まず、通信元クライアント４との間及び目的の接続要求先である通信先サーバ（３ａ、３ｂ、３ｃ）との間の双方の接続が確保される。双方との接続が確保された後は、通信元クライアント４と通信先サーバ（３ａ、３ｂ、３ｃ）との間で交換されるパケットの宛先の付け替えを行い、通信元クライアント４から受信したパケットは通信先サーバ（３ａ、３ｂ、３ｃ）へ、通信先サーバ（３ａ、３ｂ、３ｃ）から受信したパケットは通信元クライアント４に送信する。【００３９】
このように、中継機サーバは、接続要求情報に基づいて本来の接続要求先に対してパケットを中継する中継処理を行うので、外部ネットワークに接続する通信元クライアントからのリクエストを中継機サーバに一旦集約し、そこから本来の接続要求先である通信先サーバに配布させることができる。従って、所定のアプリケーションを実現するために、ファイアウォールに許可設定しなければならないポート数を、最小で１に集約することができる。この結果、ファイアウォールにおけるポート管理を容易にできるばかりでなく、ポート設定時のミスなどによるセキュリティホールの発生を回避することができる。システム規模にもよるが、従来、ファイアウォールに設定しなければならないポート数は、数万個に及ぶ場合があり、これを最小で１つに集約することができれば、セキュリティレベルの保持に多大な効果が期待できる。
【００４０】
以下、第１の実施の形態として、ＨＴＴＰに適用した場合を例に図面を参照して説明する。ＨＴＴＰは、情報の転送を依頼するリクエストとそれに対するサーバのレスポンスから構成される。通信元クライアントは、ＵＲＬのパス名、Ｗｅｂブラウザの種類、使用言語などの情報をＧＥＴリクエストでサーバに送信し、応答としてサーバからデータやエラーコードなどを取得する。【００４１】
図２は、第１の実施の形態の構成を示す概略図である。図１と同じものには同じ番号を付し、説明は省略する。
中継機サーバ２は、通信元クライアント４ａ、４ｂ、４ｃとの間でＨＴＴＰサーバ処理を行うＨＴＴＰサーバ部２０１と、通信先サーバ３ａ、３ｂとの間でリクエスト配信サービスを行うリクエスト配信サービス部２０２を有する。ＨＴＴＰサーバ処理部２０１は、ファイアウォール１に許可設定されている集約ポートを介して通信元クライアント４ａ、４ｂ、４ｃから入力されるパケットに応じて要求元の通信元クライアント４ａ、４ｂ、４ｃと接続し、パケットをリクエスト配信サービス部２０２へ引き渡す。そして、リクエスト配信サービス部２０２から受け取った応答パケットを要求先の通信元クライアント４ａ、４ｂ、４ｃへ送信する。リクエスト配信サービス部２０２は、本来の接続要求先である通信先サーバ３ａ、３ｂに対し、ＨＴＴＰクライアントとして機能する。ＨＴＴＰサーバ部２０１から引き渡されたＨＴＴＰパケットの接続要求情報に従って宛先を目的の接続要求先（通信先サーバ３ａ、３ｂ）に変更して送信する。そして、応答として取得した応答パケットをＨＴＴＰサーバ部２０１へ引き渡す。【００４２】
通信先サーバ３ａ、３ｂは、同様の構成をとり、ＨＴＴＰサーバ処理を行うＨＴＴＰサーバ部３０１、リソース管理を行うリソースマネージャー部３０２を有する。ＨＴＴＰサーバ３０１は、中継機サーバ２を経由して取得したＨＴＴＰパケットを解析し、パケットが正常であると認められれば、処理をリソースマネージャー部３０２へ引き渡し、得られたデータなどで応答パケットを作成して中継機サーバ２へ送信する。リソースマネージャー部３０２は、データの読み出しなどのリクエスト処理を行って結果をＨＴＴＰサーバ部３０１へ返す。【００４３】
通信元クライアント４ａ、４ｂ、４ｃは、同様の構成をとり、アプリケーション処理を行うアプリケーション部４０１と、ＨＴＴＰクライアント処理を行うＨＴＴＰクライアント部４０２を有する。アプリケーション部４０１は、所定のアプリケーション処理を行い、必要に応じて、ＨＴＴＰクライアント部４０２に対して通信先サーバ３ａ、３ｂへのアクセス要求を行う。ＨＴＴＰクライアント部４０２は、アプリケーション部４０１からアクセス要求を受けると、ＨＴＴＰのプロトコルに従って、通信先サーバ３ａ、３ｂに向けたリクエストパケットを作成する。このとき、接続要求情報に目的の通信先サーバ（３ａ、３ｂ）を設定し、中継機サーバ２の集約ポートを宛先にしてパケットを送信する。受信したパケットは、アプリケーション部４０１に引き渡す。【００４４】
このようなファイアウォールシステムでは、たとえば、通信元クライアント４ａのアプリケーション部４０１で通信先サーバ３ａへのデータ要求が発生した場合、アプリケーション部４０１からリクエストによってＨＴＴＰクライアント４０２でリクエストのパケットが作成される。このパケットには、接続要求情報に目的の接続要求先（通信先サーバ３ａ）が設定され、宛先を中継機サーバ２の集約ポートとして送信される。このパケットは、集約ポートが許可設定されるファイアウォール１を通過し、中継機サーバ２のＨＴＴＰサーバ部２０１で受信され、リクエスト配信サービス部２０２によって目的の接続要求先（通信先サーバ３ａ）に宛先が変換されて送信される。通信先サーバ３ａは、ＨＴＴＰサーバ部３０１でこのパケットを受信し、リソースマネージャー部３０２がリクエスト処理を行った結果の応答パケットがＨＴＴＰサーバ３０１で作成され、中継機サーバ２へ送信される。中継機サーバ２では、リクエスト配信サービス部２０２は、宛先を通信元クライアント４ａに変換し、ＨＴＴＰサーバ２０１より通信元クライアント４ａに送信される。そして、通信元クライアント４ａでは、ＨＴＴＰクライアント４０２が応答パケットを受信し、要求データがアプリケーション部４０１に引き渡される。【００４５】
ところで、ファイアウォール１、中継機サーバ２、通信先サーバ３ａ、３ｂ、通信元クライアント４ａ、４ｂ、４ｃは、コンピュータがプログラムを実行することにより処理機能を実現する。各装置のハードウェア構成を通信元クライアントを例に説明する。図３は、本実施の形態の通信元クライアントのハードウェア構成例を示すブロック図である。【００４６】
通信元クライアント４は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。【００４７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク５に接続されており、ネットワーク５を介して中継機サーバ２との間でデータの送受信を行う。【００４８】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、通信元クライアントのハードウェア構成を示したが、ファイアウォール、中継機サーバ、通信先サーバのハードウェア構成も同様である。【００４９】
次に、中継機サーバのソフトウェアモジュール構成について説明する。図４は、実施の形態の中継機サーバのソフトウェアモジュール構成例を示した図である。
中継機サーバ２の中継機機能を実現するため、ＨＴＴＰセッション２１０は、ＨＴＴＰＳトンネリング２１１、リクエスト２１２、レスポンス２１３、チャンク入力ストリーム２１４、チャンク出力ストリーム２１５、ＨＴＴＰヘッダ２１６、サイズ管理入力ストリーム２１７、サイズ管理出力ストリーム２１８及びＧＺＩＰレスポンス２１９などのモジュール群を有する。【００５０】
ＨＴＴＰセッション２１０では、通信を確立するための情報を生成するなど、ＨＴＴＰ通信全般を管理する。ＨＴＴＰＳトンネリング２１１は、ＳＳＬが適用された場合に、トンネリング処理を制御する。リクエスト２１２は、通信元クライアントから通信先サーバへ流れるデータ通信を管理するモジュールで、要求側のクライアントから送られるデータの流れを管理するチャンク入力ストリーム２１４と、処理側の通信先サーバから送られるデータの流れを管理するチャンク出力ストリーム２１５と、ＨＴＴＰヘッダ操作を行うＨＴＴＰヘッダ２１６によりデータ制御を行う。レスポンス２１３は、通信先サーバから通信元クライアントへ流れるデータ通信を管理するモジュールで、通信先サーバへ送られるデータストリームの制御を行うサイズ管理入力ストリーム２１７と、通信先サーバから送られるデータストリームの制御を行うサイズ管理出力ストリーム２１８と、ＨＴＴＰヘッダ２１６によりデータ制御を行う。また、必要に応じて、ＧＺＩＰレスポンス２１９により圧縮データが復号される。【００５１】
以上の構成の中継機サーバにおけるＨＴＴＰの中継処理の動作について説明する。図５は、実施の形態のＨＴＴＰの中継処理の流れを示した図である。
（１）通信元クライアント４から通信先サーバ３に対する接続要求が、中継機サーバ２を宛先として発行される。接続要求の際には、接続要求情報として、目的の接続要求先が設定されている。【００５２】
（２）中継機サーバ２が、通信元クライアント４が発行した接続要求を受信し、その内容の確認を行う。
（３）中継機サーバ２は、接続要求が確認されたら、接続要求情報の内容を目的の接続要求先に合わせて更新する。たとえば、接続要求情報に中継機サーバ２に関する経由情報が含まれていた場合、これを削除する。【００５３】
（４）中継機サーバ２は、更新した接続要求情報を、目的の接続要求先の通信先サーバ３を宛先として送信する。
（５）通信先サーバ３は、中継機サーバ２により中継された通信元クライアント４からの接続要求を受信し、所定の処理実行後、接続結果を中継機サーバ２に向けて送信する。【００５４】
（６）中継機サーバ２は、通信先サーバ３の接続結果を受信し、取得した接続結果情報の内容を通信元クライアントに合わせて更新する。たとえば、中継機サーバ２に関する経由情報を削除していた場合、中継情報を追加する。【００５５】
（７）中継機サーバ２は、更新した接続結果情報を通信元クライアント４に送信する。
以上の手順により、一連の通信処理が実行される。
ここで、接続要求情報（ＨＴＴＰヘッダ）の変換について例をあげて説明する。【００５６】
まず、通信元クライアント４におけるヘッダ変換処理について説明する。図６は、実施の形態の通信元クライアントの接続要求情報（ＨＴＴＰヘッダ）の変換例を示す図である。【００５７】
通信元クライアント４では、アプリケーションに応じて作成されるオリジナルのＨＴＴＰヘッダ５０１と、目的の接続要求先を示す要求アドレスと中継機サーバを示す中継機アドレスのアドレス情報５０２とを用いて、ＨＴＴＰヘッダに経由情報が付加されたクライアント変換ＨＴＴＰヘッダ５０３を作成する。【００５８】
第１に、オリジナルのＧＥＴ命令に目的の接続要求先を付加して変換する。図の例では、オリジナルＨＴＴＰヘッダ５０１に示すＧＥＴ命令［ＧＥＴ／ｉｎｄｅｘ．ｈｔｍｌＨＴＴＰ／１．０］に目的の接続先の［ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ］を付加し、クライアント変換ＨＴＴＰヘッダ５０３に示す［ＧＥＴ／ｈｔｔｐ：／／ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ／ｉｎｄｅｘ．ｈｔｍｌＨＴＴＰ／１．０］に変換する。【００５９】
また、接続要求先を目的の接続要求先から中継機サーバに変換する。図の例では、オリジナルＨＴＴＰヘッダ５０１に示す目的の接続要求先を表す［Ｈｏｓｔ：ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ］から、クライアント変換ＨＴＴＰヘッダ５０３に示す中継機サーバを表す［Ｈｏｓｔ：ｐｒｏｘｙ．ａｂｃ．ｃｏ．ｊｐ］に変換する。【００６０】
以上の手順が通信元クライアント４で実行されることにより、宛先を中継機サーバ２とし、目的の接続要求先が設定されるＨＴＴＰヘッダが作成され、中継機サーバ２に送信される。【００６１】
中継機サーバ２は、通信元クライアント４からクライアント変換ＨＴＴＰヘッダ５０３を受信し、ヘッダの変換を行う。図７は、実施の形態の中継機サーバの接続要求情報（ＨＴＴＰヘッダ）の変換例を示す図である。【００６２】
中継機サーバ２では、まず、ＧＥＴ命令に付加された目的の接続要求先を削除する。図の例では、クライアント変換ＨＴＴＰヘッダ５０３の［ＧＥＴ／ｈｔｔｐ：／／ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ／ｉｎｄｅｘ．ｈｔｍｌＨＴＴＰ／１．０］から［ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ］を削除し、サーバ変換ＨＴＴＰヘッダ５０４に示す［ＧＥＴ／ｉｎｄｅｘ．ｈｔｍｌＨＴＴＰ／１．０］に変換する。【００６３】
さらに、接続要求先を変換する。図の例では、クライアント変換ＨＴＴＰヘッダ５０３に示す中継機サーバを表す［Ｈｏｓｔ：ｐｒｏｘｙ．ａｂｃ．ｃｏ．ｊｐ］からサーバ変換ＨＴＴＰヘッダ５０４に示す目的の接続要求先を示す目的の接続要求先を表す［Ｈｏｓｔ：ｗｗｗ．ｄｅｆ．ｃｏ．ｊｐ］に変換する。【００６４】
以上の手順が中継機サーバ２で実行されることにより、中継処理のため通信元クライアント４で付加された情報が削除され、本来のオリジナルＨＴＴＰヘッダと同じものが作成される。【００６５】
こうして、オリジナルＨＴＴＰヘッダが目的の接続要求先に送信される。また、目的の接続要求先から送信される応答パケットのＨＴＴＰヘッダにも同様の操作が行われ、中継機サーバ２を経由して通信元クライアント４に送信される。【００６６】
ところで、ＨＴＴＰでは、セキュリティ機能として、ＳＳＬ通信プロトコルが用いられる場合がある。ＳＳＬは、ＴＣＰ層とアプリケーション層間に位置し、上位のＨＴＴＰなどのデータを暗号化して送信する。ＳＳＬを用いたデータ通信では、盗聴した場合には内容を解釈することが非常に困難であり、改ざんすることも難しく、安全にデータを転送するために広く用いられている。このため、接続情報とその通信内容は対象となる接続元と接続先しか所有することができず、上記の説明のようにＨＴＴＰヘッダを解析し変更することができない。そこで、ＳＳＬ通信の内容に触れることなく、通信の接続元と接続先を中継するトンネリング通信機能を実現する。【００６７】
まず、ＳＳＬ通信手順について説明する。図８は、本実施の形態におけるＳＳＬ通信手順について示した図である。
最初に、ＳＳＬ通信処理を行うため、通信元クライアント４、中継機サーバ２及び通信先サーバ３間の接続を確立するトンネリング初期化手順が行われ、続いてトンネリング初期化が完了した後のＳＳＬ通信手順が行われる。【００６８】
トンネリング初期化手順は、通信元クライアント４から中継機サーバ２に向けて通信先サーバ３との間のＳＳＬトンネリング通信を要求するトンネリング要求６０１が送信されて、開始される。中継機サーバ２は、通信元クライアント４との接続を確保するとともに、通信先サーバ３のＳＳＬサーバソケットに対する接続要求６０２を行い、通信先サーバ３との接続を確立する。通信先サーバ３との接続が確立された後、トンネリング初期化完了６０３を通信元クライアント４に送信する。【００６９】
以上の手順により、通信元クライアント４と中継機サーバ２間の接続及び中継機サーバ２と通信先サーバ３間の接続が確保される。すなわち、中継機サーバ２を介して通信元クライアント４と通信先サーバ３間のＳＳＬ通信の接続が確立される。【００７０】
ＳＳＬ通信手順は、中継機サーバ２を介して通信元クライアント４と通信先サーバ３のＳＳＬ通信の接続が確立されると開始される。通信元クライアント４からＳＳＬハンドシェーク開始６０４が送信されると、中継機サーバ２経由で通信先サーバ３が受信し、ハンドシェークが行われる。ハンドシェークが終了すると、ＳＳＬ通信が開始され（６０５）、その結果が返る（６０６）。この間、中継機サーバ２は、通信元クライアント４から中継機サーバ２のソケットに向けて送信されたパケットを通信先サーバ３のＳＳＬサーバソケットに変換して送るとともに、通信先サーバ３から送信された結果を通信元クライアント４に送信するソケット変換処理が行われる。このとき、中継機サーバ２では、ソケット変換を行うのみで、データ操作は行わない。【００７１】
以上の手順が実行されることにより、ＳＳＬ通信内容に触れることなく、通信の接続元と接続先を中継することができる。
ここで、ＳＳＬトンネリング初期化手順について詳細に説明する。図９は、本実施の形態のＳＳＬトンネリング通信の流れを示した図である。【００７２】
ＳＳＬ通信を行なう際、通信内容は接続元と接続先により暗号化されており、中継機サーバで通信内容を把握することは非常に困難である。しかしながら、ＳＳＬ通信が開始される際には、接続要求としてＨＴＴＰヘッダの最初の１行に「ＣＯＮＮＥＣＴ」という文字が記述される。そこで、「ＣＯＮＮＥＣＴ」の文字列に基づき、ＳＳＬ通信であるかどうかを判断することができる。【００７３】
（１）通信元クライアント４から中継機サーバ２を経由して、ＳＳＬ通信のための接続要求が発行される。このときのＨＴＴＰヘッダの最初の１行には、接続を要求する「ＣＯＮＮＥＣＴ」が記述されている。【００７４】
（２）中継機サーバ２は、接続要求を受信し、その接続要求内容を確認する。
（３）中継機サーバ２は、「ＣＯＮＮＥＣＴ」の検出により、ＳＳＬトンネリング通信であると判断し、ＳＳＬトンネリング処理を開始する。このとき、既に接続元の通信元クライアント４からの接続要求を所有しているため、通信先サーバ３のＳＳＬサーバソケットに対して接続要求を発行する。【００７５】
（４）通信先サーバ３から接続結果が返る。
（５）中継機サーバ２は、トンネリング通信を行うために、その接続を確保する。
（６）中継機サーバ２は、トンネリング通信を行うために、通信元クライアント４からの接続要求（１）に応じて、通信元クライアント４との接続を確立し、その接続状態を確保しておく。【００７６】
（７）中継機サーバ２は、通信先サーバ３から受信した接続結果（４）を途中で取得してしまったので、接続元である通信元クライアント４に対して接続要求が通ったことを接続先の通信先サーバ３に代わって代行通知する。【００７７】
（８）以上の手順により、中継機サーバ２と通信先サーバ３との間で、ＳＳＬ通信のための接続が確立され、ＳＳＬ通信処理が開始される。
（９）以上の手順により、中継機サーバ２と通信元クライアント４との間で、ＳＳＬ通信のための接続が確立され、ＳＳＬ通信処理が開始される。【００７８】
その後、中継機サーバ２は、接続が確保されている接続元（通信元クライアント４）からの接続に対して接続先（通信先サーバ３）の結果を返し、接続先（通信先サーバ３）からの接続に対しては接続元（通信元クライアント４）の結果を渡す。【００７９】
具体例を用いて説明する。図１０は、本実施の形態のＳＳＬトンネリング通信の通信例を示した図である。
通信元クライアント４からは、通信先サーバ３を要求アドレス、中継機サーバ２を中継機アドレスに設定して、オリジナルのＨＴＴＰＳヘッダ５１０が作成され、中継機サーバ２を宛先として送信される。なお、ＳＳＬ通信プロトコルに従ったＨＴＴＰヘッダを以下では、ＨＴＴＰＳヘッダと表記する。ＨＴＴＰＳヘッダ５１０は、最初の１行を除いて暗号化され、中継機サーバ２では解読できないので、ヘッダ変換は行われない。こうして、オリジナルのＨＴＴＰＳヘッダ５１０が、中継機サーバ２に受信される。【００８０】
中継機サーバ２では、ＨＴＴＰＳヘッダ５１０の最初の１行を解読し、ＳＳＬ通信であることを判定し、接続要求先 HYPERLINK "http://www.xyz.com" （ｗｗｗ．ｘｙｚ．ｃｏｍ）を取得する。そこで、要求アドレスをＨＴＴＰＳヘッダ５１０から取得した通信先サーバ３（ｗｗｗ．ｘｙｚ．ｃｏｍ）として、受信したＨＴＴＰＳヘッダ５１０をそのまま送信する。【００８１】
また、通信先サーバ３からの接続承認も、中継機サーバ２を経由して通信元クライアント４に転送されるが、中継機サーバ２では、宛先のみを通信元クライアントとし、内容はそのまま転送する。【００８２】
以上のように、中継機サーバ２は、中継する通信元クライアント４及び通信先サーバ３から受信したパケットについて、互いの転送先の接続以外の内容に変更を加えることなく、転送先に転送する。従って、転送先の接続以外には暗号化通信名内容に変更を加えることはない。このように、ＳＳＬトンネリング機能により、ＳＳＬを使用した安全性の高い通信を確保しつつ、通信の中継を行なうことが可能となり、ファイアウォールに許可設定するポートを最小とすることができる。【００８３】
ところで、データ通信には、通信元クライアント側から接続要求が発生して実行される通信とともに、サーバ側に発生したイベントによって開始される通信がある。以下、このようなサーバ側のイベントによって開始される通信をイベント通知とする。従来、ファイアウォールを介してイベント通知を行う場合には、イベント通知のためのポートをファイアウォールに設定しなければならなかったが、本発明の実施の形態では、通信元クライアントからのデータ通信に使用する集約ポートを用いてイベント通知を行う。【００８４】
以下、集約ポートを用いたイベント通知について説明する。
図１１は、本実施の形態のイベント通知手順を示した図である。
通信先サーバ３では、イベント監視機能を開始し、イベントの発生を監視している。そして、イベント通知７０３を受けると、その内容を装置内に一時格納しておく。【００８５】
イベント通知を受ける通信元クライアント４は、イベント取得処理を開始し、イベント取得通知７０１を、中継機サーバ２を経由して通信先サーバ３に対して発行する。中継機サーバ２は、中継処理を行ってイベント取得通知７０１を通信先サーバ３に転送する。図の例では、イベント取得通知７０１が発行された時点では、通信先サーバ３はイベント通知を受けていないので、イベント取得通知７０１に対する応答として、「イベント無」の結果通知７０２が発行される。「イベント無」の結果通知７０２は、中継機サーバ２により中継処理され通信元クライアント４に受信される。【００８６】
通信元クライアント４は、イベント結果が得られなかったので、適当なタイミングで再びポーリングをかけ、イベント取得通知７０４を発行する。中継機サーバ２は、中継処理を行ってイベント取得通知７０４を通信先サーバ３に転送する。図の例では、イベント取得通知７０４が発行された時点では、通信先サーバ３はイベント通知７０３を取得し、その情報を一時保存しているので、イベント取得通知７０４に対する応答として、「イベント発生」の結果通知７０５が発行される。「イベント発生」の結果通知７０５は、中継機サーバ２により中継処理され通信元クライアント４に受信される。こうして、通信元クライアント４は、イベントの通知を取得する。【００８７】
このように通信元クライアント側からのポーリング処理によってイベント通知を取得することで、集約ポートを介してイベント通知を行うことができる。
ファイアウォールに許可設定するポートが少ないほど、セキュリティを確保することができるので、このように、通信元クライアント４から所定のタイミングでイベント取得要求を行うことによって、集約ポートを介してイベント通知を行うことができる。この結果、ファイアウォールに許可設定するポートを集約することが可能となり、ファイアウォールのセキュリティホールの発生を防止することができる。【００８８】
なお、上記の処理機能は、サーバコンピュータとクライアントコンピュータとによって実現することができる。その場合、中継機サーバが有すべき機能の処理内容を記述したサーバプログラム、及び通信元クライアントが有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをサーバコンピュータで実行することにより、中継機サーバの処理機能がサーバコンピュータ上で実現される。また、通信処理プログラムをクライアントコンピュータで実行することにより、通信元クライアントの処理機能がクライアントコンピュータ上で実現される。【００８９】
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。【００９０】
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。【００９１】
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。【００９２】
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。【００９３】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【００９４】
１  ファイアウォール
２  中継機サーバ
３ａ  通信先サーバＡ
３ｂ  通信先サーバＢ
２ｃ  通信先サーバＣ
４  通信元クライアント
２１  接続要求情報（ヘッダ）取得手段
２２  中継手段
２３  トンネリング手段
４１ａ  アプリケーションＡ
４１ｂ  アプリケーションＢ
４１ｃ  アプリケーションＣ
４２  通信処理手段
【図１】
0004570628.tif 000002
【図２】
0004570628.tif 000003
【図３】
0004570628.tif 000004
【図４】
0004570628.tif 000005
【図５】
0004570628.tif 000006
【図６】
0004570628.tif 000007
【図７】
0004570628.tif 000008
【図８】
0004570628.tif 000009
【図９】
0004570628.tif 000010
【図１０】
0004570628.tif 000011
【図１１】
0004570628.tif 000012
【図１２】
0004570628.tif 000013