(57)【要約】【課題】仮想サーバを稼働させユーザ端末が利用する状況において、ユーザのデータ（仮想ＯＳデータ）の漏洩などを防止して安全に管理することができる技術を提供する。【解決手段】本システムは、複数の仮想ＯＳを稼働させるハイパーバイザ１０を備えるサーバ装置１を含んで成る。例えば、複数の仮想ＯＳは、管理ＯＳ１１と、暗号化用仮想ＯＳ１２と、ユーザ端末３毎に利用される複数のゲストＯＳ１３とを含む。暗号化用仮想ＯＳ１２は、ユーザのゲストＯＳ１３毎に異なる暗号鍵を生成して管理する暗号化管理部５１と、ユーザのゲストＯＳ１３毎のデータを、対応する暗号鍵を用いて暗号化及び復号化する暗号化ドライバ５２とを有する。データ入出力の際、ゲストＯＳ１３のスプリットドライバ６３から暗号化用仮想ＯＳ１２のスプリットドライバ６２にアクセスされ、自動的に暗号化機能が利用される。【選択図】図１
2011048661.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想ＯＳを稼働させる制御手段を備えるサーバ装置を含んで成り、
前記複数の仮想ＯＳは、
ユーザに利用される複数の第１の仮想ＯＳと、
暗号化機能を備える第２の仮想ＯＳと、を含み、
前記第１の仮想ＯＳは、前記第２の仮想ＯＳにアクセスし通信する第１のドライバを有し、
前記第２の仮想ＯＳは、
前記第１のドライバからアクセスされ通信する第２のドライバと、
前記ユーザの第１の仮想ＯＳ毎に異なる暗号鍵を生成して対応付けて管理する暗号化管理部と、
前記ユーザの第１の仮想ＯＳ毎のデータを前記対応付けられた暗号鍵を用いて暗号化及び復号化する暗号化ドライバと、を有し、
前記ユーザの第１の仮想ＯＳに対するデータの入出力の際、前記第１のドライバから前記第２のドライバにアクセスし、前記第２の仮想ＯＳは、当該入出力データを対象として、前記暗号化管理部による前記暗号鍵を用いて、前記暗号化ドライバにより、暗号化して記憶手段に書き込む処理、及び、記憶手段から暗号化データを読み出して復号化する処理を行うこと、を特徴とする仮想サーバ暗号化システム。
【請求項２】
請求項１記載の仮想サーバ暗号化システムにおいて、
前記サーバ装置は、ハードウェア上のハイパーバイザ上に、前記複数の仮想ＯＳを稼働させ、
前記複数の仮想ＯＳとして、
他の仮想ＯＳを管理する管理ＯＳと、
前記第２の仮想ＯＳである暗号化用仮想ＯＳと、
前記ユーザ毎に対応付けて利用される前記複数の第１の仮想ＯＳである複数のゲストＯＳと、を有し、
前記暗号化用仮想ＯＳは、前記第２のドライバと、前記暗号化管理部と、前記暗号化ドライバと、前記ハイパーバイザを通じて前記ハードウェアにアクセスするデバイスドライバと、を有し、
前記暗号化用仮想ＯＳは、前記暗号化ドライバによる暗号化または復号化の際、前記デバイスドライバの処理を通じて、前記ハイパーバイザを通じて前記ハードウェアにアクセスすること、を特徴とする仮想サーバ暗号化システム。
【請求項３】
請求項１記載の仮想サーバ暗号化システムにおいて、
前記サーバ装置は、ハードウェア上のハイパーバイザ上に、前記複数の仮想ＯＳを稼働させ、
前記複数の仮想ＯＳとして、
他の仮想ＯＳを管理し、前記第２の仮想ＯＳの暗号化機能を含む管理ＯＳと、
前記ユーザ毎に対応付けて利用される前記複数の第１の仮想ＯＳである複数のゲストＯＳと、を有し、
前記管理ＯＳにおける前記暗号化機能は、前記第２のドライバと、前記暗号化管理部と、前記暗号化ドライバと、前記ハイパーバイザを通じて前記ハードウェアにアクセスするデバイスドライバと、を有し、
前記暗号化機能は、前記暗号化ドライバによる暗号化または復号化の際、前記デバイスドライバの処理を通じて、前記ハイパーバイザを通じて前記ハードウェアにアクセスすること、を特徴とする仮想サーバ暗号化システム。
【請求項４】
請求項１記載の仮想サーバ暗号化システムにおいて、
前記サーバ装置における、前記暗号化管理部による複数の暗号鍵の管理情報を含む、前記第２の仮想ＯＳのデータを、暗号化して管理する、第三者機関の情報処理システムを有すること、を特徴とする仮想サーバ暗号化システム。
【請求項５】
請求項１記載の仮想サーバ暗号化システムにおいて、
管理者により、前記サーバ装置に対して、前記ユーザに利用される第１の仮想ＯＳを設定する際、前記第２の仮想ＯＳは、前記暗号化管理部により、当該ユーザの第１の仮想ＯＳに対応付ける前記暗号鍵を生成して設定し、その管理情報を含むデータを記憶手段に保存し、
前記第１の仮想ＯＳの稼働の際、前記第２の仮想ＯＳは、前記暗号化管理部により、前記複数の暗号鍵の管理情報を含むデータを前記記憶手段から読み出して当該複数の暗号鍵を保持し、当該第１の仮想ＯＳに応じて当該暗号鍵を切り替えること、を特徴とする仮想サーバ暗号化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドコンピューティング環境におけるサーバ仮想化、仮想ＯＳなどの技術に関し、特に、データ暗号化等の情報セキュリティの技術に関する。
【背景技術】
【０００２】
クラウドコンピューティング環境の普及に伴い、従来は社内（企業内ＬＡＮのサーバやデータベース等）に存在・管理されていたデータが、外部のデータセンタ等に存在・管理されることが増えてきている。
【０００３】
データセンタ等のコンピュータ（サーバ装置）においては、サーバ仮想化、仮想ＯＳなどの技術を用いて、１つのサーバ装置上に、複数の仮想ＯＳ（仮想サーバ）を稼働させることができる。これによりハードウェア資源の使用率などを高め、ユーザ（クライアント、企業等）による多数のアクセスを効率的に処理することができる。また更に、システム・機能によっては、それらの仮想ＯＳ（仮想サーバ）毎に、利用（アクセス）するユーザ（ユーザ端末）を対応付けることができる。
【０００４】
上記サーバ仮想化、仮想ＯＳの技術としては、ハイパーバイザ方式などがある。この方式では、コンピュータ（サーバ装置）のハードウェア上、ハイパーバイザ（仮想マシン制御プログラム）が稼働し、ハイパーバイザ上、管理ＯＳやゲストＯＳ（ユーザが利用する仮想ＯＳ）を含む複数の仮想ＯＳが稼働する。管理ＯＳは、複数のゲストＯＳを管理する。各ゲストＯＳは、ユーザ（ユーザ端末）によりアクセス・利用される仮想サーバとして機能する。
【０００５】
一方、企業や個人が利用するコンピュータのＯＳ（オペレーティングシステム）及び当該ＯＳで管理される情報データは、情報漏洩対策などの情報セキュリティの観点から、データ暗号化が施されることが増えている。例えば、ＰＣの所定のディスクボリューム（パーティション）のデータ全体を暗号化して保存する機能などが挙げられる。
【０００６】
先行技術例として、ＯＳ暗号化（暗号化機能を持つＯＳ）に関して、特表２００６−５１０９５８号公報（特許文献１）などがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００６−５１０９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述のような背景において、サーバ仮想化、仮想ＯＳの技術により、同一のサーバ装置上で、ユーザ毎に利用される複数の仮想ＯＳ（ゲストＯＳ、仮想サーバ）が稼働する場合、各ユーザの仮想ＯＳでは、情報セキュリティの観点から、個別にデータの暗号化を施していることが多い。
【０００９】
例えば、同一のサーバ装置上で異なる企業等のユーザの複数の仮想ＯＳが並列的に稼働している場合、不測のエラー等の原因により、あるユーザ（Ａ）の仮想ＯＳ（Ａ）のデータが、他の仮想ＯＳ（Ｂ）のユーザ（Ｂ）によって誤って読み取られてしまうこと等が発生し得る。そのようなリスクに対する対策のため、各ユーザとしては、利用する仮想ＯＳのデータ（ディスクボリューム等）を独自に暗号化してデータベース等に保存しておく。これにより、例えばエラーや悪意により自社の仮想ＯＳのデータが外部に読み取られたとしても、当該データが暗号化されているので、情報漏洩などを防止することができる。
【００１０】
しかしながら、上記のように、ユーザ毎に個別に仮想ＯＳデータの暗号化を選択的、恣意的に施す状況については、以下のような問題が挙げられる。
【００１１】
まず、ユーザ（管理者）による仮想ＯＳデータの暗号化の実施の忘れや、暗号化の暗号鍵の不適切な管理などにより、安全な暗号化及び情報データ保存が行われず、情報漏洩などのリスクが高まることが少なくない。
【００１２】
また、ユーザ（管理者）による仮想ＯＳデータ暗号化の実施やその管理に関する手間やコストがかかる。
【００１３】
以上を鑑み、本発明の主な目的は、クラウドコンピューティング環境においてサーバ装置（仮想サーバ）を稼働させユーザ（ユーザ端末）が利用する状況において、ユーザのデータ（仮想ＯＳデータ）の漏洩などを防止して安全に管理することができ、また、ユーザ（管理者）によるデータ暗号化に関する手間やコストを削減できる技術を提供することである。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。前提として、クラウドコンピューティング環境（インターネット等）におけるコンピュータ（共同利用型のサーバ装置）上で、ハイパーバイザ方式などにより、複数の仮想ＯＳ（管理ＯＳや複数のゲストＯＳ等）を稼働させ、ユーザ（ユーザ端末、ユーザグループ等）毎に仮想ＯＳ（ゲストＯＳ）を仮想サーバとして利用する。本サーバ装置を含んで成る情報処理システム（仮想サーバ暗号化システム）において、以下のような特徴を有する。
【００１５】
（１）  本システムでは、各ユーザの仮想ＯＳのデータ（仮想ＯＳデータ）を対象とした暗号化（及び復号化）の処理、及びそこで使用する暗号鍵の管理（複数の暗号鍵の生成や切り替えや保存等）の処理を、独立した仮想ＯＳ（暗号化用仮想ＯＳ）などの形で、ドライバレベルで行う。これにより、サーバ装置側の各仮想ＯＳの背後で自動的に仮想ＯＳデータの暗号化が実施される形になる。よって、各ユーザ（その仮想ＯＳ）では、従来のように個別にデータ暗号化の実施を意識する必要が無く、安全にデータ（仮想ＯＳデータ）が管理される。
【００１６】
（２）  また本システムでは、上記仮想ＯＳデータの暗号化（及び復号化）の暗号鍵については、ユーザ毎、仮想ＯＳ毎に異なるものが使用されるように自動的に暗号鍵を生成して複数の暗号鍵（その情報データ）をセキュアに管理する処理などが行われる。これにより、あるユーザの仮想ＯＳの暗号化データは、他のユーザの仮想ＯＳのデータの暗号鍵によっては復号化できないので、他のユーザによりデータが参照されること（情報漏洩）等が防止される。
【００１７】
（３）  また更に本システムでは、本サーバ装置における上記暗号鍵を管理する処理機能などを持つ仮想ＯＳ（暗号化用仮想ＯＳなど）自体のデータを、第三者機関（監査システムなど）により暗号化し、この暗号鍵を含む暗号化データをセキュアに管理する。これにより、本サーバ装置（管理ＯＳ）の運用者・管理者側によるユーザの仮想ＯＳのデータの参照（情報漏洩）等が防止されるので、より安全な管理が実現され、第三者機関による監査等が実現できる。
【００１８】
本システム形態は、例えば、複数の仮想ＯＳを稼働させる制御手段（仮想マシン制御プログラム等）を備えるサーバ装置（コンピュータ）及び前記仮想ＯＳを利用するユーザ端末等を含んで成る情報処理システム（仮想サーバ暗号化システム）である。前記複数の仮想ＯＳは、ユーザ（ユーザ端末）に利用される複数の第１の仮想ＯＳ（ゲストＯＳ）と、暗号化機能を備える第２の仮想ＯＳと、を含む。前記第１の仮想ＯＳは、前記第２の仮想ＯＳにアクセスし通信する第１のドライバを有する。前記第２の仮想ＯＳは、前記第１のドライバからアクセスされ通信する第２のドライバと、前記ユーザの第１の仮想ＯＳ毎に異なる暗号鍵を生成して対応付けて管理する暗号化管理部と、前記ユーザの第１の仮想ＯＳ毎のデータを前記対応付けられた暗号鍵を用いて暗号化及び復号化する暗号化ドライバと、を有する。前記ユーザの第１の仮想ＯＳに対するデータの入出力の際、前記第１のドライバから前記第２のドライバにアクセスし、前記第２の仮想ＯＳは、当該入出力データを対象として、前記暗号化管理部による前記暗号鍵を用いて、前記暗号化ドライバにより、暗号化して記憶手段に書き込む処理、及び、記憶手段から暗号化データを読み出して復号化する処理を行う。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。本発明によれば、クラウドコンピューティング環境においてサーバ装置（仮想サーバ）を稼働させユーザ（ユーザ端末）が利用する状況において、ユーザのデータ（仮想ＯＳデータ）の漏洩などを防止して安全に管理することができ、また、ユーザ（管理者）によるデータ暗号化に関する手間やコストを削減できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態１の情報処理システム（仮想サーバ暗号化システム）の全体の構成を示す図である。
【図２】実施の形態１等の情報処理システムにおける、ユーザ端末、仮想ＯＳ，及び暗号化データなどの関係を示す図である。
【図３】実施の形態１等の情報処理システムにおける、仮想ＯＳ及び暗号鍵の管理情報のデータ構造例を示す図であり、（ａ）は仮想ＯＳ管理情報、（ｂ）は暗号鍵管理情報（暗号化管理情報）を示す。
【図４】実施の形態１の情報処理システムにおける、ゲストＯＳ設定時の処理例を示す図である。
【図５】実施の形態１の情報処理システムにおける、ゲストＯＳ通常アクセス時の処理例を示す図である。
【図６】本発明の実施の形態２の情報処理システム（仮想サーバ暗号化システム）の全体の構成を示す図である。
【図７】本発明の実施の形態３の情報処理システム（仮想サーバ暗号化システム）の全体の構成を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００２２】
（実施の形態１）
図１〜図５を用いて、本発明の実施の形態１の情報処理システム（仮想サーバ暗号化システム）について説明する。実施の形態１の概要（特徴）は以下である。図１で、特徴的な要素は、暗号化用仮想ＯＳ１２であり、特に、暗号化管理部５１及び暗号化ドライバ５２である。
【００２３】
（１）サーバ装置１（暗号化用仮想ＯＳ１２）側において、ユーザ（ユーザ端末３）の仮想ＯＳ（ゲストＯＳ１３）のデータをドライバレベルで自動的に暗号化して管理する機能（暗号化機能）を有する。本機能は、ハイパーバイザ１０上で独立して稼働する１つの仮想ＯＳ（暗号化用仮想ＯＳ１２）の機能として提供される。これにより、ユーザ端末３は、暗号化を意識せずに仮想ＯＳ（ゲストＯＳ１３）を利用することができる。
【００２４】
（２）特に、上記暗号化機能では、複数のユーザの仮想ＯＳ毎のデータ暗号化の暗号鍵を、自動的に異なるものに設定し管理する機能（暗号化管理部５１による）を有する。これにより、異なるユーザ（ユーザ端末３）間でのゲストＯＳ１３のデータの参照（情報漏洩）等が防止される。
【００２５】
＜１：システム＞
図１において、実施の形態１の情報処理システム（仮想サーバ暗号化システム）の構成を示している。本システムは、インターネット等の通信ネットワーク９（クラウドコンピューティング環境）に接続される、サーバ装置（コンピュータ）１、ストレージ（データベース（ＤＢ）等）２、複数のユーザ端末３などを有する。
【００２６】
サーバ装置１は、ストレージ２、複数のユーザ端末３などと接続される。また図４のように管理者が使用する管理者端末４と接続されてもよい。サーバ装置１は、ハイパーバイザ方式で仮想ＯＳ（仮想サーバ）を稼働させることにより、仮想サーバとして機能する。サーバ装置１は、ハードウェア上で、ハイパーバイザ（仮想マシン制御プログラム）１０が稼働し、ハイパーバイザ１０上に、複数の仮想ＯＳが稼働する。仮想ＯＳとして、管理ＯＳ１１、暗号化用仮想ＯＳ（暗号化ＯＳ）１２、及び、複数のゲストＯＳ１３が稼働する。
【００２７】
ハイパーバイザ１０は、サーバ装置１のハードウェア（ＣＰＵ，メモリ，ディスク等の周辺機器（入出力装置）等）を仮想化して使用することにより、複数の仮想ＯＳ（１１，１２，１３）を稼働させる制御を行う。
【００２８】
ストレージ２は、サーバ装置１からアクセスされデータを格納する記憶手段であり、例えば大容量のストレージ等を備えるＤＢサーバ等であってもよい。サーバ装置１とストレージ２は一体的であっても構わない。
【００２９】
ストレージ２のデータとしては、各ユーザの仮想ＯＳ（ゲストＯＳ１３）の暗号化データ（ユーザデータ２１）、例えば、ユーザＡデータ２１Ａ，ユーザＢデータ２１Ｂ，ユーザＣデータ２１Ｃと、各暗号化の際の暗号鍵のデータ情報を含む暗号鍵データ２０とを有する。いずれも暗号化された状態などとして安全に保存される（［暗号化］は暗号化データ状態を示す）。
【００３０】
ユーザ端末３は、ユーザ（例えば企業の複数の社員によるグループ等）により使用され、ゲストＯＳ１３（仮想サーバ）にアクセスして利用するためのＷｅｂブラウザ等のソフトウェアや通信機能などを備えるコンピュータである。なお図１中ではユーザ端末３は１人・１台のように示しているが、同じユーザに属する複数人・複数台の場合を含む。サーバ装置１のゲストＯＳ１３と、それに対応付けられるユーザ端末３との間では、通信ネットワーク９を介してデータ（ゲストＯＳ１３に対して入出力するデータ等）が送信・受信される。
【００３１】
サーバ装置１の管理者は、サーバ装置１を操作し、または図４の管理者端末４等を操作してサーバ装置１にアクセスし、管理ＯＳ１１を利用する。管理ＯＳ１１は、既存のハイパーバイザ方式における要素であり、他の仮想ＯＳ（１２，１３）を管理する役割を持ち、管理用アプリケーションプログラム等が稼働する。管理ＯＳ１１と他の仮想ＯＳ（１２，１３）との間では、既存技術に従い、ハイパーバイザ１０上で通信可能である。管理者は、管理ＯＳ１１を通じて、複数のゲストＯＳ１３の設定（例えば登録（追加）、削除、割り当てやリソースの変更など）などを行うことができる。また特に、管理ＯＳ１１を通じて、ユーザ毎に対応付けるゲストＯＳ１３の設定（ユーザ−ゲストＯＳ１３の対応付けを、１対１、１対多、あるいは多対１で行うような設定）を行う機能を備えてもよい。
【００３２】
ゲストＯＳ１３は、既存のハイパーバイザ方式における要素であり、ユーザ（ユーザ端末３）から利用されるアプリケーションプログラム等が稼働する。ゲストＯＳ１３は、暗号化ＯＳ１２（そのスプリットドライバ６２）と通信するスプリットドライバ６３を有する。ゲストＯＳ１３は、通常のデータ入出力の際、従来技術ではデバイスドライバあるいは管理ＯＳを通じてハードウェアへアクセスするが、本形態では、そのデバイスドライバ等の代わりに自動的にスプリットドライバ６３にアクセスし、スプリットドライバ６３から暗号化ＯＳ１２のスプリットドライバ６２へアクセスして通信が行われる。即ち、ゲストＯＳ１３とハイパーバイザ１０との間で自動的に暗号化ＯＳ１２が介在する形である。これにより、各ゲストＯＳ１３は、通常のデータ入出力の動作に伴い、暗号化ＯＳ１２を意識せずに自動的にその暗号化機能が利用される。
【００３３】
暗号化ＯＳ１２は、他の仮想ＯＳ（１１，１３）に対して独立で稼働する。暗号化ＯＳ１２は、暗号化管理部５１、暗号化ドライバ５２、デバイスドライバ５３、スプリットドライバ６２等の処理部を有する。暗号化管理部５１は、主に、複数のゲストＯＳ１３の暗号化のための複数の暗号鍵の管理（図１では暗号鍵データ２０の管理）を行う。暗号化ドライバ５２は、主に、ゲストＯＳ１３の入出力データの暗号化、及び復号化の処理を行う。その際の暗号鍵は、暗号化管理部５１から取得する。デバイスドライバ５３はハイパーバイザ１０を介してハードウェアにアクセスする処理を行う。
【００３４】
本システムで、暗号化ＯＳ１２による暗号方式としては、例えば公開鍵暗号方式や共通鍵暗号方式などを適用することができる。
【００３５】
実施の形態１で、独立した暗号化ＯＳ１２は、ハイパーバイザ１０上で稼働させる１つの仮想ＯＳ（デバイスドライバ５３を持つ）（例えば２番目の仮想ＯＳ）を、暗号化ＯＳ１２として設定することにより実現される。なお、既存技術を用いることで、ハイパーバイザ上に、デバイスドライバを持つ仮想ＯＳを設定することが可能であり、これにより実施の形態１の暗号化ＯＳ１２（デバイスドライバ５３を持つ）を設定することができる。
【００３６】
＜２：ユーザ−仮想ＯＳ−暗号鍵のマッピング＞
図２において、本システムにおける、ユーザ（ユーザ端末３）、ゲストＯＳ１３、その暗号化データ（ユーザ−ゲストＯＳデータ２１）及び暗号鍵（Ｋで示す）などの対応付け（マッピング）の関係の一例を示している。なお上側の第三者機関５の部分は、後述の実施の形態３で説明する。
【００３７】
各ユーザのユーザ端末３（例：Ａ（３Ａ），Ｂ（３Ｂ），Ｃ（３Ｃ））毎のゲストＯＳ１３（仮想サーバ）（例：Ａ（１３Ａ），Ｂ（１３Ｂ），Ｃ（１３Ｃ））のデータは、暗号化ＯＳ１２により、それぞれ異なる暗号鍵（例：Ｋ１，Ｋ２，Ｋ３）により暗号化及び復号化され、その暗号化データ（例：Ａ（２１Ａ），Ｂ（２１Ｂ），Ｃ（２１Ｃ））がストレージ２に保存される。また、各暗号鍵（Ｋ１，Ｋ２，Ｋ３）に関する管理情報（例えば図３（ｂ））を含む暗号鍵データ２０は、暗号化管理部５１により、ストレージ２に保存、管理される。
【００３８】
図２の例は、ユーザ端末３とゲストＯＳ１３が１対１で対応付けられる場合である。これに限らず、サーバ装置１の機能に応じて、１対多（１つのユーザ（例えば企業）が複数のゲストＯＳ１３を利用する形）や、多対１（複数のユーザ（企業）が１つのゲストＯＳ１３を利用する形）で対応付けることができる。ユーザ（ユーザ端末３）とゲストＯＳ１３との対応付けは、例えば管理ＯＳ１１の機能を通じて管理者により設定できる。
【００３９】
また、基本的には図２のようにゲストＯＳ１３と暗号鍵を１対１で対応付ける構成である。これに限らず、上記ユーザ−ゲストＯＳ１３の対応付けの形に応じて、例えば１つのユーザ（企業等）の利用する複数のゲストＯＳ１３に対して１つの暗号鍵を設定する形などが可能である。各形において、複数の暗号鍵は異なるものが自動的に設定される。
【００４０】
＜３：管理情報＞
図３において、本システムでの管理情報（テーブル）のデータ構造例を示している。
【００４１】
図３（ａ）は、仮想ＯＳ管理情報７１を示す。仮想ＯＳ管理情報７１は、ハイパーバイザ１０上の複数の仮想ＯＳの稼働の設定を管理する、従来同様の管理情報である。ａの仮想ＯＳＩＤは、仮想ＯＳ（１１，１２，１３）の識別情報（番号等）である。ｂの種別は、当該仮想ＯＳの種別（モード等）として、管理ＯＳ１１、暗号化ＯＳ１２、ゲストＯＳ１３などを区別する情報である。ｃのユーザＩＤは、当該仮想ＯＳ（ゲストＯＳ１３）を利用するユーザ（ユーザ端末３のグループや種別等）の識別情報である。例えば管理者の操作により、管理ＯＳ１１を通じて、仮想ＯＳ管理情報７１に対し、ユーザ端末３とゲストＯＳ１３との対応付けが設定可能である。仮想ＯＳ管理情報７１は、ストレージ２及び管理ＯＳ１１等で保持される。図３の設定例では、１番目の仮想ＯＳが管理ＯＳ１１であり、２番目の仮想ＯＳが暗号化ＯＳ１２であり、３番目以降の仮想ＯＳがゲストＯＳ１３である（管理ＯＳ１１と暗号化ＯＳ１２は固定的な設定）。
【００４２】
図３（ｂ）は、暗号鍵管理情報７２（暗号化管理情報）を示す。暗号鍵管理情報７２は、暗号化ＯＳ１２（暗号化管理部５１）により、各ユーザのゲストＯＳ１３に対する暗号化（暗号鍵）の設定（少なくともユーザ端末３−ゲストＯＳ１３−暗号鍵の対応関係）を管理する情報であり、ストレージ２及び暗号化ＯＳ１２等で保持される。ａのユーザＩＤ及びｂの仮想ＯＳＩＤ（７１のｃ，ａと同じ情報）に対して、ｃの暗号鍵が割り当てられる。ｃの暗号鍵は、詳しくは例えば、暗号鍵ＩＤ（例：Ｋ１等）とその暗号鍵の値などによるデータ情報であり、適用する暗号方式に応じる。
【００４３】
ストレージ２に保存される暗号鍵データ２０の中には、少なくとも暗号鍵管理情報７２（その暗号化データ）が含まれる。暗号鍵データ２０では、その中の各暗号鍵（例えば図２のＫ１，Ｋ２，Ｋ３）は、所定の暗号化により、セキュアな状態（例えば図２のＫ１’，Ｋ２’，Ｋ３’）で管理される。
【００４４】
＜４：処理１（設定時）＞
図４を用いて、ユーザのゲストＯＳ１３の設定時の処理例について説明する。本処理例では、サーバ装置１の管理者により管理ＯＳ１１を通じてユーザ用の複数のゲストＯＳ１３（仮想サーバ）を設定する際、暗号化ＯＳ１２による暗号化機能により、当該ゲストＯＳ１３に対する暗号化（暗号鍵）の設定等の処理が自動的に行われる。
【００４５】
ａ（ゲストＯＳ設定）：  管理者が管理者端末４等から管理ＯＳ１１に対して、ユーザ端末３（例えばＡ（３Ａ））のゲストＯＳ１３（例えばＡ（１３Ａ））を設定する指示等の操作を行う（従来同様）。管理ＯＳ１１では、指示に基づき、ユーザ端末３（３Ａ）の利用するゲストＯＳ１３（１３Ａ）を設定する処理を行う。これにより、管理ＯＳ１１は、図３の仮想ＯＳ管理情報７１などを更新する。例えば、ａ：仮想ＯＳＩＤ「３」、ｂ：種別「ゲストＯＳ」、ｃ：ユーザＩＤ「Ａ」、としたレコードを登録する。
【００４６】
ｂ（暗号鍵設定）：  ａの処理に伴い、管理ＯＳ１１から、暗号化ＯＳ１２へ、設定対象のゲストＯＳ１３（１３Ａ）のデータに対する暗号化（暗号鍵）の設定の指示を自動的に行う（仮想ＯＳ間の通信機能を用いる）。この指示に従い、暗号化ＯＳ１２の暗号化管理部５１は、設定対象のゲストＯＳ１３（１３Ａ）のデータを暗号化するための所定の暗号方式の暗号鍵（例えばＫ１）を自動的に生成する。この際、図３の暗号鍵管理情報７２に設定済みの既存の暗号鍵（例えばＫ２，Ｋ３，……）とは異なる値となるように当該暗号鍵（Ｋ１）を生成、決定する。なお、この暗号鍵の値の生成処理では、既存技術（乱数計算など）を適用可能である。暗号化管理部５１は、上記決定された暗号鍵（Ｋ１）の情報により、暗号鍵管理情報７２を更新する。例えば、ａ：ユーザＩＤ「Ａ」、ｂ：仮想ＯＳＩＤ「３」、ｃ：暗号鍵「Ｋ１」、としたレコードを登録する。
【００４７】
ｃ（暗号鍵取得）：  ｂにより、暗号化ドライバ５２は、暗号化管理部５１から、上記生成した暗号鍵（Ｋ１）及び対象ゲストＯＳ１３（１３Ａ）の暗号化の指示を取得する。
【００４８】
ｄ（仮想ＯＳデータ暗号化）：  ｃの後、暗号化ドライバ５２は、所定の暗号方式により、当該暗号鍵（Ｋ１）を用いて、設定対象のゲストＯＳ１３（１３Ａ）のデータ（ストレージ２に登録される、暗号化されていないディスクボリューム（初期仮想ＯＳイメージ）等）を暗号化処理する。これによりユーザ−ゲストＯＳデータ２１（２１Ａ）を得る。
【００４９】
ｅ（暗号鍵データ保存）：  ｃの後、暗号化管理部５１は、上記生成した暗号鍵（Ｋ１）に関する暗号鍵管理情報７２を含むデータ（暗号鍵データ２０）を、デバイスドライバ５３（及びハイパーバイザ１０）の処理を通じて、ストレージ２に保存する。尚この際、暗号鍵データ２０についても、所定の暗号化が施されたセキュアな状態で保存される（図２）。
【００５０】
ｆ（ユーザ−ゲストＯＳデータ保存）：  ｄの後、暗号化ＯＳ１２は、上記暗号化ドライバ５２により暗号化されたゲストＯＳ１３（１３Ａ）のデータ（ユーザ−ゲストＯＳデータ２１Ａ）を、デバイスドライバ５３（及びハイパーバイザ１０）の処理を通じて、ストレージ２に保存する。
【００５１】
＜５：処理２（通常アクセス時）＞
図５を用いて、上記処理１による設定以降において、ユーザ端末３（例えばＡ（３Ａ））によるゲストＯＳ１３（例えばＡ（１３Ａ））への通常のアクセスによる利用時の処理例について説明する。基本的な処理としては、当該ユーザ端末３から当該ゲストＯＳ１３に対するデータの入出力（読み書き）に伴い、暗号化ＯＳ１２による暗号化機能により、上記設定済みの暗号鍵を用いて、当該データを暗号化／復号化処理する。
【００５２】
また、本処理例では、サーバ装置１（暗号化管理部５１）は、ゲストＯＳデータの入出力毎に毎回ストレージ２の暗号鍵（暗号鍵データ２０）をアクセスするのではなく、初回起動時にストレージ２から暗号鍵データ２０（暗号鍵管理情報７２）を読み出してメモリ上にテーブルとして展開、保持しておき、ゲストＯＳデータ入出力毎に、そのテーブルの暗号鍵（値）を用いて、暗号化ドライバ５２により暗号化／復号化処理を行う。ストレージ２へのアクセスの削減により、処理が高速化できる。詳しい処理例は以下である。
【００５３】
ａ（起動時）：  サーバ装置１の起動時、ハイパーバイザ１０を通じて、複数の仮想ＯＳ（管理ＯＳ１１、暗号化ＯＳ１２、ゲストＯＳ１３（１３Ａ等））を立ち上げる。暗号化ＯＳ１２の暗号化管理部５１は、デバイスドライバ５３（及びハイパーバイザ１０）の処理を通じて、ストレージ２から暗号鍵データ２０を読み出す。またその暗号鍵データ２０が暗号化状態の場合は所定の復号化を施す。そして、暗号化管理部５１は、読み出した暗号鍵データ２０に含まれている暗号鍵管理情報７２（暗号鍵（値）を含むテーブル）を、メモリ上に展開して保持する。
【００５４】
ｂ（ユーザアクセス）：  ゲストＯＳ１３（１３Ａ）は、ユーザ端末３（３Ａ）からのアクセスに応じて仮想サーバとしての処理（既存技術）を行う。
【００５５】
ｃ（スプリットドライバ）：  ｂの際、当該ゲストＯＳ１３で入出力データが発生した場合、当該ゲストＯＳ１３は、自動的にスプリットドライバ６３へアクセスする。すると、スプリットドライバ６３と暗号化ＯＳ１２のスプリットドライバ６２との間で通信（情報データの授受）が行われる。これにより、暗号化ドライバ５２は、当該入出力データの暗号化／復号化の必要を認識する。
【００５６】
ｄ（暗号鍵取得）：  ｃにより、暗号化ＯＳ１２の暗号化ドライバ５２は、当該ゲストＯＳ１３（１３Ａ）における入出力データを暗号化／復号化する処理のために必要な暗号鍵の情報を、暗号化管理部５１から取得する。暗号化管理部５１は、メモリ上のテーブルを参照して、対象ゲストＯＳ１３（１３Ａ）に対応付けられる暗号鍵（例えばＫ１）を取り出して暗号化ドライバ５２へ渡す。
【００５７】
ｅ（暗号化／復号化）：  ｄにより、暗号化ドライバ５２は、上記暗号鍵（Ｋ１）を用いて、当該ゲストＯＳ１３（１３Ａ）における入出力データを暗号化／復号化する処理を行う。即ち、当該ユーザ端末３（３Ａ）から当該ゲストＯＳ１３（１３Ａ）に対するデータの入力（書き込み）などの場合、暗号化ドライバ５２は、当該入力データ（ゲストＯＳ１３（１３Ａ）から受け取る）を暗号鍵（Ｋ１）を用いて暗号化処理し、その結果の暗号化データを、デバイスドライバ５３の処理を通じて、ストレージ２のユーザデータ２１（２１Ａ）へ保存する。また、当該ゲストＯＳ１３（１３Ａ）から当該ユーザ端末３（３Ａ）へのデータの出力（読み出し）などの場合、暗号化ドライバ５２は、ストレージ２のユーザデータ２１（２１Ａ）からデバイスドライバ５３の処理を通じて当該出力データ（暗号化データ）を読み出して、暗号鍵（Ｋ１）を用いて復号化処理し、その結果を出力する（ゲストＯＳ１３（１３Ａ）へ渡す）。
【００５８】
＜実施の形態１の効果等＞
クラウドコンピューティング環境における仮想サーバのアーキテクチャ（インフラ）において、自動的な暗号化機能を実装したシステムが実現され、ユーザデータの漏洩などを防止して安全に管理することができ、また、ユーザ（管理者）によるデータ暗号化に関する手間やコストを削減できる。
【００５９】
実施の形態１では、既存の仮想サーバ等の仕組みに対して独立した暗号化ＯＳ１２により暗号化機能を実現できる。複数のユーザ端末３における複数のゲストＯＳ１３毎に異なる暗号鍵を自動的に設定して管理することにより、ユーザ端末３間でゲストＯＳ１３のデータが誤って参照されること等が防止される。
【００６０】
（実施の形態２）
図６を用いて、本発明の実施の形態２の情報処理システム（仮想サーバ暗号化システム）について説明する。実施の形態２では、図６のように、実施の形態１（図１）の管理ＯＳ１１に、暗号化用仮想ＯＳ１２相当の暗号化機能を統合して実装した形態である。処理等は実施の形態１と基本的に同様である。
【００６１】
図６において、ハイパーバイザ１０上、暗号化機能を備える管理ＯＳ１４は、１番目の仮想ＯＳであり、他の複数のゲストＯＳ１３（１３Ａ，１３Ｂ等）は、２番目、３番目等の仮想ＯＳである。
【００６２】
実施の形態２では、実施の形態１のように独立した暗号化ＯＳ１２を設定することができない環境であっても、実施の形態１と同様に暗号化機能及びその効果を実現できる。
【００６３】
（実施の形態３）
図７及び前記図２等を用いて、本発明の実施の形態３の情報処理システム（仮想サーバ暗号化システム）について説明する。実施の形態３では、図７のように、サーバ装置１を含む情報処理システムに対して、更に、外部の情報処理システムである第三者機関（監査システム）５を有する。前述の暗号鍵管理情報７２（暗号鍵データ２０）を含む暗号化用仮想ＯＳ１２（または実施の形態２の暗号化機能を含む管理ＯＳ１４）自体のデータを、第三者機関（監査システム）５により暗号化（その暗号鍵：Ｋ０）する。そして、その暗号化ＯＳデータ２２（暗号化データ）及びその暗号鍵（Ｋ０）の情報は、第三者機関（監査システム）５により、ストレージ２等にセキュアな状態で保存、管理する。暗号化処理部５０１は、上記暗号化とその制御を行うコンピュータ・端末などである。
【００６４】
第三者機関（監査システム）５の暗号化処理部５０１は、暗号鍵（Ｋ０）を用いて、暗号化ＯＳ１２のデータを暗号化処理し（図７のａ）、その暗号化データ（暗号化ＯＳデータ２２）を、例えばストレージ２内（あるいは第三者機関５内など）に保存（初期登録）する（図７のｂ）。なお暗号化ＯＳ１２用の暗号鍵（Ｋ０）は、前述の複数のゲストＯＳ１３用の暗号鍵（Ｋ１，Ｋ２，……）とは異なる値である。前記図２の暗号化ＯＳデータ２２は、実施の形態１の暗号鍵データ２０相当を内包する。
【００６５】
また、第三者機関（監査システム）５の暗号化処理部５０１は、必要に応じて、上記暗号鍵（Ｋ０）を用いて、暗号化ＯＳデータ２２（暗号化データ）を読み出して復号化処理する。そして、第三者機関（監査システム）５は、その暗号化ＯＳ１２のデータを参照して監査処理（サーバ装置１での処理が適正かどうかの確認など）を行うことができる。
【００６６】
暗号化処理部５０１は、暗号化ＯＳデータ２２（暗号化データ）を、サーバ装置１を介して（または介さず直接に）、ストレージ２に登録（格納）する（図７のｂ）。
【００６７】
実施の形態３では、サーバ装置１の管理者等による暗号化ＯＳ１２の操作によるユーザデータ（２１）の参照（情報漏洩など）も防止できるので、実施の形態１等よりも更に情報セキュリティを高めることができる。また、第三者機関（監査システム）５によるサーバ装置１（それを含む情報処理システム）を対象とした監査も実現できる。
【００６８】
（他の実施の形態）
その他の実施の形態として以下が可能である。実施の形態１では、暗号化ＯＳ１２は、デバイスドライバ５３を備え、デバイスドライバ５３からハイパーバイザ１０を介してハードウェアにアクセスできる。それに対し、デバイスドライバを持つ仮想ＯＳを設定することができない方式の場合、例えば、デバイスドライバ５３を持たない暗号化ＯＳ１２相当を設定し、必要に応じてその暗号化ＯＳ１２から、デバイスドライバを持つ管理ＯＳ１１（そのデバイスドライバ）を経由してハードウェアにアクセスする形態も可能である。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【００７０】
本発明は、クラウドコンピューティングシステム、仮想サーバシステムなどに利用可能である。
【符号の説明】
【００７１】
１…サーバ装置、２…ストレージ、３…ユーザ端末、４…管理者端末、５…第三者機関（監査システム）、９…通信ネットワーク、１０…ハイパーバイザ（仮想マシン制御プログラム）、１１…管理ＯＳ、１２…暗号化用仮想ＯＳ（暗号化ＯＳ）、１３…ゲストＯＳ、１４…管理ＯＳ、２０…暗号鍵データ、２１…ユーザデータ（ユーザ−ゲストＯＳデータ）、２２…暗号化ＯＳデータ、５１…暗号化管理部、５２…暗号化ドライバ、５３…デバイスドライバ、６２，６３…スプリットドライバ、７１…仮想ＯＳ管理情報、７２…暗号鍵管理情報、５０１…暗号化処理部、Ｋ０，Ｋ１，Ｋ２，Ｋ３…暗号鍵。
【図１】
2011048661.tif 000003
【図２】
2011048661.tif 000004
【図３】
2011048661.tif 000005
【図４】
2011048661.tif 000006
【図５】
2011048661.tif 000007
【図６】
2011048661.tif 000008
【図７】
2011048661.tif 000009