(57)【要約】【課題】セキュアレベルを動的に設定することにより、アプリケーションプログラムを柔軟に実行することができるようにする。【解決手段】  セキュアレベルモジュール７１は、アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラム４２であるかどうかを判定し、トラステッドアプリケーションプログラム４２であると判定した場合、トラステッドアプリケーションプログラム４２が要求するセキュアレベルを認識する。そして、セキュアレベルモジュール７１は、実行中、およびこれから実行しようとするアプリケーションプログラムのセキュアレベルのうちの最も高いセキュアレベルをコンピュータのセキュアレベルに設定する。本発明は、例えば、コンピュータ上で実行されるＯＳに適用することができる。【選択図】図２
2005149394.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの実行環境を制御する情報処理装置において、
前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定手段と、
前記判定手段により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識手段と、
実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを、前記情報処理装置のセキュアレベルに設定する設定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段により設定された前記情報処理装置のセキュアレベルに応じて、前記トラステッドアプリケーションプログラム以外のアプリケーションプログラムであるアントラステッドアプリケーションプログラムのリソースの使用を制限するリソース制限手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記トラステッドアプリケーションプログラムの実行が終了した場合、前記設定手段により設定された前記情報処理装置のセキュアレベルを、実行中の前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルに変更する変更手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記トラステッドアプリケーションプログラムは、前記正当な電子署名と前記トラステッドアプリケーションが要求するセキュアレベルを、少なくとも有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムと、前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルとを対応づけたセキュアレベルテーブルを記憶する記憶手段をさらに備え、
前記設定手段は、前記記憶手段により記憶されたセキュアレベルテーブルに基づいて、前記情報処理装置のセキュアレベルを設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
アプリケーションプログラムの実行環境を制限する情報処理装置の情報処理方法において、
前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、
前記判定ステップの処理により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、
実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを、前記情報処理装置のセキュアレベルに設定する設定ステップと
を含むことを特徴とする情報処理方法。
【請求項７】
アプリケーションプログラムの実行環境を制限する処理を、コンピュータに行わせるプログラムにおいて、
前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、
前記判定ステップの処理により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、
実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを前記コンピュータのセキュアレベルに設定する設定ステップと
を含むことを特徴とするプログラム。
【請求項８】
アプリケーションプログラムの実行環境を制御する処理を、コンピュータに行わせるプログラムが記録されている記録媒体において、
前記アプリケーションプログラムが、電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、
前記判定ステップの処理により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、
実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを前記コンピュータのセキュアレベルに設定する設定ステップと
を含むことを特徴とするプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、プログラム、並びに記録媒体に関し、特に、セキュアレベルを動的に設定することにより、アプリケーションプログラムを柔軟に実行することができるようにする情報処理装置および情報処理方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
例えば、BSD（Berkeley Software Distribution）においては、カーネルレベルで、ブート時にセキュアレベル（secure level）が設定される。そして、ブート後はスーパーユーザ（アドミニストレータ）がセキュアレベルを上げることができる。
【０００３】
ここで、コンピュータのセキュリティに関する技術としては、例えば、ＯＳ（Operating System）上で実行される各タスクのセキュリティレベルをＯＳの内部に保持させ、そのセキュリティレベルと、タスク間の通信用関数のセキュリティレベルとに基づき、タスクのメモリとして、セキュリティ有りのレベルが書き込まれるセキュアメモリブロックと、セキュリティ無しのレベルが書き込まれるノンセキュアメモリブロックのうちの一方を選択するタスク間通信方法がある（例えば、特許文献１参照）。
【０００４】
また、従来では、ＯＳの完全性を保護するため、あるアプリケーションの動作が他のアプリケーション、またはＯＳ全体に影響を与えないように、そのアプリケーションに対してバーチャル環境（virtual environment）を提供し、そのバーチャル環境をコンパートメント（Compartment）化する方法が用いられることがある。
【０００５】
【特許文献１】特開２００２−４９４９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＯＳの動作中に、スーパーユーザがセキュアレベルを上げることしかできない場合、正当な電子署名（Signature）のあるアプリケーションであるトラステッドアプリケーション（Trusted Application）（のプログラム）を実行させるトラステッドプラットフォーム（Trusted Platform）上で、正当な電子署名のないアントラステッドアプリケーション（Untrusted Application）（のプログラム）を実行させることが困難であるという課題があった。
【０００７】
即ち、トラステッドアプリケーションを実行するために、ブート時にセキュアレベルが高いレベルに設定された場合、そのトラステッドアプリケーションの実行が終了しても、セキュアレベルが高いままとなるので、正当な電子署名のない信頼できないアントラステッドアプリケーションは、高いセキュアレベルに制限され、実行することができない。
【０００８】
従って、トラステッドプラットフォームにおいて、トラステッドアプリケーションを実行しない間に、オープンソースのようなアントラステッドアプリケーションを実行したいという一般ユーザの期待に応じることは困難であった。
【０００９】
また、バーチャル環境をコンパートメント化する方法は、ホストシステムとは別に、コンパートメント毎に各々のアプリケーションに対してリソースを用意する必要があり、リソースを浪費することになる。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、セキュアレベルを動的に設定することにより、アプリケーションプログラムを柔軟に実行することができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の情報処理装置は、アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定手段と、判定手段によりアプリケーションプログラムがトラステッドアプリケーションプログラムであると判定された場合、トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識手段と、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルを、情報処理装置のセキュアレベルに設定する設定手段とを備えることを特徴とする。
【００１２】
この情報処理装置には、設定手段により設定された情報処理装置のセキュアレベルに応じて、トラステッドアプリケーションプログラム以外のアプリケーションプログラムであるアントラステッドアプリケーションプログラムのリソースの使用を制限するリソース制限手段をさらに設けることができる。
【００１３】
情報処理装置には、トラステッドアプリケーションプログラムの実行が終了した場合、設定手段により設定された情報処理装置のセキュアレベルを、実行中のトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルに変更する変更手段をさらに設けることができる。
【００１４】
トラステッドアプリケーションプログラムは、正当な電子署名とトラステッドアプリケーションが要求するセキュアレベルを、少なくとも有するようにすることができる。
【００１５】
情報処理装置には、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムと、トラステッドアプリケーションプログラムが要求するセキュアレベルとを対応づけたセキュアレベルテーブルを記憶する記憶手段をさらに設け、設定手段には、記憶手段により記憶されたセキュアレベルテーブルに基づいて、情報処理装置のセキュアレベルを設定するようにさせることができる。
【００１６】
本発明の情報処理方法は、アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、判定ステップの処理によりアプリケーションプログラムがトラステッドアプリケーションプログラムであると判定された場合、トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルを、情報処理装置のセキュアレベルに設定する設定ステップとを含むことを特徴とする。
【００１７】
本発明のプログラムは、アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、判定ステップの処理によりアプリケーションプログラムがトラステッドアプリケーションプログラムであると判定された場合、トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルをコンピュータのセキュアレベルに設定する設定ステップとを含むことを特徴とする。
【００１８】
本発明の記録媒体に記録されているプログラムは、アプリケーションプログラムが、電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップと、判定ステップの処理によりアプリケーションプログラムがトラステッドアプリケーションプログラムであると判定された場合、トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップと、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルをコンピュータのセキュアレベルに設定する設定ステップとを含むことを特徴とする。
【００１９】
本発明においては、アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかが判定され、アプリケーションプログラムがトラステッドアプリケーションプログラムであると判定された場合、トラステッドアプリケーションプログラムが要求するセキュアレベルが認識される。そして、実行中、およびこれから実行しようとするトラステッドアプリケーションプログラムが要求するセキュアレベルのうちの最も高いセキュアレベルが、情報処理装置のセキュアレベルに設定される。
【発明の効果】
【００２０】
本発明によれば、セキュアレベルを動的に設定することにより、アプリケーションプログラムを柔軟に実行することができる。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２２】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００２３】
本発明によれば、情報処理装置が提供される。この情報処理装置は、アプリケーションプログラムの実行環境を制御する情報処理装置において、前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定手段（例えば、図１２のステップＳ１１の処理を実行するセキュアレベルモジュール７１）と、前記判定手段により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識手段（例えば、図１２のステップＳ１２の処理を実行するセキュアレベルモジュール７１）と、実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを、前記情報処理装置のセキュアレベルに設定する設定手段（例えば、図１２のステップＳ１７の処理を実行するセキュアレベルモジュール７１）とを備えることを特徴とする。
【００２４】
この情報処理装置は、前記設定手段により設定された前記情報処理装置のセキュアレベルに応じて、前記トラステッドアプリケーション以外のアプリケーションであるアントラステッドアプリケーションプログラムのリソースの使用を制限するリソース制限手段（例えば、図１４のステップＳ５２の処理を実行するカーネル５１）をさらに備えるようにすることができる。
【００２５】
情報処理装置は、前記トラステッドアプリケーションプログラムの実行が終了した場合、前記設定手段により設定された前記情報処理装置のセキュアレベルを、実行中の前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルに変更する変更手段（例えば、図１３のステップＳ３３の処理を実行するセキュアレベルモジュール７１）をさらに備えるようにすることができる。
【００２６】
前記トラステッドアプリケーションプログラムは、前記正当な電子署名と前記トラステッドアプリケーションが要求するセキュアレベルを、少なくとも有するようにすることができる。
【００２７】
前記実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムと、前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルとを対応づけたセキュアレベルテーブルを記憶する記憶手段（例えば、図１のRAM１３）をさらに備え、前記設定手段は、前記記憶手段により記憶されたセキュアレベルテーブルに基づいて、前記情報処理装置のセキュアレベルを設定するようにすることができる。
【００２８】
また、本発明によれば、情報処理方法も提供される。この情報処理方法は、アプリケーションプログラムの実行環境を制限する情報処理装置の情報処理方法において、前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップ（例えば、図１２のステップＳ１１）と、前記判定ステップの処理により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップ（例えば、図１２のステップＳ１２）と、実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを、前記情報処理装置のセキュアレベルに設定する設定ステップ（例えば、図１２のステップＳ１７）とを含むことを特徴とする。
【００２９】
さらに、本発明によれば、プログラムも提供される。このプログラムは、アプリケーションプログラムの実行環境を制限する処理を、コンピュータに行わせるプログラムにおいて、前記アプリケーションプログラムが、正当な電子署名のあるトラステッドアプリケーションプログラムであるかどうかを判定する判定ステップ（例えば、図１２のステップＳ１１）と、前記判定ステップの処理により前記アプリケーションプログラムが前記トラステッドアプリケーションプログラムであると判定された場合、前記トラステッドアプリケーションプログラムが要求するセキュアレベルを認識する認識ステップ（例えば、図１２のステップＳ１２）と、実行中、およびこれから実行しようとする前記トラステッドアプリケーションプログラムが要求する前記セキュアレベルのうちの最も高いセキュアレベルを前記コンピュータのセキュアレベルに設定する設定ステップ（例えば、図１２のステップＳ１７）とを含むことを特徴とする。
【００３０】
このプログラムは記録媒体に記録することができる。
【００３１】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００３２】
図１は、本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【００３３】
CPU（Central Processing Unit）１１は、ROM(Read Only Memory)１２に記憶されているプログラム、または、記憶部１８からRAM(Random Access Memory)１３にロードされたプログラムにしたがって各種の処理を実行する。RAM１３にはまた、CPU１１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００３４】
CPU１１、ROM１２、およびRAM１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インタフェース１５も接続されている。
【００３５】
入出力インタフェース１５には、キーボード、マウスなどよりなる入力部１６、CRT（Cathode Ray Tube），LCD（Liquid Crystal Display）などよりなるディスプレイやスピーカなどよりなる出力部１７、ハードディスクなどより構成される記憶部１８、モデム、ターミナルアダプタなどより構成される通信部１９が接続されている。通信部１９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【００３６】
入出力インタフェース１５にはまた、必要に応じてドライブ２０が接続されている。ドライブ２０には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどよりなるリムーバブル記録媒体２１が適宜装着され、それから読み出されたプログラムが、必要に応じて記憶部１８にインストールされる。
【００３７】
また、記憶部１８（のリードディスク）には、例えば、アプリケーションプログラムが利用可能な/etcディレクトリ、/binディレクトリ、/sbinディレクトリ、/user/binディレクトリ、/libディレクトリ、/user/libディレクトリ等が構成されている。さらに、記憶部１８には、後述するセキュアレベルＬ０乃至Ｌ４のコンパートメントを指定する情報（コンパートメント指定情報）が記述された設定ファイルが記憶されている。
【００３８】
図２は、図１のコンピュータ上で実行されるプログラムを説明する図である。
【００３９】
なお、セキュアレベルは、プラットホームであるＯＳ４１に対して設定され、使用できるリソース、その影響の範囲等のプログラムの実行環境を制限するものである。図２では、セキュアレベルは、例えば、セキュアレベルＬ０乃至Ｌ４の５段階に設定される。なお、セキュアレベルＬｉ（ｉ＝１，・・・，５）では、ｉが大きいほど、セキュリティが高くなる。即ち、セキュアレベルＬｉでは、ｉが大きいほど、セキュアレベルＬｉで制限される実行環境は広くなる。
【００４０】
また、セキュアレベルＬ０乃至Ｌ４で制限される実行環境を、それぞれセキュアレベルＬ０乃至Ｌ４のコンパートメントといい、後述するトラステッドアプリケーションプログラム４２−１とトラステッドアプリケーションプログラム４２−２によって制限される実行環境をトラステッドアプリのコンパートメントという。
【００４１】
図１のコンピュータでは、ＯＳ４１上で、トラステッドアプリケーションプログラム４２−１、トラステッドアプリケーションプログラム４２−２、およびアントラステッドアプリケーションプログラム４４や、ライブラリ４５などが実行される。なお、以下、トラステッドアプリケーションプログラム４２−１とトラステッドアプリケーションプログラム４２−２をそれぞれトラステッドアプリ４２−１、トラステッドアプリ４２−２ともいい、アントラステッドアプリケーションプログラム４４をアントラステッドアプリ４４ともいう。また、以下、トラステッドアプリ４２−１とトラステッドアプリ４２−２を区別する必要がない場合、トラステッドアプリ４２−１とトラステッドアプリ４２−２をまとめて、トラステッドアプリ４２と称する。
【００４２】
ＯＳ４１は、コンピュータの基本的な動作を制御する基本プログラムである。
【００４３】
ＯＳ４１は、ＯＳ４１の基本機能を実装したプログラムであるカーネル５１と、その他の部分とに分けることができる。カーネル５１は、例えば、後述するセキュアレベルモジュール７１を有し、そのセキュアレベルモジュール７１により設定されたＯＳ４１のセキュアレベルＬ０乃至Ｌ４のコンパートメント指定情報を、記憶部１８から読み出して、そのセキュアレベルＬ０乃至Ｌ４のコンパートメント指定情報に基づいて、後述するアントラステッドアプリ４４のリソースの使用を制限する。
【００４４】
セキュアレベルモジュール７１は、セキュアレベルテーブル（後述する図１０と図１１）をRAM１３に記憶させる。セキュアレベルモジュール７１は、ＯＳ４１のセキュアレベルを設定することにより、トラステッドアプリ４２とアントラステッドアプリ４４の実行環境を制御する。
【００４５】
トラステッドアプリ４２とアントラステッドアプリ４４は、任意のアプリケーションプログラムである。但し、トラステッドアプリ４２は、正当な電子署名のある信頼できるプログラムであり、アントラステッドアプリ４４は、正当な電子署名のない、または電子署名自体がない信頼できないプログラムである。また、トラステッドアプリ４２には、後述するように、ＯＳ４１に要求するセキュアレベル（以下、要求セキュアレベルという）を含むトラステッドアプリ４２のコンパートメント指定情報を有している。
【００４６】
なお、トラステッドアプリ４２とアントラステッドアプリ４４は、必要に応じて、後述するライブラリ４５に格納されている複数の処理ルーチンを利用することができる。
【００４７】
ライブラリ４５には、トラステッドアプリ４２やアントラステッドアプリ４４等が利用する複数の処理ルーチンが格納されている。
【００４８】
図１のコンピュータにおいて、セキュアレベルモジュール７１がＯＳ４１のセキュアレベルを動的に設定する。そして、アントラステッドアプリ４４が実行される場合、カーネル５１は、セキュアレベルモジュール７１により設定されたＯＳ４１のセキュアレベルのコンパートメント指定情報に基づいて、アントラステッドアプリ４４のリソースの使用を制限（または許可）する。
【００４９】
トラステッドアプリ４２とアントラステッドアプリ４４は、必要に応じてライブラリ４５に格納されている処理ルーチンを利用する。
【００５０】
図３は、トラステッドアプリ４２の基本的なフォーマットの例を示している。
【００５１】
図３では、トラステッドアプリ４２のフォーマットは、２重レイヤアプリケーションフォーマットとなっている。トラステッドアプリ４２は、先頭から順に、signature１０１、平文１０２、dev_pkey（key）１０３、key（core）１０４が配置されて構成されている。
【００５２】
signature１０１は、平文１０２、dev_pkey（key）１０３、およびkey（core）１０４から構成されるパッケージの提供者の電子署名である。この電子署名は、トラステッドアプリ４２の正当性を確認するために利用される。
【００５３】
平文１０２は、暗号化されていないコア（core）（例えば、無料のコンテンツやアントラステッドコンテンツを再生するための暗号化の必要がないプログラムの実行コード）である。平文１０２は、例えば、トラステッドアプリ４２のコンパートメント指定情報を含んでいる。
【００５４】
なお、コンパートメント指定情報は、平文１０２ではなく、その他の部分に含まれるようにしてもよい。
【００５５】
dev_pkey（key）１０３は、特定のデバイスまたはシステムの公開鍵dev_pkeyで暗号化した共通鍵keyである。
【００５６】
key（core）１０４は、共通鍵keyで暗号化したコア（core）部分である。
【００５７】
図４は、セキュアレベルＬ１のコンパートメント指定情報の例を示している。
【００５８】
図４に示すように、セキュアレベルＬ１のコンパートメント指定情報は、プロセスケーパビリティ（Process capabilities）とマンダトリアクセスコントロール（Mandatory Access Controls（MAC））とに分項されるマンダトリセキュリティ（Mandatory security）、およびトラステッドパス（Trusted paths）から構成される。
【００５９】
なお、マンダトリセキュリティとは、セキュリティ方針論理とセキュリティ属性の指定とが、明確にあるセキュリティ方針管理者により管理されていることを意味する。マンダトリセキュリティのセキュリティ方針は、例えば、ルール形式で記述される。
【００６０】
マンダトリセキュリティにおけるプロセスケーパビリティとマンダトリアクセスコントロールは、例えば、POSIX（Portable Operating System Interface for UNIX（登録商標）） 1.eなどのような、任意のプラットホームに共通のインタフェースとして提供することができる。プロセスケーパビリティによれば、スーパーユーザの特権（権限）を分割して管理することができる。そして、あるプロセスケーパビリティで管理される特権が有効であるかどうかにより、カーネル５１の振る舞いは異なる。
【００６１】
図４の例では、プロセスケーパビリティとして、カーネルスペースとなっているメモリ空間にアクセスするという特権（CAP_SYS_RAWIO）と、カーネルモジュールのロードおよびアンロードを行うという特権（CAP_SYS_MODULE）が記述されている。そして、その両方の特権を表すプロセスケーパビリティが無効（OFF）にされている。従って、セキュアレベルＬ１のコンパートメントでは、カーネルスペースとなっているメモリ空間へのアクセスと、カーネルモジュールのロードおよびアンロードとが許可されない。
【００６２】
マンダトリアクセスコントロールは、ある実体（エンティティ）が他の実体にどのようなモードでアクセスできるかを表す。
【００６３】
図４の例では、マンダトリアクセスコントロールにおいて、/etcがreadとされている。即ち、セキュアレベルＬ１のコンパートメントでは、/etcディレクトリに対する操作が読み出し（read）のみに制限される。また、マンダトリアクセスコントロールにおいて、/bin、/sbin、/use/bin、/lib、/user/libがreadとされているので、セキュアレベルＬ１のコンパートメントでは、/binディレクトリ、/sbinディレクトリ、/user/binディレクトリ、/libディレクトリ、/user/libディレクトリに対する操作が、いずれも読み出し（read）のみに制限される。
【００６４】
また、トラステッドパスは、トラステッドアプリ４２の実体であるトラステッド実体と信頼できるパス（path）を結ぶための条件を表している。
【００６５】
例えば、トラステッドアプリ４２−１とトラステッドアプリ４２−２との間にトラステッドパスで表される条件が満たされている場合、トラステッドアプリ４２−１がトラステッドアプリ４２−２と通信するとき、トラステッドアプリ４２−１は、トラステッドアプリ４２−２が本当にトラステッドアプリ４２−２であると信頼することができる。また、トラステッドアプリ４２−２も、トラステッドアプリ４２−１が本当にトラステッドアプリ４２−２であると信頼することができる。
【００６６】
図４の例では、トラステッドパスにおいて、/libがsignatureとされ、/user/binがsignatureとされている。即ち、セキュアレベルＬ１のコンパートメントでは、/libディレクトリおよび/user/binディレクトリが、トラステッドアプリ４２と信頼できるパスを結ぶために、トラステッドアプリ４２のsignature１０１（図３）の電子署名（signature）が正当であるかどうかを判定するように指定されている。
【００６７】
上述した説明では、セキュアレベルＬ１のコンパートメントについて説明したが、同様に、コンパートメント指定情報として、プロセスケーパビリティ、マンダトリアクセスコントロール、およびトラステッドパスという３つの属性を、セキュアレベル毎に設定することにより、各セキュアレベルのコンパートメントを指定することができる。
【００６８】
コンパートメントは、ＯＳ４１の動作空間や利用できるリソース、その利用が影響する範囲等のプログラムの実行環境を、プロセスケーパビリティ、マンダトリアクセスコントロール、およびトラステッドパスという３つの属性により制限することによって指定する。従って、ＯＳ４１のリソースとは別に、コンパートメント毎にリソースを用意する必要がなく、リソースを効率よく利用することができる。
【００６９】
図５は、セキュアレベルＬ２のコンパートメント指定情報の例を示している。
【００７０】
図５のセキュアレベルＬ２のコンパートメント指定情報では、図４に示したセキュアレベルＬ１のコンパートメント指定情報のマンダトリアクセスコントロールに、“/tmp  read”が加えられている。即ち、セキュアレベルＬ２のコンパートメント指定情報では、セキュアレベルＬ１のコンパートメント指定情報に、/tmpディレクトリに対する操作が読み出し(read)のみに制限するという条件が加えられている。
【００７１】
セキュアレベルＬ１では、コンパートメント指定情報のマンダトリアクセスコントロールにおいて、/tmpについての記載がないので、/tmpディレクトリに対して読み出しや書き込み等を行うことができるが、セキュアレベルＬ２では、コンパートメント指定情報のマンダトリアクセスコントロールにおいて、/tmpがreadとされているので、/tmpディレクトリに対する操作が読み出し（read）のみに制限される。
【００７２】
即ち、セキュアレベルＬ１では、/tmpディレクトリに対する操作（アクセス）が制限されないが、セキュアレベルＬ２では、その操作が制限される。つまり、セキュアレベルＬ２のコンパートメントは、セキュアレベルＬ１のコンパートメントより広く、セキュアレベルＬ１のコンパートメントを含んでいる。
【００７３】
図４と図５では、セキュアレベルＬ０、セキュアレベルＬ１のコンパートメント指定情報について説明したが、セキュアレベルＬ２乃至セキュアレベルＬ４のコンパートメント指定情報も同様に構成される。
【００７４】
図６は、セキュアレベルＬ０乃至セキュアレベルＬ４のコンパートメントの関係を表している。
【００７５】
なお、図中、四角は、各コンパートメントを表している。
【００７６】
図６に示すように、セキュアレベルＬ１のコンパートメントは、セキュアレベルＬ０のコンパートメントを含んでいる。同様に、セキュアレベルＬ２のコンパートメントは、セキュアレベルＬ１のコンパートメントを、セキュアレベルＬ３のコンパートメントは、セキュアレベルＬ２のコンパートメントを、セキュアレベルＬ４のコンパートメントは、セキュアレベルＬ３のコンパートメントをそれぞれ含んでいる。即ち、セキュアレベルＬｉ（ｉ＝1,・・・,5）のｉが大きいほど、セキュアレベルＬｉにより制限される実行環境であるコンパートメントが広いので、セキュリティが高くなっている。
【００７７】
図７は、トラステッドアプリ４２−１のコンパートメント指定情報の例を示している。
【００７８】
なお、図７では、トラステッドアプリ４２−１のコンパートメント指定情報について説明するが、トラステッドアプリ４２−２のコンパートメント指定情報も同様に構成される。
【００７９】
図７に示すように、トラステッドアプリ４２−１のコンパートメント指定情報には、ＯＳ４１に対する要求セキュアレベルが含まれる。
【００８０】
要求セキュアレベルは、ＯＳ４１に対して要求する最低限のセキュアレベルである。即ち、トラステッドアプリ４２−１は、ＯＳ４１に対して、要求セキュアレベル以上のセキュアレベルを要求する。従って、トラステッドアプリ４２−１のコンパートメントは、要求セキュアレベルのコンパートメントを含む。
【００８１】
図７の例では、要求セキュアレベルがセキュアレベルＬ１となっているので、トラステッドアプリ４２は、ＯＳ４１に対してセキュアレベルＬ１以上のセキュアレベルを要求する。
【００８２】
要求セキュアレベルのセキュリティに追加して要求されるセキュリティがある場合は、そのセキュリティに関するプロセスケーパビリティ、マンダトリアクセスコントロール、またはトラステッドパスが、必要に応じて、トラステッドアプリ４２−１のコンパートメント指定情報に記述される。
【００８３】
図７では、トラステッドアプリ４２−１のコンパートメント指定情報のプロセスケーパビリティにおいて、CAP_SYS_PTRACEがOFFとされ、CAP_SYS_PROTMEMがONとされている。即ち、これにより、トレースケーパビリティ（CAP_SYS_PTRACE）が無効（OFF）にされ、トラステッドアプリ４２−１のトレースが禁止される。また、トラステッドアプリ４２−１が動作中に使用するRAM１３上のメモリ空間の保護（CAP_SYS_PROTMEM）が行われる。即ち、トラステッドアプリ４２−１が使用しているメモリ空間へのアクセスが、トラステッドアプリ４２−１以外のアプリケーションプログラムによって行われないように制限される。
【００８４】
マンダトリアクセスコントロールにおいて、Anyがno_ptraceとされている。即ち、これにより、任意のリソース（Any）に対するトラステッドアプリ４２−１のアクセスのトレースが不許可（no_ptrace）にされている。
【００８５】
トラステッドパスにおいて、/user/local/trusted_apli_Bがsignatureとencryptとされ、/user/local/libAがsignatureとされている。即ち、例えば、他のトラステッドアプリ４２−２であるトラステッドアプリＢ（trusted_apli_B）が、トラステッドアプリ４２−１と信頼できるパスを結ぶために、電子署名（signature）が正当であるかどうかを判定するように指定されている。また、トラステッドアプリ４２−１とトラステッドアプリ４２−２との間で通信を行う場合、トラステッドアプリ４２−１とトラステッドアプリ４２−２の間の通信の内容が改ざんされず、漏洩しないように、通信の内容の保護/暗号化（encrypt）を行うように指定されている。
【００８６】
さらに、例えば、ライブラリ４５であるライブラリＡ（libA）が、トラステッドアプリ４２と信頼できるパスを結ぶために、電子署名（signature）が正当であるかどうかを判定するように指定されている。
【００８７】
なお、以下においては、コンパートメントによる制限の対象として、リソースだけを考えることとする。
【００８８】
図８は、トラステッドアプリ４２が実行されている場合のコンパートメントの例を表している。
【００８９】
なお、図中、四角は、各セキュアレベルのコンパートメントを表している。セキュアレベルＬ０乃至セキュアレベルＬ４のコンパートメントの関係は、図６と同様であるので説明は省略する。
【００９０】
また、トラステッドアプリ４２には、固有のＩＤであるPID（Process ID）が付加されている。図６に示すPID１００乃至PID１０２が付加された斜線部は、PIDが付加されたトラステッドアプリ４２のコンパートメントをそれぞれ表している。
【００９１】
図８では、PID１００乃至PID１０２の３つのトラステッドアプリ４２が動作している。PID１００のトラステッドアプリ４２は、要求セキュアレベルがセキュアレベルＬ１となっており、セキュアレベルＬ１のコンパートメントは、PID１００のトラステッドアプリ４２のコンパートメントを含んでいる。同様に、PID１００とPID１０２のトラステッドアプリ４２は、要求セキュアレベルがセキュアレベルＬ２となっており、セキュアレベルＬ２のコンパートメントは、PID１００とPID１０２のトラステッドアプリ４２のコンパートメントを含んでいる。
【００９２】
PID１００乃至PID１０２のトラステッドアプリ４２が動作している場合、セキュアレベルモジュール７１は、PID１００乃至PID１０２のトラステッドアプリ４２の要求セキュアレベルのうち一番高いセキュアレベルであるセキュアレベルＬ２をＯＳ４１のセキュアレベルに設定する。そして、ＯＳ４１は、ＯＳ４１のセキュアレベルであるセキュアレベルＬ２で保護するリソース空間以外のリソース空間を自由空間とする。その自由空間であるリソース空間は、アントラステッドアプリ４４を含む任意のアプリケーションが使用することができる。
【００９３】
なお、アントラステッドアプリ４４に対しては、コンパートメント指定情報が設定されず、特別な保護サービスは提供されない。これにより、リソースを節約することができる。
【００９４】
図９は、図８のPID１００とPID１０２のトラステッドアプリ４２の動作が停止（実行が終了）した場合のコンパートメントの例を示している。
【００９５】
図９に示すように、例えば、図８のPID１００とPID１０２のトラステッドアプリ４２の動作が停止すると、セキュアレベルモジュール７１は、ＯＳ４１のセキュアレベルを、動作中のPID１０１の要求セキュアレベルであるセキュアレベルＬ１に変更し、セキュアレベルＬ１で保護するリソース空間以外のリソース空間を自由空間とする。図８に示したPID１００乃至PID１０２のトラステッドアプリ４２が動作している場合よりも、セキュアレベルＬ２で保護するリソース空間が自由空間に加えられるので、アントラステッドアプリ４４を含む任意のアプリケーションプログラムが使用可能なリソースは多くなる。
【００９６】
なお、ＯＳ４１のセキュアレベルが変更される場合、ＯＳ４１のセキュリティを保護するため、リソースのセーニタイジング（sanitizing）が行われる。リソースのセーニタイジングとは、例えば、RAM１３に確保されたアプリケーションが使用していたメモリ空間や記憶部１８に確保されたキャッシュの初期化などを行うことである。
【００９７】
図１０と図１１は、RAM１３が記憶するセキュアレベルテーブルの概念図である。
【００９８】
図１０と図１１のセキュアレベルテーブルには、実行中、およびこれから実行しようとするトラステッドアプリ４２のPIDの欄が、そのトラステッドアプリ４２の要求セキュアレベルの見出しに、チェーン構造状（リスト構造状）に接続される。即ち、セキュアレベルテーブルでは、要求セキュアレベルと、実行中、およびこれから実行しようとするトラステッドアプリ４２のPIDが対応づけられる。
【００９９】
図１０は、セキュアレベルテーブルの初期状態を示している。
【０１００】
セキュアレベルＬ０乃至セキュアレベルＬ４（の見出し）に対して、PIDの欄は接続されておらず、セキュアレベルＬ０乃至セキュアレベルＬ４は、セキュアレベルＬ０乃至セキュアレベルＬ４に対するPIDの欄が空であることを表すNULLに接続されている。
【０１０１】
図１１は、要求セキュアレベルがセキュアレベルＬ２のPID１００のトラステッドアプリ４２、要求セキュアレベルがセキュアレベルＬ１のPID１０１のトラステッドアプリ４２、要求セキュアレベルがセキュアレベルＬ１のPID１０２のトラステッドアプリ４２が、順に実行された場合のセキュアレベルテーブルを示している。
【０１０２】
まず最初に、要求セキュアレベルがセキュアレベルＬ２のPID１００のトラステッドアプリ４２が実行されると、セキュアレベルテーブルでは、セキュアレベルＬ２に対して、PID１００のトラステッドアプリ４２を表すPID１００のPIDの欄が接続され、そのPIDの欄に、NULLが接続される。
【０１０３】
次に、要求セキュアレベルがセキュアレベルＬ２のPID１０２のトラステッドアプリ４２が実行されると、セキュアレベルテーブルでは、既に動作中のPID１００のトラステッドアプリ４２のPIDの欄、即ち、セキュアレベルＬ２に対して接続されているPID１００のPIDの欄の前に、新たに実行されるPID１０２のトラステッドアプリ４２を表すPID１０２の欄が挿入される。従って、図１１に示すように、セキュアレベルテーブルでは、セキュアレベルＬ２に対して、PID１０２のPIDの欄、PID１００のPIDの欄、NULLが順に接続される。
【０１０４】
最後に、要求セキュアレベルがセキュアレベルＬ１のPID１０１のトラステッドアプリ４２が実行されると、セキュアレベルテーブルでは、セキュアレベルＬ１に対して、PID１０１のトラステッドアプリ４２を表すPID１０１のPIDの欄が接続され、そのPIDの欄にNULLが接続される。
【０１０５】
セキュアレベルＬ０、セキュアレベルＬ３、およびセキュアレベルＬ４を要求セキュアレベルとするトラステッドアプリ４２は、動作していないので、セキュアレベルＬ０、セキュアレベルＬ３、およびセキュアレベルＬ４に対してPIDの欄は接続されない。即ち、セキュアレベルＬ０、セキュアレベルＬ３、およびセキュアレベルＬ４（の見出し）は、PIDの欄が空であることを表すNULLに接続されている。
【０１０６】
なお、セキュアレベルテーブルでは、セキュアレベルＬ０乃セキュアレベルＬ４のうちの１つがデフォルトレベルとされており、そのデフォルトレベルであるセキュアレベルの見出しに、不図示のデフォルトレベルを表すマーク（フラグ）が付加されている。このデフォルトレベルは、例えば、ユーザが設定することができる。トラステッドアプリ４２が１つも動作していない場合、セキュアレベルモジュール７１は、例えば、ＯＳ４１のセキュアレベルをデフォルトレベルに設定する。
【０１０７】
図１２は、図２のセキュアレベルモジュール７１がＯＳ４１のセキュアレベルを設定する第１のセキュアレベル設定処理を説明するフローチャートである。このセキュアレベル設定処理は、例えば、トラステッドアプリ４２およびアントラステッドアプリ４４を含むアプリケーションプログラムが実行されるとき、あるいは、アプリケーションプログラムからセキュリティレベルの設定の要求があったとき開始される。
【０１０８】
ステップＳ１１において、セキュアレベルモジュール７１は、実行しようとするアプリケーションプログラムの電子署名が正当であるかどうかを判定し、正当であると判定した場合、即ち、実行しようとするアプリケーションプログラムがトラステッドアプリ４２である場合、ステップＳ１２に進む。
【０１０９】
ステップＳ１２において、セキュアレベルモジュール７１は、実行しようとするトラステッドアプリ４２の要求セキュアレベルを認識し、ステップＳ１３に進む。
【０１１０】
ステップＳ１３において、セキュアレベルモジュール７１は、セキュアレベルテーブル（図１１）の、実行しようとするトラステッドアプリ４２の要求セキュアレベルに対して接続されているPIDの欄が空であるかどうかを判定する。
【０１１１】
例えば、図１１に示すようなセキュアレベルテーブルがセキュアレベルモジュール７１に記憶されている場合、セキュアレベルＬ０、セキュアレベルＬ３、およびセキュアレベルＬ４に対して、PIDの欄が空であることを表すNULLが接続されているので、セキュアレベルモジュール７１は、トラステッドアプリ４２の要求セキュアレベルがセキュアレベルＬ０、セキュアレベルＬ３、セキュアレベルＬ４のいずれかであるとき、トラステッドアプリ４２の要求セキュアレベルに対して接続されているPIDの欄は空であると判定する。
【０１１２】
ステップＳ１３において、セキュアレベルテーブルの、実行しようとするトラステッドアプリ４２の要求セキュアレベルに対して接続されているPIDの欄が空であると判定された場合、ステップＳ１４に進み、その要求セキュアレベルに対して、実行しようとするトラステッドアプリ４２のPIDのPIDの欄を接続（追加）して、ステップＳ１６に進む。
【０１１３】
例えば、実行しようとするトラステッドアプリ４２の要求セキュアレベルがセキュアレベルＬ１であり、トラステッドアプリ４２のPIDが１０１である場合、セキュアレベルモジュール７１は、図１１に示すように、要求セキュアレベルであるセキュアレベルＬ１に対して、PID１０１のPIDの欄を接続し、そのPID１０１の欄にNULLを接続する。
【０１１４】
ステップＳ１３において、セキュアレベルテーブルの、実行しようとするトラステッドアプリ４２の要求セキュアレベルに対して接続されているPIDの欄が空ではないと判定された場合、セキュアレベルモジュール７１は、ステップＳ１５に進み、実行しようとするトラステッドアプリ４２のPIDのPIDの欄を、そのトラステッドアプリ４２の要求セキュアレベルに対して接続されているPIDの欄（要求セキュアレベルに対して存在するPIDの欄の最初のPIDの欄）の前に挿入し、ステップＳ１６に進む。
【０１１５】
例えば、実行しようとするトラステッドアプリ４２の要求セキュアレベルがセキュアレベルＬ２であり、セキュアレベルＬ２に対してPID１００のPIDの欄が接続されている場合、即ち、要求セキュアレベルがセキュアレベルＬ２であるPIDが１００のトラステッドアプリ４２が実行中の場合、セキュアレベルモジュール７１は、図１１に示すように、セキュアレベルＬ２に対して接続されているPID１００のPIDの欄の前にPID１０２のPIDの欄を挿入する。
【０１１６】
ステップＳ１６において、セキュアレベルモジュール７１は、セキュアレベルテーブルを一番上から下の方向へスキャンして、最初に検出される空ではないPIDの欄が接続されているセキュアレベルを、ＯＳ４１の候補セキュアレベルに設定し、ステップＳ１６に進む。即ち、セキュアレベルモジュール７１は、PIDの欄のPIDが付加された実行中、およびこれから実行しようとするトラステッドアプリ４２の要求セキュアレベルのうちの最も高いセキュアレベルを、ＯＳ４１の候補セキュアレベルに設定する。
【０１１７】
なお、ステップＳ１６において、セキュアレベルモジュール７１は、デフォルトレベルとしてマークされているセキュアレベルも検出し、最初に検出される空ではないPIDの欄が接続するセキュアレベルが、デフォルトレベルより低い場合、候補セキュアレベルを、デフォルトレベルに設定することもできる。
【０１１８】
例えば、図１１に示すようなセキュアレベルテーブルがセキュアレベルモジュール７１に記憶されている場合、セキュアレベルモジュール７１は、セキュアレベルテーブルを、セキュアレベルＬ４からセキュアレベルＬ０の方向にスキャンして、最初に検出される空ではないPIDの欄が接続しているセキュアレベルであるセキュアレベルＬ２を、ＯＳ４１の候補セキュアレベルに設定する。
【０１１９】
ステップＳ１７において、セキュアレベルモジュール７１は、ＯＳ４１のセキュアレベルをステップＳ１６で設定された候補セキュアレベルに設定し、処理を終了する。
【０１２０】
例えば、候補セキュアレベルがセキュアレベルＬ２である場合、カーネル５１は、図８に示したように、セキュアレベルＬ２で保護するリソース空間以外のリソース空間である自由空間を、アントラステッドアプリ４４を含む任意のアプリケーションプログラムが使用することができるようにする。従って、トラステッドアプリ４２が要求するセキュリティを確保し、かつアントラステッドアプリ４４が自由空間を使用することができる。
【０１２１】
ステップＳ１２乃至ステップＳ１７の処理によれば、ＯＳ４１のセキュアレベルが、実行されるトラステッドアプリ４２に対応して動的に変化する。そして、そのＯＳ４１のセキュアレベルに応じて自由空間が変化するので、その自由空間であるリソース空間を、アントラステッドアプリ４２を含む任意のアプリケーションプログラムに使用させることにより、実行するトラステッドアプリ４２に応じて、アントラステッドアプリ４２の使用可能なリソース空間を変化させることができる。
【０１２２】
一方、ステップＳ１１において、アプリケーションプログラムの電子署名が正当ではないと判定された場合、即ち、電子署名を有しない、または電子署名を有していても、その電子署名が正当ではないアントラステッドアプリ４４である場合、ステップＳ１８に進み、セキュアレベルモジュール７１は、ＯＳ４１のセキュアレベルの設定を行わず、処理を終了する。この場合、アプリケーションプログラムは、自由空間であるリソース空間しか使用できない。
【０１２３】
図１３は、セキュアレベルモジュール７１がＯＳ４１のセキュアレベルを設定する第２のセキュアレベル設定処理を説明するフローチャートである。このセキュアレベル設定処理は、トラステッドアプリ４２の実行が終了したとき、開始される。
【０１２４】
ステップＳ３１において、セキュアレベルモジュール７１は、実行が終了したトラステッドアプリ４２のPIDのPIDの欄をセキュアレベルテーブルから削除し、ステップＳ３２に進む。
【０１２５】
ステップＳ３２において、セキュアレベルモジュール７１は、セキュアレベルテーブルを一番上から下の方向にスキャンして、最初に検出される空ではないPIDの欄が接続されたセキュアレベルを、ＯＳ４１のセキュアレベルに設定する。即ち、セキュアレベルモジュール７１は、ＯＳ４１のセキュアレベルを、実行中のトラステッドアプリ４２が要求するセキュアレベルのうちの最も高いセキュアレベルに変更する。
【０１２６】
また、セキュアレベルモジュール７１は、実行中のトラステッドアプリ４２が１つもなくなった場合、即ち、セキュアレベルＬ０乃至セキュアレベルＬ４に対して、１つもPIDの欄が接続されていない場合、デフォルトレベルとしてマークされているセキュアレベルをＯＳ４１の候補セキュアレベルに設定する。
【０１２７】
ステップＳ３２の処理後は、ステップＳ３３に進み、セキュアレベルモジュール７１は、図１２のステップＳ１７と同様に、ＯＳ４１のセキュアレベルをステップＳ３２で設定された候補セキュアレベルに設定し、処理を終了する。
【０１２８】
図１４は、図２のカーネル５１がアントラステッドアプリ４４に対してリソースの使用を制限するリソース制限処理を説明するフローチャートである。このリソース制限処理は、例えば、アントラステッドアプリ４４がリソースの使用を要求したとき、開始される。
【０１２９】
ステップＳ５１において、カーネル５１は、図１２のステップＳ１７または図１３のステップＳ３３で設定されたＯＳ４１のセキュアレベルを認識し、ステップＳ５２に進む。
【０１３０】
ステップＳ５２において、カーネル５１は、ＯＳ４１のセキュアレベルに応じて、アントラステッドアプリ４４のリソースの使用を制限（拒否）し、処理を終了する。
【０１３１】
例えば、ＯＳ４１のセキュアレベルがセキュアレベルＬ２である場合、カーネル５１は、図８に示すように、セキュアレベルＬ２で保護されるリソース空間以外のリソース空間を自由空間とし、アントラステッドアプリ４４の使用可能なリソース空間を自由空間のみに制限する。
【０１３２】
上述した説明では、セキュアレベルは、セキュアレベルＬ０乃至Ｌ４の５段階としたが、何段階でもよい。
【０１３３】
なお、上述した処理は、専用ハードウェアにより実行することもできる。
【０１３４】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１３５】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１３６】
なお、本発明は、汎用のコンピュータ（ワークステーション）の他、携帯電話機、その他の電子機器上で実行されるＯＳ等に適用することができる。
【図面の簡単な説明】
【０１３７】
【図１】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【図２】図１のコンピュータ上で実行されるプログラムを説明する図である。
【図３】トラステッドアプリの基本的なフォーマットの例を示す図である。
【図４】セキュアレベルＬ１のコンパートメント指定情報の例を示す図である。
【図５】セキュアレベルＬ２のコンパートメント指定情報の例を示す図である。
【図６】セキュアレベルＬ０乃至セキュアレベルＬ４のコンパートメントの関係を表す図である。
【図７】トラステッドアプリのコンパートメント指定情報の例を示す図である。
【図８】トラステッドアプリが実行されている場合のコンパートメントの例を表す図である。
【図９】図８のPID１００とPID１０２のトラステッドアプリの実行が終了した場合のコンパートメントの例を示す図である。
【図１０】図１のRAMが記憶するセキュアレベルテーブルの概念図である。
【図１１】図１のRAMが記憶するセキュアレベルテーブルの概念図である。
【図１２】図２のセキュアレベルモジュールがＯＳのセキュアレベルを設定する第１のセキュアレベル設定処理を説明するフローチャートである。
【図１３】図２のセキュアレベルモジュールがＯＳのセキュアレベルを設定する第２のセキュアレベル設定処理を説明するフローチャートである。
【図１４】図２のカーネルがアントラステッドアプリに対してリソースの使用を制限するリソース制限処理を説明するフローチャートである。
【符号の説明】
【０１３８】
１１  CPU，  １２  ROM，  １３  RAM，  １４  バス，  １５  入出力インタフェース，  １６  入力部，  １７  出力部，  １８  記憶部，  １９  通信部，  ２０  ドライブ，  ２１  リムーバブル記録媒体，  ４１  ＯＳ，  ４２  トラステッドアプリケーションプログラム，  ４４  アントラステッドアプリケーションプログラム，  ４５  ライブラリ，  ５１  カーネル，  ７１  セキュアレベルモジュール
【図１】
2005149394.tif 000003
【図２】
2005149394.tif 000004
【図３】
2005149394.tif 000005
【図４】
2005149394.tif 000006
【図５】
2005149394.tif 000007
【図６】
2005149394.tif 000008
【図７】
2005149394.tif 000009
【図８】
2005149394.tif 000010
【図９】
2005149394.tif 000011
【図１０】
2005149394.tif 000012
【図１１】
2005149394.tif 000013
【図１２】
2005149394.tif 000014
【図１３】
2005149394.tif 000015
【図１４】
2005149394.tif 000016