(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023072267
(43)【公開日】2023-05-24
(54)【発明の名称】情報処理装置、及び制御方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20230517BHJP
G06F 9/455 20180101ALI20230517BHJP
【FI】
G06F21/57 350
G06F9/455 150
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021184704
(22)【出願日】2021-11-12
(11)【特許番号】
(45)【特許公報発行日】2023-02-06
(71)【出願人】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【弁理士】
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】福田 涼
(72)【発明者】
【氏名】野村 雅彦
(72)【発明者】
【氏名】藤井 康介
(72)【発明者】
【氏名】堀之内 康大
(57)【要約】
【課題】情報処理装置の不正な使用を防止すること。
【解決手段】情報処理装置は、仮想マシンで実行されるOS(Operating System)プログラムとハードウェア上に仮想マシンを構成する仮想化プログラムとを記憶するメモリと、メモリに記憶されたOSプログラム及び仮想化プログラムを実行するプロセッサと、を備え、プロセッサは、メモリに記憶された仮想化プログラムを実行することにより、近距離無線通信を用いて、他のユーザが使用する他の情報処理装置に設定された識別情報を他の情報処理装置から取得する情報取得処理と、情報取得処理により取得した識別情報に基づいて、OSの起動又はOSにより使用可能な機能についての制限を動的に制御するOS制御処理と、を行う。
【選択図】
図6
【特許請求の範囲】
【請求項1】
仮想マシンで実行されるOS(Operating System)プログラムとハードウェア上に前記仮想マシンを構成する仮想化プログラムとを記憶するメモリと、
前記メモリに記憶された前記OSプログラム及び前記仮想化プログラムを実行するプロセッサと、
を備え、
前記プロセッサは、
前記メモリに記憶された前記仮想化プログラムを実行することにより、
近距離無線通信を用いて、他のユーザが使用する他の情報処理装置に設定された識別情報を前記他の情報処理装置から取得する情報取得処理と、
前記情報取得処理により取得した前記識別情報に基づいて、前記OSの起動又は前記OSにより使用可能な機能についての制限を制御するOS制御処理と、
を行う情報処理装置。
【請求項2】
前記プロセッサは、
前記OSプログラムの実行前に、前記情報取得処理において、前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件を満たしたと判定した場合、前記OSを起動させる、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件及び前記OSの所定の機能を使用可能とする条件を満たしたと判定した場合、前記OSを起動させるとともに前記所定の機能を使用可能に制御する、
請求項2に記載の情報処理装置。
【請求項4】
前記プロセッサは、
前記OSプログラムの実行中に、前記情報取得処理において、所定の時間間隔で前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記所定の機能を使用可能とする条件を満たさなくなったと判定した場合、前記所定の機能を使用不可能に制御する、
請求項3に記載の情報処理装置。
【請求項5】
前記プロセッサは、
前記OSプログラムの実行中に、前記情報取得処理において、所定の時間間隔で前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件を満たさなくなったと判定した場合、前記OSを停止させる、
請求項2から請求項4のいずれか一項に記載の情報処理装置。
【請求項6】
前記プロセッサは、
前記OS制御処理において、前記情報取得処理により前記識別情報を取得した前記他の情報処理装置の数に基づいて、前記OSの起動条件を満たすか否かを判定する、
請求項2から請求項5のいずれか一項に記載の情報処理装置。
【請求項7】
前記他の情報処理装置から送信される前記識別情報のそれぞれには、前記他の情報処理装置のそれぞれを使用する前記他のユーザの属性に応じた属性情報が含まれており、
前記プロセッサは、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に含まれる属性情報に基づいて、前記OSの起動条件を満たすか否かを判定する、
請求項2から請求項5のいずれか一項に記載の情報処理装置。
【請求項8】
前記プロセッサは、
前記OS制御処理において、前記情報取得処理により前記識別情報を取得した前記他の情報処理装置の数に基づいて、前記所定の機能を使用可能とする条件を満たすか否かを判定する、
請求項3または請求項4に記載の情報処理装置。
【請求項9】
前記他の情報処理装置から送信される前記識別情報のそれぞれには、前記他の情報処理装置のそれぞれを使用する前記他のユーザの属性に応じた属性情報が含まれており、
前記プロセッサは、
前記OS制御処理において、前記情報取得処理により取得した前記識別情報に含まれる属性情報に基づいて、前記所定の機能を使用可能とする条件を満たすか否かを判定する、
請求項3または請求項4に記載の情報処理装置。
【請求項10】
前記プロセッサは、
前記メモリに記憶された前記仮想化プログラムを実行することにより、
前記識別情報を前記他の情報処理装置へ送信する際に暗号化する暗号化処理と、
前記他の情報処理装置から受信した前記暗号化された前記識別情報を復号する復号処理と、
を行う、
請求項1から請求項9のいずれか一項に記載の情報処理装置。
【請求項11】
前記プロセッサは、
前記メモリに記憶された前記仮想化プログラムを実行することにより、
前記暗号化処理により暗号化された前記識別情報と送信時間とを関連付けて前記他の情報処理装置へ前記近距離無線通信を用いて送信する送信処理と、
前記他の情報処理装置で暗号化された前記識別情報を前記他の情報処理装置から前記近距離無線通信を用いて受信する受信処理と、
を行い、
前記復号処理において、前記受信処理により前記識別情報を受信した受信時間と、前記識別情報に関連付けられている前記送信時間との照合結果に基づいて、受信した前記識別情報の復号を許可する、
請求項10に記載の情報処理装置。
【請求項12】
仮想マシンで実行されるOS(Operating System)プログラムとハードウェア上に前記仮想マシンを構成する仮想化プログラムとを記憶するメモリと、前記メモリに記憶された前記OSプログラム及び前記仮想化プログラムを実行するプロセッサと、を備える情報処理装置における制御方法であって、
前記プロセッサが、前記メモリに記憶された前記仮想化プログラムを実行することにより、
近距離無線通信を用いて、他のユーザが使用する他の情報処理装置に設定された識別情報を前記他の情報処理装置から取得する情報取得処理ステップと、
前記情報取得処理ステップにより取得した前記識別情報に基づいて、前記OSの起動又は前記OSにより使用可能な機能についての制限を制御するOS制御処理ステップと、
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及び制御方法に関する。
【背景技術】
【0002】
情報処理装置の不正な使用や社外秘などの機密データの流出を防ぐ方法として、情報処理装置の起動時にユーザ認証を行うことが一般的に行われている(例えば、特許文献1参照)。ユーザ認証の方法としては、パスワード認証、指紋認証、顔認証、スマートカードを用いた認証、位置情報を利用した認証などがある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
人は、心理的に一人でいる場合に、データを勝手に持ち出したり抜き取ったりといった不正な行動を行う可能性が高いと考えられる。しかしながら、上述したユーザ認証の方法は、一般的にユーザ個人(一人のユーザ)による認証方法である。そのため、例えばユーザ個人が悪意のある人物(例えば、インサイダーなど)である場合に対処できず、不正な使用を防ぐことができない場合があった。
【0005】
本発明は、上記した事情に鑑みてなされたもので、不正な使用を防止する情報処理装置、及び制御方法を提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、本発明の第1態様に係る情報処理装置は、仮想マシンで実行されるOS(Operating System)プログラムとハードウェア上に前記仮想マシンを構成する仮想化プログラムとを記憶するメモリと、前記メモリに記憶された前記OSプログラム及び前記仮想化プログラムを実行するプロセッサと、を備え、前記プロセッサは、前記メモリに記憶された前記仮想化プログラムを実行することにより、近距離無線通信を用いて、他のユーザが使用する他の情報処理装置に設定された識別情報を前記他の情報処理装置から取得する情報取得処理と、前記情報取得処理により取得した前記識別情報に基づいて、前記OSの起動又は前記OSにより使用可能な機能についての制限を制御するOS制御処理と、を行う。
【0007】
上記情報処理装置において、前記プロセッサは、前記OSプログラムの実行前に、前記情報取得処理において、前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件を満たしたと判定した場合、前記OSを起動させてもよい。
【0008】
上記情報処理装置において、前記プロセッサは、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件及び前記OSの所定の機能を使用可能とする条件を満たしたと判定した場合、前記OSを起動させるとともに前記所定の機能を使用可能に制御してもよい。
【0009】
上記情報処理装置において、前記プロセッサは、前記OSプログラムの実行中に、前記情報取得処理において、所定の時間間隔で前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記所定の機能を使用可能とする条件を満たさなくなったと判定した場合、前記所定の機能を使用不可能に制御してもよい。
【0010】
上記情報処理装置において、前記プロセッサは、前記OSプログラムの実行中に、前記情報取得処理において、所定の時間間隔で前記近距離無線通信を用いて前記他の情報処理装置から前記識別情報を取得し、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に基づいて前記OSの起動条件を満たさなくなったと判定した場合、前記OSを停止させてもよい。
【0011】
上記情報処理装置において、前記プロセッサは、前記OS制御処理において、前記情報取得処理により前記識別情報を取得した前記他の情報処理装置の数に基づいて、前記OSの起動条件を満たすか否かを判定してもよい。
【0012】
上記情報処理装置において、前記他の情報処理装置から送信される前記識別情報のそれぞれには、前記他の情報処理装置のそれぞれを使用する前記他のユーザの属性に応じた属性情報が含まれており、前記プロセッサは、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に含まれる属性情報に基づいて、前記OSの起動条件を満たすか否かを判定してもよい。
【0013】
上記情報処理装置において、前記プロセッサは、前記OS制御処理において、前記情報取得処理により前記識別情報を取得した前記他の情報処理装置の数に基づいて、前記所定の機能を使用可能とする条件を満たすか否かを判定してもよい。
【0014】
上記情報処理装置において、前記他の情報処理装置から送信される前記識別情報のそれぞれには、前記他の情報処理装置のそれぞれを使用する前記他のユーザの属性に応じた属性情報が含まれており、前記プロセッサは、前記OS制御処理において、前記情報取得処理により取得した前記識別情報に含まれる属性情報に基づいて、前記所定の機能を使用可能とする条件を満たすか否かを判定してもよい。
【0015】
上記情報処理装置において、前記プロセッサは、前記メモリに記憶された前記仮想化プログラムを実行することにより、前記識別情報を前記他の情報処理装置へ送信する際に暗号化する暗号化処理と、前記他の情報処理装置から受信した前記暗号化された前記識別情報を復号する復号処理と、を行ってもよい。
【0016】
上記情報処理装置において、前記プロセッサは、前記メモリに記憶された前記仮想化プログラムを実行することにより、前記暗号化処理により暗号化された前記識別情報と送信時間とを関連付けて前記他の情報処理装置へ前記近距離無線通信を用いて送信する送信処理と、前記他の情報処理装置で暗号化された前記識別情報を前記他の情報処理装置から前記近距離無線通信を用いて受信する受信処理と、を行い、前記復号処理において、前記受信処理により前記識別情報を受信した受信時間と、前記識別情報に関連付けられている前記送信時間との照合結果に基づいて、受信した前記識別情報の復号を許可してもよい。
【0017】
また、本発明の第2態様に係る、仮想マシンで実行されるOS(Operating System)プログラムとハードウェア上に前記仮想マシンを構成する仮想化プログラムとを記憶するメモリと、前記メモリに記憶された前記OSプログラム及び前記仮想化プログラムを実行するプロセッサと、を備える情報処理装置における制御方法は、前記プロセッサが、前記メモリに記憶された前記仮想化プログラムを実行することにより、近距離無線通信を用いて、他のユーザが使用する他の情報処理装置に設定された識別情報を前記他の情報処理装置から取得する情報取得処理ステップと、前記情報取得処理ステップにより取得した前記識別情報に基づいて、前記OSの起動又は前記OSにより使用可能な機能についての制限を制御するOS制御処理ステップと、を含む。
【発明の効果】
【0018】
本発明の上記態様によれば、情報処理装置の不正な使用を防止することができる。
【図面の簡単な説明】
【0019】
【
図1】第1の実施形態に係る情報処理システムの概略構成の一例を示す図。
【
図2】第1の実施形態に係る機能制限のポリシーの一例を示す図。
【
図3】第1の実施形態に係る仮想マシンが構成された情報処理装置の構成例を示す図。
【
図4】第1の実施形態に係る周囲に存在する他の情報処理装置の状況に変化が生じた場合の例を示す図。
【
図5】第1の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図6】第1の実施形態に係るハイパーバイザの機能構成の一例を示すブロック図。
【
図7】第1の実施形態に係るビーコンの送信パケットに含まれるデータの一例を示す図。
【
図8】第1の実施形態に係る機能制限処理の一例を示すフローチャート。
【
図9】第1の実施形態に係る機能制限処理の詳細例を示すフローチャート。
【
図10】第2の実施形態に係る「なりすまし」の対策例の説明図。
【
図11】第2の実施形態に係る「リプレイ攻撃」の対策例の説明図。
【
図12】第2の実施形態に係るハイパーバイザの機能構成の一例を示すブロック図。
【発明を実施するための形態】
【0020】
以下、図面を参照して、本発明の実施形態について説明する。
<第1の実施形態>
図1は、本実施形態に係る情報処理システム1の概略構成の一例を示す図である。情報処理システム1は、複数の情報処理装置10(図示する例では、4台の情報処理装置10a、10b、10c、10d)を含んで構成されている。情報処理装置10は、クラムシェル型(ノート型)のPC(Personal Computer;パーソナルコンピュータ)などのコンピュータ装置の一例である。なお、情報処理装置10は、クラムシェル型のPCに限られるものではなく、例えばタブレット型のPCまたはデスクトップ型のPCなどであってもよい。
【0021】
複数の情報処理装置10のそれぞれは、Bluetooth(登録商標)機能を利用して通信を行うビーコンを用いて、互いに情報の授受が可能である。なお、ビーコンは、近距離無線通信の一例であって、これに限定されるものではない。複数の情報処理装置10のそれぞれは、ビーコンで通信することにより、周囲に存在する情報処理装置10を認識して相互認証を行う。情報処理装置10は、この相互認証に基づいて、予め設定されたポリシー(制御条件)に従って情報処理装置10におけるOSのブート(起動)またはOSにより使用可能な機能を制限する。ビーコンを用いて互いに情報の授受が可能な情報処理装置10の数は、4台に限定されるものではなく、周囲の状況によって0台の場合もあれば、1台以上の任意の台数となり得る。
【0022】
図2は、本実施形態に係る機能制限のポリシーの一例を示す図である。この図では、例えば、会社内の同一部署に所属する複数の社員が同一の空間(例えば、同一の部屋)で仕事をする場合に適用する機能制限のポリシーの例を示している。上記空間は、複数の社員が共同で仕事を行うことが可能な場所(コワーキング スペース)であり、会社内であっても会社外であってもよい。図示する機能制限のポリシーには、同一の空間で仕事をする他の人が「0人」の場合には「OSブートしない」に設定されている。また、同一の空間で仕事をする他の人が「1人」の場合には「OSブートのみ」に設定されている。また、同一の空間で仕事をする他の人が「2人」の場合には「OSブート+USB(Universal Serial Bus)ポート使用可能」に設定されている。また、同一の空間で仕事をする他の人が「3人」の場合には「OSブート+USBポート使用可能+ネット通信可能」に設定されている。また、同一の空間で仕事をするのが「4人以上」の場合には「OSブート+全機能使用可能」に設定されている。
【0023】
ここで、本実施形態において「制限され得る機能」は、例えば、ネット通信またはIOデバイス(USB、Thunderbolt(登録商標)など)などのように外部との情報の送信または受信が可能な機能である。上述の「全機能使用可能」とは、情報処理装置10が有する「制限され得る機能」のすべてが使用可能な状態である。また、上述の「OSブートのみ」とは、一般的なアプリケーション(例えば、文書作成ソフト、表計算ソフト、画像編集ソフトなど)の実行は可能であるが、情報処理装置10が有する「制限され得る機能」のすべてが使用不可能であって、外部からの情報の書き込みおよび外部への情報の流出を防止する状態である。
【0024】
情報処理装置10は、ビーコンを用いて互いに情報の授受を行うことにより、周囲に存在する他の情報処理装置10を認識する。例えば、同一部署に所属している社員が使用する情報処理装置10のそれぞれの識別情報を予めグルーピングして登録しておくことにより、情報処理装置10は、ビーコンを用いて当該識別情報を互いに授受することで、周囲の人数を認識する。
【0025】
例えば、情報処理装置10は、他の情報処理装置10から識別情報を取得しない場合には、同一の空間で仕事をする他の人が「0人」であると認識する。また、情報処理装置10は、識別情報を取得した他の情報処理装置10の数が1台である場合には、同一の空間で仕事をする他の人が「1人」であると認識する。また、情報処理装置10は、識別情報を取得した他の情報処理装置10の数が2台である場合には、同一の空間で仕事をする他の人が「2人」であると認識する。また、情報処理装置10は、識別情報を取得した他の情報処理装置10の数が3台である場合には、同一の空間で仕事をする他の人が「3人」であると認識する。また、情報処理装置10は、識別情報を取得した他の情報処理装置10の数が4台以上である場合には、同一の空間で仕事をする他の人が「4人以上」であると認識する。そして、情報処理装置10は、
図2に示す機能制限のポリシーに従って制御する。
【0026】
ここで、本実施形態に係る情報処理装置10では、OSのブート及び機能を制御するために、仮想化プログラムにより構成された仮想マシンでOS(OSのプログラム)を実行させる。
【0027】
図3は、本実施形態に係る仮想マシンが構成された情報処理装置10の構成例を示す図である。図示する例では、ハイパーバイザ型の仮想化プログラムを適用した例を示している。図示するように、ハードウェア100上でハイパーバイザ200が実行されて仮想マシン300を構成する。仮想マシン300は、ハードウェア100に含まれる各部をエミュレートし、各部に対応する仮想ハードウェアを提供する。ハイパーバイザ200により構成される仮想マシン300で、OS及びOS上で実行可能なアプリ(アプリケーションプログラム)を実行することができる。このように、情報処理装置10は、ハイパーバイザ200上でOSを実行する。これにより、情報処理装置10は、電源の投入後、OSのブート前にハイパーバイザ200を実行し、ハイパーバイザ200によりBluetooth(登録商標)を使用可能な状態(イネーブル)にする。そして、ハイパーバイザ200がビーコンを用いて周囲に存在する他の情報処理装置10を認識して、OSのブート又はOSにより使用可能な機能についての制限を行うことができる。ハイパーバイザ200およびハイパーバイザ200によって直接管理されるデバイスや機能を、ハイパーバイザ200の管理下で動作するOSが使用不可能にしたり機能を制限したりすることは不可能である。つまり、OSがビーコンを使用不可にしたり別のPCを装ったりするなどの不正行為を行うことは極めて難しい。
【0028】
また、情報処理装置10は、OSのブート後(OSの実行中)も、ハイパーバイザ200がビーコンを用いて周囲に存在する他の情報処理装置10を認識することにより継続した相互認証を行い、周囲に存在する他の情報処理装置10の状況に変化があれば、動的にOSにより使用可能な機能についての制限を行う。
【0029】
図4は、周囲に存在する他の情報処理装置10の状況に変化が生じた場合の例を示す図である。この図は、
図1に示すように4台の情報処理装置10(10a、10b、10c、10d)が互いに識別情報を授受して相互認証している状態から、1台の情報処理装置10cが離脱したことを示している。離脱とは、ビーコンによる通信が届かない距離に離れること、或いは電源がオフされることを含む。
【0030】
この場合、3台の情報処理装置10a、10b、10dのそれぞれは、他の2台の情報処理装置10から識別情報を取得することになるため、機能制限のポリシーを「3人」の場合のポリシーから「2人」の場合のポリシーへ動的に変更する。
図2に示すように、「3人」の場合のポリシーは「OSブート+USBポート使用可能+ネット通信可能」であるが、「2人」の場合のポリシーは「OSブート+USBポート使用可能」である。情報処理装置10a、10b、10dは、「2人」の場合のポリシーに従って、ネット通信を可能な状態(イネーブル)から不可能な状態(ディセーブル)へ動的に変更し、OSが実行中の状態且つUSBポート使用可能な状態へと制御する。
【0031】
一方、情報処理装置10cは、他の情報処理装置10とのビーコンによる通信が届かない距離に離れた場合、他の情報処理装置10から識別情報を取得できなくなる。そのため、情報処理装置10cは、機能制限のポリシーを「3人」の場合のポリシーから「0人」の場合のポリシーへ変更し、「0人」の場合のポリシーに従ってOSを停止(シャットダウン)させるとともに、ハイパーバイザ20による待機を保つ。
【0032】
なお、
図2に示す機能制限のポリシーは、同一の空間で仕事をする人数(即ち、識別情報を取得する情報処理装置10の数)に応じてOSのブート及び機能を制限する例であるが、人数に代えて情報処理装置10を使用するユーザ(例えば、社員)の属性情報に基づいてOSのブート及び機能を制限するものとしてもよい。例えば、属性情報とは、役職である。なお、属性情報は、特定の部署、特定の担当職務などであってもよい。
【0033】
また、上記では、会社内の同一部署に所属する複数の社員が同一の空間で仕事をする場合に適用する機能制限のポリシーについて説明したが、これに限られるものではない。例えば、同一のチーム、グループ、団体などに所属する構成員(メンバー)が同一の空間で情報処理装置10を使用する場合に適用する機能制限のポリシーとして、構成員の人数または属性情報(監督、リーダー、役職など)に応じてOSのブート及び機能を制限するものとしてもよい。
【0034】
なお、機密性の高い情報を扱う場合、会社などの所属先の場所から情報処理装置10自体を持ち出すのが厳しく、基本的に会社などの所属先の場所以外で所属先のデータにアクセスすることができないことがある。このような場合、例えば会社内の同一の部屋(コワーキング スペース)に複数の人数で情報処理装置10を使用するため、複数の情報処理装置10で相互認証を行い、1人では情報処理装置10を使用できないようにすることで、不正な使用を防止することができる。しかしながら、自宅でリモートワークする状況も増加しているため、情報処理装置10が自宅で使用される場合には、「0人」の場合の機能制限のポリシーを「OSブート」のみに設定してもよい。これにより、自宅で1人(他の人が「0人」)で情報処理装置10を使用する場合には、OSはブートして作業はできるもののUSBポート及びネット通信の使用をできないようにするため、データの持ち出しなどの不正な使用を防止することができる。
【0035】
以下の説明において、本実施形態に係る情報処理装置10(ハイパーバイザ200)がOSのブート又はOSにより使用可能な機能についての制限を制御する処理のことを、「機能制限処理」と称する。以下、情報処理装置10の具体的な構成について、詳しく説明する。
【0036】
[情報処理装置のハードウェア構成]
次に、
図5を参照して、情報処理装置10の主要なハードウェア構成について説明する。
図5は、本実施形態に係る情報処理装置10のハードウェア構成の一例を示すブロック図である。
【0037】
情報処理装置10は、CPU11と、メインメモリ12と、ビデオサブシステム13と、表示部14と、チップセット21と、BIOSメモリ22と、記憶媒体23と、オーディオシステム24と、LANアダプタ25と、USBコネクタ26と、近距離無線通信部27と、エンベデッドコントローラ31と、操作部32と、電源回路33とを備える。
【0038】
CPU11は、プログラム制御により種々の演算処理を実行し、情報処理装置10全体を制御している。例えば、CPU11は、OS(Operating System)やBIOS(Basic Input Output System)のプログラム、ハイパーバイザ200(仮想化プログラム)に基づく処理を実行する。
メインメモリ12は、CPU11の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップで構成される。
【0039】
ビデオサブシステム13は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、CPU11からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部14に描画データ(表示データ)として出力する。
【0040】
表示部14は、例えば、液晶ディスプレイや有機ELディスプレイであり、ビデオサブシステム13から出力された描画データ(表示データ)に基づく表示画面を表示する。
【0041】
チップセット21は、CPU11と各種デバイスとの橋渡しを行う。例えば、チップセット21は、USB、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI-Expressバス、及びLPC(Low Pin Count)バスなどのコントローラを備えており複数のデバイスが接続される。例えば、複数のデバイスとして、後述するBIOSメモリ22と、記憶媒体23と、オーディオシステム24と、LANアダプタ25と、USBコネクタ26と、ODD27と、エンベデッドコントローラ31とが含まれる。
【0042】
BIOSメモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROMなどの電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOSのプログラム、BIOSが利用する設定データなどを記憶する。
【0043】
記憶媒体23は、HDDまたはSSDなどを含んで構成される。例えば、記憶媒体23は、OS、仮想マシンを構成するハイパーバイザ200(仮想化プログラム)、各種ドライバ、各種サービス/ユーティリティ、アプリケーションなどの各種プログラム、及び各種プログラムが利用するデータなどを記憶する。
【0044】
オーディオシステム24は、不図示のマイク及びスピーカが接続され、音データの記録、再生、出力を行う。なお、マイク及びスピーカは、一例として、情報処理装置10に内蔵されている。
【0045】
LANアダプタ25は、有線または無線により、ネットワークを介して他の装置と通信を行う。ネットワークとは、例えば、インターネットや、携帯電話網、VPN(Virtual Private Network)網、専用通信回線網、WAN(Wide Area Network)、LAN(Local Area Network)、PSTN(Public Switched Telephone Network;公衆交換電話網)など、またはこれらの組み合わせによって構成される通信ネットワークである。
【0046】
USBコネクタ26は、USB規格に対応した各種機器(周辺機器)と接続するためのコネクタ(接続端子)である。USBコネクタ26は、チップセット21が備えるUSBコントローラと接続されており、USB規格に対応した各種機器(周辺機器)と接続可能なUSBポートとして構成されている。
【0047】
近距離無線通信部27は、所定の通信方式を用いて他の機器(例えば、他の情報処理装置10)と無線通信を行う。例えば、近距離無線通信部27は、Bluetooth(登録商標)による通信を行う。一例として、近距離無線通信部27は、BLE(Bluetooth Low Energy)の通信規格に対応したビーコンを用いて、情報処理装置10の識別情報を他の情報処理装置10へ送信する。また、近距離無線通信部27は、他の情報処理装置10からビーコンを用いて送信された他の情報処理装置10の識別情報を受信する。
【0048】
操作部32は、キーボードや、タッチパッド、電源ボタンなどを含んで構成されている。操作部32は、ユーザの操作に基づいて操作信号をエンベデッドコントローラ31へ出力する。なお、操作部32は、USBコネクタ26などを介して接続される外部機器であってもよい。外部機器としては、キーボードや、マウス、タッチパッドなどが挙げられる。
【0049】
電源回路33は、例えば、DC/DCコンバータ、充放電ユニット、AC/DCアダプタなどを含んで構成されている。例えば、電源回路33は、ACアダプタ(不図示)などの外部電源又はバッテリなどから供給される直流電圧を、情報処理装置10を動作させるために必要な複数の電圧に変換する。また、電源回路33は、エンベデッドコントローラ31からの制御に基づいて、情報処理装置10の各部に電力を供給する。
【0050】
エンベデッドコントローラ31は、情報処理装置10のシステムの状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視して制御するワンチップマイコン(One-Chip Microcomputer)である。エンベデッドコントローラ31は、不図示のCPU、ROM、RAM、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子を備える。エンベデッドコントローラ31のデジタル入出力端子には、例えば、操作部32、及び電源回路33などが接続されている。エンベデッドコントローラ31は、操作部32からの操作信号を受け取る。例えば、エンベデッドコントローラ31が電源ボタンへのユーザの操作に基づいて操作部32から操作信号を取得した場合、起動信号をCPU11へ送信する。また、エンベデッドコントローラ31は、電源回路33などの動作を制御する。
【0051】
[ハイパーバイザの機能構成]
情報処理装置10は、電源の投入に応じてBIOSによるPOST処理を実行し、次にハイパーバイザ200を実行する。ハイパーバイザ200は、近距離無線通信部27によるビーコンの通信機能をイネーブルに設定する。また、ハイパーバイザ200は、ハイパーバイザ200が実行されている間は、OSからビーコンをディセーブルできないように設定する。そして、ハイパーバイザ200は、OSのブート前もブート後も、ビーコンを用いた近距離無線通信を行うことにより、周囲との相互認証を継続して機能制限処理を行う。以下、機能制限処理を行うハイパーバイザ200の機能構成について詳しく説明する。
【0052】
図6は、本実施形態に係るハイパーバイザ200の機能構成の一例を示すブロック図である。CPU11がハイパーバイザ200(仮想化プログラム)を実行することにより実現されるハイパーバイザ200の機能構成として、送信制御部211、受信制御部212、情報取得部213、OS制御部214、リファレンステーブル215、及び制御テーブル216を備えている。
【0053】
送信制御部211は、情報処理装置10を使用する際の承認リクエストとして自身の識別情報を、ビーコンを用いて近距離無線通信部27を介して送信する。例えば、送信制御部211は、リファレンステーブル215を参照し、ビーコンを用いて自身の識別情報を送信する。
【0054】
図7は、ビーコンの送信パケットに含まれるデータの一例を示す図である。承認リクエストとして送信されるデータ(ビーコン情報)には、UUID、Major、Minor、TxPowerが含まれる。UUIDは固有の識別子であり、例えば相互認証の対象となる範囲(例えば、部署)を示す情報が格納される。Majorは、同一のUUIDを有する情報処理装置10(例えば、同一の部署に所属するユーザ)をグループ分けして識別するための識別情報であり、ユーザの属性情報(例えば、部長、課長、一般などの役職を示す情報)が格納される。Minorは、同一のUUID及び同一のMajorを有する情報処理装置10を個々に識別するための識別情報であり、例えば製品のシリアルナンバー(S/N)が格納される。なお、TxPowerは、信号強度が格納される。
【0055】
複数の情報処理装置10のそれぞれのリファレンステーブル215には、UUID、Major、Minorに格納する情報が予め設定されており、送信制御部211は、リファレンステーブル215を参照して承認リクエストを近距離無線通信部27から送信する。例えば、相互認証の対象となる情報処理装置10には同一のUUIDが設定されており、異なるUUIDの承認リクエストを受信しても、相互承認の対象からは除外される。同一のUUIDの承認リクエストの中でMinorの値が異なるものを計数すると、周辺に存在する相互承認の対象となる情報処理装置10の数がわかる。また、ユーザの属性情報(例えば、役職)に基づいて機能制限処理を行う場合には、同一のUUIDの承認リクエストの中でMajorに格納されている情報からユーザの属性情報(例えば、役職)がわかる。
【0056】
なお、
図7を参照して上述したUUID、Major、Minorに格納する情報は、一例であって、これに限られるものではない。
【0057】
図6に戻り、受信制御部212は、他の情報処理装置10からビーコンを用いて送信された承認リクエストを、近距離無線通信部27を介して受信する。即ち、受信制御部212は、他の情報処理装置10から送信された識別情報を、ビーコンを用いて受信する。
【0058】
情報取得部213は、ビーコンを用いて、他のユーザが使用する他の情報処理装置10に設定された識別情報を、当該他の情報処理装置から取得する。例えば、情報取得部213は、ビーコンを用いて受信制御部212により他の情報処理装置10から受信した承認リクエストの中から識別情報(UUID、Major、Minorなど)を取得する。
【0059】
OS制御部214は、情報取得部213により取得した識別情報に基づいて、OSのブート又はOSにより使用可能な機能についての制限を制御する機能制限処理を実行する。例えば、OS制御部214は、情報取得部213により取得した識別情報(UUID、Major、Minor)と、制御テーブル216に設定されている機能制限のポリシーとに基づいて、機能制限処理を実行する。
【0060】
制御テーブル216には、機能制限のポリシーが設定されている。例えば、制御テーブル216には、一例として
図2を参照して説明した機能制限のポリシーが設定されている。OS制御部214は、情報取得部213により取得した識別情報に基づいて、識別情報を取得した他の情報処理装置10の数(相互認証の対象となる情報処理装置10の数)を検出し、機能制限のポリシーに従って機能制限処理を実行する。
【0061】
例えば、情報取得部213は、OSのブート前(OSプログラムの実行前)に、ビーコンを用いて他の情報処理装置10から受信した承認リクエストから識別情報を取得する。そして、OS制御部214は、情報取得部213により取得した識別情報に基づいて、識別情報(承認リクエスト)を取得した他の情報処理装置10の数(相互認証の対象となる情報処理装置10の数)を検出する。そして、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数と機能制限のポリシーとに基づいてOSのブート条件及びOSの所定の機能を使用可能とする条件を満たしたか否かを判定する。所定の機能とは、例えば、USBポート、ネット通信、或いは全機能などである。
【0062】
OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が0台の場合、OSのブート条件を満たしていないと判定し、OSのブートを禁止する。また、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が1台の場合、OSのブート条件のみを満たしたと判定し、OSをブートさせる。このとき、OS制御部214は、OSをブートさせるものの、例えばUSBポート及びネット通信などの機能は使用不可能に制御する。
【0063】
OS制御部214は、USBポートを使用不可能に制御する場合、チップセット21のUSBコントローラの機能をディセーブルに設定する、あるいは、仮想化によってUSBデバイスの存在をOSに見せないようにする。一方、OS制御部214は、USBポートを使用可能に制御する場合、チップセット21のUSBコントローラの機能をイネーブルに設定する、あるいは、仮想化されたUSBデバイスをOSに使用可能に提供する。また、OS制御部214は、ネット通信を使用不可能に制御する場合、LANアダプタ25の機能をディセーブルに設定する、あるいは、仮想化によってネットワークデバイスの存在をOSに見せないようにする。一方、OS制御部214は、ネット通信を使用可能に制御する場合、LANアダプタ25の機能をイネーブルに設定する、あるいは、仮想化されたネットワークデバイスをOSに使用可能に提供する。OS制御部214は、いずれの機能もディセーブルに設定した場合、OSからイネーブルに設定を変更することができないように禁止する。
【0064】
また、OS制御部214は、OSのブート条件及びOSの所定の機能を使用可能とする条件を満たしたと判定した場合、OSをブートさせるとともに所定の機能を使用可能に制御する。
【0065】
例えば、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が2台の場合、OSのブート条件とUSBポートを使用可能とする条件を満たしたと判定し、OSをブートさせるとともにUSBポートを使用可能に制御する。また、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が3台の場合、OSのブート条件とUSBポート及びネット通信を使用可能とする条件を満たしたと判定し、OSをブートさせるとともにUSBポート及びネット通信を使用可能に制御する。また、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が4台以上の場合、OSのブート条件とOSによる全機能を使用可能とする条件を満たしたと判定し、OSをブートさせるとともに全機能を使用可能に制御する。
【0066】
また、OSの起動後(OSプログラムの実行中)も、情報取得部213は、所定の時間間隔(例えば、30秒間隔などの一定の時間間隔)でビーコンを用いて他の情報処理装置10から識別情報を取得する。そして、OS制御部214は、情報取得部213により取得した識別情報に基づいて所定の機能を使用可能とする条件を満たさなくなったと判定した場合、所定の機能を使用不可能に制御する。
【0067】
例えば、OS制御部214は、OSの起動後(OSプログラムの実行中)に、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が3台から2台になった場合、ネット通信を使用可能とする条件を満たさなくなったと判定し、ネット通信を使用不可能に制御する。また、OS制御部214は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が2台から1台になった場合、USBポートを使用可能とする条件を満たさなくなったと判定し、USBポートを使用不可能に制御する。
【0068】
なお、OS制御部214は、OSの起動後(OSプログラムの実行中)に、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が1台から2台になった場合、USBポートを使用可能とする条件を満たしたと判定し、USBポートを使用不可能な状態から使用可能な状態へ制御する。同様に、OS制御部214は、OSの起動後(OSプログラムの実行中)に、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が2台から3台になった場合、ネット通信を使用可能とする条件を満たしたと判定し、ネット通信を使用不可能な状態から使用可能な状態へ制御する。
【0069】
また、OS制御部214は、OSの起動後(OSプログラムの実行中)に、情報取得部213により取得した識別情報に基づいてOSのブート条件を満たさなくなったと判定した場合、OSを停止(シャットダウン)させる。例えば、OS制御部214は、OSの起動後(OSプログラムの実行中)に、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が0台になった場合、OSのブート条件を満たさなくなったと判定し、OSを停止(シャットダウン)させるとともに、ハイパーバイザ20による待機を保つ。
【0070】
なお、機能制限のポリシーがユーザの属性情報(例えば、役職)に基づいてOSのブート及び機能を制限するものである場合、OS制御部214は、ビーコンを用いて他の情報処理装置10から取得した識別情報に含まれる属性情報に基づいて、OSのブート条件を満たすか否か、または所定の機能を使用可能とする条件を満たすか否かを判定する。
【0071】
[機能制限処理の動作]
次に、機能制限処理の動作について説明する。
図8は、本実施形態に係る機能制限処理の一例を示すフローチャートである。
【0072】
(ステップS101)情報処理装置10の電源が投入(電源オン)されると、CPU11は、BIOSメモリ22からBIOSのプログラムを読み込み、BIOSによるPOST(Power On Self Test)処理を実行する。そして、ステップS103の処理へ進む。
【0073】
(ステップS103)CPU11は、BIOSによるPOST処理が終了すると、BIOSメモリ22からハイパーバイザ200(仮想化プログラム)を読み込み実行する。ハイパーバイザ200は、少なくとも近距離無線通信部27によるビーコンの通信機能をイネーブルに設定する。そして、ステップS105の処理へ進む。
【0074】
(ステップS105)ハイパーバイザ200は、ビーコンを用いて承認リクエストを送信する。また、ハイパーバイザ200は、他の情報処理装置10からビーコンを用いた承認リクエストがあった場合、その承認リクエストを、近距離無線通信部27を介して受信する。
【0075】
(ステップS107)ハイパーバイザ200は、承認リクエストを受信した場合、承認リクエストから識別情報を取得し、ステップS109の処理へ進む。また、ハイパーバイザ200は、承認リクエストを受信しない場合には、識別情報を取得せずにステップS109の処理へ進む。
【0076】
(ステップS109)ハイパーバイザ200は、ステップS107で取得した識別情報に基づいてOSのブート条件及びOSの所定の機能を使用可能とする条件を満たしたか否かを判定する。例えば、ハイパーバイザ200は、識別情報(承認リクエスト)を取得した他の情報処理装置10の数(相互認証の対象となる情報処理装置10の数)を検出し、識別情報(承認リクエスト)を取得した他の情報処理装置10の数と機能制限のポリシー(
図2参照)とに基づいてOSのブート条件及びOSの所定の機能を使用可能とする条件を満たしたか否かを判定する。
【0077】
(ステップS111)ハイパーバイザ200は、ステップS109(具体的には、
図2に示す判定処理)による判定結果に基づいて、OSのブート及び機能を制御する。
【0078】
ここで、
図9を参照して、ステップS109及びステップS111の処理についての詳細を説明する。
図9は、本実施形態に係る機能制限処理の詳細例を示すフローチャートである。
【0079】
(ステップS201)ハイパーバイザ200は、識別情報(承認リクエスト)を1台以上から取得したか否かを判定する。ハイパーバイザ200は、1台以上から取得していないと判定した場合(NO)、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が0台である。そのため、ハイパーバイザ200は、「0人」の場合の機能制限のポリシーを適用し、OSのブート条件を満たしていない(OSブートしない)と判定する(ステップS203)。よって、ハイパーバイザ200は、OSのブートを禁止する(
図1のステップS111)。一方、ハイパーバイザ200は、1台以上から取得したと判定した場合(YES)、ステップS205へ進む。
【0080】
(ステップS205)ハイパーバイザ200は、識別情報(承認リクエスト)を2台以上から取得したか否かを判定する。ハイパーバイザ200は、2台以上から取得していないと判定した場合(NO)、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が1台である。そのため、ハイパーバイザ200は、「1人」の場合の機能制限のポリシーを適用し、OSのブート条件のみを満たしたと判定する(ステップS207)。よって、ハイパーバイザ200は、OSをブートさせるものの、例えばUSBポート及びネット通信などの機能は使用不可能に制御する(
図1のステップS111)。一方、ハイパーバイザ200は、2台以上から取得したと判定した場合(YES)、ステップS209へ進む。
【0081】
(ステップS209)ハイパーバイザ200は、識別情報(承認リクエスト)を3台以上から取得したか否かを判定する。ハイパーバイザ200は、3台以上から取得していないと判定した場合(NO)、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が2台である。そのため、ハイパーバイザ200は、「2人」の場合の機能制限のポリシーを適用し、OSのブート条件とUSBポートを使用可能とする条件を満たしたと判定する(ステップS211)。よって、ハイパーバイザ200は、OSをブートさせるとともにUSBポートを使用可能に制御する(
図1のステップS111)。一方、ハイパーバイザ200は、3台以上から取得したと判定した場合(YES)、ステップS213へ進む。
【0082】
(ステップS213)ハイパーバイザ200は、識別情報(承認リクエスト)を4台以上から取得したか否かを判定する。ハイパーバイザ200は、4台以上から取得していないと判定した場合(NO)、識別情報(承認リクエスト)を取得した他の情報処理装置10の数が3台である。そのため、ハイパーバイザ200は、「3人」の場合の機能制限のポリシーを適用し、OSのブート条件とUSBポート及びネット通信を使用可能とする条件を満たしたと判定する(ステップS215)。よって、ハイパーバイザ200は、OSをブートさせるとともにUSBポート及びネット通信を使用可能に制御する(
図1のステップS111)。一方、ハイパーバイザ200は、4台以上から取得したと判定した場合(YES)、「4人以上」の場合の機能制限のポリシーを適用し、OSのブート条件とOSによる全機能を使用可能とする条件を満たしたと判定する(ステップS217)。よって、ハイパーバイザ200は、OSをブートさせるとともに全機能を使用可能に制御する(
図1のステップS111)。
【0083】
ハイパーバイザ200は、ステップS211においてOSのブート及び機能を制御すると、ステップS113へ進む。
【0084】
(ステップS113)ハイパーバイザ200は、情報処理装置10が電源オフされたか否かを判定する。例えば、ハイパーバイザ200は、ステップS111においてOSをブートさせた場合には、OSがシャットダウンされた場合に電源オフされたと判定する。また、ハイパーバイザ200は、ステップS111においてOSをブートさせていない場合には、電源が強制的にオフされた場合に電源オフされたと判定する。または、ハイパーバイザ200は、ステップS111においてOSをブートさせていない場合には、OSがブートしていない状態が一定時間(例えば、3分)以上続いた場合に電源オフさせる制御を行い、電源オフされたと判定してもよい。ハイパーバイザ200は、電源オフされていないと判定した場合(NO)、ステップS105に戻り、機能制限処理を継続する。一方、ハイパーバイザ200は、電源オフされたと判定した場合(YES)、機能制限処理を終了する。
【0085】
[第1の実施形態のまとめ]
以上説明してきたように、本実施形態に係る情報処理装置10は、仮想マシンで実行されるOSプログラムとハードウェア上に仮想マシンを構成するハイパーバイザ200(仮想化プログラムの一例)とを記憶する記憶媒体23(メモリの一例)と、上記OSプログラム及びハイパーバイザ200を実行するCPU11(プロセッサの一例)とを備えている。CPU11がハイパーバイザ200を実行することにより、ハイパーバイザ200は以下の処理を行う。ハイパーバイザ200は、ビーコン(近距離無線通信の一例)を用いて、他のユーザが使用する他の情報処理装置10に設定された識別情報を他の情報処理装置10から取得する情報取得処理を行う。また、ハイパーバイザ200は、情報取得処理により取得した識別情報に基づいて、OSの起動又はOSにより使用可能な機能についての制限を制御するOS制御処理を行う。
【0086】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、周囲のユーザによる相互認証が必要となるため、不正な使用を防止することができる。
【0087】
例えば、ハイパーバイザ200は、OSの起動前(OSプログラムの実行前)に、ビーコンを用いて他の情報処理装置10から識別情報を取得する。そして、ハイパーバイザ200は、取得した識別情報に基づいてOSの起動条件を満たしたと判定した場合、OSを起動させる。
【0088】
これにより、情報処理装置10は、OSの起動に周囲のユーザによる相互認証が必要となるため、不正な使用を防止することができる。
【0089】
また、ハイパーバイザ200は、取得した識別情報に基づいてOSの起動条件及びOSの所定の機能を使用可能とする条件を満たしたと判定した場合、OSを起動させるとともに所定の機能を使用可能(例えば、USBポートを使用可能またはネット通信を可能)に制御する。
【0090】
これにより、情報処理装置10は、所定の機能(例えば、USBポートまたはネット通信など)の使用に周囲のユーザによる相互認証が必要となるため、データの持ち出しなどの不正な使用を防止することができる。
【0091】
また、ハイパーバイザ200は、OSの起動後(OSプログラムの実行中)に、所定の時間間隔でビーコンを用いて他の情報処理装置10から識別情報を取得し、取得した識別情報に基づいて所定の機能を使用可能とする条件を満たさなくなったと判定した場合、所定の機能を使用不可能に制御する。
【0092】
これにより、情報処理装置10は、OSの起動後も継続して、所定の機能(例えば、USBポートまたはネット通信など)の使用に周囲のユーザによる相互認証が必要となるため、データの持ち出しなどの不正な使用を防止することができる。例えば、従来からあるユーザ認証の方法は、起動時あるいはログイン時のみ行われることが多く、認証後の周辺状況の変化により不正な使用の危険性が高まったこと等に対応できていなかったが、本実施形態によれば、起動後も継続して不正な使用を防止することができる。
【0093】
また、ハイパーバイザ200は、OSの起動後(OSプログラムの実行中)に、所定の時間間隔でビーコンを用いて他の情報処理装置10から識別情報を取得し、取得した識別情報に基づいてOSの起動条件を満たさなくなったと判定した場合、OSを停止(シャットダウンして、OSプログラムの実行を終了)させるとともに、ハイパーバイザ20による待機を保つ。
【0094】
これにより、情報処理装置10は、OSの起動後も継続して、OSの起動に周囲のユーザによる相互認証が必要となるため、不正な使用を防止することができる。
【0095】
ここで一例として、ハイパーバイザ200は、情報取得処理により識別情報を取得した他の情報処理装置10の数に基づいて、OSの起動条件を満たすか否かを判定する。
【0096】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、相互認証するユーザの数によってOSの起動が許可されるため、不正な使用を防止することができる。
【0097】
また、ハイパーバイザ200は、情報取得処理により識別情報を取得した他の情報処理装置10の数に基づいて、所定の機能を使用可能とする条件を満たすか否かを判定する。
【0098】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、相互認証するユーザの数によって所定の機能(例えば、USBポートまたはネット通信など)の使用が許可されるため、不正な使用を防止することができる。
【0099】
なお、他の情報処理装置10から送信される識別情報のそれぞれには、他の情報処理装置10のそれぞれを使用する他のユーザの属性に応じた属性情報が含まれている。ハイパーバイザ200は、情報取得処理により取得した識別情報に含まれる属性情報(例えば、役職)に基づいて、OSの起動条件を満たすか否かを判定してもよい。
【0100】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、相互認証するユーザの属性情報(例えば、役職)に基づいてOSの起動が許可されるため、不正な使用を防止することができる。
【0101】
また、ハイパーバイザ200は、情報取得処理により取得した前記識別情報に含まれる属性情報に基づいて、所定の機能を使用可能とする条件を満たすか否かを判定してもよい。
【0102】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、相互認証するユーザの属性情報(例えば、役職)に基づいて所定の機能(例えば、USBポートまたはネット通信など)の使用が許可されるため、不正な使用を防止することができる。
【0103】
また、本実施形態に係る情報処理装置10における制御方法は、ハイパーバイザ200(CPU11)が、ビーコン(近距離無線通信の一例)を用いて、他のユーザが使用する他の情報処理装置10に設定された識別情報を他の情報処理装置10から取得する情報取得処理ステップと、前記情報取得処理ステップにより取得した識別情報に基づいて、OSの起動又はOSにより使用可能な機能についての制限を制御するOS制御処理ステップと、を含む。
【0104】
これにより、情報処理装置10は、ユーザ個人(一人のユーザ)による認証ではなく、周囲のユーザによる相互認証が必要となるため、不正な使用を防止することができる。
【0105】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
ビーコンを用いて送信するデータは、その内容が誰にでも読めるため、「なりすまし」や「リプレイ攻撃」の対象になることがある。そこで、本実施形態では、「なりすまし」や「リプレイ攻撃」などの不正を防止する方法について説明する。
【0106】
(1)「なりすまし」について
例えば、ユーザAが2台目の情報処理装置10を使用して、ユーザBのUUIDでビーコンを発信することで、ユーザBのように見せかけることができる。この対策としては、予めグルーピングして登録されている相互認証の対象のユーザ(ユーザA、ユーザB)の公開鍵を共有しておき、ビーコンで送信するデータをそれぞれの秘密鍵で暗号化することにより、「なりすまし」を防ぐことができる。
【0107】
図10は、本実施形態に係る「なりすまし」の対策例の説明図である。
図10の(A)に示すように、情報処理装置10aにおいてユーザAのUUID(UUID_A)をユーザAの秘密鍵で暗号化して送信すると、ユーザBの情報処理装置10bでは、暗号化されているユーザAのUUID(UUID_A)を共有されているユーザAの公開鍵で復号することができる。同様に、情報処理装置10bにおいてユーザBのUUID(UUID_B)をユーザBの秘密鍵で暗号化して送信すると、ユーザAの情報処理装置10aでは、暗号化されているユーザBのUUID(UUID_B)を共有されているユーザBの公開鍵で復号することができる。
【0108】
一方、
図10の(B)に示すように、情報処理装置10bにおいてユーザAがユーザBになりすまし、ユーザBのUUID(UUID_B)をユーザAの秘密鍵で暗号化して情報処理装置10xから送信すると、ユーザAの情報処理装置10aでは、暗号化されているユーザBのUUID(UUID_B)を共有されているユーザBの公開鍵を用いても復号できないため、「なりすまし」を防止することができる。
【0109】
(2)「リプレイ攻撃」について
例えば、ユーザAが2台目の情報処理装置10を使用して、ユーザBのビーコンのデータをコピーして再送信すると、上記のように暗号化してもユーザBの公開鍵で復号することができてしまうため、ユーザBのように見せかけることができる。この対策としては、暗号化して送信するデータに送信時の時間情報を含め、当該データを受信したときの時間情報と、データに含まれる送信時の時間情報とを照合することにより、「リプレイ攻撃」を防ぐことができる。
【0110】
図11は、本実施形態に係る「リプレイ攻撃」の対策例の説明図である。
図11の(A)に示すように、情報処理装置10bにおいてユーザBのUUID(UUID_B)をユーザBの秘密鍵で暗号化して送信する際に、送信時の時間情報「Ts」を送信データに含める。情報処理装置10bから送信された暗号化されたUUID(UUID_B)をユーザAの情報処理装置10aで受信すると、受信時の時間情報「Tg」と送信データに含まれている送信時の時間情報「Ts」とは通信にかかった時間を除いて一致する。
【0111】
一方、
図11の(B)に示すように、情報処理装置10bから送信された暗号化されたUUID(UUID_B)をユーザAがCOPYして情報処理装置10xからユーザBになりすまして送信した場合、送信時の時間情報「Ts′」と、情報処理装置10aにおける受信時の時間情報「Tg」とが通信にかかった時間を除いて一致することになり、送信データに含まれている送信時の時間情報「Ts」と受信時の時間情報「Tg」とは一致しない。よって、送信データに含まれている送信時の時間情報「Ts」と受信時の時間情報「Tg」とを照合することにより、「リプレイ攻撃」を防止することができる。
【0112】
図12は、本実施形態に係るハイパーバイザ200Aの機能構成の一例を示すブロック図である。この図において、
図6に示す各部に対応する構成には、同一の符号を付しておりその説明を省略する。ハイパーバイザ200Aは、CPU11がハイパーバイザ200A(仮想化プログラム)を実行することにより実現される機能構成として、送信制御部211、受信制御部212、情報取得部213、OS制御部214、リファレンステーブル215、制御テーブル216、暗号化部217、及び復号部218を備えている。
【0113】
暗号化部217は、ビーコン用いて識別情報を他の情報処理装置10へ送信する際に暗号化する。例えば、暗号化部217は、ビーコンで送信する識別情報をそれぞれの秘密鍵で暗号化する暗号化処理を行う。
【0114】
送信制御部211は、暗号化部217により暗号化された識別情報を他の情報処理装置10へビーコンを用いて送信する送信処理を行う。受信制御部212は、他の情報処理装置10で暗号化された識別情報を他の情報処理装置10からビーコンを用いて受信する受信処理を行う。
【0115】
復号部218は、他の情報処理装置10から受信した暗号化された識別情報を復号する。例えば、予めグルーピングして登録されている相互認証の対象のユーザそれぞれの公開鍵を共有しておくことで、暗号化部217は、受信した暗号化された識別情報をそれぞれの公開鍵で復号する復号処理を行う。これにより、上述した「なりすまし」を防止することができる。
【0116】
また、送信制御部211は、暗号化部217により暗号化された識別情報と送信時間とを関連付けて他の情報処理装置10へビーコンを用いて送信してもよい。そして、復号部218は、受信制御部212によりビーコンを用いて他の情報処理装置10から識別情報を受信した受信時間と、受信した識別情報に関連付けられている送信時間との照合結果に基づいて、受信した識別情報の復号を許可してもよい。これにより、上述した「リプレイ攻撃」を防止することができる。
【0117】
以上、この発明の各実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の各実施形態において説明した各構成は、任意に組み合わせることができる。
【0118】
また、上記実施形態では、仮想マシン上でOSを実行させるための仮想化プログラムとしてハイパーバイザを例に示したが、仮想マシンを提供できるものであればハイパーバイザに限られるものではない。
【0119】
なお、上述した情報処理装置10は、内部にコンピュータシステムを有している。そして、上述した情報処理装置10が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理装置10が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
【0120】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理装置10が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0121】
また、上述した実施形態における情報処理装置10及びが備える各機能の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【0122】
1 情報処理システム、10 情報処理装置、11 CPU、12 メインメモリ、13 ビデオサブシステム、14 表示部、21 チップセット、22 BIOSメモリ、23 記憶媒体、24 オーディオシステム、25 LANアダプタ、26 USBコネクタ、27 近距離無線通信部、31 エンベデッドコントローラ、32 操作部、33 電源回路、100 ハードウェア、200,200A ハイパーバイザ、211 送信制御部、212 受信制御部、213 情報取得部、214 OS制御部、215 リファレンステーブル、216 制御テーブル、217 暗号化部、218 復号部、300 仮想マシン