(57)【要約】【課題】従来の検疫ネットワークでは、検査を実施するために、検査対象のコンピュータを起動する必要があった。そのため、検査対象のコンピュータによる不正な実ネットワークに接続、又は、検査対象のコンピュータへの不正なプログラムのインストールを事前に防ぐことはできなかった。【解決手段】本発明は、仮想端末ソフトウェアを用いて、検査対象のコンピュータの外部から検査を実施することを可能とする検疫ネットワークシステムを提供するものであり、仮想端末と仮想スイッチからなる仮想ネットワークシステムを構成させ、サーバの仮想端末ソフトウェアによる検査に合格しなければ検査対象のコンピュータを起動できないようにする。【選択図】図１
2008090791.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも1つのサーバと少なくとも1つのクライアント端末とを通信可能に接続する実ネットワークシステムと、前記クライアント端末が有する仮想端末及び前記サーバが有する仮想スイッチの間で、前記実ネットワークシステムとは独立して通信可能に接続される仮想ネットワークシステムとから構成され、前記仮想端末のセキュリティ状態を検査する検疫ネットワークシステムであって、
前記サーバは、前記クライアント端末から取得した認証情報と、前記仮想端末で利用されるユーザ識別子に対応する仮想ディスクの検証情報との間で、所定の乱数を用いて検証を行う判定部を有することを特徴とする検疫ネットワークシステム。
【請求項２】
前記サーバが、前記判定部を制御する制御部を有し、
前記制御部が、前記クライアント端末のOSの種類に対応して生成される仮想ディスクに基づいて、前記判定部を制御することを特徴とする請求項1に記載の検疫ネットワークシステム。
【請求項３】
前記判定部が、前記仮想端末のセキュリティ状態の検査を、前記仮想端末の起動の前に実行し、前記検査の合否に基づいて前記仮想端末を起動するか否かを判定することを特徴とする請求項1に記載の検疫ネットワークシステム。
【請求項４】
前記サーバが、
前記仮想ディスクを暗号化するのに用いられるディスク暗号鍵を生成する仮想ディスク暗号鍵生成部と、
前記ディスク暗号鍵を用いて前記仮想ディスクを暗号化し、暗号仮想ディスクを生成する仮想ディスク暗号処理部と、
前記暗号仮想ディスクに基づいて仮想ディスク検証情報を生成する検証情報生成部と、
前記ユーザ識別子に対応する仮想ディスク検証情報を保存記憶する記憶部と、
予め定められた少なくとも1つの定数を用いて、前記所定の乱数を生成する乱数生成部と、
前記所定の乱数を用いて認証情報生成因子を生成する認証情報生成因子生成部と、
前記暗号仮想ディスク及び前記認証情報生成因子を、前記クライアント端末に送信する通信部とを更に備え、
前記クライアント端末が、
前記サーバの通信部から受信した前記暗号仮想ディスク及び前記認証情報生成因子を用いて、前記認証情報を生成する認証情報生成部と、
前記認証情報を前記サーバに送信する通信部とを備えることを特徴とする請求項1に記載の検疫ネットワークシステム。
【請求項５】
前記判定部が、クライアント端末に保持される前記暗号仮想ディスク又は前記暗号仮想ディスクに関する暗号更新履歴の復号に用いられる復号鍵を提示することができるか否かを判定することを特徴とする請求項4に記載の検疫ネットワークシステム。
【請求項６】
前記サーバが、セキュリティ状態の検査が不合格となった前記クライアント端末に対して、再度の検査を実行するために、前記暗号仮想ディスクのみを初期状態に戻す再生成部を更に有することを特徴とする請求項4に記載の検疫ネットワークシステム。
【請求項７】
少なくとも1つのサーバと少なくとも1つのクライアント端末とを通信可能に接続する実ネットワークシステムにおいて、前記クライアント端末が有する仮想端末と前記サーバが有する仮想スイッチとの間で通信を実現する検疫ネットワークシステムであって、
前記仮想端末が、
前記仮想端末と前記仮想スイッチとの間の通信に用いられる第1のデータを生成する仮想端末ユーザアプリケーションと、
前記第1のデータに前記検疫ネットワークシステムでの通信に必要とされるヘッダ情報及びトレーラ情報を付加して第2のデータを生成する仮想端末制御部と、
前記第2のデータをクライアント端末が有する暗号通信処理部に送出する仮想端末通信部とを有し、
前記クライアント端末が、
前記認証情報を前記第2のデータに付し、且つ、暗号化して、第3のデータを生成する前記暗号通信処理部と、
前記第3のデータに前記実ネットワークでの通信に必要とされるヘッダ情報及びトレーラ情報を付加して第4のデータを生成する制御部と、
前記第4のデータを、前記仮想スイッチに送信する通信部とを有することを特徴とする請求項4に記載の検疫ネットワークシステム。
【請求項８】
少なくとも1つのサーバと少なくとも1つのクライアント端末とを通信可能に接続する実ネットワークシステムにおいて、前記クライアント端末が有する仮想端末と前記サーバが有する仮想スイッチとの間で、前記実ネットワークシステムとは独立した通信を実現する方法であって、
(a) 前記サーバの制御部が、前記仮想端末の起動に用いられる仮想ディスクをディスク暗号鍵を用いて暗号化し、暗号仮想ディスクを生成するステップと、
(b) 前記サーバの通信部が、前記ステップ(a)に基づいて生成された暗号仮想ディスクを前記クライアント端末に送信するステップと、
(c) 前記サーバの通信部が、認証情報生成因子生成部で所定の乱数を用いて生成した認証情報生成因子を前記クライアント端末に送信するステップと、
(d) 前記クライアント端末の通信部が、前記ステップ(b)及び(c)により取得した暗号仮想ディスク及び認証情報生成因子に基づいて認証情報生成部で生成した認証情報を、前記サーバに送信するステップと、
(e) 前記サーバの判定部が、セキュリティ状態を検査するために、前記ステップ(d)により取得した前記認証情報と、予め記憶部に記憶されている、前記仮想端末で利用されるユーザ識別子に対応する仮想ディスクの検証情報との間で、前記所定の乱数を用いて検証を行うことにより、前記検査の合否を判定するステップと、
(f) 前記サーバの制御部が、前記ステップ(e)の検査に基づいて検査合格となった、前記暗号仮想ディスクのディスク復号鍵を、前記クライアント端末に送信するステップと、
(g) 前記クライアント端末の制御部が、前記ステップ(f)により送信された前記ディスク復号鍵を受信し、前記暗号仮想ディスクを復号して前記仮想ディスクを生成するステップと、
(h)前記クライアント端末の制御部が、前記サーバとのVPN接続を確立し、前記ステップ(g)に基づいて生成された前記仮想ディスクを用いて、前記仮想端末を起動するステップとを含むことを特徴とする方法。
【請求項９】
(i) 前記クライアント端末の制御部が、前記ステップ(h)により起動した前記仮想端末を終了し、前記サーバとのVPN接続を切断するステップと、
(j) 前記サーバの制御部が、前記ステップ(i)のVPN接続の切断に基づいて、前記仮想ディスクを暗号化して、暗号仮想ディスクを生成するステップと、
(k) 前記サーバの制御部が、前記ステップ(j)により生成された前記暗号仮想ディスクを、前記サーバの記憶部に格納されているセキュリティ状態の登録情報に更新の処理を行うステップとを更に含む請求項8に記載の方法。
【請求項１０】
少なくとも1つのサーバと少なくとも1つのクライアント端末とを通信可能に接続する実ネットワークシステムにおいて、前記サーバとして機能するコンピュータに、
(a)ユーザ識別子に対応した仮想ディスクの仮想ディスク検証情報と、前記クライアント端末から取得した認証情報との間で、所定の乱数を用いて検証を行うステップと、
(b)前記ステップ(a)の検証が成立する場合においてのみ、前記クライアント端末が有する仮想端末と前記サーバが有する仮想スイッチとの間の通信を許可するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークの管理に関し、特に、クライアント端末によるネットワークシステムヘのアクセスに際し、仮想端末のセキュリティ状態をチェックすることでウィルス及びその他の悪意があるアプリケーションからネットワークシステムを保護する、検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラムに関する。
【背景技術】
【０００２】
企業等では、社内のネットワークシステム（例えばLANシステムであり、以下ネットワークシステムと称する）を保護するために、例えば社外の業務利用のネットワーク（例えばインターネットであり、以下、実ネットワークと称する）ヘコンピュータを接続する際に、そのコンピュータにウィルス対策ソフトが常駐しているか、指定されたセキュリティパッチが適用されているか等の検査を検疫サーバにより行い、その検査結果によって実ネットワークヘの接続可否を判断することがある。このような機構は一般に“検疫ネットワーク”と呼ばれている。
【０００３】
一般に検疫ネットワークは、実ネットワークに接続するコンピュータのセキュリティ状態を検査するエージェントソフトウェアと、実ネットワークヘの接続の可否を検査の結果から判断する検疫サーバのソフトウェアが、相互に連携することによって実現される。以下、“検査”とは、そのようなコンピュータのセキュリティ状態を検査することをいう。
【０００４】
検疫ネットワークの検疫方式には専用アプリケーション方式とダウンロード方式があることが知られている（例えば、非特許文献1）。専用アプリケーション方式とは、実ネットワークヘ接続するコンピュータにエージェントソフトウェアを予めインストールしておき、そのコンピュータのセキュリティ状態を検査する方式である。一方、ダウンロード方式とは、実ネットワークに接続するコンピュータが、ActiveXやJavaアプレットなどの技術を用いたエージェントソフトウェアを検疫サーバからダウンロードして、そのエージェントソフトウェアを起動させ、そのコンピュータのセキュリティ状態を検査する方式である。
【０００５】
【非特許文献１】田中啓之他“検疫ネットワーク”、日経コミュニケーション、日本、日経BP社、2006年4月1日、459号、pp.142−149
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述したような従来技術の検疫方式では、いずれもセキュリティ状態を検査するエージェントソフトウェアを検査対象であるコンピュータの内部で動作させる。このため、従来技術には後述する課題が存在する。
【０００７】
まず、検査対象のコンピュータで利用するオペレーティング・システム（OS）は、エージェントソフトウェアが動作可能なOSに限定されることになる。
【０００８】
また、検査を実施するためには、検査対象のコンピュータを起動する必要があり、検査実施前の状態は検疫ネットワークの管理化にない状態になる。そのため、検査対象のコンピュータにより不正な実ネットワークに接続されることを事前に防ぐことはできない。また、検査対象のコンピュータに不正なプログラムがインストールされることを事前に防ぐことはできない。即ち、従来の検疫ネットワークでは、検査対象のコンピュータによって、ネットワークシステム内にコンピュータウィルス、又は悪意あるアプリケーションが進入する可能性を有している。
【０００９】
本発明は、セキュリティ状態の検査を、検査対象であるコンピュータの外部から実施することで上記の課題を解決する、検疫ネットワークシステム、クライアント端末を検疫する方法、及び、クライアント端末を検疫するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、仮想端末ソフトウェアを構成する、本発明によるプログラムが提供され、その仮想端末ソフトウェアにより擬似的に作り出された仮想端末に対して検査を実施することによって実現される。即ち、仮想端末ソフトウェアを用いて、検査対象のコンピュータの外部から検査を実施することを可能とする検疫ネットワークシステムを提供するものであり、検査対象のコンピュータで利用するOSを自由に選択できるという利点を有する。具体的には、仮想端末ソフトウェアによる検査に合格しなければ検査対象のコンピュータを起動することができないようにすることで、検査対象のコンピュータによる不正なネットワークヘの接続を防ぐことを可能とする。従って、例えば企業等で利用される社内のネットワークシステムを、本発明に係る仮想ネットワークシステムとして用いれば、実ネットワークにも接続されるコンピュータに対して、仮想ネットワークシステムにおいて利用される情報及び仮想ネットワークシステム自体を確実に保護することが可能となる。
【００１１】
ここで、仮想端末ソフトウェアとは、検査対象のコンピュータ（以下、クライアント端末と称する）となるコンピュータ上で動作する、コンピュータのハードウェアを擬似的に作り出すソフトウェアをいう。一般的な仮想端末ソフトウェアとしては、ブイエムウェア（Vmware：Vmware社により提供される）、バーチャルピーシー（VirtialPC：Microsoft社により提供される）などが相当する。本発明の検疫ネットワークシステムに接続するのは、この仮想端末である。即ち、あるクライアント端末となるコンピュータは、仮想端末による仮想ネットワークへ接続する前に、仮想ネットワークシステムへのアクセスが検査される。具体的には、クライアント端末となるコンピュータ上で動作するエージェントソフトウェアによって、仮想端末のセキュリティ状態を検査する。更に、サーバの判定部は、仮想端末のセキュリティ状態の検査を、仮想端末の起動の前に実行し、検査の合否に基づいて仮想端末を起動するか否かを判定する機能を有する。また、エージェントソフトウェアを用いて、サーバの制御部が、クライアント端末のOSの種類に対応して生成される仮想ディスクに基づいて、判定部を制御する。
【００１２】
仮想端末のセキュリティ状態を検査するには、仮想端末を起動する際に用いる仮想ディスクが、ネットワークシステムが期待しているディスク形式と同一か否かを確認することによって行う。仮想ディスクは、実ディスク上のファイルを、擬似的に異なるディスク装置（例えば、仮想端末）で利用されるように実ネットワークから独立させたファイルである。具体的には、バーチャル・マシン・ディスクフォーマット〔Virtual Machine Disk Format(VMDK)：Vmware社により提供される〕、バーチャル・ハードディスク〔Virtual Hard Disk(VHD)：Microsoft社により提供される〕に基づくファイルが相当する。仮想端末のセキュリティ状態を検査するために、本発明に係る“仮想ディスク認証方法”を用いる。
【００１３】
本発明に係る“仮想ディスク認証方法”は、仮想ディスクを用いて仮想端末のセキュリティ状態を検査する前に、ネットワークを介して接続されるサーバとクライアント端末との間で用いられる。本発明に係る“仮想ディスク認証方法”は、サーバの制御部が、前記仮想端末の起動に用いられる仮想ディスクをディスク暗号鍵を用いて暗号化し、暗号仮想ディスクを生成するステップ（ステップ(a)）と、前記サーバの通信部が、前記ステップ(a)に基づいて生成された暗号仮想ディスクを前記クライアント端末に送信するステップ（ステップ(b)）と、前記サーバの通信部が、認証情報生成因子生成部で所定の乱数を用いて生成した認証情報生成因子を前記クライアント端末に送信するステップ（ステップ(c)）と、前記クライアント端末の通信部が、前記ステップ(b)及び(c)により取得した暗号仮想ディスク及び認証情報生成因子に基づいて認証情報生成部で生成した認証情報を、前記サーバに送信するステップ（ステップ(d)）と、前記サーバの判定部が、セキュリティ状態を検査するために、前記ステップ(d)により取得した前記認証情報と、予め記憶部に記憶されている、前記仮想端末で利用されるユーザ識別子に対応する仮想ディスクの検証情報との間で、前記所定の乱数を用いて検証を行うことにより、前記検査の合否を判定するステップ（ステップ(e)）とを含んでいる。本発明の一態様によれば、サーバとして機能するコンピュータに、これらステップを実行するためのプログラムとしても特徴付けられる。
【００１４】
また、仮想端末が利用するネットワークは、本発明の検疫ネットワークシステム側に構築され、本発明に係る仮想ディスクを用いた検査によって接続を許可されたネットワークのみとする。仮想端末がネットワークで送受信する内容は全て、クライアント端末とネットワークシステムの間で構築されたVPNを通じて、ネットワークシステム側に用意された仮想端末用ネットワークを終端するサーバヘ届けられるものとする。仮想端末用ネットワークを終端するサーバは、クライアント端末とのVPNを終端するほか、仮想端末間のネットワークにおける、イーサネット（登録商標）（以下、Ethernetと略）レベルでの中継を行うソフトウェアを有する。複数クライアント端末とのVPN通信路と、仮想端末が持つMACアドレスとの対応を学習する機能を備え、実ネットワークにおけるインテリジェントハブ相当の機能を有する。
【発明の効果】
【００１５】
本発明によれば、ネットワークシステムヘ接続する端末を仮想端末とし、その検査を実施するエージェントソフトウェアを検査対象となるコンピュータ（即ち、クライアント端末）の外側で実行することにより、検査対象のコンピュータで利用されるOS（即ち、制御部の制御システム）が、エージェントソフトウェアの動作可能なOSに限定されることがなくなる。
【００１６】
また、検査対象のコンピュータ（クライアント端末）を、既存の検疫ネットワークでは実現することができなかった、不正なネットワークヘの接続から保護することが可能となる。言い換えれば、既存の検疫ネットワークで行われるような、特定のプログラムやファイルの有無確認による検査方法よりも検査の精度やシステム保護の完全性が格段に向上するという効果が生じる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明による実施例1の仮想端末を利用した検疫ネットワークシステムについて説明する。
【００１８】
（実施例１）
本発明の実施例1は、基本的な実施態様を示しており、本発明の趣旨を逸脱するものでないならば、種々の実施例に拡張可能である。
【００１９】
まず、実施例1の仮想端末を用いたネットワークシステムの構成を説明する。
【００２０】
（ネットワークシステムの構成）
図1は、実施例1のネットワークシステムの全体構成図である。また、図2は、本発明による実施例1の各仮想端末及び仮想スイッチにおいて実現される仮想ネットワークシステムの論理構成図である。図１に示すように、実施例1のネットワークシステムは、１つのサーバ2と3つのクライアント端末（クライアント端末1、クライアント端末3 及びクライアント端末4）とを備え、各々がネットワーク5を介して接続されている。しかしながら、図１に示す構成は、説明の便宜のためであり、これに限定するものではない。例えば、複数のクライアント端末と複数のサーバとがネットワーク5を介して接続されるようなネットワークシステムを構成することができる。尚、一般的な“クライアント端末の認証”を実現する場合において、サーバ2は１つで十分な場合が多い。尚、図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など）には、検証情報を生成するためのプログラム、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム、クライアント端末から受信した情報とサーバに保持される情報との一致を判定するためのプログラム及びこれらのプログラムの処理において必要となるデータなどが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【００５１】
次に、クライアント端末内に設けられる仮想端末、及び、サーバ内に設けられる仮想スイッチについて説明する。
【００５２】
（仮想端末及び仮想スイッチ）
図１に示されているように、各クライアント端末内には、前述したように仮想端末が各々設けられ、サーバ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進数表記と同一視した。
【００６５】
【数１】
2008090791.tif 000003
【００６６】
ステップS110において、制御部290は、仮想ディスクh0を利用するユーザを示すユーザ識別子u、ユーザ識別子uに対応するユーザパスワードp、仮想ディスク検証情報C(s0)及びディスク暗号鍵k0の組を、外部記憶装置27内の所定の領域に記憶保存された認証テーブル（表1参照）に登録する。
【００６７】
【表１】
2008090791.tif 000004
【００６８】
ステップ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から読み込んで、クライアント端末１に対して送信する。
【００７７】
【数２】
2008090791.tif 000005
【００７８】
尚、ステップS109、S205及びS207において生成された仮想ディスク検証情報C(s0)、乱数r及び認証情報生成因子Rは、制御部290の制御によって、外部記憶装置27に保存記憶される。
【００７９】
ステップS208において、クライアント端末１の制御部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参照）。
【００８１】
【数３】
2008090791.tif 000006
【００８２】
ステップ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に進む。
【００８５】
【数４】
2008090791.tif 000007
【００８６】
ここで、式(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参照）に登録する。
【００９７】
【表２】
2008090791.tif 000008
【００９８】
次に、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は、本発明による実施例１の仮想端末ユーザアプリケーションと仮想端末ユーザアプリケーションが通信を行う動作を示すフローチャートである。
【０１０７】
まず、ステップ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から、エントリされているユーザ識別子、及びそのユーザ識別子との暗号通信用鍵を調べて取得する。実施例１においては、クライアント端末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進数表記と同一視した。
【０１４９】
【数５】
2008090791.tif 000009
【０１５０】
次に、ステップ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から削除する。
【０１５８】
以上、実施例１における仮想端末を利用したネットワークシステムにおけるクライアント端末の検疫のための事前処理、接続処理、通信処理及び切断処理を説明した。
【０１５９】
次に、本発明による実施例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から読み込んで、クライアント端末１に対して送信する。
【０１６７】
【数６】
2008090791.tif 000010
【０１６８】
ステップS208-2において、クライアント端末１の制御部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又はサーバ2のプログラムの１つとすることができる。素因数分解が困難な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)のように表すことができる。
【０２１５】
【数７】
2008090791.tif 000011
【０２１６】
従って、実施例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)を用いることもできる。
【０２１８】
【数８】
2008090791.tif 000012
【０２１９】
尚、この場合、式(4)の代わりに、式(9)に示す関係が成立するか否かを判定して、クライアント端末(1)からのセッション開始要求を拒否するか否かを判断することになる。
【０２２０】
【数９】
2008090791.tif 000013
【０２２１】
尚、実施例4を実現するハードウェア構成及び各プログラム、更に各プログラムによって実現される機能は、実施例1の説明から適宜置換できることは当業者に明らかである。
【０２２２】
以上により、サーバ2又は各クライアント端末は、実施例1又は2の各演算の計算効率をより高めることができるようになる。
【０２２３】
次に、本発明による実施例5の仮想端末を利用した検疫ネットワークシステムについて説明する。
【０２２４】
（実施例5）
前述した実施例においては、認証情報生成因子Rを送信したサーバ2を信頼のおけるサーバ2であることを前提としているが、サーバ2が不正な方法で認証情報生成因子Rを生成する場合があることを否定できない。そこで、クライアント端末は、サーバ2が確かに所定の処理に基づいて認証情報生成因子Rを生成したものであることを対話証明によって認証することができる。対話証明の一例として、乱数rに関するゼロ知識証明を利用した検証装置の認証について説明する。尚、本実施例の説明において、ゼロ知識証明の構成に代え、楕円曲線上のスカラー倍演算を用いた構成にすることもできる。また、安全性の観点からは、知識の証明はゼロ知識証明であることが望ましいが、高効率化のために、現時点ではゼロ知識性の数学的証明が完全になされていない手段、例えば後述するC^をハッシュ関数を用いたビットコミットメントに代替することもできる。実施例5では、前述した実施例と同様な機能・処理については説明を省略する。
【０２２５】
ここで、図5で説明したクライアント端末2とサーバ１の構成に付加される機能について説明する。また、付加される後述のC^生成部、W生成部、z生成部、対話判定部について、図示を省略する。
【０２２６】
例えば、クライアント端末1は、C^生成部を有するように構成させてもよい。C^生成部は、後述する所定の演算を行ってC^を生成するためのプログラムとして、実施例１で説明したクライアント端末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に記憶保持される。
【０２３４】
【数１０】
2008090791.tif 000014
【０２３５】
このように、上述の実施例と同様に、クライアント端末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に記憶保持される。
【０２３８】
【数１１】
2008090791.tif 000015
【０２３９】
次に、サーバ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の所定の格納領域に格納する。
【０２４３】
【数１２】
2008090791.tif 000016
【０２４４】
次に、サーバ2は、z生成部により生成されたzをクライアント端末1に送信する。
【０２４５】
zを受信したクライアント端末1は、証明判定部により、zを外部記憶装置17に保存記憶し、外部記憶装置17から、g、N、認証情報生成因子R、z、W及び乱数cを読み出し、式(13)の関係を満たすか否かの判定を行う。この判定結果が不成立の場合には、該セッションを終了させる。この判定結果が成立の場合には、前述したように、式(8)に従った演算を行って認証情報R(s)を生成するステップ（図7に示すステップS209）に進む。
【０２４６】
【数１３】
2008090791.tif 000017
【０２４７】
以上により、クライアント端末は、認証情報R(s)を生成する前に、サーバ2が確かに所定の処理に基づいて認証情報生成因子Rを生成したものであることを対話証明によって認証することができる。
【０２４８】
次に、本発明による実施例6の仮想端末を利用した検疫ネットワークシステムについて説明する。
【０２４９】
（実施例6）
実施例6では、前述した実施例とは別の安全性向上を図る態様である。実施例6では、前述した実施例と同様な機能・処理については説明を省略する。
【０２５０】
ここで、図5で説明したクライアント端末2とサーバ１の構成に付加される機能について説明する。また、付加される後述の各乱数生成部、第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の所定の領域に格納する。
【０２５９】
【数１４】
2008090791.tif 000018
【０２６０】
ステップ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の所定の領域に格納する。
【０２６３】
【数１５】
2008090791.tif 000019
【０２６４】
次に、ステップ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)が成立するか否かの判定を行い、成立しない場合には該セッションを終了する。
【０２６６】
【数１６】
2008090791.tif 000020
【０２６７】
式(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)を用いて説明したが、実施例７では、H(i, u, R,A,B)= ui又はSHA-1などのハッシュ関数と表すことができ、式(8)の代わりに式(17)に従った演算を行う。
【０２７５】
【数１７】
2008090791.tif 000021
【０２７６】
尚、この場合、式(9)の代わりに、式(18)に示す関係が成立するか否かを判定して、クライアント端末(1)からのセッション開始要求を拒否するか否かを判断することになる。
【０２７７】
【数１８】
2008090791.tif 000022
【０２７８】
尚、実施例7を実現するハードウェア構成及び各プログラム、更に各プログラムによって実現される機能は、実施例1の説明から適宜置換できることは当業者に明らかである。
【０２７９】
以上により、サーバ2又は各クライアント端末は、実施例7において実施例6の態様のの各演算の計算効率をより高めることができるようになる。
【０２８０】
仮想端末間の通信方法について、上述の実施例で説明した仮想スイッチを介した通信方法のほか、複数の仮想端末間でメッシュ状にVPN接続を行う態様をとっても、本発明は実現可能である。
【０２８１】
また、仮想端末間の通信方法について、仮想端末が送出するEthernetフレームを逐次VPN処理する通信方式のほか、通信効率を高めるために複数のEthernetフレームを蓄積・結合、圧縮、または暗号処理を省略してVPN処理する通信方式を用いても、本発明は実現可能である。
【０２８２】
尚、上述の実施例で説明した仮想ディスクの暗号方式に関して、暗号鍵と復号鍵が同一である共通鍵暗号による方式のほか、暗号鍵と復号鍵が異なる公開鍵暗号による方式を用いても、本発明は実現可能である。
【０２８３】
また、上述の実施例で説明した接続処理中のユーザ認証に関して、ユーザ識別子とパスワードによる認証方式のほか、電子証明書を用いた方式など、クライアント端末の利用者を特定する他の認証方式を適用しても、本発明は実現可能である。
【０２８４】
更に、上述の実施例で説明した構成のほか、同一のクライアント端末上に複数の仮想端末を同時に実行し、それぞれが異なる仮想スイッチと接続し、複数の論理構成を同時に利用する形態も、本発明を用いて実現可能である。
【０２８５】
上述の実施例によれば、ネットワークシステムヘ接続する端末を仮想端末とし、その検査を実施するエージェントソフトウェアを検査対象となるコンピュータの外側で実行するため、検査対象のコンピュータで利用されるOSが、エージェントソフトウェアが動作可能なOSに限定されることがなくなる。
【０２８６】
さらに、検査対象となるコンピュータを起動する前に、エージェントソフトウェアによる検査が実現可能となる。これにより、該ネットワークヘの接続用途以外では検査対象のコンピュータを利用することを禁止することができる。また、クライアント端末が保持する暗号仮想ディスク及び暗号更新履歴を復号できる鍵をサーバが提示することができるかを判定することにより、クライアント端末が通信をしているサーバが正しいサーバか、つまり、接続を試みているネットワークが正しいネットワークかを接続する前に判定することができる。
【０２８７】
これらは、検査対象のコンピュータを、不正なネットワークヘの接続から守ることが可能となることを意味し、既存の検疫ネットワークでは実現することができなかった効果が得られる。
【０２８８】
上述の実施例で説明した検査方法を用いることにより、既存の検疫ネットワークで行われるような、特定のプログラムやファイルの有無確認による検査方法よりも検査の精度や完全性が格段に向上する効果が得られる。
【０２８９】
一方、図2の論理構成で示した通り、仮想端末間の通信は物理的なネットワークとは論理的に独立しているため、クライアント端末やサーバを含んだ物理環境との通信を遮断することができる。仮想端末および仮想スイッチで構成される仮想ネットワークシステムと、クライアント端末やサーバで構成される物理的なネットワークシステムは、独立したネットワークとして利用される。これにより、物理的なネットワークシステムと仮想ネットワークシステムの間で、ネットワークを経由した不正アクセスや不正な情報通信を排除することも可能となる。
【０２９０】
上述の検疫ネットワークシステム又は検疫方法の各処理は、サーバ及びクライアント端末における各処理機能をコンピュータによって実現する場合、サーバ及びクライアント端末の有する機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、サーバ及びクライアント端末における各処理機能がコンピュータ上で実現される。また、検疫ネットワークシステム又は検疫方法の各処理は、サーバ及びクライアント端末における各処理機能を、ハードウェアの全部又は一部で実現しても良い。
【０２９１】
また、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録装置、半導体メモリ等どのようなものでもよい。
【０２９２】
また、この処理内容を記述したプログラムを、例えばDVD又はCD-ROMなどの可搬型記録媒体の販売、譲渡、貸与等により流通させることができるほか、そのようなプログラムを、ネットワーク上のサーバコンピュータの記録装置に格納しておき、ネットワークを介してサーバコンピュータから他のコンピュータにそのプログラムを転送することにより、流通させることができる。
【０２９３】
また、そのようなプログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバから転送されたプログラムを、一旦、自己の記録装置に格納することができる。この場合には処理の実行のとき、このコンピュータは自己の記録媒体に格納されたプログラムを読取り、読み取ったプログラムに従った処理を実行することになる。また、このプログラムの別の実施態様として、コンピュータが可搬型記録媒体から直接プログラムを読取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバからプログラムが転送される度に、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバからコンピュータに転送を行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるアプリケーション・サービス・プロバイダ（Application Survice Provider:ASP）型のサービスによって、上述の処理を実行する構成としてもよい。尚、本態様におけるプログラムには、電子計算機の処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないが、コンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０２９４】
上述の実施例については代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。例えば、上述の実施例では、認証情報の生成方法や判定方法は適宜変更可能であり、また、上述の検疫ネットワークシステム又は検疫方法の各処理は、記載の順に従って時系列に処理されるのみならず、処理を実行する装置の処理能力或いは必要に応じて並列的に或いは個別に実行されるとしてもよい。従って、本発明は、上述の実施例によって制限するものと解するべきではなく、特許請求の範囲によってのみ制限される。
【産業上の利用可能性】
【０２９５】
本発明によれば、仮想端末間の通信は物理的なネットワークとは論理的に独立しているため、クライアント端末やサーバを含んだ物理環境との通信を確実に遮断することができ、仮想ネットワークシステムを、実ネットワークとは独立したネットワークとして利用することができるため、より強度のあるセキュリティ対策が要求される検疫ネットワークに有用である。
【図面の簡単な説明】
【０２９６】
【図１】本発明による実施例1のネットワークシステムの全体構成図である。
【図２】本発明による実施例1の各仮想端末及び仮想スイッチにおいて実現されるネットワークシステムの論理構成図である。
【図３】本発明による実施例1のネットワークシステムにおけるクライアント端末の構成を例示的に示す図である。
【図４】本発明による実施例1のネットワークシステムにおけるサーバの構成を例示的に示す図である。
【図５】本発明による実施例1の各仮想端末及び仮想スイッチの構成図である。
【図６】本発明による実施例１のクライアント端末1上で動作する仮想端末を、サーバ側で管理される仮想ネットワークに接続するための事前処理を示すフローチャートである。
【図７】本発明による実施例１のクライアント端末1上で動作する仮想端末を、サーバ側で管理される仮想ネットワークに接続する動作を示すフローチャートである。
【図８Ａ】発明による実施例１の仮想端末ユーザアプリケーションと仮想端末ユーザアプリケーションが通信を行う動作を示すフローチャートである（前半）。
【図８Ｂ】本発明による実施例１の仮想端末ユーザアプリケーションと仮想端末ユーザアプリケーションが通信を行う動作を示すフローチャートである（後半）。
【図９】本発明による実施例1のクライアント端末が仮想端末の利用終了とVPNの切断を行い、サーバ側の認証情報を更新する動作を示すフローチャート図である。
【図１０】本発明による実施例2のクライアント端末上で動作する仮想端末を、サーバ2側で管理される仮想ネットワークに接続する動作について示すフローチャート図である。
【図１１】本発明による実施例2のクライアント端末が仮想端末の利用終了とVPNの切断を行い、サーバ側の認証情報を更新する動作を示すフローチャート図である。
【符号の説明】
【０２９７】
1  クライアント端末
2  サーバ
3  クライアント端末
4  クライアント端末
203  仮想スイッチ
1000  仮想端末
3000  仮想端末
4000  仮想端末
【図１】
2008090791.tif 000023
【図２】
2008090791.tif 000024
【図３】
2008090791.tif 000025
【図４】
2008090791.tif 000026
【図５】
2008090791.tif 000027
【図６】
2008090791.tif 000028
【図７】
2008090791.tif 000029
【図８Ａ】
2008090791.tif 000030
【図８Ｂ】
2008090791.tif 000031
【図９】
2008090791.tif 000032
【図１０】
2008090791.tif 000033
【図１１】
2008090791.tif 000034