図面 (/)

技術 仮想計算機システム、仮想計算機システムの制御方法、仮想計算機システムの制御プログラム、及び集積回路

出願人 パナソニックインテレクチュアルプロパティコーポレーションオブアメリカ
発明者 神山輝壮天野克重齊藤雅彦谷川忠雄
出願日 2012年3月30日 (9年5ヶ月経過) 出願番号 2013-514964
公開日 2014年7月31日 (7年1ヶ月経過) 公開番号 WO2012-157166
状態 特許登録済
技術分野 マルチプログラミング
主要キーワード 使用依頼 保護メモリ領域 ハーディス キー管理情報 計算処理装置 著作権物 共有メモリアドレス 保護アプリケーション
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年7月31日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題・解決手段

キー判定部111は、プロセス判定部109により、対象プロセス保護プロセス101であると判定された場合、キー生成部108により生成されたキーである対象キーが、第1又は第2種のキーであるかをキー変換ルールに基づいて判定する。VM通信管理部112は、キー判定部111により、対象キーが第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域121のメモリIDを対象プロセスに通知する。キー変換部110は、プロセス判定部109により、対象プロセスが非保護プロセスであると判定された場合、キー変換ルールに基づき、対象キーを第1種のキーから第2種のキーに変換する。HV通信管理部105は、第2種のキーに対応する非保護メモリ領域122のメモリIDを対象プロセスに通知する。

概要

背景

情報処理装置の中には、個人情報金銭を伴うサービスの情報、著作権物などを扱うアプリケーションを持つものがある。このようなアプリケーションは悪意のある別のアプリケーションからのアクセスや、コンピュータウィルスといった攻撃から保護しなければならない。

アプリケーションを保護する一つの手段として、仮想計算機の技術を適用できる。仮想計算機を用いた環境では、一つの物理的な計算機で複数の仮想計算機が動作する。そこで、特定の隔離したいアプリケーションを一般的な処理をさせる仮想計算機とは別の仮想計算機に処理させる。これにより、隔離したい悪意のあるアプリケーションが他のアプリケーションに影響を与えることを仮想計算機レベルで防止することができる。

本発明に関連する従来技術としては、例えば、下記に示す特許文献1、2が知られている。特許文献1には、仮想計算機を制御するハイパーバイザ共有メモリキー管理情報を持たせ、仮想計算機間通信を実現させる技術が開示されている。

特許文献2には、仮想計算機間の通信のセキュリティ面の問題を解決するために、ハイパーバイザ内に仮想計算機間の通信を許可するか否かを設定する通信許可テーブルを設け、受信側のアプリケーションがその通信許可テーブルに送信を許可する送信側のアプリケーションを設定し、送信側のアプリケーションがその通信許可テーブルを参照し、仮想計算機間の通信を制御する技術が開示されている。

しかしながら、特許文献1の技術では、キーさえ分かれば、仮想計算機内のプロセス間通信用の共有メモリを、仮想計算機間のプロセス間通信の共有メモリとして他の仮想計算機がアクセスできる。そのため、セキュリティ面の課題がある。

また、特許文献2の技術では、通信許可テーブルを設定する受信側のアプリケーションがウイルスに感染している場合、送信を許可する送信側のアプリケーションをウイルスに感染させてしまうという課題がある。

概要

キー判定部111は、プロセス判定部109により、対象プロセス保護プロセス101であると判定された場合、キー生成部108により生成されたキーである対象キーが、第1又は第2種のキーであるかをキー変換ルールに基づいて判定する。VM通信管理部112は、キー判定部111により、対象キーが第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域121のメモリIDを対象プロセスに通知する。キー変換部110は、プロセス判定部109により、対象プロセスが非保護プロセスであると判定された場合、キー変換ルールに基づき、対象キーを第1種のキーから第2種のキーに変換する。HV通信管理部105は、第2種のキーに対応する非保護メモリ領域122のメモリIDを対象プロセスに通知する。

目的

本発明の目的は、非保護プロセスを保護プロセスと別の仮想計算機で実行させる場合において、仮想計算機同士の通信を安全に行わせることができる技術を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムであって、前記第1、第2仮想計算機は、前記非保護プロセスと通信する保護プロセスから通信依頼発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを生成するキー生成部と、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを判定するプロセス判定部と、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを判定するキー判定部と、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域メモリIDを前記対象プロセスに通知するVM通信管理部とを備え、前記ハイパーバイザは、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するHV通信管理部を備え、前記第1、第2仮想計算機は、前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに変換するキー変換部を更に備え、前記HV通信管理部は、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記対象プロセスに通知する仮想計算機システム。

請求項2

前記キー生成部は、各プロセスについて予めキーが割り付けられたキー生成ファイルを参照してキーを生成する請求項1記載の仮想計算機システム。

請求項3

前記キー生成ファイルは、通信相手のプロセスと値が同じになるように各プロセスに第1種のキーが割り付けられた第1キー生成ファイルと、前記第1キー生成ファイルを複製し、前記非保護プロセスと通信する保護プロセスに割り付けられた第1種のキーを前記キー変換ルールで第2種のキーに変換することで生成された第2キー生成ファイルとを備え、前記キー生成部は、前記保護プロセスから前記通信依頼が発行された場合、前記第2キー生成ファイルを参照してキーを生成し、前記非保護プロセスから前記通信依頼が発行された場合、前記第1キー生成ファイルを参照してキーを生成する請求項2記載の仮想計算機システム。

請求項4

前記キー変換ルールは、前記第1種のキーに規定値加算して前記第2種のキーに変換するというルールであり、前記キー判定部は、前記対象キーが前記規定値未満の場合、前記第1種のキーと判定し、前記対象キーが前記規定値以上の場合、前記第2種のキーと判定する請求項1〜3のいずれかに記載の仮想計算機システム。

請求項5

前記キー判定部は、前記対象キーを前記第1種のキーと判定した場合、前記保護メモリ領域の使用依頼を前記VM通信管理部に通知し、前記対象キーを前記第2種のキーと判定した場合、前記非保護メモリ領域の使用依頼を前記HV通信管理部に通知する請求項1〜4のいずれかに記載の仮想計算機システム。

請求項6

前記ハイパーバイザは、各仮想計算機が前記第1仮想計算機又は前記第2仮想計算機であるかを示すVM管理情報を管理するVM管理部を更に備え、前記プロセス判定部は、前記VM管理情報に基づき、前記対象プロセスを実行する仮想計算機が前記第1仮想計算機又は前記第2仮想計算機に該当するかを判定し、前記第1仮想計算機に該当すると判定した場合、前記対象プロセスを前記保護プロセスと判定し、前記第2仮想計算機に該当すると判定した場合、前記対象プロセスを前記非保護プロセスと判定する請求項1〜5のいずれかに記載の仮想計算機システム。

請求項7

前記第1仮想計算機は、親仮想計算機であり、前記第2仮想計算機は、前記親仮想計算機を複製して生成された子仮想計算機である請求項1〜6のいずれかに記載の仮想計算機システム。

請求項8

前記第2仮想計算機は、親仮想計算機であり、前記第1仮想計算機は、前記親仮想計算機を複製して生成された子仮想計算機である請求項1〜6のいずれかに記載の仮想計算機システム。

請求項9

前記保護メモリ領域は、前記第1仮想計算機のみがアクセス可能共有メモリに生成され、前記非保護メモリ領域は、前記第1及び第2仮想計算機がアクセス可能な共有メモリに生成されている請求項1〜8のいずれかに記載の仮想計算機システム。

請求項10

保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムの制御方法であって、前記非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを前記第1仮想計算機のキー生成部が生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを前記第2仮想計算機のキー生成部が生成するステップと、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを前記第1又は第2仮想計算機のプロセス判定部が判定するステップと、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを前記第1仮想計算機のキー判定部が判定するステップと、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域の識別情報を前記第1仮想計算機のVM通信管理部が前記対象プロセスに通知するステップと、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、前記ハイパーバイザのHV通信管理部が当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するステップと、前記第2仮想計算機の前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに前記第2仮想計算機のキー変換部が変換するステップと、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記HV通信管理部が前記対象プロセスに通知するステップとを備える仮想計算機システムの制御方法。

請求項11

保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムの制御プログラムであって、前記第1、第2仮想計算機を、前記非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを生成するキー生成部と、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを判定するプロセス判定部と、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを判定するキー判定部と、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域のメモリIDを前記対象プロセスに通知するVM通信管理部として機能させ、前記ハイパーバイザを、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するHV通信管理部として機能させ、前記第1、第2仮想計算機を、前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに変換するキー変換部として更に機能させ、前記HV通信管理部は、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記対象プロセスに通知する仮想計算機システムの制御プログラム。

請求項12

保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムの集積回路であって、前記第1、第2仮想計算機は、前記非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを生成するキー生成部と、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを判定するプロセス判定部と、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを判定するキー判定部と、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域のメモリIDを前記対象プロセスに通知するVM通信管理部とを備え、前記ハイパーバイザは、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するHV通信管理部を備え、前記第1、第2仮想計算機は、前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに変換するキー変換部を更に備え、前記HV通信管理部は、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記対象プロセスに通知する集積回路。

技術分野

0001

本発明は、複数の仮想計算機と仮想計算機を制御するハイパーバイザとを備える仮想計算機システムに関するものである。

背景技術

0002

情報処理装置の中には、個人情報金銭を伴うサービスの情報、著作権物などを扱うアプリケーションを持つものがある。このようなアプリケーションは悪意のある別のアプリケーションからのアクセスや、コンピュータウィルスといった攻撃から保護しなければならない。

0003

アプリケーションを保護する一つの手段として、仮想計算機の技術を適用できる。仮想計算機を用いた環境では、一つの物理的な計算機で複数の仮想計算機が動作する。そこで、特定の隔離したいアプリケーションを一般的な処理をさせる仮想計算機とは別の仮想計算機に処理させる。これにより、隔離したい悪意のあるアプリケーションが他のアプリケーションに影響を与えることを仮想計算機レベルで防止することができる。

0004

本発明に関連する従来技術としては、例えば、下記に示す特許文献1、2が知られている。特許文献1には、仮想計算機を制御するハイパーバイザに共有メモリキー管理情報を持たせ、仮想計算機間通信を実現させる技術が開示されている。

0005

特許文献2には、仮想計算機間の通信のセキュリティ面の問題を解決するために、ハイパーバイザ内に仮想計算機間の通信を許可するか否かを設定する通信許可テーブルを設け、受信側のアプリケーションがその通信許可テーブルに送信を許可する送信側のアプリケーションを設定し、送信側のアプリケーションがその通信許可テーブルを参照し、仮想計算機間の通信を制御する技術が開示されている。

0006

しかしながら、特許文献1の技術では、キーさえ分かれば、仮想計算機内のプロセス間通信用の共有メモリを、仮想計算機間のプロセス間通信の共有メモリとして他の仮想計算機がアクセスできる。そのため、セキュリティ面の課題がある。

0007

また、特許文献2の技術では、通信許可テーブルを設定する受信側のアプリケーションがウイルスに感染している場合、送信を許可する送信側のアプリケーションをウイルスに感染させてしまうという課題がある。

先行技術

0008

特開平11−85546号公報
特開2010−211339号公報

0009

本発明の目的は、非保護プロセス保護プロセスと別の仮想計算機で実行させる場合において、仮想計算機同士の通信を安全に行わせることができる技術を提供することである。

0010

本発明の一態様による仮想計算機システムは、保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムであって、前記第1、第2仮想計算機は、前記非保護プロセスと通信する保護プロセスから通信依頼発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを生成するキー生成部と、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを判定するプロセス判定部と、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを判定するキー判定部と、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域メモリIDを前記対象プロセスに通知するVM通信管理部とを備え、前記ハイパーバイザは、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するHV通信管理部を備え、前記第1、第2仮想計算機は、前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに変換するキー変換部を更に備え、前記HV通信管理部は、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記対象プロセスに通知する。

図面の簡単な説明

0011

実施の形態による仮想計算機システムの機能ブロック図である。
本発明の実施の形態による仮想計算機システムの動作を示すフローチャートである。
(A)は本発明の実施の形態による第1キー生成ファイルの一例を示した図である。(B)は本発明の実施の形態による第2キー生成ファイルの一例を示した図である。
本発明の実施の形態において、VM通信管理部に保護メモリ領域の使用依頼が通知された際の処理を示すフローチャートである。
(A)はVM内キー管理テーブルの一例を示した図である。(B)はHV内キー管理テーブルの一例を示した図である。
本発明の実施の形態による仮想計算機システムにおいて、キーが生成されてからメモリIDが通知されるまでの処理の流れを示した図である。
VM管理情報の一例を示した図である。
本発明の実施の形態による仮想計算機システムのハードウェア構成を示すブロック図である。
本発明の実施の形態において、HV通信管理部に非保護メモリ領域の使用依頼が通知された際の処理を示すフローチャートである。

実施例

0012

(本発明の実施の形態を得るに至った経緯)
背景技術でも述べたように、個人情報や金銭を伴うサービスの情報、著作権物などを扱うアプリケーションは、悪意のある別のアプリケーションからのアクセスや、コンピュータウィルスといった攻撃から保護しなければならない。そして、それを解決するために、特定の隔離したいアプリケーションを一般的な処理をさせる仮想計算機とは別の仮想計算機に処理させることも背景技術で述べた。

0013

ところで、仮想計算機を新たに生成する技術として、動作している仮想計算機を複製させて動的に生成させることが提案されている。このように、仮想計算機を複製して動的に生成することは“仮想計算機のフォーク”と呼ばれている。また、複製元の仮想計算機は“親仮想計算機”と呼ばれ、複製された仮想計算機は“子仮想計算機”と呼ばれている。

0014

隔離したいアプリケーションを起動する際に仮想計算機のフォークを実行して子仮想計算機を生成し、子仮想計算機上でそのアプリケーションを起動して処理させる。これにより、保護対象のアプリケーションは、隔離されたアプリケーションによる悪意のある攻撃から保護される。

0015

反対に親仮想計算機に危険なアプリケーションを起動させ、子仮想計算機に保護したいアプリケーションを起動させても、保護対象のアプリケーションを危険なアプリケーションから保護することができる。そして、子仮想計算機上でアプリケーションの処理が終わると、子仮想計算機は消滅され、隔離されたアプリケーションは消滅する。

0016

仮想計算機のフォークによって、子仮想計算機上に隔離されたアプリケーションのプロセスと複製元の親仮想計算機上で動作しているアプリケーションのプロセスとが通信する場合、仮想計算機間を跨いだプロセス間通信が行われる。

0017

一般的なプロセス間通信としては、共有メモリを用いるものが知られている。この通信では、あるプロセスが共有メモリを生成し、別のプロセスがこの共有メモリを使用することによって、つまり、プロセス同士が共有メモリを共有することによってデータが送受される。共有メモリを生成する際にはキーが必要であり、キーによって共有メモリが識別される。通信するプロセス同士は、同じキーを提示することによって同じ共有メモリを共有し、通信することができる。

0018

従来の共有メモリを用いた仮想計算機間の通信として、仮想計算機を制御するハイパーバイザに共有メモリのキー管理情報を持たせ、仮想計算機間の通信を実現させる技術が知られている(特許文献1)。特許文献1は、従来、オペレーティングシステムによって行われていた共有メモリのキー管理を、ハイパーバイザに管理させることで、仮想計算機間の通信を実現している。

0019

また、仮想計算機間の通信のセキュリティ面の問題を解決する方法として、ハイパーバイザ内に仮想計算機間の通信を許可するか否かを設定する通信許可テーブルを設け、受信側のアプリケーションがその通信許可テーブルに送信を許可する送信側のアプリケーションを設定し、送信側のアプリケーションがその通信許可テーブルを参照し、仮想計算機間の通信を制御する技術が知られている(特許文献2)。

0020

しかしながら、特許文献1の技術では、仮想計算機間におけるプロセス間通信で使用される共有メモリと、仮想計算機内におけるプロセス間通信で使用される共有メモリとが区別されていない。そのため、キーさえ一致すれば、仮想計算機内のプロセス間通信用の共有メモリを、仮想計算機間のプロセス間通信の共有メモリとして他の仮想計算機がアクセスできる。従って、特許文献1の方法では、仮想計算機のフォークによって危険なアプリケーションを隔離したとしても、保護したい仮想計算機内のプロセス間通信に使用される共有メモリのキーさえ分かれば、隔離したアプリケーションは当該共有メモリにアクセスできるというセキュリティ面の課題がある。

0021

また、特許文献2の方法では、通信許可テーブルを設定する受信側のアプリケーションがウイルスに感染している場合、送信を許可する送信側のアプリケーションをウイルスに感染させてしまうという課題がある。

0022

更に、従来の仮想計算機のフォークでは、仮想計算機内のプロセス同士で通信させることのみが想定され、仮想計算機間で通信を行うことは想定されていなかった。したがって、特許文献2の方法において仮想計算機のフォークを適用し、ダウンロードアプリケーションを別の仮想計算機から隔離した場合、ダウンロードアプリケーションは別の仮想計算機で実行されるアプリケーションと通信できないという課題がある。

0023

本実施の形態による仮想計算機システムの目的は、ある仮想計算機を複製して別の仮想計算機を生成する仮想計算機システムにおいて、仮想計算機同士の通信を安全に行わせることができる技術を提供することである。

0024

以下本発明の実施の形態について、図面を参照しながら説明する。

0025

(実施の形態)
図1は、実施の形態による仮想計算機システム0の機能ブロック図である。仮想計算機システム0は、親仮想計算機1、子仮想計算機2、及びハイパーバイザ3を備える。子仮想計算機2は、親仮想計算機1を複製することで生成される。したがって、子仮想計算機2は、図1の各ブロックで示す親仮想計算機1の機能を全て備えている。以下の説明では、親仮想計算機1は保護プロセスを実行し、子仮想計算機2は非保護プロセスを実行するものとする。保護プロセスは、保護アプリケーションを実行することで発生するプロセスである。非保護プロセスは、非保護アプリケーションを実行することで発生するプロセスである。

0026

親仮想計算機1は、保護プロセス101、オペレーティングシステム11、第2キー生成ファイル103、及び第1キー生成ファイル104を備える。なお、図1では保護プロセス101は1つのみ記載したが、処理に応じて複数のプロセスが動作することもある。

0027

保護プロセス101は、個人情報、金銭情報著作物データ著作権管理情報等を取り扱う保護すべきプロセスであり、親仮想計算機1内で実行される。

0028

オペレーティングシステム11は、保護メモリ領域121を共有メモリに生成して管理する。ここで、共有メモリは、プロセス同士が通信する際に使用するメモリである。そして、オペレーティングシステム11は、キー生成部108、及びプロセス通信部21を備えている。プロセス通信部21は、プロセス判定部109、キー変換部110、キー判定部111、VM通信管理部112、VM内キー管理テーブル113、及び保護メモリ領域121を備える。

0029

キー生成部108は、非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、第1種のキーを所定のキー変換ルールで変換した第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、第1種のキーを生成する。ここで、キー生成部108は、各プロセスのキーが割り付けられたキー生成ファイルを参照してキーを生成する。

0030

キー生成ファイルには、第1キー生成ファイル104(図3(A)参照)及び第2キー生成ファイル103(図3(B)参照)が存在する。第1キー生成ファイル104は、通信相手のプロセスと値が同じになるように各プロセスに第1種のキーが割り付けられたファイルである。

0031

第2キー生成ファイル103は、第1キー生成ファイル104を複製し、非保護プロセスと通信する保護プロセスに割り付けられた第1種のキーをキー変換ルールで第2種のキーに変換することで生成されたファイルである。第1、第2キー生成ファイル104、103の詳細については後述する。

0032

親仮想計算機1のキー生成部108は、第2キー生成ファイル103を参照してキーを生成する。一方、子仮想計算機2のキー生成部108は、第1キー生成ファイル104を参照してキーを生成する。

0033

プロセス判定部109は、通信依頼を発行したプロセスである対象プロセスが、保護プロセス101又は非保護プロセス102であるかを判定する。ここで、プロセス判定部109は、VM管理部107により管理されるVM管理情報に基づき、対象プロセスを実行する仮想計算機が親仮想計算機1又は子仮想計算機2であるかを判定し、対象プロセスが親仮想計算機1で実行される場合、対象プロセスを保護プロセス101と判定し、対象プロセスが子仮想計算機2で実行される場合、対象プロセスを非保護プロセス102と判定する。

0034

キー変換部110は、プロセス判定部109により、対象プロセスが非保護プロセスであると判定された場合、キー変換ルールに基づき、対象キーを第1種のキーから第2種のキーに変換する。本実施の形態においては、親仮想計算機1でキー変換部110は呼ばれることはない。

0035

キー判定部111は、プロセス判定部109により、対象プロセスが保護プロセス101であると判定された場合、キー生成部108により生成されたキーである対象キーが、第1又は第2種のキーであるかをキー変換ルールに基づいて判定する。ここで、キー変換ルールとしては、第1種のキーに規定値加算して第2種のキーに変換するというルールが採用される。したがって、キー判定部111は、対象キーが規定値未満の場合、第1種のキーと判定し、対象キーが規定値以上の場合、第2種のキーと判定する。

0036

なお、キー変換ルールとして、第1種のキーに規定値を加算して第2種のキーに変換するというルールを採用したが、これに限定されず、第1種のキーと第2種のキーとを明確に区別することができるようなルールであれば、どのようなルールを採用してもよい。例えば、第1種のキーに対して数値を付与し、第2種のキーに対して各数値に対応する符号(例えばアルファベット文字列)を割り付けるというルールを採用してもよい。具体的には、第1種のキーとして1、2、3というような数値を採用し、各数値がa、b、cというようなアルファベットに変換されるルールを採用してもよい。

0037

VM通信管理部112は、親仮想計算機1内のプロセス間通信に使用される保護メモリ領域121を共有メモリに生成して管理する。具体的には、VM通信管理部112は、各保護メモリ領域121のメモリIDとキーと共有メモリアドレスとが対応付けられたVM内キー管理テーブル113(図5(A)参照)を生成して、保護メモリ領域121を管理する。

0038

また、VM通信管理部112は、キー判定部111により、対象キーが第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域121のメモリIDをVM内キー管理テーブル113から特定し、特定したメモリIDを対象プロセスに通知し、対象プロセスに他の保護プロセス101と通信させる。

0039

すなわち、VM通信管理部112は、対象プロセスが保護プロセス101であり、その保護プロセス101が他の保護プロセス101と通信するプロセスである場合、両保護プロセス101を親仮想計算機1内で通信させる。これにより、保護プロセス101は親仮想計算機1内で通信することができ、保護プロセス101の情報が子仮想計算機2やハイパーバイザ3に漏洩することが防止される。

0040

VM内キー管理テーブル113は、VM通信管理部112により生成され、各保護メモリ領域121のキーと共有メモリアドレスとメモリIDとを対応付けたテーブルである。

0041

ここで、VM通信管理部112は、対象キーがVM内キー管理テーブル113に存在すれば、当該対象キーに対応するメモリIDを対象プロセスに通知する。一方、VM通信管理部112は、対象キーがVM内キー管理テーブル113に存在しなければ、共有メモリに新しく保護メモリ領域121を生成し、生成した保護メモリ領域121にメモリIDを付与し、対象キーとメモリIDと共有メモリアドレスとをVM内キー管理テーブル113に登録し、メモリIDを対象プロセスに通知する。

0042

保護メモリ領域121は、例えば親仮想計算機1内に生成され、親仮想計算機1のみがアクセスすることができる共有メモリである。そして、保護メモリ領域121は、保護プロセス101同士が通信する場合に使用される。なお、保護メモリ領域121は、親仮想計算機1のみがアクセスできるという制限を設ければ、親仮想計算機1の外部に設けてもよい。

0043

子仮想計算機2は、親仮想計算機1を複製することで生成される。このような子仮想計算機2の生成は、例えば、非保護プロセス102により非保護アプリケーションの起動命令が発行されたことを契機に行われる。そのため、図1に示すように、子仮想計算機2は、非保護プロセス102を備えている以外は、親仮想計算機1と同じ構成を備えている。但し、キー判定部111、VM通信管理部112、及びVM内キー管理テーブル113は子仮想計算機2において呼ばれることはない。

0044

非保護アプリケーションとしては、例えば、インターネット上からダウンロードされたダウンロードアプリケーションが挙げられる。ダウンロードアプリケーションにはコンピュータウィルスやマルウェアなどが含まれる可能性がある。そこで、ダウンロードアプリケーションを子仮想計算機2に実行させる。これにより、ダウンロードアプリケーションは保護プロセス101から隔離され、保護プロセス101を保護することができる。

0045

子仮想計算機2のオペレーティングシステム12は親仮想計算機1のオペレーティングシステム11を複製して生成される。

0046

ハイパーバイザ3は、親仮想計算機1を複製して子仮想計算機2を生成し、親仮想計算機1と子仮想計算機2とを制御する。そして、ハイパーバイザ3は、HV通信管理部105、HV内キー管理テーブル106、VM管理部107、及び非保護メモリ領域122を備えている。

0047

HV通信管理部105は、子仮想計算機2内のプロセス間通信に使用され、且つ親仮想計算機1及び子仮想計算機2間のプロセス間通信に使用される非保護メモリ領域122を共有メモリに生成して管理する。具体的には、HV通信管理部105は、各非保護メモリ領域122のメモリIDとキーと共有メモリアドレスとが対応付けられたHV内キー管理テーブル106(図5(B)参照)を生成することで、非保護メモリ領域122を管理する。

0048

HV通信管理部105は、第2種のキーに対応する非保護メモリ領域122のメモリIDを対象プロセスに通知し、対象プロセスに非保護プロセスと通信させる。

0049

すなわち、HV通信管理部105は、対象プロセスが保護プロセス101であり、その保護プロセス101が非保護プロセス102と通信するプロセスである場合、両プロセスに非保護メモリ領域122を用いて通信させる。

0050

これにより、保護プロセス101は、非保護メモリ領域122を用いて非保護プロセス102と通信することができ、仮想計算機間のプロセス通信を実現することができる。保護プロセス101及び非保護プロセス102間の通信では、非保護メモリ領域122が使用されているため、保護メモリ領域121は非保護プロセス102によってアクセスされず、他の保護プロセス101の情報が子仮想計算機2に漏洩することを防止することができる。

0051

また、HV通信管理部105は、対象プロセスが非保護プロセス102であり、その非保護プロセス102が子仮想計算機2内の別の非保護プロセス102又は別の子仮想計算機2の非保護プロセス102と通信するプロセスである場合、非保護メモリ領域122を用いて両非保護プロセス102を通信させる。非保護プロセス102同士の通信では、非保護メモリ領域122が用いられているため、保護メモリ領域121は非保護プロセス102によってアクセスされず、保護プロセス101の情報が非保護プロセス102に漏洩することを防止することができる。

0052

HV内キー管理テーブル106は、HV通信管理部105により生成され、キーと共有メモリアドレスとメモリIDとが対応付けられたテーブルである(図5(B)参照)。

0053

ここで、HV通信管理部105は、対象キーがHV内キー管理テーブル106に存在すれば、当該対象キーに対応するメモリIDを対象プロセスに通知する。一方、HV通信管理部105は、対象キーがHV内キー管理テーブル106に存在しなければ、共有メモリに新しく非保護メモリ領域122を生成し、生成した非保護メモリ領域122にメモリIDを付与し、対象キーとメモリIDと共有メモリアドレスとをHV内キー管理テーブル106に登録し、メモリIDを対象プロセスに通知する。

0054

非保護メモリ領域122は、例えばハイパーバイザ3内に生成され、親仮想計算機1と子仮想計算機2とが共にアクセスすることができる共有メモリである。そして、非保護メモリ領域122は、非保護プロセス102同士が通信する場合と、保護プロセス101及び非保護プロセス102が通信する場合とにおいて使用される。なお、非保護メモリ領域122は、ハイパーバイザ3の外部に設けてもよい。

0055

VM管理部107は、各仮想計算機が親仮想計算機1又は子仮想計算機2に該当するかを管理するためのVM管理情報を生成して管理する。また、VM管理部107は、親仮想計算機1を複製して子仮想計算機2を生成する際に、親仮想計算機1と子仮想計算機2との状態をVM管理情報に登録する。

0056

図7は、VM管理情報の一例を示した図である。VM管理情報は、1つの仮想計算機に対して1つのレコードが割り付けられ、各レコードはVMID及び状態のフィールドを備えている。VMIDは、各仮想計算機に個別に付与された識別情報である。VMIDは親仮想計算機1と子仮想計算機2とが区別できるような記号列が用いられる。図7の例では、親仮想計算機1に対してはVM_Pの記号列が割り付けられ、子仮想計算機2に対してはVM_C1、VM_C2、・・・の記号列が割り付けられ、“P”と“C”とによって親仮想計算機1か子仮想計算機2かが区別できる。

0057

状態は各仮想計算機の状態を示している。状態としては、“発行”及び“待機”が存在する。“発行”は仮想計算機内のいずれかのプロセスが通信依頼を発行した状態を示す。待機は仮想計算機内のプロセスが他のプロセスからの通信を待機している状態を示す。

0058

図7の例では、VMID=VM_Pの親仮想計算機1の保護プロセス101が通信依頼を発行したため、状態が“発行”となっている。それ以外の子仮想計算機2の非保護プロセス102は通信依頼を発行していないため状態が“待機”となっている。

0059

VM管理情報は、通信依頼を発行した対象プロセスが保護プロセス101であるか非保護プロセス102であるかを判定するために、キー生成部108及びプロセス判定部109によって参照される。具体的には、キー生成部108及びプロセス判定部109は、対象プロセスから通信依頼が発行されると、VM管理情報を参照し、状態のフィールドが“発行”であるレコードを特定し、特定したレコードのVMIDが親仮想計算機1を示す場合、その対象プロセスは保護プロセス101と判定し、特定したレコードのVMIDが子仮想計算機2を示す場合、その対象プロセスは非保護プロセス102と判定する。

0060

図2は、本発明の実施の形態による仮想計算機システム0の動作を示すフローチャートである。以下、図2を用いて保護プロセス101又は非保護プロセス102が共有メモリのメモリIDを取得する際の処理を説明する。

0061

まず、キー生成部108は、対象プロセスから通信依頼が発行されて呼び出されると、VM管理部107により管理されているVM管理情報を参照し、対象プロセスが保護プロセス101又は非保護プロセス102であるかを判定する(S2001)。

0062

この場合、キー生成部108は、例えば、図7に示すVM管理情報の状態のフィールドが“発行”のレコードを特定し、特定したレコードのVMIDが親仮想計算機1を示すものであれば、対象プロセスは保護プロセス101であると判定し、特定したレコードのVMIDが子仮想計算機2を示すものであれば、対象プロセスは非保護プロセス102と判定する。

0063

そして、キー生成部108は、対象プロセスが保護プロセス101であると判定した場合(S2002でY)、第2キー生成ファイル103を参照して、キーを生成する(S2003)。一方、キー生成部108は、対象プロセスが非保護プロセス102であると判定した場合(S2002でN)、第1キー生成ファイル104を参照して、キーを生成する(S2004)。

0064

次に、第1、第2キー生成ファイル104、103の詳細について説明する。本実施の形態では、子仮想計算機2は、親仮想計算機1を複製することで生成されている。したがって、各仮想計算機は、親仮想計算機1又は子仮想計算機2になる可能性がある。そこで、本実施の形態では各仮想計算機が親仮想計算機1又は子仮想計算機2になっても、キー生成部108が保護プロセス101又は非保護プロセス102のキーが生成できるように、第2キー生成ファイル103及び第1キー生成ファイル104を各仮想計算機に設けている。図3(A)は、本発明の実施の形態による第1キー生成ファイル104の一例を示した図である。図3(B)は本発明の実施の形態による第2キー生成ファイル103の一例を示した図である。

0065

図3(A)に示すように、第1キー生成ファイル104は、1つのプロセスにつき1つのレコードが割り付けられ、プロセス名を格納するフィールド3001と、キーを格納するフィールド3002とを備えている。また、図3(B)に示すように、第2キー生成ファイル103も、第1キー生成ファイル104と同じデータ構造を持つ。

0066

フィールド3001は、各プロセスに付与されたプロセス名を格納する。フィールド3002は、各プロセスがプロセス間通信を行う際に使用する共有メモリを特定するためのキーを格納する。

0067

第2キー生成ファイル103は、第1キー生成ファイル104を複製し、非保護プロセス102と通信する保護プロセス101については、キーをキー変換ルールにしたがって第1種のキーから第2種のキーに変換することで生成される。ここで、キー変換ルールとしては、第1種のキーに規定値を加算して第1種のキーを第2種のキーに変換するルールが採用され、規定値としては、例えば1000が採用されている。

0068

図3(B)の例では、プロセスC以外の各プロセスには図3(A)の各プロセスと同じキーが割り付けられており、第2キー生成ファイル103は第1キー生成ファイル104を複製することで生成されていることが分かる。一方、プロセスCは非保護プロセス102と通信する保護プロセス101である。そのため、プロセスCには、図3(A)で示すキー“21”に1000を加えて第2種のキーに変換されたキー“1021”が割り付けられている。

0069

なお、第1、第2キー生成ファイル104、103は、システム設計者によって予め作成されている。作成方法としては、例えば、システム設計者が、各プロセスに対して1000未満の数値を取るように第1種のキーを割り付けて第1キー生成ファイル104を生成する。次に、システム設計者は、第1キー生成ファイル104を複製し、非保護プロセス102と通信する保護プロセス101のキーには1000を加算し、第2キー生成ファイル103を生成すればよい。

0070

図2戻り、キー生成部108は、対象プロセスが保護プロセス101であれば(S2002でY)、対象プロセスのプロセス名から当該プロセスに対応するレコードを第2キー生成ファイル103から特定し、特定したレコードのフィールド3002に格納されたキーを、対象プロセスのキーとして生成する(S2003)。そして、キー生成部108は、生成したキーを対象プロセスに返す。

0071

一方、キー生成部108は、対象プロセスが非保護プロセス102であれば(S2002でN)、第1キー生成ファイル104を参照し、S2003と同様にしてキーを生成し(S2004)、対象プロセスに返す。

0072

なお、S2003、S2004では、キー生成部108が第2キー生成ファイル103、第1キー生成ファイル104を読み込んだが、本実施の形態ではこれに限定されない。例えば、S2003において、保護プロセス101が第2キー生成ファイル103を読み込んで、キー生成部108に渡すようにしてもよい。また、S2004において、非保護プロセス102が第1キー生成ファイル104を読み込んでキー生成部108に渡すようにしてもよい。

0073

次に、対象プロセスは、取得したキーを対象キーとし、対象キーを指定してプロセス判定部109を呼び出す(S2005)。そして、プロセス判定部109は、VM管理部107が管理するVM管理情報を参照し、対象プロセスが保護プロセス101又は非保護プロセス102であるかを判定する(S2005)。

0074

この場合、プロセス判定部109は、VM情報を参照し、状態のフィールドが“発行”のレコードを特定し、特定したレコードのVMIDが親仮想計算機1を示せば、対象プロセスは保護プロセス101であると判定する。一方、プロセス判定部109は、特定したレコードのVMIDが子仮想計算機2を示せば、対象プロセスは非保護プロセス102と判定する。

0075

そして、プロセス判定部109は、対象プロセスが保護プロセス101であると判定した場合(S2006でY)、キー判定部111は、対象キーが第1種のキー又は第2種のキーであるかを判定する(S2007)。

0076

ここで、キー判定部111は、上述したキー変換ルールにしたがって、対象キーの種別を判定する。例えば、図3の(B)の例では、第1種のキーに1000を加算して第1種のキーが第2種のキーに変換されている。よって、キー判定部111は、対象キーが1000以上である場合、第2種のキーと判定し、対象キーが1000未満である場合、第1種のキーと判定する。

0077

なお、キー判定部111は、システム設計者がキー判定部111に予め登録しておいたキー変換ルールを用いて対象キーの種別を判定してもよい。或いは、キー判定部111は、第2キー生成ファイル103を読み取り、キー変換ルールを解読し、解読したキー変換ルールを用いて対象キーの種別を判定してもよい。キー変換ルールの解読手法としては、例えば、図3(B)の例では、キー判定部111は、下2桁が共通するキーを特定し、特定したキーが異なる数値であれば、両数値の差分をキー変換ルールの規定値として特定する手法を採用すればよい。

0078

次に、キー判定部111は、対象キーが第1種のキーであると判定した場合(S2008でY)、対象キーを指定してVM通信管理部112に保護メモリ領域121の使用依頼を通知する(S2009)。一方、キー判定部111は、対象キーが第2種のキーであると判定した場合(S2008でN)、対象キーを指定してHV通信管理部105に非保護メモリ領域122の使用依頼を通知する(S2010)。

0079

S2006において、対象プロセスが非保護プロセス102であると判定された場合(S2006でN)、キー変換部110は、対象キーを上記のキー変換ルールにしたがって第1種のキーから第2種のキーに変換する(S2011)。つまり、キー変換部110は、対象キーに規定値(=1000)を加算して第2種のキーに変換する。

0080

次に、キー変換部110は、S2011で第2種のキーに変換した対象キーを指定して、HV通信管理部105に非保護メモリ領域122の使用依頼を通知する(S2010)。

0081

以下、共有メモリを生成または共有する処理の詳細について説明する。本実施の形態では、対象プロセスが別の保護プロセス101と通信する保護プロセスである場合、VM通信管理部112に保護メモリ領域121の使用依頼が通知され(S2009)、対象プロセスが非保護プロセス102と通信する保護プロセス101又は非保護プロセス102である場合、HV通信管理部105に非保護メモリ領域122の使用依頼が通知される(S2010)。

0082

そこで、まず、VM通信管理部112に使用依頼が通知される際の処理について説明する。図4は、本発明の実施の形態において、VM通信管理部112に保護メモリ領域121の使用依頼が通知された際の処理を示すフローチャートである。まず、VM通信管理部112は、VM内キー管理テーブル113を参照し(S4001)、VM内キー管理テーブル113に対象キーが登録されているか否かを判定する(S4002)。

0083

図5(A)はVM内キー管理テーブル113の一例を示した図である。図5(A)に示すようにVM内キー管理テーブル113は、1つの保護メモリ領域121に対して1つのレコードが割り付けられ、各レコードは、キーのフィールド5001、共有メモリアドレスのフィールド5002、及びメモリIDのフィールド5003を備えている。

0084

共有メモリアドレスは各保護メモリ領域121の開始アドレスである。メモリIDは各保護メモリ領域121に一意に付与された識別情報である。このように、VM内キー管理テーブル113は、各保護メモリ領域121における、キー、共有メモリアドレス、及びメモリIDを対応付けて記憶している。

0085

したがって、VM通信管理部112は、キー判定部111により指定された対象キーがVM内キー管理テーブル113に存在すれば、対象キーはVM内キー管理テーブル113に登録されていると判定し(S4002でY)、対象キーがVM内キー管理テーブル113に存在しなければ、対象キーはVM内キー管理テーブル113に登録されていないと判定する(S4002でN)。

0086

次に、VM通信管理部112は、対象キーを使用してプロセス通信部21内に保護メモリ領域121を生成する(S4003)。次に、VM通信管理部112は、生成した保護メモリ領域121をVM内キー管理テーブル113に登録する(S4004)。この場合、VM通信管理部112は、保護メモリ領域121を生成する際に使用した対象キーと、生成した保護メモリ領域121の開始アドレス及びメモリIDとをVM内キー管理テーブル113に登録する。次に、VM通信管理部112は、生成した保護メモリ領域121のメモリIDを保護プロセス101に通知する(S4005)。一方、対象キーがVM内キー管理テーブル113に登録されている場合(S4002でY)、VM通信管理部112は、対象キーに対応するメモリIDを保護プロセス101に通知する(S4006)。

0087

以上により、他の保護プロセス101と通信する保護プロセス101に保護メモリ領域121のメモリIDが通知される。

0088

次に、HV通信管理部105に非保護メモリ領域122の使用依頼が通知された際の処理について説明する。図9は、本発明の実施の形態による仮想計算機システムにおいて、、HV通信管理部105に非保護メモリ領域122の使用依頼が通知された際の処理を示すフローチャートである。まず、HV通信管理部105は、HV内キー管理テーブル106を参照し(S9001)、HV内キー管理テーブル106に対象キーが登録されているか否かを判定する(S9002)。

0089

図5(B)はHV内キー管理テーブル106の一例を示した図である。図5(B)に示すようにHV内キー管理テーブル106は、1つの非保護メモリ領域122に対して1つのレコードが割り付けられ、各レコードは、キーのフィールド5001、共有メモリアドレスのフィールド5002、及びメモリIDのフィールド5003を備えている。

0090

共有メモリアドレスは各非保護メモリ領域122の開始アドレスである。メモリIDは各非保護メモリ領域122に一意に付与された識別情報である。このように、HV内キー管理テーブル106は、各非保護メモリ領域122における、キー、共有メモリアドレス、及びメモリIDを対応付けて記憶している。

0091

そして、HV通信管理部105は、対象キーがHV内キー管理テーブル106に登録されていない場合(S9002でN)、対象キーを使用してハイパーバイザ3内に非保護メモリ領域122を生成する(S9003)。

0092

次に、HV通信管理部112は、S4004と同様にして、生成した非保護メモリ領域122をHV内キー管理テーブル106に登録する(S9004)。次に、HV通信管理部112は、S4005と同様にして、生成した非保護メモリ領域122のメモリIDを通信依頼を発行した保護プロセス101又は非保護プロセス102に通知する(S9005)。一方、対象キーがHV内キー管理テーブル106に登録されていない場合(S9002でY)、HV通信管理部105は、対象キーに対応するメモリIDを通信依頼を発行した保護プロセス101又は非保護プロセス102に通知する(S9006)。

0093

以上により非保護プロセス102と通信する保護プロセス101及び非保護プロセス102にメモリIDが通知される。

0094

次に、本発明の実施の形態の仮想計算機システム0にけるプロセス間通信の一例について説明する。図6は、本発明の実施の形態による仮想計算機システム0において、キーが生成されてからメモリIDが通知されるまでの処理の流れを示した図である。図6において、プロセスA、プロセスB、及びプロセスCは保護プロセス101であり、プロセスD、プロセスE、及びプロセスFは非保護プロセス102である。

0095

なお、図6において、第2キー生成ファイル103としては図3(B)が採用され、第1キー生成ファイル104としては図3(A)が採用されている。

0096

また、キー変換ルールとしては、1000を加算して第1種のキーを第2種のキーに変換するルールを採用する。よって、プロセスCのキーは、図3(A)のプロセスCのキー“21”に1000を加算した1021となっている。

0097

始めに、親仮想計算機1内のプロセス間通信について説明する。ここでは、プロセスAの通信依頼によって保護メモリ領域121が生成され、プロセスBが生成された保護メモリ領域121を用いてプロセスAと通信する場合について説明する。

0098

まず、プロセスAはキー生成部108を呼ぶ。次に、キー生成部108は第2キー生成ファイル103を参照して、プロセスAのキー“38”をプロセスAに返す。ここで、プロセスAは親仮想計算機1で実行されているため、キー生成部108は、プロセスAを保護プロセス101と判定する。そのため、キー生成部108は第2キー生成ファイル103を参照している。

0099

次に、プロセスAはキー“38”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスAが親仮想計算機1で実行されているため、プロセスAを保護プロセス101と判定する。

0100

次に、キー判定部111は、プロセスAのキー“38”が1000未満であるため、第1種のキーと判定する。次に、キー判定部111は、キー“38”が第1種のキーであるため、キー“38”を指定して保護メモリ領域121の使用依頼をVM通信管理部112に通知する。

0101

次に、VM通信管理部112は、VM内キー管理テーブル113にキー“38”が登録されているか否かを判定する。ここでは、VM内キー管理テーブル113にはキー“38”がまだ登録されていない。そのため、VM通信管理部112は、キー“38”を使用して保護メモリ領域121を生成する。

0102

次に、VM通信管理部112は、生成した保護メモリ領域121をVM内キー管理テーブル113に登録し、当該保護メモリ領域121のメモリIDをプロセスAに通知する。

0103

次に、プロセスBがキー生成部108を呼ぶ。次に、キー生成部108は、第2キー生成ファイル103を参照して、プロセスBのキー“38”をプロセスBに返す。ここで、プロセスBは親仮想計算機1で実行されているため、キー生成部108は、プロセスAを保護プロセス101と判定する。そのため、キー生成部108は第2キー生成ファイル103を参照している。

0104

次に、プロセスBはキー“38”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスBが親仮想計算機1で実行されているため、プロセスBを保護プロセス101と判定する。

0105

次に、キー判定部111は、プロセスBのキー“38”が1000未満であるため、キー“38”が第1種のキーであると判定する。次に、キー判定部111は、キー“38”が第1種のキーであるため、保護メモリ領域121の使用依頼をVM通信管理部112に通知する。

0106

次に、VM通信管理部112はVM内キー管理テーブル113にキー“38”が登録されているか否かを判定する。ここでは、VM内キー管理テーブル113にキー“38”の保護メモリ領域121が登録されているため、当該保護メモリ領域121のメモリIDをプロセスBに通知する。

0107

以上の処理により、プロセスA、Bはキー“38”で特定される保護メモリ領域121を使用して通信することができる。

0108

以上の説明と逆に、プロセスBの通信依頼によって、キー“38”の保護メモリ領域121が生成された場合も、プロセスAにはキー“38”の保護メモリ領域121のメモリIDが通知され、プロセスA、Bは通信することができる。これは、第2キー生成ファイル103においてプロセスA、Bには同じキー“38”が割り付けられ、且つ両プロセスは保護プロセス101であるため、キー変換が行われないからである。

0109

次に、子仮想計算機2内のプロセス間通信について説明する。ここでは、プロセスEの通信依頼によって非保護メモリ領域122が生成され、プロセスFが生成された非保護メモリ領域122を用いてプロセスEと通信する場合について説明する。

0110

まず、プロセスEはキー生成部108を呼ぶ。次に、キー生成部108は第1キー生成ファイル104を参照してプロセスEのキー“57”をプロセスEに返す。ここで、プロセスEは子仮想計算機2で実行されているため、キー生成部108は、プロセスEを非保護プロセス102と判定する。そのため、キー生成部108は第1キー生成ファイル104を参照している。

0111

次に、プロセスEはキー“57”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスEが子仮想計算機2で実行されているため、プロセスEを非保護プロセス102と判定する。

0112

次に、プロセス判定部109は、プロセスEが非保護プロセス102であるため、キー“57”を指定してキー変換部110を呼ぶ。

0113

次に、キー変換部110は、キー“57”に1000を加算して、第1種のキーから第2種のキーに変換し、変換後のキー“1057”を指定して非保護メモリ領域122の使用依頼をHV通信管理部105に通知する。

0114

次に、HV通信管理部105は、HV内キー管理テーブル106にキー“1057”が登録されているか否かを判定する。ここでは、HV内キー管理テーブル106にはキー“1057”がまだ登録されていない。そのため、HV通信管理部105は、キー“1057”を使用して非保護メモリ領域Bを生成する。

0115

次に、HV通信管理部105は、生成した非保護メモリ領域BをHV内キー管理テーブル106に登録し、当該非保護メモリ領域BのメモリIDをプロセスEに通知する。

0116

次に、プロセスFがキー生成部108を呼ぶ。次に、キー生成部108は、第1キー生成ファイル104を参照して、プロセスFのキー“57”をプロセスFに返す。ここで、プロセスFは子仮想計算機2で実行されているため、キー生成部108は、プロセスFを非保護プロセス102と判定する。そのため、キー生成部108は第1キー生成ファイル104を参照している。

0117

次に、プロセスFはキー“57”を指定してプロセス判定部109を呼ぶ、次に、プロセスFはキー“57”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスFが子仮想計算機2で実行されているため、プロセスFを非保護プロセス102と判定する。

0118

次に、プロセス判定部109は、プロセスFが非保護プロセス102であるため、キー“57”を指定してキー変換部110を呼ぶ。

0119

次に、キー変換部110は、キー“57”に1000を加算して、第1種のキーから第2種のキーに変換し、変換後のキー“1057”を指定して非保護メモリ領域122の使用依頼をHV通信管理部105に通知する。

0120

次に、HV通信管理部105は、HV内キー管理テーブル106にキー“1057”が登録されているか否かを判定する。ここでは、HV内キー管理テーブル106にキー“1057”の非保護メモリ領域Bが既に登録されているため、当該非保護メモリ領域BのメモリIDをプロセスFに通知する。

0121

以上の処理により、プロセスE、Fはキー“1057”で特定される非保護メモリ領域Bを使用して通信することができる。

0122

以上の説明とは逆に、プロセスFの通信依頼によって、キー“1057”の非保護メモリ領域Bが生成された場合も、プロセスEにはキー“1057”の非保護メモリ領域BのメモリIDが通知され、プロセスE、Fは通信することができる。これは、第1キー生成ファイル104においてプロセスE、Fには同じキー“57”が割り付けられ、且つ両プロセスは非保護プロセス102であるため、同じキー変換ルールでキー“1057”に変換されるからである。

0123

このように、非保護プロセス102により通信依頼が発行された際、キー変換部110により必ずキーが第1種のキーから第2種のキーに変換される。そのため、保護メモリ領域121は非保護プロセス102によりアクセスされず、保護プロセス101が非保護プロセス102によって改変されたり参照されたりすることが防止される。

0124

最後に、仮想計算機間のプロセス間通信について説明する。ここでは、プロセスDの通信依頼によって非保護メモリ領域Aが生成され、プロセスCが生成された非保護メモリ領域Aを用いてプロセスDと通信する場合について説明する。

0125

まず、プロセスDはキー生成部108を呼ぶ。次に、キー生成部108は第1キー生成ファイル104を参照して、プロセスDのキー“21”をプロセスDに返す。ここで、プロセスDは子仮想計算機2で実行されているため、キー生成部108は、プロセスDを非保護プロセス102と判定する。そのため、キー生成部108は第1キー生成ファイル104を参照している。

0126

次に、プロセスDはキー“21”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスDが子仮想計算機2で実行されているため、プロセスDを非保護プロセス102と判定する。

0127

次に、プロセス判定部109は、プロセスDが非保護プロセス102であるため、キー“21”を指定してキー変換部110を呼ぶ。

0128

次に、キー変換部110は、キー“21”に1000を加算して、第1種のキーから第2種のキーに変換し、変換後のキー“1021”を指定して非保護メモリ領域122の使用依頼をHV通信管理部105に通知する。

0129

次に、HV通信管理部105は、HV内キー管理テーブル106にキー“1021”が登録されているか否かを判定する。ここでは、HV内キー管理テーブル106にはキー“1021”はまだ登録されていない。そのため、HV通信管理部105は、キー“1021”を使用して非保護メモリ領域Aを生成する。

0130

次に、HV通信管理部105は、生成した非保護メモリ領域AをHV内キー管理テーブル106に登録し、非保護メモリ領域AのメモリIDをプロセスDに通知する。

0131

次に、プロセスCがキー生成部108を呼ぶ。次に、キー生成部108は第2キー生成ファイル103を参照して、プロセスCのキー“1021”をプロセスCに返す。このキー“1021”は、キー変換ルールに則って、予め第1種のキー“21”に1000が加算されて第2種のキーに変換されたキーである。プロセスCは親仮想計算機1で実行されているため、キー生成部108は、プロセスCを保護プロセス101と判定する。そのため、キー生成部108は第2キー生成ファイル103を参照している。

0132

次に、プロセスCはキー“1021”を指定してプロセス判定部109を呼ぶ。次に、プロセス判定部109は、プロセスCが親仮想計算機1で実行されているため、プロセスCを保護プロセス101と判定する。

0133

次に、キー判定部111は、プロセスCのキー“1021”が1000未満であるため、第2種のキーと判定する。次に、キー判定部111は、キー“1021”が第2種のキーであるため、キー“1021”を指定して非保護メモリ領域122の使用依頼をHV通信管理部105に通知する。

0134

次に、HV通信管理部105は、HV内キー管理テーブル106にキー“1021”が登録されているか否かを判定する。ここでは、HV内キー管理テーブル106にはキー“1021”が既に登録されている。そのため、HV通信管理部105は、キー“1021”に対する非保護メモリ領域AのメモリIDをプロセスCに返す。

0135

以上の処理により、プロセスC、Dはキー“1021”で特定される非保護メモリ領域Aを用いて通信することができる。

0136

以上の説明とは逆に、プロセスCの通信依頼によって、キー“1021”の非保護メモリ領域Aが生成された場合も、プロセスDにはキー“1021”の非保護メモリ領域AのメモリIDが通知され、プロセスC、Dは通信することができる。

0137

これは、第2キー生成ファイル103に登録されているプロセスCのキーは“1021”であり、プロセスDのキー“21”をキー変換するルールで変換すると“1021”となり、両キーが一致するからである。

0138

つまり、プロセスC、Dが通信を行う際には、両プロセスのキーは最終的に同じ値になり、両プロセスには同じメモリIDが通知され、両プロセスは同じ非保護メモリ領域Aを共有して通信することができる。

0139

また、プロセスC、Dは非保護メモリ領域Aを用いて通信するため、プロセスDが保護メモリ領域121にアクセスすることがなくなり、親仮想計算機1内の他のプロセス(プロセスA、B)の取り扱う情報が親仮想計算機1の外部に漏洩することを防止することができる。

0140

また、プロセスDは、非保護プロセス102であるため、必ず第2種のキーに変換される。したがって、第2キー生成ファイル103においてプロセスCのキーが第2種のキーに予め変換されていなければ、プロセスDはプロセスCとは通信することができない。そして、第2キー生成ファイル103におけるプロセスCのキーの変換はシステム設計者の管理下で予め行われている。

0141

よって、システム設計者の許可がなければ、プロセスDはプロセスCと通信することができず、保護プロセスであるプロセスCが非保護プロセスであるプロセスDから許可なく通信されることが防止される。その結果、プロセスCの取り扱う情報がシステム設計者の管理外のプロセスに漏洩することを防止することができる。

0142

更に、システム設計者は、第1キー生成ファイル104において、非保護プロセス102と通信する保護プロセス101のキーを第2種のキーに変換して第2キー生成ファイル103を生成しさえすれば、保護プロセス101を非保護プロセス102と通信させることができる。そのため、システム設計者は、保護アプリケーションや非保護アプリケーションを改変しなくても、仮想計算機間のプロセス通信を実現することができる。

0143

また、HV通信管理部105は、第2種のキーとメモリIDとを対応付けて非保護メモリ領域122を管理している。そして、非保護プロセス102から通信依頼が発行されると、HV通信管理部105にはキー変換部110によって変換された第2種のキーが通知される。また、非保護プロセス102と通信する保護プロセス101から通信依頼が発行された場合も、HV通信管理部105には第2種のキーが通知される。

0144

そのため、非保護プロセス102と通信する保護プロセス101及び非保護プロセス102には、必ず非保護メモリ領域122のメモリIDが通知される。よって、非保護プロセス102が保護メモリ領域121にアクセスすることがなくなり、保護プロセス101を保護することができる。

0145

また、VM通信管理部112は、第1種のキーとメモリIDとを対応付けて保護メモリ領域121を管理している。そして、他の保護プロセス101と通信する保護プロセス101から通信依頼が発行されると、VM通信管理部105には第1種のキーが通知される。

0146

そのため、他の保護プロセス101と通信する保護プロセス101には、必ず保護メモリ領域121のメモリIDが通知される。よって、保護プロセス同士で通信する保護プロセス101は保護メモリ領域121のみを使用することになり、非保護プロセス102に保護プロセス101の情報が漏洩することを防止することができる。

0147

なお、本実施の形態においては、親仮想計算機1において保護プロセス101を実行させ、子仮想計算機2において非保護プロセス102を実行させたが、親仮想計算機1において非保護プロセス102を実行させ、子仮想計算機2において保護プロセス101を実行させてもよい。

0148

この場合、図1に示す親仮想計算機1の機能を子仮想計算機2に実行させ、図1に示す子仮想計算機2の機能を親仮想計算機1を実行させればよい。

0149

また、本実施の形態において、保護メモリ領域121を親仮想計算機1に生成し、非保護メモリ領域122をハイパーバイザ3に生成したが、ハイパーバイザ3に保護メモリ領域121及び非保護メモリ領域122を生成してもよい。この場合、保護メモリ領域121は親仮想計算機1のみアクセス可能とすれば、保護プロセス101を非保護プロセス102から保護することができる。

0150

最後に本実施の形態における仮想計算機システム0のハードウェア構成について説明する図8は、本発明の実施の形態による仮想計算機システム0のハードウェア構成を示すブロック図である。

0151

仮想計算機システム0は、例えばコンピュータにより構成され、入力装置801、ROM(リードオンリメモリ)802、CPU(中央演算処理装置)803、RAM(ランダムアクセスメモリ)804、外部記憶装置805、表示装置806、記録媒体駆動装置807、及び通信装置808を備える。各ブロックは内部のバスに接続され、このバスを介して種々のデータ等が入出され、CPU803の制御の下、種々の処理が実行される。

0152

入力装置801は、キーボードマウス等から構成され、ユーザが種々のデータを入力するために使用される。ROM802には、BIOS(Basic Input/Output System)等のシステムプログラムが記憶される。外部記憶装置805は、ハードディスクドライブ等から構成され、オペレーティングシステムや仮想計算機プログラム等を記憶する。CPU803は、外部記憶装置805からオペレーティングシステムや仮想計算機プログラム等を読み出し、各ブロックの動作を制御する。RAM804は、CPU803の作業領域等として用いられる。

0153

表示装置806は、例えば液晶ディスプレイ有機ELディスプレイにより構成され、CPU803の制御の下に種々の画像を表示する。記録媒体駆動装置807は、CD−ROMドライブフレキシブルディスクドライブ等から構成される。

0154

なお、仮想計算機プログラムは、CD−ROM等のコンピュータ読み取り可能な記録媒体809に格納されてユーザに提供される。ユーザはこの記録媒体809を記録媒体駆動装置807に読み込ませることで、仮想計算機プログラムをコンピュータにインストールする。また、仮想計算機プログラムをインターネット上のサーバに格納し、このサーバからダウンロードすることで、仮想計算機プログラムをコンピュータにインストールしてもよい。

0155

通信装置808は、例えば、コンピュータをインターネットに接続するための通信装置により構成され、CPU803の制御の下、インターネットを介して他の機器との間でデータを送受する。

0156

なお、図1に示す第1、第2キー生成ファイル104、103、VM内キー管理テーブル113、HV内キー管理テーブル106、VM管理部107、及び保護メモリ領域121、及び非保護メモリ領域122は、例えばROM802、RAM804、及び外部記憶装置805等の記憶装置と、記憶装置を制御する仮想計算機プログラムに含まれるプログラムモジュールとにより構成される。また、図1に示す保護プロセス101、キー生成部108、プロセス判定部109、キー変換部110、キー判定部111、VM通信管理部112、及びHV通信管理部105は、仮想計算機プログラムに含まれるプログラムモジュールであり、CPU803により実行される。

0157

図1に示す仮想計算機システム0の各機能ブロックは、典型的にはプロセッサ外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるLSIで実現してもよい。これらの各機能ブロックは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSIスーパーLSI又はウルトラLSIと呼称されることもある。

0158

仮想計算機システム0を集積回路で構成する場合、例えば、キー生成部108、プロセス判定部109、キー変換部110、キー判定部111、VM通信管理部112、HV通信管理部105を集積化すればよい。

0159

また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。

0160

さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。

0161

また、仮想計算機システム0は、プロセッサとタイマとを備えた計算処理装置であれば、あらゆる計算機、電子機器情報機器AV機器通信機器及び家電機器にも適用可能であり、例えばPC(パーソナルコンピュータ)、携帯情報端末携帯電話スマートフォン及びPDAなど)、テレビハーディスクレコーダー、DVD及びブルーレイディスクなどを用いた各種ディスクレコーダー、DVD及びブルーレイディスクなどを用いた各種ディスクプレイヤー、及びカーナビゲーションシステムなどにも応用できる。

0162

また、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。

0163

(本発明の実施の形態のまとめ)
本発明の実施の形態による仮想計算機システムの技術的特徴は下記のようにまとめることができる。

0164

(1)本実施の形態による仮想計算機システムは、保護プロセスを実行する第1仮想計算機と、非保護プロセスを実行する第2仮想計算機と、前記第1、第2仮想計算機を制御するハイパーバイザとを備える仮想計算機システムであって、前記第1、第2仮想計算機は、非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、第1種のキーが所定のキー変換ルールで変換された第2種のキーを生成し、他のプロセスから通信依頼が発行された場合、前記第1種のキーを生成するキー生成部と、前記通信依頼を発行したプロセスである対象プロセスが、前記保護プロセス又は前記非保護プロセスであるかを判定するプロセス判定部と、前記プロセス判定部により、前記対象プロセスが前記保護プロセスであると判定された場合、前記キー生成部により生成されたキーである対象キーが、前記第1種のキー又は前記第2種のキーであるかを判定するキー判定部と、前記キー判定部により、前記対象キーが前記第1種のキーであると判定された場合、当該第1種のキーに対応する保護メモリ領域のメモリIDを前記対象プロセスに通知するVM通信管理部とを備え、前記ハイパーバイザは、前記キー判定部により、前記対象キーが前記第2種のキーと判定された場合、当該第2種のキーに対応する非保護メモリ領域のメモリIDを前記対象プロセスに通知するHV通信管理部を備え、前記第1、第2仮想計算機は、前記プロセス判定部により、前記対象プロセスが前記非保護プロセスであると判定された場合、前記キー変換ルールに基づき、前記対象キーを前記第1種のキーから前記第2種のキーに変換するキー変換部を更に備え、前記HV通信管理部は、前記キー変換部により変換された第2種のキーに対応する前記非保護メモリ領域のメモリIDを前記対象プロセスに通知する。

0165

この構成によれば、非保護プロセスと通信する保護プロセスから通信依頼が発行された場合、キー生成部により第2種のキーが生成され、他のプロセス(保護プロセス同士で通信する保護プロセス及び非保護プロセス)から通信依頼が発行された場合、キー生成部により第1種のキーが生成される。ここで、第2種のキーは所定のキー変換ルールで第1種のキーを変換して得られるものである。

0166

そして、通信依頼を発行したプロセスである対象プロセスが保護プロセスであるとプロセス判定部により判定されると、キー生成部により生成されたキーである対象キーが第1種のキー又は第2種のキーであるかキー判定部により判定される。

0167

そして、キー判定部により対象キーが第1種のキーであると判定されると、対象プロセスが他の保護プロセスと通信する保護プロセス、つまり、第1仮想計算機内で通信する保護プロセスであると判定され、当該保護プロセスに第1種のキーに対応する保護メモリ領域のメモリIDが通知される。

0168

これにより、第1仮想計算機内で通信する保護プロセスは保護メモリ領域にアクセスして他の保護プロセスと通信することができる。

0169

一方、対象キーが第2種のキーであるとキー判定部により判定されると、対象プロセスは非保護プロセスと通信する保護プロセス、つまり、仮想計算機間で通信する保護プロセスと判定され、当該保護プロセスに非保護メモリ領域に対応するメモリIDが通知される。

0170

これにより、非保護プロセスと通信する保護プロセスは非保護メモリ領域にアクセスして非保護プロセスと通信することができる。

0171

このように、本構成では、保護メモリ領域と非保護メモリ領域とに分け、非保護メモリ領域において保護プロセス及び非保護プロセスの通信を行わせ、保護メモリ領域において、保護プロセス同士の通信を行わせている。そのため、保護プロセスを非保護プロセスから保護すると同時に、仮想計算機間の通信を実現することができる。

0172

また、対象プロセスが非保護プロセスとプロセス判定部により判定された場合、対象キーがキー変換部によって第1種のキーから第2種のキーに変換される。そのため、非保護プロセスには、非保護メモリ領域のメモリIDが通知される。よって、非保護プロセスは、非保護メモリ領域のみ使用して通信することになり、保護プロセスを非保護プロセスから保護することができる。

0173

(2)上記仮想計算機システムは、例えば、前記キー生成部は、各プロセスについて予めキーが割り付けられたキー生成ファイルを参照してキーを生成する。

0174

この構成によれば、各プロセスについてキーが予め割り付けられたキー生成ファイルを参照してキーが生成されるため、キーを高速に生成することができる。また、システム設計者は、キー生成ファイルを設定することで、あるプロセスを目的のプロセスと通信させることができる。そのため、システム設計者は、アプリケーションを変更することなく、プロセスを管理することができる。

0175

(3)上記仮想計算機システムは、例えば、前記キー生成ファイルは、通信相手のプロセスと値が同じになるように各プロセスに第1種のキーが割り付けられた第1キー生成ファイルと、前記第1キー生成ファイルを複製し、前記非保護プロセスと通信する保護プロセスに割り付けられた第1種のキーを前記キー変換ルールで第2種のキーに変換することで生成された第2キー生成ファイルとを備え、前記キー生成部は、前記保護プロセスから前記通信依頼が発行された場合、前記第2キー生成ファイルを参照してキーを生成し、前記非保護プロセスから前記通信依頼が発行された場合、前記第1キー生成ファイルを参照してキーを生成する。

0176

この構成によれば、保護プロセスから通信依頼が発行された場合、キー生成部は第2キー生成ファイルを参照してキーを生成する。ここで、第2キー生成ファイルにおいて、非保護プロセスと通信する保護プロセスには第2種のキーが割り付けられ、他のプロセス(保護プロセス同士で通信する保護プロセス及び非保護プロセス)には第1種のキーが割り付けられている。そのため、キー生成部は、非保護プロセスと通信する保護プロセスに対して第2種のキーを生成する。

0177

一方、この保護プロセスと通信する非保護プロセスには第1キー生成ファイルを参照して第1種のキーが生成される。ここで、生成される第1種のキーは、通信相手の保護プロセスに対して生成された第2種のキーの変換前の第1種のキーと同じである。

0178

そして、当該非保護プロセスに対して生成された第1種のキーはキー変換部によりキー変換ルールに則って第2種のキーに変換されるため、変換後の第2種のキーは、通信相手の保護プロセスに対して生成された第2種のキーと同じになる。

0179

よって、非保護プロセスとその通信相手となる保護プロセスとは最終的に同じ第2種のキーを持つことになり、両プロセスには非保護メモリ領域の同じメモリIDが通知される。これにより、両プロセスは非保護メモリ領域を用いて通信することができる。

0180

一方、キー生成部は、保護プロセスと通信する保護プロセスに対しては、第2キー生成ファイルを参照して第1種のキーを生成する。ここで、第2キー生成ファイルにおいて、通信対象となる保護プロセス同士には同じ第1種のキーが割り付けられている。よって、両保護プロセスには、保護メモリ領域の同じメモリIDが通知される。これにより、両保護プロセスは、保護メモリ領域を用いて通信することができる。

0181

更に、キー生成部は、非保護プロセス同士で通信する非保護プロセスから通信依頼が発行された場合、第1キー生成ファイルを参照して両非保護プロセスに対して同じ第1種のキーを生成する。そして、この第1種のキーはキー変換部によって第2種のキーに変換されるため、両非保護プロセスのキーは最終的に同じ第2種のキーとなる。よって、両非保護プロセスには非保護メモリ領域の同じメモリIDが通知され、両非保護プロセスは非保護メモリ領域を用いて通信することができる。

0182

(4)上記仮想計算機システムは、例えば、前記キー変換ルールは、前記第1種のキーに規定値を加算して前記第2種のキーに変換するというルールであり、前記キー判定部は、前記対象キーが前記規定値未満の場合、前記第1種のキーと判定し、前記対象キーが前記規定値以上の場合、前記第2種のキーと判定する。

0183

この構成によれば、第1種のキーに規定値を加算すると第2種のキーになるという簡便なルールを用いて第1種、第2種のキーを区別することができる。

0184

(5)上記仮想計算機システムは、例えば、前記キー判定部は、前記対象キーを前記第1種のキーと判定した場合、前記保護メモリ領域の使用依頼を前記VM通信管理部に通知し、前記対象キーを前記第2種のキーと判定した場合、前記非保護メモリ領域の使用依頼を前記HV通信管理部に通知する。

0185

この構成によれば、キー判定部により対象キーが第1種のキーと判定された場合、他の保護プロセスと通信する保護プロセスから通信依頼が発行されたとして、保護メモリ領域の使用依頼がVM通信管理部に通知される。よって、第1仮想計算機内で通信する保護プロセスには保護メモリ領域のメモリIDが通知されることになる。

0186

一方、キー判定部により対象キーが第2種のキーと判定された場合、非保護プロセスと通信するプロセスから通信依頼が発行されたとして、保護メモリ領域の使用依頼がHV通信管理部に通知される。よって、非保護プロセスと通信する保護プロセスには非保護メモリ領域のメモリIDが通知されることになる。

0187

(6)上記仮想計算機システムは、例えば、前記ハイパーバイザは、各仮想計算機が前記第1仮想計算機又は前記第2仮想計算機であるかを示すVM管理情報を管理するVM管理部を更に備え、前記プロセス判定部は、前記VM管理情報に基づき、前記対象プロセスを実行する仮想計算機が前記第1仮想計算機又は前記第2仮想計算機に該当するかを判定し、前記第1仮想計算機に該当すると判定した場合、前記対象プロセスを前記保護プロセスと判定し、前記第2仮想計算機に該当すると判定した場合、前記対象プロセスを前記非保護プロセスと判定する。

0188

VM管理情報は各仮想計算機が第1仮想計算機又は第2仮想計算機であるかを示す。一方、第1仮想計算機は保護プロセスを実行し、第2仮想計算機は非保護プロセスを実行する。よって、VM管理情報を用いることで対象プロセスが保護プロセス又は非保護プロセスであるかを正確に判定することができる。

0189

(7)上記仮想計算機システムは、例えば、前記第1仮想計算機は、親仮想計算機であり、前記第2仮想計算機は、前記親仮想計算機を複製して生成された子仮想計算機である。

0190

この構成によれば、第1仮想計算機を親仮想計算機、第2仮想計算機を子計算機とした場合において、保護プロセスを非保護プロセスから保護すると同時に、保護プロセス及び非保護プロセス間の通信を実現することができる。

0191

(8)上記仮想計算機システムは、例えば、前記第2仮想計算機は、親仮想計算機であり、前記第1仮想計算機は、前記親仮想計算機を複製して生成された子仮想計算機である。

0192

この構成によれば、第2仮想計算機を親仮想計算機、第1仮想計算機を子計算機とした場合において、保護プロセスを非保護プロセスから保護すると同時に、保護プロセス及び非保護プロセス間の通信を実現することができる。

0193

(9)上記仮想計算機システムは、例えば、前記保護メモリ領域は、前記第1仮想計算機のみがアクセス可能な共有メモリに生成され、前記非保護メモリ領域は、前記第1及び第2仮想計算機がアクセス可能な共有メモリに生成されている。

0194

この構成によれば、保護メモリ領域は第1仮想計算機のみアクセス可能であるため、保護メモリ領域の情報が第2仮想計算機に漏洩することが防止され、保護プロセスを保護することができる。

0195

本発明にかかる仮想計算機システムは、情報処理装置を用いるものであれば幅広い分野において有効である。例えば、大型コンピュータやパーソナルコンピュータのようなコンピュータのみならず、デジタルテレビ蓄積再生装置などの各種の家電機器、携帯電話などの通信機器、産業機器制御機器、及び車載機器等でも利用可能である。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ