(57)【要約】【課題】鍵交換処理の負荷を軽減する。【解決手段】各ＶＰＮ端末２０は、ネットワーク３０を介して接続されたＶＰＮ−ＤＮＳサーバ１０から、他のＶＰＮ端末２０の端末情報を取得する。そして、他のＶＰＮ端末２０のそれぞれに対応づけて、当該ＶＰＮ端末２０に対して自端末が送信する情報の暗号化に用いる送信用のセッション鍵を自端末の鍵ＤＢに登録する。さらに、各ＶＰＮ端末２０は、他のＶＰＮ端末２０のそれぞれに対応づけられた送信用のセッション鍵をＶＰＮ−ＤＮＳサーバ１０に送信する。その後、各ＶＰＮ端末２０は、他のＶＰＮ端末２０のそれぞれがＶＰＮ−ＤＮＳサーバ１０に送信したセッション鍵であって、自端末に対応づけられたセッション鍵を取得する。取得したセッション鍵は、対応する他のＶＰＮ端末２０から受信したデータの復号化に用いられる。【選択図】図１
2010081266.tif 000002
【特許請求の範囲】
【請求項１】
通信手段を介して接続された管理装置から、前記管理装置に接続された他の複数の情報処理装置に関する情報を取得する他装置情報取得手段と、
前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と自装置との間の暗号化通信に用いる鍵を記憶手段に登録する鍵登録手段と、
前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信する鍵送信手段と、
前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって自装置に対応づけられた鍵を前記管理装置から取得する鍵取得手段と、
を備え、
前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した鍵を、当該情報処理装置に対応づけて前記記憶手段に登録する、
ことを特徴とする情報処理装置。
【請求項２】
前記鍵登録手段は、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置に対して自装置が送信する情報の暗号化に用いる送信用鍵を記憶手段に登録する送信用鍵登録手段を備え、
前記鍵送信手段は、前記他の複数の情報処理装置それぞれに対応づけられた送信用鍵を前記管理装置に送信し、
前記鍵取得手段は、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した前記送信用鍵であって自装置に対応づけられた送信用鍵を前記管理装置から取得し、
前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した送信用鍵を、当該情報処理装置から自装置が受信する情報の復号化に用いる受信用鍵として当該情報処理装置に対応づけて前記記憶手段に登録する受信用鍵登録手段を備える、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記鍵登録手段は、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置から自装置が受信する情報の復号化に用いる受信用鍵を記憶手段に登録する受信用鍵登録手段を備え、
前記鍵送信手段は、前記他の複数の情報処理装置それぞれに対応づけられた前記受信用鍵を前記管理装置に送信し、
前記鍵取得手段は、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した前記受信用鍵であって自装置に対応づけられた受信用鍵を前記管理装置から取得し、
前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した受信用鍵を、当該情報処理装置に対して自装置が送信する情報の暗号化に用いる送信用鍵として当該情報処理装置に対応づけて前記記憶手段に登録する送信用鍵登録手段を備える、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記他の複数の情報処理装置のうちの１つに対して、この情報処理装置に対応づけて前記記憶手段に記憶された前記送信用鍵を用いて暗号化した情報を送信する暗号化情報送信手段、
をさらに備えることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記他の複数の情報処理装置のうちの１つから受信した情報を、この情報処理装置に対応づけて前記記憶手段に記憶された前記受信用鍵を用いて復号化する復号化手段、
をさらに備えることを特徴とする請求項２から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記管理装置に対して、自装置に関する情報を送信する自装置情報送信手段、
をさらに備えることを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記自装置情報送信手段は、前記自装置に関する情報に変更が生じた場合に、この変更後の情報を前記管理装置に対して送信する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
通信手段を介して接続された複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信する装置情報送信手段と、
前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得手段と、
前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信手段と、
を備えることを特徴とする管理装置。
【請求項９】
前記複数の情報処理装置のそれぞれから受信した当該情報処理装置に関する情報を記憶手段に登録する装置情報登録手段、をさらに備え、
前記装置情報送信手段が前記複数の情報処理装置のそれぞれに対して送信する前記他の情報処理装置に関する情報は、前記記憶手段から取得した情報である、
ことを特徴とする請求項８に記載の管理装置。
【請求項１０】
前記装置情報送信手段は、前記複数の情報処理装置に関する情報に変更が生じた場合に、変更後の情報を前記複数の情報処理装置のそれぞれに対して送信する、
ことを特徴とする請求項８又は９に記載の管理装置。
【請求項１１】
複数の情報処理装置と、前記複数の情報処理装置に通信手段を介して接続された管理装置と、を備え、
前記複数の情報処理装置のそれぞれにおいて、
自装置の他の前記複数の情報処理装置に関する情報を前記管理装置から取得する他装置情報取得手段と、
前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と自装置との間の暗号化通信に用いる鍵を記憶手段に登録する鍵登録手段と、
前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信する鍵送信手段と、
前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって自装置に対応づけられた鍵を前記管理装置から取得する鍵取得手段と、を備え、
前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した鍵を、当該情報処理装置に対応づけて前記記憶手段に登録し、
前記管理装置は、
前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信する装置情報送信手段と、
前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得手段と、
前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信手段と、を備える、
ことを特徴とする通信システム。
【請求項１２】
コンピュータに、
通信手段を介して接続された管理装置から、前記管理装置に接続された他の複数の情報処理装置に関する情報を取得するステップと、
前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と前記コンピュータとの間の暗号化通信に用いる鍵を記憶手段に登録するステップと、
前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信するステップと、
前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって前記コンピュータに対応づけられた鍵を前記管理装置から取得するステップと、
前記他の複数の情報処理装置のそれぞれについて取得した鍵を、当該情報処理装置に対応づけて前記記憶手段にさらに登録するステップと、
を実行させることを特徴とするプログラム。
【請求項１３】
通信手段を介して接続された複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信するステップと、
前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得ステップと、
前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、管理装置、通信システム、及びプログラムに関する。
【背景技術】
【０００２】
インターネットなどの通信手段による情報通信の安全性を確保するセキュリティ技術として、例えば、機器の認証やデータの暗号化を行うＳＳＬ（Secure Socket Layer）が知られている。ＳＳＬでは、サーバの認証、クライアントの認証、及び通信セッションの暗号化を行い、クライアントとサーバとの間の通信における成りすましや情報漏えいを防止する。また例えば、ＩＰ（Internet Protocol）層でのセキュリティ・プロトコルとして、インターネット技術の標準化組織であるＩＥＴＦ（Internet Engineering Task Force）が規定したＩＰｓｅｃ（Security Architecture for Internet Protocol）がある。
【０００３】
ＳＳＬ及びＩＰｓｅｃは、インターネットを経由して仮想的なプライベートネットワークを構築する技術であるインターネットＶＰＮ（Virtual Private Network）における暗号化プロトコルとして用いられる。
【０００４】
ＳＳＬ又はＩＰｓｅｃなどの暗号化プロトコルによって暗号化通信を行う場合、通信を開始する前に、通信相手同士で暗号通信に用いられるセッション鍵を共有する必要がある。セッション鍵の共有は、例えば、通信の送信側装置及び受信側装置の一方で生成されたセッション鍵を他方に受け渡すことで行われる。
【０００５】
ＳＳＬでは、通信セッションの確立時に、サーバ認証、クライアント認証、及び暗号鍵の交換が行われる。暗号鍵の交換の方法として、例えば、ＲＳＡ（Rivest Shamir Adleman）鍵交換又はDiffie-Hellman鍵交換などのアルゴリズムが用いられる。セッション確立時のこれらの認証処理は、暗号鍵の交換後のデータの暗号化処理と比較して処理負荷が大きい。したがって、一旦、セッションを確立した後は、サーバとクライアントとの間でセッションＩＤ（識別子）を共有し、セッションＩＤの有効期間内は当該セッションＩＤのセッション鍵を用いて暗号化通信を行うことが一般的である。
【０００６】
ＩＰＳｅｃでは、暗号化データの通信を開始する前に、ＩＫＥ（Internet Key Exchange）プロトコルによって、通信で用いる暗号化方式の決定及び暗号鍵の交換を行い、ＳＡ（Security Association）と呼ばれるコネクションを確立する。
【０００７】
また、通信端末における鍵交換処理の負荷を軽減する技術として、例えば、特許文献１には、端末装置が通信相手側端末装置と暗号通信を行う場合に、鍵交換代行サーバが端末装置の代わりに通信相手側端末装置との鍵交換処理を行う技術が開示されている。
【０００８】
【特許文献１】特開２００３−１７９５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、暗号化通信を行う２つの情報処理装置間で鍵交換処理を行って通信セッションを確立して複数の装置が互いに暗号化通信を行う場合、これらの装置のうちの２つを含む組のすべてにおいて、それぞれ鍵交換処理を行う必要がある。例えば、Ｎ台の装置をメッシュ接続して互いに暗号化通信させる場合、１台の装置は他のＮ−１台の装置それぞれと鍵交換処理を行い、全体として（Ｎ−１）Ｎ／２回の鍵交換処理が行われる。この場合、Ｎの値が増加すると、全体としてＯ（Ｎ２）のオーダで鍵交換処理の回数が増加する。
【００１０】
本発明の目的は、複数の情報処理装置が互いに暗号化通信を行う場合に、各装置が他のすべての装置のそれぞれとの間で鍵交換のための処理を行う場合と比較してより小さい処理負荷によって各装置間の共有鍵の交換を実現することである。
【課題を解決するための手段】
【００１１】
請求項１に係る発明は、通信手段を介して接続された管理装置から、前記管理装置に接続された他の複数の情報処理装置に関する情報を取得する他装置情報取得手段と、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と自装置との間の暗号化通信に用いる鍵を記憶手段に登録する鍵登録手段と、前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信する鍵送信手段と、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって自装置に対応づけられた鍵を前記管理装置から取得する鍵取得手段と、を備え、前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した鍵を、当該情報処理装置に対応づけて前記記憶手段に登録する、ことを特徴とする情報処理装置である。
【００１２】
請求項２に係る発明は、請求項１に係る発明において、前記鍵登録手段は、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置に対して自装置が送信する情報の暗号化に用いる送信用鍵を記憶手段に登録する送信用鍵登録手段を備え、前記鍵送信手段は、前記他の複数の情報処理装置それぞれに対応づけられた送信用鍵を前記管理装置に送信し、前記鍵取得手段は、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した前記送信用鍵であって自装置に対応づけられた送信用鍵を前記管理装置から取得し、前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した送信用鍵を、当該情報処理装置から自装置が受信する情報の復号化に用いる受信用鍵として当該情報処理装置に対応づけて前記記憶手段に登録する受信用鍵登録手段を備える。
【００１３】
請求項３に係る発明は、請求項１に係る発明において、前記鍵登録手段は、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置から自装置が受信する情報の復号化に用いる受信用鍵を記憶手段に登録する受信用鍵登録手段を備え、前記鍵送信手段は、前記他の複数の情報処理装置それぞれに対応づけられた前記受信用鍵を前記管理装置に送信し、前記鍵取得手段は、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した前記受信用鍵であって自装置に対応づけられた受信用鍵を前記管理装置から取得し、前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した受信用鍵を、当該情報処理装置に対して自装置が送信する情報の暗号化に用いる送信用鍵として当該情報処理装置に対応づけて前記記憶手段に登録する送信用鍵登録手段を備える。
【００１４】
請求項４に係る発明は、請求項２又は３に係る発明において、前記他の複数の情報処理装置のうちの１つに対して、この情報処理装置に対応づけて前記記憶手段に記憶された前記送信用鍵を用いて暗号化した情報を送信する暗号化情報送信手段、をさらに備える。
【００１５】
請求項５に係る発明は、請求項２から４のいずれか１項に係る発明において、前記他の複数の情報処理装置のうちの１つから受信した情報を、この情報処理装置に対応づけて前記記憶手段に記憶された前記受信用鍵を用いて復号化する復号化手段、をさらに備える。
【００１６】
請求項６に係る発明は、請求項１から５のいずれか１項に係る発明において、前記管理装置に対して、自装置に関する情報を送信する自装置情報送信手段、をさらに備える。
【００１７】
請求項７に係る発明は、請求項６に係る発明において、前記自装置情報送信手段は、前記自装置に関する情報に変更が生じた場合に、この変更後の情報を前記管理装置に対して送信する。
【００１８】
請求項８に係る発明は、通信手段を介して接続された複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信する装置情報送信手段と、前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得手段と、前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信手段と、を備えることを特徴とする管理装置である。
【００１９】
請求項９に係る発明は、請求項８に係る発明において、前記複数の情報処理装置のそれぞれから受信した当該情報処理装置に関する情報を記憶手段に登録する装置情報登録手段、をさらに備え、前記装置情報送信手段が前記複数の情報処理装置のそれぞれに対して送信する前記他の情報処理装置に関する情報は、前記記憶手段から取得した情報である。
【００２０】
請求項１０に係る発明は、請求項８又は９に係る発明において、前記装置情報送信手段は、前記複数の情報処理装置に関する情報に変更が生じた場合に、変更後の情報を前記複数の情報処理装置のそれぞれに対して送信する。
【００２１】
請求項１１に係る発明は、複数の情報処理装置と、前記複数の情報処理装置に通信手段を介して接続された管理装置と、を備え、前記複数の情報処理装置のそれぞれにおいて、自装置の他の前記複数の情報処理装置に関する情報を前記管理装置から取得する他装置情報取得手段と、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と自装置との間の暗号化通信に用いる鍵を記憶手段に登録する鍵登録手段と、前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信する鍵送信手段と、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって自装置に対応づけられた鍵を前記管理装置から取得する鍵取得手段と、を備え、前記鍵登録手段は、さらに、前記他の複数の情報処理装置のそれぞれについて前記鍵取得手段で取得した鍵を、当該情報処理装置に対応づけて前記記憶手段に登録し、前記管理装置は、前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信する装置情報送信手段と、前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得手段と、前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信手段と、を備える、ことを特徴とする通信システムである。
【００２２】
請求項１２に係る発明は、コンピュータに、通信手段を介して接続された管理装置から、前記管理装置に接続された他の複数の情報処理装置に関する情報を取得するステップと、前記他の複数の情報処理装置それぞれに対応づけて、当該情報処理装置と前記コンピュータとの間の暗号化通信に用いる鍵を記憶手段に登録するステップと、前記他の複数の情報処理装置それぞれに対応づけられた鍵を前記管理装置に送信するステップと、前記他の複数の情報処理装置のそれぞれが前記管理装置に送信した鍵であって前記コンピュータに対応づけられた鍵を前記管理装置から取得するステップと、前記他の複数の情報処理装置のそれぞれについて取得した鍵を、当該情報処理装置に対応づけて前記記憶手段にさらに登録するステップと、を実行させることを特徴とするプログラムである。
【００２３】
請求項１３に係る発明は、通信手段を介して接続された複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置に関する情報を送信するステップと、前記複数の情報処理装置のそれぞれから、当該情報処理装置の他の複数の情報処理装置それぞれとの間の暗号化通信に用いる鍵を取得する鍵取得ステップと、前記複数の情報処理装置のそれぞれに対して、当該情報処理装置の他の情報処理装置のそれぞれが当該情報処理装置との間の暗号化通信に用いる鍵を送信する鍵送信ステップと、をコンピュータに実行させることを特徴とするプログラムである。
【発明の効果】
【００２４】
請求項１、８、１１、１２又は１３に係る発明によると、各情報処理装置が他のすべての情報処理装置のそれぞれとの間で鍵交換のための処理を行う場合と比較してより小さい処理負荷により各情報処理装置間の共有鍵の交換を実現できる。
【００２５】
請求項２に係る発明によると、各情報処理装置が他の情報処理装置に対して送信する情報の暗号化に用いる送信用鍵を各情報処理装置の間で交換できる。
【００２６】
請求項３に係る発明によると、各情報処理装置が他の情報処理装置から受信する情報の復号化に用いる受信用鍵を各情報処理装置の間で交換できる。
【００２７】
請求項４に係る発明によると、送信先の情報処理装置に対応する鍵を用いて暗号化した情報を送信できる。
【００２８】
請求項５に係る発明によると、送信元の情報処理装置が情報の暗号化に用いた鍵によって受信した情報を復号化できる。
【００２９】
請求項６に係る発明によると、各情報処理装置が管理装置に対して自装置に関する情報を送信できる。
【００３０】
請求項７に係る発明によると、各情報処理装置が自装置に関する情報の変更を管理装置に対して通知できる。
【００３１】
請求項９に係る発明によると、各情報処理装置から受信した情報をその情報処理装置に関する情報として他の情報処理装置に対して送信できる。
【００３２】
請求項１０に係る発明によると、ある情報処理装置に関する情報の変更を他の情報処理装置に対して通知できる。
【発明を実施するための最良の形態】
【００３３】
図１は、ＶＰＮシステムの構成例を示す図である。ＶＰＮシステムは、インターネットなどのネットワーク３０を介して接続されたＶＰＮ−ＤＮＳ（Domain Name System）サーバ１０とＶＰＮ端末２０−１，２０−２，…，２０−Ｎ（以下、総称して「ＶＰＮ端末２０」とも呼ぶ）とから構成される。各ＶＰＮ端末２０は、ネットワーク３０を介して他の各ＶＰＮ端末２０と暗号化通信を行う。ＶＰＮ−ＤＮＳサーバ１０は、ＶＰＮ端末２０を管理するサーバであり、各ＶＰＮ端末２０間の暗号化通信における共有鍵の交換を仲介する。
【００３４】
図２に、ＶＰＮ端末２０の内部構成の概略の例を示す。図２を参照し、ＶＰＮ端末２０は、ＮＩＦ（ネットワーク・インタフェース）２００、基本情報記憶手段２１０、鍵ＤＢ（データベース）２２０、及び通信アプリケーション２３０を備える。
【００３５】
ＮＩＦ２００は、他の装置とのネットワーク３０を介した通信のためのインタフェースである。ＮＩＦ２００は、自端末情報登録処理手段２０２、鍵登録処理手段２０４、鍵取得処理手段２０６、及び通信処理手段２０８を備える。
【００３６】
自端末情報登録処理手段２０２は、各ＶＰＮ端末２０自身に関する情報である自端末情報をＶＰＮ−ＤＮＳサーバ１０に登録する処理を行う。自端末情報は、例えば、当該ＶＰＮ端末２０の端末ＩＤ（識別子）、当該ＶＰＮ端末２０のグローバルＩＰ（ネットワーク３０において固有のＩＰアドレス）、及び当該ＶＰＮ端末２０のＦＱＤＮ（Fully Qualified Domain Name）を含む。自端末情報登録処理手段２０２は、基本情報記憶手段２１０から自端末情報を取得してＶＰＮ−ＤＮＳサーバ１０に対して送信する。
【００３７】
鍵登録処理手段２０４は、当該ＶＰＮ端末２０が他の各ＶＰＮ端末２０に対して割り当てるセッション鍵をＶＰＮ−ＤＮＳサーバ１０に登録する処理を行う。鍵登録処理手段２０４は、ＶＰＮ−ＤＮＳサーバ１０に登録された他の各ＶＰＮ端末２０の端末情報のリストをＶＰＮ−ＤＮＳサーバ１０から取得し、取得したリスト中の各ＶＰＮ端末２０に対してセッション鍵を割り当てる。そして、各ＶＰＮ端末２０の端末ＩＤと各ＶＰＮ端末２０に割り当てたセッション鍵とを対応づけてＶＰＮ−ＤＮＳサーバ１０に送信する。鍵登録処理手段２０４は、さらに、他の各ＶＰＮ端末２０の端末ＩＤと割り当てたセッション鍵との組を鍵ＤＢ２２０に登録する。鍵登録処理手段２０４が他の各ＶＰＮ端末２０に対して割り当てたセッション鍵は、自端末が他の各ＶＰＮ端末２０に対して送信するデータの暗号化に用いられる。
【００３８】
鍵取得処理手段２０６は、他の各ＶＰＮ端末２０が自端末に対して割り当ててＶＰＮ−ＤＮＳサーバ１０に登録したセッション鍵をＶＰＮ−ＤＮＳサーバ１０から取得する処理を行う。鍵取得処理手段２０６は、例えば、他の各ＶＰＮ端末２０の端末ＩＤとそのＶＰＮ端末２０が自端末に対して割り当てたセッション鍵との組をＶＰＮ−ＤＮＳサーバ１０から取得して鍵ＤＢ２２０に登録する。鍵取得処理手段２０６が取得したセッション鍵は、対応するＶＰＮ端末２０から自端末が受信したデータの復号化に用いられる。
【００３９】
通信処理手段２０８は、他の各ＶＰＮ端末２０との間の暗号化通信に関する処理を行う。通信処理手段２０８は、暗号化手段２０８０及び復号化手段２０８２を備える。暗号化手段２０８０は、当該ＶＰＮ端末２０から他の各ＶＰＮ端末２０へデータを送信するときに、送信先のＶＰＮ端末２０に対して鍵登録処理手段２０４が割り当てたセッション鍵を鍵ＤＢ２２０から取得し、取得したセッション鍵を用いて送信データを暗号化する。復号化手段２０８２は、他のＶＰＮ端末２０から暗号化されたデータを受信したときに、送信元のＶＰＮ端末２０が自端末に割り当てたセッション鍵を鍵ＤＢ２２０から取得し、取得したセッション鍵を用いて受信データを復号化する。
【００４０】
基本情報記憶手段２１０は、当該ＶＰＮ端末２０に関する情報及びＶＰＮ−ＤＮＳサーバ１０に関する情報を記憶する。基本情報記憶手段２１０は、例えば、上述の自端末情報、証明書関連情報、及びＶＰＮ−ＤＮＳサーバ１０のグローバルＩＰを記憶する。証明書関連情報は、例えば、公開鍵暗号方式（Public Key Infrastructure，ＰＫＩ）の枠組みにおける認証局が当該ＶＰＮ端末２０に対して発行した証明書に関する情報である。証明書関連情報は例えば、当該ＶＰＮ端末に対して認証局が発行した端末証明書、この端末証明書に対応する秘密鍵、及びこの端末証明書を発行した認証局の証明書を含む。なお、端末証明書にはシステム内で一意なＩＤが付与されるため、この端末証明書のＩＤを上述の端末ＩＤとして用いてもよい。
【００４１】
鍵ＤＢ２２０は、他の各ＶＰＮ端末２０との間の暗号化通信で用いるセッション鍵を記憶するデータベースである。図３に、鍵ＤＢ２２０のデータ内容の一例を示す。図３（ａ）は、ＶＰＮ端末２０−１の鍵ＤＢ２２０のデータ内容の例を示し、図３（ｂ）は、ＶＰＮ端末２０−２の鍵ＤＢ２２０のデータ内容の例を示す。図３（ａ），（ｂ）の各表の１行は、１つのＶＰＮ端末２０に対応するレコードを表す。各レコードは、端末ＩＤ、送信鍵、受信鍵、グローバルＩＰ、及びＦＱＤＮの項目を含む。図３（ａ）を参照し、ＶＰＮ端末２０−１の鍵ＤＢ２２０は、他のＶＰＮ端末２０−２，２０−３，…，２０−Ｎのそれぞれに対応するレコードを備える。また、図３（ｂ）を参照し、ＶＰＮ端末２０−２の鍵ＤＢ２２０は、他のＶＰＮ端末２０−１，２０−３，…，２０−Ｎのそれぞれに対応するレコードを備える。鍵登録処理手段２０４がＶＰＮ−ＤＮＳサーバ１０から他の各ＶＰＮ端末２０の端末情報のリストを取得すると、鍵登録処理手段２０４は、取得したリスト中の各ＶＰＮ端末２０に対応する鍵ＤＢ２２０のレコードを生成する。各レコードの端末ＩＤ、グローバルＩＰ、及びＦＱＤＮの各項目の値は、取得された端末情報のリストに含まれる値に設定される。送信鍵の項目には、自端末の鍵登録処理手段２０４が他の各ＶＰＮ端末２０に対して割り当てたセッション鍵が登録される。送信鍵として登録されたセッション鍵を用いて、対応するＶＰＮ端末２０に対して送信されるデータの暗号化が行われる。また、受信鍵の項目には、他の各ＶＰＮ端末２０が自端末に対して割り当てたセッション鍵が登録される。受信鍵として登録されるセッション鍵は、鍵取得処理手段２０６がＶＰＮ−ＤＮＳサーバ１０から取得して鍵ＤＢ２２０の対応する各レコードに登録する。受信鍵として登録されたセッション鍵を用いて、対応するＶＰＮ端末２０から受信した暗号化データの復号化が行われる。
【００４２】
再び図２を参照し、通信アプリケーション２３０は、ネットワーク３０を介して当該ＶＰＮ端末２０と接続された装置と通信を行うソフトウエアである。通信アプリケーション２３０は、ＮＩＦ２００を介して他の装置との間のデータの送受信を行う。例えば、通信アプリケーション２３０は、当該ＶＰＮ端末２０から他のＶＰＮ端末２０へ送信するデータを生成してＮＩＦ２００に渡す。ＮＩＦ２００の通信処理手段２０８は、通信アプリケーション２３０から受け取ったデータを暗号化手段２０８０により暗号化してネットワーク３０へ送出する。また例えば、通信アプリケーション２３０は、ＮＩＦ２００が他のＶＰＮ端末２０から受信したデータであって通信処理手段２０８の復号化手段２０８２で復号化されたデータを通信処理手段２０８から受け取る。
【００４３】
次に、図４を参照し、ＶＰＮ−ＤＮＳサーバ１０について説明する。図４は、ＶＰＮ−ＤＮＳサーバ１０の内部構成の概略の例を示すブロック図である。図４を参照し、ＶＰＮ−ＤＮＳサーバ１０は、受信手段１００、送信手段１１０、制御手段１２０、端末情報登録手段１３０、鍵処理手段１４０、端末情報ＤＢ１５０、鍵テーブル記憶手段１６０、及び証明書関連情報記憶手段１７０を備える。
【００４４】
受信手段１００は、例えばＶＰＮ端末２０などの装置からネットワーク３０を介してＶＰＮ−ＤＮＳサーバ１０宛に送られてくるデータを受信する。受信手段１００は、受信したデータを制御手段１２０に渡す。
【００４５】
送信手段１１０は、制御手段１２０からの指示に従って、例えばＶＰＮ端末２０などの装置に対してネットワーク３０を介してデータを送信する。
【００４６】
制御手段１２０は、ＶＰＮ−ＤＮＳサーバ１０が備える各手段における処理を制御する。例えば、制御手段１２０は、受信手段１００が受信したデータを受信手段１００から受け取り、受け取ったデータの内容に応じて、端末情報登録手段１３０及び鍵処理手段１４０を制御して処理を実行させ、その処理結果のデータを取得して送信手段１１０により送信する。
【００４７】
端末情報登録手段１３０は、各ＶＰＮ端末２０からネットワーク３０を介して送られてくる端末情報を端末情報ＤＢ１５０に登録する処理を行う。
【００４８】
端末情報ＤＢ１５０は、各ＶＰＮ端末２０に関する情報を記憶するデータベースである。図５に、端末情報ＤＢ１５０のデータ内容の例を示す。図５の例の表の１行は、１つのＶＰＮ端末に対応するレコードである。図５の例の各レコードは、端末ＩＤ、端末証明書、グローバルＩＰ、及びＦＱＤＮの各項目を含む。
【００４９】
図４の説明に戻り、鍵処理手段１４０は、各ＶＰＮ端末２０の間の暗号化通信で用いられるセッション鍵に関する処理を行う。鍵処理手段１４０は、鍵登録手段１４２及び鍵送信手段１４４を備える。鍵登録手段１４２は、受信手段１００及び制御手段１２０を介して、各ＶＰＮ端末２０が他のＶＰＮ端末２０に対して割り当てたセッション鍵を取得し、取得したセッション鍵を鍵テーブル記憶手段１６０に登録する。鍵送信手段１４４は、各ＶＰＮ端末２０からの鍵取得要求に応じて、要求元のＶＰＮ端末２０に対して他の各ＶＰＮ端末２０が割り当てたセッション鍵のリストを鍵テーブル記憶手段１６０から取得し、取得したセッション鍵のリストを制御手段１２０に渡すことで、要求元のＶＰＮ端末２０に送信する。
【００５０】
鍵テーブル記憶手段１６０は、各ＶＰＮ端末２０が互いに割り当てたセッション鍵を表す鍵テーブルを記憶する。図６に、鍵テーブル記憶手段１６０に記憶される鍵テーブルの例を示す。図６の例の鍵テーブルでは、各行と各列とが交差する欄に、当該行の端末ＩＤのＶＰＮ端末２０が当該列の端末ＩＤのＶＰＮ端末２０に対して割り当てたセッション鍵を示す。例えば、端末ＩＤ「001」の行と端末ＩＤ「002」の列とが交差する欄の値「K12」は、端末ＩＤ「001」のＶＰＮ端末２０−１が端末ＩＤ「002」のＶＰＮ端末２０−２に対して割り当てたセッション鍵を示す。セッション鍵「K12」は、ＶＰＮ端末２０−１からＶＰＮ端末２０−２への送信データの暗号化に用いられる。また例えば、端末ＩＤ「002」の行と端末ＩＤ「001」の列とが交差する欄の値「K21」は、ＶＰＮ端末２０−２がＶＰＮ端末２０−１に対して割り当てたセッション鍵を示す。セッション鍵「K21」は、ＶＰＮ端末２０−２からＶＰＮ端末２０−１への送信データの暗号化に用いられる。
【００５１】
鍵登録手段１４２は、ＶＰＮ端末２０からの鍵登録要求に応じて、要求元のＶＰＮ端末２０が他の各ＶＰＮ端末２０に対して割り当てたセッション鍵を鍵テーブル記憶手段１６０中の鍵テーブルに登録する。例えば、図６の例の表において、要求元のＶＰＮ端末２０の端末ＩＤに対応する行のデータ内容を登録する。鍵送信手段１４４は、あるＶＰＮ端末２０の鍵取得要求に応じて、要求元のＶＰＮ端末２０に対して他の各ＶＰＮ端末２０が割り当てたセッション鍵のリストを鍵テーブル記憶手段１６０中の鍵テーブルから取得して要求元のＶＰＮ端末２０に対して送信する。例えば、図６の例の表において、要求元のＶＰＮ端末２０の端末ＩＤに対応する列のデータ内容を取得して送信する。
【００５２】
証明書関連情報記憶手段１７０は、認証局がＶＰＮ−ＤＮＳサーバ１０に対して発行した証明書に関する証明書関連情報を記憶する。証明書関連情報は、例えば、認証局が発行したＶＰＮ−ＤＮＳサーバ１０のサーバ証明書、このサーバ証明書に対応する秘密鍵、及び認証局の証明書を含む。
【００５３】
以上、ＶＰＮシステムの構成の例を説明した。以下、ＶＰＮシステムの動作の例を説明する。
【００５４】
図７は、ＶＰＮシステムにおける各ＶＰＮ端末間の暗号化通信が開始されるまでの処理の手順の例を示すフローチャートである。図７の例の手順の処理は、例えば、ＶＰＮシステムを構築するときの初期設定処理として行われる。
【００５５】
図７を参照し、まず、各ＶＰＮ端末２０がＶＰＮ−ＤＮＳサーバ１０に自端末の端末情報を登録する（ステップＳ１）。ステップＳ１の処理により、ＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０に例えば図５の例の内容のデータが格納される。
【００５６】
次に、各ＶＰＮ端末２０は、ＶＰＮ−ＤＮＳサーバ１０から他のＶＰＮ端末２０の端末情報のリストを取得し、取得したリスト中の各ＶＰＮ端末２０に対してセッション鍵を割り当てる。そして、他の各ＶＰＮ端末２０に対して割り当てたセッション鍵をＶＰＮ−ＤＮＳサーバ１０に登録する（ステップＳ２）。ステップＳ２の処理により、ＶＰＮ−ＤＮＳサーバ１０の鍵テーブル記憶手段１６０に例えば図６に例示する鍵テーブルが格納される。また、各ＶＰＮ端末２０の鍵ＤＢ２２０には、例えば、図３の例の表の各レコードが登録され、各レコードの端末ＩＤ、送信鍵、グローバルＩＰ、及びＦＱＤＮの値が設定される。なお、この時点では、図３の例の表の各レコードの受信鍵の項目の値は未だ設定されていない。
【００５７】
ステップＳ２の後、各ＶＰＮ端末２０は、他のＶＰＮ端末２０が自端末に割り当てたセッション鍵をＶＰＮ−ＤＮＳサーバ１０から取得する（ステップＳ３）。ステップＳ３の処理により、各ＶＰＮ端末２０の鍵ＤＢ２２０において、例えば、図３に例示する表の各レコードの受信鍵の項目に値が設定される。
【００５８】
ステップＳ１〜Ｓ３の処理によって、ＶＰＮ−ＤＮＳサーバ１０に接続されるＶＰＮ端末２０−１，２０−２，…，２０−Ｎの情報がＶＰＮ−ＤＮＳサーバ１０に登録されるとともに、各ＶＰＮ端末２０と他のＶＰＮ端末２０それぞれとの間で、通信に用いるセッション鍵の交換が実現される。
【００５９】
その後、ＶＰＮ端末２０間の暗号化通信が開始される（ステップＳ４）。
【００６０】
以下、図８〜図１０を参照し、図７の例の手順のステップＳ１（端末情報登録処理）、ステップＳ２（鍵登録処理）、及びステップＳ３（鍵取得処理）の各処理の詳細手順の例を説明する。
【００６１】
図８は、図７のステップＳ１（端末情報登録処理）の詳細手順の例を示す図である。端末情報登録処理は、ＶＰＮ端末２０のＮＩＦ２００の自端末情報登録処理手段２０２及びＶＰＮ−ＤＮＳサーバ１０の端末情報登録手段１３０が主に担当する。図８を参照し、まず、ＶＰＮ端末２０の自端末情報登録処理手段２０２は、基本情報記憶手段２１０から読み出した自端末の端末証明書とともに、端末情報登録を要求する旨を表す情報をＶＰＮ−ＤＮＳサーバ１０に対して送信する（ステップＳ１０）。この端末証明書を含む端末情報登録要求を受信したＶＰＮ−ＤＮＳサーバ１０の受信手段１００は、受信した端末情報登録要求を制御手段１２０に渡し、制御手段１２０は、受け取った要求中の端末証明書を端末情報登録手段１３０に渡す。端末情報登録手段１３０は、証明書関連情報記憶手段１７０中の認証局の証明書を用いて、受け取った端末証明書を検証する（ステップＳ１２）。検証に成功したら、端末情報登録手段１３０は、制御手段１２０及び送信手段１１０を介して、証明書関連情報記憶手段１７０から取得したサーバ証明書を要求元のＶＰＮ端末２０に対して送信する（ステップＳ１４）。なお、検証に失敗したら、端末情報登録手段１３０は、端末証明書の検証に失敗した旨を制御手段１２０に通知する。この通知を受けた制御手段１２０は、送信手段１１０を介して、検証の失敗を表す情報を要求元のＶＰＮ端末２０に返し、処理は終了する。
【００６２】
ＶＰＮ−ＤＮＳサーバ１０からサーバ証明書を受け取ると、ＶＰＮ端末２０の自端末情報登録処理手段２０２は、基本情報記憶手段２１０に記憶された認証局の証明書を用いて、受け取ったサーバ証明書を検証する（ステップＳ１６）。サーバ証明書の検証に成功すると、自端末情報登録処理手段２０２は、基本情報記憶手段２１０から読み出した自端末の端末情報をＶＰＮ−ＤＮＳサーバ１０の公開鍵で暗号化した上で、ＶＰＮ−ＤＮＳサーバ１０に対して送信する（ステップＳ１８）。ステップＳ１８で送信される端末情報は、例えば、そのＶＰＮ端末２０の端末ＩＤ、グローバルＩＰ、及びＦＱＤＮを含む。なお、検証に失敗したら、自端末情報登録処理手段２０２は、端末情報を送信することなく、サーバ証明書の検証に失敗した旨を表す情報をＶＰＮ−ＤＮＳサーバ１０に送信し、処理を終了する。
【００６３】
暗号化された端末情報をＶＰＮ端末２０から受信したＶＰＮ−ＤＮＳサーバ１０において、端末情報登録手段１３０は、受信手段１００及び制御手段１２０を介して受け取った端末情報を、証明書関連情報中のＶＰＮ−ＤＮＳサーバ１０のサーバ証明書に対応する秘密鍵を用いて復号化する。そして、端末情報ＤＢ１５０において要求元のＶＰＮ端末２０に対応するレコードを生成する（図５参照）。生成したレコード中の端末ＩＤ、グローバルＩＰ、及びＦＱＤＮの項目には、そのＶＰＮ端末２０から受信した端末情報に含まれる各項目の値を登録する。また、当該レコード中の証明書の項目には、ステップＳ１０で受信した端末証明書を登録する（以上、ステップＳ１９）。ステップＳ１９が終了すると、図８の例の手順の端末情報登録処理は終了する。
【００６４】
なお、ＶＰＮ−ＤＮＳサーバ１０は、例えば、登録するＶＰＮ端末２０のリストを予め取得しておき、図８の例の手順の処理において、端末証明書の検証が成功し、かつ、予め取得しておいたリスト中に要求元端末の端末ＩＤが含まれる場合にのみ、そのＶＰＮ端末２０から受信した端末情報を端末情報ＤＢ１５０に登録してもよい。登録するＶＰＮ端末２０のリストは、例えば、認証局が証明書を発行したＶＰＮ端末２０のリストを認証局から取得する。
【００６５】
ＶＰＮ端末２０−１，２０−２，…，２０−ＮのそれぞれがＶＰＮ−ＤＮＳサーバ１０との間で図８の例の手順の端末情報登録処理を行うことで、ＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０には、Ｎ台のＶＰＮ端末２０の端末情報が登録される。
【００６６】
次に、図９を参照し、図７のステップＳ２の鍵登録処理の詳細手順の例を説明する。図９に例示する手順の鍵登録処理は、ＶＰＮ端末２０の鍵登録処理手段２０４及びＶＰＮ−ＤＮＳサーバ１０の鍵処理手段１４０の鍵登録手段１４２が主に担当する。図９を参照し、まず、ＶＰＮ端末２０のＮＩＦ２００の鍵登録処理手段２０４は、鍵登録処理の開始を要求する鍵登録処理要求をＶＰＮ−ＤＮＳサーバ１０に対して送信する（ステップＳ２０）。この要求に応じて、ＶＰＮ−ＤＮＳサーバ１０と要求元のＶＰＮ端末２０との間で共有鍵の交換が行われる（ステップＳ２２）。ステップＳ２２の鍵交換処理は、例えば、ＲＳＡ鍵交換又はDiffie-Hellman鍵交換などの鍵交換アルゴリズムに従って行われる。
【００６７】
共有鍵の交換が終了すると、ＶＰＮ−ＤＮＳサーバ１０の鍵処理手段１４０の鍵登録手段１４２は、端末情報ＤＢ１５０に登録された端末情報のうち、要求元のＶＰＮ端末２０の他のＶＰＮ端末２０の端末情報を端末情報ＤＢ１５０から取得する。そして、取得した端末情報のリストを、ステップＳ２２で交換した共有鍵を用いて暗号化した上で、制御手段１２０及び送信手段１１０を介して要求元のＶＰＮ端末２０に対して送信する（以上、ステップＳ２４）。例えば、ＶＰＮ端末２０−１が要求元である場合、ステップＳ２４では、ＶＰＮ端末２０−２，…，２０−Ｎの端末情報のリストが送信される。
【００６８】
暗号化された端末情報のリストをＶＰＮ−ＤＮＳサーバ１０から受け取ったＶＰＮ端末２０において、鍵登録処理手段２０４は、ステップＳ２２で交換した共有鍵を用いて受け取った端末情報のリストを復号化する。次に、鍵登録処理手段２０４は、受け取ったリスト中の各ＶＰＮ端末２０に対応するレコードを鍵ＤＢ２２０において生成する。ＶＰＮ端末２０−１が要求元である上記の例の場合、図３（ａ）の例の表に示すように、ＶＰＮ端末２０−２，…，２０−Ｎのそれぞれに対応する端末ＩＤ「002」，…，「N」のレコードが鍵ＤＢ２２０において生成される。また、生成した各レコードにおいて、端末ＩＤ、グローバルＩＰ、及びＦＱＤＮの項目に、ＶＰＮ−ＤＮＳサーバ１０から受け取ったリスト中の端末情報で表される各項目の値を登録する。そして、鍵登録処理手段２０４は、鍵ＤＢ２２０に登録した各ＶＰＮ端末２０に対して割り当てるセッション鍵を生成し、生成したセッション鍵を各ＶＰＮ端末２０に対応するレコードの送信鍵の項目に登録する。さらに、鍵登録処理手段２０４は、鍵ＤＢ２２０に登録した各ＶＰＮ端末２０の端末ＩＤと、当該ＶＰＮ端末２０に割り当てたセッション鍵と、を対応づけたセッション鍵のリストを生成し、生成したセッション鍵のリストを上述の共有鍵で暗号化した上でＶＰＮ−ＤＮＳサーバ１０に対して送信する（以上、ステップＳ２６）。ＶＰＮ端末２０−１を要求元とする上記の例では、ステップＳ２６で、ＶＰＮ端末２０−１がＶＰＮ端末２０−２，…，２０−Ｎに対して割り当てたセッション鍵のリスト｛K12, K13, …, K1N｝が各セッション鍵に対応する端末ＩＤとともに送信される。
【００６９】
ＶＰＮ−ＤＮＳサーバ１０の鍵処理手段１４０の鍵登録手段１４２は、受信手段１００及び制御手段１２０を介してＶＰＮ端末２０から送信されたセッション鍵のリストを受け取ると、このリストを上述の共有鍵を用いて復号化する。そして、受け取ったリスト中のセッション鍵を鍵テーブル記憶手段１６０中の鍵テーブルに登録する。例えば、図６に例示する鍵テーブルが鍵テーブル記憶手段１６０に記憶されている場合、図６の例の表において、要求元のＶＰＮ端末２０の端末ＩＤに対応する行にリスト中の各セッション鍵を登録する。
【００７０】
ＶＰＮ−ＤＮＳサーバ１０において鍵テーブルへのセッション鍵の登録が終了すると、図９の例の手順の処理は終了する。
【００７１】
ＶＰＮ端末２０−１，２０−２，…，２０−ＮのそれぞれがＶＰＮ−ＤＮＳサーバ１０との間で図９の例の手順の鍵登録処理を行うことで、ＶＰＮ−ＤＮＳサーバ１０の鍵テーブルが構成される。
【００７２】
以下、図１０を参照し、図７のステップＳ３の鍵取得処理の詳細手順の例を説明する。図１０に例示する手順の鍵取得処理は、ＶＰＮ端末２０の鍵取得処理手段２０６及びＶＰＮ−ＤＮＳサーバ１０の鍵処理手段１４０の鍵送信手段１４４が主に担当する。図１０を参照し、まず、ＶＰＮ端末２０のＮＩＦ２００の鍵取得処理手段２０６は、ＶＰＮ−ＤＮＳサーバ１０に対して、他のＶＰＮ端末２０が自端末に対して割り当てたセッション鍵の送信を要求する（ステップＳ３０）。
【００７３】
この要求を受信したＶＰＮ−ＤＮＳサーバ１０の受信手段１００は、受信した要求を制御手段１２０に渡し、制御手段１２０は、鍵処理手段１４０の鍵送信手段１４４に対して、セッション鍵の送信処理を指示する。鍵送信手段１４４は、鍵テーブル記憶手段１６０を参照し、要求元のＶＰＮ端末２０に対して他のＶＰＮ端末２０が割り当てたセッション鍵のリストを取得する。例えば、図６の例の表の鍵テーブルが鍵テーブル記憶手段１６０中に記憶されている場合に、ＶＰＮ端末２０−１からセッション鍵の送信要求を受信したときには、図６の例の表において端末ＩＤ「001」の列のデータ内容を取得する。そして、鍵送信手段１４４は、要求元のＶＰＮ端末２０との間で行った図９のステップＳ２２の鍵交換処理で得られた共有鍵を用いて、鍵テーブルから取得したセッション鍵のリストを暗号化して制御手段１２０に渡す。制御手段１２０は、送信手段１１０を介して、暗号化されたセッション鍵のリストを要求元のＶＰＮ端末２０に対して送信する（以上、ステップＳ３２）。
【００７４】
ＶＰＮ−ＤＮＳサーバ１０から暗号化されたセッション鍵のリストを受け取ったＶＰＮ端末２０において、ＮＩＦ２００の鍵取得処理手段２０６は、図９のステップＳ２２の鍵交換処理で得られた共有鍵を用いて、受け取ったセッション鍵のリストを復号化する。そして、受け取ったリスト中のセッション鍵を、鍵ＤＢ２２０における各ＶＰＮ端末２０に対応するレコードの受信鍵の項目に登録する。この登録処理が終了すると、図１０の例の手順の処理は終了する。
【００７５】
ＶＰＮ端末２０−１，２０−２，…，２０−ＮのそれぞれがＶＰＮ−ＤＮＳサーバ１０との間で図１０の例の手順の鍵取得処理を行って、自己の鍵ＤＢ２２０において、他のＶＰＮ端末２０から割り当てられたセッション鍵を当該他のＶＰＮ端末２０の端末ＩＤに対応する受信鍵として登録する。
【００７６】
以上、図９〜図１０を参照して説明した処理をＮ台のＶＰＮ端末２０−１，２０−２，…，２０−Ｎのそれぞれが実行することで、Ｎ台のＶＰＮ端末２０のうちの２つを含むＶＰＮ端末２０の組のすべての間で共有鍵の交換が実現される。各ＶＰＮ端末２０は、ＶＰＮ−ＤＮＳサーバ１０との間で、ステップＳ１，Ｓ２，Ｓ３の３回の通信を行うことで、他のＮ−１台のＶＰＮ端末２０のそれぞれと共有鍵を交換したことになる。よって、Ｎ台のＶＰＮ端末２０を含むＶＰＮシステム全体としては、３Ｎ回の通信により、Ｎ台のうち２台ずつの組のすべてについて共有鍵の交換がなされる。
【００７７】
なお、以上の説明では、図７の各ステップＳ１，Ｓ２，Ｓ３において、Ｎ台のＶＰＮ端末２０のすべてとＶＰＮ−ＤＮＳサーバ１０との間の処理が終了してから次のステップの処理が行われるものとして説明した。しかしながら、各ＶＰＮ端末２０において、必ずしも、Ｎ台のＶＰＮ端末２０のすべてについて各ステップの処理が終了してから次のステップの処理が実行されるとは限らない。例えば、一部のＶＰＮ端末２０による端末情報登録処理（ステップＳ１）が終了する前に、他のＶＰＮ端末２０が鍵登録処理（ステップＳ２）を実行することがあり得る。あるいは、例えば、一部のＶＰＮ端末２０による鍵登録処理（ステップＳ２）の実行の前に、他のＶＰＮ端末２０が鍵取得処理（ステップＳ３）を実行することもあり得る。また、例えば、ＶＰＮシステムに新たなＶＰＮ端末２０が接続されたり、登録済みのＶＰＮ端末２０のＩＰアドレスや端末証明書が更新されたりする場合がある。以上で例示した状況では、ＶＰＮ端末２０で鍵登録処理（ステップＳ２）又は鍵取得処理（ステップＳ３）が実行されて鍵ＤＢ２２０にデータが登録された後に、ＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０及び鍵テーブル記憶手段１６０の少なくとも一方が更新される。
【００７８】
ＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０及び鍵テーブル記憶手段１６０における更新を鍵ＤＢ２２０のデータ内容に反映させるため、各ＶＰＮ端末２０は、例えば、定期的に又は予め設定されたタイミング（例えば、ＶＰＮ端末２０の起動時など）で、ＶＰＮ−ＤＮＳサーバ１０に対して端末情報ＤＢ１５０及び鍵テーブル記憶手段１６０の更新の有無を問合わせる。この問合せを受けたＶＰＮ−ＤＮＳサーバ１０は、例えば、当該端末による前回の更新の有無の問合わせから今回の問合わせまでの間に、端末情報ＤＢ１５０又は鍵テーブル記憶手段１６０のデータ内容に更新が生じていれば、その更新内容を表す情報をＶＰＮ端末２０に対して送信する。このときに行われるＶＰＮ−ＤＮＳサーバ１０における更新の有無の検索は、例えば、端末情報ＤＢ１５０中の各ＶＰＮ端末２０に対応するレコードの更新日時を記録しておき、鍵テーブル記憶手段１６０において鍵テーブルの各レコード（例えば、図６の例の表の各行及び各列）について更新日時を記憶しておくことで実現される。例えば、端末情報ＤＢ１５０中の各ＶＰＮ端末２０に対応するレコードにおいて、さらに、当該端末による前回の更新の問合わせの日時を記憶してき、この前回の更新の問合わせ日時以降、今回の問合わせの日時までの間に、端末情報ＤＢ１５０及び鍵テーブルにおいて更新されたレコードがあるか否かを検索する。そして、この検索結果のレコードを更新内容としてＶＰＮ端末２０に対して返送する。ＶＰＮ端末２０は、ＶＰＮ−ＤＮＳサーバ１０から取得した情報に従って鍵ＤＢ２２０を更新する。さらに、ＶＰＮ端末２０は、未だセッション鍵の割り当てを行っていないＶＰＮ端末２０がＶＰＮ−ＤＮＳサーバ１０に登録された場合、当該ＶＰＮ端末２０に関して、鍵登録処理（ステップＳ２）を実行し、その後、当該ＶＰＮ端末２０から割り当てられたセッション鍵を鍵取得処理（ステップＳ３）によって取得する。
【００７９】
また、例えば、各ＶＰＮ端末２０は、自端末情報に変更があった場合（例えば、ＩＰアドレスの変更又は端末証明書の更新等）に、端末情報登録処理（ステップＳ１）と同様の処理を行って、更新後の自端末情報をＶＰＮ−ＤＮＳサーバ１０に対して送信し、ＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０に登録された自己の端末情報を更新する。
【００８０】
なお、例えば、端末情報ＤＢ１５０又は記憶手段１６０に更新が生じた場合に、ＶＰＮ−ＤＮＳサーバ１０から、各ＶＰＮ端末２０に対し、その旨を通知してもよい。この通知を受けたＶＰＮ端末２０は、通知された更新の内容に応じた処理を行う。例えば、登録済みのＶＰＮ端末２０の端末情報の更新であれば、ＶＰＮ端末２０において、対応する鍵ＤＢ２２０中の端末情報が更新される。また例えば、新たなＶＰＮ端末２０がＶＰＮ−ＤＮＳサーバ１０に登録された場合、各ＶＰＮ端末２０において、当該新たなＶＰＮ端末２０に関して鍵登録処理（ステップＳ２）及び鍵取得処理（ステップＳ３）を実行する。
【００８１】
以下、ＶＰＮ端末２０間の暗号化通信（図７のステップＳ４）における処理の例を説明する。
【００８２】
図１１は、ＶＰＮ端末２０が他のＶＰＮ端末２０に対してデータを送信する場合にＶＰＮ端末２０のＮＩＦ２００の通信処理部が行う処理の手順の例を示すフローチャートである。
【００８３】
図１１を参照し、通信アプリケーション２３０がＦＱＤＮで指定された相手と通信をおこなう場合には、まずＤＮＳサーバ（本システム外）に対して、ＤＮＳ問合せを行う。通信処理手段２０８は、通信アプリケーション２３０からのＤＮＳ問合わせの有無を判定する（ステップＳ４０）。通信アプリケーション２３０は、データの送信を望む場合、例えば、送信先のＶＰＮ端末２０のＦＱＤＮの指定を受け付け、このＦＱＤＮに対応するグローバルＩＰをＮＩＦ２００の通信処理手段２０８を通してＤＮＳサーバに問合わせる。ステップＳ４０では、この問合わせの有無を判定する。ＤＮＳ問合せがなければステップＳ４６に進む。
【００８４】
通信アプリケーション２３０からのＤＮＳ問合わせを検出すると（ステップＳ４０でＹＥＳ）、通信処理手段２０８は、ＤＮＳ問合せで特定されたＦＱＤＮが鍵ＤＢ２２０に登録されているか否かを判定する（ステップＳ４２）。ステップＳ４２では、例えば、鍵ＤＢ２２０中の各ＶＰＮ端末２０に対応するレコードのうち、ＦＱＤＮの項目の値としてＤＮＳ問合せで特定されたＦＱＤＮを含むレコードが存在するか否かを判定することで行う。
【００８５】
鍵ＤＢ２２０中にＤＮＳ問合せで特定されたＦＱＤＮを含むレコードが存在しない場合（ステップＳ４２でＮＯ）、通信処理手段２０８は、ＤＮＳ問合せを通過させ（ステップＳ５４）、ステップＳ４０に戻って更なるＤＮＳ問合わせを待ち受ける。ＦＱＤＮがレコードに存在しないということは、ＶＰＮ端末のＦＱＤＮではないので、通過したＤＮＳ問合せはインターネット上に存在するＤＮＳサーバに送られ、ＤＮＳサーバからＩＰアドレスが返される。
【００８６】
一方、鍵ＤＢ２２０中にＤＮＳ問合せで特定されたＦＱＤＮを含むレコードが存在すれば（ステップＳ４２でＹＥＳ）、通信処理手段２０８は、当該レコードのグローバルＩＰの項目に登録された値を通信アプリケーション２３０に返す（ステップＳ４４）。通信処理手段２０８からグローバルＩＰを取得すると、通信アプリケーション２３０は、取得したグローバルＩＰを送信先ＩＰアドレスとし、自端末のグローバルＩＰを送信元ＩＰアドレスとするデータパケットを生成する。そして、生成したデータパケットを送信要求とともに通信処理手段２０８に渡す。
【００８７】
ステップＳ４６では、通信処理手段２０８は、データパケットを伴う送信要求を通信アプリケーション２３０から受けたか否かを判定する。送信要求がなければ、ステップＳ４０の判定に戻る。
【００８８】
通信アプリケーションからの送信要求があると（ステップＳ４６でＹＥＳ）、通信処理手段２０８は、送信要求に伴うデータパケットに送信先ＩＰアドレスとして含まれるグローバルＩＰが鍵ＤＢ２２０に登録されているか否かを判定する（ステップＳ４８）。この判定は、例えば、鍵ＤＢ２２０中のレコードのうち、グローバルＩＰの項目の値として送信先ＩＰアドレスであるグローバルＩＰを含むレコードが存在するか否かを判定することで行う。
【００８９】
鍵ＤＢ２２０中に送信先ＩＰアドレスのグローバルＩＰが登録されていなければ（ステップＳ４８でＮＯ）、通信処理手段２０８は、通信アプリケーション２３０から受け取ったデータパケットをネットワーク３０に対して送出し（ステップＳ５２）、処理はステップＳ４０の判定に戻る。
【００９０】
鍵ＤＢ２２０中に送信先ＩＰアドレスのグローバルＩＰを含むレコードが存在すれば（ステップＳ４８でＹＥＳ）、通信処理手段２０８の暗号化手段２０８０は、当該レコードの送信鍵の項目に登録されているセッション鍵を用いて、通信アプリケーションから受け取ったデータパケット中のデータ部を暗号化する（ステップＳ５０）。
【００９１】
図１２に、ステップＳ５０で生成される暗号化データを含むデータパケットの例を示す。図１２（ａ）は、ＶＰＮ端末２０−１の通信処理手段２０８が生成するデータパケットであってＶＰＮ端末２０−２に対して送信されるデータパケットの例である。一方、図１２（ｂ）は、ＶＰＮ端末２０−２の通信処理手段２０８が生成するデータパケットであってＶＰＮ端末２０−１に対して送信されるデータパケットの例である。図１２（ａ），（ｂ）に例示するデータパケット４０は、それぞれ、送信先アドレス部４２、送信元アドレス部４４、及びデータ部４６を備える。図１２（ａ）の例のデータパケット４０ａの送信先アドレス部４２ａは、送信先であるＶＰＮ端末２０−２のグローバルＩＰ「103.22.30.101」を含み、送信元アドレス部４４ａは、送信元であるＶＰＮ端末２０−１のグローバルＩＰ「202.111.10.16」を含む。さらに、データパケット４０ａのデータ部４６ａは、ＶＰＮ端末２０−１の鍵ＤＢ２２０（図３（ａ）参照）において、端末ＩＤ「002」であるＶＰＮ端末２０−２に対応づけられた送信鍵「K12」で暗号化されたデータを含む。また、図１２（ｂ）の例のデータパケット４０ｂの送信先アドレス部４２ｂは、ＶＰＮ端末２０−１のグローバルＩＰを含み、送信元アドレス部４４ｂは、ＶＰＮ端末２０−２のグローバルＩＰを含む。さらに、データ部４６ｂは、ＶＰＮ端末２０−２の鍵ＤＢ２２０（図３（ｂ））において、送信先であるＶＰＮ端末２０−１（端末ＩＤ「001」）に対応づけられた送信鍵「K21」で暗号化されたデータを含む。
【００９２】
図１１の説明に戻り、データ部の暗号化（ステップＳ５０）が終了すると、通信処理手段２０８は、暗号化したデータ部を含むデータパケットをネットワーク３０へ送出する（ステップＳ５２）。ステップＳ５２の後、処理はステップＳ４０の判定に戻る。
【００９３】
次に、図１３を参照し、ＶＰＮ端末２０が他のＶＰＮ端末２０などの装置からデータを受信した場合に、ＶＰＮ端末２０のＮＩＦ２００の通信処理手段２０８が行う処理の手順の例を説明する。
【００９４】
通信処理手段２０８は、ネットワーク３０を介して自端末宛のデータパケットを受信したか否かを判定する（ステップＳ６０）。データパケットを受信していなければ、ステップＳ６０の判定を繰り返す。
【００９５】
データを受信した場合（ステップＳ６０でＹＥＳ）、通信処理手段２０８は、鍵ＤＢ２２０を参照し、受信したデータパケットにおける送信元アドレスをグローバルＩＰとして含むレコードの有無を判定する（ステップＳ６２）。送信元アドレスをグローバルＩＰとして含むレコードが鍵ＤＢ２２０中に存在しない場合（ステップＳ６２でＮＯ）、通信処理手段２０８は、受信したデータパケットをそのまま通信アプリケーションに渡す（ステップＳ６６）。
【００９６】
送信元アドレスをグローバルＩＰとして含むレコードが鍵ＤＢ２２０中に存在する場合（ステップＳ６２でＹＥＳ）、当該レコードの受信鍵の項目に登録されているセッション鍵を用いて、受信したデータパケットのデータ部を復号化する（ステップＳ６４）。そして、復号化後のデータ部を含むデータパケットを通信アプリケーションに渡す（ステップＳ６６）。
【００９７】
ステップＳ６６の後、処理はステップＳ６０の判定に戻る。
【００９８】
ＶＰＮ端末２０の通信処理手段２０８が受信したデータパケットの送信元アドレスが鍵ＤＢ２２０中に登録されたグローバルＩＰを含む場合、そのデータパケットは、他のＶＰＮ端末２０のいずれかが送信したものである。この場合、データパケット中のデータ部のデータは、その送信元のＶＰＮ端末２０がデータパケットを受信したＶＰＮ端末２０に対して割り当てたセッション鍵を用いて暗号化されている。ＶＰＮ端末２０の鍵ＤＢ２２０には、他の各ＶＰＮ端末２０が自端末に対して割り当てたセッション鍵を「受信鍵」として他の各ＶＰＮ端末２０の端末ＩＤに対応づけて登録している。したがって、図１３のステップＳ６２からステップＳ６４に進み、鍵ＤＢ２２０において送信元のＶＰＮ端末２０に対応づけられた受信鍵を用いてデータを復号化すると、暗号化前のデータが得られる。例えば、ＶＰＮ端末２０−１からＶＰＮ端末２０−２に対して送信される図１２（ａ）の例のデータパケットをＶＰＮ端末２０−２が受信して、ＶＰＮ端末２０−２の通信処理手段２０８で図１３の例の手順の処理が行われる場合、ステップＳ６２の判定において、送信元アドレス「202.111.10.16」をグローバルＩＰとして含む鍵ＤＢ２２０中のレコードが検索される。ＶＰＮ端末２０−２の鍵ＤＢ２２０の例を表す図３（ｂ）の表の当該レコードには、受信鍵として、ＶＰＮ端末２０−１がＶＰＮ端末２０−２に割り当てたセッション鍵「K12」が登録されている。ＶＰＮ端末２０−１からＶＰＮ端末２０−２へ送信されるデータパケット４０のデータ部４６は、このセッション鍵「K12」で暗号化されているので、ＶＰＮ端末２０−２は、このセッション鍵を用いた復号化により暗号化前のデータをＶＰＮ端末２０−２は取得することになる。
【００９９】
以上で説明した実施形態のＶＰＮシステムの例では、ＶＰＮ端末２０は、それぞれグローバルＩＰを有する。ＶＰＮシステムの他の例では、Ｎ台のＶＰＮ端末のうちの一部の複数のＶＰＮ端末２０が、ＮＡＰＴ（Network Address Port Translation）機能を有するルータに接続されて１つのグローバルＩＰを共有していてもよい。図１４に、この例のＶＰＮシステムの構成の例を示す。
【０１００】
図１４の例のＶＰＮシステムでは、ＶＰＮ−ＤＮＳサーバ１０、ＮＡＰＴルータ５０、及びＶＰＮ端末２０−１，２０−４，…，２０−Ｎがネットワーク３０を介して接続される。また、ＶＰＮ端末２０−２及びＶＰＮ端末２０−３は、ＮＡＰＴルータ５０を介してネットワーク３０に接続され、１つのグローバルＩＰを共有する。ＮＡＰＴルータ５０は、ＶＰＮ端末２０−２及びＶＰＮ端末２０−３のそれぞれに対して異なるポート番号を割り当てることで、これら各端末が送受信するデータの識別を可能とする。例えば、ＶＰＮ端末２０−２（又は２０−３）がデータを送信する場合、各端末からの送信データパケットは、送信元アドレスと送信元ポート番号とを含み、送信元アドレスの値は、ＶＰＮ端末２０−２（又は２０−３）のローカルＩＰアドレス（ＮＡＰＴルータ５０に接続されるＶＰＮ端末２０の間で一意であるが、ネットワーク３０に接続される装置間では重複の可能性のあるＩＰアドレス）である。ＮＡＰＴルータ５０は、上述のような送信データパケットをＶＰＮ端末２０−２（又は２０−３）から受け取ると、当該送信データパケット中の送信元アドレスをＮＡＰＴルータ５０のグローバルＩＰに変換し、送信元ポート番号を各端末に割り当てられたポート番号に変換した上で、ネットワーク３０へ送り出す。ＶＰＮ端末２０−２（又は２０−３）からのこのような送信データに応じて各端末宛に返信されるデータパケットは、送信先アドレス及び送信先ポート番号として、それぞれ、ＮＡＰＴルータ５０のグローバルＩＰ及び各端末に割り当てられたポート番号を含む。このようなデータパケットを受け取ると、ＮＡＰＴルータ５０は、当該データパケット中の送信先アドレスを、当該データパケット中の送信先ポート番号に対応する端末のローカルＩＰアドレスに変換して、変換後の送信先アドレスに対して当該データパケットを送信する。これにより、当該データパケットは、対応する送信先のＶＰＮ端末２０−２（又は２０−３）に到達する。
【０１０１】
なお、図１４の例では、ＶＰＮ端末２０−２，２０−３の他のＶＰＮ端末２０−１，２０−４，…，２０−Ｎは、それぞれ、グローバルＩＰを有する。
【０１０２】
図１４に例示する構成を有するＶＰＮシステムにおいても、図１の例の構成のＶＰＮシステムの場合と同様に、端末情報登録処理（図７のステップＳ１、図８）、鍵登録処理（図７のステップＳ２、図９）、及び鍵取得処理（図７のステップＳ３、図１０）を行うことで、各ＶＰＮ端末２０間の暗号化通信に用いられる共有鍵の交換が実現される。つまり、ＶＰＮ−ＤＮＳサーバ１０において、端末情報ＤＢ１５０にＮ台のＶＰＮ端末２０のそれぞれの端末情報が登録され、鍵テーブル記憶手段１６０に鍵テーブルが登録される。また、Ｎ台のＶＰＮ端末２０のそれぞれの鍵ＤＢ２２０には、他のＮ−１台の各ＶＰＮ端末２０に対応する送信鍵及び受信鍵が登録される。
【０１０３】
図１５に、図１４の例のＶＰＮシステムにおいて端末情報登録処理が実行されたときのＶＰＮ−ＤＮＳサーバ１０の端末情報ＤＢ１５０のデータ内容の例を示す。図１５を参照し、端末情報ＤＢ１５０に登録されるレコードの項目は、図５の例の表と同様である。ただし、図１５の例の表において、ＶＰＮ端末２０−２，２０−３（それぞれ、端末ＩＤ「002」，「003」）のグローバルＩＰの値は、ＮＡＰＴルータ５０のグローバルＩＰ「55.2.104.32」で共通している。
【０１０４】
共通のグローバルＩＰを有するＶＰＮ端末２０−２，２０−３から暗号化データを受信する他のＶＰＮ端末２０において、暗号化データを復号化するためには、受信したデータパケットの送信元のＶＰＮ端末２０を特定し、復号化に用いる受信鍵を特定する必要がある。このとき、受信したデータパケット中の送信元アドレスだけでは、グローバルＩＰを共有するＶＰＮ端末２０−２，２０−３のいずれが送信元の端末であるかを特定できない。したがって、図１４の例のＶＰＮシステムにおける各ＶＰＮ端末２０の通信処理手段２０８は、データを送信する場合、図１２に例示するデータパケット４０における送信先アドレス部４２、送信元アドレス部４４、及びデータ部４６に加えて、自端末の端末ＩＤを含むデータパケットを生成して送信する。
【０１０５】
図１６に、図１４に例示する各ＶＰＮ端末２０が送信するデータパケットの例を示す。図１６は、ＶＰＮ端末２０−２からＶＰＮ端末２０−１へ送信されるデータパケットの例である。図１６を参照し、データパケット６０ａは、送信先アドレス部６２ａ、送信元アドレス部６４ａ、データ部６６ａ、及び端末ＩＤ部６８ａを含む。送信先アドレス部６２ａは、データの送信先であるＶＰＮ端末２０−１のグローバルＩＰ「202.111.10.16」を含む。また、送信元アドレス部６４ａは、送信元であるＶＰＮ端末２０−２に接続されるＮＡＰＴルータ５０のグローバルＩＰ「55.2.104.32」と、ＮＡＰＴルータ５０においてＶＰＮ端末２０−２に割り当てられたポート番号「p01」と、を含む。この送信元アドレス部６２ａの値は、ＮＡＰＴルータ５０において上述のような送信元アドレス及びポート番号の変換処理が行われることで設定される。データ部６６ａは、送信元であるＶＰＮ端末２０−２が送信先のＶＰＮ端末２０−１に対して割り当てたセッション鍵「K21」で暗号化される。さらに、データパケット６０ａの端末ＩＤ部６８ａには、送信元であるＶＰＮ端末２０−２の端末ＩＤ「002」が含まれる。
【０１０６】
図１６に例示するデータパケット６０ａを受信したＶＰＮ端末２０−１は、端末ＩＤ部６８ａに含まれる端末ＩＤ「002」を検索キーとして鍵ＤＢ２２０を検索することで、データ部６６ａの復号化に用いる受信鍵「K21」を取得する。
【０１０７】
図１６の例のように各ＶＰＮ端末２０が自端末の端末ＩＤを含むデータパケットを送信すると、それを受信した他のＶＰＮ端末２０は、当該データパケット中の端末ＩＤにより送信元の端末を特定する。したがって、受信したデータパケット中の送信元アドレスのグローバルＩＰを有するＶＰＮ端末２０が複数存在する場合であっても、当該データパケットを受信したＶＰＮ端末２０において、送信元のＶＰＮ端末２０が特定され、対応する受信鍵が特定される。
【０１０８】
また、１つのグローバルＩＰを共有する複数のＶＰＮ端末２０のいずれかに対してデータを送信する場合、各ＶＰＮ端末２０の通信処理手段２０８は、送信先のＶＰＮ端末２０が用いるグローバルＩＰに加えて、当該ＶＰＮ端末２０に対してＮＡＰＴルータ５０が割り当てたポート番号を用いて、送信先のＶＰＮ端末２０を特定し、送信データの暗号化に用いる送信鍵を特定する。このため、図１４の例のＶＰＮシステムにおける各ＶＰＮ端末２０の通信処理手段２０８は、送信元アドレス部６２ａにグローバルＩＰとポート番号とを含むデータパケット６０ａを受信したときに、鍵ＤＢ２２０において、そのデータパケット６０ａ中の端末ＩＤ部６８ａの端末ＩＤに対応するレコードに送信元アドレス部６２ａ中のポート番号を登録しておく。
【０１０９】
図１７に、図１４の例のＶＰＮシステムの各ＶＰＮ端末２０の鍵ＤＢ２２０のデータ内容の例を示す。図１７は、図１４に例示するＶＰＮ端末２０−１の鍵ＤＢ２２０のデータ内容の例である。図１７の例の鍵ＤＢ２２０は、各ＶＰＮ端末２０の端末ＩＤに対応づけて、図３の例の表の各項目に加えて、ポート番号の項目を備える。ポート番号の項目の値は、対応するレコードの端末ＩＤを含むデータパケットをＶＰＮ端末２０−１が受信したときに登録される。例えば、ＶＰＮ端末２０−１が図１６の例のデータパケット６０ａをＶＰＮ端末２０−２から受信したときに、ＶＰＮ端末２０−１の通信処理手段２０８は、データパケット６０ａ中の端末ＩＤ「002」に対応する鍵ＤＢ２２０のレコードにおいて、データパケット６０ａの送信元アドレス部６４ａに含まれるポート番号「p01」をポート番号の項目に設定する。なお、通常は、ＮＡＰＴルータ配下にある端末はプライベートＩＰアドレスが割り当てられるので、端末ＩＤをデータパケットに付加するかどうかは、自端末のＩＰアドレスがグローバルＩＰアドレスかどうかで判断することが可能である。ただし、ＮＡＰＴルータ配下にグローバルＩＰアドレスを割り当てる可能性があるので、そのような場合は、全ての端末がデータパケットに端末ＩＤを付加することで、正しく暗号化および復号化の処理を行うことができる。
【０１１０】
以下、ＶＰＮ端末２０−１がＶＰＮ端末２０−２から図１６の例のデータパケット６０ａを受信し、その受信データパケットに応答してＶＰＮ端末２０−２に対してデータを送信する場合の処理の例を説明する。なお、データの受信時及び送信時の通信処理手段２０８における基本的な処理の手順は、それぞれ図１３及び図１１に例示するフローチャートと同様である。
【０１１１】
まず、データ受信時の処理の例を説明する。図１６の例のデータパケット６０ａを受信すると、ＶＰＮ端末２０−１の鍵ＤＢ２２０において、上述のように、端末ＩＤ「002」のレコードにポート番号「p01」が登録される（図１７）。この登録は、例えば、図１３の例の手順において、ステップＳ６２の判定でＹＥＳに進んだ後、データの復号化（ステップＳ６４）の前に行う。さらに、ＶＰＮ端末２０−１の通信処理手段２０８の復号化手段２０８２は、端末ＩＤ「002」に対応する受信鍵「K21」でデータパケット６０ａのデータ部６６ａを復号化し（ステップＳ６４）、通信処理手段２０８は、復号化後のデータパケット６０ａを通信アプリケーションに渡す（ステップＳ６６）。
【０１１２】
これに応じて、通信アプリケーションは、ＶＰＮ端末２０−２に対する応答として送信するデータパケットを生成し、生成したデータパケットを伴う送信要求を通信処理手段２０８に対して行う。このデータパケットは、送信先アドレス及び送信先のポート番号として、ＶＰＮ端末２０−２から受信した図１６のデータパケット６０ａにおける送信元アドレス部６４ａ中の送信元アドレス「55.2.104.32」及びポート番号「p01」を含む。また、送信元アドレスとしてＶＰＮ端末２０−１のグローバルＩＰ「202.111.10.16」を含む。通信処理手段２０８は、通信アプリケーションから送信要求と共に受け取った当該データパケットに自装置の端末ＩＤ「001」を追加する。そして、通信処理手段２０８は、送信データを暗号化するためのセッション鍵を鍵ＤＢ２２０から取得する。このとき、通信処理手段２０８は、当該データパケットに含まれる送信先アドレス「55.2.104.32」及び送信先のポート番号「p01」の組を含むレコードを鍵ＤＢ２２０から検索し、検索結果のレコードに登録された送信鍵を取得する。本例では、図１７の例の表の端末ＩＤ「002」のレコードの送信鍵「K12」が取得される。この送信鍵「K12」を用いて、通信処理手段２０８の暗号化手段２０８０は、当該データパケット中の送信データを暗号化する。
【０１１３】
図１８に、暗号化後の当該データパケットの例を示す。図１８の例のデータパケット６０ｂの送信先アドレス部６２ｂは、受信したデータパケット６０ａ（図１６）の送信元アドレス部６４ａと同様の値（ＩＰアドレス及びポート番号）を含む。送信元アドレス部６４ｂ及び端末ＩＤ部６８ｂには、それぞれ、自端末のグローバルＩＰ及び端末ＩＤが含まれる。データ部６６ｂは、ＶＰＮ端末２０−１がＶＰＮ端末２０−２に割り当てたセッション鍵「K12」で暗号化されている。
【０１１４】
なお、送信するデータパケットに対する上述の一連の処理は、例えば、図１１に例示する手順のステップＳ５０で行う。
【０１１５】
以上で説明したように、受信したデータパケット中の送信元ポート番号を送信元のＶＰＮ端末２０の端末ＩＤに対応づけて鍵ＤＢ２２０に記憶しておくと、データを送信する際に、送信するデータパケットの送信先のグローバルＩＰとポート番号との組を検索キーとして鍵ＤＢ２２０を検索することで送信先のＶＰＮ端末２０が特定される。
【０１１６】
また、ＶＰＮシステムの構成の他の例として、例えば、各ＶＰＮ端末２０がＶＰＮゲートウエイ装置として機能し、各ＶＰＮ端末２０に接続される配下端末における通信パケットのトンネリングを行ってもよい。図１９に、この例のＶＰＮシステムの構成の概略の例を示す。図１９を参照し、各ＶＰＮ端末２０は、複数の配下端末７０に接続される。各ＶＰＮ端末２０は、自端末に接続された配下端末７０が他のＶＰＮ端末２０に接続された配下端末７０に対してデータを送信する場合、送信データパケットに対して、当該パケットを記述する第１の通信プロトコルと異なる第２の通信プロトコルのヘッダ情報を付加し、当該第２の通信プロトコルによるデータパケットとしてカプセル化した上で、送信データパケットを送信する。このカプセル化されたデータパケットを受け取った他のＶＰＮ端末２０は、第２の通信プロトコルによるヘッダ情報を取り除いて第１の通信プロトコルによるデータパケットに戻してカプセル化を解除した上で、自己の配下端末７０に当該データパケットを渡す。図１９の例では、各ＶＰＮ端末２０は、複数の配下端末７０とネットワーク３０との間の接続を仲介するルータとして機能する。図１９の例の構成のＶＰＮシステムにおいても、図１の例の構成のＶＰＮシステムの場合と同様に、端末情報登録処理（図７のステップＳ１、図８）、鍵登録処理（図７のステップＳ２、図９）、及び鍵取得処理（図７のステップＳ３、図１０）を行うことで、各ＶＰＮ端末２０間の暗号化通信に用いられる共有鍵の交換が実現される。
【０１１７】
なお、以上で説明した各種の実施形態の処理の例では、各ＶＰＮ端末２０は、自装置が他のＶＰＮ端末２０に対して送信する情報の暗号化に用いる送信鍵を生成してＶＰＮ−ＤＮＳサーバ１０に登録し、他のＶＰＮ端末２０が自装置に対して割り当てた送信鍵を、当該他のＶＰＮ端末２０が自装置に対して送信する暗号化情報の復号化に用いる受信鍵としてＶＰＮ−ＤＮＳサーバ１０から取得する。他の処理の例では、上述の各種の実施形態において、各ＶＰＮ端末２０は、他の各ＶＰＮ端末２０から自装置が受信する暗号化情報の復号化に用いる受信鍵を生成してＶＰＮ−ＤＮＳサーバ１０に登録し、他のＶＰＮ端末２０が自装置に対して割り当てた受信鍵を、当該他のＶＰＮ端末２０に対して自装置が送信する情報の暗号化に用いる送信鍵としてＶＰＮ−ＤＮＳサーバ１０から取得してもよい。さらに他の例では、上述の各種の実施形態の処理により各ＶＰＮ端末２０間で交換された送信鍵・受信鍵から各ＶＰＮ端末２０間の共通鍵を生成し、生成した共通鍵により送信情報の暗号化及び受信情報の復号化を行ってもよい。
【０１１８】
以上に例示したＶＰＮ端末２０は、典型的には、汎用のコンピュータにて上述のＶＰＮ端末２０の各手段の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１８に示すように、ＣＰＵ（中央演算装置）８０、メモリ（一次記憶）８２、各種Ｉ／Ｏ（入出力）インタフェース８４等がバス８６を介して接続された回路構成を有する。また、そのバス８６に対し、例えばＩ／Ｏインタフェース８４経由で、ＨＤＤ（ハードディスクドライブ）８８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ９０が接続される。このようなドライブ８８又は９０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ＨＤＤ８８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。ＶＰＮ−ＤＮＳサーバ１０についても同様である。
【図面の簡単な説明】
【０１１９】
【図１】ＶＰＮシステムの構成の概略の例を示す図である。
【図２】ＶＰＮ端末の内部構成の概略の例を示すブロック図である。
【図３】鍵ＤＢのデータ内容の例を示す図である。
【図４】ＶＰＮ−ＤＮＳサーバの内部構成の概略の例を示すブロック図である。
【図５】端末情報ＤＢのデータ内容の例を示す図である。
【図６】鍵テーブルの内容の例を示す図である。
【図７】ＶＰＮシステムにおける処理の手順の例を示す図である。
【図８】端末情報登録処理の手順の例を示す図である。
【図９】鍵登録処理の手順の例を示す図である。
【図１０】鍵取得処理の手順の例を示す図である。
【図１１】ＶＰＮ端末の通信処理手段がデータ送信時に行う処理の手順の例を示すフローチャートである。
【図１２】ＶＰＮ端末が送信するデータパケットの構成の例を示す図である。
【図１３】ＶＰＮ端末の通信処理手段がデータ受信時に行う処理の手順の例を示すフローチャートである。
【図１４】ＶＰＮシステムの構成の概略の他の一例を示す図である。
【図１５】端末情報ＤＢのデータ内容の他の一例を示す図である。
【図１６】ＶＰＮ端末が送信するデータパケットの構成の他の一例を示す図である。
【図１７】鍵ＤＢのデータ内容の他の一例を示す図である。
【図１８】ＶＰＮ端末が送信するデータパケットの構成の他の一例を示す図である。
【図１９】ＶＰＮシステムの構成の概略の他の一例を示す図である。
【図２０】コンピュータのハードウエア構成の例を示す図である。
【符号の説明】
【０１２０】
１０  ＶＰＮ−ＤＮＳサーバ、２０  ＶＰＮ端末、３０  ネットワーク、５０  ＮＡＰＴルータ、７０  配下端末、８０  ＣＰＵ、８２  メモリ、８４  Ｉ／Ｏインタフェース、８６  バス、８８  ＨＤＤ、９０  ディスクドライブ、１００  受信手段、１１０  送信手段、１２０  制御手段、１３０  端末情報登録手段、１４０  鍵処理手段、１４２  鍵登録手段、１４４  鍵送信手段、１５０  端末情報ＤＢ、１６０  鍵テーブル記憶手段、１７０  証明書関連情報記憶手段、２００  ＮＩＦ、２０２  自端末情報登録処理手段、２０４  鍵登録処理手段、２０６  鍵取得処理手段、２０８  通信処理手段、２１０  基本情報記憶手段、２２０  鍵ＤＢ、２３０  通信アプリケーション、２０８０  暗号化手段、２０８２  復号化手段。
【図１】
2010081266.tif 000003
【図２】
2010081266.tif 000004
【図３】
2010081266.tif 000005
【図４】
2010081266.tif 000006
【図５】
2010081266.tif 000007
【図６】
2010081266.tif 000008
【図７】
2010081266.tif 000009
【図８】
2010081266.tif 000010
【図９】
2010081266.tif 000011
【図１０】
2010081266.tif 000012
【図１１】
2010081266.tif 000013
【図１２】
2010081266.tif 000014
【図１３】
2010081266.tif 000015
【図１４】
2010081266.tif 000016
【図１５】
2010081266.tif 000017
【図１６】
2010081266.tif 000018
【図１７】
2010081266.tif 000019
【図１８】
2010081266.tif 000020
【図１９】
2010081266.tif 000021
【図２０】
2010081266.tif 000022