(57)【要約】【課題】アプリケーション・プログラムに対するインターフェースを一律に制限するのではなく、そのインターフェースの種別により制限を行うことによって、悪意あるアプリケーション・プログラムによる攻撃を抑制することができるようにした情報処理装置を提供する。【解決手段】プログラムを実行することが可能な情報処理装置であって、受付手段は、前記プログラムから、前記情報処理装置内で実行される指示を受け付け、利用検知手段は、前記情報処理装置に対する利用者の操作を検知し、判断手段は、前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断し、実行手段は、前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する。【選択図】図１
2010128826.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行することが可能な情報処理装置であって、
前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付手段と、
前記情報処理装置に対する利用者の操作を検知する利用検知手段と、
前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断する判断手段と、
前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する実行手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記所定の実行に関する指示として、他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示を含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判断手段は、前記所定の実行に関する指示である場合は、所定期間内に前記利用検知手段によって利用が検知されたことを条件として、該指示を実行すると判断する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記所定期間とは、前記受付手段によって指示を受け付ける前の所定の時から、該指示を受け付けた後の所定の時までの期間である
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記判断手段は、さらに、データの読み込み又は書き込みに関する指示であるか否かを判断し、
前記判断手段によって、データの読み込み又は書き込みに関する指示であると判断された場合は、該指示を行ったプログラムの署名を検証する検証手段と、
前記検証手段による検証結果に基づいて、前記受付手段によって受け付けられたデータの読み込み又は書き込みに関する指示を実行する読込書込手段
をさらに具備することを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
プログラムを実行することが可能な情報処理装置が行う情報処理方法であって、
前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付ステップと、
前記情報処理装置に対する利用者の操作を検知する利用検知ステップと、
前記受付ステップによって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知ステップによって利用が検知されたか否かによって該指示を実行するか否かを判断する判断ステップと、
前記判断ステップによって、指示を実行すると判断された場合は、前記受付ステップによって受け付けられた指示を実行する実行ステップ
を具備することを特徴とする情報処理方法。
【請求項７】
プログラムを実行することが可能な情報処理装置で動作する情報処理プログラムであって、
前記情報処理装置を、
前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付手段と、
前記情報処理装置に対する利用者の操作を検知する利用検知手段と、
前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断する判断手段と、
前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する実行手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行することが可能な情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
携帯電話等の情報処理装置は、通信回線に接続されているサーバから様々なプログラムをダウンロード等することができる。
ところで、そのダウンロード等されるプログラムには、情報処理装置内に記憶されているデータを盗み出す等の攻撃を行うものが含まれてしまうことがありえる。
【０００３】
したがって、ネットワーク等を介して提供されたプログラムに対して情報処理装置の内部及び外部のリソースを何ら制限することなくアクセスできるようにしてしまうと、例えば、情報処理装置内に記憶されているユーザの電話番号やメールアドレス、銀行口座番号等が読み出され、情報処理装置の外へ流出してしまうといった事態が生じ得る。
【０００４】
このため、例えば、Ｊａｖａ（登録商標）言語で記述されたプログラムを実行することが可能な情報処理装置においては、ネットワーク等を介して提供されたＪａｖａプログラムを実行している場合に、このＪａｖａプログラムの実行過程においてアクセスすることのできるリソースをごく限られたものだけに制限しており、これにより信頼性を完全に保証することのできないプログラムが、例えば、情報処理装置内のアドレス帳データやユーザの個人情報などにアクセスすることを禁じている。
【０００５】
これに関連する技術として、例えば、特許文献１には、ネットワークや記録媒体を介して提供されるプログラムの利便性を損なわせることなく、かつ、このようなプログラムに対するセキュリティを確保できるようにすることを課題とし、認定機関は、コンテンツプロバイダから認定を依頼された携帯電話機用のＪａｖａＡＰを審査し、このＪａｖａＡＰが、コンテンツプロバイダから申請されたリソースにアクセスするプログラムとして所定の動作基準を満たしており、前記リソースにアクセスすることのできる認定プログラムであると認定した場合に、前記リソースを指定するリソース指定情報を認定サーバによりＪａｖａＡＰに付与し、携帯電話機は、認定機関により認定されたＪａｖａＡＰの実行中にアクセスすることのできるリソースを、このＪａｖａＡＰに付与されているリソース指定情報により指定されるリソースに制限することが開示されている。
【０００６】
また、例えば、特許文献２には、コンテンツデータの不正な利用を防止しつつ、ユーザに対するコンテンツデータの可用性を向上させることを課題とし、コンテンツ転送システムは、サーバ、携帯電話端末、コンテンツ再生端末、ネットワークによって構成され、サーバは、認証情報生成部によって生成された認証情報を、認証情報送付部によって携帯電話端末又はコンテンツ再生端末に送付し、また、転送用データ生成部によって、コンテンツデータを携帯電話端末で処理可能な形式のデータに埋め込んだ転送用データを生成し、コンテンツ送付部によって、携帯電話端末に送付し、そして、認証処理部によって、コンテンツデータの再生の可否に対する認証処理を行い、認証処理結果を認証結果送付部によって送付することが開示されている。
【０００７】
また、例えば、特許文献３には、オフラインでもソフトウェアの実行制御を行えるようにし、あわせてライセンスの管理を行えるようにすることを課題とし、ユーザの要求に基づいて、ユーザ情報データベースからユーザ固有情報ｄＵを取り出し、ソフトウェア情報データベースから秘密鍵Ｄを得て、ライセンスチケットｔはｔ＝Ｄ−Ｆ（ｄＵ，ｎ）により生成され、ユーザに発行され、ユーザは、ライセンスチケット及びユーザ固有情報を用いてソフトウェアのアクセス資格を証明でき、ソフトウェアを利用でき、ライセンスチケットの発行に応じて、ユーザ情報データベースの該当ユーザの項目とソフトウェア情報データベースの該当ソフトウェアの項目が共に更新され、適当な時期で、このソフトウェア情報データベースの内容に基づき課金が行われることが開示されている。
【特許文献１】特開２００３−２８３４９４号公報
【特許文献２】特開２００７−１５６８２９号公報
【特許文献３】特開平１１−２４９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
携帯電話等の情報処理装置において、アプリケーション実行環境をオープン化した場合、悪意あるアプリケーション・プログラムによる攻撃から情報処理装置の利用者を保護する必要がある。
対応方法として悪意あるアプリケーション・プログラムにより攻撃されるインターフェースをデベロッパー（アプリケーション・プログラムの作成者）の権限により利用制限することが考えられるが、その場合該当インターフェースを悪意の無い一般的なデベロッパーも利用する事ができなくなってしまう。
【０００９】
本発明は、このような問題点に着目してなされたもので、アプリケーション・プログラムに対するインターフェースを一律に制限するのではなく、そのインターフェースの種別により制限を行うことによって、悪意あるアプリケーション・プログラムによる攻撃を抑制することができるようにした情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
［１］  プログラムを実行することが可能な情報処理装置であって、前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付手段と、前記情報処理装置に対する利用者の操作を検知する利用検知手段と、前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断する判断手段と、前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する実行手段を具備することを特徴とする情報処理装置。
【００１１】
［２］  前記所定の実行に関する指示として、他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示を含むことを特徴とする［１］に記載の情報処理装置。
【００１２】
［３］  前記判断手段は、前記所定の実行に関する指示である場合は、所定期間内に前記利用検知手段によって利用が検知されたことを条件として、該指示を実行すると判断することを特徴とする［１］又は［２］に記載の情報処理装置。
【００１３】
［４］  前記所定期間とは、前記受付手段によって指示を受け付ける前の所定の時から、該指示を受け付けた後の所定の時までの期間であることを特徴とする［３］に記載の情報処理装置。
【００１４】
［５］  前記判断手段は、さらに、データの読み込み又は書き込みに関する指示であるか否かを判断し、前記判断手段によって、データの読み込み又は書き込みに関する指示であると判断された場合は、該指示を行ったプログラムの署名を検証する検証手段と、前記検証手段による検証結果に基づいて、前記受付手段によって受け付けられたデータの読み込み又は書き込みに関する指示を実行する読込書込手段をさらに具備することを特徴とする［１］から［４］のいずれか一項に記載の情報処理装置。
【００１５】
［６］  プログラムを実行することが可能な情報処理装置が行う情報処理方法であって、前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付ステップと、前記情報処理装置に対する利用者の操作を検知する利用検知ステップと、前記受付ステップによって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知ステップによって利用が検知されたか否かによって該指示を実行するか否かを判断する判断ステップと、前記判断ステップによって、指示を実行すると判断された場合は、前記受付ステップによって受け付けられた指示を実行する実行ステップを具備することを特徴とする情報処理方法。
【００１６】
［７］  プログラムを実行することが可能な情報処理装置で動作する情報処理プログラムであって、前記情報処理装置を、前記プログラムから、前記情報処理装置内で実行される指示を受け付ける受付手段と、前記情報処理装置に対する利用者の操作を検知する利用検知手段と、前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断する判断手段と、前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する実行手段として機能させることを特徴とする情報処理プログラム。
【００１７】
前記本発明は次のように作用する。
本発明における情報処理装置、情報処理方法及び情報処理プログラムでは、受付手段は、プログラムから、情報処理装置内で実行される指示を受け付け、利用検知手段は、前記情報処理装置に対する利用者の操作を検知し、判断手段は、前記受付手段によって受け付けられた指示が、所定の実行に関する指示である場合は、前記利用検知手段によって利用が検知されたか否かによって該指示を実行するか否かを判断し、実行手段は、前記判断手段によって、指示を実行すると判断された場合は、前記受付手段によって受け付けられた指示を実行する。これによって、アプリケーション・プログラムに対するインターフェースを一律に制限するのではなく、そのインターフェースの種別により制限を行うことによって、悪意あるアプリケーション・プログラムによる攻撃を抑制することができる。
【発明の効果】
【００１８】
本発明にかかる情報処理装置、情報処理方法及び情報処理プログラムによれば、アプリケーション・プログラムに対するインターフェースを一律に制限するのではなく、そのインターフェースの種別により制限を行うことによって、悪意あるアプリケーション・プログラムによる攻撃を抑制することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がプログラムの場合は、記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク等で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「所定」という用語は、予め定められたの意の他に、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じての意を含めて用いる。
以下、情報処理装置として携帯電話を、プログラムとしてアプリケーション・プログラム（以下、単にアプリケーションともいう）を主に例示して説明する。
【００２０】
本実施の形態である情報処理装置は、プログラムを実行することが可能なものであって、図１に示すように、プログラム１１０、ユーザ環境検知モジュール１２０、指示受付モジュール１３０、実行制御モジュール１４０を備えている。実行制御モジュール１４０は、指示判断モジュール１４２、データ読み込みモジュール１６０、ユーザデータ記憶モジュール１６２、システムデータ記憶モジュール１６４、データ書き込みモジュール１７０、実行モジュール１８０、その他実行モジュール１９０を有している。
【００２１】
プログラム１１０は、指示受付モジュール１３０と接続されており、指示受付モジュール１３０に対して指示を行う。プログラム１１０は、公開型のアプリケーション・プログラムである。
公開型のアプリケーション・プログラムとは、仕様が公開された実行環境（指示受付モジュール１３０と実行制御モジュール１４０）において動作するものであって、不特定の者によって作成されるものである。不特定の者によって作成されるので、公開型のアプリケーション・プログラムの中には利用者の秘密情報を外部に送信してしまう等のセキュリティ上問題がある可能性もある。しかし、アプリケーション・プログラムの実行を一律に制限してしまうと、セキュリティ上問題のないアプリケーション・プログラムの実行も抑制してしまうことになってしまう。本実施の形態は、指示の種別によって制限を行う。
プログラム１１０が行う指示として、例えば、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）等がある。指示とは、オペレーティング・システム（ＯＳ）等の一部である実行制御モジュール１４０が、自身の機能の一部を他のプログラム１１０で利用させるために用意した手続きである。
【００２２】
ユーザ環境検知モジュール１２０は、実行制御モジュール１４０の指示判断モジュール１４２と接続されている。情報処理装置に対する利用者の操作を検知する。例えば、情報処理装置のキーが押されたこと、タッチパネルに触れられたこと等を検知する。その検知したことを指示判断モジュール１４２に伝える。
【００２３】
指示受付モジュール１３０は、プログラム１１０及び実行制御モジュール１４０の指示判断モジュール１４２と接続されている。プログラム１１０から、情報処理装置内で実行される指示を受け付ける。その受け付けた指示を指示判断モジュール１４２に渡す。
【００２４】
指示判断モジュール１４２は、分類記憶モジュール１４４を有しており、ユーザ環境検知モジュール１２０、指示受付モジュール１３０と接続されている。指示受付モジュール１３０によって受け付けられた指示が、所定の実行に関する指示であるか否かを判断する。この所定の実行に関する指示として、例えば他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示を含む。
【００２５】
また、この判断は、分類記憶モジュール１４４を用いて行ってもよい。例えば、分類記憶モジュール１４４には、図３の例に示すＡＰＩ分類テーブル３００が記憶されている。図３は、ＡＰＩ分類テーブル３００のデータ構造例を示す説明図である。ＡＰＩ分類テーブル３００は、ＡＰＩ名称欄３１０、種別欄３２０を有している。ＡＰＩ名称欄３１０は、指示の名称（例えば、ＡＰＩの指示名称）を記憶している。種別欄３２０は、その指示の種別（例えば、ＵＲ：ユーザデータの読み込み、ＵＷ：ユーザデータの書き込み、ＳＲ：システムデータの読み込み、ＳＷ：システムデータの書き込み、Ｅ：実行系（他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示）、ＯＴＨＥＲ：その他）を記憶している。つまり、指示を、データの読み込み（データをプログラム１１０が取得するもの）、データの書き込み（データをプログラム１１０が変更するもの）、実行系、その他にグループ化している。さらに、データの読み込み・書き込みをデータの種別に応じて、ユーザデータを対象とするもの、システムデータを対象とするものに分けている。
指示判断モジュール１４２は、受け付けた指示をＡＰＩ分類テーブル３００のＡＰＩ名称欄３１０内から検索し、該当するものの種別欄３２０から、その指示の種別を取得する。
【００２６】
他のプログラムへ遷移する指示とは、例えば、プログラム１１０以外のプログラムを起動する、プログラム１１０、プログラム１１０以外のプログラムを終了させる等がある。
表示状態を変更する指示とは、例えば、ウィンドウの数を増やす、ウィンドウを消去する等がある。
通信を行う指示とは、例えば、電子メールの送受信を行う、他のサーバと通信を行う等がある。
【００２７】
そして、指示受付モジュール１３０によって受け付けられた指示が、所定の実行に関する指示である場合は、所定期間内にユーザ環境検知モジュール１２０によって利用が検知されたことを条件として、その指示を実行すると判断する。また、その所定期間とは、指示受付モジュール１３０によって指示を受け付ける前の所定の時から、その指示を受け付けた後の所定の時までの期間である。つまり、指示受付モジュール１３０が指示を受け付けた時を含む期間である。また、その前後の期間は、同じ長さであってもよいが、異なる長さの期間であってもよく、必ずしも、指示受付モジュール１３０によって指示を受け付けた時がその期間の中心である必要はない。
したがって、利用者による操作があって所定期間内に指示を受け付けた場合、又は指示を受け付けた後の所定期間内に利用者による操作があった場合に、その指示が実行されることになる。
【００２８】
これによって、情報処理装置に対して、利用者が操作していない場合は、所定の指示（他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示）は実行されないこととなる。情報処理装置に対して、利用者が操作している場合にのみ、所定の指示は実行される。つまり、利用者が操作しているということは、利用者がその情報処理装置のディスプレイ等を注視している可能性が高いので、所定の指示の実行を利用者が監視することができることになる。ここで、セキュリティ上問題がある実行が行われれば、利用者によって中止させられることとなる。
【００２９】
指示判断モジュール１４２は、さらに、データの読み込み又は書き込みに関する指示であるか否かを判断するようにしてもよい。そして、指示判断モジュール１４２は、データの読み込み又は書き込みに関する指示であると判断した場合は、その指示を行ったプログラム１１０の署名を検証する。有効な署名がある場合は、その指示の実行を許可する検証結果とする。それ以外の場合は、その指示の実行を許可しない検証結果とする。より具体的には、例えば、Ｘ５０９規定（デジタル証明書の記述内容を定めたＩＴＵ−Ｔ規格）によるプログラム１１０の署名情報によりデータの読み込み、書き込みに関する実行権限を制限するものである。
【００３０】
また、予め署名にはランク付けがあり、その署名の検証は、所定のランクに合致しているか否かの判断をするようにしてもよい。有効な署名ではあるが、その所定のランクに合致していない場合には、ユーザデータの読み込みのみを許可する検証結果とし、ユーザデータの書き込み、システムデータの読み込み、システムデータの書き込みの場合は許可しない検証結果としてもよい。有効な署名ではあって、その所定のランクに合致している場合には、その指示の実行を許可する検証結果としてもよい。
【００３１】
データ読み込みモジュール１６０は、ユーザデータ記憶モジュール１６２、システムデータ記憶モジュール１６４と接続されている。指示判断モジュール１４２による検証結果に基づいて、指示受付モジュール１３０によって受け付けられたデータの読み込みに関する指示を実行する。なお、読み込みとしては、ユーザデータ記憶モジュール１６２からのユーザデータの読み込み、又はシステムデータ記憶モジュール１６４からのシステムデータの読み込みがある。
データ書き込みモジュール１７０は、ユーザデータ記憶モジュール１６２、システムデータ記憶モジュール１６４と接続されている。指示判断モジュール１４２による検証結果に基づいて、指示受付モジュール１３０によって受け付けられたデータの書き込みに関する指示を実行する。なお、書き込みとしては、ユーザデータ記憶モジュール１６２へのユーザデータの書き込み、又はシステムデータ記憶モジュール１６４へのシステムデータの書き込みがある。
ユーザデータ記憶モジュール１６２、システムデータ記憶モジュール１６４は、それぞれデータ読み込みモジュール１６０、データ書き込みモジュール１７０からアクセスされる。ユーザデータ記憶モジュール１６２は、ユーザに関するデータを記憶する。システムデータ記憶モジュール１６４は、システム（ＯＳ、実行制御モジュール１４０等を含む）に関するデータを記憶する。
【００３２】
実行モジュール１８０は、指示判断モジュール１４２によって、指示を実行すると判断された場合は、指示受付モジュール１３０によって受け付けられた指示（例えば、他のプログラムへの遷移、表示状態の変更、又は通信を行うものに関する指示）を実行する。
その他実行モジュール１９０は、指示判断モジュール１４２によって、その他（ＯＴＨＥＲ）の指示であると判断された場合は、指示受付モジュール１３０によって受け付けられた指示を実行する。例えば、計算を実行する処理等である。
【００３３】
図２は、本実施の形態をより具現化した場合のモジュール構成例を示す図である。
アプリケーション２１０、アプリケーション実行環境ＵＩ管理モジュール２２０、アプリケーション実行環境モジュール２３０、ＡＰＩ実行可否制御モジュール２４０、アプリケーション署名管理モジュール２５０、データ読み込み系ＡＰＩライブラリ２６０、データ書き込み系ＡＰＩライブラリ２７０、実行系ＡＰＩライブラリ２８０、その他ＡＰＩライブラリ２９０、プラットフォーム２９９を有している。
図１の例に示したモジュール構成例と対比し、異なる点を中心にして説明する。
【００３４】
アプリケーション２１０は、アプリケーション実行環境ＵＩ管理モジュール２２０、アプリケーション実行環境モジュール２３０、アプリケーション署名管理モジュール２５０と接続されており、図１の例に示したプログラム１１０に該当する。アプリケーション実行環境モジュール２３０に対してＡＰＩの指示を行い、アプリケーション実行環境ＵＩ管理モジュール２２０から利用者の操作等を受け取る。また、アプリケーション２１０の署名をアプリケーション署名管理モジュール２５０が管理している。
アプリケーション実行環境ＵＩ管理モジュール２２０は、アプリケーション２１０、ＡＰＩ実行可否制御モジュール２４０と接続されており、図１の例に示したユーザ環境検知モジュール１２０に該当する。利用者の操作等をＡＰＩ実行可否制御モジュール２４０の他に、アプリケーション２１０へも伝える。ただし、アプリケーション２１０に関連する操作のみをアプリケーション２１０へ伝えるが、ＡＰＩ実行可否制御モジュール２４０に対しては利用者の全ての操作（操作があったことのみであってもよい）を伝える。
アプリケーション実行環境モジュール２３０は、アプリケーション２１０、ＡＰＩ実行可否制御モジュール２４０と接続されている。図１の例に示した指示受付モジュール１３０に該当する。
【００３５】
ＡＰＩ実行可否制御モジュール２４０は、アプリケーション実行環境ＵＩ管理モジュール２２０、アプリケーション実行環境モジュール２３０、アプリケーション署名管理モジュール２５０、データ読み込み系ＡＰＩライブラリ２６０、データ書き込み系ＡＰＩライブラリ２７０、実行系ＡＰＩライブラリ２８０、その他ＡＰＩライブラリ２９０と接続されており、図１の例に示した指示判断モジュール１４２の一部に該当する。
アプリケーション署名管理モジュール２５０は、アプリケーション２１０、ＡＰＩ実行可否制御モジュール２４０と接続されており、図１の例に示した指示判断モジュール１４２の一部に該当する。アプリケーション２１０のプログラム毎に署名を記憶しており、ＡＰＩ実行可否制御モジュール２４０の検証のために署名を提供する。また、外部の署名検証システムと通信を行って、その署名を検証させるようにしてもよい。
【００３６】
データ読み込み系ＡＰＩライブラリ２６０は、ユーザデータ２６２、システムデータ２６４を有しており、ＡＰＩ実行可否制御モジュール２４０、プラットフォーム２９９と接続されており、図１の例に示したデータ読み込みモジュール１６０に該当する。
データ書き込み系ＡＰＩライブラリ２７０は、ユーザデータ２７２、システムデータ２７４を有しており、ＡＰＩ実行可否制御モジュール２４０、プラットフォーム２９９と接続されており、図１の例に示したデータ書き込みモジュール１７０に該当する。
また、ユーザデータ２６２、２７２は、ユーザデータ記憶モジュール１６２に記憶されており、システムデータ２６４、２７４は、システムデータ記憶モジュール１６４に記憶されている。
実行系ＡＰＩライブラリ２８０は、ＡＰＩ実行可否制御モジュール２４０、プラットフォーム２９９と接続されており、図１の例に示した実行モジュール１８０に該当する。
その他ＡＰＩライブラリ２９０は、ＡＰＩ実行可否制御モジュール２４０、プラットフォーム２９９と接続されており、図１の例に示したその他実行モジュール１９０に該当する。
プラットフォーム２９９は、データ読み込み系ＡＰＩライブラリ２６０、データ書き込み系ＡＰＩライブラリ２７０、実行系ＡＰＩライブラリ２８０、その他ＡＰＩライブラリ２９０と接続されている。ＡＰＩを実行するための情報処理装置の基盤となるハードウェア、ソフトウェア又はそれらの組み合わせによって構成されている。
【００３７】
図４は、本実施の形態による処理例を示すフローチャートである。
ステップＳ４０２では、アプリケーション実行環境モジュール２３０が、アプリケーション２１０からＡＰＩの指示を受け付ける。
ステップＳ４０４では、ＡＰＩ実行可否制御モジュール２４０が、ステップＳ４０２で受け付けたＡＰＩの指示は、読み込み又は書き込みに関するものであるか否かを判断する。それらに関するものである場合はステップＳ４０６へ進み、それ以外の場合はステップＳ４１６へ進む。
【００３８】
ステップＳ４０６では、ＡＰＩ実行可否制御モジュール２４０が、そのＡＰＩの指示を行ったアプリケーション２１０は、有効な署名があるか否かをアプリケーション署名管理モジュール２５０に問い合せることによって判断する。有効な署名がある場合はステップＳ４０８へ進み、それ以外の場合はステップＳ４１０へ進む。
ステップＳ４０８では、ＡＰＩ実行可否制御モジュール２４０が、その署名は所定のレベルより高いか否かを判断する。所定のレベルより高い場合はステップＳ４１４へ進み、それ以外の場合はステップＳ４１２へ進む。
【００３９】
ステップＳ４１０では、ＡＰＩ実行可否制御モジュール２４０が、そのＡＰＩの指示を破棄する。つまり、その指示の実行はせずに、エラー処理（その処理は行わなかった等のエラーメッセージの表示等）を行う。
ステップＳ４１２では、ＡＰＩ実行可否制御モジュール２４０が、データ読み込み系ＡＰＩライブラリ２６０に対してユーザデータ２６２の読み込みを行わせるように制御する。署名が所定のレベルより高くないにもかかわらず、指示が、ユーザデータの書き込み、システムデータの読み込み、システムデータの書き込みのいずれかである場合はステップＳ４１０と同様にその指示を破棄する。
ステップＳ４１４では、ＡＰＩ実行可否制御モジュール２４０が、ＡＰＩの指示に基づいて、データ読み込み系ＡＰＩライブラリ２６０に対してユーザデータ２６２又はシステムデータ２６４の読み込みを行わせる、データ書き込み系ＡＰＩライブラリ２７０に対してユーザデータ２７２又はシステムデータ２７４の書き込みを行わせるように制御する。
ステップＳ４１６では、ＡＰＩ実行可否制御モジュール２４０が、ステップＳ４０２で受け付けたＡＰＩの指示は、所定の実行に関するもの（他のプログラムへの遷移、表示状態の変更、又は通信を行うもの）であるか否かを判断する。所定の実行に関するものである場合はステップＳ４１８へ進み、それ以外の場合はステップＳ４２０へ進む。
ステップＳ４１８では、ＡＰＩ実行可否制御モジュール２４０が、アプリケーション実行環境ＵＩ管理モジュール２２０の検知結果を用いて、利用者が操作中であるか否かを判断する。操作中である場合はステップＳ４２４へ進み、それ以外の場合はステップＳ４２２へ進む。
【００４０】
ステップＳ４２０では、ＡＰＩ実行可否制御モジュール２４０が、その他ＡＰＩライブラリ２９０に対して、そのＡＰＩの実行を行わせるように制御する。
ステップＳ４２２では、ＡＰＩ実行可否制御モジュール２４０が、そのＡＰＩの指示を破棄する。つまり、その指示の実行はせずに、エラー処理（その処理は行わなかった等のエラーメッセージの表示等）を行う。
ステップＳ４２４では、ＡＰＩ実行可否制御モジュール２４０が、実行系ＡＰＩライブラリ２８０に対して、そのＡＰＩの実行を行わせるように制御する。
なお、ステップＳ４０４とステップＳ４１６の順番は逆であってもよい。
【００４１】
図５は、携帯電話等の情報処理装置のディスプレイの表示例を示す説明図である。
図５（ａ）のディスプレイ５００には、アイコン５１０、アイコン５２０、アイコン５３０、アイコン５４０、アイコン５５０が表示されている。これらのアイコンはそれぞれのアプリケーション２１０によって表示されている。この状態では、利用者の操作は行われておらず、例えば、アプリケーション２１０から通信を行うものに関する指示がなされたとしても、その指示は実行されない（ステップＳ４２２）。
また、図５（ｂ）のディスプレイ５００では、利用者の操作が行われており、カーソル５６０が表示されている。この状態で、例えば、アプリケーション２１０から通信を行うものに関する指示がなされたとすると、その指示は実行される（ステップＳ４２４）。その場合に、通信が行われること等のメッセージをディスプレイ５００内に表示し、利用者がその通信を監視できるようにし、場合によっては利用者の操作に応じてその通信を中止させることができる。
【００４２】
本実施の形態が実装される情報処理装置は、図６に示すような携帯電話６００であってもよい。携帯電話６００は、例えば、電話としての機能を有するように音声入力できるマイク６０５と、音声出力できるスピーカー６０４と、電話番号又はアプリケーション・プログラム等の要求等により文字を入力するための文字入力装置であるキー６０２と、電波を送受信してデータ通信を行うためのアンテナ６０３と、キー６０２による文字入力の結果、アプリケーション・プログラムによる画像ファイルの表示等を行うディスプレイ６０１等を有している。ユーザ環境検知モジュール１２０が、キー６０２に対する操作を検知する。携帯電話６００内には、アプリケーション・プログラム等を実行するＣＰＵ、メモリ、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）、通信用回路等のハードウェア等が内蔵されており、情報処理装置を実現するためのソフトウェアであるコンピュータ・プログラムをメモリに記憶させ、ソフトウェアとハードウェア資源とが協働して、情報処理装置が実現される。
【００４３】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図７に示すように、一般的なコンピュータであり、具体的には携帯電話６００に内蔵されるようなコンピュータである。プログラム１１０、指示受付モジュール１３０、指示判断モジュール１４２、データ読み込みモジュール１６０、データ書き込みモジュール１７０、実行モジュール１８０、その他実行モジュール１９０等のプログラムを実行するＣＰＵ７１０と、そのプログラム、データ、ＡＰＩ分類テーブル３００等を記憶するＲＡＭ７３０（一部がヒープメモリとなる）と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ７２０と、補助記憶装置であるＨＤ７４０（例えば、フラッシュメモリ等を含む）と、キー等から操作者の操作によってデータを入力又はＣＲＴや液晶ディスプレイ等にデータを出力して操作者とのインターフェースとなるＵＩ／Ｆ７５０と、メモリカード等のリムーバブルメディアに対して読み書きするリムーバブルメディアリーダーライター７６０と、通信ネットワークと接続するための通信回線Ｉ／Ｆ７７０、そして、それらをつないでデータのやりとりをするためのバス７８０により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００４４】
前述の実施の形態の説明において、情報処理装置の例として携帯電話を主に説明したが、公開型のアプリケーション・プログラムを実行させることが可能な情報処理装置である、ＰＨＳ等のデータ通信端末、ＰＤＡ、ゲーム端末やナビゲーションシステム等にも適用が可能である。なお、本実施の形態を搭載する情報処理装置として、携帯情報処理端末のように、ＰＣ（パーソナルコンピュータ）等より比較的性能の低いもの（ハードディスク等を備えていない等）の場合により好適である。
【００４５】
なお、説明したプログラムについては、記録媒体に格納することも可能であり、その場合は、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明としても把握することができる。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させることが可能である。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に乗せて搬送することも可能である。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施の形態のモジュール構成例を示す図である。
【図２】本実施の形態をより具現化した場合のモジュール構成例を示す図である。
【図３】ＡＰＩ分類テーブルのデータ構造例を示す説明図である。
【図４】本実施の形態による処理例を示すフローチャートである。
【図５】ディスプレイの表示例を示す説明図である。
【図６】情報処理装置の一例である携帯電話を示す説明図である。
【図７】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００４７】
１１０…プログラム
１２０…ユーザ環境検知モジュール
１３０…指示受付モジュール
１４０…実行制御モジュール
１４２…指示判断モジュール
１４４…分類記憶モジュール
１６０…データ読み込みモジュール
１６２…ユーザデータ記憶モジュール
１６４…システムデータ記憶モジュール
１７０…データ書き込みモジュール
１８０…実行モジュール
１９０…その他実行モジュール
２１０…アプリケーション
２２０…アプリケーション実行環境ＵＩ管理モジュール
２３０…アプリケーション実行環境モジュール
２４０…ＡＰＩ実行可否制御モジュール
２５０…アプリケーション署名管理モジュール
２６０…データ読み込み系ＡＰＩライブラリ
２６２…ユーザデータ
２６４…システムデータ
２７０…データ書き込み系ＡＰＩライブラリ
２７２…ユーザデータ
２７４…システムデータ
２８０…実行系ＡＰＩライブラリ
２９０…その他ＡＰＩライブラリ
２９９…プラットフォーム
【図１】
2010128826.tif 000003
【図２】
2010128826.tif 000004
【図３】
2010128826.tif 000005
【図４】
2010128826.tif 000006
【図５】
2010128826.tif 000007
【図６】
2010128826.tif 000008
【図７】
2010128826.tif 000009