(57)【特許請求の範囲】
【請求項１】
システムリソースに対するアクセス要求が発生した場合に、前記システムリソースに対するアクセス権限の有無を特定するための権限情報を含んだ権限テーブルを参照することによって、前記アクセス権限の有無を判定するテーブル判定処理を行うテーブル判定部と、
前記アクセス要求が発生した場合に、前記アクセス権限の有無を判定するための判定コードを実行することによって、前記アクセス権限の有無を判定するコード判定処理を行うコード判定部と、
前記テーブル判定処理によって前記アクセス権限が有ると判定され、且つ、前記コード判定処理によって前記アクセス権限が有ると判定された場合に、前記システムリソースに対するアクセスを許可するアクセス制御部と
を備える情報処理装置。
【請求項２】
前記情報処理装置は、データ領域とコード領域とを有するメモリを備え、
前記権限テーブルが前記データ領域に配置され、前記判定コードが前記コード領域に配置される
請求項１に記載の情報処理装置。
【請求項３】
前記メモリは、ハイパーバイザ用のメモリ領域であるハイパーバイザ領域を有し、前記ハイパーバイザ領域の中に前記データ領域と前記コード領域とを有する
請求項２に記載の情報処理装置。
【請求項４】
前記メモリは、オペレーションシステム用のメモリ領域であるオペレーションシステム領域を有し、前記オペレーションシステム領域の中に前記データ領域と前記コード領域とを有する
請求項２に記載の情報処理装置。
【請求項５】
前記メモリは、要求元の上限数に対応する領域サイズを有するメモリ領域を判定コード用のメモリ領域として前記コード領域の中に確保する
請求項２から請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
前記権限テーブルに基づいて前記判定コードを生成するコード生成部を備える
請求項１から請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
前記コード判定部は、前記コード判定処理として、第１判定コードを実行することによって前記アクセス権限の有無を判定する第１コード判定処理と、第２判定コードを実行することによって前記アクセス権限の有無を判定する第２コード判定処理とを行い、
前記アクセス制御部は、前記テーブル判定処理の結果と前記第１コード判定処理の結果と前記第２判定コードの結果とに基づいて、前記システムリソースに対するアクセスの許否を決定する
請求項１に記載の情報処理装置。
【請求項８】
前記権限テーブルと前記第１判定コードと前記第２判定コードとのうちのいずれかのデータが改ざんされた場合に、前記テーブル判定処理の結果と前記第１コード判定処理の結果と前記第２判定コードの結果とに基づいて、前記権限テーブルと前記第１判定コードと前記第２判定コードとのうちの改ざんされたデータを特定する改ざん特定部を備える
請求項７に記載の情報処理装置。
【請求項９】
前記権限テーブルと前記第１判定コードと前記第２判定コードとのうちの前記改ざんされたデータ以外のデータに基づいて、前記改ざんされたデータを修復する改ざん修復部を備える
請求項８に記載の情報処理装置。
【請求項１０】
前記アクセス制御部は、３ビットのうちの第１ビットに前記テーブル判定処理の結果を設定し、前記３ビットのうちの第２ビットに前記第１コード判定処理の結果を設定し、前記３ビットのうちの第３ビットに前記第２コード判定処理の結果を設定し、前記３ビットに基づいて前記システムリソースに対するアクセスの許否を決定する
請求項７から請求項９のいずれか１項に記載の情報処理装置。
【請求項１１】
システムリソースに対するアクセス要求が発生した場合に、前記システムリソースに対するアクセス権限の有無を特定するための権限情報を含んだ権限テーブルを参照することによって、前記アクセス権限の有無を判定するテーブル判定処理と、
前記アクセス要求が発生した場合に、前記アクセス権限の有無を判定するための判定コードを実行することによって、前記アクセス権限の有無を判定するコード判定処理と、
前記テーブル判定処理によって前記アクセス権限が有ると判定され、且つ、前記コード判定処理によって前記アクセス権限が有ると判定された場合に、前記システムリソースに対するアクセスを許可するアクセス制御処理と
をコンピュータに実行させるためのアクセス管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムリソースに対するアクセス管理に関するものである。
【背景技術】
【０００２】
一般的に、ハイパーバイザおよびＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、各ゲストＯＳおよびプロセスに対してメモリ資源を排他的に割り当てることが可能である。割り当ての管理表は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に配置されることが多い。したがって、割り当てられた領域の境界を超えて読み書きが発生すると、データが書き換えられる可能性があるため、管理表を保護する必要があった。【０００３】
特許文献１は、メモリ資源を排他的に割り当てるためのメモリ保護に関する境界検出方式を提案している。この方式では、アクセス可能な領域を判定するために属性表、および、アクセス権限を示すテーブルが使用される。
特許文献２は、アクセス可能な領域を判定する手法を提案している。この手法では、権限情報がテーブルによって管理されず、プログラムの実行コードに判定式が埋め込まれる。
特許文献３は、アクセス権限に対応する領域の種類によって管理表を分割する手法を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３６０７５４０号公報
【特許文献２】特許第５８９３０３８号公報
【特許文献３】特許第４９３９３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
権限情報が格納されている管理表を権限テーブルという。
権限テーブルは、ハイパーバイザまたはＯＳが動作している状況ではＲＡＭに配置される。そのため、ローハンマー攻撃またはバッファオーバーフロー攻撃など、メモリ領域を書き換える攻撃によって、権限情報が書き換えられる可能性があった。権限情報が書き換わると、ゲストＯＳまたはアプリケーションに対して割り当てられるメモリ領域が不正となり、権限の無いプログラムによって他の領域が書き換えられてしまう。【０００６】
従来の方法では、権限テーブルによってアクセス権が与えられる領域に対する保護は行えていた。しかし、権限テーブルそのものを保護することはできなかった。
また、実行プログラムにアクセス権限の判定コードが挿入される方法では、自分自身のアクセス権の正当性を確認することはできる。しかし、他の実行主体からのアクセス違反を検知することができない。
さらに、権限テーブルを役割によって分割して変更の可能性がある部分とそれ以外の部分とを分離する方法により、書き換えによる攻撃の対象を分散することが可能であった。しかし、各権限テーブルは元の役割しか備えていないため、メモリ書き換えに対処することができない。【０００７】
権限テーブルの書き換えに対する単純な対策として、権限テーブルを多重化して冗長性を持たせる方法が考えられる。
しかしながら、権限テーブルを多重化したとしても各権限テーブルはＲＡＭにデータとして配置されるため、従来の攻撃手法によってメモリ領域を攻撃することが可能である。また、コンパイラによってデータは特定の領域に集約して配置されるため、特定の領域に集中した攻撃が可能である。【０００８】
本発明は、権限テーブルが改ざんされても正しくアクセス管理を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、
システムリソースに対するアクセス要求が発生した場合に、前記システムリソースに対するアクセス権限の有無を特定するための権限情報を含んだ権限テーブルを参照することによって、前記アクセス権限の有無を判定するテーブル判定処理を行うテーブル判定部と、
前記アクセス要求が発生した場合に、前記アクセス権限の有無を判定するための判定コードを実行することによって、前記アクセス権限の有無を判定するコード判定処理を行うコード判定部と、
前記テーブル判定処理によって前記アクセス権限が有ると判定され、且つ、前記コード判定処理によって前記アクセス権限が有ると判定された場合に、前記システムリソースに対するアクセスを許可するアクセス制御部とを備える。
【発明の効果】
【００１０】
本発明によれば、テーブル判定処理によってアクセス権限が有ると判定されてもコード判定処理によってアクセス権限が有ると判定されなければ、アクセスが許可されない。
したがって、権限テーブルが改ざんされても正しくアクセス管理を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１における情報処理装置１００の構成図。
【図２】実施の形態１におけるプロセッサ１０１の構成図。
【図３】実施の形態１におけるメモリ１０２の構成図。
【図４】実施の形態１における権限テーブル１１５の構成図。
【図５】実施の形態１における判定コード１１６の構成図。
【図６】実施の形態１におけるアクセス管理方法のフローチャート。
【図７】実施の形態１における改ざん後の権限テーブル１１５を示す図。
【図８】実施の形態２におけるプロセッサ１０１の構成図。
【図９】実施の形態２におけるメモリ１０２の構成図。
【図１０】実施の形態２における権限テーブル１１５の構成図。
【図１１】実施の形態２における判定コード１１６の構成図。
【図１２】実施の形態３におけるプロセッサ１０１の構成図。
【図１３】実施の形態３におけるメモリ１０２の構成図。
【図１４】実施の形態３における権限テーブル１１５の構成図。
【図１５】実施の形態３における判定コード１１６の構成図。
【図１６】実施の形態３における更新処理のフローチャート。
【図１７】実施の形態３におけるコードフォーマット１５２を示す図。
【図１８】実施の形態４におけるプロセッサ１０１の構成図。
【図１９】実施の形態４におおけるメモリ１０２の構成図。
【図２０】実施の形態４におけるアクセス管理方法のフローチャート。
【図２１】実施の形態４におけるアクセス管理方法のフローチャート。
【図２２】実施の形態における情報処理装置１００のハードウェア構成図。
【発明を実施するための形態】
【００１２】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１３】
実施の形態１．
システムリソースに対するアクセス管理を行う形態について、図１から図７に基づいて説明する。
【００１４】
＊＊＊構成の説明＊＊＊
図１に基づいて、情報処理装置１００の構成を説明する。
情報処理装置１００は、プロセッサ１０１とメモリ１０２とストレージ１０３と入出力インタフェース１０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ１０１は、メモリ１０２、ストレージ１０３および入出力インタフェース１０４を制御しながら各種の情報処理を行う演算装置である。例えば、プロセッサ１０１はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１０２は、揮発性の記憶装置である。例えば、メモリ１０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１０２に記憶されたデータは必要に応じてストレージ１０３に保存される。
ストレージ１０３は、不揮発性の記憶装置である。例えば、ストレージ１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）またはフラッシュメモリである。ストレージ１０３に記憶されたデータは必要に応じてメモリ１０２にロードされる。
入出力インタフェース１０４は、入力装置および出力装置が接続されるインタフェースである。例えば、入出力インタフェース１０４はＵＳＢ端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。
【００１５】
情報処理装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１０１の役割を分担する。
【００１６】
図２に基づいて、プロセッサ１０１の構成を説明する。
プロセッサ１０１は、ハイパーバイザ１１０と複数のゲストＯＳ（１２１、１２２）と複数のアプリケーション（１３１、１３２、１３３）とを実行する。アプリケーションはアプリケーションプログラムを意味する。
ハイパーバイザ１１０は、複数のゲストＯＳを制御する。具体的には、ハイパーバイザ１１０は、第１ゲストＯＳ１２１と第２ゲストＯＳ１２２とのそれぞれに情報処理装置１００のハードウェア資源を割り当てる。
第１ゲストＯＳ１２１は、ハイパーバイザ１１０によって割り当てられたハードウェア資源を用いて実行される。
第１アプリケーション１３１は、第１ゲストＯＳ１２１に割り当てられたハードウェア資源を用いて実行される。
第２ゲストＯＳ１２２は、ハイパーバイザ１１０によって割り当てられたハードウェア資源を用いて実行される。
第２アプリケーション１３２は、第２ゲストＯＳ１２２に割り当てられたハードウェア資源を用いて実行される。
第３アプリケーション１３３は、第２ゲストＯＳ１２２に割り当てられたハードウェア資源を用いて実行される。
【００１７】
プロセッサ１０１は、ハイパーバイザ１１０を実行することによって、アクセス管理部１１１として機能する。
アクセス管理部１１１は、アクセス制御部１１２とテーブル判定部１１３とコード判定部１１４とを備える。
アクセス制御部１１２とテーブル判定部１１３とコード判定部１１４とのそれぞれの機能については後述する。
【００１８】
図３に基づいて、メモリ１０２の構成を説明する。
メモリ１０２は、ハイパーバイザ領域と第１ゲストＯＳ領域と第２ゲストＯＳ領域とを有する。
ハイパーバイザ領域は、ハイパーバイザ１１０用のメモリ領域である。
第１ゲストＯＳ領域は、第１ゲストＯＳ１２１用のメモリ領域である。
第２ゲストＯＳ領域は、第２ゲストＯＳ１２２用のメモリ領域である。
【００１９】
ハイパーバイザ領域は、データ領域とコード領域とを有する。
データ領域は、データが配置されるメモリ領域である。
データ領域には、権限テーブル１１５などが配置される。
コード領域は、実行コードが配置されるメモリ領域である。実行コードは、プロセッサ１０１によって実行することが可能な形式で作成されたプログラムである。
コード領域には、アクセス管理部１１１および判定コード１１６等が配置される。
【００２０】
権限テーブル１１５は、権限情報を含んだテーブルである。
権限情報は、システムリソースに対するアクセス権限の有無を特定するための情報である。システムリソースは、情報処理装置１００のハードウェア資源、特に、メモリ領域を意味する。
【００２１】
判定コード１１６は、システムリソースに対するアクセス権限の有無を判定するための実行コードである。
【００２２】
第１ゲストＯＳ領域は、０ｘ２００００００から０ｘ４００００００までのアドレス空間である。つまり、第１ゲストＯＳ領域の開始アドレスは０ｘ２００００００であり、第１ゲストＯＳ領域の終了アドレスは０ｘ４００００００である。
第２ゲストＯＳ領域は、０ｘ８００００００から０ｘａ００００００までのアドレス空間である。つまり、第２ゲストＯＳ領域の開始アドレスは０ｘ８００００００であり、第２ゲストＯＳ領域の終了アドレスは０ｘａ００００００である。
【００２３】
図４に基づいて、権限テーブル１１５の構成を説明する。
権限テーブル１１５は、ゲストＯＳ  ＩＤ（ｉｄｅｎｔｉｆｉｅｒ）とゲストＯＳ名と項番とアドレス範囲と属性とのそれぞれの欄を有する。
ゲストＯＳ  ＩＤの欄は、ゲストＯＳを識別する識別子であるゲストＯＳ  ＩＤを示す。
ゲストＯＳ名の欄は、ゲストＯＳの名称であるゲストＯＳ名を示す。
項番の欄は、ゲストＯＳに対して割り当てられる１つ以上のアドレス空間のそれぞれを識別する番号を示す。
アドレス範囲の欄は、ゲストＯＳに対して割り当てられるアドレス空間の範囲を示す。具体的には、アドレス範囲の欄は、ゲストＯＳに対して割り当てられるアドレス空間の開始アドレスおよび終了アドレスを示す。
属性の欄は、アクセス権限の属性を示す。属性の欄において、Ｒは読み出しを意味し、Ｗは書き込みを意味し、Ｒ／Ｗは読み出しおよび書き込みを意味する。
【００２４】
権限テーブル１１５の第１行は、第１ゲストＯＳ１２１の権限情報を示す。
具体的には、権限テーブル１１５の第１行は、ゲストＯＳ  ＩＤ「１」で識別される第１ゲストＯＳ１２１が０ｘ２００００００から０ｘ４００００００までのアドレス空間に対して読み出しおよび書き込みを行う権限を有することを意味する。
【００２５】
権限テーブル１１５の第２行は、第２ゲストＯＳ１２２の権限情報を示す。
具体的には、権限テーブル１１５の第２行は、ゲストＯＳ  ＩＤ「２」で識別される第２ゲストＯＳ１２２が０ｘ８００００００から０ｘａ００００００までのアドレス空間に対して読み出しおよび書き込みをする権限を有することを意味する。
【００２６】
図５に基づいて、判定コード１１６の構成を説明する。図５は、判定コード１１６のソースコードを示している。
判定コード１１６は、権限テーブル１１５に対応する３つの条件分岐文を含んでいる。それぞれの条件分岐文は条件式を含んでいる。
条件分岐文（１）は、権限テーブル１１５の第１行に対応する条件分岐文である。ゲストＯＳ  ＩＤが１であり、アクセスされるメモリ領域のアドレスが０ｘ２００００００から０ｘ４００００００までの範囲内である場合、条件分岐文（１）によって戻り値「１」が出力される。戻り値「１」はアクセス権限が有ることを意味する。
条件分岐文（２）は、権限テーブル１１５の第２行に対応する条件分岐文である。ゲストＯＳ  ＩＤが２であり、アクセスされるメモリ領域のアドレスが０ｘ８００００００から０ｘａ００００００までの範囲内である場合、条件分岐文（２）によって戻り値「１」が出力される。
条件分岐文（１）が示す条件と条件分岐文（２）が示す条件とのいずれも成り立たない場合、条件分岐文（３）によって戻り値「０」が出力される。戻り値「０」はアクセス権限が無いことを意味する。
【００２７】
判定コード１１６は以下のようにして導入される。
まず、権限テーブル１１５に基づいて条件分岐文が導き出される。
次に、条件分岐文がＣ言語または他のプログラミング言語を用いて記述されることによって、判定コード１１６のソースコードが作成される。
次に、判定コード１１６のソースコードがコンパイルされることによって、判定コード１１６の実行コードが生成される。
そして、判定コード１１６の実行コードがハイパーバイザ１１０の実行コードに連結される。
但し、判定コード１１６のソースコードが作成されずに判定コード１１６の実行コードが機械語を用いて作成されても構わない。
【００２８】
次に、情報処理装置１００の定常状態について説明する。
情報処理装置１００は以下のように定常状態になる。
まず、情報処理装置１００の電源が投入されるとブートローダが実行され、ハイパーバイザ１１０の実行コードがストレージ１０３からメモリ１０２に読み込まれる。これにより、メモリ１０２のハイパーバイザ領域が図３に示す状態となる。
次に、プロセッサ１０１の実行コンテキストがハイパーバイザ１１０に遷移する。ハイパーバイザ１１０は、第１ゲストＯＳ１２１と第２ゲストＯＳ１２２とのそれぞれのイメージをストレージ１０３から読み出し、メモリ１０２に展開する。但し、ブートローダによって、第１ゲストＯＳ１２１および第２ゲストＯＳ１２２がストレージ１０３からメモリ１０２に展開されても構わない。
次に、第１ゲストＯＳ１２１と第２ゲストＯＳ１２２との実行が開始される。その後、第１アプリケーション１３１が第１ゲストＯＳ１２１によってストレージ１０３からメモリ１０２に展開され、第２アプリケーション１３２および第３アプリケーション１３３がストレージ１０３からメモリ１０２に展開される。これにより、メモリ１０２の各ゲストＯＳ領域が図３に示す状態となる。
そして、第１アプリケーション１３１は第１ゲストＯＳ１２１によって実行され、第２アプリケーション１３２および第３アプリケーション１３３は第２ゲストＯＳ１２２によって実行される。
【００２９】
＊＊＊動作の説明＊＊＊
情報処理装置１００の動作はアクセス管理方法に相当する。また、アクセス管理方法の手順はアクセス管理プログラムの手順に相当する。
【００３０】
アクセス管理プログラムは、ストレージ１０３に記憶され、メモリ１０２にロードされ、プロセッサ１０１によって実行される。
アクセス管理プログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。
【００３１】
図６に基づいて、アクセス管理方法を説明する。
アクセス管理方法の処理は、システムリソースに対するアクセス要求が発生した場合に実行される。
【００３２】
ステップＳ１１０において、アクセス制御部１１２はアクセス要求を受け付ける。
アクセス要求は、要求元識別子と対象リソース情報とを含む。
要求元識別子は、要求元を識別する。要求元は、アクセス要求を出した要素である。具体的には、要求元は第１ゲストＯＳ１２１または第２ゲストＯＳ１２２であり、要求元識別子は第１ゲストＯＳ１２１と第２ゲストＯＳ１２２とのいずれかのゲストＯＳ  ＩＤである。
対象リソース情報は、対象リソースを特定する。対象リソースは、アクセス対象となるシステムリソースである。具体的には、対象リソースはメモリ領域であり、対象リソース情報はメモリ領域のアドレスである。
【００３３】
ステップＳ１２０において、テーブル判定部１１３は、アクセス要求に応じてテーブル判定処理を行う。
テーブル判定処理は、権限テーブル１１５を参照することによってアクセス権限の有無を判定する処理である。
【００３４】
具体的には、テーブル判定部１１３は以下のように動作する。
まず、テーブル判定部１１３は、アクセス要求に含まれるゲストＯＳ  ＩＤと同じゲストＯＳ  ＩＤに対応付けられたアドレス範囲を権限テーブル１１５から取得する。取得されたアドレス範囲を対象アドレス範囲という。
次に、テーブル判定部１１３は、アクセス要求に含まれるアドレスを対象アドレス範囲と比較する。
アクセス要求に含まれるアドレスが対象アドレス範囲に含まれる場合、テーブル判定部１１３はアクセス権限が有ると判定する。
アクセス要求に含まれるアドレスが対象アドレス範囲に含まれない場合、テーブル判定部１１３はアクセス権限が無いと判定する。
【００３５】
ステップＳ１２０でアクセス権限が有ると判定された場合、処理はステップＳ１３０に進む。
ステップＳ１２０でアクセス権限が無いと判定された場合、処理はステップＳ１５０に進む。
【００３６】
ステップＳ１３０において、コード判定部１１４は、アクセス要求に応じてコード判定処理を行う。
コード判定処理は、判定コード１１６を実行することによってアクセス権限の有無を判定する処理である。
【００３７】
具体的には、コード判定部１１４は、判定コード１１６を実行し、判定コード１１６からの戻り値を参照する。
判定コード１１６からの戻り値が「１」である場合、コード判定部１１４はアクセス権限が有ると判定する。
判定コード１１６からの戻り値が「０」である場合、コード判定部１１４はアクセス権限が無いと判定する。
【００３８】
ステップＳ１３０でアクセス権限が有ると判定された場合、処理はステップＳ１４０に進む。
ステップＳ１３０でアクセス権限が無いと判定された場合、処理はステップＳ１５０に進む。
【００３９】
ステップＳ１４０において、アクセス制御部１１２は、対象リソースに対するアクセスを許可する。
【００４０】
ステップＳ１５０において、アクセス制御部１１２は、対象リソースに対するアクセスを拒否する。
【００４１】
アクセス管理方法（図６参照）において、アクセス管理部１１１は、テーブル判定処理（Ｓ１２０）によってアクセス権限が有ると判定し、且つ、コード判定処理（Ｓ１３０）によってアクセス権限が有ると判定した場合に、対象リソースに対するアクセスを許可する。
【００４２】
権限テーブル１１５が改ざんされ、不正なアクセス要求が発生した場合であっても、アクセス管理方法によって、対象リソースに対するアクセスを拒否することができる。
【００４３】
図７に、改ざん後の権限テーブル１１５を示す。
図７の権限テーブル１１５において、第１ゲストＯＳ１２１に対応付けられた終了アドレスが０ｘ４００００００から０ｘ５００００００に改ざんされている。
例えば、入出力インタフェース１０４を介して外部機器によって行われるセキュリティ攻撃、または、不正なゲストＯＳによるローハンマー攻撃などによって、権限テーブル１１５は改ざんされる。
【００４４】
権限テーブル１１５が改ざんされた後、０ｘ４５０００００のメモリ領域に対するアクセス要求が第１ゲストＯＳ１２１から発行されたものとする。
権限テーブル１１５（図７参照）において、０ｘ４５０００００は、第１ゲストＯＳ１２１に対応付けられたアドレス範囲に含まれる。そのため、テーブル判定処理（Ｓ１２０）によって、アクセス権限が有ると判定される。
判定コード１１６（図５参照）において、第１ゲストＯＳ１２１からのアクセス要求に対応する条件分岐文は条件分岐文（１）である。条件分岐文（１）において、０ｘ４５０００００は、条件式の中で指定されているアドレス範囲に含まれない。そのため、コード判定処理（Ｓ１３０）によって、アクセス権限が無いと判定される。
その結果、テーブル判定処理（Ｓ１２０）によってアクセス権限が有ると判定されるがコード判定処理（Ｓ１３０）によってアクセス権限が無いと判定されるため、０ｘ４５０００００のメモリ領域に対するアクセスは許可されない。
【００４５】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１では、アクセス要求に対して、権限テーブル１１５を用いた従来の判定に加え、権限テーブル１１５から導出された判定コード１１６を用いて判定が行われる。そのため、攻撃または不正によって権限テーブル１１５が改ざんされた場合においても、アクセス要求に対する正しい判定を行うことができる。
権限テーブル１１５と判定コード１１６とがデータ領域とコード領域とに別れて配置されるため、同じ種類の攻撃によって権限テーブル１１５と判定コード１１６との両方を改ざんすることは困難である。また、データ領域における格納位置の推定に比べてコード領域における格納位置の推定は困難である。したがって、実施の形態１は、より強固なセキュリティを実現している。
アクセス管理部１１１は、テーブル判定処理（Ｓ１２０）によってアクセス権限が有ると判定した場合にコード判定処理（Ｓ１３０）を行う。これにより、コード判定処理（Ｓ１３０）によってアクセス権限が無いと判定された場合、アクセス管理部１１１は権限テーブル１１５が改ざんされていると判定することができる。つまり、アクセス管理部１１１は、権限テーブル１１５の改ざんを検出することができる。
【００４６】
実施の形態２．
ハイパーバイザが存在しない形態、つまり、一つＯＳが使用される形態について、主に実施の形態１と異なる点を図８から図１１に基づいて説明する。
【００４７】
＊＊＊構成の説明＊＊＊
図８に基づいて、プロセッサ１０１の構成を説明する。
プロセッサ１０１は、ＯＳ１４０と第１アプリケーション１４１と第２アプリケーション１４２とを実行する。
プロセッサ１０１は、ＯＳ１４０を実行することによって、アクセス管理部１１１として機能する。
【００４８】
図９に基づいて、メモリ１０２の構成を説明する。
メモリ１０２は、ＯＳ領域を有する。
ＯＳ領域は、ＯＳ１４０用のメモリ領域である。
【００４９】
ＯＳ領域は、データ領域とコード領域とを有する。
データ領域には、権限テーブル１１５などが配置される。
コード領域には、アクセス管理部１１１、判定コード１１６、第１アプリケーション１４１および第２アプリケーション１４２などが配置される。
【００５０】
図１０に基づいて、権限テーブル１１５の構成を説明する。
権限テーブル１１５は、アプリケーションＩＤとアプリケーション名と項番とアドレス範囲と属性とのそれぞれの欄を有する。
アプリケーションＩＤの欄は、アプリケーションを識別する識別子であるアプリケーションＩＤを示す。
アプリケーション名の欄は、アプリケーションの名称であるアプリケーション名を示す。
項番の欄は、アプリケーションがアクセスすることが可能な１つ以上のアドレス空間のそれぞれを識別する番号を示す。
アドレス範囲の欄は、アプリケーションがアクセスすることが可能なアドレス空間の範囲を示す。
属性の欄は、アクセス権限の属性を示す。
【００５１】
図１１に基づいて、判定コード１１６の構成を説明する。図１１は、判定コード１１６のソースコードを示している。
判定コード１１６は、権限テーブル１１５に対応する３つの条件分岐文を含んでいる。それぞれの条件分岐文は条件式を含んでいる。
条件分岐文（１）は、権限テーブル１１５の第１行に対応する条件分岐文である。アプリケーションＩＤが１であり、アクセスされるメモリ領域のアドレスが０ｘ２００００００から０ｘ４００００００までの範囲内である場合、条件分岐文（１）によって戻り値「１」が出力される。戻り値「１」はアクセス権限が有ることを意味する。
条件分岐文（２）は、権限テーブル１１５の第２行に対応する条件分岐文である。アプリケーションＩＤが２であり、アクセスされるメモリ領域のアドレスが０ｘ８００００００から０ｘａ００００００までの範囲内である場合、条件分岐文（２）によって戻り値「１」が出力される。
条件分岐文（１）が示す条件と条件分岐文（２）が示す条件とのいずれも成り立たない場合、条件分岐文（３）によって戻り値「０」が出力される。戻り値「０」はアクセス権限が無いことを意味する。
【００５２】
＊＊＊動作の説明＊＊＊
アクセス管理方法は、実施の形態１（図６参照）と同じである。
つまり、アクセス管理部１１１は、テーブル判定処理（Ｓ１２０）によってアクセス権限が有ると判定し、且つ、コード判定処理（Ｓ１３０）によってアクセス権限が有ると判定した場合に、対象リソースに対するアクセスを許可する。
【００５３】
＊＊＊実施の形態２の効果＊＊＊
実施の形態２では、通常のＯＳにおけるアプリケーションに対しても、アクセス権限の多重化が行える。そして、攻撃または不正によって権限テーブル１１５が改ざんされた場合においても、アクセス要求に対する正しい判定を行うことができる。
【００５４】
実施の形態３．
権限テーブル１１５が更新された場合に判定コード１１６を更新する形態について、主に実施の形態１と異なる点を図１２から図１７に基づいて説明する。
【００５５】
＊＊＊構成の説明＊＊＊
図１２に基づいて、プロセッサ１０１の構成を説明する。
プロセッサ１０１は、実施の形態１（図２参照）で説明した要素の他に、第３ゲストＯＳ１２３と第４アプリケーション１３４とを実行する。
第３ゲストＯＳ１２３は、ハイパーバイザ１１０によって割り当てられたハードウェア資源を用いて実行される。
第４アプリケーション１３４は、第３ゲストＯＳ１２３に割り当てられたハードウェア資源を用いて実行される。
【００５６】
ハイパーバイザ１１０は、アクセス管理部１１１を備える。
アクセス管理部１１１は、実施の形態１（図２参照）で説明した要素の他に、コード生成部１５１を備える。
コード生成部１５１は、権限テーブル１１５に対応する判定コード１１６を生成する。
【００５７】
図１３に基づいて、メモリ１０２の構成を説明する。
メモリ１０２は、実施の形態１（図３参照）で説明したメモリ領域の他に、第３ゲストＯＳ領域を有する。
第３ゲストＯＳ領域は、第３ゲストＯＳ１２３用のメモリ領域である。
具体的には、第３ゲストＯＳ領域は、０ｘｂ００００００から０ｘｄ００００００までのアドレス空間である。つまり、第３ゲストＯＳ領域の開始アドレスは０ｘｂ００００００であり、第３ゲストＯＳ領域の終了アドレスは０ｘｄ００００００である。
【００５８】
図１４に基づいて、権限テーブル１１５の構成を説明する。
権限テーブル１１５は、実施の形態１（図４参照）で説明した行の他に、第３ゲストＯＳ１２３の権限情報を示す第３行を含む。
具体的には、権限テーブル１１５の第３行は、ゲストＯＳ  ＩＤ「３」で識別される第３ゲストＯＳ１２３が０ｘｂ００００００から０ｘｄ００００００までのアドレス空間に対して読み出しおよび書き込みをする権限を有することを意味する。
【００５９】
図１５に基づいて、判定コード１１６の構成を説明する。
判定コード１１６は、実施の形態１（図５参照）で説明した条件分岐文の他に、条件分岐文（４）を含む。
条件分岐文（４）は、権限テーブル１１５の第３行に対応する条件分岐文である。ゲストＯＳ  ＩＤが３であり、アクセスされるメモリ領域のアドレスが０ｘｂ００００００から０ｘｄ００００００までの範囲内である場合、条件分岐文（４）によって戻り値「１」が出力される。戻り値「１」はアクセス権限が有ることを意味する。
【００６０】
＊＊＊動作の説明＊＊＊
図１６に基づいて、更新処理を説明する。
更新処理は、権限テーブル１１５が更新される場合に実行される処理である。
【００６１】
ステップＳ３１０において、ハイパーバイザ１１０は、権限テーブル１１５を更新する。権限テーブル１１５を更新する方法は、従来の方法と同じである。
具体的には、ハイパーバイザ１１０は、第３ゲストＯＳ１２３を追加するために、権限テーブル１１５を図４の状態から図１４の状態に更新する。
【００６２】
ステップＳ３２０において、コード生成部１５１は、権限テーブル１１５に対応する判定コード１１６を生成する。
【００６３】
具体的には、コード生成部１５１は以下のように判定コード１１６の実行コードを生成する。
まず、コード生成部１５１は、権限テーブル１１５に基づいて判定コード１１６のソースコードを生成する。
そして、コード生成部１５１は、判定コード１１６のソースコードをコンパイルすることによって、判定コード１１６の実行コードを生成する。
【００６４】
具体的には、コード生成部１５１は、図１４の権限テーブル１１５と図１７のコードフォーマット１５２とを用いて、図１５に示す判定コード１１６のソースコードを生成する。
【００６５】
図１７に基づいて、コードフォーマット１５２を説明する。
コードフォーマット１５２は、判定コード１１６のソースコードを生成するためのフォーマットである。
コードフォーマット１５２は、３つのフォーマット文を含んでいる。
フォーマット文（１）は、権限テーブル１１５の第１行に対応する条件分岐文のフォーマットである。
フォーマット文（２）は、権限テーブル１１５の第ｎ行に対応する条件分岐文のフォーマットである。ｎは２以上の整数である。
【００６６】
フォーマット文（１）およびフォーマット文（２）は、変数Ｘ、変数Ｙおよび変数Ｚを含む。
変数Ｘは、ゲストＯＳ  ＩＤが設定される変数である。
変数Ｙは、開始アドレスが設定される変数である。
変数Ｚは、終了アドレスが設定される変数である。
【００６７】
フォーマット文（３）は、判定コード１１６のソースコードの最後に付加される条件分岐文である。
【００６８】
まず、コード生成部１５１は、フォーマット文（１）を用いて、権限テーブル１１５の第１行に対応する条件分岐文を生成する。つまり、コード生成部１５１は、フォーマット文（１）に含まれる変数Ｘに、権限テーブル１１５の第１行に含まれるゲストＯＳ  ＩＤを設定する。さらに、コード生成部１５１は、フォーマット文（１）に含まれる変数Ｙに、権限テーブル１１５の第１行に含まれる開始アドレスを設定する。さらに、コード生成部１５１は、フォーマット文（１）に含まれる変数Ｚに、権限テーブル１１５の第１行に含まれる終了アドレスを設定する。
次に、コード生成部１５１は、フォーマット文（２）を用いて、権限テーブル１１５の第ｎ行に対応する条件文を生成する。つまり、コード生成部１５１は、フォーマット文（２）に含まれる変数Ｘに、権限テーブル１１５の第ｎ行に含まれるゲストＯＳ  ＩＤを設定する。さらに、コード生成部１５１は、フォーマット文（２）に含まれる変数Ｙに、権限テーブル１１５の第ｎ行に含まれる開始アドレスを設定する。さらに、コード生成部１５１は、フォーマット文（２）に含まれる変数Ｚに、権限テーブル１１５の第ｎ行に含まれる終了アドレスを設定する。
そして、コード生成部１５１は、フォーマット文（３）を判定コード１１６のソースコードの最後に付加する。
【００６９】
図１６に戻り、ステップＳ３３０を説明する。
ステップＳ３３０において、ハイパーバイザ１１０は、メモリ１０２に記憶されている判定コード１１６を、権限テーブル１１５に対応する判定コード１１６に更新する。
つまり、ハイパーバイザ１１０は、メモリ１０２に記憶されている判定コード１１６を、ステップＳ３２０で生成された判定コード１１６に置き換える。
【００７０】
＊＊＊実施の形態３の補足＊＊＊
メモリ１０２は、要求元の上限数に対応する領域サイズを有するメモリ領域を、判定コード１１６用のメモリ領域として、コード領域の中に確保する。
具体的には、利用者が、要求元の最大数を定義し、要求元の最大数に基づいて判定コード１１６の最大サイズを見積もる。判定コード１１６の最大サイズは、判定コード１１６の実行コードを配置するために必要な領域サイズの最大値である。そして、利用者は判定コード１１６の最大サイズを情報処理装置１００に設定し、メモリ１０２は判定コード１１６の最大サイズを有するメモリ領域をコード領域の中に確保する。
【００７１】
判定コード１１６の実行コードをハイパーバイザ１１０と動的にリンクすることが可能であれば、判定コード１１６のソースコードはＣ言語以外の言語で記述されてもよい。
動的な変更が永続的な変更である場合、判定コード１１６の実行コード（バイナリ）は、ストレージ１０３に格納され、再起動後の使用が可能な形態を保つ。
【００７２】
実施の形態３は実施の形態２に適用してもよい。
つまり、実施の形態２におけるアクセス管理部１１１がコード生成部１５１を備えてもよい。
【００７３】
＊＊＊実施の形態３の効果＊＊＊
実施の形態３によって、権限テーブル１１５の更新に応じて判定コード１１６を動的に生成することができる。そのため、ハイパーバイザ１１０が動作を開始した後においても、ゲストＯＳの数に応じたアクセス権限の設定が可能である。
【００７４】
実施の形態４．
権限テーブル１１５と判定コード１１６とのうちのいずれかのデータが改ざんされた場合に改ざんされたデータを修復する形態について、主に実施の形態１と異なる点を図１８から図２１に基づいて説明する。
【００７５】
＊＊＊構成の説明＊＊＊
図１８に基づいて、プロセッサ１０１の構成を説明する。
プロセッサ１０１は、ハイパーバイザ１１０を実行する。
ハイパーバイザ１１０は、アクセス管理部１１１を備える。
アクセス管理部１１１は、実施の形態１（図２参照）で説明した要素の他に、改ざん特定部１６１と改ざん修復部１６２とを備える。
改ざん特定部１６１と改ざん修復部１６２とのそれぞれの機能については後述する。
【００７６】
図１９に基づいて、メモリ１０２の構成を説明する。
メモリ１０２は、ハイパーバイザ領域を有する。ハイパーバイザ領域は、データ領域とコード領域とを有する。
コード領域には、アクセス管理部１１１、第１判定コード１１６１および第２判定コード１１６２などが配置される。
第１判定コード１１６１および第２判定コード１１６２は、実施の形態１（図５参照）で説明した判定コード１１６と同じである。
【００７７】
＊＊＊動作の説明＊＊＊
図２０および図２１に基づいて、アクセス管理方法を説明する。
ステップＳ４０１（図２０参照）において、アクセス制御部１１２はアクセス要求を受け付ける。
【００７８】
ステップＳ４０２において、アクセス制御部１１２は判定フラグを初期化する。
判定フラグは、３ビットを有するフラグである。判定フラグにおいて、第１ビットはテーブル判定処理（Ｓ４１０）の結果を示すビットとして用いられ、第２ビットは第１コード判定処理（Ｓ４２０）の結果を示すビットとして用いられ、第３ビットは第２コード判定処理（Ｓ４３０）の結果を示すビットとして用いられる。ビット値「０」はアクセス権限が有ると判定されたことを意味し、ビット値「１」はアクセス権限が無いと判定されたことを意味する。
具体的には、アクセス制御部１１２は判定フラグに０を設定する。その結果、判定フラグにおいて、第１ビット、第２ビットおよび第３ビットは全ての０になる。
【００７９】
ステップＳ４１０において、テーブル判定部１１３は、テーブル判定処理によって、アクセス権限の有無を判定する。
アクセス権限が有ると判定された場合、処理はステップＳ４２０に進む。
アクセス権限が無いと判定された場合、処理はステップＳ４１１に進む。
【００８０】
ステップＳ４１１において、アクセス制御部１１２は判定フラグに１を加算する。
その結果、判定フラグの第１ビットが０から１に変わる。
【００８１】
ステップＳ４２０において、コード判定部１１４は、第１コード判定処理によって、アクセス権限の有無を判定する。
第１コード判定処理は、第１判定コード１１６１を実行することによってアクセス権限の有無を判定するコード判定処理である。
アクセス権限が有ると判定された場合、処理はステップＳ４３０に進む。
アクセス権限が無いと判定された場合、処理はステップＳ４２１に進む。
【００８２】
ステップＳ４２１において、アクセス制御部１１２は判定フラグに２を加算する。
その結果、判定フラグの第２ビットが０から１に変わる。
【００８３】
ステップＳ４３０において、コード判定部１１４は、第２コード判定処理によって、アクセス権限の有無を判定する。
第２コード判定処理は、第２判定コード１１６２を実行することによってアクセス権限の有無を判定するコード判定処理である。
アクセス権限が有ると判定された場合、処理はステップＳ４４１（図２１参照）に進む。
アクセス権限が無いと判定された場合、処理はステップＳ４３１に進む。
【００８４】
ステップＳ４３１において、アクセス制御部１１２は判定フラグに４を加算する。
その結果、判定フラグの第３ビットが０から１に変わる。
ステップＳ４３１の後、処理はステップＳ４４１（図２１参照）に進む。
【００８５】
ステップＳ４４０において、アクセス制御部１１２は、判定フラグが０であるか判定する。フラグ値「０」は、テーブル判定処理（Ｓ４１０）と第１コード判定処理（Ｓ４２０）と第２コード判定処理（Ｓ４３０）との全ての判定処理でアクセス権限が有ると判定されたことを意味する。
判定フラグが０である場合、処理はステップＳ４４１に進む。
判定フラグが０でない場合、処理はステップＳ４５０に進む。
【００８６】
ステップＳ４４１において、アクセス制御部１１２は、対象リソースに対するアクセスを許可する。
【００８７】
ステップＳ４５０において、アクセス制御部１１２は、判定フラグが７であるか判定する。フラグ値「７」は、テーブル判定処理（Ｓ４１０）と第１コード判定処理（Ｓ４２０）と第２コード判定処理（Ｓ４３０）との全ての判定処理でアクセス権限が無いと判定されたことを意味する。
判定フラグが７である場合、処理はステップＳ４５１に進む。
判定フラグが７でない場合、処理はステップＳ４６０に進む。
【００８８】
ステップＳ４５１において、アクセス制御部１１２は、対象リソースに対するアクセスを許可しない。
【００８９】
処理がステップＳ４６０に進む場合、判定フラグは０と７とのいずれでもない。
つまり、テーブル判定処理（Ｓ４１０）と第１コード判定処理（Ｓ４２０）と第２コード判定処理（Ｓ４３０）とのうちのいずれかの判定処理の結果が他の判定処理の結果と一致していない。
この場合、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちのいずれかのデータが改ざんされている。
【００９０】
ステップＳ４６０において、アクセス制御部１１２は、判定フラグが３、５または６であるか判定する。
判定フラグが３、５または６である場合、処理はステップＳ４６１に進む。
判定フラグが１、２または４である場合、処理はステップＳ４６４に進む。
【００９１】
ステップＳ４６１において、改ざん特定部１６１は、判定フラグに基づいて、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちの改ざんされたデータを特定する。
具体的には、改ざん特定部１６１は、判定フラグが有する３ビットから、０が設定されているビットを特定する。
第１ビットが０である場合、改ざんされたデータは権限テーブル１１５である。
第２ビットが０である場合、改ざんされたデータは第１判定コード１１６１である。
第３ビットが０である場合、改ざんされたデータは第２判定コード１１６２である。
【００９２】
ステップＳ６４２において、改ざん修復部１６２は、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちの改ざんされたデータ以外のデータに基づいて、改ざんされたデータを修復する。
改ざんされたデータが権限テーブル１１５である場合、第１判定コード１１６１および第２判定コード１１６２の中の条件式に設定されているアドレス範囲に合わせて、権限テーブル１１５に設定されているアドレス範囲を修正することによって、権限テーブル１１５を修復する。
改ざんされたデータが第１判定コード１１６１である場合、権限テーブル１１５に設定されているアドレス範囲に合わせて、第１判定コード１１６１の中の条件式に設定されているアドレス範囲を修正することによって、第１判定コード１１６１を修復する。
改ざんされたデータが第２判定コード１１６２である場合、権限テーブル１１５に設定されているアドレス範囲に合わせて、第２判定コード１１６２の中の条件式に設定されているアドレス範囲を修正することによって、第２判定コード１１６２を修復する。
【００９３】
ステップＳ４６３において、アクセス制御部１１２は、対象リソースに対するアクセスを許可しない。
【００９４】
ステップＳ４６４において、改ざん特定部１６１は、判定フラグに基づいて、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちの改ざんされたデータを特定する。
具体的には、改ざん特定部１６１は、判定フラグが有する３ビットから、１が設定されているビットを特定する。
第１ビットが１である場合、改ざんされたデータは権限テーブル１１５である。
第２ビットが１である場合、改ざんされたデータは第１判定コード１１６１である。
第３ビットが１である場合、改ざんされたデータは第２判定コード１１６２である。
【００９５】
ステップＳ６４５において、改ざん修復部１６２は、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちの改ざんされたデータ以外のデータに基づいて、改ざんされたデータを修復する。
修復方法は、ステップＳ４６２と同じである。
【００９６】
ステップＳ４６６において、アクセス制御部１１２は、対象リソースに対するアクセスを許可する。
【００９７】
＊＊＊実施の形態４の補足＊＊＊
アクセス権限の判定に必要な処理時間は十分に短いと想定される。そのため、権限情報に対する攻撃において、アクセス権限の判定に必要な処理時間よりも短い時間で権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちの２つ以上のデータを改ざんされることは困難であると想定される。
第１判定コード１１６１と第２判定コード１１６２との全体の計算量の平準化の観点から、第１判定コード１１６１においては図５のように条件分岐文（１）の後に条件分岐文（２）を記述し、第２判定コード１１６２においては条件分岐文（２）の後に条件分岐文（１）を記述してもよい。
ステップＳ４４０、ステップＳ４５０およびステップＳ４６０における条件分岐は、３ビットの判定フラグにおける１ビット誤りを訂正する処理を行うことに等しい。
【００９８】
実施の形態４は実施の形態２および実施の形態３に適用してもよい。
つまり、実施の形態２におけるアクセス管理部１１１が改ざん特定部１６１および改ざん修復部１６２を備えてもよい。
また、実施の形態３におけるアクセス管理部１１１が改ざん特定部１６１および改ざん修復部１６２を備えてもよい。
【００９９】
＊＊＊実施の形態４の効果＊＊＊
実施の形態４によって、権限テーブル１１５と第１判定コード１１６１と第２判定コード１１６２とのうちのいずれかのデータの改ざんを検出することが可能であり、且つ、改ざんされたデータを修正することが可能である。
＊＊＊実施の形態の補足＊＊＊
実施の形態において、情報処理装置１００の機能はハードウェアで実現してもよい。
図２２に、情報処理装置１００の機能がハードウェアで実現される場合の構成を示す。
情報処理装置１００は処理回路９９０を備える。処理回路９９０はプロセッシングサーキットリともいう。
処理回路９９０は、プロセッサ１０１とメモリ１０２とストレージ１０３とを実現する専用の電子回路である。
例えば、処理回路９９０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【０１００】
情報処理装置１００は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９０の役割を分担する。
【０１０１】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１０２】
１００  情報処理装置、１０１  プロセッサ、１０２  メモリ、１０３  ストレージ、１０４  入出力インタフェース、１１０  ハイパーバイザ、１１１  アクセス管理部、１１２  アクセス制御部、１１３  テーブル判定部、１１４  コード判定部、１１５  権限テーブル、１１６  判定コード、１１６１  第１判定コード、１１６２  第２判定コード、１２１  第１ゲストＯＳ、１２２  第２ゲストＯＳ、１２３  第３ゲストＯＳ、１３１  第１アプリケーション、１３２  第２アプリケーション、１３３  第３アプリケーション、１３４  第４アプリケーション、１４０  ＯＳ、１４１  第１アプリケーション、１４２  第２アプリケーション、１５１  コード生成部、１５２  コードフォーマット、１６１  改ざん特定部、１６２  改ざん修復部、９９０  処理回路。
【図１】
0006541912.tif 000002
【図２】
0006541912.tif 000003
【図３】
0006541912.tif 000004
【図４】
0006541912.tif 000005
【図５】
0006541912.tif 000006
【図６】
0006541912.tif 000007
【図７】
0006541912.tif 000008
【図８】
0006541912.tif 000009
【図９】
0006541912.tif 000010
【図１０】
0006541912.tif 000011
【図１１】
0006541912.tif 000012
【図１２】
0006541912.tif 000013
【図１３】
0006541912.tif 000014
【図１４】
0006541912.tif 000015
【図１５】
0006541912.tif 000016
【図１６】
0006541912.tif 000017
【図１７】
0006541912.tif 000018
【図１８】
0006541912.tif 000019
【図１９】
0006541912.tif 000020
【図２０】
0006541912.tif 000021
【図２１】
0006541912.tif 000022
【図２２】
0006541912.tif 000023