(57)【要約】【課題】複数のクライアントから任意に選択したメンバーに対してＶＰＮを構築することを柔軟且つ簡便に行う。【解決手段】デジタル証明書の発行を受けているクライアントから任意に選択されたメンバーのメンバーリストと、デジタル証明書の発行に用いられた秘密鍵に対応する公開鍵とをハッシュ関数の引数としてハッシュ値を計算し、このハッシュ値をＶＰＮサーバプロセスのＩＤに対応させる。生成されたＶＰＮサーバプロセスに対してクライアントが接続を要求してきた際、デジタル証明書が検証され、当該クライアントが前記メンバーに含まれている場合にのみ、接続を許可する。【選択図】図１
2008028576.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行する、１つまたは複数のホストサーバからなるＶＰＮサーバホスティングシステムであって、
公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するＶＰＮサーバ生成手段と、
前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するＶＰＮサーバ接続手段と、
を備えることを特徴とするＶＰＮサーバホスティングシステム。
【請求項２】
前記メンバーに含まれる少なくとも一つの情報端末が、他の情報端末に対して発行されたデジタル証明書を所有せず、且つ、該デジタル証明書を発行した証明書発行装置とは異なる証明書発行装置から発行されたデジタル証明書を所有している場合において、
前記ＶＰＮサーバプロセス特定情報を前記全ての証明書発行装置のそれぞれの公開鍵と前記メンバーを特定するメンバーリストとから構成した
ことを特徴とする請求項１に記載のＶＰＮサーバホスティングシステム。
【請求項３】
前記各々のホストサーバは、自分の管理する前記ハッシュ値の範囲を定めた分散ハッシュテーブルを保持しており、
前記ＶＰＮサーバ生成手段は、前記分散ハッシュテーブルにしたがって前記ＶＰＮサーバプロセス特定情報のハッシュ値に対応するホストサーバを選択し、該選択したホストサーバ内にＶＰＮサーバプロセスを生成する
ことを特徴とする請求項１または請求項２に記載のＶＰＮサーバホスティングシステム。
【請求項４】
前記ＶＰＮサーバ接続手段によってＶＰＮサーバプロセスへの接続が許可された情報端末間の通信において、前記ＶＰＮサーバプロセスと前記複数の情報端末で共有される第１のセッション鍵を生成するセッション鍵生成手段と、
前記第１のセッション鍵と前記情報端末間でのみ共有される第２のセッション鍵とを用いてメッセージ認証コードが付加され、且つ前記第１のセッション鍵を用いてヘッダが暗号化されるとともに前記第２のセッション鍵を用いてペイロードが暗号化されたパケットに対し、前記第１のセッション鍵を使用してメッセージ認証ならびに前記ヘッダの復号化を行うパケット解析手段と、
をさらに備えることを特徴とする請求項１から請求項３のいずれかの項に記載のＶＰＮサーバホスティングシステム。
【請求項５】
１つまたは複数のホストサーバからなるサーバシステムにおいて前記いずれかのホストサーバに複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行させてＶＰＮを構築するＶＰＮ構築方法であって、
公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するステップと、
前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するステップと、
を備えることを特徴とするＶＰＮ構築方法。
【請求項６】
複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行する、１つまたは複数のホストサーバからなるＶＰＮサーバホスティングシステムにおいて、前記各ホストサーバのコンピュータに、
公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するステップと、
前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するステップと、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報端末を仮想的な専用回線で接続するＶＰＮサーバプロセスを稼動させるＶＰＮサーバホスティングシステム、このＶＰＮサーバホスティングシステムによりＶＰＮを構築するＶＰＮ構築方法、およびＶＰＮを構築するためのコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの常時接続環境が普及してきていることや、ＡＶ機器等の家電製品にネットワーク対応型の製品が増加していることなどを背景として、一般家庭においても家庭内の通信機器に対する外出先からのリモートアクセスの需要が高まりつつある。また、複数のユーザの間でインターネットを介してファイルの共有を行ったり、ネット接続型のゲームを楽しんだりといったことも行われている。これらのサービスを実現する方法の一つとして、利用者毎に仮想的な専用回線であるＶＰＮ（Virtual Private Network）を構築し、これにより安全なネットワーク環境を提供可能としたものが提案されている。
【０００３】
ここで、ＶＰＮは、暗号化技術を利用してインターネット上の２地点間を接続して構成された仮想的な閉じたネットワークであり、離れた場所にあるコンピュータ同士があたかも１つのＬＡＮ（Local Area Network）に接続されているのと同じように、第三者による盗聴などを防止して相互に通信することを可能にするものである（例えば、非特許文献１参照）。具体的には、ＶＰＮのトラフィックを中継するＶＰＮサーバを設置し、認証を与えられた特定の２台のコンピュータ間の通信を同サーバが仲介することによって、第三者から隔離されたネットワークが実現される。
【０００４】
ＶＰＮに関して、既に出願人は特願２００５−２４９１３７の特許出願を出願済みである。当該出願で提案されたＶＰＮの技術は次のようなものである。すなわち、複数のホストサーバからなりＶＰＮサーバプロセスを稼動させるＶＰＮサーバホスティングシステムと、宅内に設置された宅内中継装置および宅内通信機器と、外出先の移動端末とによってネットワークが構成されている。そして、宅内中継装置の公開鍵ｐｋから計算されたハッシュ値Ｈ（ｐｋ）をＶＰＮサーバプロセスのＩＤに対応させ、分散ハッシュテーブルを利用してこのＶＰＮサーバプロセスを特定のホストサーバに割り当てて稼動させる。クライアント（宅内中継装置および移動端末）は、宅内中継装置が発行したクライアント証明書を提示してＶＰＮサーバプロセスに対する接続を要求する。そして、同証明書が公開鍵ｐｋによって認証され、同証明書に対応するクライアント秘密鍵を当該クライアントが所有していることが証明された場合、クライアントとＶＰＮサーバプロセスが接続されＶＰＮが構築される。これにより、移動端末と宅内通信機器との間でＶＰＮを介した通信が可能となる。
【非特許文献１】“ＳｏｆｔＥｔｈｅｒ  仮想イーサネットシステム”、［ｏｎｌｉｎｅ］、ソフトイーサ株式会社、［平成１８年７月３日検索］、インターネット、〈URL: http://www.softether.com/jp/〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の既出願のＶＰＮサーバホスティングシステムでは、宅内中継装置が公開鍵と秘密鍵のペアを生成し、クライアントに対してその秘密鍵を用いてクライアント証明書を発行すると、当該クライアント証明書を持つクライアントだけが接続できるＶＰＮサーバプロセスを作成することができる。しかしながら、例えば複数のクライアントのうち一部のクライアントだけをメンバーとして、元のＶＰＮとは独立にこれらメンバー専用のＶＰＮを構築しようとした場合、再度あらためて公開鍵・秘密鍵ペアの生成とクライアント証明書の発行、配布という手続きが必要となるため、処理が煩雑になるという問題があった。また、例えば装置Ａからクライアント証明書ＣＡを発行されたクライアントａ１、ａ２、ａ３、装置Ｂからクライアント証明書ＣＢを発行されたクライアントｂ１、ｂ２、ｂ３、装置ＣＡからクライアント証明書ＣＣＡを発行されたクライアントｕ１、ｕ２、ｕ３が存在していた場合に、クライアントａ１とｂ１とｂ２とｕ１とでグループを作り、このグループのメンバーのみが接続できるＶＰＮを構築しようとするときも、新たにクライアント証明書を発行し直さなければならない。そのため、複数のユーザでファイル共有などをする際に簡便にＶＰＮを利用するということが難しかった。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、その目的は、複数のクライアントから任意に選択したメンバーに対してＶＰＮを構築することを柔軟且つ簡便に行うことが可能なＶＰＮサーバホスティングシステムを提供することにある。また、このＶＰＮサーバホスティングシステムによりＶＰＮを構築するＶＰＮ構築方法、およびＶＰＮを構築するためのコンピュータプログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するためになされたものであり、請求項１に記載の発明は、複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行する、１つまたは複数のホストサーバからなるＶＰＮサーバホスティングシステムであって、公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するＶＰＮサーバ生成手段と、前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するＶＰＮサーバ接続手段と、を備えることを特徴とするＶＰＮサーバホスティングシステムである。
【０００８】
この発明において、デジタル証明書の発行を受けている情報端末から任意に選択されたメンバーのメンバーリストと、デジタル証明書の発行に用いられた秘密鍵に対応する公開鍵とをハッシュ関数の引数としてハッシュ値を計算し、このハッシュ値をＶＰＮサーバプロセスのＩＤに対応させている。そして、ＶＰＮサーバプロセスに対して情報端末が接続を要求してきた際に、デジタル証明書が検証され、当該情報端末が前記メンバーに含まれている場合にのみ、接続が許可される。したがって、グループを作ったメンバーに対して新たにデジタル証明書を発行することを必要とせず、柔軟且つ簡便にＶＰＮを構築して稼動させることができる。
【０００９】
また、請求項２に記載の発明は、請求項１に記載のＶＰＮサーバホスティングシステムにおいて、前記メンバーに含まれる少なくとも一つの情報端末が、他の情報端末に対して発行されたデジタル証明書を所有せず、且つ、該デジタル証明書を発行した証明書発行装置とは異なる証明書発行装置から発行されたデジタル証明書を所有している場合において、前記ＶＰＮサーバプロセス特定情報を前記全ての証明書発行装置のそれぞれの公開鍵と前記メンバーを特定するメンバーリストとから構成したことを特徴とする。
【００１０】
この発明によれば、複数の証明書発行装置が存在してそれぞれ異なるデジタル証明書を情報端末に発行している場合でも、異なるデジタル証明書を持つ情報端末をメンバーとしたＶＰＮを構築することができる。
【００１１】
また、請求項３に記載の発明は、請求項１または請求項２に記載のＶＰＮサーバホスティングシステムにおいて、前記各々のホストサーバは、自分の管理する前記ハッシュ値の範囲を定めた分散ハッシュテーブルを保持しており、前記ＶＰＮサーバ生成手段は、前記分散ハッシュテーブルにしたがって前記ＶＰＮサーバプロセス特定情報のハッシュ値に対応するホストサーバを選択し、該選択したホストサーバ内にＶＰＮサーバプロセスを生成することを特徴とする。
【００１２】
また、請求項４に記載の発明は、請求項１から請求項３のいずれかの項に記載のＶＰＮサーバホスティングシステムにおいて、前記ＶＰＮサーバ接続手段によってＶＰＮサーバプロセスへの接続が許可された情報端末間の通信において、前記ＶＰＮサーバプロセスと前記複数の情報端末で共有される第１のセッション鍵を生成するセッション鍵生成手段と、前記第１のセッション鍵と前記情報端末間でのみ共有される第２のセッション鍵とを用いてメッセージ認証コードが付加され、且つ前記第１のセッション鍵を用いてヘッダが暗号化されるとともに前記第２のセッション鍵を用いてペイロードが暗号化されたパケットに対し、前記第１のセッション鍵を使用してメッセージ認証ならびに前記ヘッダの復号化を行うパケット解析手段と、をさらに備えることを特徴とする。
【００１３】
また、請求項５に記載の発明は、１つまたは複数のホストサーバからなるサーバシステムにおいて前記いずれかのホストサーバに複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行させてＶＰＮを構築するＶＰＮ構築方法であって、公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するステップと、前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するステップと、を備えることを特徴とするＶＰＮ構築方法である。
【００１４】
また、請求項６に記載の発明は、複数の情報端末間を仮想的な専用回線で接続するＶＰＮサーバプロセスを実行する、１つまたは複数のホストサーバからなるＶＰＮサーバホスティングシステムにおいて、前記各ホストサーバのコンピュータに、公開鍵と秘密鍵のペアを生成し該秘密鍵で署名されたデジタル証明書を発行する証明書発行装置からデジタル証明書を取得している前記情報端末のうち、任意に指定された複数の情報端末をメンバーとして、前記証明書発行装置の公開鍵と前記メンバーを特定するメンバーリストとからなるＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスを所定の前記ホストサーバ内に生成するステップと、前記情報端末が前記ＶＰＮサーバプロセス特定情報および前記発行されたデジタル証明書を提示して前記ＶＰＮサーバプロセスへの接続を要求した際に、前記提示されたデジタル証明書によって特定される該デジタル証明書の所有者である情報端末が前記提示されたＶＰＮサーバプロセス特定情報のメンバーリストに含まれており、且つ、前記提示されたデジタル証明書が前記提示されたＶＰＮサーバプロセス特定情報の公開鍵によって検証された場合にのみ、該情報端末に対して前記提示されたＶＰＮサーバプロセス特定情報のハッシュ値をＩＤとするＶＰＮサーバプロセスへの接続を許可するステップと、を実行させるためのコンピュータプログラムである。
【発明の効果】
【００１５】
本発明によれば、複数のクライアントから任意に選択したメンバーに対してＶＰＮを構築することを柔軟且つ簡便に行うことができる。
【００１６】
また、請求項３に記載の発明によれば、ＶＰＮサーバプロセスのＩＤとして用いられているハッシュ値が分散ハッシュテーブルによって管理され、この分散ハッシュテーブルにしたがってＶＰＮサーバプロセスを生成するホストサーバが決定されるので、ホスティングシステムは自律的に多数のＶＰＮサーバプロセスをホストサーバに分散させることができる。これにより、ＶＰＮサーバプロセスの数の増大に対して、ホスティングシステムに拡張性を持たせることが可能である。
【００１７】
また、請求項４に記載の発明によれば、第１および第２のセッション鍵を使った２段階のメッセージ認証が行われるので、メッセージの改竄（ＶＰＮサーバプロセスによるものを含む）や不正なパケットの中継・受信を効果的に防止することができる。また、ＶＰＮサーバプロセスは、第１のセッション鍵によって暗号化されたヘッダ部分を復号化することはできる（これによりパケットを中継できる）が、第２のセッション鍵によって暗号化されたペイロード部分は復号化できないので、ホスティングシステムを運営している事業者に対して通信内容の秘匿性を確保することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態にかかるＶＰＮサーバホスティングシステム１０が利用されてクライアント間にＶＰＮが構築される状況を説明する図である。図１において、ＶＰＮサーバホスティングシステム１０はインターネット４０に接続されている。また、インターネット４０には、各ユーザが使用するクライアント（情報端末）２１−１〜２１−９が接続されている。本実施形態では、これらクライアントが後述する手順に従ってＶＰＮサーバホスティングシステム１０内にＶＰＮサーバプロセスを生成してＶＰＮを構築し、このＶＰＮサーバプロセスを介してＶＰＮによる相互通信を行う。なお、クライアントとしては、例えばファイルサーバやビデオサーバ、一般的なパーソナルコンピュータ等のほか、ネットワーク機能を有したあらゆる種類の家電製品・情報機器が該当する。
【００１９】
ＶＰＮサーバホスティングシステム１０は、複数台（ここでは４台とする）のホストサーバ１１ａ〜１１ｄから構成されたサーバシステムであり、例えばインターネットサービスプロバイダ等が運用しているものである。これらホストサーバ１１ａ〜１１ｄは、指定されたクライアント間をＶＰＮにより接続する処理を担うＶＰＮサーバプロセスを生成して実行するコンピュータであり、各ホストサーバ１１ａ〜１１ｄは自分の管理するＩＤに対応するＶＰＮサーバプロセスを生成して実行する。
【００２０】
証明書発行装置３１ａ〜３１ｃは、公開鍵と秘密鍵のペアを生成してクライアント２１にクライアント証明書（デジタル証明書）を発行するコンピュータである。クライアント証明書には、当該クライアント証明書の発行先でその所有者となるクライアントの名前および公開鍵と、発行者（証明書発行装置）の名前および公開鍵が記載され、さらに発行者の秘密鍵（前記公開鍵とペアになる秘密鍵）による署名が付されている。また、ここで、クライアント２１−１〜２１−３（ａ１、ａ２、ａ３）は証明書発行装置３１ａからクライアント証明書ＣＡの発行を受け、クライアント２１−４〜２１−６（ｂ１、ｂ２、ｂ３）は証明書発行装置３１ｂからクライアント証明書ＣＢの発行を受け、クライアント２１−７〜２１−９（ｕ１、ｕ２、ｕ３）は証明書発行装置３１ｃからクライアント証明書ＣＣＡの発行を受けているものとする。なお、証明書発行装置３１ａおよび３１ｂはユーザが所有し管理する一般的なパーソナルコンピュータ、証明書発行装置３１ｃは第三者認証機関が運用している認証用コンピュータであるものとする。但し、証明書発行主体は一例であり、これに限定されない。
【００２１】
次に、図２〜図４を参照して、図１の構成における４つのクライアントａ１、ｂ１、ｂ２、およびｕ１がメンバーとなってこれらメンバーだけが接続することが可能なＶＰＮを構築する場合を例に、ＶＰＮサーバホスティングシステム１０の動作を詳細に説明する。
以下、図２に示すフローチャートの流れに沿って順に説明する。
【００２２】
（１）ＶＰＮサーバプロセスの生成
まず、各証明書発行装置３１ａ〜３１ｃが公開鍵ｐｋＸと秘密鍵ｓｋＸ（但しＸ＝Ａ、Ｂ、ＣＡ）のペアを１つ生成する（ステップＳ１１）。ここで、公開鍵ｐｋＸを用いて暗号化したデータは対応する秘密鍵ｓｋＸでなければ復号化できず、秘密鍵ｓｋＸを用いて暗号化したデータは対応する公開鍵ｐｋＸでなければ復号化できない。また、秘密鍵ｓｋＸは自分（各証明書発行装置３１ａ〜３１ｃ）以外のいかなる第三者に対しても公開されることがないよう管理される。
【００２３】
また各クライアントａ１、ｂ１、ｂ２、およびｕ１は、ＶＰＮサーバプロセスへ接続する際の認証に用いる各自のクライアント公開鍵ｐｋＹとクライアント秘密鍵ｓｋＹ（但し、Ｙ＝ａ１、ｂ１、ｂ２、ｕ１）のペアを作成する。そして、各証明書発行装置３１ａ〜３１ｃは、これらのクライアント公開鍵がＶＰＮサーバプロセスに接続する権限を有するクライアントのものであることを証明するクライアント証明書ＣＡ（ｐｋａ１）、ＣＢ（ｐｋｂ１）、ＣＢ（ｐｋｂ２）、ＣＣＡ（ｐｋｕ１）を、それぞれ上記の秘密鍵ｓｋＸで署名することにより発行する（ステップＳ１２）。これらクライアント証明書は、それぞれ各クライアントａ１、ｂ１、ｂ２、およびｕ１に格納される。なお、上記のクライアント秘密鍵ｓｋＹも、いかなる第三者に対しても公開されることがないように管理される。
【００２４】
次に、上記メンバーのうち一つのクライアント（ここではクライアントａ１とする）が各メンバーにクライアント証明書を発行した全ての証明書発行装置の公開鍵とメンバーのリストとを、自分がＩＰアドレスを知っているホストサーバの１台（ホストサーバ１１ａとする）に送付することによって、ＶＰＮサーバプロセスの生成を要求する（ステップＳ１３）。ここで、上記送付するデータ（ＶＰＮサーバプロセス特定情報）の並び順は、証明書発行装置の公開鍵と当該証明書発行装置からクライアント証明書を発行されたクライアントをひとかたまりとして並べるものとする。具体的には、この例の場合、ＶＰＮサーバプロセス特定情報は、
ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝
となる。
【００２５】
ここで、上記のＶＰＮサーバプロセス特定情報のハッシュ値Ｈ（ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝）がＶＰＮサーバプロセスのＩＤ（ＶＰＮ−ＩＤ）に設定される。例えば、ハッシュ関数としてＳＨＡ−１（Secure Hash Algorithm 1）を用いた場合、ハッシュ値Ｈ（）をＶＰＮ−ＩＤに持つＶＰＮサーバプロセスは、１６０ビットのハッシュ空間における１つの点で代表させることができる。すなわち、ＶＰＮ−ＩＤをハッシュ関数ＳＨＡ−１によるハッシュ値と対応付けることによって、２１６０通りのＶＰＮサーバプロセスを管理することが可能になっている。なお、ハッシュ関数の特徴から、任意の複数のＶＰＮ−ＩＤは統計的にはハッシュ空間内に均一に分布することになる。
【００２６】
ステップＳ１３の要求をホストサーバ１１ａが受けると、各ホストサーバが相互に連携することによって、ＶＰＮサーバホスティングシステム１０を構成するホストサーバ１１ａ〜１１ｄの中から、ＶＰＮ−ＩＤがハッシュ値Ｈ（ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝）であるＶＰＮサーバプロセスを受け持つホストサーバが検索される（ステップＳ１４）。この検索には、分散ハッシュテーブル（ＤＨＴ；Distributed Hash Table）が用いられる。そして、検索の結果該当するホストサーバ（ホストサーバ１１ｃとする）に、上記のＶＰＮサーバプロセス特定情報が転送される。
【００２７】
ここで、ＤＨＴを用いたＶＰＮサーバプロセスの管理方法（ある特定のＶＰＮサーバプロセスをどのホストサーバが受け持つか）およびホストサーバの検索方法について、図３を参照して説明する。
同図には、４ビットのハッシュ空間（説明を簡単にするため便宜上４ビットで考える）を４台のホストサーバ１１ａ〜１１ｄで管理している様子が示されている。すなわち、この例では２４＝１６個のＶＰＮサーバプロセスを管理可能である。これらＶＰＮサーバプロセスのＶＰＮ−ＩＤは０，１，２，…，１５である。一方、各ホストサーバは固有の識別番号を有しており、ホストサーバ１１ａの識別番号は３、ホストサーバ１１ｂの識別番号は７、ホストサーバ１１ｃの識別番号は１１、ホストサーバ１１ｄの識別番号は１５であるものとする。このような条件において、ホストサーバ１１ａが管理するのはＶＰＮ−ＩＤ＝０〜３のＶＰＮサーバプロセスであり、ホストサーバ１１ｂが管理するのはＶＰＮ−ＩＤ＝４〜７のＶＰＮサーバプロセスであり、…というように、各ホストサーバとそれに割り当てられるＶＰＮサーバプロセスとの対応関係が決められる。そして、各ホストサーバは、自分に割り当てられたＶＰＮ−ＩＤ（すなわちハッシュ値）の範囲を定めた表であるＤＨＴを保持し、検索（下記）の際に利用する。
【００２８】
ホストサーバの検索は、以下の方法にしたがって行われる。図３に示した４ビットのハッシュ空間において、ステップＳ１３で要求されたＶＰＮサーバプロセスのＶＰＮ−ＩＤを「９」とする。ホストサーバ１１ａ（要求を受けたホストサーバ）は、自分の保持するＤＨＴを参照して、検索対象となるハッシュ値（ＶＰＮ−ＩＤ）の「９」が自分の管理する範囲内のハッシュ値であるか否かを判定する。ハッシュ値「９」はホストサーバ１１ａの管理下にないので、ホストサーバ１１ａはデータ（公開鍵ｐｋとＶＰＮ設定情報）を隣のホストサーバ１１ｂへ転送する。ホストサーバ１１ｂは同じように自分のＤＨＴを参照して判定処理を行い、ハッシュ値「９」が管理下にないのでさらに隣のホストサーバ１１ｃへ上記データを転送する。ホストサーバ１１ｃは、自分のＤＨＴに検索対象であるハッシュ値「９」が含まれるので、要求されたＶＰＮサーバプロセスを受け持つのは自分であるとの判断を下す。このような手順でルーティングが行われることによって、目的のホストサーバが検索される。
【００２９】
図２のフローチャートに戻って説明を続ける。
ステップＳ１４で検索結果に該当したホストサーバ１１ｃは、次に、ハッシュ値Ｈ（ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝）をＶＰＮ−ＩＤとするＶＰＮサーバプロセスを生成する（ステップＳ１５）。
【００３０】
（２）ＶＰＮの構築（ＶＰＮサーバプロセスへの接続）
次に、生成されたＶＰＮサーバプロセスに対して、クライアント（ここではクライアントｂ１とする）は以下の手続きにしたがってＶＰＮによる接続を行う。
まず、クライアントｂ１は、接続を希望するＶＰＮサーバプロセスのＶＰＮ−ＩＤ、すなわちハッシュ値Ｈ（ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝）をホストサーバの１台に送信することによって、必要な接続情報の問い合わせを行う（ステップＳ２１）。送信先は、ＩＰアドレスを知っているホストサーバ１１ａである。
【００３１】
ホストサーバ１１ａがＶＰＮ−ＩＤを受け取ると、上述のステップＳ１４と同様にＤＨＴを用いたルーティングによりホストサーバの検索が実行され、当該ＶＰＮ−ＩＤはホストサーバ１１ｃ（当該ＶＰＮ−ＩＤのＶＰＮサーバプロセスを生成し、稼動させているホストサーバ）へ転送される。ＶＰＮ−ＩＤを受信すると、ホストサーバ１１ｃは、自分のＩＰアドレスや問い合わせにかかるＶＰＮサーバプロセスのポート番号などの接続情報をクライアントｂ１に返送する（ステップＳ２２）。なおこの際、応答は最初に問い合わせを受けたホストサーバを経由させて返す（ホストサーバ１１ｃ→１１ａ→クライアントｂ１）。上記接続情報を受信することによって、クライアントｂ１は接続を希望するＶＰＮサーバプロセスがホストサーバ１１ｃで稼動していることを知ることになる。
【００３２】
クライアントｂ１は、次に、取得した接続情報を用いて目的のＶＰＮサーバプロセスに対する接続を要求する。具体的には、ホストサーバ１１ｃに直接、ＶＰＮサーバプロセス特定情報（ｐｋＡ，｛ａ１｝，ｐｋＢ，｛ｂ１，ｂ２｝，ｐｋＣＡ，｛ｕ１｝）とステップＳ１２で発行され格納しておいたクライアント証明書ＣＢ（ｐｋｂ１）とを送信する（ステップＳ２３）。ホストサーバ１１ｃは、上記送られてきたＶＰＮサーバプロセス特定情報のハッシュ値を計算して稼動中のＶＰＮサーバプロセスのＶＰＮ−ＩＤと一致するかどうかを検証する（ステップＳ２４）。ハッシュ値とＶＰＮ−ＩＤが一致した場合、さらに、上記クライアント証明書ＣＢ（ｐｋｂ１）に記載されている所有者（ここではクライアントｂ１）が上記ＶＰＮサーバプロセス特定情報のメンバーリストに含まれているかどうかを検証する（ステップＳ２５）。メンバーリストに含まれている場合は、さらに、当該所有者に対応する証明書発行装置の公開鍵（ここではｐｋＢ）を使ってクライアント証明書ＣＢ（ｐｋｂ１）を検証する（ステップＳ２６）。クライアント証明書ＣＢ（ｐｋｂ１）が公開鍵ｐｋＢで正しく検証できた場合は、次いで、ホストサーバ１１ｃはクライアントｂ１に１回限りのチャレンジメッセージを送り、そのメッセージに対してクライアント秘密鍵ｓｋｂ１による署名を付加して返送させる。そして、この署名をクライアント証明書ＣＢ（ｐｋｂ１）に記載されているクライアント公開鍵ｐｋｂ１によって検証し、クライアントｂ１が確かにクライアント秘密鍵ｓｋｂ１を所有していることを確認する。以上により、クライアントｂ１が正当な接続権限を持っていることが証明されるので、目的のＶＰＮサーバプロセスへの接続が許可される（ステップＳ２７）。一方、ステップＳ２４〜ステップＳ２６の検証に失敗した場合は、接続が拒否される（ステップＳ１７）。
【００３３】
以上でクライアントｂ１とＶＰＮサーバプロセスの間がＶＰＮで接続される。上記ＶＰＮサーバプロセス特定情報のメンバーに含まれる他のクライアント（例えばクライアントａ１）についても、クライアント証明書ＣＡ（ｐｋａ１）を使い同様の手続きをすることによって、ＶＰＮサーバプロセスとの接続が行われる。こうして、ＶＰＮサーバプロセスを介してメンバー間にＶＰＮが構築される。
【００３４】
（３）ＶＰＮ通信の準備
上記のように構築されたＶＰＮを利用して、メンバーのうちクライアントａ１とクライアントｂ１でＶＰＮ通信を行う手順を説明する。なお、他のメンバーであるクライアントｂ２とクライアントｕ１についても同様の手順によりＶＰＮ通信を行うことができる。
ＶＰＮサーバプロセスは、メッセージ認証とパケットの暗号化のための共有セッション鍵ＫｓｍａｃとＫｓｅｎｃを作成して、クライアントａ１とクライアントｂ１にこれら共有セッション鍵を送信する（ステップＳ３１）。送信は、送信相手のクライアント公開鍵ｐｋａ１とｐｋｂ１を使った暗号化通信により行う。この共有セッション鍵は、ＶＰＮサーバプロセスとクライアントａ１とクライアントｂ１とで共有されて、次に述べるＶＰＮの通信において使用されるものである。
【００３５】
また、クライアントａ１（またはクライアントｂ１）は、同様にメッセージ認証とパケットの暗号化のためのクライアントセッション鍵ＫｕｍａｃとＫｕｅｎｃを作成し、これらをクライアントｂ１（またはクライアントａ１）のクライアント公開鍵ｐｋｂ１（またはｐｋａ１）で暗号化した上で上記の共有セッション鍵を使ってクライアントｂ１（またはクライアントａ１）に送信する（ステップＳ３２）。クライアントｂ１（クライアントａ１）は、受信したクライアントセッション鍵を共有セッション鍵と自分のクライアント秘密鍵ｓｋｂ１（またはｓｋａ１）によって復号化し、平文のクライアントセッション鍵を取得する。このクライアントセッション鍵は、共有セッション鍵と併せてＶＰＮの通信において使用されるものであるが、上記の手順でやり取りされることによって、クライアントａ１とクライアントｂ１との間でのみ共有されることとなる。
【００３６】
上記ステップにより、共有セッション鍵とクライアントセッション鍵の共有がなされると、ＶＰＮ通信の準備が整うことになる。クライアントａ１とクライアントｂ１は、共有セッション鍵とクライアントセッション鍵を使用し、ＶＰＮサーバプロセスを介したＶＰＮによる通信を行う（ステップＳ３３）。以下、図４を参照してＶＰＮの具体的な通信方法を説明する。
【００３７】
（４）ＶＰＮによる通信の実行
図４は、ＶＰＮによりクライアントａ１からクライアントｂ１へ通信する場合に送受信されるパケットの構造を示した図であり、上述した合計４つのセッション鍵を用いてメッセージ認証とパケットの暗号・復号化が行われる様子を示したものである。送信者であるクライアントａ１は、パケットのヘッダ部分をＫｓｅｎｃ、ペイロード部分をＫｕｅｎｃでそれぞれ暗号化し、さらに、メッセージ（ヘッダ＋ペイロード）とＫｕｍａｃから作成したメッセージ認証コードＭＡＣｕならびにメッセージとＫｓｍａｃから作成したＭＡＣｓをパケットの末尾に付加する。なお、メッセージ認証コード（ＭＡＣ；Message Authentication Code）は、所定のＭＡＣ関数にメッセージと鍵を入力して得られる固定長ビットの出力値である。そして、入力に使った鍵を送信者と受信者で共有しておき、受信したメッセージと共有鍵とから計算したＭＡＣが、受信したメッセージに付加されているＭＡＣと一致すれば、受信者はそのメッセージが改竄されていないことを確認（メッセージ認証）できる。
【００３８】
ＶＰＮサーバプロセスは、上記ＭＡＣの付加と暗号化がなされたパケットに対し、共有セッション鍵Ｋｓｍａｃを使ってメッセージ認証コードＭＡＣｓを検証し、検証に成功した場合には、パケットからＭＡＣｓを削除するとともに、共有セッション鍵Ｋｓｅｎｃを使ってヘッダを復号化した上で当該ヘッダにしたがって宛先であるクライアントｂ１にパケットを送り届ける。なおこの時、ＶＰＮサーバプロセスはクライアントセッション鍵を所有していないため、ペイロードを復号化することはできない。
【００３９】
クライアントｂ１は、共有セッション鍵Ｋｓｅｎｃでヘッダを解析して自分宛てのパケットを選別し、当該パケットの末尾に付加されているメッセージ認証コードＭＡＣｕをクライアントセッション鍵Ｋｕｍａｃにより検証する。検証できたら、クライアントセッション鍵Ｋｕｅｎｃでペイロードを復号化し、平文の送信データを得る。こうして、通信内容をＶＰＮサーバプロセスに秘匿したまま、クライアントａ１とクライアントｂ１とでＶＰＮの通信が行われる。
【００４０】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、ＤＨＴ自体はＰ２Ｐ（Peer to Peer）のファイル交換などで用いられる既存の技術であり、ＣｈｏｒｄやＣＡＮ、Ｔａｐｅｓｔｒｙなど種々ある方式のいずれを適用することも可能である。
【００４１】
また、サーバ装置のコンピュータに、上記実施形態にかかるＶＰＮサーバホスティングシステムの機能を実現するためのコンピュータプログラムを実行させるようにすることもできる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態にかかるＶＰＮサーバホスティングシステムが利用されてクライアント間にＶＰＮが構築される状況を説明する図である。
【図２】図１のＶＰＮサーバホスティングシステムの動作を示したフローチャートである。
【図３】ＤＨＴによりＶＰＮサーバプロセスを管理する仕組みを説明した図である。
【図４】ＶＰＮ通信において送受信されるパケットの構造を示した図である。
【符号の説明】
【００４３】
１０…ＶＰＮサーバホスティングシステム  １１ａ〜１１ｄ…ホストサーバ  ２１…クライアント（情報端末）  ３１…証明書発行装置  ４０…インターネット
【図１】
2008028576.tif 000003
【図２】
2008028576.tif 000004
【図３】
2008028576.tif 000005
【図４】
2008028576.tif 000006