以下、本発明による実施例1の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例1)
本発明の実施例1は、基本的な実施態様を示しており、本発明の趣旨を逸脱するものでないならば、種々の実施例に拡張可能である。
まず、実施例1の仮想端末を用いたネットワークシステムの構成を説明する。
(ネットワークシステムの構成)
図1は、実施例1のネットワークシステムの全体構成図である。また、図2は、本発明による実施例1の各仮想端末及び仮想スイッチにおいて実現される仮想ネットワークシステムの論理構成図である。図1に示すように、実施例1のネットワークシステムは、1つのサーバ2と3つのクライアント端末(クライアント端末1、クライアント端末3 及びクライアント端末4)とを備え、各々がネットワーク5を介して接続されている。しかしながら、図1に示す構成は、説明の便宜のためであり、これに限定するものではない。例えば、複数のクライアント端末と複数のサーバとがネットワーク5を介して接続されるようなネットワークシステムを構成することができる。尚、一般的な“クライアント端末の認証”を実現する場合において、サーバ2は1つで十分な場合が多い。尚、図1及び図2において、クライアント端末1、クライアント端末3及びクライアント端末4は、それぞれ仮想端末ユーザアプリケーションによって仮想ディスクを用いて起動される仮想端末1000、仮想端末3000及び仮想端末4000をそれぞれ有することを示しているが、詳細な説明は後述する。
ここで、実施例1に係るネットワークシステムにおいては、サーバ2と各クライアント端末との間の通信は、通信傍受の可能性などが否定できないなど、通信の秘匿性を保証するものでなくともよい(後述する他の実施例においても同様である。)。
次に、実施例1のクライアント端末及びサーバの構成を説明する。図3は、本発明による実施例1のネットワークシステムにおけるクライアント端末の構成を例示的に示す図である。図4は、本発明による実施例1のネットワークシステムにおけるサーバの構成を例示的に示す図である。更に、図5は、本発明による実施例1の各仮想端末及び仮想スイッチの構成図である。各クライアント端末(クライアント端末1、クライアント端末3 及びクライアント端末4)は同様な構成を有している。
(クライアント端末の構成)
図3及び5に例示するように、クライアント端末1として機能するコンピュータは、キーボードなどが接続可能な入力部11、液晶ディスプレイなどが接続可能な出力部12、クライアント端末1の外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部13、中央演算処理装置(Central Processing Unit:CPU)14(キャッシュメモリなどを備えていてもよい。)、メモリであるRAM 15及びROM 16、ハードディスクなどの外部記憶装置17、並びにこれらの入力部11、出力部12、通信部13、CPU 14、RAM 15、ROM 16及び外部記憶装置17間のデータのやり取りが可能なように接続するバス18を有している。また必要に応じて、クライアント端末1に、CD‐ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
更に、CPU 14は、後述するように、認証情報生成部141、暗号通信処理部103及び仮想ディスク暗号処理部101の機能を制御部(即ちOS)190により制御するように動作させることができ、各機能は、CPU 14により、外部記憶装置17(或いはROM 16など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM 15に読み込まれ、解釈実行・処理されることにより、実現することができる。
認証情報生成部141は、後述するように、RAM 15から十分大きい数N、暗号仮想ディスクsi及び認証情報生成因子Rから所定の演算を行って認証情報R(si)を生成する機能を有する。
暗号通信処理部103は、後述するように、サーバ2の仮想スイッチ203とのVPN接続を確立するためのデータを生成する機能を有する。VPN接続を確立するためには、具体的にはIKE等の鍵交換プロトコルを用いて、サーバ2及びクライアント端末1の双方で暗号通信用鍵を共有する。
仮想ディスク暗号処理部101は、後述するように、暗号仮想ディスクsiをディスク復号鍵kiで復号し、仮想ディスクhiを生成する機能を有する。或いは、仮想ディスクhiをディスク暗号鍵(即ち、ディスク復号鍵)kiで暗号化し、暗号仮想ディスクsiを生成する機能を有する。または、後述するように、他の実施例では、暗号更新履歴miをディスク復号鍵kiで復号し、更新履歴diを生成する機能を有する。同様に、更新履歴diをディスク暗号鍵(即ち、ディスク復号鍵)kiで復号し、暗号更新履歴miを生成する機能を有する。
制御部190は、認証情報生成部141、暗号通信処理部103、仮想ディスク暗号処理部101の機能を制御し、各実施例で後述される各機能、例えばRAM15、ROM16、及び、外部記憶装置17、或いはその他後述する乱数の生成などの各種演算機能を制御する。
更に、クライアント端末1内で仮想端末1000として機能させるためのプログラムが、外部記憶装置17(或いはROM 16など)に記憶されており、CPU 14により、このプログラムの処理に必要なデータが必要に応じてRAM 15に読み込まれ、解釈実行・処理される。これにより、クライアント端末1に、Webブラウザなどの仮想端末ユーザアプリケーション1018、仮想端末外部記憶装置1017、仮想端末記憶部1015、仮想端末制御部1190及び仮想端末通信部1013を備える仮想端末1000を構成させることができる。
仮想端末1000が備える仮想端末外部記憶装置1017、仮想端末記憶部1015、仮想端末制御部1190及び仮想端末通信部1013の各々の機能は、仮想端末1000上でのみ機能することを除き、それぞれクライアント端末1の外部記憶装置17、RAM 15、制御部190及び通信部13の各々の機能と実質的に同一とよいが、仮想ネットワークシステムの通信に用いられるデータの生成等については、後述する。
ここで、以下、仮想端末上で例えばWebブラウザなどの通信手段として機能させるためのプログラムを仮想端末ユーザアプリケーションと称する。仮想端末ユーザアプリケーション1018は、仮想端末の外部記憶装置1017に格納されるものとし、仮想端末ユーザアプリケーション1018の利用者は、仮想ディスクを用いて仮想端末1000の起動することにより利用可能となる。ここで、仮想端末ユーザアプリケーション1018とは、例えば仮想端末外部記憶装置1017に格納されるような、あるデータをネットワークシステムに接続される他の端末へと送信する機能を有するプログラムをいい、Webブラウザ等をいう。他の仮想端末におけるユーザアプリケーションも同様である。そのような仮想端末ユーザアプリケーション1018は、CPU 14により、外部記憶装置1017に記憶されたプログラムとして、このプログラムの処理に必要なデータが必要に応じて仮想端末記憶部1015に読み込まれ、解釈実行・処理されることにより、仮想端末及び仮想スイッチとの通信を実現することができる。
従って、本実施例におけるユーザアプリケーション1018は、仮想環境(即ち、仮想端末と仮想スイッチとで構成される仮想ネットワークシステム)のアプリケーションデータ(例えば、企業内の特定業務用データ)を、仮想端末上で作成又は処理することを可能とする。
仮想端末制御部1190は、仮想環境において他の仮想端末とのデータ通信を可能とするために、仮想端末1000の仮想端末ユーザアプリケーション1018で生成したアプリケーションデータに仮想環境のサブネット(例えば、TCP、IP、イーサネット(登録商標)ヘッダ及びトレーラ)を付し、仮想端末通信部1013を制御し、仮想環境内での通信を可能とする。また、クライアント端末1の制御部190は、暗号通信処理部103を制御して、「仮想環境のサブネットの付されたアプリケーションデータ」に認証化データを更に付与し、暗号化することができる。これにより、クライアント端末1の制御部190は、その暗号化された「仮想環境のサブネットの付されたアプリケーションデータ」に、実環境(即ち、実ネットワーク)のサブネット(例えば、TCP、IP、イーサネット(登録商標)ヘッダ及びトレーラ)を付し、通信部13を制御して、実ネットワーク内での通信を可能とする。より具体的な仮想ネットワークシステムの通信に用いられるデータの生成等については、後述する。
実施例1において、クライアント端末1の外部記憶装置17には、証明対象である所定の暗号仮想ディスクsを保持していることを証明するのに必要となるプログラム(即ち、エージェントソフトウェア)及びこのプログラムの処理において必要となるデータ(暗号仮想ディスクsなど)などが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAM15又は外部記憶装置17に適宜保存記憶される。
より具体的には、クライアント端末1の外部記憶装置17(或いはROM16など)には、証明情報を生成するためのプログラム及びこのプログラムの処理において必要となるデータ(暗号仮想ディスクsなど)などが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
本明細書において証明対象となる暗号仮想ディスクsは、説明の便宜上、ビット列からなるものとする。特に、クライアント端末1及びサーバ2をコンピュータによって実現する場合は、如何なる情報(例えば人間が意味理解可能なテキスト形式の情報などがある。)であっても、2進数表記されるビット列として外部記憶装置17又は外部記憶装置27に保存記憶されることは言うまでもない。
以下、暗号仮想ディスクs0は、初期値を意味する暗号仮想ディスクsであり、暗号仮想ディスクsiは、任意値を意味する暗号仮想ディスクsであり、小文字符号iは任意の整数を表す。同様に、ディスク暗号鍵k0は初期値を意味する暗号仮想ディスクkであり、ディスク暗号鍵kiは任意値を意味する暗号仮想ディスクkである。同様に、仮想ディスクh0は初期値を意味する仮想ディスクhであり、仮想ディスクhiは任意値を意味する仮想ディスクhである。
次に、実施例1のサーバの構成を説明する。
(サーバの構成)
図4及び図5に例示するように、サーバ2として機能するコンピュータは、キーボードなどが接続可能な入力部21、液晶ディスプレイなどが接続可能な出力部22、サーバ2の外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部23、中央演算処理装置(CPU)24(キャッシュメモリなどを備えていてもよい。)、メモリであるRAM 25及びROM 26、ハードディスクなどの外部記憶装置27、並びにこれらの入力部21、出力部22、通信部23、CPU 24、RAM 25、ROM 26及び外部記憶装置27間のデータのやり取りが可能なように接続するバス28を有している。また必要に応じて、サーバ2に、CD‐ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
更に、CPU 24は、後述するように、検証情報生成部241、乱数生成部242、認証情報生成因子生成部243、判定部244、仮想ディスク暗号処理部201、仮想ディスク暗号鍵生成部202の機能を制御部(即ち、OS)290により制御するように動作させることができ、各機能は、CPU 24により、外部記憶装置27(或いはROM 26など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM 25に読み込まれ、解釈実行・処理されることにより、実現することができる。
検証情報生成部241は、後述するように、システムにおいて共通のパラメータである、十分大きい数Nと、N未満の数gと、仮想ディスク暗号処理部201により処理された暗号仮想ディスクsiを用いて、仮想ディスク検証情報C(si)を生成する機能を有する。
乱数生成部242は、後述するように、認証又は検証に用いる乱数を発生させる機能を有する。
認証情報生成因子生成部243は、後述するように、十分大きい数N、N未満の数gと、乱数r(識別子)を用いて、クライアント端末によって生成される認証情報R(si)のための認証情報生成因子Rを生成する機能を有する。
判定部244は、後述するように、クライアント端末によって生成される認証情報R(si)とサーバの外部記憶装置27に記憶される仮想ディスク検証情報C(s0)との間において、所定の関係が成立するか否かを判定する機能を有する。所定の関係が成立する場合に、所定の判定結果情報αをRAM 25に送出する。
仮想ディスク暗号処理部201は、後述するように、暗号仮想ディスクsiをディスク復号鍵kiで復号し、仮想ディスクhiを生成する機能を有する。或いは、仮想ディスクhiをディスク暗号鍵(即ち、ディスク復号鍵)kiで暗号化し、暗号仮想ディスクsiを生成する機能を有する。または、後述するように、他の実施例では、暗号更新履歴miをディスク復号鍵kiで復号し、更新履歴diを生成する機能を有する。或いは、更新履歴diをディスク暗号鍵(即ち、ディスク復号鍵)kiで復号し、暗号更新履歴miを生成する機能を有する。
仮想ディスク暗号鍵生成部202は、後述するように、仮想ディスクhi又は更新履歴diを暗号化するためのディスク暗号鍵kiを生成する機能を有する。
制御部290は、後述するように、検証情報生成部241、乱数生成部242、認証情報生成因子生成部243、判定部244、仮想ディスク暗号処理部201及び仮想ディスク暗号鍵生成部202の機能を制御し、各実施例で後述される各機能、例えばRAM25、ROM26、及び、外部記憶装置27、或いはその他後述する乱数の生成などの各種演算機能を制御する。
更に、サーバ2内で仮想スイッチ203として機能させるためのプログラムが、外部記憶装置27(或いはROM 26など)に記憶されており、CPU 24により、このプログラムの処理に必要なデータが必要に応じてRAM 25に読み込まれ、解釈実行・処理される。これにより、サーバ2内に仮想スイッチ203を備えることができる。これにより、サーバ2に、仮想スイッチ203を構成させることができる。
サーバ2では、外部記憶装置27には、各クライアント端末が暗号仮想ディスクsを保持していることを証明するのに必要となるプログラム及びこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAM25又は外部記憶装置27に適宜保存記憶される。
より具体的には、サーバ2の外部記憶装置27(或いはROM26など)には、検証情報を生成するためのプログラム、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム、クライアント端末から受信した情報とサーバに保持される情報との一致を判定するためのプログラム及びこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
次に、クライアント端末内に設けられる仮想端末、及び、サーバ内に設けられる仮想スイッチについて説明する。
(仮想端末及び仮想スイッチ)
図1に示されているように、各クライアント端末内には、前述したように仮想端末が各々設けられ、サーバ2内には、前述したように仮想スイッチ203が設けられている。前述したように、図2は、各仮想端末及び仮想スイッチにおいて実現されるネットワークシステムの論理構成図である。クライアント端末1、クライアント端末3及びクライアント端末4で、それぞれ動作する仮想端末1000、仮想端末3000、及び仮想端末4000は、サーバ2で動作する仮想スイッチ203を介して接続される。従って、クライアント端末及びサーバが接続可能な実ネットワークに対して隔離した、各仮想端末及び仮想スイッチからなる仮想ネットワークシステムが構成される。尚、仮想スイッチは、サーバによって仮想的に複数のスイッチに分割できることは知られており、仮想スイッチをルータとしても利用できる。即ち、仮想スイッチ毎に個別の運用ポリシーを適用すれば、運用ポリシーの異なる複数の仮想ネットワークを構成することができる。
次に、実施例1のネットワークシステムにおける、検疫ネットワークの事前処理について説明する。
[動作の説明]
(事前処理)
図6は、エージェントソフトウェアにより実現される仮想端末の検査動作のための事前処理を行うフローチャートである。より具体的には、クライアント端末1上で動作する仮想端末を、サーバ2側で管理される仮想ネットワークに接続するための事前処理を示している。
ステップS101において、サーバ管理者の要求に応じて、サーバ2の入力部21は、認証に必要とされる所定の情報を介して取得し、サーバ2の制御部290の制御により、その所定の情報に基づいてクライアント端末1の仮想端末1000の利用者を示すユーザ識別子uと、ユーザ識別子uに対応するユーザパスワードpを生成する。
ステップS102において、クライアント端末1の利用者の要求に応じて、クライアント端末1の入力部11は、ステップS101で生成されたユーザ識別子uとユーザパスワードpを可搬メディア等の安全な手段を用いながら取得し、クライアント端末1の制御部190は、そのユーザ識別子uとユーザパスワードpを外部記憶装置17に保存する。
限定するものではないが、安全性の見地から、ユーザ識別子uとユーザパスワードpは外部から秘匿されているものとする。
ステップS103及びS104において、システムにおいて共通のパラメータとして、十分大きい数Nと、N未満の数gが、各制御部の制御により、クライアント端末1の外部記憶装置17及びサーバ2の外部記憶装置27にそれぞれ格納される。尚、N未満の数gは、予め外部記憶装置17及び外部記憶装置27に保存記憶されていてもよい。安全性の見地から、Nは素因数分解が困難、若しくは知られていない数であることが望ましい。
ステップS105において、予め定められた自然数νが、制御部290の制御により、サーバ2の外部記憶装置27に保存記憶される。尚、そのような自然数νは、予め格納されていてもよい。
ステップS106において、サーバ管理者の要求に応じて、サーバ2の入力部21は、クライアント端末1の仮想端末1000が利用する仮想ディスクh0を取得し、サーバ2の制御部290は、仮想ディスクh0を外部記憶装置27に記憶する。尚、仮想ディスクh0は、前述したように仮想端末を起動する際に必要とされる所定のディスク形式の情報ファイルである。
ステップS107において、サーバ2の制御部290は、仮想ディスク暗号鍵生成部202を制御し、仮想ディスクh0を暗号化するためのディスク暗号鍵k0を生成する。
ステップS108において、サーバ2の制御部290は、仮想ディスク暗号処理部201を制御し、ディスク暗号鍵k0を用いて仮想ディスクh0を暗号化し、暗号仮想ディスクs0を生成する。また、サーバ2の制御部290は、暗号仮想ディスクs0を外部記憶装置27に格納する。
ステップS109において、サーバ2の制御部290は、外部記憶装置27からN、g、ν、及び暗号仮想ディスクs0を読み込み、それぞれをRAM 25の所定の領域に格納しておく(図5参照)。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するものとする。
更に、サーバ2の検証情報生成部241は、RAM 25からN、g、暗号仮想ディスクs0を読み込み、式(1)に従った演算を行い、この演算結果である仮想ディスク検証情報C(s0)をRAM 25の所定の領域に格納する(図5参照)。ここでは、ビット列の暗号仮想ディスクs0を自然数の2進数表記と同一視した。
ステップS110において、制御部290は、仮想ディスクh0を利用するユーザを示すユーザ識別子u、ユーザ識別子uに対応するユーザパスワードp、仮想ディスク検証情報C(s0)及びディスク暗号鍵k0の組を、外部記憶装置27内の所定の領域に記憶保存された認証テーブル(表1参照)に登録する。
ステップS111及びS112において、サーバ2の制御部290は、通信部23を制御することにより、バス18及び28を介してクライアント端末1へ暗号仮想ディスクs0を送信する。この送信には、ネットワーク接続によらず可搬メディアを用いて移動してもよい。
ステップS113において、サーバの制御部290は、外部記憶装置27及びRAM 25の認証テーブル内から、仮想ディスクh0および暗号仮想ディスクs0を削除する。ここで、削除とは、対象となる情報が格納されていた格納領域を開放することであり、例えば、上書き(新たな情報を格納する)可能な状態にすること、或いはNull値で格納領域を上書きすることをいう。
以上により、実施例1のネットワークシステムにおける、検疫ネットワークの事前処理が終了する。
次に、実施例1のネットワークシステムにおいて、クライアント端末1上で動作する仮想端末1000を、サーバ2側で管理される仮想ネットワークに接続する動作について説明する。
(接続処理)
図7は、クライアント端末1上で動作する仮想端末1000を、サーバ2側で管理される仮想ネットワークに接続する動作を示すフローチャートである。概略として、サーバ2は、起動前の仮想端末1000の状態を検査し、検査に合格すれば、仮想端末1000のVPNによる仮想ネットワークの接続、及び、仮想端末1000の起動を許可する。VPN接続の確立、仮想端末の起動・終了、VPN接続の切断に至る一連の処理を「セッション」と表現する。
ステップS201及びS202において、まず、クライアント端末1がサーバ2に対してセッション開始要求を行う。具体的には、クライアント端末1の制御部190と、サーバ2の制御部290は、ユーザ識別子uとユーザパスワードpを用いてクライアント端末のユーザ認証を行うために、バス18及び28を介して通信を行う。
ステップS203及びS204において、クライアント端末1の制御部190と、サーバ2の制御部290は、ユーザ識別子uとユーザパスワードpを用いてクライアント端末のユーザ認証を行う。ユーザ認証の具体例としては、MS-CHAPv2等の認証方法を用いる。ユーザ認証が正しく完了しなかった場合には、不正なユーザと判断し、セッション開始要求を拒否して処理を終了する。ユーザ認証が正しく完了した場合には、正規のユーザと判断して処理を続行する。
次に、ステップS205において、サーバ2の制御部290は、乱数生成部242を制御して、RAM25からνを読み込み、高々22ν程度の大きさの乱数r(識別子)を生成し、乱数rをRAM25の所定の格納領域に格納する(図5参照)。ここで、実施例1では、乱数生成部242が識別子である乱数rを生成するとして説明するが、予め所定の値を識別子として外部記憶装置27に保存記憶しておき、サーバ2の制御部290は、乱数生成部242を制御して、この値を外部記憶装置27から読み込むとしてもよい。この場合には、安全性の見地から、所定の値をサーバ2の外部から秘匿しておかなければならない。
ステップS206において、サーバ2の制御部290は、認証情報生成因子生成部243を制御して、RAM25からN、g、rを読み込み、式(2)に従った演算を行い認証情報生成因子Rを生成し、この演算結果である認証情報生成因子RをRAM 25の所定の領域に格納する(図5参照)。また、ステップS207において、サーバの制御部290は、通信部23を制御して、認証情報生成因子Rを適宜にRAM25から読み込んで、クライアント端末1に対して送信する。
尚、ステップS109、S205及びS207において生成された仮想ディスク検証情報C(s0)、乱数r及び認証情報生成因子Rは、制御部290の制御によって、外部記憶装置27に保存記憶される。
ステップS208において、クライアント端末1の制御部190は、通信部13を制御して、ステップS207でサーバ2から送信された認証情報生成因子Rを受信し、受信した認証情報生成因子Rを外部記憶装置17に保存記憶する。更に、制御部190は、外部記憶装置17からN、暗号仮想ディスクsi及び認証情報生成因子Rを読み込み、RAM 15の所定の格納領域に格納する。
ステップS209において、制御部190は、認証情報生成部141を制御して、RAM 15からN、暗号仮想ディスクsi及び認証情報生成因子Rを読み込み、式(3)に従った演算を行って認証情報R(si)を生成し、この演算結果である認証情報R(si)をRAM 15の所定の格納領域に格納する(図5参照)。
ステップS210において、制御部190は、通信部13を制御して、認証情報R(si)を適宜にRAM15から読み込んで、サーバ2に対して送信する(図5参照)。
ステップS211において、サーバ2の制御部290は、通信部23を制御して、ステップS210において送信された認証情報R(si)を受信し、この認証情報R(si)を外部記憶装置27に保存記憶する(図5参照)。次に、制御部290は、判定部244を制御して、RAM 25内の認証テーブルからS204で認証したユーザ識別子uを検索し、ユーザ識別子uと組で登録されている仮想ディスク検証情報C(si)、並びに、N、乱数r及び認証情報R(si) を外部記憶装置27から読み込み、それぞれRAM 25の所定の格納領域に格納する(図5参照)。
ステップS212において、次にサーバ2の判定部244は、RAM 25からN、乱数r、認証情報R(si)及び仮想ディスク検証情報C(si)を読み込み、式(4)に示す関係が成立するか否かの検証を行う(図5参照)。この検証結果が関係成立しない場合(図示N)には、ステップS213に進み、制御部290は、クライアント端末が保有する暗号仮想ディスクsiに対して前回のセッション終了以降に不正な処理が施された疑いがあると判断し、クライアント端末1からのセッション開始要求を拒否して処理を終了する。この検証結果が関係成立する場合(図示Y)には、後述するステップS214に進む。
ここで、式(4)が成立する場合には、クライアント端末1が暗号仮想ディスクsiを保持していることを表し、式(4)に示す関係が成立しない場合は、クライアント端末1が暗号仮想ディスクsiを保持しているとは限らないことを表すことに留意しなければならない。
尚、ステップS213でセッション開始要求を拒否されたクライアント端末1について、再度セッション開始が可能な状態にするには、仮想ディスクh0の再登録が必要となる。具体的には、まず、制御部290の制御により、サーバ2側の再生成部(図示せず)を制御して、暗号仮想ディスクsiを安全な手段(可搬ディスク利用、又はユーザ識別子uの公開鍵で暗号化する等)を用いて、外部記憶装置27に保存記憶及びRAM25の所定の領域に格納する。次に、サーバ2の制御部290によって仮想ディスク暗号処理部201を制御して、RAM25から暗号仮想ディスクsiを取り出し、ステップS107で生成されたディスク暗号鍵(即ち、ディスク復号鍵)kiで復号し、仮想ディスクhiを生成する。次に、サーバ2の制御部290によってその仮想ディスクhiの内容が、ネットワークシステムヘ接続することを許可できる状態かを確認した後、前述したように、仮想ディスクhiを事前処理の仮想ディスクh0として、ステップS106〜S110と同様な処理を行い再登録する。そのような再生成部の機能は、制御部290により制御することができ、CPU 24により、外部記憶装置27(或いはROM 26など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM 25に読み込まれ、解釈実行・処理されることにより、実現することができる。
ステップS212における検証の結果が正しい場合(図示Y)には、クライアント端末1からのセッション開始要求を受け入れたものとして処理を続行する。
ステップS214において、サーバ2の制御部290は、クライアント端末1が保有する暗号仮想ディスクsiに対応するディスク復号鍵kiを外部記憶装置27から読み出し、ステップS215において、制御部290は、通信部23を制御してディスク復号鍵kiをクライアント端末1に送信する。尚、ステップS214におけるディスク復号鍵kiの送付は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS216において、クライアント端末1の制御部190は通信部13を制御し、ディスク復号鍵kiをサーバ2から受信する。
ステップS217において、制御部190は、仮想ディスク暗号処理部101を制御して、暗号仮想ディスクsiをディスク復号鍵kiで復号し、仮想ディスクhiを生成する。尚、この時点で暗号仮想ディスクsiは削除せず、外部記憶装置17に保持する。
ステップS218において、制御部190の制御により、仮想ディスクhiが正しい形式で作成されたか否かを検証する。例えば、ステップS106において前述した、クライアント端末1の仮想端末1000が利用する仮想ディスクh0とディスク形式が一致しているか否かを検証する。
ステップS218の検証の結果、仮想ディスクhiが正しい形式で作成されなかった場合(図示N)は、サーバ2が正しいディスク復号鍵kiを提示できなかったことを意味しており、ステップS219に進み、制御部190は、不正なサーバがなりすましている疑いがあると判断して、セッション開始要求の処理を中断して処理を終了する。
ステップS218の検証の結果、復号処理が正常に完了した場合(図示Y)は、制御部190は、正規のサーバと判断して、ステップS220に進み、処理を続行する。
ステップS220及びS221において、前述までのステップにより、クライアント端末1とサーバ2で相互に認証が行われたところで、クライアント端末1の暗号通信処理部103及びサーバ2の仮想スイッチ203は、各々の制御部によって制御され、VPN接続を確立する。具体的にはIKE等の鍵交換プロトコルを用いて、暗号通信用鍵を双方で共有する。
更に、ステップS221では、サーバ2の仮想スイッチ203は、クライアント端末1のユーザ識別子u、及びユーザ識別子uとの暗号通信用鍵の組を、RAM 25内の接続管理テーブル(表2参照)に登録する。
次に、VPN接続が確立した後、ステップS222において、クライアント端末1は以降の処理で不要となる認証情報生成因子R、認証情報R(si)及びディスク復号鍵kiを、外部記憶装置17及びRAM15から削除する。
また、サーバ2も同様に、ステップS223において、以降の処理で不要となる認証情報生成因子R、認証情報R(si)及び乱数rを、外部記憶装置27及びRAM25から削除する。
ステップS224において、クライアント端末1の制御部190は、仮想ディスクhiを用いて仮想端末1000を起動する。
同様に、ステップS225において、サーバ2の制御部290は、仮想スイッチ203が未起動であれば起動する。
次に、仮想ディスクhiを用いて起動した各仮想端末と、仮想スイッチ203との通信処理について説明する。
(通信処理)
ここで、クライアント端末3とクライアント端末4を含めて説明する。クライアント端末3 及び4内部の構成要素に対する参照番号については、クライアント端末1の構成要素に付された参照番号の最上位の桁“1”を、それぞれ“3”及び“4”に置き換えて説明する(例:通信部13に対して通信部33又は通信部43、仮想端末1000に対して仮想端末3000又は仮想端末4000〕。
また、クライアント端末3の利用者(ユーザ識別子u’)及びクライアント端末4の利用者(ユーザ識別子u”)も、上記のクライアント端末1の利用者(ユーザ識別子u)と同様にサーバとのVPN接続を確立し、仮想端末3000及び4000を起動した状態として説明する。
以降、図8A及び図8Bを用いて、仮想端末1000のユーザアプリケーション1018(例:Webブラウザ)と仮想端末3000のユーザアプリケーション3018(例:Webサーバ)が通信を行う動作について説明する。
図8A及び図8Bは、本発明による実施例1の仮想端末ユーザアプリケーションと仮想端末ユーザアプリケーションが通信を行う動作を示すフローチャートである。
まず、ステップS301において、仮想端末1000の仮想端末ユーザアプリケーション1018は、仮想端末3000のユーザアプリケーション3018宛にデータ91を送信する。
ステップS302において、仮想端末1000の制御部1190は、データ91に対して仮想端末3000宛のプロトコルヘッダ、IPヘッダ、イーサネット(登録商標)(Ethernet)におけるEthernetヘッダとトレーラを付与し、仮想ネットワーク用のEthernetフレーム92を生成する。Ethernetヘッダ及びトレーラの付与方法については、当業者において知られており、説明を省略する。
ステップS303において、仮想端末1000の制御部1190は、通信部1013を制御してEthernetフレーム92を、暗号通信処理部103に送出する。
ステップS304において、クライアント端末1の制御部190は、仮想端末1000からEthernetフレーム92が送出されたことを検知すると、ステップS305において、暗号通信処理部103を制御して暗号通信処理を開始する。
ステップS306において、制御部190は、暗号通信処理部103を制御して、サーバ2の仮想スイッチ203との間で確立したVPN接続に基づき、Ethernetフレーム92に対して暗号処理を施し、暗号データ93にする。
次に、ステップS307において、制御部190は、暗号データ93に対してサーバ2の仮想スイッチ203宛のプロトコルヘッダ、IPヘッダ、Ethernetヘッダとトレーラを付与し、実ネットワーク用のEthernetフレーム94を生成する。
ステップS308において、制御部190は、通信部13を制御して、Ethernetフレーム94を、実ネットワークを介してサーバ2に送出し、これにより、ステップS309で、このEthernetフレームは実ネットワークを介してサーバ2の通信部23に到達する。
ステップS310において、サーバ2の制御部290は、Ethernetフレーム94からプロトコルヘッダ、IPヘッダ、Ethernetヘッダとトレーラを解釈し、暗号データ93を抽出する。
ステップS311において、制御部290は仮想スイッチ203を制御し、暗号データ93を受信した通信経路から、クライアント端末1の暗号通信処理部103からの暗号データ93を送信されたものであることを認識する。
引き続き、ステップS312において、仮想スイッチ203は、ユーザ識別子uとの間、具体的にはクライアント端末1の暗号通信処理部103との間で確立したVPN接続に基づき、暗号データ93に対して復号処理を施し、Ethernetフレーム92を抽出する。
ステップS313において、仮想スイッチ203は、Ethernetフレーム92の送信元MACアドレスと宛先MACアドレスを読み取る。
ステップS314において、仮想スイッチ203は、読み取った送信元MACアドレスを、クライアント端末1のユーザ識別子uに対応するMACアドレスとして学習し、接続管理テーブル(表2参照)のユーザ識別子uのエントリに登録する。MACアドレスの学習方法は、当業者において知られる既知の方法をいい、その説明を省略する。
ステップS315において、次に仮想スイッチ203は、読み取った宛先MACアドレスが学習済みであるか、具体的にはRAM 25内の接続管理テーブルに登録されているかを確認する。
ステップS315で、読み取った宛先MACアドレスがRAM 25内の接続管理テーブルに登録がある場合(図示Y)、ステップS316において、仮想スイッチ203は、当該MACアドレスが含まれるエントリのユーザ識別子、及びそのユーザ識別子との暗号通信用鍵を調べる。
ここでは、ステップS316で、クライアント端末3の利用者(ユーザ識別子u’)、及びユーザ識別子u’との暗号通信用鍵を取得したとする。次に、ステップS317に進み、仮想スイッチ203は、ユーザ識別子u’との間、具体的にはクライアント端末3の暗号通信部303との間で確立したVPN接続に基づき、Ethernetフレーム92に対して暗号処理を施し、暗号データ93aとする。
次に、ステップS318において、制御部290は、暗号データ93aに対してクライアント端末3宛のプロトコルヘッダ、IPヘッダ、Ethernetヘッダとトレーラを付与し、実ネットワーク用のEthernetフレーム94aを生成する。
次に、ステップS319において、制御部290は、通信部23を制御してEthernetフレーム94aを例えばクライアント端末3の通信部33に送出する。このようにしてEthernetフレーム94aは、後述するステップS326で、ネットワークを介してクライアント端末3の通信部33に到達することになる。
一方、ステップS315で接続管理テーブルにMACアドレスの登録がない場合(図示N)、ステップS320において、仮想スイッチ203は、接続管理テーブルに記載のVPN接続を確立している全てのクライアント端末(ただし該Ethernetフレームの送信元は除く)に対してEthernetフレーム92を送信する。
次に、ステップS321において、仮想スイッチ203は、接続管理テーブルに記載の全てのエントリ(即ち、クライアント端末)について、外部記憶装置27から、エントリされているユーザ識別子、及びそのユーザ識別子との暗号通信用鍵を調べて取得する。実施例1においては、クライアント端末3の利用者(ユーザ識別子u’)とクライアント端末4の利用者(ユーザ識別子u”)、及び、その各々のユーザ識別子との暗号通信用鍵を取得する。
ステップS322において、仮想スイッチ203は、ユーザ識別子u’との間、具体的にはクライアント端末3の暗号通信部303との間で確立したVPN接続に基づき、Ethernetフレーム92に対して暗号処理を施し、暗号データ93aとする。同様に、ユーザ識別子u”との間、具体的にはクライアント端末4の暗号通信部403との間で確立したVPN接続に基づき、Ethernetフレーム92に対して暗号処理を施し、暗号データ93bとする。
次に、ステップS323において、サーバ2の制御部290は、暗号データ93aに対してクライアント端末3宛のプロトコルヘッダ、IPヘッダ、Ethernet tヘッダとトレーラを付与し、実ネットワーク用のEthernetフレーム94aを生成する。同様に、サーバ2の制御部290は、暗号データ93bに対してクライアント端末4宛のプロトコルヘッダ、IPヘッダ、Ethernetヘッダとトレーラを付与し、実ネットワーク用のEthernetフレーム94bを生成する。
ステップS324において、制御部290は、通信部23を制御してEthernetフレーム94aとEthernetフレーム94bを各クライアント端末に送出する。尚、ステップS323及びS324のEthernetフレームの生成及び送信の動作は、接続管理テーブルに記載の全てのエントリ(即ち、クライアント端末)について行われる(ステップS325)。これらEthernetフレーム94a及び94bは、後述するステップS326で、ネットワークを介してクライアント端末3の通信部33とクライアント端末4の通信部43にそれぞれ到達することになる。
ステップS327において、クライアント端末3の制御部390(又はクライアント端末4の制御部490)は、Ethernetフレーム94a(又は94b)からプロトコルヘッダ、IPヘッダ、Ethernetヘッダとトレーラを解釈し、暗号データ93a(又は93b)を抽出する(図8B参照)。
ステップS328において、制御部390(又は490)は暗号通信処理部303(又は403)を制御して、後述するステップの暗号通信処理を開始する。
ステップS329において、暗号通信処理部303(又は403)は、サーバ2の仮想スイッチ203との間で確立したVPN接続に基づき、通信データ93a(又は93b)に対して復号処理を施し、Ethernetフレーム92を抽出する。
ステップS330において、次に制御部390(又は490)は、Ethemetフレーム92を仮想端末3000(又は4000)の通信部1013(又は4013)に渡す。
ステップS331において、仮想端末3000(又は4000)の制御部3190(又は4190)は、通信部3013(又は4013)がEthernetフレーム92を受信したことを検知すると、ステップS332において、Ethernetフレーム92のEthernetヘッダとトレーラから、自身宛であるかを識別する。
ステップS331でEthernetフレーム92が自身宛であった場合(図示Y)は、ステップS333において、仮想端末3000の制御部3190はEthernetフレーム92からデータ91を抽出し、次に、ステップS334で仮想端末3000のユーザアプリケーション3018が、そのデータ91を扱うことが出来るようになる。
一方、ステップS331でEthernetフレーム92が自身宛であった場合(図示N)は、ステップS335において、仮想端末4000の制御部4190はEthernetフレーム92を廃棄する。
尚、仮想端末3000のユーザアプリケーション3018から、仮想端末1000のユーザアプリケーション1018への応答も、ユーザアプリケーション1018からユーザアプリケーション3018への通信と同様の処理で通信が行われる。
次に、仮想ディスクhiを用いて起動した各仮想端末と、仮想スイッチ203との切断処理について説明する。
(切断処理)
図9は、クライアント端末が仮想端末の利用終了とVPNの切断を行い、サーバ側の認証情報を更新する動作を示すフローチャート図である。
ステップS401において、入力部11を介して利用者の要求に応じて、クライアント端末1の制御部190が、仮想端末1000の利用を終了して停止させる。
仮想端末1000が停止することで、ステップS402において、クライアント端末1の制御部190が、仮想端末1000の動作中に発生した仮想ディスクhiへの更新内容を確定する。この更新後の仮想ディスクをhi+1とする。
また、クライアント端末1の制御部190は、仮想端末1000の停止を検知すると、ステップS403において、通信部13を制御してセッションの終了要求をサーバ2へ送信する。
ステップS404において、サーバ2の通信部23を通して制御部290がこのセッションの終了要求を受信する。また、ステップS405において、クライアント端末1の制御部190により暗号通信処理部103を制御し、VPN接続を切断する。或いは、ステップS406において、サーバ2の仮想スイッチ203により、VPN接続を切断する。VPN接続を切断する方法は、具体的には双方で用いていた暗号通信用鍵の廃棄、通信コネクションの開放を行う。
ステップS406において、サーバ2の仮想スイッチ203は、更に、クライアント端末1のユーザ識別子uに関するエントリを接続管理テーブルから削除する。
次に、ステップS407において、サーバ2の制御部290は、仮想ディスク暗号鍵生成部202を制御して仮想ディスク1を暗号化するためのディスク暗号鍵ki+1を生成し、ステップS408において、通信部23を制御してディスク暗号鍵ki+1をクライアント端末1に送信する。尚、ディスク暗号鍵ki+1の送信は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS409において、クライアント端末1の制御部190は、通信部13を制御し、ディスク暗号鍵ki+1をサーバ2から受信する。
ステップS410において、制御部190は、仮想ディスク暗号処理部101を制御し、ディスク暗号鍵ki+1を用いて仮想ディスクhi+1を暗号化し、暗号仮想ディスクsi+1を生成する。
次に、ステップS411において、クライアント端末1の制御部190は、外部記憶装置17からN、g、ν、及び暗号仮想ディスクsi+1を読み込み、それぞれをRAM15の所定の領域に格納しておく(図5参照)。
更に、クライアント端末1は、検証情報生成部(図示しないが、サーバの検証情報生成部241と同一の機能と解してよい)を有し、クライアント端末1の制御部190は、クライアント端末1の検証情報生成部を制御して、RAM 15からN、g、暗号仮想ディスクsi+1を読み込み、式(5)に従った演算を行い、この演算結果である仮想ディスク検証情報C(si+1)をRAM 15の所定の領域に格納する(図5参照)。ここでは、ビット列の仮想ディスク検証情報C(si+1)を自然数の2進数表記と同一視した。
次に、ステップS412において、制御部190は通信部13を制御し、仮想ディスク検証情報C(si+1)をサーバ2へ送信する。尚、仮想ディスク検証情報C(si+1)の送付は、サーバの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS413において、サーバ2の制御部290は、通信部23を制御し、仮想ディスク検証情報C(si+1)をクライアント端末1から受信する。
ステップS414において、サーバ2の制御部290は、認証テーブルのユーザ識別子uに対応するエントリについて、仮想ディスク検証情報とディスク暗号鍵の内容をC(si+1)とki+1に更新し、ステップS415でその更新の成否を表す更新結果をクライアント端末1へ送信する。尚、更新結果の送付は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS416において、クライアント端末1の制御部190は、通信部13を制御してサーバ2からその更新の成否を表す更新結果を受信する。
ステップS417において、クライアント端末1の制御部190は、その更新結果を確認し、その更新が成功したか否かを判断する。
ステップS417で更新が成功したと判断した場合(図示Y)には、該セッションが正常終了したと判断し、ステップS418において、制御部190は、該セッション開始前の暗号仮想ディスクsiを外部記憶装置17及びRAM15から削除する。
一方、ステップS417で更新が失敗したと判断した場合(図示N)には、ステップS419において、制御部190は、該セッションが異常終了したと判断し、該セッションを無効にし、該セッション開始前の状態にロールバックするため暗号仮想ディスクsi+1を外部記憶装置17 及びRAM15から削除する。
ステップS418又はS419を経て、ステップS420及びS421において、制御部190は、次のセッションが開始されるまでの間に仮想端末1000が不正に利用されることを防止するため、制御部190は仮想ディスクhi+1、ディスク暗号鍵ki+1、及び仮想ディスク検証情報C(si+1)を、外部記憶装置17及びRAM15から削除する。
以上、実施例1における仮想端末を利用したネットワークシステムにおけるクライアント端末の検疫のための事前処理、接続処理、通信処理及び切断処理を説明した。
次に、本発明による実施例2の仮想端末を利用したネットワークシステムについて説明する。
(実施例2)
本発明による実施例2は、仮想端末が起動に利用する仮想ディスクに関して、仮想ディスクの原本(h0)と更新(hi)時の差分を考慮して処理する態様である。実施例2は、基本的には実施例1と同様な態様を有しており、本発明の趣旨を逸脱するものでないならば、種々の実施例に拡張可能である。
実施例2においては、動作中に発生した仮想ディスクhへの更新は、その更新内容を更新履歴dに追記し、仮想ディスクhについては更新を行わないものとする点で実施例1とは相違する。また、各仮想端末は仮想ディスクhおよび更新履歴dを利用して動作する点で実施例1とは相違する。
実施例2の構成は、実施例1と同一とする。そのため、ネットワークシステム、クライアント端末及びサーバの説明は省略する。
[動作の説明]
実施例1で説明した事前処理、接続処理、通信処理、切断処理のうち、事前処理と通信処理については実施例1と同一であるため、説明を省略する。以下、接続処理と切断処理についてのみ説明する。
(接続処理)
図10は、クライアント端末1上で動作する仮想端末1000を、サーバ2側で管理される仮想ネットワークに接続する動作について示すフローチャート図である。図10に記載の各ステップは、基本的には実施例1における図7と同様であるため、図7と異なる部分のみを中心に説明する。また、理解を容易にするために、図10において、図7と相違するステップには、同一の参照番号に“‐2”を付している。
ステップS201〜S205までは、図7と同様である。
ステップS206-2において、サーバ2の制御部290は、認証情報生成因子生成部243を制御して、RAM25からN、g、rを読み込み、式(2)及び式(5)に従った演算を行い認証情報生成因子R及び認証情報生成因子Zを生成し、この演算結果である認証情報生成因子R及び認証情報生成因子ZをRAM 25の所定の領域に格納する(図5参照)。また、ステップS207-2において、サーバの制御部290は、通信部230を制御して、認証情報生成因子R及び認証情報生成因子Zを適宜にRAM25から読み込んで、クライアント端末1に対して送信する。
ステップS208-2において、クライアント端末1の制御部190は、通信部13を制御して、ステップS207-2でサーバ2から送信された認証情報生成因子R及び認証情報生成因子Zを受信し、受信した認証情報生成因子R及び認証情報生成因子Zを外部記憶装置17に保存記憶する。更に、制御部190は、外部記憶装置17からN、暗号仮想ディスクs0、認証情報生成因子R及び認証情報生成因子Zを読み込み、RAM 15の所定の格納領域に格納する。
ステップS209-2において、制御部190は、認証情報生成部141を制御して、RAM 15からN、暗号仮想ディスクs0及び認証情報生成因子Rを読み込み、式(3)に従った演算を行って認証情報R(s0)を生成し、この演算結果である認証情報R(s0)をRAM 15の所定の格納領域に格納する(図5参照)。それとは別に、受信した認証情報生成因子Zと暗号更新履歴miから認証情報Z(mi)を生成する。ここで、認証情報Z(mi)は、式(3)において、暗号仮想ディスクs0を暗号更新履歴miに、認証情報生成因子Rを認証情報生成因子Zに、認証情報R(s0)を認証情報Z(mi)に置き換えて演算することにより生成される。
ステップS210-2において、制御部190は、通信部13を制御して、認証情報R(s0)及び認証情報Z(mi)を適宜にRAM15から読み込んで、サーバ2に対して送信する(図5参照)。
ステップS211-2において、サーバ2の制御部290は、通信部23を制御して、ステップS210-2において送信された認証情報R(s0)及び認証情報Z(mi)を受信し、この認証情報R(s0) 及び認証情報Z(mi)を外部記憶装置27に保存記憶する(図5参照)。次に、制御部290は、判定部244を制御して、RAM 25内の認証テーブルからS204で認証したユーザ識別子uを検索し、ユーザ識別子uと組で登録されている仮想ディスク検証情報C(s0)及びC(si)、並びに、N、乱数r及び認証情報R(s0) 及び認証情報Z(mi)を外部記憶装置27から読み込み、それぞれRAM 25の所定の格納領域に格納する(図5参照)。
ステップS212-2において、サーバ2の判定部244は、RAM 25からN、乱数r、認証情報R(s0)及び仮想ディスク検証情報C(s0)を読み込み、式(4)に示す関係が成立するか否かの検証を行い、同様に認証情報Z(mi)及び仮想ディスク検証情報C(si)を読み込み、式(4)に示す関係が成立するか否かの検証を行う(図5参照)。ここで、式(4)において、認証情報Z(mi)の検証には、仮想ディスク検証情報C(s0)を仮想ディスク検証情報C(si)に、認証情報R(s0)を認証情報Z(mi)に置き換えて演算する。
この検証の結果が一方でも正しくない場合(図示N)には、ステップS213に進み、制御部290は、クライアント端末が保有する暗号仮想ディスクs0又は暗号更新履歴diに対して前回のセッション終了以降に不正な処理が施された疑いがあると判断し、クライアント端末1からのセッション開始要求を拒否して処理を終了する。この検証結果が関係成立しない場合(図示Y)には、クライアント端末1からのセッション開始要求を受け入れたものとして処理を続行するため、後述するステップS214-2に進む。
尚、ステップS213で、暗号更新履歴diの不正によりセッション開始要求が拒否された場合には、サーバ2の制御部290は、実施例1で説明したように、サーバ2の再生成部(図示せず)を制御して、それまでの更新履歴を破棄し、暗号仮想ディスクs0のみを初期状態にしてセッション開始要求を行うことにより、再度セッション開始が可能となる。
ステップS214-2において、サーバ2の制御部290は、クライアント端末1が保有する暗号仮想ディスクs0に対応するディスク復号鍵k0、及び、暗号更新履歴miに対応するディスク復号鍵kiを外部記憶装置27から読み出し、ステップS215-2において、制御部290は、通信部23を制御してディスク復号鍵k0及びディスク復号鍵kiをクライアント端末1に送信する。尚、ステップS214-2におけるディスク復号鍵k0及びディスク復号鍵kiの送付は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS216において、クライアント端末1の制御部190は通信部13を制御し、ディスク復号鍵k0 及びディスク復号鍵kiをサーバ2から受信する。
ステップS217A-2において、制御部190は、仮想ディスク暗号処理部101を制御して、暗号仮想ディスクs0をディスク復号鍵k0で復号し、仮想ディスクh0を生成する。尚、この時点で暗号仮想ディスクs0は削除せず、外部記憶装置17に保持する。
ステップS217B-2において、制御部190は、仮想ディスク暗号処理部101を制御して、暗号更新履歴miをディスク復号鍵kiで復号し、更新履歴diを生成する。尚、この時点で暗号更新履歴miは削除せず、外部記憶装置17に保持する。
ステップS218‐2において、制御部190は、仮想ディスク暗号処理部101を制御して、仮想ディスクトh0と更新履歴diが正しい形式で作成されたか否かを検証する。
ステップS218‐2の処理の結果、仮想ディスクトh0と更新履歴diのいずれかがが正しく生成されなかった場合(図示N)は、サーバ2がディスク復号鍵k0及びkiを提示できなかったことを意味しており、ステップS219に進み、不正なサーバがなりすましている疑いがあると判断し、クライアント端末1の制御部190はセッション開始要求の処理を中断して処理を終了する。
ステップS218-2の検証の結果、復号処理が正常に完了した場合(図示Y)は、制御部190は、正規のサーバと判断して、ステップS220に進み、処理を続行する。
S220〜S221までは、図7と同様である。
VPN接続が確立した後、ステップS222-2において、クライアント端末1は以降の処理で不要となる認証情報生成因子R、認証情報R(s0)、認証情報生成因子Z、認証情報Z(mi)、ディスク復号鍵k0、ディスク復号鍵kiを、外部記憶装置17及びRAM15から削除する。
サーバ2も同様に、ステップS223-2において、以降の処理で不要となる認証情報生成因子R、認証情報R(s0)、乱数r、認証情報生成因子Z、認証情報Z(mi)を、外部記憶装置27及びRAM25から削除する。
ステップS224-2において、クライアント端末1の制御部190は、仮想ディスクh0及び更新履歴diを用いて仮想端末1000を起動する。
同様に、ステップS225において、サーバ2の制御部290は、仮想スイッチ203が未起動であれば起動する。
また、上記のステップにおいて、i=0の時は更新履歴d0が空値になるため、認証情報生成因子Z、認証情報Z(m0)、暗号仮想ディスクm0に関する全ての処理を省略するものとする。
次に、実施例2における、仮想ディスクhiを用いて起動した各仮想端末と、仮想スイッチ203との切断処理について説明する。
(切断処理)
図11は、クライアント端末が仮想端末の利用終了とVPNの切断を行い、サーバ側の認証情報を更新する動作を示すフローチャート図である。図11に記載の各ステップは、基本的には実施例1における図9と同様であるため、図9と異なる部分のみを中心に説明する。また、理解を容易にするために、図11において、図9と相違するステップには、同一の参照番号に“‐2”を付している。
ステップS401において、入力部11を介して利用者の要求に応じて、クライアント端末1の制御部190が、仮想端末1000の利用を終了して停止させる。
仮想端末1000が停止することで、ステップS402-2において、クライアント端末1の制御部190が、仮想端末1000の動作中に発生した仮想ディスクh0への更新内容を追記した更新履歴diを確定する。この更新後の更新履歴をdi+1とする。
S403〜S406までは、図9と同様である。
次に、ステップS407において、サーバ2の制御部290は、仮想ディスク暗号鍵生成部202を制御して仮想ディスク1を暗号化するためのディスク暗号鍵ki+1を生成し、ステップS408-2において、通信部23を制御してディスク暗号鍵k0及びディスク暗号鍵ki+1をクライアント端末1に送信する。尚、ディスク暗号鍵ki+1の送信は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS409-2において、クライアント端末1の制御部190は、通信部13を制御し、ディスク暗号鍵k0及びディスク暗号鍵ki+1をサーバ2から受信する。
ステップS410A-2において、制御部190は、仮想ディスク暗号処理部101を制御し、ディスク暗号鍵k0を用いて仮想ディスクh0を暗号化し、暗号仮想ディスクs0を生成する。
同様に、ステップS410B-2において、制御部190は、仮想ディスク暗号処理部101を制御し、ディスク暗号鍵ki+1を用いて更新履歴di+1を暗号化し、暗号更新履歴mi+1を生成する。
次に、ステップS411-2において、クライアント端末1の制御部190は、外部記憶装置17からN、g、ν、及び暗号更新履歴mi+1を読み込み、それぞれをRAM15の所定の領域に格納しておく(図5参照)。
更に、クライアント端末1は、検証情報生成部(図示しないが、サーバの検証情報生成部241と同一の機能と解してよい)を有し、クライアント端末1の制御部190は、クライアント端末1の検証情報生成部を制御して、RAM 15からN、g、暗号更新履歴mi+1を読み込み、式(5)に従った演算を行い、この演算結果である更新履歴検証情報C(mi+1)をRAM 15の所定の領域に格納する(図5参照)。ここでは、ビット列の仮想ディスク検証情報C(si+1)を自然数の2進数表記と同一視した。ここで、更新履歴検証情報C(mi+1)を式(5)に従って算出するために、暗号仮想ディスクsi+1及び仮想ディスク検証情報C(si+1)を、それぞれ暗号更新履歴mi+1及び更新履歴検証情報C(mi+1)に置き換えて算出する。
次に、ステップS412-2において、制御部190は通信部13を制御し、更新履歴検証情報C(mi+1)をサーバ2へ送信する。尚、更新履歴検証情報C(mi+1)の送付は、サーバの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS413-2において、サーバ2の制御部290は、通信部23を制御し、更新履歴検証情報C(mi+1)をクライアント端末1から受信する。
ステップS414-2において、サーバ2の制御部290は、認証テーブルのユーザ識別子uに対応するエントリについて、更新履歴検証情報とディスク暗号鍵の内容をC(mi+1)とki+1として認証テーブルに更新し、ステップS415でその更新の成否を表す更新結果をクライアント端末1へ送信する。尚、更新結果の送付は、ユーザ識別子uの公開鍵で暗号化する等の安全な手段を用いるものとする。
ステップS416において、クライアント端末1の制御部190は、通信部13を制御してサーバ2からその更新の成否を表す更新結果を受信する。
ステップS417において、クライアント端末1の制御部190は、その更新結果を確認し、その更新が成功したか否かを判断する。
ステップS417で更新が成功したと判断した場合(図示Y)には、該セッションが正常終了したと判断し、ステップS418-2において、制御部190は、該セッション開始前の暗号更新履歴miを外部記憶装置17及びRAM15から削除する。
一方、ステップS417で更新が失敗したと判断した場合(図示N)には、ステップS419-2において、制御部190は、該セッションが異常終了したと判断し、該セッションを無効にし、該セッション開始前の状態にロールバックするため暗号更新履歴mi+1を外部記憶装置17 及びRAM15から削除する。
ステップS418-2又はS419-2を経て、ステップS420-2及びS421-2において、制御部190は、次のセッションが開始されるまでの間に仮想端末1000が不正に利用されることを防止するため、仮想ディスクh0、更新履歴di+1、ディスク暗号鍵k0、ディスク暗号鍵ki+1、及び更新履歴検証情報C(mi+1)を、外部記憶装置17及びRAM15から削除する。
以上、実施例2における仮想端末を利用したネットワークシステムにおける動作を説明した。
次に、本発明による実施例3の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例3)
実施例1及び実施例2では、素因数分解が困難又は知られていない大きな数Nが予めクライアント端末1の外部記憶装置17及びサーバ2の外部記憶装置27に保存記憶されていると説明したが、頑強な安全性が保証されるNを生成してもよい。即ち、Nは、一義的な方法で生成されるものではなく種々の方法で生成可能である。
例えば、クライアント端末1は、N生成部(図示せず)を有するように構成させてもよい。N生成部は、素因数分解が困難なNを生成する機能を有し、その機能を実現させるためのプログラムとして、実施例1で説明したクライアント端末1又はサーバ2のプログラムの1つとすることができる。素因数分解が困難なNの生成方法としては、例えば、素数の組p及びqについて、(p−1)/2及び(p−1)/2もまた素数となるものを算出し、N=p×qを演算する。このような素数の組p及びqは無限に存在しており、Nは確率的アルゴリズムによって効率的に計算可能である。
それとは別に、素因数分解が困難なNとして、2のべき乗に近い数、例えば、2m−1の形(mは任意の整数)で表せるNを生成してもよい。このようなNにおいては、Nによる余剰計算は、例えば、2mを1に置換することで計算でき、このような演算は通常のCPUにおいてシフト演算又はビットの並び替えで実現することができる。従って、高速な余剰計算を実現することができる。そのようなNを確率的アルゴリズムによって効率的に生成することができるし、素因数分解が困難な数の表は公知であるから、そのような表から2のべき乗に近いNを選択するようにするこもできる。
以上により、頑強な安全性が保証されるNを用いて、仮想端末を利用した検疫ネットワークシステムを実現することができる。
次に、本発明による実施例4の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例4)
実施例1及び実施例2では、仮想ディスク検証情報C(s)を式(1)又は式(5)で示す演算で算出したが、暗号仮想ディスクsを適宜に複数の情報に分割することにより計算負担を軽減させ、更に計算効率を高めることが出来る。例えば、ビット列で表される暗号仮想ディスクsを、j個の分割情報s0、s1、s2、・・・、sj-1に分割し、暗号仮想ディスクsを、j個の分割情報s0、s1、s2、・・・、sj-1の結合として表されるものとする。即ち、s=s0‖s1‖s2‖・・・‖sj-1とする。分割数jの値と、i=0,1,2, ・・・,j−1についてのビット長siは、予めサーバ2又は各クライアント端末にそれぞれ保存記憶されているとする。又は、あるクライアント端末が任意に定め、サーバ2又は他のクライアント端末に送信するようにしてもよく、適宜設計変更可能である。また、高効率化のために、分割数jを予め定めた固定値とすることや、siのビット長はsのビット長に対して均等に割り付ける仕様とすることもできる。このように表される仮想ディスク検証情報Ci(s)を式(7)のように表すことができる。
従って、実施例1及び実施例2で説明した式(1)又は式(5)で示す仮想ディスク検証情報C(si)の代わりに、仮想ディスク検証情報Ci(s)を用いることで、計算効率を高めることができるようになる。
それとは別に、実施例1及び実施例2では、N、暗号仮想ディスクsi及び認証情報生成因子Rを用いて、式(3)に従った演算を行って認証情報R(si)を生成したが、i=0,1,2, ・・・,j−1についてのビット長siに対して、予め定められたν、高々νビット程度の大きさの乱数uとしたとき、H(i, u, R)からなる予め定められた関数、例えばH(i, u, R)= ui又はSHA-1などのハッシュ関数とし、式(8)に従った演算を行った認証情報R(s)を用いることもできる。
尚、この場合、式(4)の代わりに、式(9)に示す関係が成立するか否かを判定して、クライアント端末(1)からのセッション開始要求を拒否するか否かを判断することになる。
尚、実施例4を実現するハードウェア構成及び各プログラム、更に各プログラムによって実現される機能は、実施例1の説明から適宜置換できることは当業者に明らかである。
以上により、サーバ2又は各クライアント端末は、実施例1又は2の各演算の計算効率をより高めることができるようになる。
次に、本発明による実施例5の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例5)
前述した実施例においては、認証情報生成因子Rを送信したサーバ2を信頼のおけるサーバ2であることを前提としているが、サーバ2が不正な方法で認証情報生成因子Rを生成する場合があることを否定できない。そこで、クライアント端末は、サーバ2が確かに所定の処理に基づいて認証情報生成因子Rを生成したものであることを対話証明によって認証することができる。対話証明の一例として、乱数rに関するゼロ知識証明を利用した検証装置の認証について説明する。尚、本実施例の説明において、ゼロ知識証明の構成に代え、楕円曲線上のスカラー倍演算を用いた構成にすることもできる。また、安全性の観点からは、知識の証明はゼロ知識証明であることが望ましいが、高効率化のために、現時点ではゼロ知識性の数学的証明が完全になされていない手段、例えば後述するC^をハッシュ関数を用いたビットコミットメントに代替することもできる。実施例5では、前述した実施例と同様な機能・処理については説明を省略する。
ここで、図5で説明したクライアント端末2とサーバ1の構成に付加される機能について説明する。また、付加される後述のC^生成部、W生成部、z生成部、対話判定部について、図示を省略する。
例えば、クライアント端末1は、C^生成部を有するように構成させてもよい。C^生成部は、後述する所定の演算を行ってC^を生成するためのプログラムとして、実施例1で説明したクライアント端末1のプログラムの1つとすることができる。そして、クライアント端末1の外部記憶装置17(あるいはROM16など)には、認証情報を生成するためのプログラム、C^を生成するためのプログラム、認証情報生成因子Rが検証情報において正当に生成されたことを対話証明によって認証するためのプログラム(本実施例の証明判定部としての機能を実現する)、及びこれらのプログラムの処理において必要となるデータ(暗号仮想ディスクsなど)が保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存記憶しておく。
クライアント端末1では、外部記憶装置17(あるいはROM16など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM15に読み込まれて、CPU14で解釈実行・処理される。その結果、CPU14が所定の機能(C^生成部、証明判定部、認証情報生成部、制御部)を実現する。
サーバ2の外部記憶装置27(あるいはROMなど)には、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム(本実施例の乱数生成部としての機能を実現する)、後述するW、zを生成するためのプログラム(本実施例のW生成部及びz生成部としての機能を実現する)、認証情報生成因子Rがサーバ2において正当に生成されたことを対話証明によって証明するためのプログラム(本実施例の対話判定部としての機能を実現する)、及びこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存記憶しておく。
サーバ2の外部記憶装置27(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM25に読み込まれて、CPU24で解釈実行・処理される。その結果、CPU24が所定の機能(認証情報生成因子生成部、乱数生成部、W生成部、z生成部、対話判定部、制御部)を実現する。
ここで、tを予め定められた自然数(但し、Nより小さいとする。)とする。tは、クライアント端末1の外部記憶装置17及びサーバ2の外部記憶装置27に保存記憶されているとする。また、i=0,1,2, ・・・,j−1についてのビット長siに対して、予め定められたν、高々νビット程度の大きさの乱数uとしたとき、H(i, u, R)からなる予め定められた関数、例えばH(i, u, R)= ui又はSHA-1などのハッシュ関数とする。
実施例5における対話証明は、実施例4における、式(8)に従った演算を行なって認証情報R(s)を生成するステップの直前に行う。即ち、図7に示すステップS208とS209との間で行われる処理である。
図7に示すステップS208の後、クライアント端末1の制御部190は、外部記憶装置17から、g、t、Nを読み込み、これをRAM15の所定の格納領域に格納しておく。
次に、クライアント端末1の制御部190は、C^生成部を制御して、一旦、RAM15からtを読み込み、0以上t未満の乱数cと、0以上N未満の乱数ξ(Nと互いに素となる乱数)とを生成した後、式(10)に従ったC^を生成し、RAM 15の所定の領域に格納する。尚、クライアント端末1の制御部190の制御により、乱数c及び乱数ξは、外部記憶装置17に記憶保持される。
このように、上述の実施例と同様に、クライアント端末1及びサーバ2の各機能は、各々の制御部によって制御され、適宜RAM又は外部記憶装置から読み出される、以後、理解を容易とするため、例えば、「クライアント端末1はC^生成部により○○する」と表現する。
次に、クライアント端末1は、C^生成部により生成されたC^をサーバ2に送信する。
サーバ2は、C^を受信すると、外部記憶装置にC^を記憶保持し、乱数生成部により0以上N未満の乱数wを生成し、W生成部は、予め外部記憶装置27に格納されるN及びgを用いて、式(11)に従ったWを演算し、その演算結果であるWをRAM25の所定の格納領域に格納する。尚、サーバ2の制御部290の制御により、乱数wは、外部記憶装置27に記憶保持される。
次に、サーバ2は、W生成部により生成されたWをクライアント端末1に送信する。
Wを受信したクライアント端末1は、Wを外部記憶装置17に保存記憶し、乱数c及び乱数ξをサーバ2に送信する。
サーバ2は、乱数c及び乱数ξを受信すると、外部記憶装置27に保存記憶する。
次に、サーバ2は、対話判定部により、g、c、t、N、ξ及びC^を用いて、式(10)が成立するか否かの判定を行い、成立しない場合には該セッションを終了する。式(10)が成立する場合には、サーバ2のz生成部は、乱数c、r、及びwを用いて、式(12)に従った演算を行い、その演算結果zをRAM25の所定の格納領域に格納する。
次に、サーバ2は、z生成部により生成されたzをクライアント端末1に送信する。
zを受信したクライアント端末1は、証明判定部により、zを外部記憶装置17に保存記憶し、外部記憶装置17から、g、N、認証情報生成因子R、z、W及び乱数cを読み出し、式(13)の関係を満たすか否かの判定を行う。この判定結果が不成立の場合には、該セッションを終了させる。この判定結果が成立の場合には、前述したように、式(8)に従った演算を行って認証情報R(s)を生成するステップ(図7に示すステップS209)に進む。
以上により、クライアント端末は、認証情報R(s)を生成する前に、サーバ2が確かに所定の処理に基づいて認証情報生成因子Rを生成したものであることを対話証明によって認証することができる。
次に、本発明による実施例6の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例6)
実施例6では、前述した実施例とは別の安全性向上を図る態様である。実施例6では、前述した実施例と同様な機能・処理については説明を省略する。
ここで、図5で説明したクライアント端末2とサーバ1の構成に付加される機能について説明する。また、付加される後述の各乱数生成部、第1及び第2判定部、A生成部、B生成部について、図示を省略する。
クライアント端末1の外部記憶装置17(あるいはROM16など)には、認証情報を生成するためのプログラム、後述するAを生成するためのプログラム(本実施例のA生成部としての機能を実現する)、乱数を生成するためのプログラム本実施例の乱数生成部としての機能を実現する)、サーバ2が識別子を正しく用いて認証情報生成因子Rを生成したかを判定するためのプログラム(本実施例の第1判定部としての機能を実現する)、及びこれらのプログラムの処理において必要となるデータ(暗号仮想ディスクsなど)が保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存記憶しておく。
クライアント端末1では、外部記憶装置17(あるいはROM16など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM15に読み込まれて、CPU14で解釈実行・処理される。その結果、CPU14が所定の機能(A生成部、乱数生成部、第1判定部、認証情報生成部、制御部)を実現する。
サーバ2の外部記憶装置27(あるいはROMなど)には、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム(本実施例の乱数生成部としての機能を実現する)、後述するBを生成するためのプログラム(本実施例のB生成部としての機能を実現する)、クライアント端末が正しく後述のAを生成したかを判定するためのプログラム(本実施例の第2判定部としての機能を実現する)、及びこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存記憶しておく。
サーバ2の外部記憶装置27(あるいはROM26など)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM25に読み込まれて、CPU24で解釈実行・処理される。その結果、CPU24が所定の機能(認証情報生成因子生成部、乱数生成部、B生成部、第2判定部、制御部)を実現する。
実施例1におけるステップS206〜S212では、サーバ2により認証情報生成因子Rを生成してクライアント端末に送信し(S206及びS207)、次にクライアント端末1により認証情報生成因子Rを用いて認証情報R(si)を生成してサーバ2に送信し(S208〜S210)、次にサーバ2は、その認証情報R(si)の検証を行う(S211及びS212)例を説明したが、本実施例は、その変形例である。従って、実施例1における各ステップS206〜S212の参照番号に、各ステップの変形を表す“-6A”及び“-6B”を付して説明し、図示は省略する。
ステップS206-6Aにおいて、サーバの制御部290は、外部記憶装置27からN及びgを読み込み、それぞれをRAM25の所定の格納領域に格納し、次に、ステップS207-6Aにおいて、サーバの制御部290は、通信部23を制御して、適宜にRAM25から読み込んだN及びgをクライアント端末1に送信する。
このように、上述の実施例と同様に、クライアント端末1及びサーバ2の各機能は、各々の制御部によって制御され、適宜RAM又は外部記憶装置から読み出され、又は格納されるが、以後、理解を容易とするために、例えば、「クライアント端末1はA生成部により○○する」と表現する。
ステップS208-6Aにおいて、クライアント端末1は、N及びgを受信し、外部記憶装置17に保存記憶する。次に、ステップS209-6Aにおいて、クライアント端末1は、制御部190の制御により、外部記憶装置17から予め定められた自然数νを読み込んで高々22ν程度の大きさの乱数aを生成する。次いで制御部190の制御により外部記憶装置17からN及びgを読み出して、A生成部により、a、N及びgを用い、式(14)に従った演算を行い、この演算結果AをRAM15の所定の領域に格納する。
ステップS210-6Aにおいて、クライアント端末1は、通信部13によりAをサーバ2に送信する。尚、乱数a及びAは、制御部190の制御により、外部記憶装置17に保存記憶される。
ステップS211-6Aにおいて、サーバ2は、Aを受信し、制御部290の制御により、Aを外部記憶装置27に保存記憶する。
ステップS211-6Aに続き、ステップS206-6B 〜S211-6B が処理される。ステップS206-6Bにおいて、サーバ2の制御部290は、外部記憶装置27からN、g、予め定められた自然数ν及びAを読み込み、それぞれをRAM25の所定の格納領域に格納し、次に、予め定められた自然数νを読み込んで高々22ν程度の大きさの乱数rを生成し、B生成部により、r、N及びgを用い、式(15)に従った演算を行い、この演算結果BをRAM25の所定の領域に格納する。
次に、ステップS207-6Bにおいて、サーバ2の制御部290は、通信部23を制御して、適宜にRAM25から読み込んだ認証情報生成因子R、及びBをクライアント端末1に送信する。尚、乱数r、認証情報生成因子R、及びBは、制御部290の制御により、外部記憶装置27に保存記憶される。
ステップS208-6Bにおいて、クライアント端末1は、R及びBを受信し、外部記憶装置17に保存記憶する。次に、ステップS209-6Bにおいて、クライアント端末1は、制御部190の制御により外部記憶装置17からR、B、a、暗号仮想ディスクsi及びNを読み出し、各々をRAM15の所定の領域に格納する。次に、第1判定部により、R、B、a、及びNを用いて、式(16)が成立するか否かの判定を行い、成立しない場合には該セッションを終了する。
式(16)が成立する場合には、クライアント端末1の制御部190は、認証情報生成部141を制御して、RAM 15からN、暗号仮想ディスクsi及び認証情報生成因子Rを読み込み、式(3)に従った演算を行って認証情報R(si)を生成し、この演算結果である認証情報R(si)をRAM 15の所定の格納領域に格納する。
ステップS210-6Bにおいて、クライアント端末1は、通信部13によりR(si)及び乱数aをサーバ2に送信する。
ステップS211-6Bにおいて、サーバ2は、R(si)及び乱数aを受信し、制御部290の制御により、Aを外部記憶装置27に保存記憶する。次に、制御部290は、判定部244を制御して、RAM 25内の認証テーブルから実施例1に記載のステップS204で認証したユーザ識別子uを検索し、ユーザ識別子uと組で登録されている仮想ディスク検証情報C(si)、並びに、N、乱数a、g及び認証情報R(si) を外部記憶装置27から読み込み、それぞれRAM 25の所定の格納領域に格納し、ステップS212-6に進む。
ステップS212-6において、次にサーバ2の第2判定部は、RAM 25からA、g、乱数a、Nを読み込み、式(16)が成立するか否かの判定を行い、成立しない場合には該セッションを終了する。式(16)が成立するか場合には、次にサーバ2の判定部244は、RAM 25からA、g、乱数a、Nを読み込み、認証情報R(si)及び仮想ディスク検証情報C(si)を読み込み、式(4)に示す関係が成立するか否かの検証を行う。この検証結果が関係成立しない場合には、実施例1で説明したステップS213に進み、この検証結果が関係成立する場合には、実施例1で説明したステップS214に進む。
以上により、サーバ2が、認証情報生成因子Rをクライアント端末に送信し、クライアント端末から送信された認証情報R(si)に基づいて式(4)に示す関係が成立するか否かの検証において、より安全性を高めることができる。
次に、本発明による実施例7の仮想端末を利用した検疫ネットワークシステムについて説明する。
(実施例7)
実施例7の態様において、実施例6の態様の計算効率を向上させるために、実施例4と同様な処理を行う。実施例7の態様においても、暗号仮想ディスクsを適宜に複数の情報に分割することにより計算負担を軽減させ、更に計算効率を高めることが出来る。即ち、s=s0‖s1‖s2‖・・・‖sj-1とする。分割数jの値と、i=0,1,2, ・・・,j−1についてのビット長siは、予めサーバ2又は各クライアント端末にそれぞれ保存記憶されているとする。又は、あるクライアント端末が任意に定め、サーバ2又は他のクライアント端末に送信するようにしてもよく、適宜設計変更可能である。また、高効率化のために、分割数jを予め定めた固定値とすることや、siのビット長はsのビット長に対して均等に割り付ける仕様とすることもできる。また、仮想ディスク検証情報Ci(s)を前述した式(7)のように表すことができる。
また、実施例4における認証情報R(s)は、H(i, u, R)= ui又はSHA-1などのハッシュ関数とし、式(8)に従った演算を行った認証情報R(s)を用いて説明したが、実施例7では、H(i, u, R,A,B)= ui又はSHA-1などのハッシュ関数と表すことができ、式(8)の代わりに式(17)に従った演算を行う。
尚、この場合、式(9)の代わりに、式(18)に示す関係が成立するか否かを判定して、クライアント端末(1)からのセッション開始要求を拒否するか否かを判断することになる。
尚、実施例7を実現するハードウェア構成及び各プログラム、更に各プログラムによって実現される機能は、実施例1の説明から適宜置換できることは当業者に明らかである。
以上により、サーバ2又は各クライアント端末は、実施例7において実施例6の態様のの各演算の計算効率をより高めることができるようになる。
仮想端末間の通信方法について、上述の実施例で説明した仮想スイッチを介した通信方法のほか、複数の仮想端末間でメッシュ状にVPN接続を行う態様をとっても、本発明は実現可能である。
また、仮想端末間の通信方法について、仮想端末が送出するEthernetフレームを逐次VPN処理する通信方式のほか、通信効率を高めるために複数のEthernetフレームを蓄積・結合、圧縮、または暗号処理を省略してVPN処理する通信方式を用いても、本発明は実現可能である。
尚、上述の実施例で説明した仮想ディスクの暗号方式に関して、暗号鍵と復号鍵が同一である共通鍵暗号による方式のほか、暗号鍵と復号鍵が異なる公開鍵暗号による方式を用いても、本発明は実現可能である。
また、上述の実施例で説明した接続処理中のユーザ認証に関して、ユーザ識別子とパスワードによる認証方式のほか、電子証明書を用いた方式など、クライアント端末の利用者を特定する他の認証方式を適用しても、本発明は実現可能である。
更に、上述の実施例で説明した構成のほか、同一のクライアント端末上に複数の仮想端末を同時に実行し、それぞれが異なる仮想スイッチと接続し、複数の論理構成を同時に利用する形態も、本発明を用いて実現可能である。
上述の実施例によれば、ネットワークシステムヘ接続する端末を仮想端末とし、その検査を実施するエージェントソフトウェアを検査対象となるコンピュータの外側で実行するため、検査対象のコンピュータで利用されるOSが、エージェントソフトウェアが動作可能なOSに限定されることがなくなる。
さらに、検査対象となるコンピュータを起動する前に、エージェントソフトウェアによる検査が実現可能となる。これにより、該ネットワークヘの接続用途以外では検査対象のコンピュータを利用することを禁止することができる。また、クライアント端末が保持する暗号仮想ディスク及び暗号更新履歴を復号できる鍵をサーバが提示することができるかを判定することにより、クライアント端末が通信をしているサーバが正しいサーバか、つまり、接続を試みているネットワークが正しいネットワークかを接続する前に判定することができる。
これらは、検査対象のコンピュータを、不正なネットワークヘの接続から守ることが可能となることを意味し、既存の検疫ネットワークでは実現することができなかった効果が得られる。
上述の実施例で説明した検査方法を用いることにより、既存の検疫ネットワークで行われるような、特定のプログラムやファイルの有無確認による検査方法よりも検査の精度や完全性が格段に向上する効果が得られる。
一方、図2の論理構成で示した通り、仮想端末間の通信は物理的なネットワークとは論理的に独立しているため、クライアント端末やサーバを含んだ物理環境との通信を遮断することができる。仮想端末および仮想スイッチで構成される仮想ネットワークシステムと、クライアント端末やサーバで構成される物理的なネットワークシステムは、独立したネットワークとして利用される。これにより、物理的なネットワークシステムと仮想ネットワークシステムの間で、ネットワークを経由した不正アクセスや不正な情報通信を排除することも可能となる。
上述の検疫ネットワークシステム又は検疫方法の各処理は、サーバ及びクライアント端末における各処理機能をコンピュータによって実現する場合、サーバ及びクライアント端末の有する機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、サーバ及びクライアント端末における各処理機能がコンピュータ上で実現される。また、検疫ネットワークシステム又は検疫方法の各処理は、サーバ及びクライアント端末における各処理機能を、ハードウェアの全部又は一部で実現しても良い。
また、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録装置、半導体メモリ等どのようなものでもよい。
また、この処理内容を記述したプログラムを、例えばDVD又はCD-ROMなどの可搬型記録媒体の販売、譲渡、貸与等により流通させることができるほか、そのようなプログラムを、ネットワーク上のサーバコンピュータの記録装置に格納しておき、ネットワークを介してサーバコンピュータから他のコンピュータにそのプログラムを転送することにより、流通させることができる。
また、そのようなプログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバから転送されたプログラムを、一旦、自己の記録装置に格納することができる。この場合には処理の実行のとき、このコンピュータは自己の記録媒体に格納されたプログラムを読取り、読み取ったプログラムに従った処理を実行することになる。また、このプログラムの別の実施態様として、コンピュータが可搬型記録媒体から直接プログラムを読取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバからプログラムが転送される度に、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバからコンピュータに転送を行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるアプリケーション・サービス・プロバイダ(Application Survice Provider:ASP)型のサービスによって、上述の処理を実行する構成としてもよい。尚、本態様におけるプログラムには、電子計算機の処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないが、コンピュータの処理を規定する性質を有するデータ等)を含むものとする。
上述の実施例については代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。例えば、上述の実施例では、認証情報の生成方法や判定方法は適宜変更可能であり、また、上述の検疫ネットワークシステム又は検疫方法の各処理は、記載の順に従って時系列に処理されるのみならず、処理を実行する装置の処理能力或いは必要に応じて並列的に或いは個別に実行されるとしてもよい。従って、本発明は、上述の実施例によって制限するものと解するべきではなく、特許請求の範囲によってのみ制限される。