(57)【要約】【課題】通信中継装置の暗号化／復号処理の負荷を軽減する。【解決手段】ＶＰＮゲートウエイ１０及びサーバ２０のＶＰＮ接続情報テーブル１０４，２０４は、各クライアントとのインターネットを介した暗号化通信における暗号化／復号処理を自装置で行うか否かを表す制御コードを記憶する。ＶＰＮ接続情報テーブル１０４，２０４中の制御コードの値は、各クライアントに関し、暗号化／復号処理をＶＰＮゲートウエイ１０及びサーバ２０のいずれか一方で行うように設定される。制御コード変更手段１０８は、ＣＰＵ負荷測定手段１０６が測定したＶＰＮゲートウエイ１０のＣＰＵ負荷に応じて、ＶＰＮ接続情報テーブル１０４，２０４中の制御コードを変更するための処理を行う。【選択図】図２
2010081108.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信手段を介して接続された第１の情報処理装置と第２の通信手段を介して接続された第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、
前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、
前記中継処理手段における処理の負荷を測定する測定手段と、
前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、
前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、
を備えることを特徴とする通信中継装置。
【請求項２】
前記測定手段が測定した負荷が予め設定された第１閾値を超えた場合に、
前記決定手段は、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを決定し、
前記中継処理手段は、前記復号手段及び前記暗号化手段における処理を実行しない、
ことを特徴とする請求項１に記載の通信中継装置。
【請求項３】
前記測定手段が測定した負荷が予め設定された閾値であって前記第１閾値以下である第２閾値を下回った場合に、
前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを決定し、
前記中継処理手段は、前記復号処理手段及び前記暗号化処理手段における処理を実行する、
ことを特徴とする請求項２に記載の通信中継装置。
【請求項４】
複数の前記第１の情報処理装置のそれぞれに対応づけて、前記復号手段で用いる復号鍵及び前記暗号化手段で用いる暗号鍵と、当該第１の情報処理装置に関する前記復号処理及び前記暗号化処理を前記中継処理手段で実行するか否かを表す処理情報と、を記憶手段に登録する登録手段をさらに備え、
前記鍵送信手段は、複数の前記第１の情報処理装置のそれぞれに対応づけて前記記憶手段に登録された前記復号鍵及び前記暗号鍵を前記第２の情報処理装置に対して送信し、
前記中継処理手段は、複数の前記第１の情報処理装置のそれぞれについて、当該第１の情報処理装置に対応づけて前記記憶手段に登録された情報に従って処理を行い、
前記測定手段が測定した負荷が前記第１閾値を超えた場合に、
前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを表す処理情報と対応づけられた第１の情報処理装置のうちの少なくとも１つに関して、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを決定し、
前記登録手段は、さらに、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを前記決定手段が決定した第１の情報処理装置に対応づけられた前記記憶手段中の処理情報を、前記復号処理及び前記暗号化処理を前記中継処理手段で実行しないことを表す情報に変更する、
ことを特徴とする請求項２に記載の通信中継装置。
【請求項５】
前記測定手段が測定した負荷が予め設定された閾値であって前記第１閾値以下である第２閾値を下回った場合に、
前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行しないことを表す処理情報と対応づけられた第１の情報処理装置のうちの少なくとも１つに関して、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを決定し、
前記登録手段は、さらに、前記復号処理及び前記暗号化処理を前記中継手段で実行することを前記決定手段が決定した第１の情報処理装置に対応づけられた前記記憶手段中の処理情報を、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを表す情報に変更する、
ことを特徴とする請求項４に記載の通信中継装置。
【請求項６】
コンピュータを、
第１の通信手段を介して前記コンピュータに接続された第１の情報処理装置と第２の通信手段を介して前記コンピュータに接続された第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、
前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、
前記中継処理手段における処理の負荷を測定する測定手段と、
前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、
前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、
として機能させることを特徴とするプログラム。
【請求項７】
第１の通信手段を介して第１の情報処理装置に接続された通信中継装置から、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号鍵と前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号鍵とを、第２の通信手段を介して受信する鍵受信手段と、
前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、
前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、を備え、
前記受信情報の復号処理及び前記送信情報の暗号化処理の実行を指示する情報を前記通信中継装置から受け取った場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を実行する、
ことを特徴とする第２の情報処理装置。
【請求項８】
コンピュータを、
第１の通信手段を介して第１の情報処理装置に接続された通信中継装置から、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号鍵と前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号鍵とを、第２の通信手段を介して受信する鍵受信手段と、
前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、
前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、
として機能させ、
前記受信情報の復号処理及び前記送信情報の暗号化処理の実行を指示する情報を前記通信中継装置から受け取った場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を前記コンピュータに実行させる、
ことを特徴とするプログラム。
【請求項９】
通信中継装置と、第１の通信手段を介して前記通信中継装置に接続された第１の情報処理装置と、第２の通信手段を介して前記通信中継装置に接続された第２の情報処理装置と、を備え、
前記通信中継装置は、
前記第１の情報処理装置と前記第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、
前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第１の情報処理装置と共有するための鍵交換処理を行う鍵交換処理手段と、
前記復号鍵及び前記暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、
前記中継処理手段における処理の負荷を測定する測定手段と、
前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、
前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、を備え、
前記第１の情報処理装置は、
前記復号鍵及び前記暗号鍵を前記通信中継装置と共有するための鍵交換処理を行う鍵交換処理手段と、
前記通信中継装置の前記復号手段で用いられる前記復号鍵で暗号化した情報を前記通信中継装置に対して送信する送信手段と、
前記通信中継装置から前記送信情報を受信して前記通信中継装置の前記暗号化手段で用いられる前記暗号鍵で復号する受信手段と、を備え、
前記第２の情報処理装置は、
前記通信中継装置の前記鍵送信手段から前記復号鍵及び前記暗号鍵を受信する鍵受信手段と、
前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、
前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、を備え、
前記通信中継装置の前記通知手段から、前記受信情報の復号処理及び前記送信情報の暗号化処理を前記第２の情報処理装置に実行させることが決定された旨の通知を受けた場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を実行する、
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置、情報処理装置、プログラム、及び通信システムに関する。
【背景技術】
【０００２】
端末同士の暗号化通信において、一方の端末と他方の端末との間に通信を中継する装置を設け、その通信中継装置において通信データの暗号化／復号を行うことがある。例えば、特許文献１には、複数の端末に接続される暗号ゲートウエイ装置であって、端末間の通信データの暗号化／復号を行う装置が開示されている。特許文献１の暗号ゲートウエイ装置は、送信端末及び受信端末の識別情報とセッション鍵（暗号化／復号に用いられる鍵）の組を保持するセッション鍵テーブルを備え、端末からデータを受信した場合に、受信したデータから送信端末及び受信端末の識別情報を抽出し、抽出した識別情報に対応するセッション鍵がセッション鍵テーブルに登録されていれば、そのセッション鍵を用いてデータを暗号化あるいは復号して受信端末に送信し、対応するセッション鍵がセッション鍵テーブルに登録されていなければ、受信したデータをそのまま受信端末に対して送信する。
【０００３】
また例えば、インターネットなどの不特定多数のユーザが利用するネットワークを経由して仮想的なプライベートネットワークを構築する技術として、ＶＰＮ（Virtual Private Network）が知られている。ＶＰＮを用いるシステムでは、例えば、不特定多数のユーザが利用可能な第１ネットワーク（インターネットなど）と、特定のユーザにのみ利用が許可されている第２ネットワーク（イントラネットなど）と、を接続する通信中継装置（例えば、ＶＰＮゲートウェイ）が設けられる。このようなシステムにおいて、例えば、クライアント装置が第１ネットワークを介して第２ネットワーク内のサーバ装置に接続する場合、通信中継装置がクライアント装置との間で暗号化通信を行うことで、クライアント装置と通信中継装置との間に仮想的な専用線（ＶＰＮトンネル）が構築される。
【０００４】
クライアント装置と通信中継装置との間の暗号化通信は、例えば、共通鍵暗号化方式と呼ばれる方式により行われる。共通鍵暗号化方式では、通信を行う２つの装置間で暗号化／復号処理に用いる鍵を共有し、この共有される鍵（共通鍵）を用いて送受信データの暗号化／復号処理が行われる。クライアント装置と通信中継装置との間で送受信される暗号化データを第３者に解読されないようにするために、この共通鍵の漏洩を防ぐ必要がある。
【０００５】
共通鍵の漏洩を防ぎつつクライアント装置と通信中継装置との間で共通鍵を共有するために、例えば、公開鍵暗号化方式（Public Key Infrastructure，PKI）と呼ばれる技術が用いられる。ＰＫＩでは、通信を行う各装置に対して、公開される暗号鍵（公開鍵）及び秘密にされる復号鍵（秘密鍵）を生成し、ある装置に対して送信するデータをその装置の公開鍵で暗号化して送信し、その暗号化されたデータを受信した当該装置は、自己の秘密鍵を用いて受信データを復号する。公開鍵で暗号化された情報は、その公開鍵に対応する秘密鍵によってのみ復号可能であるため、秘密鍵が漏洩しない限りは通信データの第３者による盗聴が防止される。
【０００６】
ところで、通信中継装置は、２つのネットワークの境界に設けられるため、暗号化／復号処理の負荷や通信トラフィックが通信中継装置に集中することがある。
【０００７】
通信中継装置における暗号化／復号処理の負荷を軽減する技術として、例えば、特許文献２に開示されるネットワークシステムがある。特許文献２に記載のネットワークシステムは、第１ネットワークと第２ネットワークとを接続する通信中継装置を備え、第１ネットワーク内のクライアントと第２ネットワーク内のサーバとの間で通信中継装置を経由して通信するように構成されたネットワークシステムにおいて、通信中継装置がクライアントとの間の通信で用いる暗号鍵及び復号鍵を生成し、生成した暗号鍵及び復号鍵をサーバに送信する。そして、このサーバにおいて、通信中継装置から受け取った暗号鍵及び復号鍵を用いて、クライアントとの間で送受信されるデータの暗号化／復号を行う。
【０００８】
【特許文献１】特開平７−１０７０８２号公報
【特許文献２】特開２００６−１２１５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、通信中継装置と通信中継装置に接続される情報処理装置との間で、通信データの暗号化／復号処理の負荷を動的に変更できる通信中継装置、情報処理装置、通信システムおよびプログラムを提供することである。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、第１の通信手段を介して接続された第１の情報処理装置と第２の通信手段を介して接続された第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、前記中継処理手段における処理の負荷を測定する測定手段と、前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、を備えることを特徴とする通信中継装置である。
【００１１】
請求項２に係る発明は、請求項１に係る発明において、前記測定手段が測定した負荷が予め設定された第１閾値を超えた場合に、前記決定手段は、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを決定し、前記中継処理手段は、前記復号手段及び前記暗号化手段における処理を実行しない。
【００１２】
請求項３に係る発明は、請求項２に係る発明において、前記測定手段が測定した負荷が予め設定された閾値であって前記第１閾値以下である第２閾値を下回った場合に、前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを決定し、前記中継処理手段は、前記復号処理手段及び前記暗号化処理手段における処理を実行する。
【００１３】
請求項４に係る発明は、請求項２に係る発明において、複数の前記第１の情報処理装置のそれぞれに対応づけて、前記復号手段で用いる復号鍵及び前記暗号化手段で用いる暗号鍵と、当該第１の情報処理装置に関する前記復号処理及び前記暗号化処理を前記中継処理手段で実行するか否かを表す処理情報と、を記憶手段に登録する登録手段をさらに備え、前記鍵送信手段は、複数の前記第１の情報処理装置のそれぞれに対応づけて前記記憶手段に登録された前記復号鍵及び前記暗号鍵を前記第２の情報処理装置に対して送信し、前記中継処理手段は、複数の前記第１の情報処理装置のそれぞれについて、当該第１の情報処理装置に対応づけて前記記憶手段に登録された情報に従って処理を行い、前記測定手段が測定した負荷が前記第１閾値を超えた場合に、前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを表す処理情報と対応づけられた第１の情報処理装置のうちの少なくとも１つに関して、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを決定し、前記登録手段は、さらに、前記復号処理及び前記暗号化処理を前記第２の情報処理装置に実行させることを前記決定手段が決定した第１の情報処理装置に対応づけられた前記記憶手段中の処理情報を、前記復号処理及び前記暗号化処理を前記中継処理手段で実行しないことを表す情報に変更する。
【００１４】
請求項５に係る発明は、請求項４に係る発明において、前記測定手段が測定した負荷が予め設定された閾値であって前記第１閾値以下である第２閾値を下回った場合に、前記決定手段は、前記復号処理及び前記暗号化処理を前記中継処理手段で実行しないことを表す処理情報と対応づけられた第１の情報処理装置のうちの少なくとも１つに関して、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを決定し、前記登録手段は、さらに、前記復号処理及び前記暗号化処理を前記中継手段で実行することを前記決定手段が決定した第１の情報処理装置に対応づけられた前記記憶手段中の処理情報を、前記復号処理及び前記暗号化処理を前記中継処理手段で実行することを表す情報に変更する。
【００１５】
請求項６に係る発明は、コンピュータを、第１の通信手段を介して前記コンピュータに接続された第１の情報処理装置と第２の通信手段を介して前記コンピュータに接続された第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、前記中継処理手段における処理の負荷を測定する測定手段と、前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、として機能させることを特徴とするプログラムである。
【００１６】
請求項７に係る発明は、第１の通信手段を介して第１の情報処理装置に接続された通信中継装置から、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号鍵と前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号鍵とを、第２の通信手段を介して受信する鍵受信手段と、前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、を備え、前記受信情報の復号処理及び前記送信情報の暗号化処理の実行を指示する情報を前記通信中継装置から受け取った場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を実行する、ことを特徴とする第２の情報処理装置である。
【００１７】
請求項８に係る発明は、コンピュータを、第１の通信手段を介して第１の情報処理装置に接続された通信中継装置から、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号鍵と前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号鍵とを、第２の通信手段を介して受信する鍵受信手段と、前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、として機能させ、前記受信情報の復号処理及び前記送信情報の暗号化処理の実行を指示する情報を前記通信中継装置から受け取った場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を前記コンピュータに実行させる、ことを特徴とするプログラムである。
【００１８】
請求項９に係る発明は、通信中継装置と、第１の通信手段を介して前記通信中継装置に接続された第１の情報処理装置と、第２の通信手段を介して前記通信中継装置に接続された第２の情報処理装置と、を備え、前記通信中継装置は、前記第１の情報処理装置と前記第２の情報処理装置との間の通信を中継する処理を行う中継処理手段であって、前記第１の情報処理装置から受信した情報であって暗号化された受信情報を復号する復号手段と、前記第１の情報処理装置を宛先として送信される送信情報を暗号化する暗号化手段と、を含む中継処理手段と、前記復号手段で用いられる復号鍵及び前記暗号化手段で用いられる暗号鍵を前記第１の情報処理装置と共有するための鍵交換処理を行う鍵交換処理手段と、前記復号鍵及び前記暗号鍵を前記第２の情報処理装置に対して送信する鍵送信手段と、前記中継処理手段における処理の負荷を測定する測定手段と、前記測定手段が測定した負荷に応じて、前記受信情報の復号処理及び前記送信情報の暗号化処理を、前記中継処理手段で実行するか前記第２の情報処理装置に実行させるかを決定する決定手段と、前記決定手段による決定を前記第２の情報処理装置に通知する通知手段と、を備え、前記第１の情報処理装置は、前記復号鍵及び前記暗号鍵を前記通信中継装置と共有するための鍵交換処理を行う鍵交換処理手段と、前記通信中継装置の前記復号手段で用いられる前記復号鍵で暗号化した情報を前記通信中継装置に対して送信する送信手段と、前記通信中継装置から前記送信情報を受信して前記通信中継装置の前記暗号化手段で用いられる前記暗号鍵で復号する受信手段と、を備え、前記第２の情報処理装置は、前記通信中継装置の前記鍵送信手段から前記復号鍵及び前記暗号鍵を受信する鍵受信手段と、前記通信中継装置及び前記第２の通信手段を介して取得した前記受信情報を前記復号鍵で復号する受信情報復号手段と、前記送信情報を前記暗号鍵で暗号化して前記通信中継装置に対して送信する暗号化情報送信手段と、を備え、前記通信中継装置の前記通知手段から、前記受信情報の復号処理及び前記送信情報の暗号化処理を前記第２の情報処理装置に実行させることが決定された旨の通知を受けた場合に、前記受信情報復号手段及び前記暗号化情報送信手段による処理を実行する、ことを特徴とする通信システムである。
【発明の効果】
【００１９】
請求項１、６、７、８、又は９に係る発明によると、通信中継装置と通信中継装置に接続される情報処理装置との間で、通信データの暗号化／復号処理の負荷を動的に変更できる。
【００２０】
請求項２に係る発明によると、本発明を採用しない場合に比較して、通信中継装置の暗号化／復号処理の負荷を軽減できる。
【００２１】
請求項３に係る発明によると、本発明を採用しない場合に比較して、通信中継装置の代わりに暗号化／復号処理を行う場合のある情報処理装置の処理負荷を軽減できる。
【００２２】
請求項４に係る発明によると、第１の通信手段を介して通信中継装置に接続される複数の第１の情報処理装置のうち通信中継装置で暗号化／復号処理を実行してきた第１の情報処理装置の少なくとも１つに関して、その通信データの暗号化／復号処理を、通信中継装置の代わりに、第２の通信手段を介して通信中継装置に接続される第２の情報処理装置に実行させるようにすることができる。
【００２３】
請求項５に係る発明によると、第１の通信手段を介して通信中継装置に接続される複数の第１の情報処理装置のうち、第２の通信手段を介して通信中継装置に接続される第２の情報処理装置において通信データの暗号化／復号処理を実行してきた第１の情報処理装置の少なくとも１つについて、第２の情報処理装置でなく通信中継装置で暗号化／復号処理を実行するようにすることができる。
【発明を実施するための最良の形態】
【００２４】
図１は、ＶＰＮ通信システムの概略構成の例を示す図である。図１に例示するＶＰＮ通信システムは、ＶＰＮゲートウエイ１０とサーバ２０とがイントラネットにより接続され、クライアント３０がインターネット４０を介してＶＰＮゲートウエイ１０に接続される構成を有する。ＶＰＮゲートウエイ１０は、イントラネット内の装置（例えば、サーバ２０）とインターネット４０上の装置（例えば、クライアント３０）との間の通信を中継する通信中継装置として機能する。ＶＰＮゲートウエイ１０とサーバ２０とを接続するイントラネットは、例えば特定の企業や団体に所属する者など、特定の利用者が利用するネットワークである。イントラネットは、例えば、ＬＡＮ（Local Area Network）により構成される。一方、インターネット４０は、不特定多数の利用者が利用可能なネットワークである。クライアント３０とＶＰＮゲートウエイ１０との間では暗号化通信が行われる。クライアント３０とＶＰＮゲートウエイ１０とは、インターネット４０を介して暗号化通信することによりＷＡＮ（Wide Area Network）を構成する。図１の例の構成のＶＰＮ通信システムは、リモートアクセスＶＰＮと呼ばれることがある。
【００２５】
図２は、ＶＰＮゲートウエイ１０及びサーバ２０の内部構成の例を示すブロック図である。図２を参照し、ＶＰＮゲートウエイ１０は、パケット転送部１００、ＩＰＳｅｃ回路１０２、ＶＰＮ接続情報テーブル１０４、ＣＰＵ負荷測定手段１０６、及び制御コード変更手段１０８を備える。
【００２６】
パケット転送部１００は、インターネット４０を介して受信したデータパケットをサーバ２０などのイントラネット内の装置に送信したり、イントラネット内のサーバ２０などから受信したデータパケットをインターネットに対して送り出したりする。パケット転送部１００は、受信したデータパケットをＩＰＳｅｃ回路１０２に渡して暗号化あるいは復号させた上でサーバ２０又はインターネット４０へ転送する場合がある。また、パケット転送部１００は、後述のＩＰＳｅｃ回路１０２や制御コード変更手段１０８がクライアント３０又はサーバ２０に対して送信する情報を含むデータパケットを送信することもある。
【００２７】
ＩＰＳｅｃ回路１０２は、インターネット４０を介して接続されたクライアント３０との間の暗号化通信に関する処理を行う。ＩＰＳｅｃ回路１０２は、ＩＰＳｅｃ（Security Architecture for Internet Protocol）と呼ばれるセキュリティ・プロトコルに従った暗号化通信を実現する処理を行う。ＩＰＳｅｃは、ＩＰ（Internet Protocol）層でのセキュリティ・プロトコルであり、ＶＰＮにおける標準プロトコルとしてインターネット技術の標準化組織であるＩＥＴＦ（Internet Engineering Task Force）が規定したプロトコルである。ＩＰＳｅｃ回路１０２は、インターネット４０を介してクライアント３０と鍵交換処理を行って暗号化／復号処理のための秘密鍵を共有し、そのクライアント３０のＩＰアドレスと共有する秘密鍵とを対応づけてＶＰＮ接続情報テーブル１０４に登録する。ＩＰＳｅｃ回路１０２は、暗号化／復号手段１０２０を備える。暗号化／復号手段１０２０は、ＶＰＮ接続情報テーブル１０４に登録されたクライアント３０とＶＰＮゲートウエイ１０との間で送受信されるデータについて、通信相手のクライアント３０に対応する秘密鍵で暗号化あるいは復号する手段である。
【００２８】
ＶＰＮ接続情報テーブル１０４は、ＶＰＮゲートウエイ１０を介してイントラネット内のサーバ２０にアクセスするクライアント３０に関する情報を記憶するテーブルである。図３（ａ）に、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４のデータ内容の例を示す。図３（ａ）の例の表の１行は、１つのクライアント３０に対応するレコードを表す。図３（ａ）の例では、各レコードには、秘密鍵、ＩＰアドレス、及び制御コードの各項目が登録される。秘密鍵は、対応するクライアント３０とＶＰＮゲートウエイ１０との間で交換されて共有された共通鍵である。ＩＰアドレスは、対応するクライアント３０のＩＰアドレスである。制御コードは、対応するクライアント３０との通信において、ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２において通信データの暗号化／復号処理を行うか否かを表す。図３（ａ）の例では、制御コードが「暗号／復号」に設定されていればＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２において通信データの暗号化／復号処理を行い、制御コードが「非暗号／非復号」に設定されていれば、ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２において通信データの暗号化／復号処理を行わないことを表す。
【００２９】
後に詳述するが、本例のＶＰＮ通信システムでは、ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２において暗号化／復号処理を行わない場合、通信データの暗号化／復号処理は、サーバ２０において行われる。このため、サーバ２０もまた、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４に対応するＶＰＮ接続情報テーブル２０４を備える。図３（ｂ）は、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４が図３（ａ）のデータ内容を有する場合におけるサーバ２０のＶＰＮ接続情報テーブル２０４のデータ内容の例を示す。図３（ｂ）の例の表において、図３（ａ）の例の表と同様、各クライアント３０に対応する各レコードは、秘密鍵、ＩＰアドレス、及び制御コードの各項目を備える。図３（ｂ）の例の表のレコードｒ１ｂ，ｒ２ｂは、それぞれ、図３（ａ）に例示するレコードｒ１ａ，ｒ２ａに対応する。レコードｒ１ｂ，ｒ２ｂ中の秘密鍵とＩＰアドレスとの組は、それぞれ、レコードｒ１ａ，ｒ２ａ中の秘密鍵とＩＰアドレスとの組と同じ値を有する。ただし、レコードｒ１ｂ，ｒ２ｂの制御コードの値は、それぞれ、レコードｒ１ａ，ｒ２ａと逆の値に設定される。例えば、レコードｒ１ｂの制御コードは「非暗号／非復号」であり、対応するレコードｒ１ａの制御コードは「暗号／復号」である。
【００３０】
サーバ２０のＶＰＮ接続情報テーブル２０４は、後述のように、ＶＰＮゲートウエイ１０が自己のＶＰＮ接続情報テーブル１０４に登録されたレコードをサーバ２０に対して送信することで生成される。
【００３１】
図２の説明に戻り、ＣＰＵ負荷測定手段１０６は、ＶＰＮゲートウエイ１０が備える各要素における処理を実行するＣＰＵの負荷を測定する。
【００３２】
制御コード変更手段１０８は、ＣＰＵ負荷測定手段１０６が測定したＣＰＵ負荷の値に応じて、ＶＰＮゲートウエイ１０及びサーバ２０のＶＰＮ接続情報テーブル１０４，２０４中のレコードの制御コードを変更する。例えば、ＣＰＵ負荷の値が予め設定された閾値より大きい場合に、制御コード変更手段１０８は、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４において制御コードが「暗号／復号」に設定されているレコードの少なくとも１つについて、制御コードを「非暗号／非復号」に変更する。それとともに、制御コード変更手段１０８は、ＶＰＮ接続情報テーブル１０４中で制御コードを変更したレコードに対応するサーバ２０のＶＰＮ接続情報テーブル２０４のレコードについて、制御コードを「暗号／復号」に変更することを指示する通知を、パケット転送部１００を介してサーバ２０に対して行う。この通知に応じて、サーバ２０においてＶＰＮ接続情報テーブル２０４の対応するレコードの制御コードが「暗号／復号」に設定される。
【００３３】
サーバ２０は、パケット送受信部２００、ＩＰＳｅｃ回路２０２、及びＶＰＮ接続情報テーブル２０４を備える。
【００３４】
パケット送受信部２００は、イントラネットを介してサーバ２０と接続された装置（例えば、ＶＰＮゲートウエイ１０）との間でデータパケットの送受信を行う。
【００３５】
ＩＰＳｅｃ回路２０２は、暗号化／復号手段２０２０を備える。暗号化／復号手段２０２０は、ＶＰＮ接続情報テーブル２０４において制御コードが「暗号／復号」に設定されているレコードに対応するクライアント３０との間の通信データを暗号化あるいは復号する処理を行う。
【００３６】
ＶＰＮ接続情報テーブル２０４は、図３（ｂ）を参照して上記で説明したとおりである。サーバ２０のパケット送受信部２００は、例えば、ＶＰＮゲートウエイ１０からＶＰＮ接続情報テーブル１０４のレコードの情報を受信すると、ＶＰＮ接続情報テーブル２０４において対応するレコードを生成するとともに、その制御コードを、ＶＰＮゲートウエイ１０から受信したレコード中の制御コードの値と逆の値に設定する。これにより、ＶＰＮゲートウエイ１０とサーバ２０との間で、当該レコードに対応するクライアント３０との間の暗号化通信で用いられる秘密鍵が共有される。
【００３７】
次に、図４を参照し、クライアント３０について説明する。図４は、クライアント３０の内部構成の概略の例を示すブロック図である。クライアント３０は、パケット送受信部３００、ＩＰＳｅｃ回路３０２、及び記憶部３０４を備える。
【００３８】
パケット送受信部３００は、インターネット４０を介してクライアント３０と接続された装置（例えば、ＶＰＮゲートウエイ１０）との間でデータパケットの送受信を行う。
【００３９】
ＩＰＳｅｃ回路３０２は、ＶＰＮゲートウエイ１０との間の暗号化通信に関する処理を行う。ＩＰＳｅｃ回路３０２は、例えば、ＶＰＮゲートウエイ１０との間で秘密鍵を交換する処理を行う。また、ＩＰＳｅｃ回路３０２は、暗号化／復号手段３０２０を備える。暗号化／復号手段３０２０により、ＶＰＮゲートウエイ１０との間で送受信されるデータの暗号化／復号処理が行われる。
【００４０】
記憶部３０４は、クライアント３０における処理に必要な各種の情報を記憶する。例えば、記憶部３０４は、暗号化／復号手段３０２０における通信データの暗号化／復号処理に用いられる秘密鍵を記憶する。
【００４１】
図５は、ＶＰＮゲートウエイ１０、サーバ２０、又はクライアント３０を実現する装置のハードウエア構成の概略の例を示すブロック図である。ＶＰＮゲートウエイ１０は、例えば、汎用のコンピュータにより、あるいは、ルータなどの専用の装置により実現される。いずれにしても、ＶＰＮゲートウエイ１０は、例えば、図５の例のハードウエア構成を有する装置により実現される。図５に例示する装置は、ＣＰＵ６０、メモリ（一次記憶）６２、各種Ｉ／Ｏ（入出力）インタフェース６４等がバス６６を介して接続された回路構成を有する。また、そのバス６６に対し、例えばＩ／Ｏインタフェース６４経由で、記憶装置６８や、通信手段を介して他の装置とのデータの授受を行う通信部７０などが接続される。後述の実施形態の処理内容が記述されたプログラムが記憶装置６８に記憶され、記憶されたプログラムがメモリ６２に読み出されＣＰＵ６０により実行されることにより、実施形態の処理が実現される。ＶＰＮゲートウエイ１０のＣＰＵ負荷測定手段１０６は、例えば、このＣＰＵ６０の処理負荷を測定するものである。サーバ２０及びクライアント３０も、例えば、図５の例と同様のハードウエア構成を有する汎用のコンピュータで実現される。
【００４２】
以下、図６を参照し、本例のＶＰＮ通信システムにおける暗号化通信の様子を説明する。図６は、クライアント３０がインターネット４０及びＶＰＮゲートウエイ１０を介してサーバ２０と通信する場合の通信経路の例を示す。本システムでは、ＶＰＮゲートウエイ１０とクライアント３０との間の暗号化通信のための通信データの暗号化／復号処理を、上述のＶＰＮ接続情報テーブル１０４，２０４の制御コードに従って、ＶＰＮゲートウエイ１０及びサーバ２０のいずれか一方が担当する。
【００４３】
図６において［ＭＯＤＥ１］として示す通信経路（矢印Ｍ１）は、ＶＰＮゲートウエイ１０が暗号化／復号処理を担当する場合の通信経路を示す。この場合、ＶＰＮゲートウエイ１０の接続情報テーブル１０４において、クライアント３０に対応するレコードの制御コードは「暗号／復号」に設定され、サーバ２０のＶＰＮ接続情報テーブル２０４において対応するレコードの制御コードは「非暗号／非復号」に設定される。［ＭＯＤＥ１］では、クライアント３０とＶＰＮゲートウエイ１０との間（斜線楕円部分）は暗号化通信であるが、ＶＰＮゲートウエイ１０とサーバ２０との間では、暗号化されていない平文を含むデータパケットが送受信される。
【００４４】
図６において［ＭＯＤＥ２］として示す通信経路（矢印Ｍ２）は、サーバ２０が暗号化／復号処理を担当する場合の通信経路を示す。この場合、ＶＰＮゲートウエイ１０の接続情報テーブル１０４において、クライアント３０に対応するレコードの制御コードは「非暗号／非復号」に設定され、サーバ２０のＶＰＮ接続情報テーブル２０４において対応するレコードの制御コードは「暗号／復号」に設定される。このとき、ＶＰＮゲートウエイ１０は、暗号化／復号処理を行わずに、クライアント３０とサーバ２０との間の通信データの中継のみを行う。［ＭＯＤＥ２］の通信経路において、クライアント３０とＶＰＮゲートウエイ１０との間、及び、ＶＰＮゲートウエイ１０とサーバ２０との間のいずれにおいても、暗号化された通信データを含むデータパケットが送受信される。
【００４５】
以下、ＶＰＮ通信システムの各種の動作の例を説明する。以下では、クライアント３０がＶＰＮゲートウエイ１０を介してサーバ２０にアクセスする場合を例にとり説明する。
【００４６】
図７は、ＶＰＮ通信システムにおける秘密鍵の共有に関する動作の例を示すシーケンス図である。図７の例の動作は、例えば、クライアント３０からＶＰＮゲートウエイ１０に対して、サーバ２０との間の通信セッションの開始の要求が行われた場合に開始される。
【００４７】
まず、クライアント３０のＩＰＳｅｃ回路３０２及びＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２によって、クライアント３０とＶＰＮゲートウエイ１０との間で鍵交換処理が行われ、その後の暗号化通信で用いる秘密鍵が共有される（ステップＳ１０）。
【００４８】
ステップＳ１０では、例えば、クライアント３０のＩＰＳｅｃ回路３０２及びＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２のいずれか一方で秘密鍵を生成し、生成した秘密鍵を他方に送信することで秘密鍵の共有が実現される。
【００４９】
あるいは、例えば、ステップＳ１０で、クライアント３０のＩＰＳｅｃ回路３０２及びＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２の双方がそれぞれ秘密鍵を生成し、生成した秘密鍵を他方に送信してもよい。この場合、クライアント３０とＶＰＮゲートウエイ１０との間で２つの秘密鍵が共有される。クライアント３０及びＶＰＮゲートウエイ１０は、例えば、これら２つの秘密鍵をデータの送受信の方向によって使い分ける。例えば、クライアント３０からＶＰＮゲートウエイ１０に対して送信されるデータの暗号化／復号処理では、クライアント３０が生成してＶＰＮゲートウエイ１０に送信した秘密鍵を用い、ＶＰＮゲートウエイ１０側からクライアント３０に対して送信されるデータの暗号化／復号処理では、ＶＰＮゲートウエイ１０が生成してクライアント３０に送信した秘密鍵を用いる。ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２の処理に着目して言い換えると、クライアント３０から受信した暗号化データの復号処理は、クライアント３０が生成した秘密鍵を用いて行い、クライアント３０に対して送信するデータの暗号化処理は、自己が生成した秘密鍵を用いて行う。
【００５０】
クライアント３０とＶＰＮゲートウエイ１０との間で授受される秘密鍵の漏洩を防ぐため、秘密鍵は暗号化されてインターネット４０に送り出される。この暗号化には、例えば、ＰＫＩが用いられる。ＰＫＩを用いる場合、例えば、クライアント３０が秘密鍵をＶＰＮゲートウエイ１０に対して送信する場合は、ＩＰＳｅｃ回路３０２でＶＰＮゲートウエイ１０の公開鍵を取得して当該秘密鍵を暗号化した上でパケット送受信部３００から送信する。この暗号化された秘密鍵を受け取ったＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２は、自己の公開鍵に対応する秘密の復号鍵を用いて受け取った秘密鍵を復号する。逆に、ＶＰＮゲートウエイ１０が秘密鍵をクライアント３０に対して送信する場合は、クライアント３０の公開鍵によって秘密鍵の暗号化が行われ、クライアント３０において自己の公開鍵に対応する秘密の復号鍵によりＶＰＮゲートウエイ１０から受け取った秘密鍵の復号が行われる。
【００５１】
なお、ステップＳ１０の鍵交換処理は、例えば、ＩＰＳｅｃで一般に利用される鍵交換プロトコルであるＩＫＥ（Internet Key Exchange）など、公知の鍵交換プロトコルを用いて行ってよい。
【００５２】
また、以下では、ステップＳ１０においてクライアント３０とＶＰＮゲートウエイ１０との間で１つの秘密鍵が共有される場合を例にとり各種の動作を説明する。しかしながら、以下で説明する各種の動作は、各クライアント３０とＶＰＮゲートウエイ１０との間で２つの秘密鍵が共有される上述の例の場合にも、暗号化処理又は復号処理で用いられる秘密鍵がデータの送受信の方向に応じて異なることを除いて、以下の説明と同様に実行される。
【００５３】
クライアント３０とＶＰＮゲートウエイ１０との間で秘密鍵が共有されると、ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２は、当該クライアント３０に対応するレコードをＶＰＮ接続情報テーブル１０４に登録する（ステップＳ１２）。当該レコードは、ステップＳ１０で共有した秘密鍵、及びステップＳ１０の通信相手のクライアント３０のＩＰアドレスを含む。さらに、当該レコードにおいて、ＩＰＳｅｃ回路１０２は、制御コードの値を予め設定された初期値に設定する。本例では、制御コードの初期値として「暗号／復号」を設定する。
【００５４】
その後、サーバ２０がクライアント３０と通信する場合、サーバ２０のＶＰＮ接続情報テーブル２０４中に当該クライアント３０に対応するレコードが存在しなければ、サーバ２０は、ＶＰＮゲートウエイ１０に対して、対応するレコードの転送依頼を行う（ステップＳ１４）。例えば、サーバ２０のパケット送受信部２００は、送信データパケット中の宛先ＩＰアドレスを含むレコードがＶＰＮ接続情報テーブル２０４に登録されていない場合に、ＶＰＮゲートウエイ１０に対して、そのＩＰアドレスを指定してレコード転送依頼を行う。
【００５５】
サーバ２０からのレコード転送依頼を受けたＶＰＮゲートウエイ１０は、指定されたＩＰアドレスを含むレコードをＶＰＮ接続情報テーブル１０４から取得し、取得したレコードをサーバ２０へ返す（ステップＳ１６）。
【００５６】
ＶＰＮゲートウエイ１０からレコードを受け取ったサーバ２０は、このレコードを自己のＶＰＮ接続情報テーブル２０４に登録する（ステップＳ１８）。このとき、サーバ２０は、ＶＰＮゲートウエイ１０から受け取ったレコードにおいて制御コードが「暗号／復号」に設定されていれば、ＶＰＮ接続情報テーブル２０４の対応するレコードの制御コードを「非暗号／非復号」に設定し、受け取ったレコードの制御コードが「非暗号／非復号」であれば、ＶＰＮ接続情報テーブル２０４の対応するレコードの制御コードを「暗号／復号」に設定する。
【００５７】
以上、図７に例示する処理により、クライアント３０とＶＰＮゲートウエイ１０との間で秘密鍵が共有されるとともに、ＶＰＮゲートウエイ１０とサーバ２０との間でも当該秘密鍵が共有される。
【００５８】
なお、図７の例では、ＶＰＮゲートウエイ１０は、サーバ２０からのレコード転送依頼を受けた場合に、ＶＰＮ接続情報テーブル１０４中の対応するクライアント３０のレコードをサーバ２０に対して送信する（ステップＳ１４，Ｓ１６）。他の例では、ＶＰＮゲートウエイ１０は、サーバ２０からのレコード転送依頼を待たずにＶＰＮ接続情報テーブル１０４の各レコードをサーバ２０へ送信してもよい。例えば、ＶＰＮ接続情報テーブル１０４にレコードを新規登録する（ステップＳ１２）たびに、サーバ２０に対して当該レコードを送信してもよい。
【００５９】
図８は、クライアント３０からサーバ２０宛のデータパケットが送信される場合のＶＰＮ通信システムの動作の例を表すシーケンス図である。
【００６０】
クライアント３０は、ＶＰＮゲートウエイ１０と共有する秘密鍵を用いて、ＩＰＳｅｃ回路３０２の暗号化／復号手段３０２０により送信データパケットを暗号化し、暗号化したデータパケットをパケット送受信部３００によりインターネット４０に送り出す（ステップＳ２０）。
【００６１】
クライアント３０からの暗号化データパケットを受信したＶＰＮゲートウエイ１０のパケット転送部１００は、ＶＰＮ接続情報テーブル１０４を参照し、このクライアント３０のＩＰアドレスを含むレコードの制御コードの値を取得する。取得した制御コードの値が「暗号／復号」であれば、ＶＰＮゲートウエイ１０及びサーバ２０において［ＭＯＤＥ１］の処理（ステップＳ２２−１，Ｓ２４−１，Ｓ２６−１）が行われ、取得した制御コードの値が「非暗号／非復号」であれば、ＶＰＮゲートウエイ１０及びサーバ２０において［ＭＯＤＥ２］の処理（ステップＳ２２−２，Ｓ２４−２，Ｓ２６−２）が行われる。図８に例示する［ＭＯＤＥ１］及び［ＭＯＤＥ２］の各処理は、図６に例示する［ＭＯＤＥ１］及び［ＭＯＤＥ２］の各通信経路を形成する処理である。
【００６２】
まず、［ＭＯＤＥ１］の処理について説明する。この場合、ＶＰＮゲートウエイ１０のＩＰＳｅｃ回路１０２において受信データパケットの復号処理が行われる（ステップＳ２２−１）。ＶＰＮゲートウエイ１０のパケット転送部１００は、ＶＰＮ接続情報テーブル１０４において送信元のクライアント３０に対応するレコードの制御コードが「暗号／復号」であれば、ＩＰＳｅｃ回路１０２に対して、受信データパケットを渡すとともにデータの復号を依頼する。この依頼を受けたＩＰＳｅｃ回路１０２の暗号化／復号手段は、ＶＰＮ接続情報テーブル１０４から送信元のクライアント３０に対応づけられた秘密鍵を取得し、取得した秘密鍵を用いて受信データパケットを復号する。そして、復号した受信データパケットをパケット転送部１００に返す。復号されたデータパケット（平文パケット）をＩＰＳｅｃ回路１０２から受け取ったパケット転送部１００は、その平文パケットをサーバ２０に対して送信する（ステップＳ２４−１）。サーバ２０は、この平文パケットを受信する（ステップＳ２６−１）。このとき、サーバ２０のパケット送受信部２００は、ＶＰＮゲートウエイ１０から受信したデータパケットの送信元のクライアント３０に対応するＶＰＮ接続情報テーブル２０４のレコードの制御コードの値を確認する。ここでは、当該レコードの制御コードは「非暗号／非復号」に設定されている。よって、サーバ２０は、受信したデータパケットについてサーバ２０のＩＰＳｅｃ回路２０２における復号処理を行わない。
【００６３】
次に、［ＭＯＤＥ２］の処理について説明する。この場合、ＶＰＮゲートウエイ１０のパケット転送部１００は、ＶＰＮ接続情報テーブル１０４において送信元のクライアント３０に対応するレコードの制御コードが「非暗号／非復号」であることから、ＩＰＳｅｃ回路１０２における復号処理を行うことなく、クライアント３０から受信した暗号化データパケットをそのままサーバ２０に転送する（ステップＳ２２−２）。ＶＰＮゲートウエイ１０からデータパケットを受信したサーバ２０のパケット送受信部２００は、ＶＰＮ接続情報テーブル２０４を参照し、このデータパケットの送信元のクライアント３０に対応するレコードの制御コードの値を取得する。このとき、制御コードの値は「暗号／復号」に設定されているので、サーバ２０のＩＰＳｅｃ回路２０２において受信データパケットの復号処理が行われる（ステップＳ２４−２）。パケット送受信部２００は、ＶＰＮゲートウエイ１０から受信したデータパケットをＩＰＳｅｃ回路２０２に渡すとともに復号処理を依頼する。この依頼を受けたＩＰＳｅｃ回路２０２の暗号化／復号手段は、ＶＰＮ接続情報テーブル２０４から送信元のクライアント３０に対応づけられた秘密鍵を取得し、取得した秘密鍵を用いて受信データパケットを復号する。そして、復号した受信データパケットをパケット送受信部２００に返す。これにより、サーバ２０は、平文パケットを得る（ステップＳ２６−２）。
【００６４】
以上の説明では、サーバ２０においてＶＰＮ接続情報テーブル２０４を参照するとき（ステップＳ２６−１，Ｓ２４−２）に、送信元のクライアント３０に対応するレコードがすでにＶＰＮ接続情報テーブル２０４に登録されているものとして説明した。ＶＰＮ接続情報テーブル２０４中に送信元のクライアント３０のレコードが存在しない場合、サーバ２０は、ＶＰＮゲートウエイ１０に対してレコード転送依頼を行って該当するレコードをＶＰＮ接続情報テーブル２０４に登録した後（図７のステップＳ１４，Ｓ１６，Ｓ１８）で、上述のステップＳ２６−１，Ｓ２４−２の処理を行えばよい。
【００６５】
図９は、サーバ２０からクライアント３０宛のデータパケットが送信される場合のＶＰＮ通信システムの動作の例を表すシーケンス図である。
【００６６】
まず、サーバ２０において、パケット送受信部２００は、送信データパケットの宛先ＩＰアドレスを含むＶＰＮ接続情報テーブル２０４中のレコードの制御コードの値を取得する。該当するレコードがＶＰＮ接続情報テーブル２０４に存在しなければ、ＶＰＮゲートウエイ１０に対してレコード転送依頼を行って該当するレコードを登録した後（図７のステップＳ１４，Ｓ１６，Ｓ１８）、そのレコードの制御コードの値を取得する。このとき取得した制御コードの値に応じて、サーバ２０及びＶＰＮゲートウエイ１０において、［ＭＯＤＥ１］の処理（ステップＳ３０−１，Ｓ３２−１）又は［ＭＯＤＥ２］の処理（ステップＳ３０−２，Ｓ３２−２）が行われる。図９に例示する［ＭＯＤＥ１］及び［ＭＯＤＥ２］の各処理は、図６に例示する［ＭＯＤＥ１］及び［ＭＯＤＥ２］の各通信経路を形成する処理である。
【００６７】
以下、［ＭＯＤＥ１］の処理について説明する。［ＭＯＤＥ１］は、送信データパケットの宛先となるクライアント３０に対応するＶＰＮ接続情報テーブル２０４のレコードの制御コードの値が「非暗号／非復号」である場合の処理である。サーバ２０のパケット送受信部２００は、取得した制御コードの値が「非暗号／非復号」であるとき、送信データパケットを平文のままＶＰＮゲートウエイ１０に対して送信する（ステップＳ３０−１）。サーバ２０からデータパケットを受信したＶＰＮゲートウエイ１０のパケット転送部１００は、ＶＰＮ接続情報テーブル１０４を参照し、受信したデータパケットの宛先であるクライアント３０に対応するレコードの制御コードの値を取得する。ここでは、制御コードの値として「暗号／復号」が取得されることから、パケット転送部１００は、ＩＰＳｅｃ回路１０２に対し、サーバ２０から受信したデータパケットを渡すとともに、暗号化処理を依頼する。この依頼を受けて、ＩＰＳｅｃ回路１０２の暗号化／復号手段１０２０は、当該データパケットの宛先のクライアント３０に対応する秘密鍵をＶＰＮ接続情報テーブル１０４から取得し、取得した秘密鍵を用いて、パケット転送部１００から受け取ったデータパケットを暗号化する（ステップＳ３２−１）。そして、暗号化後のデータパケットをパケット転送部１００に返す。
【００６８】
次に、［ＭＯＤＥ２］の処理について説明する。［ＭＯＤＥ２］は、送信データパケットの宛先となるクライアント３０に対応するＶＰＮ接続情報テーブル２０４のレコードの制御コードの値が「暗号／復号」である場合の処理である。サーバ２０のパケット送受信部２００は、取得した制御コードの値が「暗号／復号」であるとき、送信データパケットをＩＰＳｅｃ回路２０２に渡すとともに、暗号化処理の実行を依頼する。この依頼を受けて、ＩＰＳｅｃ回路２０２の暗号化／復号手段２０２０は、当該データパケットの宛先のクライアント３０に対応する秘密鍵をＶＰＮ接続情報テーブル２０４から取得し、取得した秘密鍵を用いて、パケット送受信部２００から受け取ったデータパケットを暗号化する（ステップＳ３０−２）。そして、暗号化後のデータパケットをパケット送受信部２００に返す。パケット送受信部２００は、暗号化されたデータパケットをＶＰＮゲートウエイ１０に対して送信する（ステップＳ３２−２）。このデータパケットを受信したＶＰＮゲートウエイ１０のパケット転送部１００は、受信したデータパケットの宛先のクライアント３０に対応するＶＰＮ接続情報テーブル１０４のレコードにおいて制御コードの値が「非暗号／非復号」に設定されていることを確認し、受信したデータパケットの暗号化を行わないことを決定する。
【００６９】
以上で説明した［ＭＯＤＥ１］又は［ＭＯＤＥ２］の処理が終了した時点で、ＶＰＮゲートウエイ１０のパケット転送部１００は、クライアント３０宛の暗号化された送信データパケットを有する。パケット転送部１００は、この暗号化された送信データパケットをクライアント３０に対して送信する（ステップＳ３３）。このデータパケットを受信したクライアント３０において、ＩＰＳｅｃ回路３０２の暗号化／復号手段３０２０によりデータパケットの復号処理が行われる。
【００７０】
本例のシステムでは、ＶＰＮゲートウエイ１０及びサーバ２０のＶＰＮ接続情報テーブル１０４，２０４において各クライアント３０に対応づけられる制御コードの値は、ＶＰＮゲートウエイ１０のＣＰＵ負荷に応じて変更される。図１０は、ＶＰＮゲートウエイ１０の制御コード変更手段１０８が行う処理の手順の例を示すフローチャートである。
【００７１】
図１０を参照し、制御コード変更手段１０８は、ＣＰＵ負荷測定手段１０６が測定したＶＰＮゲートウエイ１０のＣＰＵ負荷を取得する（ステップＳ８０）。取得したＣＰＵ負荷の測定値が予め設定された閾値θ１を超えている場合（ステップＳ８２でＹＥＳ）、処理はステップＳ８６に進み、ＣＰＵ負荷の測定値が閾値θ１以下である場合（ステップＳ８２でＮＯ）、ステップＳ８４に進む。
【００７２】
ステップＳ８６では、制御コード変更手段１０８は、ＶＰＮ接続情報テーブル１０４中のレコードのうち、制御コードが「暗号／復号」に設定されているレコードを少なくとも１つ選択する。例えば、制御コードが「暗号／復号」であるレコードのうち、ＶＰＮ接続情報テーブル１０４に最初に登録されたレコードを１つ選択する。あるいは、最新のレコードを１つ選択してもよい。また例えば、制御コードが「暗号／復号」であるレコードのうち、予め設定された割合（例えば、１０〜２０％など）に相当する数のレコードを選択してもよい。そして、選択したレコードの制御コードを「非暗号／非復号」に書き換える（ステップＳ８８）。さらに、制御コード変更手段１０８は、選択したレコードに対応するサーバ２０のＶＰＮ接続情報テーブル２０４中のレコードにおいて、制御コードを「暗号／復号」に変更することを指示する変更通知を、サーバ２０に対して、パケット転送部１００を介して送信する。この変更通知を受けると、サーバ２０において、ＶＰＮ接続情報テーブル２０４において対応するレコードの制御コードが「暗号／復号」に書き換えられる（ステップＳ９０）。ステップＳ９０の後、処理はステップＳ８０に戻る。
【００７３】
ステップＳ８６〜Ｓ９０の処理により、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４において制御コードが「暗号／復号」に設定され、サーバ２０のＶＰＮ接続情報テーブル２０４において制御コードが「非暗号／非復号」に設定されているレコードについて、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４のレコードでは「非暗号／非復号」に、サーバ２０のＶＰＮ接続情報テーブル２０４の対応するレコードでは「暗号／復号」に、制御コードの値が書き換えられる。したがって、そのレコードに対応するクライアント３０との通信に関し、ＶＰＮゲートウエイ１０ではなくサーバ２０が通信データの暗号化／復号処理を行うことになり、ＶＰＮゲートウエイ１０における暗号化／復号処理の負荷が軽減される。
【００７４】
ステップＳ８４では、ステップＳ８０で取得したＣＰＵ負荷の測定値が予め設定された閾値θ２を下回っているか否かを判定する。閾値θ２は、閾値θ１と同じ値であってよいし、あるいは、閾値θ１よりも小さな値に設定しておいてもよい。ＣＰＵ負荷測定値が閾値θ２を下回っていれば処理はステップＳ９２に進み、閾値θ２以上であれば処理はステップＳ８０に戻る。
【００７５】
ステップＳ９２では、制御コード変更手段１０８は、ＶＰＮ接続情報テーブル１０４中のレコードのうち、制御コードが「非暗号／非復号」に設定されているレコードを少なくとも１つ選択する。ここでのレコードの選択は、ステップＳ８６の場合と同様に、例えば、制御コードが「非暗号／非復号」であるレコードのうち、最も古いレコード又は最新のレコードを１つ選択してよい。また例えば、制御コードが「非暗号／非復号」であるレコードのうち、予め設定された割合に相当する数のレコードを選択してもよい。そして、選択したレコードの制御コードを「暗号／復号」に書き換える（ステップＳ９４）。さらに、制御コード変更手段１０８は、選択したレコードに対応するサーバ２０のＶＰＮ接続情報テーブル２０４中のレコードにおいて、制御コードを「非暗号／非復号」に変更することを指示する変更通知を、サーバ２０に対して、パケット転送部１００を介して送信する。この変更通知を受けると、サーバ２０において、ＶＰＮ接続情報テーブル２０４において対応するレコードの制御コードが「非暗号／非復号」に書き換えられる（ステップＳ９６）。ステップＳ９６の後、処理はステップＳ８０に戻る。
【００７６】
ステップＳ９２〜Ｓ９６の処理により、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４において制御コードが「非暗号／非復号」に設定され、サーバ２０のＶＰＮ接続情報テーブル２０４において制御コードが「暗号／復号」に設定されているレコードについて、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４のレコードでは「暗号／復号」に、サーバ２０のＶＰＮ接続情報テーブル２０４の対応するレコードでは「非暗号／非復号」に、制御コードの値が書き換えられる。これにより、そのレコードに対応するクライアント３０との通信に関し、サーバ２０ではなくＶＰＮゲートウエイ１０が通信データの暗号化／復号処理を行うことになる。
【００７７】
図１０の例の手順の処理では、ＶＰＮゲートウエイ１０のＣＰＵ負荷のみを考慮してＶＰＮ接続情報テーブル１０４，２０４中のレコードの制御コードの値の変更が行われる。他の例では、ＶＰＮゲートウエイ１０だけでなくサーバ２０のＣＰＵ負荷も考慮してよい。例えば、サーバ２０においてもＶＰＮゲートウエイ１０と同様にＣＰＵ負荷測定手段を設ける。制御コード変更手段１０８は、例えば、パケット転送部１００を介してサーバ２０に対してサーバ２０のＣＰＵ負荷測定値の通知を要求し、サーバ２０のＣＰＵ負荷測定手段によるＣＰＵ負荷測定値をサーバ２０から取得するものとする。この場合、例えば、図１０の例の手順のステップＳ８６，Ｓ９２において、制御コード変更手段１０８は、サーバ２０から取得したサーバ２０のＣＰＵ負荷測定値に応じて、制御コードの値を書き換えるレコードの数を決定してよい。例えば、ステップＳ８６では、サーバ２０のＣＰＵ負荷測定値が小さいほど、ＶＰＮゲートウエイ１０のＶＰＮ接続情報テーブル１０４中で制御コードを「非暗号／非復号」に変更するレコードの数を多くする。また例えば、ステップＳ９２では、サーバ２０のＣＰＵ負荷測定値が大きいほど、ＶＰＮ接続情報テーブル１０４中で制御コードを「暗号／復号」に変更するレコードの数を多くする。
【００７８】
また、以上では、図１に例示するリモートアクセスＶＰＮのシステム構成を有するＶＰＮ通信システムを例に説明した。図２に例示するＶＰＮゲートウエイ１０及びサーバ２０は、図１１に例示するような、拠点間ＶＰＮと呼ばれるＶＰＮ通信システムにおいても上述の説明と同様に機能する。図１１の例のＶＰＮ通信システムは、２つのＶＰＮゲートウエイ１０，１０´がインターネット４０を介して接続された構成を有する。また、ＶＰＮゲートウエイ１０，１０´には、それぞれ、イントラネットを介してサーバ２０，２０´が接続される。図１１の例のＶＰＮ通信システムにおいて、ＶＰＮゲートウエイ１０及びサーバ２０の組と、ＶＰＮゲートウエイ１０´及びサーバ２０´の組と、のいずれか一方、あるいは両方の組において、図２に例示するＶＰＮゲートウエイ１０及びサーバ２０の構成を有していてよい。
【００７９】
また、以上の例では、ＶＰＮゲートウエイ１０とクライアント３０との間の暗号化通信は、ＩＰＳｅｃに従って行われるが、例えばＳＳＬ（Secure Socket Layer）など、ＩＰＳｅｃの他の暗号化通信プロトコルに従って行ってもよい。ＩＰＳｅｃの他のプロトコルを用いる場合、ＶＰＮゲートウエイ１０、サーバ２０、及びクライアント３０において、ＩＰＳｅｃ回路１０２，２０２，３０２の代わりに、当該他のプロトコルに従って暗号化通信を行う手段を設けるとよい。この場合も、ＩＰＳｅｃを用いる上述の例のシステムと同様に、ＶＰＮゲートウエイ１０とサーバ２０との間で各クライアント３０に対応する秘密鍵を共有し、ＶＰＮゲートウエイ１０及びサーバ２０のいずれか一方においてクライアント３０との通信データの暗号化／復号処理を行うシステムが構成される。
【図面の簡単な説明】
【００８０】
【図１】ＶＰＮ通信システムの構成の一例を示すブロック図である。
【図２】ＶＰＮゲートウエイ及びサーバの内部構成の概略の例を示すブロック図である。
【図３】ＶＰＮ接続情報テーブルのデータ内容の例を示す図である。
【図４】クライアントの内部構成の概略の例を示すブロック図である。
【図５】コンピュータのハードウエア構成の概略の例を示すブロック図である。
【図６】本発明の１つの実施形態における暗号化通信の様子の例を示す図である。
【図７】秘密鍵の共有に関するＶＰＮ通信システムの動作の例を示すシーケンス図である。
【図８】クライアントからサーバへデータパケットを送信する場合のＶＰＮ通信システムの動作の例を示すシーケンス図である。
【図９】サーバからクライアントへデータパケットを送信する場合のＶＰＮ通信システムの動作の例を示すシーケンス図である。
【図１０】制御コード変更手段が行う処理の手順の例を示すフローチャートである。
【図１１】ＶＰＮ通信システムの構成の他の一例を示すブロック図である。
【符号の説明】
【００８１】
１０  ＶＰＮゲートウエイ、２０  サーバ、３０  クライアント、４０  インターネット、６０  ＣＰＵ、６２  メモリ、６４  Ｉ／Ｏインタフェース、６６  バス、６８  記憶装置、７０  通信部、１００  パケット転送部、１０２，２０２，３０２  ＩＰＳｅｃ回路、１０４，２０４  ＶＰＮ接続情報テーブル、１０６  ＣＰＵ負荷測定手段、１０８  制御コード変更手段、２００，３００  パケット送受信部、３０４  記憶部、１０２０，２０２０，３０２０  暗号化／復号手段。
【図１】
2010081108.tif 000003
【図２】
2010081108.tif 000004
【図３】
2010081108.tif 000005
【図４】
2010081108.tif 000006
【図５】
2010081108.tif 000007
【図６】
2010081108.tif 000008
【図７】
2010081108.tif 000009
【図８】
2010081108.tif 000010
【図９】
2010081108.tif 000011
【図１０】
2010081108.tif 000012
【図１１】
2010081108.tif 000013