(57)【要約】【課題】ポリシ設定ファイルに記述されているポリシを不揮発性記憶装置内のファイルに登録する処理を実装する場合に実装コストを低くすること。【解決手段】実施形態によれば、電子機器は、カーネル内で動作し、第１のアプリケーションから送信された保護領域が記述されている保護領域情報を受信する受信手段と、カーネル内で動作し、カーネル上で動作する第２のアプリケーションに保護領域情報を送信し、保護領域情報に基づいた第１のデータを不揮発性記憶装置内のデータファイルに登録することを依頼する第１の依頼手段と、第２のアプリケーション内で動作し、第１のデータをデータファイルに登録することを試みる代理操作手段と、カーネル内で動作し、保護領域をカーネル設定に反映する反映手段と、カーネル内で動作し、カーネル設定に基づいて、ストレージ内のデータへのアクセスを制御するアクセス制御部とを具備する。【選択図】    図３
2015087997.tif 000002
【特許請求の範囲】
【請求項１】
カーネル内で動作する受信手段であって、前記カーネル上で動作する第１のアプリケーションから送信されたストレージ内の保護領域が記述されている保護領域情報を受信する受信手段と、
前記カーネル内で動作する第１の依頼手段であって、前記カーネル上で動作する第２のアプリケーションに、前記保護領域情報に基づいた第１のデータを不揮発性記憶装置内のデータファイルに登録することを依頼する第１の依頼手段と、
前記第２のアプリケーション内で動作する代理操作手段であって、前記第１のデータを前記データファイルに登録することを試みる代理操作手段と、
前記カーネル内で動作する反映手段であって、前記保護領域情報をカーネル設定に反映する反映手段と、
前記カーネル内で動作するアクセス制御部であって、前記カーネル設定に基づいて、前記ストレージ内のデータへのアクセスを制御するアクセス制御部と
を具備する電子機器。
【請求項２】
前記カーネル内で動作する判定手段であって、前記第２のアプリケーションが前記データファイルの操作を許可されているアプリケーションであるかを判定する判定手段を更に具備する請求項１に記載の電子機器。
【請求項３】
前記第２のアプリケーション内で動作する通知手段であって、前記第１のデータが前記データファイルに登録されたかを通知する前記カーネルに通知手段を更に具備し、
前記第１のデータが前記データファイルに登録されたことが通知された場合に、前記反映手段は、前記保護領域情報を前記カーネル設定に反映する
請求項１に記載の電子機器。
【請求項４】
前記カーネル内で動作する検出手段であって、前記第１のアプリケーションがアンインストールされたことを検出する検出手段と、
前記カーネル内で動作する第２の依頼手段であって、前記検出手段によって前記第１のアプリケーションがアンインストールされたことを検出された場合に、前記代理操作手段に、前記データファイルから前記第１のデータを削除することを依頼する第２の依頼手段とを更に具備し、
前記代理操作手段は、前記第２の依頼手段からの依頼に応じて前記データファイルから前記第１のデータを削除することを試みる
請求項１に記載の電子機器。
【請求項５】
カーネル内で動作する受信手段によって、前記カーネル上で動作する第１のアプリケーションから送信されたストレージ内の保護領域が記述されている保護領域情報を受信し、
前記カーネル内で動作する第１の依頼手段によって、前記カーネル上で動作する第２のアプリケーションに、前記保護領域情報に基づいた第１のデータを不揮発性記憶装置内のデータファイルに登録することを依頼し、
前記第２のアプリケーション内で動作する代理操作手段によって、前記第１のデータを前記データファイルに登録することを試み、
前記カーネル内で動作する反映手段によって、前記保護領域情報をカーネル設定に反映し、
前記カーネル内で動作するアクセス制御部によって、前記カーネル設定に基づいて、前記ストレージ内のデータへのアクセスを制御する
方法。
【請求項６】
カーネル内で動作する受信手段によって、前記カーネル上で動作する第１のアプリケーションから送信されたストレージ内の保護領域が記述されている保護領域情報を受信する手順と、
前記カーネル内で動作する第１の依頼手段によって、前記カーネル上で動作する第２のアプリケーションに、前記保護領域情報に基づいた第１のデータを不揮発性記憶装置内のデータファイルに登録することを依頼する手順と、
前記第２のアプリケーション内で動作する代理操作手段によって、前記第１のデータを前記データファイルに登録することを試みる手順と、
前記カーネル内で動作する反映手段によって、前記保護領域情報をカーネル設定に反映する手順と、
前記カーネル内で動作するアクセス制御部によって、前記カーネル設定に基づいて、前記ストレージ内のデータへのアクセスを制御する手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器および方法に関する。
【背景技術】
【０００２】
従来のセキュアオペレーティングシステムのファイルシステムにおいては、カーネルレイヤでの強制アクセス制御によって管理者権限をもつアプリケーションであってもアクセスできないオブジェクトを定義することが可能である。そのため、端末内において特に強力に保護を行いたいファイルに対しては本制御が有効化される。具体例を挙げるならば、ＤＲＭ処理向けの鍵、あるいは流出が許されない顧客情報等が強制アクセス制御の対象となる。これにより、端末がクラックされて管理者権限が奪取されるような事態が生じたとしても、重要な情報が漏洩しなくなる。
【０００３】
各々の一般アプリケーションは、揮発メモリ内の特別なカーネルインターフェイスに直接制限ポリシを通知することで自分専用の保護領域を有効にできる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２３４２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のセキュアオペレーティングシステムでは、ファイルシステム上に事前に用意されているポリシ設定ファイルをカーネルに流し込むことでアクセス制御を有効化するような運用がなされている、この時、ポリシ設定ファイルは単方向でカーネル側に流し込まれるのが一般的である。ユーザランドアプリケーションによってメモリ上のカーネルに対して動的（例えば、procfs（Process Filesystem）経由）に設定されたポリシが、ファイルシステム上のポリシ設定ファイル側に反映されることはなかった。そのため、このまま運用を続けるとオペレーティングシステムが再起動あるいは強制シャットダウンされた場合は、ユーザランドアプリケーションによって個別に設定されたポリシが無かったものとして扱われてしまうために、セキュリティ上の問題が生じる。
【０００６】
そのため、ポリシ設定ファイルに記述されたポリシを不揮発性記憶装置内のファイルに登録することが望まれている。ところが、ポリシ設定ファイルに記述されたポリシを不揮発性記憶装置内のファイルに登録する処理をカーネルに実装しようとすると、実装コストが高くなる。
【０００７】
本発明の目的は、ポリシ設定ファイルに記述されているポリシを不揮発性記憶装置内のファイルに登録する処理を実装する場合に、実装コストを低くすることが可能な電子機器および方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態によれば、電子機器は受信手段と第１の依頼手段と代理操作手段と反映手段とアクセス制御部とを具備する。受信手段は、前記カーネル上で動作する第１のアプリケーションから送信されたストレージ内の保護領域が記述されている保護領域情報を受信する。受信手段はカーネル内で動作する。第１の依頼手段は、前記カーネル上で動作する第２のアプリケーションに、前記保護領域情報に基づいた第１のデータを不揮発性記憶装置内のデータファイルに登録することを依頼する。第１の依頼手段は前記カーネル内で動作する。代理操作手段は、前記第１のデータを前記データファイルに登録することを試みる。代理操作手段は前記第２のアプリケーション内で動作する。反映手段は、前記保護領域情報をカーネル設定に反映する。反映手段は前記カーネル内で動作する。アクセス制御部は、前記カーネル設定に基づいて、前記ストレージ内のデータへのアクセスを制御する。アクセス制御部は前記カーネル内で動作する。
【図面の簡単な説明】
【０００９】
【図１】実施形態のコンピュータの外観の一例を示す図。
【図２】実施形態のコンピュータのシステム構成の一例を示すブロック図。
【図３】オペレーティングシステム、管理アプリケーション、および一般アプリケーションの構成の一例を示すブロック図。
【図４】ポリシをポリシデータベースに追加する手順を説明するためのフローチャート。
【図５】ポリシをポリシデータベースに追加する手順をより詳細に説明するためのフローチャート。
【図６】一般アプリケーションのアンインストール時の処理の手順を示すフローチャート。
【図７】ポリシデータベースの構造を示す図。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。
【００１１】
先ず、図１を参照して、本実施形態の電子機器の構成を説明する。この電子機器は、携帯型の端末、たとえば、タブレット型パーソナルコンピュータ、ラップトップ型またはノートブック型のパーソナルコンピュータ、ＰＤＡ、として実現し得る。以下では、この経路探索装置がタブレット型パーソナルコンピュータ１０（以下、コンピュータ１０と称す。）として実現されている場合を想定する。
【００１２】
図１は、コンピュータ１０の外観を示す図である。このコンピュータ１０は、コンピュータ本体１１と、タッチスクリーンディスプレイ１７とから構成される。コンピュータ本体１１は薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７はコンピュータ本体１１の表面上に配置される。タッチスクリーンディスプレイ１７は、フラットパネルディスプレイ（たとえば、液晶表示装置（ＬＣＤ））と、タッチパネルとを備える。タッチパネルは、ＬＣＤの画面を覆うように設けられる。タッチパネルは、ユーザの指またはペンによってタッチされたタッチスクリーンディスプレイ１７上の位置を検出するように構成されている。
【００１３】
図２は、コンピュータ１０のシステム構成を示すブロック図である。  
コンピュータ１０は、図２に示されるように、タッチスクリーンディスプレイ１７、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００１４】
ＣＰＵ１０１は、コンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から揮発性メモリである主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２００、および各種アプリケーションプログラムが含まれている。各種アプリケーションプログラムには、管理アプリケーション（管理ＡＰＰ）３００や一般アプリケーション（一般ＡＰＰ）４００が含まれている。管理アプリケーション３００には、システム特権が割り当てられている。また、一般アプリケーション４００には、システム特権が割り当てられていない。オペレーティングシステム２００は、セキュアオペレーティングシステムである。
【００１５】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１６】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００１７】
グラフィクスコントローラ１０４は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。
【００１８】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本コンピュータ１０を電源オンまたは電源オフする機能を有している。
【００１９】
図３は、オペレーティングシステム２００、管理アプリケーション３００、および一般アプリケーション４００の構成を示すブロック図である。
【００２０】
オペレーティングシステム２００は、カーネル２１０を内包している。カーネル２１０はアプリケーションソフトウェアとコンピュータ１０のハードウェアを結び付けるプログラムである。
オペレーティングシステム２０上で管理アプリケーション３００、一般アプリケーション４００等が動作する。
【００２１】
カーネル２１０は、管理アプリケーション判定部（管理ＡＰＰ判定部）２１１、管理アプリケーション管理部（管理ＡＰＰ管理部）２１２、ポリシ受信部２１３、ポリシ登録可否判定部２１４、ポリシ反映保留部２１５、管理アプリケーション通信部（管理ＡＰＰ通信部）２１６、ポリシ登録可否通知部２１７、アクセス制御部２１８、アンインストール検出部２１９、およびポリシ反映部２２０等を備えている。カーネル２１０内で、管理アプリケーション判定部２１１、管理アプリケーション管理部２１２、ポリシ受信部２１３、ポリシ登録可否判定部２１４、ポリシ反映保留部２１５、管理アプリケーション通信部２１６、ポリシ登録可否通知部２１７、アクセス制御部２１８、アンインストール検出部２１９、およびポリシ反映部２２０が動作する。
【００２２】
管理アプリケーション（管理ＡＰＰ）３００は、管理アプリケーション登録部（管理ＡＰＰ登録部）３０１、ポリシデータベース操作依頼受信部（ポリシＤＢ操作依頼受信部）３０２、ポリシデータベース代理操作部（ポリシＤＢ代理操作部）３０３、ポリシデータベース代理操作結果送信部（ポリシＤＢ代理操作結果送信部）３０４等を備えている。管理アプリケーション３００内で、管理アプリケーション登録部３０１、ポリシデータベース操作依頼受信部３０２、ポリシデータベース代理操作部３０３、ポリシデータベース代理操作結果送信部３０４が動作する。
【００２３】
一般アプリケーション（一般ＡＰＰ）４００は、ポリシ登録部４０１等を備えている。一般アプリケーション４００内で、ポリシ登録部４０１が動作する。
【００２４】
管理アプリケーション３００の管理アプリケーション登録部３０１は、管理アプリケーションの起動時に自分が正当な管理アプリであることをカーネル２１０に認識させるために、管理アプリケーション登録要求を送信する。
【００２５】
カーネル２１０内の管理アプリケーション判定部２１１は、管理アプリケーション登録要求を送信したアプリケーションのファイル名、ハッシュ値、パッケージ名等のアプリケーションに固有な情報を取得する。カーネル２１０内の管理アプリケーション管理部２１２は、アプリケーション固有情報取得部によって取得された情報と予め登録されている情報とに基づいて、管理アプリケーション登録要求を送信したアプリケーションが、後述するポリシデータベース（ファイル）５００の内容を変更することが可能な正しい管理アプリケーションであるかを判定する。正しい管理アプリケーションであると判定した場合、管理アプリケーション管理部２１２は、正しい管理アプリケーションとして登録するために、管理アプリケーション登録要求を送信したアプリケーションを示すアプリケーション情報を内部に格納する。登録後、管理アプリケーション管理部２１２は、管理アプリケーション３００の管理アプリケーション登録部３０１に正しい管理アプリケーションとして登録された旨を通知する。正しい管理アプリケーションではないと判定した場合、管理アプリケーション管理部２１２は、管理アプリケーションの管理アプリケーション登録部３０１に正しい管理アプリケーションとして登録されていない旨を通知する。
【００２６】
一般アプリケーション４００のポリシ登録部４０１は、保護領域として定義されている領域を示すポリシが記述されているポリシ設定ファイル（保護領域情報）をカーネル２１０内に書き込むことによって、カーネル２１０内のカーネル設定にポリシの登録を依頼する。カーネル２１０内のポリシ受信部２１３は、ポリシ登録部４０１から送信されたポリシ設定ファイルを受信する。カーネル２１０内のポリシ登録可否判定部２１４は、ポリシ受信部２１３によって受信されたポリシ設定ファイルによって示されるポリシの範囲が適切であるかを判定する。ポリシ登録可否判定部２１４がポリシの範囲が適切ではないと判定した場合、ポリシ登録可否通知部２１７は、ポリシを保存できなかった旨をポリシ登録部４０１に通知する。
【００２７】
ポリシが適切な範囲内であると判定した場合、ポリシ登録可否判定部２１４は、ポリシ設定ファイルと、ポリシ設定ファイルを送信したアプリケーションを識別するためのアプリケーション識別子とをポリシ反映保留部２１５に渡す。また、ポリシ登録可否判定部２１４は、管理アプリケーション通信部２１６を用いてポリシ設定ファイルを管理アプリケーションに送信し、ポリシのデータベース５００への登録を管理アプリケーションに依頼する。
【００２８】
管理アプリケーションのポリシデータベース操作依頼受信部３０２は、管理アプリケーション通信部２１６から送信されたポリシ設定ファイルとアプリケーション識別子とを受信する。ポリシデータベース代理操作部３０３は、アプリケーション識別子と、ポリシ設定ファイルに基づいたポリシとを含むデータ（第１のデータ）をデータファイルとしてのポリシデータベース５００に登録することを試みる。ポリシデータベース代理操作結果送信部３０４は、ポリシの登録に成功したかをカーネル２１０に通知する。
【００２９】
ポリシデータベース５００は、不揮発性メモリ１０６や、無線通信デバイス１０７等によって通信可能なサーバ内のハードディスクドライブ（ＨＤＤ）やＳＳＤ（solid state drive）に不揮発性記憶装置に格納される。
【００３０】
ポリシのポリシデータベース５００への登録が成功した場合、ポリシ反映保留部２１５は、ポリシ設定ファイルに基づいたポリシをカーネル設定２２０に登録する。
【００３１】
不揮発性メモリ１０６へのアクセス要求があった場合、アクセス制御部２１８は、カーネル設定２３０に基づいて、不揮発性メモリ１０６へのアクセスの制御を行う。  
より具体的には、アクセス制御部２１８のアプリケーション向けストレージ領域判定部（ＡＰＰ向けストレージ領域判定部）２１８Ａは、カーネル設定２２０内に反映されているポリシに基づいて、不揮発性メモリ１０６へのアクセスが保護領域（アプリケーション向け領域）であるかを判定する。保護領域（アプリケーション向け領域）であると判定した場合、アクセス制御部２１８は、カーネル２１０内設定に基づいて、不揮発性メモリ１０６へのアクセス制御を行う。
【００３２】
再起動あるいは強制シャットダウン後の起動時に、ポリシ反映部２２０は、ポリシデータベース５００に登録されているポリシをカーネル設定２３０に反映させる。
【００３３】
図４は、ポリシをポリシデータベース５００に追加する手順を説明するためのフローチャートである。
【００３４】
管理アプリケーション３００が起動すると（ステップＢ１）、自分が正当な管理アプリケーションであることをカーネル２１０に認識させるために、管理アプリケーション登録要求（管理ＡＰＰ登録要求）をカーネル２１０に送信する（ステップＢ２）。管理アプリケーション登録要求を受信した後、カーネル２１０の管理アプリケーション判定部２１１は、管理アプリケーション登録要求を送信したアプリケーションが正しい管理アプリケーションであるのか検査を行う（ステップＢ３）。検査によって正しい管理アプリケーションであることが確認された後、管理アプリケーション管理部２１２は、管理アプリケーション登録要求を送信したアプリケーションを正しい管理アプリケーションとして登録する。管理アプリケーション登録部３０１は、登録結果を管理アプリ部に返信する（ステップＢ４）。なお、ステップＢ１〜ステップＢ４の処理は、コンピュータ１０の起動時に一度だけ行われる。
【００３５】
その後、一般アプリケーション４００が任意のタイミングで起動する（ステップＢ５）。一般アプリケーションが自らが不揮発性メモリ１０６に保存したファイルを保護したい場合、ポリシ登録部４０１は、カーネル２１０に対してポリシ設定ファイルとアプリケーション識別子を送信する（ステップＢ６，Ｂ７）。ポリシ設定ファイルを受信したカーネル２１０のポリシ登録可否判定部２１４は、設定されようとしているポリシの記述が一般アプリケーションとして登録可能な権限の範囲内であるかを判定する（ステップＢ８）。ポリシの記述が登録可能な権限の範囲内であると判定した場合、ポリシ登録可否判定部２１４は、管理アプリケーション通信部２１６を用いてポリシデータベース代理操作依頼をポリシ設定ファイルおよびアプリケーション識別子と共に管理アプリ部に送信する（ステップＢ９，Ｂ１０）。ポリシデータベース代理操作依頼によって、ポリシの不揮発化すなわちポリシデータベース５００への保存が管理アプリケーション３００に依頼される。この時、不揮発化が成功するまでは実際のアクセス制御は開始されない。ポリシデータベース操作依頼受信部３０２は、管理アプリケーションからのポリシデータベース５００へのポリシの登録の依頼を受信する。ポリシデータベース代理操作部３０３は、ポリシデータベース代理操作を行いポリシおよびアプリケーション識別子の保存を試みる（ステップＢ１１）。管理アプリケーション３００のポリシデータベース代理操作結果送信部３０４は、保存に成功したかを代理操作結果としてカーネル２１０に返信する（ステップＢ１２）。代理操作結果を受信したカーネル２１０部のポリシ登録可否通知部２１７は、一般アプリケーション４００にポリシ登録の結果を返信する（ステップＢ１３，Ｂ１４）。ポリシ登録結果を受信した一般アプリケーション４００は、登録を試みたポリシがカーネル２１０に受け入れられ、かつ不揮発化されたことを認識することができる（ステップＢ１５）。カーネル２１０のアクセス制御部２１８は、ポリシ登録の一連の処理が完了したことから、ポリシに従ったアクセス制御を開始する（ステップＢ１６）。
【００３６】
図５は、ポリシをポリシデータベース５００に追加する手順をより詳細に説明するためのフローチャートである。
【００３７】
ポリシ登録部４０１は、カーネル２１０内にポリシ設定ファイルを送信する(ステップＢ２１)。ポリシ受信部２１３がポリシ設定ファイルを受信する。ポリシ登録可否判定部２１４は、受信したポリシ情報の記述が一般アプリケーションとして登録可能な権限の範囲内であるかを判定する（ステップＢ２２）。
【００３８】
ポリシ設定ファイルの記述が登録可能な権限の範囲内ではないと判定した場合（ステップＢ２２のＮｏ）、ポリシ登録可否通知部２１７は、ポリシの記述エラーとして一般アプリケーション４００のポリシ登録部４０１に通知する（ステップＢ２７）。ポリシ設定ファイルの記述が登録可能な権限の範囲内であると判定した場合（ステップＢ２２のＹｅｓ）、ポリシ登録可否判定部２１４は、ポリシ設定ファイルをポリシ反映保留部２１５に送り、ポリシ設定ファイルに基づいたカーネル設定２３０の書き換えを一端保留する（ステップＢ２３）また、ポリシ登録可否判定部２１４は、管理アプリケーション通信部２１６を用いて、ポリシ設定ファイルとアプリケーション識別子とを管理アプリケーション３００のポリシデータベース操作依頼受信部３０２に送信する（ステップＢ２４）。ポリシデータベース代理操作部は、ポリシ設定ファイルおよびアプリケーション識別子に基づいたデータをポリシデータベース５００に登録することを試みる。ポリシデータベース代理操作結果送信部３０４は、登録に成功したかを示す登録結果をカーネル２１０に送信する。ポリシ反映保留部２１５は、登録結果に基づいて、ポリシの登録に成功したかを判定する（ステップＢ２５）。ポリシの登録に成功した判定した場合（ステップＢ２５のＹｅｓ）、ポリシ反映保留部２１５は、保留していたポリシ設定ファイルに基づいたポリシをカーネル設定２３０に反映させる。そして、アクセス制御部２１８は、カーネル設定２３０内のポリシに基づいたアクセス制御を行う。
【００３９】
ポリシの登録に成功していない判定した場合（ステップＢ２５のＮｏ）、ポリシ登録可否通知部２１７は、ポリシの登録に失敗したことを一般アプリケーション４００のポリシ登録部４０１にポリシ登録部に通知する（ステップＢ２８）。ポリシ反映保留部２１５は、保留していたポリシ設定ファイルを削除する（ステップＢ２９）。
【００４０】
図６は、一般アプリケーションのアンインストール時の処理の手順を示すフローチャートである。
【００４１】
管理アプリケーション３００が起動すると（ステップＢ３１）、自分が正当な管理アプリケーションであることをカーネル２１０に認識させるために、管理アプリケーション登録要求（管理ＡＰＰ登録要求）をカーネル２１０に送信する（ステップＢ３２）。管理アプリケーション登録要求を受信した後、カーネル２１０の管理アプリケーション判定部２１１は、管理アプリケーション登録要求を送信したアプリケーションが正しい管理アプリケーションであるのか検査を行う（ステップＢ３３）。検査によって正しい管理アプリケーションであることが確認された後、管理アプリケーション管理部２１２は、管理アプリケーション登録要求を送信したアプリケーションを正しい管理アプリケーションとして登録する。管理アプリケーション登録部３０１は、登録結果を管理アプリ部に返信する（ステップＢ３４）。なお、ステップＢ３１〜ステップＢ３４の処理は、コンピュータ１０の起動時に一度だけ行われる。
【００４２】
オペレーティングシステム２００は、一般アプリケーション４００のアンインストールを開始する（ステップＢ３５）。オペレーティングシステム２００は、アンインストールされる一般アプリケーション４００のアプリケーション識別子をカーネル２１０に通知する（ステップＢ３６）。
【００４３】
オペレーティングシステム２００は、カーネル２１０のアンインストール検出部２１９は、一般アプリケーション４００のアンインストールを検出する（ステップＢ３８）。アンインストール検出部２１９は、管理アプリケーション通信部２１６を用いて、一般アプリケーション４００のアプリケーション識別子を管理アプリケーション３００に通知すると共に、ポリシデータベース５００から管理アプリケーション３００に対応するポリシの削除を管理アプリケーション３００に依頼する（ステップＢ４０）。ポリシデータベース代理操作部３０３は、ポリシデータベース５００からアプリケーション識別子に対応するポリシの削除を試みる（ステップＢ４１）。ポリシデータベース代理操作結果送信部３０４は、ポリシ削除結果をカーネル２１０に送信する（ステップＢ４２）。カーネル２１０は、オペレーティングシステム２００にポリシ削除結果を送信する（ステップＢ４４）。ポリシ削除結果がポリシの削除に成功したことを示している場合、オペレーティングシステム２００は、一般アプリケーション４００のアンインストールを再開する（ステップＢ４５）。そして、オペレーティングシステム２００は、一般アプリケーション４００のアンインストールを終了する（ステップＢ４６）。アクセス制御部２１８は、一般アプリケーション４００に対応するアクセス制御を中止する。
【００４４】
図７は、ポリシデータベース５００の構造を示す図である。
【００４５】
ポリシデータベース５００は、アプリケーション識別子と、アプリケーション識別子に関連付けられている保護領域設定とを含む。保護領域設定には、保護領域を示すパスを含む。カーネル２１０からポリシデータベース５００への保護領域の登録が依頼された場合、ポリシデータベース代理操作部３０３は、アプリケーション識別子と、アプリケーション識別子に関連付けられた保護領域設定とをポリシデータベース５００に登録することを試みる。
【００４６】
また、カーネル２１０からアプリケーション識別子と共に、ポリシの削除が依頼された場合、ポリシデータベース代理操作部３０３は、アプリケーション識別子と、アプリケーション識別子に関連付けられている保護領域設定を削除することを試みる。
【００４７】
図７に示すように、ポリシデータベース５００は、アプリケーション識別子Ａ（ＡＰＰ識別子Ａ）と、アプリケーション識別子Ａに関連付けられた保護領域設定Ａ１および保護領域設定Ａ２とを含む。保護領域設定Ａ１は、保護領域のパスとして、“/data/areaA1”を含む。保護領域設定Ａ２は、保護領域のパスとして、“/data/areaA2”を含む。ポリシデータベース５００は、アプリケーション識別子Ｂ（ＡＰＰ識別子Ｂ）と、アプリケーション識別子Ｂに関連付けられた保護領域設定Ｂ１を含む。保護領域設定Ｂ１は、保護領域のパスとして、“/data/areaB1”を含む。ポリシデータベース５００は、アプリケーション識別子Ｃ（ＡＰＰ識別子Ｃ）と、アプリケーション識別子Ｃに関連付けられた保護領域設定Ｃ１、保護領域設定Ｃ２および保護領域設定Ｃ３とを含む。保護領域設定Ｃ１は、保護領域のパスとして、“/data/areaC1”を含む。保護領域設定Ｃ２は、保護領域のパスとして、“/data/areaC2”を含む。保護領域設定Ｃ３は、保護領域のパスとして、“/data/areaC3”を含む。
【００４８】
カーネル上で動作する管理アプリケーション３００により、ポリシ設定ファイルに記述されているポリシを不揮発性記憶装置内のポリシデータベース５００に登録することによって、ユーザランド側に豊富に用意されたライブラリ等の支援を受けながらポリシーファイルの更新処理を書くことができるため、ポリシ設定ファイルの運用を柔軟に行う事ができると共に、実装コストを低く抑えることが可能になる。
【００４９】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５１】
１０…タブレット型パーソナルコンピュータ、２０…オペレーティングシステム、１０１…ＣＰＵ、１０３…主メモリ、１０６…不揮発性メモリ、２００…オペレーティングシステム、２１０…カーネル、２１１…管理アプリケーション判定部、２１２…管理アプリケーション管理部、２１３…ポリシ受信部、２１４…ポリシ登録可否判定部、２１５…ポリシ反映保留部、２１６…管理アプリケーション通信部、２１７…ポリシ登録可否通知部、２１８…アクセス制御部、２１９…アンインストール検出部、２２０…ポリシ反映部、２３０…カーネル設定、３００…管理アプリケーション、３０１…管理アプリケーション登録部、３０２…ポリシデータベース操作依頼受信部、３０３…ポリシデータベース代理操作部、３０４…ポリシデータベース代理操作結果送信部、４００…一般アプリケーション、４０１…ポリシ登録部、５００…ポリシデータベース。
【図１】
2015087997.tif 000003
【図２】
2015087997.tif 000004
【図３】
2015087997.tif 000005
【図４】
2015087997.tif 000006
【図５】
2015087997.tif 000007
【図６】
2015087997.tif 000008
【図７】
2015087997.tif 000009