(57)【特許請求の範囲】
【請求項１】
イベント処理部と、第１判定部とを備え、
前記イベント処理部は、
イベントを検出してイベントの実行を保留するイベント検出部と、
検出した前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第１判定部に対応する第１のアプリケーションの第１識別情報を記憶するルール記憶部と、
前記第１判定部から前記イベントの実行を許可するかあるいは禁止するかの問い合わせを送信するよう求める登録依頼を受信すると、前記ルール記憶部に登録された第１識別情報と前記第１判定部の識別情報とが一致するか否かを判定し、一致する場合に前記第１判定部を登録する第１判定部登録部と、
検出した前記イベントを登録された前記第１判定部へと送信する通信部と、
を備え、
前記第１判定部は、
前記第１判定部の起動時に、前記イベント処理部に対して、前記登録依頼を送信する要求部と、
前記第１判定部とは異なり、前記判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵を含む署名管理部と、
前記第２のアプリケーションからの登録要求を受信し、前記署名管理部に含まれる前記第２識別情報と前記公開鍵とを用いて前記登録要求を受信した第２のアプリケーションの署名を検証する署名検証部と、
署名の検証が成功した場合にのみ前記第２のアプリケーションを前記第２判定部として登録する第２判定部登録部と、
前記イベント処理部から前記判定処理の要求を受信するとともに、前記イベント処理部に対して前記判定処理の結果を送信する第１通信部と、
前記第２判定部登録部に登録された前記第２判定部へと受信した前記イベントを転送するとともに、前記第２判定部から前記判定処理の結果を受信する第２通信部と、
を備え、
前記イベント検出部は、受信した前記判定結果が実行許可の場合に、前記イベントの保留を解除してイベントを実行する
ことを特徴とする情報処理装置。
【請求項２】
前記第１判定部は、どのイベントに対する前記判定処理の要求を前記第２判定部に対して送信するかを規定する第１ルール情報を記憶した第１判定ルール管理部を備え、
前記第１判定ルール管理部は、前記第２判定部登録部に前記第２判定部が登録されると、第２判定部から処理対象の前記イベントの指示を受けて前記第１ルール情報を更新する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ルール記憶部は、どのイベントに対する前記判定処理の要求を前記第１判定部に送信するか規定する第２ルール情報を含み、
前記第１通信部は、前記第２判定部登録部に前記第２判定部が登録されると、前記第１判定ルール管理部に記憶された前記第１ルール情報を更新した第３ルール情報を前記イベント処理部に送信し、
前記ルール記憶部は、受信した前記第３ルール情報によって、前記第２ルール情報を更新する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記イベントは、アプリケーションのアンインストール、外部ストレージとの接続、Ｂｌｕｅｔｏｏｔｈデバイスの接続、ＷｉＦｉデバイスの接続、及びアプリケーションの起動のいずれかである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
イベント処理部と、第１判定部と、第２判定部と、を備え、
前記イベント処理部は、
イベントを検出してイベントの実行を保留するイベント検出部と、
検出した前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第１判定部に対応する第１のアプリケーションの第１識別情報を記憶するルール記憶部と、
前記第１判定部から前記イベントの実行を許可するかあるいは禁止するかの問い合わせを送信するよう求める登録依頼を受信すると、前記ルール記憶部に登録された第１識別情報と前記第１判定部の識別情報とが一致するか否かを判定し、一致する場合に前記第１判定部を登録する第１判定部登録部と、
検出した前記イベントを登録された前記第１判定部へと送信する通信部と、
を備え、
前記第１判定部は、
前記第１判定部の起動時に、前記イベント処理部に対して、前記登録依頼を送信する要求部と、
前記第１判定部とは異なり、前記判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵を含む署名管理部と、
前記第２のアプリケーションからの登録要求を受信し、前記署名管理部に含まれる前記第２識別情報と前記公開鍵とを用いて前記登録要求を受信した第２のアプリケーションの署名を検証する署名検証部と、
署名の検証が成功した場合にのみ前記第２のアプリケーションを第２判定部として登録する第２判定部登録部と、
前記イベント処理部から前記判定処理の要求を受信するとともに、前記イベント処理部に対して前記判定処理の結果を送信する第１通信部と、
前記第２判定部登録部に登録された前記第２判定部へと受信した前記イベントを転送するとともに、前記第２判定部から前記判定処理の結果を受信する第２通信部と、
を備え、
前記第２判定部は、
前記第１判定部から受信した前記イベントの実行を許可するかあるいは禁止するかを判定する実行判定部と、
判定した前記イベントの実行を許可するかあるいは禁止するかの判定結果を前記第１判定部へと返信する第１判定部通信部と、
を備え、
前記イベント検出部は、受信した前記判定結果が実行許可の場合に、前記イベントの保留を解除してイベントを実行する
ことを特徴とする情報処理装置。
【請求項６】
前記実行判定部は、ネットワークを通じて接続されたイベント判定サーバ装置に記憶されたイベント判定用ルールに基づき、前記イベントの実行を許可するかあるいは禁止するかを判定する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
コンピュータを、イベント処理部と、第１判定部として機能させるためのプログラムであって、
前記イベント処理部は、
イベントを検出してイベントの実行を保留するイベント検出部と、
検出した前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第１判定部に対応する第１のアプリケーションの第１識別情報を記憶するルール記憶部と、
前記第１判定部から前記イベントの実行を許可するかあるいは禁止するかの問い合わせを送信するよう求める登録依頼を受信すると、前記ルール記憶部に登録された第１識別情報と前記第１判定部の識別情報とが一致するか否かを判定し、一致する場合に前記第１判定部を登録する第１判定部登録部と、
検出した前記イベントを登録された前記第１判定部へと送信する通信部と、
を備え、
前記第１判定部は、
前記第１判定部の起動時に、前記イベント処理部に対して、前記登録依頼を送信する要求部と、
前記第１判定部とは異なり、前記判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵を含む署名管理部と、
前記第２のアプリケーションからの登録要求を受信し、前記署名管理部に含まれる前記第２識別情報と前記公開鍵とを用いて前記登録要求を受信した第２のアプリケーションの署名を検証する署名検証部と、
署名の検証が成功した場合にのみ前記第２のアプリケーションを第２判定部として登録する第２判定部登録部と、
前記イベント処理部から前記判定処理の要求を受信するとともに、前記イベント処理部に対して前記判定処理の結果を送信する第１通信部と、
前記第２判定部登録部に登録された前記第２判定部へと受信した前記イベントを転送するとともに、前記第２判定部から前記判定処理の結果を受信する第２通信部と、
を含み、
前記イベント検出部は、受信した前記判定結果が実行許可の場合に、前記イベントの保留を解除してイベントを実行する
ことを特徴とするプログラム。
【請求項８】
イベント処理部と、第１判定部とを備える情報処理装置の情報処理方法であって、
前記イベント処理部がイベントを検出してイベントの実行を保留するイベント検出ステップと、
前記イベント処理部が、検出した前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第１判定部に対応する第１のアプリケーションの第１識別情報を記憶するルール記憶ステップと、
前記イベント処理部が、前記第１判定部から前記イベントの実行を許可するかあるいは禁止するかの問い合わせを送信するよう求める登録依頼を受信すると、登録された前記第１識別情報と前記第１判定部の識別情報とが一致するか否かを判定し、一致する場合に前記第１判定部を登録する第１判定部登録ステップと、
前記イベント処理部が、検出した前記イベントを登録された前記第１判定部へと送信する送信ステップと、
第１判定部が、前記第１判定部の起動時に、前記イベント処理部に対して、前記登録依頼を送信する要求ステップと、
前記第１判定部とは異なり、前記判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵を含む署名管理ステップと、
前記第２のアプリケーションからの登録要求を受信し、前記第１判定部とは異なり、前記判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵とを用いて前記登録要求を受信した第２のアプリケーションの署名を検証する署名検証ステップと、
署名の検証が成功した場合にのみ第２判定部登録部により前記第２のアプリケーションを第２判定部として登録する第２判定部登録ステップと、
第１判定部が、前記イベント処理部から前記判定処理の要求を受信するとともに、前記イベント処理部に対して前記判定処理の結果を送信するステップと、
第１判定部が、前記第２判定部登録部に登録された前記第２判定部へと受信した前記イベントを転送するとともに、前記第２判定部から前記判定処理の結果を受信する第２通信ステップと、
前記イベント処理部が、受信した前記判定結果が実行許可の場合に、前記イベントの保留を解除してイベントを実行するステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法、プログラムに関する。
【背景技術】
【０００２】
近年、ＰＣの分野では、管理者権限(Administrator権限)と一般ユーザー権限をパスワードによって分離し、端末の一般利用者には一般ユーザー権限のパスワードを設定する事で利用者権限のみを付与する。そしてセキュリティ管理者は端末を管理する専用ソフトウェアをインストールして、専用ソフトウェアに外部ストレージデバイスの接続を禁止したりＢｌｕｅｔｏｏｔｈ（登録商標）機器の接続を禁止したりする設定を施し、一般ユーザー権限ではそれらの設定が解除できないようにして対策する事が一般的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１０／００３７０８８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、情報端末上で採用されているシステムでは、もともと個人利用を目的として開発された経緯もあり、パスワードによる権限の分離機構が存在しない。このため、セキュリティ管理者が端末を管理する専用ソフトウェアをインストールして端末に各種設定を施したとしても、一般利用者はその設定を解除する事ができてしまう。かつ、上述したように、端末を管理する専用ソフトウェア(端末管理アプリケーション)を別の組織において製作して流通しようとした場合、アプリケーションとイベント発生元のオペレーティングシステム間、およびアプリケーション間のデータの通信のプロトコルが解析され、不正な端末管理アプリケーションがイベント発生に対する実行を許可するかあるいは禁止するかの判定結果をイベント発生元に不正に改変して応答する事で、セキュリティ管理者の意図した設定と異なる挙動に改変されてしまうリスクがある。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明の実施形態の情報処理装置は、イベント処理部と、第１判定部とを備える。イベント処理部は、イベントを検出してイベントの実行を保留するイベント検出部と、検出した前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第１判定部に対応する第１のアプリケーションの第１識別情報を記憶するルール記憶部と、前記第１判定部から前記イベントの実行を許可するかあるいは禁止するかの判定処理の権限の付与を求める登録依頼を受信すると、前記ルール記憶部に登録された第１識別情報と前記第１判定部の識別情報とが一致するか否かを判定し、一致する場合に前記第１判定部を登録する第１判定部登録部と、検出した前記イベントを登録された前記第１判定部へと送信する通信部と、を備える。
【０００６】
また、第１判定部は、前記第１判定部の起動時に、前記イベント処理部に対して、前記登録依頼を送信する要求部と、前記第１判定部とは異なり、前記イベントの実行を許可するかあるいは禁止するかの判定処理を行う第２判定部に対応する第２のアプリケーションに付与された署名が正しいものか否かの検証に用いる第２識別情報、及び公開鍵を含む署名管理部と、前記第２のアプリケーションからの登録要求を受信し、前記署名管理部に含まれる前記第２識別情報と前記公開鍵とを用いて前記登録要求を受信した第２のアプリケーションの署名を検証する署名検証部と、署名の検証が成功した場合にのみ前記第２のアプリケーションを第２判定部として登録する第２判定部登録部と、前記イベント処理部から前記イベントの実行を許可するかあるいは禁止するかの判定処理の要求を受信するとともに、前記イベント処理部に対して前記判定処理の結果を送信する第１通信部と、前記第２判定部登録部に登録された前記第２判定部へと受信した前記イベントを転送するとともに、前記第２判定部から前記判定処理の結果を受信する第２通信部と、を備える。そして、前記イベント検出部は、受信した前記判定結果が実行許可の場合に、前記イベントの保留を解除してイベントを実行する。
【発明の効果】
【０００７】
本発明の実施形態の情報処理装置は、複数のモジュール間において処理を分担する場合の、セキュリティを向上させることのできるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態の情報処理装置の機能構成を示すブロック図。
【図２】第１の実施形態のアプリケーションパッケージのファイル構成を示すブロック図。
【図３】第１の実施形態の判定用アプリケーションの別例を示すブロック図。
【図４】第１の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【図５】第１の実施形態の判定のアプリケーションのインストールにかかるイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すフロー図。
【図６】第２の実施形態の第２判定部の機能構成を示すブロック図。
【図７】第２の実施形態の第１判定部の機能構成を示すブロック図。
【図８】第２の実施形態のイベントの登録処理の流れを示すシーケンス図。
【図９】第３の実施形態のインストーラ部の機能構成を示すブロック図。
【図１０】第３の実施形態のアプリケーションのインストールにかかるイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すフロー図。
【図１１】第４の実施形態のイベント処理部の機能構成を示すブロック図。
【図１２】第４の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【図１３】第４の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【図１４】第４の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【図１５】第４の実施形態のイベント処理部の機能構成を示すブロック図。
【図１６】第４の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【図１７】第５の実施形態のイベント処理部の機能構成を示すブロック図。
【図１８】第５の実施形態のイベントの実行を許可するかあるいは禁止するかの判定にかかる処理の流れを示すシーケンス図。
【発明を実施するための形態】
【０００９】
以下に、本発明の実施形態にかかる情報処理装置を具体化した実施形態を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。本実施形態は、イベントの実行を許可するかあるいは禁止するかを判定するアプリケーションと、イベントの実行を行うアプリケーションとを分離する。これにより、詳細な判定のための制御を行うことができ、判定のためのルールを変更するにもメンテナンス性を高めることができる。
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態の情報処理装置の機能構成を示したブロック図である。図１に示されるように、情報処理装置１は、イベント処理部１０、第１判定部１００、第２判定部２００、インストーラ部３００、一般アプリ部９００、アプリケーション記憶部４００、及びアプリケーション情報記憶部５００を備えている。アプリケーション記憶部４００は、アプリサーバ７００からダウンロードされたインストール用のアプリケーションのパッケージが記憶される記憶領域であり、例えばＨＤＤなどにより構成されている。アプリケーション情報記憶部５００は、インストールされたアプリケーションに関連したアイコンとして使用されるサムネイル画像ファイルなどの情報が記憶されるデータベースであり、例えばＨＤＤなどにより構成されている。第１判定部１００、第２判定部２００、一般アプリ部９００は、アプリケーションプログラムである。たとえばＡｎｄｒｏｉｄアプリケーションプログラムであってもよい。第１判定部１００はあらかじめ情報処理装置１にプリイントールされており、第２判定部２００と一般アプリ部９００は図２に示すようなアプリケーションパッケージとしてアプリサーバ７００から配布され、アプリケーション記憶部４００に記憶される。なお、第１判定部１００もアプリケーションパッケージ形式で配布してもよい。アプリケーションは複数のファイルが一つのファイルに圧縮された圧縮形式のアプリケーションパッケージとしてアプリサーバから配布され、そのままアプリケーション記憶部４００に格納される。
【００１１】
アプリケーションパッケージには、例えば、プログラムの実行コードや、アプリ名、バージョン番号、設定情報、証明書、その他、サムネイル用の画像ファイルなどのリソースファイルなどが含まれている。なお証明書には署名情報と、その署名を検証するための公開鍵が含まれる。その後、インストーラ部３００によって、インストール時にアプリケーションパッケージに含まれる情報が各ファイルに分離され、アプリケーションパッケージに含まれる設定情報の指示に従って、実行コードなどがアプリケーション記憶部４００の所定の位置に格納される。また、インストール対象のアプリケーションに対応するサムネイル画像インストーラ部３００は、あらかじめ情報処理装置１にプリイントールされている。インストーラ部３００は、たとえばＡｎｄｒｏｉｄアプリケーションプログラムであってもよいし、ネイティブプログラムであってもよいし、その両方から構成されていてもよい。
【００１２】
イベント処理部１０は、システムコールなどによるオペレーティングシステムの機能の呼び出しや、デバイスの接続処理、アプリケーションのインストール、メモリの割当て、プロセスの管理などを行うオペレーティングシステム・ミドルウェアの基幹部分である。イベント処理部１０は、インストール処理部１１、イベント検出部１２、通信部１３、通知部１５、ルール記憶部１６、及び第１判定部登録部１４を備えている。インストール処理部１１は、インストーラ部３００のアプリ登録部３０１によって受け付けられたアプリケーションインストールの通知を受付け、アプリケーションをインストールする処理を実行する。より具体的には、アプリケーション記憶部４００に格納されたアプリケーションパッケージファイルに含まれる実行プログラムや設定ファイルなどを所定の位置に展開して格納する処理を実行する。インストール処理部１１は、インストール時には、第１判定部１００、及び第２判定部２００によるインストール許可の通知を得てからインストールを実行するため、まずはインストールの要求があった旨をイベント検出部１２に通知する。
【００１３】
イベント検出部１２は、インストール処理部１１からの通知や、そのほかのシステムコールなどによるイベントを検出する。検出したイベントは、イベント発生元に対してイベントの実行を保留させ、通信部１３へと通知する。なお、すべてのシステムコールを通信部１３に通知する訳ではなく、第１判定部１００及び第２判定部２００によってイベントの実行を許可するかあるいは禁止するかを問い合わせる必要のあるイベントのみ通信部１３へと通知するイベントフィルター処理を実行してもよい。通信部１３に通知するイベントか否かはルール記憶部１６にあらかじめ登録されているものとする。通信部１３は、第１判定部登録部１４に登録されている第１判定部１００を指定して、イベントの実行を許可するかあるいは禁止するかを問い合わせる。なお第１判定部１００と、イベント処理部１０との間の通信は、例えばシグナルシステムコールなどを用いて実施される。通信部１３は、第１判定部１００からイベントの実行を許可するかあるいは禁止するかの判定結果を受信し、通知部１５にその判定結果を通知する。通知部１５は、通信部１３から判定結果を受信し、イベントの種類に応じて判定結果をイベント発生元に通知する。
【００１４】
たとえば、イベント発生元がインストール処理部１１の場合、第１判定部１００からインストール許可又は禁止という判定結果をインストール処理部１１に通知する。イベントが後述する外部ストレージの接続であった場合、ストレージへの接続許可又は禁止という判定結果をストレージ接続管理部(不図示)に通知する。
【００１５】
ルール記憶部１６は、通信部１３に通知するイベントの種類と、第１判定部１００が所定のアプリケーションである事を第１判定部登録部１４が判定するためのアプリケーションの識別情報（特許請求の範囲の第１識別情報に対応）を記憶する。ここでいうアプリケーションの識別情報にはアプリケーション名が含まれる。以下の説明ではアプリケーションの識別情報をアプリケーション名（アプリ名）として説明するが、アプリケーション名（アプリ名）をアプリケーションの識別情報として読み替えることができ、アプリケーションを識別する情報であれば、アプリケーション名（アプリ名）に限定するものではない。また、ルール記憶部１６は、イベントの実行を許可するかあるいは禁止するかの問い合わせが通信部１３によって第１判定部１００に通知されなかった場合、または第１判定部１００からイベントの実行を許可するかあるいは禁止するかの判定結果が返ってこずにタイムアウトした場合に、そのイベントの実行を許可するかあるいは禁止するかの判定結果を記憶する。
【００１６】
第１判定部１００は、起動時にイベント処理部１０に対して、第１判定部１００のプロセスの登録を要求し、第１判定部登録部１４は、ルール記憶部１６に登録されているアプリ名と一致するか判定処理を行う。一致した場合のみ、通知部１３は、イベント検出部１２で検出したイベントを第１判定部１００に問い合わせる。一致しなければ、仮にイベント検出部でイベントを検出したとしても通信部は第１判定部にイベントの実行を許可するかあるいは禁止するかの問い合わせを送信しない。一致した場合、第１判定部１００のアプリ名や、プロセス名を第１判定部登録部１４に登録する。通信部１３は、第１判定部登録部１４によって登録されたアプリ名などで特定される第１判定部１００に対して、イベントの実行を許可するかあるいは禁止するかの問い合わせを行う。したがって、第１判定部登録部１４により第１判定部１００が登録されていない場合はイベントの実行を許可するかあるいは禁止するかの判定の問い合わせは行われず、通知部１５は例えば予めルール記憶部１６に設定されたデフォルトの動作ルールに従って、イベントを処理する。また、通信部１３が第１判定部１００に問い合わせを送信したものの、判定結果が返信されないまま所定の時間以上が経過してタイムアウトした場合にも通知部１５はルール記憶部１６に設定されたデフォルトの動作ルールに従って、イベントを処理する。
【００１７】
第１判定部１００は、イベント処理部１０から問い合わせのあったイベント種別を判定する。イベントの種別を判定して、イベント種別が第２判定部２００のインストールであるか否かを判定する。第２判定部２００のインストールである場合は、第１判定部１００は、自ら第２判定部２００のインストールの実行を許可するかあるいは禁止するかについて判定する。一方、第２判定部２００のインストール以外のイベントである場合は、イベントの実行を許可するかあるいは禁止するかの判定は第２判定部２００で実施すべく、第１判定部１００は、イベントの情報を第２判定部２００へと転送する。なお、第１判定部１００と第２判定部２００との間における通信には、例えばプロセス間通信を利用したメッセージ交換を用いる。情報処理装置１がＡｎｄｒｏｉｄの場合はインテントやサービスの仕組みを使ってメッセージ交換を行ってもよい。
【００１８】
第１判定部１００は、第１通信部１０１、第２通信部１１０、種別判定部１０２、種別管理部１０３、実行判定部１０４、第２判定部登録部１０５、署名検証部１０６、アプリ取得部１０７、署名管理部１０８、及び要求部１０９を備えている。第１通信部１０１は、イベント処理部１０との間でデータの送受信を行う。第２通信部１１０は、第２判定部２００との間でデータの送受信を行う。例えば、第１通信部１０１は、イベント処理部１０から受信したイベントの実行を許可するかあるいは禁止するかの問い合わせを受信したり、イベントに対してその実行を許可するかあるいは禁止するかの情報をイベント処理部１０へと送信したりする。第２通信部１１０は、イベントの実行を許可するかあるいは禁止するかの問い合わせを第２判定部２００に送信したり、第２判定部２００で判定されたイベントの実行を許可するかあるいは禁止するかを判定した結果の情報を受信したりする。
【００１９】
種別判定部１０２は、イベント処理部１０から実行を許可するかあるいは禁止するかの判定に関する問い合わせのあったイベントの種別が、第２判定部２００のインストールであるか、それ以外のイベントであるかを判定する。種別管理部１０３は、アプリケーション記憶部４００に記憶されたイベントの種別を判定するための情報の読み出しや書き込みを管理しており、種別管理部１０３を通じて取得された種別を判定するための情報に基づいて種別の判定が行われる。例えば、種別管理部１０３は第１判定部１１０がインストールされる時、または初めて実行される時に、種別判定部１０２が用いるイベント名やアプリ名などの情報をアプリケーション記憶部４００に記録したり、種別判定部１０２がイベントの受信に先立ち、アプリケーション記憶部４００から種別判定部１０２が用いるイベント名やアプリ名等の情報を読み出したりする。
【００２０】
具体的には、予め第１判定部１００を製作した製作者が、第３者に対して第１判定部１００と連携可能な第２判定部２００の作成を許可した場合を想定する。この場合、第１判定部１００には、製作者が第１判定部１００と連携可能な第２判定部２００として機能する判定用アプリケーションを登録しておくことができるため、そのアプリケーションと例えばアプリ名や、アプリケーションに付与された署名が期待値と一致するアプリは第２判定部２００として機能する判定用アプリケーションであると判定される。なお、種別管理部１０３に登録される第２判定部２００の種類は、ネットワークを通じてアップデートできるようにしてもよい。
【００２１】
第２判定部登録部１０５は、実行判定部１０４がインストールされるアプリケーションが正当な判定アプリケーションであると判定した場合に、種別管理部１０３で管理しているアプリ名を持つ判定アプリケーションが第２判定部２００であるか否かを示す識別情報を保持する。
【００２２】
種別判定部１０２は、イベント処理部１０から送信されたイベントの種別が第２判定部２００として機能する判定用アプリケーションのインストールであると判定した場合は、イベントの情報を実行判定部１０４へと渡す。一方、イベントの種別が判定用アプリケーションのインストール以外のイベント、例えば他のアプリケーションのインストールであったり、既にインストールされているアプリケーションのアンインストールであったり、外部ストレージの接続であったり、Ｂｌｕｅｔｏｏｔｈデバイスの接続であったり、ＷｉＦｉデバイスの接続であったり、アプリケーションの起動であったりした場合は、イベントの情報を第２通信部１１０を通じて第２判定部２００へと転送する。この際、第２通信部１１０は、転送される先の第２判定部２００が第２判定部登録部１０５によって第２判定部２００として登録処理がなされた判定用アプリケーションであるか否かを確認する。すなわち、第２判定部２００はユーザーが自由に選んでインストールすることを想定しているが、正しくインストールされた第２判定部２００は、種別管理部１０３によってアプリケーション記憶部４００から読み出しされるアプリ名を持つ判定アプリが第２判定部２００であるという識別情報が第２判定部登録部１０５に登録されている。したがって、登録済みの第２判定部２００以外との通信は許可されないようになっている。
【００２３】
実行判定部１０４は、インストールのイベントを受信した判定用アプリケーションの署名の検証結果を署名検証部１０６から受信し、その判定アプリケーションが第２判定部２００であるという情報を第２判定部登録部１０５に登録すべきか否か、あるいはインストールしてよいかを判定する。そのため、実行判定部１０４は、署名検証部１０６へとイベントの情報を転送する。署名検証部１０６は、取得した第２判定部２００のインストールイベントの識別情報であるアプリ名などから、署名管理部１０８を通じてアプリケーション記憶部４００に予め記憶された、同名の判定用アプリケーションの公開鍵を取得する。公開鍵は判定用アプリケーションの製作者によって作成されたものであり、製作者は対応する秘密鍵で判定用アプリケーションに署名を付与することで、判定用アプリケーションが正しい製作者によって作成されたものであるかを検証し、同名の正しくない判定用アプリケーションによるなりすましを防止することができる。
【００２４】
また、アプリ取得部１０７は、インストールの実行要求がされた第２判定部２００の判定用アプリケーションと同じアプリ名をもつアプリケーションの署名情報をアプリケーション記憶部４００に記憶されたアプリケーションのアプリケーションパッケージから取得する。図２に示したように、アプリケーションパッケージのファイルには署名が含まれている。署名は、判定用アプリケーションの製作者が管理する秘密鍵を用いて公開鍵暗号を使って計算される。署名計算に用いる公開鍵暗号アルゴリズムとして、たとえばＲＳＡを用いればよい。
【００２５】
署名検証部１０６は、アプリ取得部１０７がアプリケーションパッケージから取得した署名情報が、署名管理部１０８によって管理されている公開鍵によって正しく検証できるか否か、すなわち正しい製作者により作成されたアプリケーションであるか否かを検証し、検証の結果を実行判定部１０４へと返信する。実行判定部１０４は、署名検証部１０６における署名情報の検証結果に元づいて判定アプリケーションが第２判定部２００であるという識別情報を第２判定部登録部１０５に登録するか否かを判定する。署名検証が成功すれば、第２判定部登録部１０５は、判定アプリケーションの識別情報を、第２判定部２００として登録する。署名検証が失敗すれば、種別管理部１０３が管理するアプリ名を持つ判定アプリケーションは第２判定部２００ではないため、識別情報は登録されない。署名検証が失敗した場合、実行判定部１０４は、判定アプリケーションのインストールの判定結果を禁止と設定してもよいし、インストールの判定結果自体は許可とし、第２判定部登録部１０５に登録しないようにしてもよい。インストールの判定結果を禁止とした場合、判定アプリケーションはインストールされないため、判定アプリケーションが実行される事もなく、第１判定部１００が判定アプリケーションと通信する事も生じない。実行判定部１０４は、判定結果を通信部１０１を通じてイベント処理部１０へと通知する。要求部１０９は、第１判定部１００の起動時に、イベント処理部１０の第１判定部登録部１４に第１判定部１００の識別情報を登録するように要求する。
【００２６】
署名管理部１０８は、判定アプリケーションを第２判定部２００として第２判定部登録部１０５に登録する際に用いる公開鍵をアプリケーションインストール時にアプリケーション記憶部４００に書き込んだり、インストール時に読み込んだりする。判定アプリケーションはアプリケーションパッケージファイルとしてアプリサーバから配信される。図２に示すように、アプリケーションパッケージには署名情報が含まれるが、署名管理部１０８はこの証明書の作成に利用した秘密鍵に対応する公開鍵のアプリケーション記憶部４００への記憶や読み出しを行う。すなわち、署名管理部１０８は第２判定部２００として登録する判定アプリケーションの公開鍵を特定して取得することができる。なお、署名管理部１０８の管理対象の公開鍵は複数であってもよい。
【００２７】
また、第１判定部１００があらかじめ情報処理装置１にインストールされている場合、第２判定部登録部１０５に登録する際に用いる公開鍵もアプリケーションインストール時にアプリケーション記憶部４００に書き込んでおく。さらに、第１判定部１００の開発者は第１判定部１００の署名管理部１０８に追加で公開鍵を挿入した新しいバージョンの第１判定部１００をアプリケーションパッケージとして作成し、アプリサーバ７００から配信してもよい。その場合、新しいバージョンの第１判定部１００が情報処理装置１にアップデートインストールされると、署名管理部１０８で管理される公開鍵もアップデートされるため、第２判定部２００として登録可能な判定アプリケーションを追加することができる。
【００２８】
また、第１判定部１００の開発者は、第１判定部１００の署名管理部１０８に含まれる公開鍵を別の公開鍵に差し替えて新しいバージョンの第１判定部をアプリケーションパッケージとして作成し、アプリサーバ７００から配信してもよい。この場合、新しいバージョンの第１判定部１００のアップデートインストールを行うと、これまで第２判定部２００として登録されていた判定アプリケーションは、署名検証部１０８による検証処理が失敗するため、第２判定部２００として登録されなくなる。第２判定部２００として登録可能な判定アプリケーションは、新しいバージョンの第１判定部１００の署名管理部１０８が管理する新しい公開鍵に対応する秘密鍵で署名したものに限定される。すなわち、第１判定部１００をアップデートインストールする事によって今まで第２判定部２００として登録されている判定アプリケーションを第２判定部２００として認識せずに、強制的に別の判定アプリケーションを第２判定部２００として登録するようにさせる事ができるようになる。これは例えば、第２判定部２００に致命的な欠陥がある事が判明した場合や、判定アプリケーションの署名に使う秘密鍵が漏えいしてしまい偽の判定アプリケーションが作成されてしまった場合に、今まで第２判定部２００として登録していた判定アプリケーションの登録を削除する場合に有用である。
【００２９】
第２判定部２００は、判定ルール管理部２０１、実行判定部２０２、ルールサーバ通信部２０４、及び通信部２０３を備えている。ルールサーバ通信部２０４は必須の構成ではない。ルールサーバ通信部２０４はインターネットあるいはイントラネット上のルールサーバ８００と通信し、後述する判定ルールをダウンロードする通信処理を行う。なお、不正なルールサーバ８００から誤った判定ルールをダウンロードする事を防止するために、ルールサーバ８００と通信する際、ＳＳＬやＳＳＨなどの良く知られた手段でルールサーバ８００が正当なサーバであるか認証処理を行い、さらに通信内容を暗号化してもよい。通信部２０３は、第１判定部１００からイベントの実行を許可するかあるいは禁止するかの問い合わせを受信したり、イベントに対してその実行を許可するかあるいは禁止するかの結果を第１判定部１００に送信したりする。
【００３０】
判定ルール管理部２０１は、イベントの実行を許可するかあるいは禁止するかの問い合わせに対して、そのイベントの実行を許可するかあるいは禁止するかを決定するための判定用ルールをアプリケーション記憶部４００から取得したり、ルールサーバ８００からルールサーバ通信部２０４を介してダウンロードして記憶させたりする。例えば、判定用ルールは、イベントの実行要求内容（システムコールの種類や、指定されたファイル名など）に対応付けて、実行を許可するかあるいは禁止するかが設定されている。判定アプリケーションのアプリケーションパッケージにリソースの一つとして判定用ルールを含めた状態でアプリサーバ７００から情報処理装置１に配信し、判定アプリケーションを第２判定部２００としてインストールする際、インストーラ部３００が判定ルールをアプリケーション記憶部４００に格納するようにしておいてもよい。なお、判定ルール管理部２０１は、ルールサーバ通信部２０４を介してインターネット６００経由で接続されたルールサーバ８００などから判定用ルールをダウンロードすることで、判定用ルールをアップデートすることができる。
【００３１】
もちろん、インストール時には判定ルールがアプリケーション記憶部４００に格納されず、判定ルール管理部２０１が新規の判定ルールをルールサーバ８００などからダウンロードしてアプリケーション記憶部４００に格納するようにしてもよい。また、判定ルールをアップデートする目的で、判定アプリケーションのアプリケーションパッケージにリソースの一つとしてアップデートさせた判定用ルールを含ませておき、インストーラ部３００で判定アプリケーションごとアップデートさせることで、インストーラ部３００が判定ルールをアプリケーション記憶部４００に上書きして格納するようにしておいてもよい。
【００３２】
実行判定部２０２は、判定ルール管理部２０１を通じて記憶された判定用ルールを取得し、判定用ルールにしたがってイベントの実行を許可するかあるいは禁止するかを判定し、判定結果を通信部２０３を通じて第１判定部１００へと通知する。
【００３３】
インストーラ部３００は、アプリ登録部３０１を備えている。アプリ登録部３０１は、アプリケーション記憶部４００に記憶されているアプリケーションのインストールパッケージからインストールに必要なリソースを取得して、インストールの実行をイベント処理部１０に依頼する。また、インストールの実行がされた際には、例えばアプリケーションパッケージに含まれるアイコンなどのリソースをアプリケーション情報記憶部５００に記憶する。
【００３４】
図３は、第２判定部２００の別の例を示す図である。図３に示されるように、判定ルール管理部２０１を設けるのではなく、サーバ通信部２０５を設け、サーバ通信部２０５がインターネットやイントラネットを通じて接続されたイベント判定用サーバ９００と通信を行い、イベント判定用サーバ９００からリアルタイムに判定ルールを取得し、取得した判定用ルールに従って、実行判定部２０２がイベントの実行を許可するかあるいは禁止するかの判定を行うようにしてもよい。または、イベント判定用サーバ９００からリアルタイムに判定結果そのものを取得し、取得した判定結果に従って、実行判定部２０２がイベントの実行を許可するかあるいは禁止するかの判定を行うようにしてもよい。なお、不正なイベント判定用サーバ９００から誤った判定ルールや偽の判定結果をダウンロードする事を防止するために、イベント判定用サーバ９００と通信する際、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）やＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）、ＩＰＳｅｃなどの良く知られた手段でイベント判定用サーバ９００が正当なサーバであるか認証処理を行い、さらに通信内容を暗号化してもよい。
【００３５】
次に、本実施形態のイベントの実行を許可するかあるいは禁止するかを決定する処理の流れを図４を用いて説明する。図４に示されるように、まず第１判定部１００が起動した際に処理がスタートされる（ステップＳ１０１）。第１判定部１００の要求部１０９は、イベント処理部１０に対して第１判定部１００を登録するよう要求する（ステップＳ１０２）。イベント処理部１０の第１判定部登録部１４は、要求のあった第１判定部１００がルール記憶部１６に登録されているアプリ名と一致するか否かを判定し（ステップＳ１０３）、登録結果を第１判定部１００へと通知する（ステップＳ１０４）。もし一致しない場合は、イベント処理部１０でイベントを検出したとしても要求のあった第１判定部１００にイベント情報を通知しない。
【００３６】
次いで、イベント処理部１０のイベント検出部１２は、イベントを検出する（ステップＳ１０５）。次いで、通信部１３は、第１判定部登録部１４に登録されているアプリ名から特定される第１判定部１００に対して、イベント情報を通知する（ステップＳ１０６）。第１判定部１００の種別判定部１０２は、受信したイベントの実行を許可するかあるいは禁止するかの判定を、第１判定部１００と、第２判定部２００のいずれで行うべきであるかを判定する（ステップＳ１０７）。
【００３７】
第２判定部２００で判定すると判定された場合、種別判定部１０２は、第２判定部２００が第２判定部登録部１０５に記憶されてインストール済みであるか否かをチェックする（ステップＳ１０８）。インストールされていれば、種別判定部１０２は、第２判定部２００のアプリ名を取得して（ステップＳ１１０）、イベント情報を通知する。（ステップＳ１１１）。インストールされていなければ、種別判定部１０２は所定のエラー処理を実施する（ステップＳ１０９）。第２判定部２００は、第１判定部１００から転送されたイベントの実行を許可するかあるいは禁止するかについて判定を行い（ステップＳ１１２）、判定結果を第１判定部１００へと送信する（ステップＳ１１４）。
【００３８】
また、ステップＳ１０７において、第１判定部１００で処理すると判定されていた場合、すなわちインストールされるのが第２判定部２００の判定用アプリケーションであった場合は、第１判定部１００がイベントの実行を許可するかあるいは禁止するかの判定を行う（ステップＳ１１３）。そして、第１判定部１００は、イベントの実行を許可するかあるいは禁止するかの判定結果をイベント処理部１０に返信する（ステップＳ１１５）。イベント処理部１０のインストール処理部１１は、判定結果に基づいて、イベントを処理する（ステップＳ１１６）。
【００３９】
次いで、第１判定部１００において、第２判定部２００をインストールするイベントの場合の処理の流れを図５を用いて説明する。図５に示されるように、まず種別判定部１０２は、インストールするアプリケーションが第２判定部２００であるか否かを判定する（ステップＳ２０１）。第２判定部であると判定された場合（ステップＳ２０１：Ｙｅｓ）、アプリ取得部１０７は、アプリケーション記憶部４００から判定用プリケーションの署名情報を取得する（ステップＳ２０２）。一方、第２判定部でないと判定された場合（ステップＳ２０１：Ｎｏ）、第２判定部２００において、判定ルール管理部２０１に記憶されたルールに従って、判定処理がされて処理は終了する（ステップＳ２０５）。
【００４０】
次いで、署名検証部１０６は、取得した判定用アプリケーションの署名情報が予め記憶され署名管理部１０８によって取得された公開鍵を用いて検証処理を行い、検証処理が成功したか否かを判定する（ステップＳ２０３）。検証に成功したと判定された場合（ステップＳ２０３：Ｙｅｓ）、第２判定部登録部１０５は、第２判定部２００の登録処理を行い、イベント処理部１０と、インストーラ部３００へと通知する（ステップＳ２０４）。一方、検証に失敗したと判定された場合（ステップＳ２０３：Ｎｏ）、実行判定部１０４は、エラー処理として通知する（ステップＳ２０６）。
【００４１】
以上に示した、本実施形態の情報処理装置１にあっては、第１判定部１００と、第２判定部２００とを別に設け、第１判定部１００は、第２判定部２００のインストールのイベントは処理するが、他のイベントについては、第２判定部２００側ですることとしたため、各アプリケーションを複数の組織が別個に制作して配布するような状況に対して対応することができるようになる。
【００４２】
また、第１判定部１００は、インストールを許可した第２判定部２００の識別情報を登録しておき、登録が正常に完了している第２判定部２００との間のみ、イベントの情報の交換を行うようにしたため、セキュリティのリスクを抑制することができる。
【００４３】
更には、第２判定部２００をインストールしてよいか否かを決定するために、予めインストールすることのできる第２判定部２００の公開鍵を署名管理部１０８を通じてアプリケーション記憶部４００に記憶しておき、インストールが要求される第２判定部２００の署名情報を公開鍵により検証することで事前にどのアプリケーションをインストール可能かを異なる組織間で設定することができるようになり、不正なアプリケーションのインストールを防ぐことが出来るようになる。
【００４４】
（第２の実施形態）
次に第２の実施形態の情報処理装置１について説明する。第１の実施形態では、第２判定部２００として判定アプリケーションを第１判定部１００の第２判定部登録部１０５に登録する際、イベント処理部１０が判定アプリケーションのインストールイベントを検出する事をトリガーとしていた。本実施形態においては、第１判定部１００の第２通信部１１０が第２判定部２００にイベント情報の交換を送信する前に、第２判定部２００としてインストールされている判定アプリケーションが正当なものであるか否かを検証し、検証が成功した場合に限り、以後イベント処理部１０から送信されてくるイベントを第２判定部２００に送信する点が異なっている。
【００４５】
図６は、第２の実施形態の第２判定部２００の機能構成を示したブロック図である。第２判定部２００が、第２判定部登録要求処理部２０５、イベント登録要求処理２０６を新たに備えている点が図１に示した第２判定部と異なる。
【００４６】
第２判定部登録要求処理部２０５は、判定アプリケーションを第２判定部２００として第１判定部１００の第２判定部登録部１０５に登録してもらうための登録要求を送信する。
【００４７】
イベント登録要求処理部２０６は、イベント処理部１０で検出したイベントのうちどのイベントを許可するかあるいは禁止するかの判定を第２判定部２００で行うかを第１判定部１００に通知するイベントの登録要求を送信する。すなわち、判定ルール管理部２０１はイベント登録要求処理部２０６で第２判定部２００で判定するよう要求するイベントの判定ルールを記憶する。例えば、イベント処理部１０のイベント検出部１２では、アプリケーションのインストールイベント、外部ストレージの接続イベント、Ｂｌｕｅｔｏｏｔｈデバイスの接続イベント、ＷｉＦｉデバイスの接続イベント、アプリケーションの起動イベント、およびアプリケーションのアンインストールイベントのイベントが検出できるとする。
【００４８】
このうち、第２判定部２００では外部ストレージの接続イベント、及びアプリケーションの起動イベントの判定を行い、その他のイベントについては第１判定部１００で行う場合を想定する。この際、第２判定部２００のイベント登録要求処理部２０６は第１判定部１００に対して、外部ストレージの接続イベント、及びアプリケーションの起動イベントが発生した場合にイベントとその内容を第２判定部２００に送信するよう依頼する。
【００４９】
さらに、第２判定部２００の判定ルール管理部２０１は外部ストレージの接続イベント、及びアプリケーションの起動イベントに対する判定ルールをルールサーバ通信部２０４を通じて取得する。なお、第２判定部２００が外部ストレージの接続イベント、及びアプリケーションの起動イベントしか判定しない場合でも、判定ルール管理部２００がすべての種別のイベントに対する判定ルールを取得できるようにしてもよい。
【００５０】
図７は、第２の実施形態の第１判定部１００の機能構成を示したブロック図である。図７に示されるように、第２実施形態の第１判定部１００は、新たに第１判定ルール管理部１１１を備えている。
【００５１】
第１判定ルール管理部１１１は、第２判定部２００の判定ルール管理部２０１と同様、第１判定部１００が判定するイベントに対する判定用ルール取得、及び記憶することができる。
【００５２】
実行判定部１０４は、第１判定ルール管理部１１１を通じて判定用ルールを取得し、判定用ルールに従ってイベントの実行を許可するかあるいは禁止するかを判定し、第１通信部１０１を通じて判定結果をイベント処理部１０へ通知する。なお、第２判定部２００と同様に、判定ルールはルールサーバと通信してアップデートするようにしてもよいし、アップデートした判定用ルールを含めたアプリケーションパッケージを第１判定部１００としてアップデートインストールする事で、判定ルールをアップデートするようにしてもよい。
【００５３】
種別管理部１０３は種別判定部１０２が第２判定部２００で処理すべきイベントか、あるいは第１判定部１００で処理すべきイベントかを判定するためのイベント名やアプリ名などの情報を登録、または取得するが、第１の実施形態と異なる点は第２判定部２００によってイベント名やアプリ名がアップデートされる点である。
【００５４】
第２の実施形態では、第２判定部２００からイベント処理部１０で検出したイベントのうちどのイベントを許可するかあるいは禁止するかの判定を第２判定部２００で行うかを第１判定部１００に通知される。第２通信部１１０を介して受信した通知に従って、種別管理部１０３は情報を上書きする。たとえば、第１判定部１００の起動直後ではすべてのイベントが第１判定部１００の実行判定部で処理されるといった判定を種別判定部１０２が行うように種別管理部１０３は情報を登録していたとする。ここで、外部ストレージの接続イベント、及びアプリケーションの起動イベントを第２判定部２００に送信するような要求を第２判定部２００から受信すると、種別判定部１０２がイベント処理部から受信したイベントが外部ストレージの接続イベントとアプリケーション起動イベントは第二通信部を介して第２判定部に送信すると判定するように種別管理部１０８のルール情報を更新する。
【００５５】
また、第２の実施形態では判定アプリケーションを第２判定部２００として第２判定登録部１０５が登録する際、インストールのイベントではなく第２判定部２００の第２判定部登録要求処理部２０５からの登録要求をトリガーとする。従って、判定アプリケーションのインストール自体は制限しない。もちろん、第１判定ルール管理部１１１がアプリケーションのインストールを制限（禁止）するアプリ名のリストを管理しており、かつ判定アプリケーションのアプリ名がそのリストに該当する場合、そのアプリ名を持つ判定アプリケーションはインストールされない。同様に、第１判定ルール管理部１１１がアプリケーションのインストールを許可するアプリ名のリストを管理しており、かつ判定アプリケーションのアプリ名がそのリストに該当しない場合そのアプリ名を持つ判定アプリケーションはインストールされないようにしてもよい。
【００５６】
ここでは、実行判定部１０４が判定アプリケーションのインストールを許可し、判定アプリケーションがインストールされた状態にあるとする。ここで、第２判定部登録要求処理部２０５から判定アプリケーションを第２判定部２００として登録するよう登録要求が送信されたとする。第１判定部１００は、第２通信部１１０を介して、この登録要求を受信すると、署名検証部１０６が、要求を送信してきた判定アプリケーションが第２判定部２００として正しいアプリ名を持ち、署名管理部１０８が管理する公開鍵でアプリケーションの署名の検証が成功するかどうかを検査する。この処理手順は第１の実施形態と同様、アプリ取得部１０７によってアプリケーションパッケージから取得した署名情報を用いる。検査が成功した場合に、第２判定部登録部１０５に、要求を送信してきた判定アプリケーションが第２判定部２００であると登録し、以後の判定アプリケーションからの要求を受け付けるように第２通信部１１０に指示する。もし検証が失敗した場合、以後の判定アプリケーションからの要求は拒絶する。
【００５７】
なお、署名検証部１０６による判定用アプリケーション検証処理が成功した場合に限り、要求部１０９がイベント処理部１０の第１判定部登録部１４に対して、第１判定部１００の識別情報の登録を要求するように構成してもよい。すなわち、署名検証部１０６の検証処理が成功しない間は、イベント処理部１０のイベント検出部１２が検出したイベントはルール記憶部１６のルールに従って許可又は禁止の判定がなされ、イベント処理部１０から第１判定部１００にイベントが通知されないようにしてもよい。署名検証部１０６による判定用アプリケーション検証処理が成功し、第２判定部登録部１０５に、要求を送信してきた判定アプリケーションが第２判定部２００であると登録されると、第１判定部１００の要求部１０９は第１判定部１００の識別情報の登録を要求し、イベント処理部１０の第１判定部登録部１４に登録される。そして、以後、イベント検出部１２で検出されたイベントが通信部を経由して第１判定部１００に通知されるようになる。
【００５８】
これは、特にビジネス利用と一般コンシューマー利用を一台の端末で兼用する時に有用である。一般コンシューマー利用では、アプリケーションのインストールや起動など、イベント検出部１０で検出するようなイベントを制限する必要はない。この時、第２判定部２００となる判定アプリケーションをインストールしなければ、第２判定部２００が登録要求を送信する事もなく、署名検証部１０６が要求部１０９に対して第１判定部１００の登録を指示する事もなく、結果としてイベント処理部１０は第１判定部１００を第１判定部登録部１４に登録する事もなく、イベントはルール記憶部１６のルールに従って許可又は禁止の判定がなされる。
【００５９】
この時のルール記憶部１６はイベントの制限を行わない(禁止しない)ルールを設定しておく。これにより、一般コンシューマーが利用する場合、イベント検出部１２で検出されたイベントは特に制限されない。一方、ビジネス利用の場合には、管理者のセキュリティポリシーに従って端末に各種制限を施す必要があり、その場合には判定アプリケーションを第２判定部２００としてインストールする。第２判定部２００が第１判定部１００に登録要求を送信するようにすれば、第１判定部１００は要求部１０９を通じて登録指示を送信し、結果としてイベント処理部１０が第１判定部１００にイベントを送信するよう通信部１３に指示する事になり各種イベントの判定を第１判定部１００、または第２判定部２００が行えるように設定できる。
【００６０】
さらに、署名検証部１０６による判定用アプリケーション検証処理が成功した場合に限り、要求部１０９がイベント処理部１０のルール記憶部１６に記憶されている動作ルールを更新し、第１判定部１００に通知するイベントの種類とデフォルトの動作ルールを更新するようにしてもよい。なお、この場合図１の構成に加え、通信部１３とルール記憶部１６とが接続されている。
【００６１】
たとえば、第１判定部１００は起動時に要求部１０９にて第１判定部１００の識別情報の登録を要求し、イベント処理部１０の第１判定部登録部１４に登録させる。この時、イベント処理部１０のルール記憶部１６には、第１判定部登録部１４に第１判定部１００が登録されている状態では第１判定部１００にアプリケーションのインストールイベントを通知し、それ以外のイベントはイベント処理部１０のルール記憶部１６に蓄積されているルールに従って処理される初期設定が登録されていたとする。
【００６２】
すなわち、第１判定部１００による判定用アプリケーションの検証処理が成功する前までは、イベント処理部１０のイベント検出部１２がアプリケーションのインストールイベントを検出すると、第１判定部１００にそのイベントを通知し、第１判定部１００は第１判定ルール管理部１１１に蓄積された判定ルールに従ってアプリケーションのインストールイベントの許可又は禁止の判定を行う。
【００６３】
また、アプリケーションのインストールイベント以外のイベントについては第１判定部１００に通知されることなくイベント処理部１０のルール記憶部１６に蓄積されたルールに従ってイベントの許可又は禁止の判定がなされる。ここで、第１判定部１００により判定用アプリケーションの検証処理が成功し、判定用アプリケーションが第２判定部登録部１０５に登録されると、第１判定部１００の要求部１０９がイベント処理部１０のルール記憶部１６に対して、すべてのイベントを第１判定部１００に通知するようにルール記憶部１６の内容を更新する。以後、イベント処理部１０のイベント検出部１２が検出したイベントは、第１判定部１００に通知されるようになる。
【００６４】
このように構成することで、第２判定部２００がインストールされていなかったとしても、一部のイベントは第１判定部１００のみで処理し、複雑なイベントは第２判定部２００をインストールした後に第２判定部２００で処理できるようになる。第２判定部２００がインストールされるまではイベント処理部１０と第１判定部１００との間のイベントの送受信を削減する事ができるようになるため、イベント処理部１０は高速に判別処理を行う事ができるようになる。
【００６５】
また、署名検証部１０６の検証処理が成功した場合、第１判定ルール管理部１１１を更新するようにしてもよい。第２判定部２００の要求により第２判定部２００で処理される事になったイベントに関しては第２判定部２００の判定ルール管理部２０１の判定ルールによりイベントの許可又は禁止の判定がなされるが、要求のなかったイベントに関しては第１判定ルール管理部１１１で管理される判定ルールにより許可又は禁止の判定がなされる。この時、もともと許可となっていた判定ルールを禁止と更新してもよい。
【００６６】
また、第２判定部２００が第１判定ルール管理部１１１に対して明示的に判定対象のイベントに係る情報を更新する要求を送信してもよいし、判定対象のイベントを許可するかあるいは禁止するかを示す第１判定部１００が有するルールを更新するよう、第１判定部１００に対して要求を送信してもよい。たとえば、第２判定部２００が外部ストレージの接続イベントとアプリケーションの起動イベントは、外部ストレージのシリアル番号や起動されるアプリ名などに応じて、そのイベントが発生した都度、イベントの内容に応じて第２判定部２００で許可又は禁止の判定を行うが、Ｂｌｕｅｔｏｏｔｈの接続イベントに関しては接続されるＢｌｕｅｔｏｏｔｈ機器に依存せず一括して接続禁止というポリシーに設定する事を考える。この時、種別管理部１０３でＢｌｕｅｔｏｏｔｈの接続イベントは実行判定部１０４で処理するように設定し、かつ第１判定部１００の第１判定ルール管理部１１１のＢｌｕｅｔｏｏｔｈに関する判定ルールを一括で禁止としておけば、第２判定部２００にイベントのメッセージが送信される事なく、Ｂｌｅｕｔｏｏｔｈ機器が接続禁止である旨がイベント処理部１０に通知される。
【００６７】
以上に示した本実施形態の処理の流れについて図８を用いて説明する。図８に示されるように、まず第２判定部２００の第２判定部登録要求処理部２０５は、第１判定部１００に対して登録要求を送信すると、第１判定部１００の第２通信部１１０は、登録要求を送信したアプリケーションのアプリ名を取得する（ステップＳ７０１）。ついで、第２通信部１１０は、署名検証部１０６に対して、アプリ名を通知して、署名の検証処理を要求する（ステップＳ７０２）。
【００６８】
署名検証部１０６は、アプリ取得部１０７がアプリ名によって特定されるアプリケーションパッケージを所得し、署名管理部１０８を通じて取得できる公開鍵を用いて署名検証処理を実施する（ステップＳ７０３）。署名検証処理が失敗した場合、第２判定部登録部１０５は、アプリケーションの登録を拒否し（ステップＳ７０４）、その旨を第２判定部２００へと通知する（ステップＳ７０５）か、または第２判定部とのコネクションを切断する。一方、署名検証処理が成功した場合、第２判定部登録部１０５は、署名管理部１０８が管理対象とするアプリケーションの識別情報を第２判定部２００として登録する（ステップＳ７０６）。
【００６９】
また、第２判定部２００は、第２判定部２００において実行を許可するかあるいは禁止するかの判定を行うイベントの種別の登録処理を第１判定部１００に要求する（ステップＳ７０７）。第１判定部１００は、第２判定部登録部１０５に登録されているか否か（ステップＳ７０９）を確認し、登録されていない場合、イベントの登録拒否を第２判定部２００へと通知する（ステップＳ７１０）。
【００７０】
第２判定部登録部１０５に登録されている場合、種別管理部１０８は、指定されたイベントの種別を第２判定部２００において実行を許可するかあるいは禁止するかの判定をするよう情報をアップデートする（ステップＳ７１１）。なお、本実施形態では、第１の実施形態の図４で示したステップＳ１０７の判定が、種別管理部１０３が通知のあったイベントを示す識別情報を登録しているか否かによって、第１判定部１００で判定を行うか、第２判定部２００で判定を行うかが判定される。
【００７１】
（第３の実施形態）
次に第３の実施形態の情報処理装置１について説明する。本実施形態においては、イベントがアプリケーションのインストールである場合に、既に同じアプリケーションがインストールされているか否かを確認し、インストールされている場合にアップデート処理を行う点が異なっている。
【００７２】
図９は、本実施形態のインストーラ部３００の機能構成を示すブロック図である。図９に示されるように、インストーラ部３００は、署名検証部３０３、及び既存アプリチェック部３０２を新たに備えている。既存アプリチェック部３０２は、アプリ登録部３０１がアプリケーションのインストールイベントを指示した際に、同じ名前のアプリケーションが既にインストールされているか否かをチェックする。すなわち、既存アプリチェック部３０２がアプリケーション情報記憶部４００に同名のアプリケーション名を持つアプリが登録されているか否か確認する処理を行う。同じ名前のアプリケーションがインストールされている場合、署名検証部３０３は、アプリケーション情報記憶部５００から取得されるインストール済みのアプリケーションの署名に用いられた秘密鍵と、アプリケーション記憶部４００から取得される新たにインストールされるアプリケーションの署名に用いられた秘密鍵が一致しているか否かを判定するために、インストール済みのアプリケーションの証明書に含まれる公開鍵と、新たにインストールされるアプリケーションの証明書に含まれる公開鍵が一致するか否かを判定する。
【００７３】
図１０は、インストールの際の処理の流れを示すフロー図である。図１０に示されるように、まずアプリ登録部３０１は、インストールの指示を行う（ステップＳ３０１）。インストールの指示が行われると、アプリ登録部３０１は、アプリケーション記憶部４００からアプリケーションのアプリ名などの情報を取得する（ステップＳ３０２）。既存アプリチェック部３０２は、取得したアプリ名と同一のアプリケーションが既にインストールされているかを、アプリケーション記憶部４００のデータから判定する（ステップＳ３０３）。同名のアプリケーションがインストールされていると判定された場合（ステップＳ３０３：Ｙｅｓ）、署名検証部３０３は、既にインストールされているアプリケーションの証明書に含まれる公開鍵とインストールの指示を受けたアプリケーションパッケージの証明書に含まれる公開鍵とが一致するか否かを判定する（ステップＳ３０４）。
【００７４】
一致しないと判定された場合（ステップＳ３０４：Ｎｏ）、アプリケーションはインストールされることなく、エラー処理が行われる（ステップＳ３０８）。一方、一致すると判定された場合（ステップＳ３０４：Ｙｅｓ）、アプリ登録部３０１はイベント処理部１０に対してインストールを指示する（ステップＳ３０５）。また、同名のアプリケーションがインストールされていないと判定された場合も（ステップＳ３０３：Ｎｏ）、イベント処理部１０にインストール指示がされる（ステップＳ３０５）。そして、インストールが許可されて成功したか否かが判定される（ステップＳ３０６）。インストールが成功した場合（ステップＳ３０６：Ｙｅｓ）、アプリケーション記憶部４００にアプリケーションに必要なデータを記憶し、処理を終了する（ステップＳ３０７）。なお、インストール済みのアプリケーションである場合は、データは上書きされる。一方、インストールが失敗された場合は（ステップＳ３０６：Ｎｏ）、所定のエラー処理がなされる（ステップＳ３０８）。
【００７５】
以上に示した本実施形態の情報処理装置１にあっては同じアプリケーションが入っている場合に、インストーラ部３００でアプリケーションの署名検証を行い、インストールの実行許可又は禁止を判定することができるようになる。
【００７６】
（第４の実施形態）
次に、第４の実施形態について説明する。第３の実施形態にあっては、イベントの種別が通信接続処理である場合について説明する。図１１は、本実施形態のイベント処理部における機能構成を示したブロック図である。図１１に示されように、イベント処理部１０は、新たに接続管理部２０を備えている。接続管理部２０は、イベントが検出されると、通信対象の機器の間でコネクションを接続して、イベントの実行判定に必要な情報を取得するとともに、イベントが許可された際には通信を行えるように制御する。接続管理部２０は、コネクション確立部２１、及びデータ送受信部２２を備えている。コネクション確立部２１は、接続対象の通信装置２３との間でのコネクションを検出したり、コネクションの接続を維持したりする。通信装置２３は、例えばＷｉ−Ｆｉの接続の場合は、無線ＬＡＮアクセスポイント、Ｂｌｕｅｔｏｏｔｈの接続の場合は、Ｂｌｕｅｔｏｏｔｈキーボードなどである。データ送受信部２２は、コネクション確立部２１が取得した通信装置２３の情報を元に、通信装置２３との間でデータの送受信を行う。
【００７７】
図１２はコネクション接続にかかるイベント処理の流れを示すシーケンス図である。図１２では、Ｗｉ−Ｆｉの接続の例を示す。図１２に示されるように、まずイベント処理部１０のコネクション確立部２１は、通信装置２３とのコネクション確立を検出する（ステップＳ４０１）。次いで、コネクション確立部２１は通信装置２３のアクセスポイント名とアクセスポイントのＭＡＣアドレスを取得する（ステップＳ４０２）。この時点ではまだアクセスポイントとの接続は完了していない。通信部１３は、コネクション確立部２１が取得したアクセスポイント名とＭＡＣアドレスのイベント情報を第１判定部１００へと通知する（ステップＳ４０３）。第１判定部１００は、イベントが第２判定部２００で処理すべき内容であるため、取得したアクセスポイント名とＭＡＣアドレスのイベント情報を第２判定部２００へと通知する（ステップＳ４０４）。第２判定部２００は、受信した情報にもとづき、イベントの判定処理を行い、接続を許可するか否かを判定する（ステップＳ４０５）。第２判定部２００は、判定結果を第１判定部１００へと送信し（ステップＳ４０６）、第１判定部１００は受信した判定結果をイベント処理部１０へと転送する（ステップＳ４０７）。そして、イベント処理部１０は、受信した判定結果に基づき、コネクションを確立するか、遮断するかのいずれかの処理を行う（ステップＳ４０８）。
【００７８】
図１３はＢｌｕｅｔｏｏｔｈのクライアントにおけるコネクション接続にかかるイベント処理の流れを示すシーケンス図である。図１３では、Ｂｌｕｅｔｏｏｔｈ（登録商標）との接続の例を示す。図１３に示されるように、まずイベント処理部１０のコネクション確立部２１は、通信装置２３に対してＢｌｕｅｔｏｏｔｈのコネクション確立要求送信メッセージを送信しようとしている事を検出する（ステップＳ５０１）。次いで、コネクション確立部２１は通信装置２３のＢｌｕｅｔｏｏｔｈアドレスを取得する。この時点ではまだ通信装置２３とのＢｌｕｅｔｏｏｔｈ接続は完了していない。通信部１３は、取得した通信装置２３とのＢｌｕｅｔｏｏｔｈの確立要求のイベントのイベント情報と通信相手のＢｌｕｅｔｏｏｔｈアドレスを第１判定部１００へと通知する（ステップＳ５０２）。第１判定部１００は、イベントが第２判定部２００で処理すべき内容であるため、取得した通信装置２３とのＢｌｕｅｔｏｏｔｈの確立要求のイベントのイベント情報と通信相手のＢｌｕｅｔｏｏｔｈアドレスを第２判定部２００へと通知する（ステップＳ５０３）。第２判定部２００は、受信した情報にもとづき、イベントの判定処理を行い、接続を許可するか否かを判定する（ステップＳ５０４）。第２判定部２００は、判定結果を第１判定部１００へと送信し（ステップＳ５０５）、第１判定部１００は受信した判定結果をイベント処理部１０へと転送する（ステップＳ５０６）。そして、イベント処理部１０は、受信した判定結果に基づき、コネクションを確立するか、遮断するかのいずれかの処理を行う（ステップＳ５０７）。
【００７９】
また、図１４はＢｌｅｕｔｈｏｏｔｈの接続処理を行うのがサーバ側である場合のコネクション接続に係るイベント処理の流れを示すシーケンス図である。図１３と同様の処理には同じ符号を付与しており、異なる部分のみを説明する。まずイベント処理部１０のコネクション確立部は、通信装置２３からＢｌｕｅｔｏｏｔｈの接続確立要求を検出する（Ｓ５０１）。この時点ではまだ通信装置２３とのＢｌｕｅｔｏｏｔｈ接続は完了していない。通信部１３は、通信装置２３からＢｌｕｅｔｏｏｔｈの接続確立要求を受信した事を示す状態メッセージを第１判定部１００へと通知する（ステップＳ８０２）。次いで、第１判定部１００は、イベントが第２判定部２００で処理すべき内容であるため、取得した通信装置２３からＢｌｕｅｔｏｏｔｈの確立要求を受信状態であることを示す状態メッセージを第２判定部２００へと通知する（ステップＳ８０３）。すなわち、この場合は、接続先のアドレスを取得できないことから、接続を受信したことを示すメッセージのみが通知されることとなる。
【００８０】
また、図１５は接続対象がＵＳＢメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＤカードなどのストレージ装置である場合について説明する。図１５に示されるように、接続管理部３０は、ストレージ接続部３１、及びデータ読書き部３２を備えている。以下、接続対象がストレージ装置である場合の処理の流れを図１６を用いて説明する。
【００８１】
図１６に示されるように、まずイベント処理部１０のストレージ接続部３１は、外部ストレージ装置３３（ストレージ装置）とのコネクション確立を検出する（ステップＳ６０１）。次いで、ストレージ接続部３１は、接続したストレージのメディア種別、例えばＵＳＢメモリであるかＳＤカードであるかなどを判断する（ステップＳ６０２）。次いで、通信部１３は、取得したメディアの種別やＵＳＢメモリであるならばそのシリアル番号などを指定してイベントを第１判定部１００へと通知する（ステップＳ６０３）。第１判定部１００は、イベントが第２判定部２００で処理すべき内容であるため、取得したメディアの種別やＵＳＢメモリであるならばそのシリアル番号などを指定したイベント情報を第２判定部２００へと通知する（ステップＳ６０４）。
【００８２】
第２判定部２００は、受信した情報にもとづき、イベントの判定処理を行い、接続を許可するか否かを判定する（ステップＳ６０５）。第２判定部２００は、判定結果を第１判定部１００へと送信し（ステップＳ６０６）、第１判定部１００は受信した判定結果をイベント処理部１０へと転送する（ステップＳ６０７）。そして、イベント処理部１０は、受信した判定結果に基づき、コネクションを確立するか、遮断するかのいずれかの処理を行う（ステップＳ６０８）。
【００８３】
以上に示したように、本実施形態では通信装置やストレージ装置などの別の装置との接続イベントに対しても、各アプリケーションが連携して、そのイベントの実行を許可するかあるいは禁止するかについての判定を行うことができるようになる。
【００８４】
（第５の実施形態）
制限対象のイベントがアプリケーション起動である場合を示す第５の実施形態について図１７、図１８を用いて説明する。図１７に示されるように、イベント処理部１０は図１に示した構成に加えて新たにアプリ起動処理部１７を備えている。アプリ起動処理部１７は、アプリ実行部１０００（図１参照）が第１判定部１００、第２判定部２００、一般アプリ部９００を含むアプリケーションを起動する際の起動処理を行う処理部である。アプリ実行部１０００は、様々なアプリケーションプログラムを実行するためのプラットフォームであり、例えば、Ｊａｖａ（登録商標）仮想マシンのような仮想マシンによって実現することができる。具体的には、アプリケーションの実行に必要な実行コードや各種リソースファイルをアプリケーション記憶部４００から取得したり、メモリの確保などの処理を行う。
【００８５】
図１８はアプリケーション起動にかかるイベント処理の流れを示すシーケンス図である。図１８に示されるように、まずイベント処理部１０のアプリ起動処理部１７は、アプリケーションの起動イベントを検出し、アプリケーション名を取得する（ステップＳ８０１）。この時点ではまだアプリケーションの起動は完了していない。通信部１３は、アプリケーション名とアプリケーション起動イベントである事を第１判定部１００へと通知する（ステップＳ８０２）。第１判定部１００は、イベントが第２判定部２００で処理すべき内容であるため、取得したアプリケーション名とアプリケーション起動イベントである事を示す情報を第２判定部２００へと通知する（ステップＳ８０３）。
【００８６】
第２判定部２００は、受信した情報にもとづき、イベントの判定処理を行い、起動を許可するアプリか否かを判定する(ステップＳ８０４)。第２判定部２００は、判定結果を第１判定部１００へと送信し（ステップＳ８０５）、第１判定部１００は受信した判定結果をイベント処理部１０へと転送する（ステップＳ８０６）。そして、イベント処理部１０は、受信した判定結果に基づき、アプリケーションを起動するか、起動を禁止するかのいずれかの処理を行う（ステップＳ８０７）。
【００８７】
なお、第２判定部２００においてはアプリケーションの識別情報（アプリ名）によって、起動を許可するか否かを判定していた。この構成を以下のように変更することもできる。すなわち、第２判定部２００においても、第１判定部１００と同様に、署名管理部、署名検証部、及びアプリ取得部を設け、起動されるアプリケーションのアプリケーションパッケージに含まれる公開鍵と、署名管理部を通じて取得される公開鍵とが一致するか否かを署名検証部において検証し、検証が成功した場合に限り、起動を許可するようにすることもできる。
【００８８】
なお、上記の各実施形態においては、第２判定部がインストールされている場合について示したが、インストールされていない場合は、第１判定部がインストールの実行許可又は禁止の判定を行うことができるようにすることも可能である。
【００８９】
また、アプリケーションの検証の際には、上述では第２判定部の製作者が作成した秘密鍵による署名による電子署名の技術を用いたなりすまし防止を行ったが、第１判定部の製作者が、連携を許可したアプリケーションの製作者に秘密鍵を配布し、自らの公開鍵で復号化が出来るか否かにより署名の検証を行うようにしてもよい。また、他の既存のなりすましや改変検出技術を用いることも可能である。
【００９０】
なお、上記の各実施の形態の情報処理装置におけるカーネル部、及び管理アプリケーションの機能はプログラムとして提供してもよい。その場合、プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００９１】
また、プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００９２】
また、プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００９３】
ただし、生成部、及び転送指示部をプログラムとして提供した場合、実際のハードウェアとしてはＣＰＵ（プロセッサ）とは異なる電子回路やプロセッサによって記憶媒体からプログラムを読み出して実行することにより各部が主記憶部上にロードされ、生成部、及び転送指示部が主記憶部上に生成されるようになっている。
【００９４】
上記の実施形態にかかる発明の利用場面について以下に説明する。近年、例えば、タブレットやスマートフォンなどのモバイルで利用する情報端末が増加するにしたがって、端末内のソフトウェアは、従来のように単一のサプライヤーから提供され、事前にインストールされたものから、アプリケーションを追加でインストールし、ユーザーが自由にカスタマイズをすることができるように変化してきている。従来、システムコールなどのイベント発生に対する実行を許可するか否かを行う制御は、カーネルといわれる部分に集約されていたが、Ａｎｄｒｏｉｄ（登録商標）などのサードパーティー用のオペレーション開発環境が整っていくに従って、イベント処理にかかる構成が、機能ごとに独立した別の組織により制作、及び流通されるようになってきている。
【００９５】
特に、タブレットやスマートフォンなどのモバイル端末をビジネス用途で利用しようとした場合、各企業のポリシーごとに端末の機能を制限する事が求められる。たとえば、ある企業ではタブレットに格納した情報の漏洩を防止するため、端末と外付けのＵＳＢメモリやＳＤカードなどの外部ストレージ機器の接続を禁止する事が求められ、別の企業では外部ストレージ機器の接続は許可するが端末とＢｌｕｅｔｏｏｔｈ（登録商標）機器の接続を禁止する事が求められるなど、その要求条件は各企業のセキュリティポリシーによって異なる。近年、ＰＣの分野では、管理者権限(Administrator権限)と一般ユーザー権限をパスワードによって分離し、端末の一般利用者には一般ユーザー権限のパスワードを設定する事で利用者権限のみを付与する。そしてセキュリティ管理者は端末を管理する専用ソフトウェアをインストールして、専用ソフトウェアに外部ストレージデバイスの接続を禁止したりＢｌｕｅｔｏｏｔｈ機器の接続を禁止したりする設定を施し、一般ユーザー権限ではそれらの設定が解除できないようにして対策する事が一般的である。
【００９６】
しかしながら、Ａｎｄｒｏｉｄなどのモバイル端末上で採用されているシステムでは、もともと個人利用を目的として開発された経緯もあり、パスワードによる権限の分離機構が存在しない。このため、セキュリティ管理者が端末を管理する専用ソフトウェアをインストールして端末に各種設定を施したとしても、一般利用者はその設定を解除する事ができてしまう。かつ、上述したように、端末を管理する専用ソフトウェア(端末管理アプリケーション)を別の組織において製作して流通しようとした場合、アプリケーションとイベント発生元のオペレーティングシステム間、およびアプリケーション間のデータの通信のプロトコルが解析され、不正な端末管理アプリケーションがイベント発生に対して、そのイベントの実行を許可するかあるいは禁止するかの判定結果をイベント発生元に不正に改変して応答する事で、セキュリティ管理者の意図した設定と異なる挙動に改変されてしまうリスクがあり、上記実施形態にかかる発明によりこのようなリスクに対応し、複数のモジュール間において処理を分担する場合の、セキュリティを向上させることのできる。
【００９７】
以上に、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９８】
１  情報処理装置
１０  イベント処理部
１１  インストール処理部
１２  イベント検出部
１３  通信部
１４  第１判定部登録部
２０  接続管理部
２１  コネクション確立部
２２  データ送信部
２３  通信装置
３０  接続管理部
３１  ストレージ接続部
３２  データ読書き部
３３  外部ストレージ装置
１００  第１判定部
１０１  第１通信部
１０２  種別判定部
１０３  種別管理部
１０４  実行判定部
１０５  第２判定部登録部
１０６  署名検証部
１０７  アプリ取得部
１０８  署名管理部
１０９  要求部
１１０  第２通深部
２００  第２判定部
２０１  判定ルール管理部
２０２  実行判定部
２０３  通信部
２０４  サーバ通信部
３００  インストーラ部
３０１  アプリ登録部
３０２  既存アプリチェック部
３０３  署名検証部
４００  アプリケーション記憶部
５００  アプリケーション情報記憶部
６００  インターネット
８００  ルールサーバ
９００  イベント判定用サーバ
【図１】
0005631940.tif 000002
【図２】
0005631940.tif 000003
【図３】
0005631940.tif 000004
【図４】
0005631940.tif 000005
【図５】
0005631940.tif 000006
【図６】
0005631940.tif 000007
【図７】
0005631940.tif 000008
【図８】
0005631940.tif 000009
【図９】
0005631940.tif 000010
【図１０】
0005631940.tif 000011
【図１１】
0005631940.tif 000012
【図１２】
0005631940.tif 000013
【図１３】
0005631940.tif 000014
【図１４】
0005631940.tif 000015
【図１５】
0005631940.tif 000016
【図１６】
0005631940.tif 000017
【図１７】
0005631940.tif 000018
【図１８】
0005631940.tif 000019