(57)【特許請求の範囲】
【請求項１】
所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
前記所定のアプリケーションの正当性を検証する検証部と、
前記仮想マシン、前記検証部及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、を具備し、
前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、
前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理する
ことを特徴とする情報処理装置。
【請求項２】
前記検証部が前記所定のアプリケーションが正当であると判断した場合、前記所定のアプリケーションを用いて所定のデバイスにアクセスする実行部を設けた
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記仮想マシンモニタは、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻す
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記仮想マシンモニタは、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることで、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除する
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記検証部は、前記情報処理装置の外部装置に含まれる
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記実行部は、前記情報処理装置の外部装置に含まれる
ことを特徴とする請求項２記載の情報処理装置。
【請求項７】
前記所定のデバイスは、ＳＤカードである
ことを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記所定のデバイスは、前記情報処理装置にコンテンツを提供する外部のコンテンツサーバである
ことを特徴とする請求項１記載の情報処理装置。
【請求項９】
所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
前記所定のアプリケーションの正当性を検証する検証部と、
前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置の制御方法であって、
前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、
前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理する
ことを特徴とする制御方法。
【請求項１０】
情報処理装置に用いられる集積回路であって、
所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
前記所定のアプリケーションの正当性を検証する検証部と、
前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、
前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、
前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理する
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のアプリケーションが動作する仮想マシンを管理する仮想マシンモニタを有する情報処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずＨｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ（ＨＤ）画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
【０００３】
ここで、ディジタル化された音楽データや上記ＨＤ画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのコンテンツは不正な複製等から保護されて取り扱われなければならない。
【０００４】
そのため、これらのコンテンツは、ＣＰＲＭ（Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  Ｒｅｃｏｄｉｎｇ  Ｍｅｄｉａ）やＡＡＣＳ（Ａｄｖａｎｃｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｅｎｔ  Ｓｙｓｔｅｍ）などの著作権保護技術で保護されている。それら、著作権保護技術では、コンテンツを暗号化することによって保護しており、それらのコンテンツをユーザが利用するには、著作権保護技術に対応する端末でデータの復号を行う必要がある。
【０００５】
著作権保護技術に対応した端末では、暗号化されたコンテンツに対して復号処理を実施する暗号エンジンなどのセキュアデバイスを備えている。そのセキュアデバイスは不正な処理によって、復号が許可されていないコンテンツの復号を行わないように正しく操作される必要がある。
【０００６】
前述のセキュアデバイス操作を行うプログラムが正当であるか否かを判定する技術として、改ざん検出がある（例えば、特許文献１）。
【０００７】
特許文献１は、データを扱うプログラムが正当であるか否かを検出する技術であり、図１９を用いて簡単に説明を行う。図１９は、特許文献１のシーケンスを示す図である。
【０００８】
まず、ユーザなどの操作によって、処理が開始される。（Ｓ４１０）
次に、プログラムが入力データに対して処理を行い、処理済み情報を出力する。（Ｓ４１１）
次に、前述のプログラムに対して、ハッシュ関数を用いて、ハッシュ値（認証子）を作成する。（Ｓ４１２）
次に、図示していない検証部に、前述の処理済み情報と前述のハッシュ値（認証子）とを送付し、検証部が、送付されたハッシュ値（認証子）が、予め保持しているハッシュ値と一致するか否か判定する。一致する場合には、ハッシュ値に対応するプログラムが正当であると判断する。（Ｓ４１３）
そして、処理を終了する。（Ｓ４１４）
また、端末のデバイスが扱うデータを、適切に処理する技術として、例えば特許文献２がある。図２０と図２１を用いて簡単に説明を行う。
【０００９】
図２０は、特許文献２のソフトウエア構成図を示す図である。
【００１０】
特許文献２のソフトウエアは、ＶＭＭ（Ｖｉｒｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ、仮想マシンモニタ）４００と、汎用ＯＳ４０１とネットワーク対応アプリ４０２と、汎用ＯＳ  ＮＩＣプロキシ４０３と、リアルタイムＯＳ４０４と、リアルタイムＮＩＣプロキシ４０５と、リアルタイムＵＤＰ／ＩＰ４０６と、ＮＩＣドライバ４０７と、から構成される。
【００１１】
ＶＭＭ４００は、ＯＳ仮想化機能を提供する。汎用ＯＳ４０１とリアルタイムＯＳ４０４は、ＶＭＭ４００が提供する仮想化されたハードウエア上で動作するオペレーティングシステムである。
【００１２】
ネットワーク対応アプリ４０２は、ネットワーク処理を行う場合には、汎用ＯＳ  ＮＩＣプロキシ４０３にネットワーク処理を依頼する。そして、汎用ＯＳ  ＮＩＣプロキシ４０３は、リアルタイムＮＩＣプロキシ４０５に処理を依頼する。そして、リアルタイムＮＩＣプロキシ４０５は、リアルタイムＵＤＰ／ＩＰ４０６に処理を依頼する。リアルタイムＵＤＰ／ＩＰ４０６は、ＮＩＣドライバ４０７を利用して、図示していないネットワークインターフェースカード（ＮＩＣ、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を制御する。
【００１３】
また、リアルタイムＵＤＰ／ＩＰ４０６が、ネットワーク処理を行う場合にも、ＮＩＣドライバ４０７を利用してネットワークインターフェースカード（ＮＩＣ、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を制御する。
【００１４】
図２１は、ネットワークインターフェースカードからパケットデータ到着通知を受け取った場合のシーケンスを示す図である。
【００１５】
パケットデータの到着を検知したＮＩＣから、パケットデータ到着通知が割り込みの信号などによって通知される（Ｓ４００）。
【００１６】
次に、ＮＩＣドライバ４０７が、ネットワークインターフェースカードからデータを取得する。そして、リアルタイムＵＤＰ／ＩＰ４０６に、パケットデータを送付する。（Ｓ４０１）。
【００１７】
リアルタイムＵＤＰ／ＩＰ４０６は、パケットデータのポート領域に格納された番号が、リアルタイムＯＳ側のソフトウエアで使用するポートの番号であるか否か判定する。前述の番号が、リアルタイムＯＳ側のソフトウエアで使用するポートの番号である場合には、Ｓ４０３に遷移する。前述の番号が、リアルタイムＯＳ側のソフトウエアで使用する番号でない場合には、Ｓ４０４に遷移する。（Ｓ４０２）
Ｓ４０３では、リアルタイムＵＤＰ／ＩＰ４０６は、パケットデータをリアルタイムＯＳ側の適切なソフトウエアに送付すし、Ｓ４０５に遷移する。
【００１８】
ステップＳ４０４では、リアルタイムＵＤＰ／ＩＰ４０６は、パケットデータを、リアルタイムＮＩＣプロキシ４０５を経由して、汎用ＯＳ  ＮＩＣプロキシ４０３に送付する。汎用ＯＳ  ＮＩＣプロキシ４０３は、ネットワーク対応アプリ４０２にパケットデータを送付する。
【００１９】
そして、Ｓ４０５で処理を終了する。
【特許文献１】特開２００３―１８６５６１号公報（第８頁、図１等）
【特許文献２】特表２００７―５００３８１号公報（第１７頁、図１等）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかし、上記説明した従来技術では、以下のような問題が生じていた。
【００２１】
即ち、特許文献１の手法は、プログラムに対してハッシュ演算を行って、正当なプログラムであるか否かを判定する。
【００２２】
しかしながら、この手法では、不正なプログラムと正当なプログラムを差し替えることで、不正なプログラムが動作する場合でも、正当なプログラムであると判定されるという課題がある。
【００２３】
図１９を用いて、前述の課題を簡単に説明する。
【００２４】
まず、Ｓ４１１で、不正なプログラムが処理を行う。そして、Ｓ４１１からＳ４１２に遷移する前に、不正なプログラムと正当なプログラムを差し替える。そして、Ｓ４１２に遷移する。
【００２５】
Ｓ４１２では、差し替えられた正当なプログラムに対してハッシュ値（認証子）を生成する。そのため、正しいプログラムによる処理が行われたと判断されてしまう。
【００２６】
また、特許文献２の手法は、デバイスが扱うデータを、リアルタイムＯＳ側のソフトウエアか、または汎用ＯＳ側のソフトウエアかの、いずれで処理を行うかを判定するのみであり、アプリが正当なものであるかの確認は行っていない。
【００２７】
そのため、ネットワーク対応アプリ４０２がＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｋｅｃｔ  Ｌａｙｅｒ）等の安全な通信方式を用いなければならない場合であっても、不正なソフトが、汎用ＯＳ４０１上で動作して、ＳＳＬなしで通信を行うことが可能であるという課題がある。
【００２８】
本発明は、前述の課題を解決するものであり、所定のアプリケーションの正当性を判断した後に前記所定のアプリケーションが別の不正なアプリケーションに書換え、前記不正なアプリケーションによりデバイスが制御されるのを防止できる情報処理装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２９】
前記従来の課題を解決するために、本発明の一態様である情報処理装置は、所定のデバイスにアクセスする所定のアプリケーションが動作するワークエリア上に前記所定のアプリケーションを書換え可能なものとして管理する仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理することを特徴とする。
【発明の効果】
【００３０】
このような構成により、前記情報処理装置は、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
【００３１】
また、前記仮想マシンにより書換え可能な管理情報を、前記仮想マシンモニタが前記管理情報の中の特権情報を書換えることにより、前記仮想マシンによる前記所定のアプリケーションの書換えを不可能なものとするので、一旦前記仮想マシンモニタが前記特権情報を書換えると、前記仮想マシンモニタの方で前記仮想マシンによる前記管理情報の書換えを禁止できる。その結果、前記検証部が前記所定のアプリケーションが正当なものか否かを判断した後に前記所定のアプリケーションがワークエリア上で別のアプリケーションに書き換えられるのを確実に防止できる。
【００３２】
また、前記仮想マシンモニタは、前記管理情報の中の一部の情報である特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンモニタの方で前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。
さらに、前記管理情報の中の特権情報という既存の情報を書き換えることにより、前記仮想マシンによる前記管理情報の書換えを禁止するための別のデータ構造を不要とするので、書換え禁止にするための構成をシンプルにできる。
【００３３】
ここで、前記情報処理装置において、前記検証部が前記所定のアプリケーションが正当であると判断した場合、前記所定のアプリケーションを用いて所定のデバイスにアクセスする実行部を設けるとしてもよい。
【００３４】
この構成によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に、前記所定のアプリケーションが正当であるか否かを判断し、前記所定のアプリケーションを用いた所定のデバイスへのアクセスを実行することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられて、この不正なアプリケーションを用いて所定のデバイスがアクセスされるのを防止できる。
【００３５】
また、前記情報処理装置において、前記仮想マシンモニタは、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻すとしてもよい。
【００３６】
この構成によると、前記仮想マシンモニタに、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻させることにより、前記所定のアプリケーションによるアクセスが終了した後は前記所定のアプリケーションをワークエリアから消去できるので、処理後のアプリケーションによりワークエリアが無駄に占有されるのを防止できる。
【００４０】
また、前記情報処理装置において、前記仮想マシンモニタは、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることで、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するとしてもよい。
【００４１】
この構成によると、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。
【００４２】
また、前記情報処理装置において、前記検証部は、前記情報処理装置の外部装置に含まれるとしてもよい。
【００４３】
この構成によると、前記検証部は、前記情報処理装置の内部ではなく、前記情報処理装置の外部装置に含まれるものであってもよい。
【００４４】
ここで、前記実行部は、前記情報処理装置の外部装置に含まれるとしてもよい。
【００４５】
この構成によると、前記実行部は、前記情報処理装置の内部ではなく、前記情報処理装置の外部装置に含まれるものであってもよい。
【００４６】
ここで、前記所定のデバイスは、ＳＤカードであるとしてもよい。
【００４７】
ここで、前記所定のデバイスは、前記情報処理装置にコンテンツを提供する外部のコンテンツサーバであるとしてもよい。
【００４８】
また、本発明の別の一態様である情報処理装置の制御方法は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置において、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理することを特徴とする。
【００４９】
この態様によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
また、前記仮想マシンにより書換え可能な管理情報を、前記仮想マシンモニタが前記管理情報の中の特権情報を書換えることにより、前記仮想マシンによる前記所定のアプリケーションの書換えを不可能なものとするので、一旦前記仮想マシンモニタが前記特権情報を書換えると、前記仮想マシンモニタの方で前記仮想マシンによる前記管理情報の書換えを禁止できる。その結果、前記検証部が前記所定のアプリケーションが正当なものか否かを判断した後に前記所定のアプリケーションがワークエリア上で別のアプリケーションに書き換えられるのを確実に防止できる。
また、前記仮想マシンモニタは、前記管理情報の中の一部の情報である特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンモニタの方で前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。
さらに、前記管理情報の中の特権情報という既存の情報を書き換えることにより、前記仮想マシンによる前記管理情報の書換えを禁止するための別のデータ構造を不要とするので、書換え禁止にするための構成をシンプルにできる。
【００５２】
また、本発明の別の一態様である情報処理装置の集積回路は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断し、前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理することを特徴とする。
【００５３】
この態様によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
また、前記仮想マシンモニタは、前記管理情報の中の一部の情報である特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンモニタの方で前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。
さらに、前記管理情報の中の特権情報という既存の情報を書き換えることにより、前記仮想マシンによる前記管理情報の書換えを禁止するための別のデータ構造を不要とするので、書換え禁止にするための構成をシンプルにできる。
【発明を実施するための最良の形態】
【００５４】
以下に、本発明の実施の形態について、図面を参照しながら説明を行う。
【００５５】
（実施の形態１）
＜実施の形態１のソフトウエアの構成の説明＞
図１は、本発明の実施の形態１に関わるソフトウエア構成を示す図である。
【００５６】
実施の形態１の情報処理装置は、仮想マシンモニタであるセキュアＶＭＭ１００と、汎用ＯＳ１０１と、アプリケーションＡ  １０２と、アプリケーションＢ  １０３と、管理専用ＯＳ１０４と、検出部であるデバイスアクセス要求判定部１０９及び実行部であるセキュアドライバ１１０を含むセキュアデバイス１０５と、検証部であるアプリ特定部１０６と、から構成される。仮想マシンは、汎用ＯＳ１０１と、アプリケーションＡ１０２と、アプリケーションＢ１０３を含む。
【００５７】
セキュアＶＭＭ１００は、ＯＳ仮想化機能を提供する。汎用ＯＳ１０１と管理専用ＯＳ１０４は、セキュアＶＭＭ１００が提供する仮想化されたハードウエア上で動作するオペレーティングシステムである。
【００５８】
セキュアＶＭＭ１００は、動作アプリ格納メモリ特定部１０７と、動作アプリメモリロック部１０８とを備える。
【００５９】
アプリケーションＡ  １０２とアプリケーションＢ  １０３は、ユーザに対してサービスを提供するアプリケーションであり、必要に応じて、図示していないセキュアデバイスにアクセスする。
【００６０】
セキュアデバイスドライバ１０５は、図示してないセキュアデバイスを制御するデバイスドライバであり、デバイスアクセス要求判定部１０９と、デバイスアクセス制御部１１０を備える。
【００６１】
アプリ特定部１０６は、認証子作成部１１１と、アプリ判定部１１２を備える。
【００６２】
＜セキュアＶＭＭの構成要素の説明＞
動作アプリ格納メモリ特定部１０７は、図示していないセキュアデバイスへのアクセスを行う汎用ＯＳ１０１上のアプリケーションを特定する。詳細は後述する。
【００６３】
動作アプリメモリロック部１０８は、図示していないセキュアデバイスへのアクセスを行う汎用ＯＳ１０１上のアプリケーションに対応するページテーブルに対して、制御を行う。詳細は後述する。
【００６４】
＜セキュアデバイスドライバの構成要素の説明＞
デバイスアクセス要求判定部１０９は、図示していないセキュアデバイスへのアクセス要求を検出する。詳細は後述する。
【００６５】
デバイスアクセス制御部１１０は、図示していないセキュアデバイスへのアクセス制御を行う。詳細は後述する。
【００６６】
＜アプリ特定部の構成要素の説明＞
認証子作成部１１１は、図示していないセキュアデバイスに対して、汎用ＯＳ１０１上のアプリケーションの認証子を作成する。詳細は後述する。
【００６７】
アプリ判定部１１２は、前述のアプリケーションの認証子を用いて、アプリケーションが正当であるか否かを判定する。詳細は後述する。
【００６８】
＜実施の形態１のハードウエアの構成の説明＞
図２は、図１のソフトウエアが動作する情報処理装置１２０のハードウエア構成図である。
【００６９】
図２において、情報処理装置１２０は、ＣＰＵ１２１と、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１２２と、通常メモリ１２３と、保護メモリ１２４と、セキュアデバイス１２６と、不揮発性記憶装置１３４が、バス１２５を介して互いに接続している。
【００７０】
情報処理装置１２０は、さらに、図２に図示されていない入出力部や補助記憶装置などを備えているが、これらは本発明の本質ではないので説明を省略する。
【００７１】
以下、情報処理装置１３０の各構成要素の詳細について説明する。
【００７２】
＜情報処理装置のハードウエアの構成要素の説明＞
ＣＰＵ１２１は、通常メモリ１２３や保護メモリ１２４に格納されたプログラム等に含まれる命令コードを実行することにより、情報処理装置１２０全体の動作を制御する。
【００７３】
ＭＭＵ１２２は、図示していないページテーブルを参照して、ＣＰＵ１２１に対して、物理アドレス番号を論理アドレス番号に変換する機能を提供する。さらに、ＭＭＵ１２２は、図示していないページテーブルを参照して、ＣＰＵ１２１の特権状態に応じて、メモリへの書込み操作や読み込み操作などのアクセス制御機能を提供する。
【００７４】
不揮発性記憶装置１３４は、アプリケーションＡ  １２７と、アプリケーションＢ  １２８とを格納する不揮発性の記憶装置である。具体的には、ハードディスクやフラッシュメモリなどである。
【００７５】
通常メモリ１２３は、不揮発性記憶装置１３４に格納されているアプリケーションＡ  １２７と、アプリケーションＢ  １２８と、汎用ＯＳ１２９とをロードして、実行される揮発性記憶装置である。本発明のワークエリアに当たる。
【００７６】
保護メモリ１２４は、セキュアデバイスドライバ１３０と、アプリ特定部１３１と、管理専用ＯＳ１３２と、セキュアＶＭＭ１３３とを格納する記憶装置である。
【００７７】
セキュアデバイス１２４は、コンテンツなどの保護すべき情報を取り扱うデバイスであり、不正なアプリケーションからのアクセスを防止する必要があるデバイスである。例えば、暗号化コンテンツの復号などを行う暗復号回路などである。他の例として、暗号化したコンテンツを記録したフラッシュメモリ等の記録媒体や、復号化されたコンテンツが保持されるメモリなどが考えられる。また、セキュアデバイスは情報処理装置に内蔵されたものに限らず、ＳＤカード等の外部の記録装置であってもよい。
【００７８】
さらに、保護メモリ１２４とセキュアデバイス１２５は、保護メモリ１２４に格納されたソフトウエアのみがアクセス可能となるように制御される。
【００７９】
＜汎用ＯＳとアプリケーションとの関連性の説明＞
汎用ＯＳ１２９は、汎用ＯＳ１２９上で動作するアプリケーションＡ  １２７とアプリケーションＢ  １２８に対応して、それぞれページテーブル１３５とページテーブル１３６を保持する。なお、ページテーブルに関する詳細は後述する。
【００８０】
＜ＯＳ仮想化機能を用いた場合のメモリ空間の説明＞
図３は、情報処理装置１２０の物理メモリ空間１４０を示す図である。
【００８１】
情報処理装置１２０の物理メモリ空間１４０は、通常メモリに対応するメモリ空間１４１と、予約領域Ａ  １４２と、保護メモリに対応するメモリ空間１４３と、予約領域Ｂ  １４４とで構成される。情報処理装置の物理メモリ空間１４０は、物理メモリ番地で一意に特定する事が可能である。
【００８２】
セキュアＶＭＭ１００は、情報処理装置の物理メモリ空間１４０を、汎用ＯＳ１０１に割り当てられた物理メモリ空間と、管理専用ＯＳ１０４に割り当てられた物理メモリ空間に分割して管理する。
【００８３】
汎用ＯＳ１０１に割り当てられた物理メモリ空間は、通常メモリに対応するメモリ空間１４１と、予約領域Ａ  １４２とで構成される。
【００８４】
管理専用ＯＳ１０４に割り当てられた物理メモリ空間は、保護メモリに対応するメモリ空間１４３と、予約領域Ｂ  １４４とで構成される。
【００８５】
セキュアＶＭＭ１００は、汎用ＯＳ１０１と管理専用ＯＳ１０４に対して、それぞれのメモリ空間を、仮想物理アドレス空間として参照させる。汎用ＯＳ１０１と管理専用ＯＳ１０４は、それぞれの仮想物理アドレス空間に対して、仮想物理アドレス番号を用いて、読み込み操作及び書込み操作を行う。
【００８６】
＜仮想物理メモリ空間と論理メモリ空間の説明＞
図４は、仮想物理メモリ空間と論理メモリ空間との対応関係を示す一例の図である。なお、図４の仮想物理メモリ空間は、汎用ＯＳが読み込み操作及び書込み操作を行う仮想物理メモリ空間である。
【００８７】
通常メモリ１５１は、ページと呼ばれる固定長サイズに分割されて管理される。
【００８８】
ページテーブル１５３は、複数のページをまとめて管理し、論理アドレス空間を構築する。さらに、１つのページテーブルが、１つのアプリケーションに対応する。
【００８９】
アプリケーションは、論理アドレス空間に対して、論理アドレス番号を用いて読み込み操作及び書込み操作を行う。
【００９０】
＜ページテーブルの構成要素の説明＞
図５は、ページテーブル１６０のデータ構造の一例を示す図である。
【００９１】
ページテーブル１６０は、ページに対応する各エントリに対して、ページ番号１６１と、論理アドレス番号１６２と、仮想物理アドレス番号１６３と、特権情報１６４と、書込み操作許可・不許可情報１６５と、読込み操作許可・不許可情報１６６と、その他の情報１６７と、から構成されるデータ構造である。
【００９２】
ページテーブル番号１６１は、ページの番号を格納するフィールドである。
【００９３】
論理アドレス番号１６２は、ＭＭＵ１２２が仮想物理アドレス番号を論理アドレス番号に変換する際の対応する論理アドレス番号を格納するフィールドである。本フィールドは、各仮想物理アドレス番号に対応する論理アドレス番号それぞれを格納していてもよいし、ページの先頭論理アドレス番号が格納していてもよい。
【００９４】
仮想物理アドレス番号１６３は、ＭＭＵ１２２が仮想物理アドレス番号を論理アドレス番号に変換する際の対応する仮想物理アドレス番号を格納するフィールドである。本フィールドは、ページの先頭仮想物理アドレス番号が格納されていてもよい。
【００９５】
特権情報１６４は、ＭＭＵ１２２がメモリへのアクセス制御を行う場合に参照する特権情報に関する情報を格納するフィールドである。詳細は後述する。
【００９６】
書込み操作許可・不許可情報１６５は、ページテーブル１６０に対応するアプリケーションが、ページへの書込み操作を行ってもよいか否かを示すフィールドである。本フィールドには、許可または不許可を示す情報が格納される。
【００９７】
読込み操作許可・不許可情報１６６は、ページテーブル１６０に対応するアプリケーションが、ページへの読込み操作を行ってもよいか否かを示すフィールドである。本フィールドには、許可または不許可を示す情報が格納される。
【００９８】
その他の情報１６７は、ページのサイズや、ページのダーティ情報や、前述の属性以外の情報などが格納されているフィールドである。
【００９９】
また、ページテーブルの各フィールドの情報の変更は、ＣＰＵ１２１の特権状態がリング０の場合のみ可能である。なお、特権状態に関しては、詳細は後述する。
【０１００】
なお、図５で示したページテーブル１６０は論理的なデータ構造であり、例えば、公知の階層的なページテーブル構造を用いてもよい。
【０１０１】
なお、図５で示したページテーブル１６０では、各ページ毎に特権情報が割り当てられているが、１つのページテーブルに対して１つの特権情報を割り当てても良い。その場合には、前記の１つの特権情報は、別のデータ構造やレジスタで管理しても良い。
【０１０２】
図５で示したページテーブル１６０では、書込み操作許可・不許可情報１６５は、アプリケーションからの書込みが可能か否かを示すフィールドであるが、それ以外であってもよい。例えば、その他の情報１６７に格納されてている書込み操作主体を示す情報と組み合わせて、前記主体が書込み操作が可能か否かを示すフィールドであってもよい。
【０１０３】
図５で示したページテーブル１６０では、読込み操作許可・不許可情報１６６は、アプリケーションからの読込みが可能か否かを示すフィールドであるが、それ以外であってもよい。例えば、その他の情報１６７に格納されてている読込み操作主体を示す情報と組み合わせて、前記主体が読込み操作が可能か否かを示すフィールドであってもよい。
【０１０４】
＜ＣＰＵの特権状態によるメモリアクセス制御の説明＞
図６は、ＣＰＵ１２１が、通常メモリ１２３及び保護メモリ１２４へアクセスを行った場合のアクセス制御を示す表である。
【０１０５】
図６のアクセス制御は、ＣＰＵ１２１で実現しても良いし、ＭＭＵ１２２で実現しても良い。
【０１０６】
ＣＰＵ１２１には、リング０、リング１、リング２、リング３という特権状態がある。ＣＰＵ１２１は、特権命令を実行することで、各特権状態を遷移する。
【０１０７】
特権状態リング０であるＣＰＵ１２１で動作する主体であるソフトウエアは、ページテーブル１６０の特権情報１６４フィールドが、リング０とリング１とリング２とリング３のページにアクセスすることができる。また、特権情報１６４フィールドがリング０とリング１とリング２とリング３のページテーブルの内容を書き換えることができる。
【０１０８】
特権状態リング１であるＣＰＵ１２１で動作する主体であるソフトウエアは、ページテーブル１６０の特権情報１６４フィールドが、リング１とリング２とリング３のページにアクセスすることができる。また、特権情報１６４フィールドがリング１とリング２とリング３のページテーブルの内容を書き換えることができる。特権状態リング１であるＣＰＵ１２１で動作する主体であるソフトウエアが、ページテーブル１６０の特権情報１６４フィールドが、リング０のページにアクセスした場合には、ＣＰＵ１２１またはＭＭＵ１２２が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
【０１０９】
特権状態リング２であるＣＰＵ１２１で動作する主体であるソフトウエアは、ページテーブル１６０の特権情報１６４フィールドが、リング２とリング３のページにアクセスすることができる。また、特権情報１６４フィールドがリング２とリング３のページテーブルの内容を書き換えることができる。特権情報リング２であるＣＰＵ１２１で動作する主体であるソフトウエアが、ページテーブル１６０の特権情報１６４フィールドが、リング０とリング１のページにアクセスした場合には、ＣＰＵ１２１またはＭＭＵ１２２が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
【０１１０】
特権状態リング３であるＣＰＵ１２１で動作する主体であるソフトウエアは、ページテーブル１６０の特権情報１６４フィールドが、リング３のページにアクセスすることができる。また、特権情報１６４フィールドがリング３のページテーブルの内容を書き換えることができる。特権状態リング３であるＣＰＵ１２１で動作する主体であるソフトウエアが、ページテーブル１６０の特権情報１６４フィールドが、リング０とリング１とリング２のページにアクセスした場合には、ＣＰＵ１２１またはＭＭＵ１２２が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
【０１１１】
また、情報処理装置１２０において、リング０にはセキュアＶＭＭ１００が割り当てられ、リング１には管理専用ＯＳ１０４が割り当てられ、リング２には汎用ＯＳ１０１が割り当てられ、リング３には汎用ＯＳ上で動作するアプリケーションが割り当てられている。
【０１１２】
なお、特権の割り当て方法は、前述以外のリングの割り当てには限らない。汎用ＯＳ１０１と汎用ＯＳ上で動作するアプリケーションが割り当てられた特権が、セキュアＶＭＭ１００と管理専用ＯＳ１０４が割り当てられた特権より低くなるように制御できれば他の割り当て方法を用いてもよい。
【０１１３】
＜アプリケーションのロード処理の説明＞
図２２は、汎用ＯＳによるアプリケーションのロード処理を示すシーケンス図である。
【０１１４】
図示されていないインターフェースによるユーザの指示などによって、アプリケーションのロード処理が開始される。（Ｓ３００）
汎用ＯＳ１８０は、不揮発性記憶装置１３４から、アプリケーションが格納されているファイルを読み込む。（Ｓ３０１）
汎用ＯＳ１８０は、ファイルのヘッダファイルに格納されている必要メモリサイズなどを参照して、アプリケーションに割り当てるメモリサイズを算出し、通常メモリ１２３から必要なメモリ領域を確保する。（Ｓ３０２）
汎用ＯＳ１８０は、アプリケーションに対応するページテーブルを内部に作成する。（Ｓ３０３）
汎用ＯＳ１８０は、ステップＳ３０２で確保したメモリ領域に、ステップＳ３０１で読み込んだファイルからアプリケーションのプログラム（コードとデータ）をロードする。（Ｓ３０４）
そして、汎用ＯＳ１８０は、アプリケーションのロード処理を終了する。（Ｓ３０５）
なお、ステップＳ３０４とステップＳ３０５は、逆の順序で実施されてもよい。
【０１１５】
＜ＯＳによるページテーブルとアプリケーションの操作の説明＞
図７は、汎用ＯＳによるページテーブルとアプリケーションの操作の一例を示す図である。図７において、汎用ＯＳ１８０上で、アプリケーションＡ  １８３とアプリケーションＢ  １８４が動作している。
【０１１６】
汎用ＯＳ１８０は、アプリケーションＡ  １８３とアプリケーションＢ  １８４に、ＣＰＵを、時分割で割り当てることで、アプリケーションＡ  １８３とアプリケーションＢ  １８４を動作させる。
【０１１７】
前述の時分割で割り当てる操作において、汎用ＯＳ１８０は、アプリケーションＡ  １８３とアプリケーションＢ  １８４を切り替える。その切り替え操作は、各アプリケーションに対応するページテーブルを切り替えることで実現する。
【０１１８】
図７の場合には、汎用ＯＳ１８０は、アプリケーションＡ  １８３に対応するページテーブル１８１と、アプリケーションＢ  １８４に対応するページテーブル１８２と、を保持し、切り替えることで、アプリケーションを時分割で実行する。
【０１１９】
また、管理専用ＯＳ１０４も、同様のページテーブルの操作を行うことで、管理専用ＯＳ１０４上で動作するソフトウエアを切り替える。
【０１２０】
＜セキュアＶＭＭによるページテーブルとソフト実行環境の操作の説明＞
図８は、セキュアＶＭＭによるページテーブルとソフト実行環境の操作の一例を示す図である。図８において、セキュアＶＭＭ１９０上で、汎用ＯＳ１９３と管理専用ＯＳ１９４が動作している。
【０１２１】
セキュアＶＭＭ１９０は、汎用ＯＳ１９３と管理専用ＯＳ１９４に、ＣＰＵを、時分割で割り当てることで、汎用ＯＳ１９３と管理専用ＯＳ１９４を動作させる。
【０１２２】
前述の時分割で割り当てる操作において、セキュアＶＭＭ１９０は、汎用ＯＳ１９３と管理専用ＯＳ１９４を切り替える。その切り替え操作は、各ＯＳ（ソフト実行環境）に対応するカレントページテーブルを切り替えることで実現する。ここで、カレントページテーブルとは、各ＯＳが現在ＣＰＵ１２１に参照させているページテーブルである。
【０１２３】
図８の場合には、セキュアＶＭＭ１９０は、汎用ＯＳ１９３に対応するカレントページテーブル１９１と、管理専用ＯＳ１９４に対応するカレントページテーブル１９２と、を保持し、切り替えることで、各ＯＳ（ソフト実行環境）を時分割で実行する。
【０１２４】
＜不正アプリによるセキュアデバイスアクセスの検出及びアクセス防止の説明＞
以下に、図９を用いて、情報処理装置１２０が、不正アプリによるセキュアデバイスアクセスの検出及びアクセス防止の説明を行う。
【０１２５】
汎用ＯＳ１０１上のアプリケーションが、汎用ＯＳ１０１を介して、セキュアデバイス処理要求を行う。（Ｓ１００）
セキュアＶＭＭ１００は、前述のソフト実行環境の操作を用いて、汎用ＯＳ１０１から管理専用ＯＳ１０４に切り替える。そして、処理要求検出ステップにおいて、セキュアデバイスドライバ１０５のデバイスアクセス要求判定部１０９が、前述のセキュアデバイス処理要求を検出する。そして、デバイスアクセス要求判定部１０９は、セキュアＶＭＭ１００に対して、対象アプリ抽出要求を行う。（Ｓ１０１）
対象アプリ抽出要求に対して、セキュアＶＭＭ１００は、対象アプリ抽出ステップと対象アプリロックステップを行う。
【０１２６】
対象アプリ抽出ステップでは、セキュアＶＭＭ１００の動作アプリ格納メモリ特定部１０７が、汎用ＯＳ１０１のカレントページテーブルを抽出する。汎用ＯＳ１０１が動作させているアプリケーションはセキュアデバイス処理要求を出したアプリケーションであるので、カレントページテーブルはこのアプリケーションのページテーブルとなる。（Ｓ１０２）
対象アプリロックステップでは、セキュアＶＭＭ１００の動作アプリメモリロック部１０８が、汎用ＯＳ１０１のカレントページテーブルに格納されている情報を、保護メモリにバックアップする。そして、動作アプリメモリロック部１０８が、汎用ＯＳ１０１のカレントページテーブルの書込み許可・不許可情報のフィールドを全て、「不許可」に変更する。例えば、図５に示すページテーブル１６０を前述の操作を行った場合には、図２３のページテーブル３００に変更される。書換え後のページテーブル３００では、書換え前のページテーブル１６０の特権情報１６４のフィールドのリング３が、ページテーブル３００の特権情報３０４で示すようにリング０に書き換えられる。さらに、書換え後のページテーブル３００では、書換え前のページテーブル１６０の書込み操作許可・不許可情報１６５のフィールドが、ページテーブル３００の書込み許可・不許可情報３０５で示すように全て「不許可」に書き換えられる。
【０１２７】
これにより、セキュアデバイス処理要求を出したアプリケーションがロードされているメモリ空間の書き換えが不可能となる。さらに、特権情報のフィールドを、汎用ＯＳおよび汎用ＯＳ上で動作するアプリケーションに割り当てられた特権では変更できないリング番号に変更する。この特権情報の変更により、汎用ＯＳおよび汎用ＯＳ上で動作するアプリケーションは、カレントページテーブルの元々の特権情報に関わらず、書込み許可・不許可情報のフィールドを「不許可」から「許可」に戻すことができなくなる。したがって、汎用ＯＳ側およびその上で動作するプリケーションによってページテーブルの書込み許可・不許可情報のフィールドを「許可」に戻し、アプリケーションがロードされているメモリ空間の書き換えを可能とするような攻撃も防げる。本実施の形態では、この書込み許可・不許可情報１６５のフィールドの書き換えと、特権情報のフィールドの書き換えにより、セキュアデバイス処理要求を出したアプリケーションを書換えることができる主体から汎用ＯＳおよび汎用ＯＳ上で動作する全アプリケーションを含めた仮想マシンを排除する。そして、アプリ特定部１０６に対して、アプリ特定要求を行う。（Ｓ１０３）
アプリ特定要求に対して、アプリ特定部１０６は、認証子生成ステップとアプリ判定ステップを行う。
【０１２８】
認証子生成ステップでは、アプリ特定部１０６の認証子生成部１１１が、前述の抽出されたページテーブルを用いて、論理アドレス空間を参照する。認証子生成部１１１が、参照した論理アドレス空間に格納されたプログラムから、ＳＨＡ１などの一方向性関数を用いて、ハッシュ値を生成する。（Ｓ１０４）
次に、アプリ判定ステップでは、アプリ特定部１０６のアプリ判定部１１２が、予め保持している参照ハッシュ値と、前述の生成したハッシュ値とが一致するか否かを確認する。一致する場合には、アプリ判定部１１２が、Ｓ１００のセキュアデバイス処理要求を行ったアプリケーションは正当なアプリケーションであると判定する。一致しない場合には、アプリ判定部１１２が、Ｓ１００のセキュアデバイス処理要求を行ったアプリケーションは不正なアプリケーションであると判定する。アプリ判定部１１２が、前述の判定結果を用いて、セキュアデバイスドライバ１０５に対して、デバイスアクセス制御要求を行う。（Ｓ１０５）
デバイスアクセス制御要求に対して、セキュアデバイスドライバ１０５のデバイスアクセス制御部１１０は、前述の判定結果が、正当なアプリケーションの場合には、セキュアデバイスへのアクセスを許可する。または、デバイスアクセス制御部１１０は、前述の判定結果が、不正なアプリケーションの場合には、セキュアデバイスへのアクセスを拒否する。（Ｓ１０６）
デバイスアクセス制御部１１０が、セキュアデバイスへのアクセスを許可した場合に、セキュアデバイスドライバ１０５は、セキュアデバイスに対する処理を行う。（Ｓ１０７）そして、処理終了後に、セキュアデバイスドライバ１０５は、セキュアＶＭＭ１００に対して、対象アプリロック解除要求を行う。
【０１２９】
対象アプリロック解除要求に対して、セキュアＶＭＭ１００の動作アプリメモリロック部１０８は、対象アプリロック解除ステップを行う。
【０１３０】
対象アプリロック解除ステップにおいて、動作アプリメモリロック部１０８は、バックアップしていたカレントページテーブルの情報を、汎用ＯＳ１０１のカレントページテーブルに再設定を行う。これにより、ページテーブルの書込み許可・不許可情報および特権情報が、対象アプリロックステップ以前の状態に戻る（Ｓ１０８）
そして、セキュアＶＭＭ１００は、汎用ＯＳ１０１に切り替える。汎用ＯＳ１０１は、セキュアデバイスドライバ１０５の処理結果をアプリケーションに通知する。
【０１３１】
また、ステップＳ１０６において、セキュアデバイスへのアクセスを拒否すると判断された場合には、セキュアデバイスドライバ１０５は、セキュアＶＭＭ１００に対して、対象アプリロック解除要求を行い、セキュアＶＭＭ１００の動作アプリメモリロック部１０８は、前述のステップＳ１０８と同様の処理を行う。そして、セキュアＶＭＭ１００は、汎用ＯＳ１０１に切り替える。汎用ＯＳは、セキュアデバイスドライバ１０５の処理結果をアプリケーションに通知する。
【０１３２】
＜実施の形態１の効果＞
上述した実施の形態１では、セキュアデバイス処理要求が検出されると、その要求を出したアプリケーションがロードされているページテーブルの設定を書き込み不可能とした上で、アプリケーションの検証を行っている。また、この書き込み不可能の設定は、セキュアデバイスへのアクセスが終了するまで解除されない。これにより、正当なアプリケーションで検証を通した上で、メモリ上のアプリケーションを不正なアプリケーションに上書きしてセキュアデバイスへの不正なアクセスを試みる攻撃を防止することが出来る。すなわち、アプリケーションがロードされているメモリを改変できないよう設定にした上でそのアプリケーションを検証しているので、検証が終了した直後にメモリ上のアプリケーションを不正なアプリケーションに差し替えることはできない。
【０１３３】
さらに、ページテーブルの特権情報のフィールドを、汎用ＯＳおよび汎用ＯＳ上で動作するアプリケーションでは変更できない特権に書き換えることにより、汎用ＯＳ等からはページテーブルの設定を書込み許可に戻すことができなくなるようにしている。これにより、汎用ＯＳ上の不正なアプリケーションによってページテーブルの設定を書き込み許可に戻した上で、アプリケーションを差し替えるような攻撃をも防止することができる。
【０１３４】
（実施の形態２）
図１０は、本発明の実施の形態２に関わる情報処理装置のソフトウエア構成を示すブロック図である。
【０１３５】
図１１は、本発明の実施の形態２に関わる情報処理装置とアプリ判定部とがネットワーク接続された構成を示す図である。
【０１３６】
実施の形態１の情報処理装置１２０と実施の形態２の情報処理装置２２０との構成の差異は以下の通りである。
【０１３７】
実施の形態１の情報処理装置１２０では、アプリ特定部１０６が、検証部であるアプリ判定部１１２を備えていたが、実施の形態２の情報処理装置２２０のアプリ特定部２０６は、検証部であるアプリ判定部を備えてない。さらに、実施の形態２のアプリ特定部２０６は、通信部２１２を新たに備えている。
【０１３８】
さらに、実施の形態２の情報処理装置２２０は、ネットワーク２２２を介して、アプリ判定サーバ２２１に接続している。アプリ判定サーバ２２１は、検証部であるアプリ判定部２２３を備える。
【０１３９】
また、実施の形態１と実施の形態２の動作の違いは以下の通りである。
【０１４０】
実施の形態１では、認証子生成部１１１が生成したハッシュ値（認証子）を、アプリ判定部１１２が、参照ハッシュ値（認証子）と比較・判定していた。
【０１４１】
それに対して、実施の形態２では、認証子生成部２１１が生成したハッシュ値（認証子）を、通信部２１２が、図示されていないネットワーク機能を利用して、ネットワーク２２２を介して、アプリ判定サーバ２２１に送付する。アプリ判定サーバ２２１のアプリ判定部２２３は、送付されたハッシュ値（認証子）と、予め保持しているハッシュ値（認証子）とを、比較・判定することで、正当なアプリケーションであるか否かを判定する。
【０１４２】
上記の差異以外は、実施の形態１と実施の形態２は同一であるため、説明は省略する。
【０１４３】
本実施の形態２は、アプリ判定サーバでアプリケーションが正当であるか否かを判定する。そのため、実施の形態１とは異なり、アプリ判定ステップで使用するための予め保持するハッシュ値（認証子）を、情報処理装置２２０で保持する必要がない。従って、情報処理装置２２０の記憶領域を削減する事が出来るという効果がある。
【０１４４】
（実施の形態３）
図１２は、本発明の実施の形態３に関わる情報処理装置のソフトウエア構成を示すブロック図である。
【０１４５】
図１３は、本発明の実施の形態３に関わる情報処理装置とアプリ判定部とサービス提供サーバがネットワーク接続された構成を示す図である。
【０１４６】
図１４は、本発明の実施の形態３に関わるデバイスアクセス制御のシーケンスを示す図である。
【０１４７】
実施の形態１の情報処理装置１２０と実施の形態３の情報処理装置２５０との構成の差異は以下の通りである。
【０１４８】
実施の形態１と実施の形態２とのハードウエア構成の差異は、セキュアデバイスは、ネットワークインターフェースであることである。そして、前述のネットワークインターフェースを制御するデバイスドライバは、ネットワークインターフェースドライバ２３５である。
【０１４９】
実施の形態１の情報処理装置１２０では、アプリ特定部１０６が、検証部であるアプリ判定部１１２を備えていたが、実施の形態３の情報処理装置２５０のアプリ特定部２３６は、検証部であるアプリ判定部を備えてない。さらに、実施の形態３のアプリ特定部２３６は、通信部２４１を新たに備えている。さらに、実施の形態３のネットワークインターフェースドライバ２３５は、実行部であるデバイスアクセス制御部を備えていない。
【０１５０】
さらに、実施の形態２の情報処理装置２５０と、アプリ判定サーバ２５１と、サービス提供サーバ２５２とは、ネットワーク２５３を介して互いに接続している。アプリ判定サーバ２５１は、検証部であるアプリ判定部２５４を備える。サービス提供サーバ２５２は、実行部としてのサービス提供部２５５とサービス提供判定部２５６を備える。
【０１５１】
実行部としてのサービス提供部２５５は、情報処理装置２５０に対して、コンテンツ配信などのサービスを提供する。
【０１５２】
サービス提供判定部２５６は、情報処理装置２５０に対して、サービスを提供してよいか否かを判定する。
【０１５３】
図１４のシーケンスを用いて、情報処理装置２５０が、サービス提供サーバ２５２から、サービスを受けるステップを説明する。
【０１５４】
まず、情報処理装置２５０で実施される、セキュアデバイス処理要求（Ｓ２００）、処理要求検出ステップ（Ｓ２０１）、対象アプリ抽出ステップ（Ｓ２０２）、対象アプリロックステップ（Ｓ２０３）、認証子生成ステップ（Ｓ２０４）は、実施の形態１の各ステップと同一の処理内容のため、説明を省略する。
【０１５５】
認証子送信ステップでは、通信部２４１が、生成されたハッシュ値（認証子）を、ネットワーク２５３を介して、アプリ判定サーバ２５１に送付する。アプリ判定サーバ２５１のアプリ判定部２５４は、送付されたハッシュ値（認証子）と、予め保持しているハッシュ値（認証子）とを、比較・判定することで、正当なアプリケーションであるか否かを判定する。そして、アプリ判定部２５４は、サービス提供サーバ２５２に、ネットワーク２５３を介して、前述の判定結果を送付する。
【０１５６】
サービス提供サーバ２５２のサービス提供判定部２５６は、送付された判定結果を受信する。
【０１５７】
そして、サービス提供判定部２５６は、判定結果が正当なアプリケーションである場合には、サービス提供部２５５に、情報処理装置２５０に対して、サービスを提供するように指示する。サービスを提供するように指示されたサービス提供部２５５は、情報処理装置  ２５０に、ネットワーク２５３を介して、サービスを提供する。
【０１５８】
また、サービス提供判定部２５６は、判定結果が不正なアプリケーションである場合には、情報処理装置２５０に対して、要求失敗であることを示す情報を通知する。
【０１５９】
なお、アプリ判定サーバ２５１と、サービス提供サーバ２５２は、同一のサーバであっても良い。
【０１６０】
なお、アプリ判定部２５１と、サービス提供サーバ２５２は、情報処理装置２５０が接続されてない専用ネットワークで接続されていても良い。専用ネットワークで、アプリ判定部２５１とサービス提供サーバ２５２とが接続されてい場合には、アプリ判定サーバ２５１は、判定結果を専用ネットワークを介して、サービス提供サーバ２５２に通知する。
【０１６１】
上記の差異以外は、実施の形態１と実施の形態３は同一であるため、説明は省略する。
【０１６２】
実施の形態３では、サービス提供サーバが、情報処理装置に対してサービスを提供するか否かを判定する。そのため、ネットワークを介して、サービス提供者がソフトウエアを確認することが出来るという効果がある。
【０１６３】
（実施の形態４）
図１５は、本発明の実施の形態４に関わる情報処理装置のソフトウエア構成を示すブロック図である。
【０１６４】
図１６は、本発明の実施の形態４に関わるデバイスアクセス制御のシーケンスを示す図である。
【０１６５】
実施の形態１の情報処理装置１２０と実施の形態４の情報処理装置との構成の差異は以下の通りである。
【０１６６】
実施の形態１の情報処理装置１２０では、セキュアデバイスドライバ１０５が、検出部としてのデバイスアクセス要求判定部１０９と、実行部としてのデバイスアクセス制御部１１０とを備えていたが、実施の形態４のセキュアデバイスドライバ２６５は、検出部としてのデバイスアクセス要求判定部と実行部としてのデバイスアクセス制御部とを備えていない。さらに、実施の形態４のセキュアＶＭＭ２６０は、検出部としてのデバイスアクセス要求判定部２６９と、実行部としてのデバイスアクセス制御部２７０とを備えている。
【０１６７】
図１６のシーケンスを用いて、実施の形態４の情報処理装置が、正当なアプリケーションのみに対して、セキュアデバイスをアクセスさせるステップを説明する。
【０１６８】
実施の形態１では、処理要求検出ステップ（Ｓ１０１）とデバイス処理判定ステップ（Ｓ１０６）とが、セキュアデバイスドライバ１０５で実現されていた。それに対して、実施の形態４では、処理要求検出ステップ（Ｓ２１１）とデバイス処理判定ステップ（Ｓ２１６）とが、セキュアＶＭＭ２６０で実現される。
【０１６９】
上記の差異以外は、実施の形態１と実施の形態４は同一であるため、説明は省略する。
【０１７０】
実施の形態４は、実施の形態１とは異なり、デバイスアクセス要求判定部２６９とデバイスアクセス制御部２７０が、セキュアＶＭＭ２６０内部に存在し、セキュアデバイスドライバ２６５内部に存在しない。従って、セキュアデバイスドライバを改変することなしに、実施の形態４の情報処理装置で動作させることが出来るという効果がある。
【０１７１】
（実施の形態５）
図１７は、本発明の実施の形態５に関わる情報処理装置のソフトウエア構成を示すブロック図である。
【０１７２】
図１８は、本発明の実施の形態５に関わるデバイスアクセス制御のシーケンスを示す図である。
【０１７３】
実施の形態１の情報処理装置１２０と実施の形態５の情報処理装置との構成の差異は以下の通りである。
実施の形態１の情報処理装置１２０では、アプリ特定部１０６が、検証部としての認証子生成部１１１を備えていたが、実施の形態５のアプリ特定部２８６は、検証部としての認証子生成部を備えていない。さらに、実施の形態５のセキュアＶＭＭ２８０は、検証部としての認証子生成部２８９を備えている。
【０１７４】
図１８のシーケンスを用いて、実施の形態５の情報処理装置が、正当なアプリケーションのみに対して、セキュアデバイスをアクセスさせるステップを説明する。
【０１７５】
実施の形態１では、認証子生成ステップ（Ｓ１０４）が、アプリ特定部１０６で実現されていた。それに対して、実施の形態５では、認証子生成ステップ（Ｓ２２４）が、セキュアＶＭＭ２８０で実現される。
【０１７６】
上記の差異以外は、実施の形態１と実施の形態５は同一であるため、説明は省略する。
【０１７７】
実施の形態５では、実施の形態１とは異なり、認証子生成部２８９が、セキュアＶＭＭ２８０内部に存在し、アプリ特定部２８６内部に存在しない。そのため、動作アプリ格納メモリ特定部２８７から認証子生成部２８９への情報通知が、同一モジュール（セキュアＶＭＭ２８０）内部で実現できる。従って、動作アプリ格納メモリ特定部２８７から認証子生成部２８９への情報通知が、より高速に出来るという効果がある。
【０１７８】
（その他変形例）
（１）上記の実施の形態で、処理要求検出ステップにおいて、処理要求自体を検出するのではなく、要求のコマンド種別や、データの処理内容を参照することで処理要求が行われているか否かを判断して検出するとしても良い。
【０１７９】
（２）上記の実施の形態で、処理要求検出ステップが、デバイス初期化の操作のみ対して検出操作を行うとしてもよい。
【０１８０】
（３）上記の実施の形態で、処理要求検出ステップの検出を行うか否かを、乱数に基づいて、ランダムに決定するとしても良い。
【０１８１】
（４）上記の実施の形態で、処理要求検出ステップの検出を行うか否かを、デバイスアクセス回数に基づいて切り替えるとしても良い。例えば、セキュアデバイスドライバに対して、１０回のアクセスを行った場合には、検出するという操作を行ってもよい。
【０１８２】
（５）上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、ＳＨＡ１以外の一方向性関数を用いてもよい。例えば、ＭＤ５や、ＳＨＡ２５６、ＡＥＳ、ＤＥＳを用いても良い。
【０１８３】
（６）上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、論理アドレス空間の一部のみを用いて、ハッシュ値を生成しても良い。例えば、アプリケーションのコード領域のみのハッシュ値を生成しても良い。
【０１８４】
（７）上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、複数個のハッシュ値を生成しても良い。例えば、論理メモリ空間を分割して、分割した領域毎にハッシュ値を生成しても良い。
【０１８５】
（８）上記の実施の形態で、対象アプリロックステップのページテーブルの情報をバックアップする場合に、一部の情報のみをバックアップしても良い。
【０１８６】
（９）上記の実施の形態で、アプリ判定部は、特定のアプリケーションライセンスを備えたアプリケーションのみを不正アプリケーションであると判定しても良い。
【０１８７】
（１０）上記の実施の形態で、ＣＰＵが、保護モードと通常モードを備えるＣＰＵであってもよい。さらに、保護モードのＣＰＵのみが、保護メモリにアクセス可能であってもよい。
【０１８８】
（１１）上記の実施の形態で、保護メモリとセキュアデバイスは、保護メモリに格納されたソフトウエアのみがアクセス可能となるように制御されるが、その手段は、ハードウエアによって実現してもよい。例えば、保護メモリ上のプログラムが動作しているときのみ、ＣＰＵから、保護メモリとセキュアデバイスへアクセス可能になるようにバスが制御されててもよい。
【０１８９】
（１２）上記の実施の形態で、通常メモリと保護メモリとが、同一のメモリであってもよい。
【０１９０】
（１３）上記の実施の形態で、不揮発性記憶装置が、汎用ＯＳを格納していてもよい。その場合は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）や、ＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）と呼ばれる特別なファームウエア（プログラム）によって、汎用ＯＳを通常メモリ上にロードさせる。
【０１９１】
（１４）上記の実施の形態で、不揮発性記憶装置が、セキュアデバイスドライバや、アプリ特定部や、管理専用ＯＳや、セキュアＶＭＭを格納していてもよい。その場合には、ＡＥＳ暗号などの秘密鍵暗号方式や、ＲＳＡ暗号などの非対称鍵暗号方式などの暗号アルゴリズムを用いて、セキュアデバイスドライバや、アプリ特定部や、管理専用ＯＳや、セキュアＶＭＭは暗号化されて格納されている。そして、各モジュールは、復号されて保護メモリ上にロードされ、実行される。
【０１９２】
（１５）上記の実施の形態では、セキュアＶＭＭが通常メモリに格納されていてもよい。その場合には、保護メモリに格納されている図示されていない改ざん検出プログラムが、セキュアＶＭＭの改ざん検出を行ってもよい。さらに、前述のセキュアＶＭＭの改ざん検出は、セキュアＶＭＭを通常メモリにロードする場合に行ってもよく、定期的に改ざん検出をおこなってもよく、乱数などに基づいて不定期に行ってもよく、何らかのトリガに基づいて行ってもよい。
【０１９３】
（１６）上記の実施の形態では、セキュアＶＭＭが通常メモリに格納されていてもよい。その場合には、情報処理装置内部の読み込み専用記憶装置（ＲＯＭ）にに格納されている図示されていない改ざん検出プログラムが、セキュアＶＭＭの改ざん検出を行ってもよい。さらに、前述のセキャアＶＭＭの改ざん検出は、セキュアＶＭＭを通常メモリにロードする場合に行ってもよく、定期的に改ざん検出をおこなってもよく、乱数などに基づいて不定期に行ってもよく、何らかのトリガに基づいて行ってもよい。
【０１９４】
（１７）上記の実施の形態では、ＣＰＵの特権状態をＣＰＵのリングの機構を用いて実現したが、それ以外の方法であってもよい。例えば、完全仮想化をサポートしたＣＰＵの仮想化ドメイン（管理ドメインと汎用ドメイン）の機構を利用してもよい。
【０１９５】
（１８）上記の実施の形態では、汎用ＯＳが、アプリケーションのページテーブルを管理していたが、それ以外の方法であってもよい。例えば、ＯＳ仮想化技術のシャドー・ページングを利用して、セキュアＶＭＭがページテーブルを管理してもよい。
【０１９６】
また、上記の実施の形態では、汎用ＯＳが管理するアプリケーションごとのページテーブルを、セキュアＶＭＭがカレントページテーブルとして参照する構成を取っていた。より具体的には、カレントページテーブルを指すポインタを、汎用ＯＳが管理するページテーブルのうちの現在処理中のアプリケーションに対応するページテーブルに繋ぐ構成を取っていた。しかし、これに限られるものではない。例えば、上述のシャドー・ページングを使う場合は、動作させるアプリケーションの切り替えが起こるたびに、セキュアＶＭＭ自身が、汎用ＯＳが管理するページテーブルのコピーを作る。この場合、メモリアクセスの制御は、セキュアＶＭＭが保持するページテーブルに基づいて行われるので、セキュアＶＭＭは、自身が複製したページテーブルに対して、上記の実施の形態におけるカレントページテーブルと同様の処理を行うとすればよい。
【０１９７】
（１９）上記の実施の形態２と実施の形態３では、情報処理装置からアプリ判定部に対して、ハッシュ値（認証子）と共に、情報処理装置を識別する情報を送付してもよい。
【０１９８】
（２０）上記の実施の形態２と実施の形態３では、情報処理装置とアプリ判定部とで、安全な通信路を用いても良い。例えば、ＳＳＬを利用しても良い。
【０１９９】
（２１）上記の実施の形態２と実施の形態３では、情報処理装置からアプリ判定部に対して送付する情報を、電子署名を用いて保護してもよい。例えば、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）のＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）を用いて、送付する情報に対して電子署名を作成し、アプリ判定サーバに電子署名を送付してもよい。
【０２００】
（２２）上記の実施の形態２と実施の形態３では、情報処理装置とアプリ判定サーバとで、チャレンジ・レスポンス処理を行い、相互認証を行ってもよい。
【０２０１】
（２３）上記の実施の形態では、ＣＰＵは、自身の特権状態よりもレベルの低い特権情報に対応するページテーブルのエントリは全てアクセスできるとしていたが、これに限られるものではない。例えば、特権状態と特権情報とを１対１に対応させ、リング３の特権状態の時はリング３の特権情報を持つエントリにしかアクセスできないとしてもよい。
【０２０２】
（２４）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に乗せなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
【０２０３】
（２５）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
【０２０４】
（２６）システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、システムＬＳＩ１００を上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ(Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０２０５】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０２０６】
（２７）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【０２０７】
（２８）これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【０２０８】
本発明にかかるセキュアデバイスに対するアクセス制御を行う手法は、アプリケーションが格納されている論理メモリ空間をロックし、ハッシュ値を生成・判定することによって、アプリケーションの差し替えによる不正アプリケーションのデバイスアクセスを防止するという効果を有する。そのため、セキュアデバイスを処理するデータ処理において、不正アプリケーションの動作を防止させるという効果がある。
【図面の簡単な説明】
【０２０９】
【図１】本発明の実施の形態１のソフトウエア構成を示すブロック図
【図２】本発明の実施の形態１のハードウエア構成を示すブロック図
【図３】本発明の実施の形態１の情報処理装置の物理メモリ空間を示す図
【図４】本発明の実施の形態１の仮想物理メモリ空間と論理メモリ空間との対応関係を示す一例の図
【図５】本発明の実施の形態１のページテーブルのデータ構造の一例を示す図
【図６】本発明の実施の形態１のＣＰＵが、通常メモリ及び保護メモリへアクセスを行った場合のアクセス制御を示す表
【図７】本発明の実施の形態１の汎用ＯＳによるページテーブルとアプリケーションの操作の一例を示す図
【図８】本発明の実施の形態１のセキュアＶＭＭによるページテーブルとソフト実行環境の操作の一例を示す図
【図９】本発明の実施の形態１の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図
【図１０】本発明の実施の形態２のソフトウエア構成を示す図
【図１１】本発明の実施の形態２の情報処理装置とアプリ判定部とがネットワーク接続された構成を示す図
【図１２】本発明の実施の形態３のソフトウエア構成を示す図
【図１３】本発明の実施の形態３の情報処理装置とアプリ判定部とサービス提供サーバとがネットワーク接続された構成を示す図
【図１４】本発明の実施の形態３の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図
【図１５】本発明の実施の形態４のソフトウエア構成を示す図
【図１６】本発明の実施の形態４の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図
【図１７】本発明の実施の形態５のソフトウエア構成を示す図
【図１８】本発明の実施の形態５の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図
【図１９】従来のプログラムの正当性を確認するシーケンス図
【図２０】従来のＯＳ仮想化実行環境における、データを適切に実行環境ごとに処理するソフトウエア構成を示す図
【図２１】従来のＯＳ仮想化実行環境における、データを適切に実行環境ごとに処理するシーケンス図
【図２２】汎用ＯＳ上のアプリケーションをロードするシーケンス図
【図２３】本発明の実施の形態１のページテーブルのデータ構造の書換え後一例を示す図
【符号の説明】
【０２１０】
１００、１３３、１９０、２００、２３０、２６０、２８０  セキュアＶＭＭ
１０１、１２９、１８０、２０１、２３１、２６１、２８１、４０１  汎用ＯＳ
１０２、１０３、１２７、１２８、１８３、１８４、２０２、２０３、２３２、２３３、２６２、２６３、２８２、２８３  アプリケーション
１０４、１３２、２０４、２３４、２６４、２８４  管理専用ＯＳ
１０５、１３０、２０５、２６５、２８５  セキュアデバイスドライバ
１０６、１３１、２０６、２３６、２６６、２８６  アプリ特定部
１０７、２０７、２３７、２６７、２８７  動作アプリ格納メモリ特定部
１０８、２０８、２３８、２６８、２８８  動作アプリメモリロック部
１０９、２０９、２３９、２６９、２９０  デバイスアクセス要求判定部
１１０、２１０、２７０、２９１  デバイスアクセス制御部
１１１、２１１、２４０、２７１、２８９  認証子生成部
１１２、２２３、２５４、２７２、２９２  アプリ判定部
１２０、２２０、２５０  情報処理装置
１２１  ＣＰＵ
１２２  ＭＭＵ
１２３、１４１、１５１  通常メモリ
１２４、１４３  保護メモリ
１２５  バス
１２６  セキュアデバイス
１３４  不揮発性記憶装置
１４０  情報処理装置の物理メモリ空間
１４２、１４４、１５２  予約領域
１５０  セキュアＶＭＭによって、汎用ＯＳに割り当てられた仮想物理メモリ空間
１３５、１３６、１５３、１６０、１８１、１８２、３００  ページテーブル
１５４  アプリケーションの論理メモリ空間
１６１、３０１  ページ番号のフィールド
１６２、３０２  論理アドレス番号のフィールド
１６３、３０３  仮想物理アドレス番号のフィールド
１６４、３０４  特権情報のフィールド
１６５、３０５  書込み操作許可・不許可情報のフィールド
１６６、３０６  読込み操作許可・不許可情報のフィールド
１６７、３０７  その他の情報のフィールド
１７０  通常メモリ及び保護メモリへアクセスを行った場合のアクセス制御を示すテーブル
１９１  汎用ＯＳが管理するカレントページテーブル
１９２  管理専用ＯＳが管理するカレントページテーブル
１９３  汎用ＯＳと動作中のアプリケーション
１９４  管理専用ＯＳと動作中の管理専用ＯＳ上のアプリケーション
２１２、２４１  通信部
２２１、２５１  アプリ判定サーバ
２２２、２５３  ネットワーク
２３５  ネットワークセキュアデバイスドライバ
２５２  サービス提供サーバ
２５５  サービス提供部
２５６  サービス提供判定部
４００  ＶＭＭ
４０２  ネットワーク対応アプリ
４０３  汎用ＯＳ  ＮＩＣプロキシ
４０４  リアルタイムＯＳ
４０５  リアルタイムＮＩＣプロキシ
４０６  リアルタイムＵＤＰ／ＩＰ
４０７  ＮＩＣドライバ
【図１】
0005260081.tif 000002
【図２】
0005260081.tif 000003
【図３】
0005260081.tif 000004
【図４】
0005260081.tif 000005
【図５】
0005260081.tif 000006
【図６】
0005260081.tif 000007
【図７】
0005260081.tif 000008
【図８】
0005260081.tif 000009
【図９】
0005260081.tif 000010
【図１０】
0005260081.tif 000011
【図１１】
0005260081.tif 000012
【図１２】
0005260081.tif 000013
【図１３】
0005260081.tif 000014
【図１４】
0005260081.tif 000015
【図１５】
0005260081.tif 000016
【図１６】
0005260081.tif 000017
【図１７】
0005260081.tif 000018
【図１８】
0005260081.tif 000019
【図１９】
0005260081.tif 000020
【図２０】
0005260081.tif 000021
【図２１】
0005260081.tif 000022
【図２２】
0005260081.tif 000023
【図２３】
0005260081.tif 000024