(57)【特許請求の範囲】
【請求項１】
記憶部と制御部を備え、前記制御部は、
アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１の情報を取得する情報取得ステップと、
取得した前記第１の情報と、前記第１の情報と異なる第２の情報とを前記記憶部に格納する情報格納ステップと、
前記第２の情報を前記アプリケーションに返す返答ステップと、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す情報読み出しステップと、
読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、
を実行することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記情報取得ステップ、前記返答ステップ、および前記処理ステップを実行する第１の制御部と、
前記情報格納ステップおよび前記情報読み出しステップを実行する第２の制御部と、
を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ユーザに通知を行う通知部をさらに備え、
前記情報読み出しステップは、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す読み出しステップと、
前記通知部を介してユーザに通知を行う通知ステップと、を有し、
前記処理ステップでは、ユーザに通知を行った後、ユーザの許可が得られた場合のみ、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
端末に格納されている第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて、前記第１の情報に対応して用意された記憶領域に記憶する記憶部と、制御部と、を備え、前記制御部は、
アプリケーションが、前記第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記記憶部の前記第１の情報に対応する記憶領域から前記第２の情報を読み出す第１の情報読み出しステップと、
読み出した前記第２の情報を前記アプリケーションに返す返答ステップと、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す第２の情報読み出しステップと、
読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、
を実行することを特徴とする情報処理装置。
【請求項５】
前記制御部は、
前記返答ステップおよび前記処理ステップを実行する第１の制御部と、
前記第１の情報読み出しステップおよび前記第２の情報読み出しステップを実行する第２の制御部と、
を有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
ユーザに通知を行う通知部をさらに備え、
前記第１の情報読み出しステップは、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す読み出しステップと、
前記通知部を介してユーザに通知を行う通知ステップと、を有し、
前記処理ステップでは、ユーザに通知を行った後、ユーザの許可が得られた場合のみ、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す
ことを特徴とする請求項４または請求項５に記載の情報処理装置。
【請求項７】
前記アプリケーションと前記第２の制御部に対して異なるUID（User ID）が与えられていることを特徴とする請求項２または請求項５に記載の情報処理装置。
【請求項８】
前記通知ステップでは、読み出した前記第１の情報をユーザに通知することを特徴とする請求項３または請求項６に記載の情報処理装置。
【請求項９】
アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１のAPIの処理を行って前記第１の情報を取得する情報取得ステップと、
取得した前記第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて記憶部に格納する情報格納ステップと、
前記第２の情報を前記アプリケーションに返す返答ステップと、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す情報読み出しステップと、
読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、
をコンピュータに実行させるためのプログラム。
【請求項１０】
アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて、前記第１の情報に対応して用意された記憶領域に記憶している記憶部の前記第１の情報に対応する記憶領域から前記第２の情報を読み出す第１の情報読み出しステップと、
読み出した前記第２の情報を前記アプリケーションに返す返答ステップと、
前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す第２の情報読み出しステップと、
読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションによるAPI（Application Program Interface）の実行を制御する処理を行う情報処理装置に関する。また、本発明は、本情報処理装置としてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
汎用OS（オペレーティングシステム）を用いたオープンプラットフォームを採用する、スマートフォンと呼ばれる携帯情報端末が普及している。また、スマートフォンに搭載される汎用OSとして、端末で管理される情報や機能を利用するための命令や関数の集合であるAPI が豊富に用意されているAndroid（登録商標）が注目を集めている。本明細書では一例として、Android（登録商標） OSを搭載したスマートフォンについて記載する。
【０００３】
スマートフォンは、誰もが自由にアプリケーションを開発して公開でき、公開されたアプリケーションをユーザが自由にインストールできるプラットフォームである。公開されたアプリケーションをスマートフォンに導入することにより、スマートフォンの様々な機能を柔軟かつ容易に拡張することができる。
【０００４】
Android（登録商標）では、アプリケーションが利用する機能群や情報群はパーミッションとして定義されている。パーミッションは、アプリケーションを実行可能な端末内の機能・情報の利用や設定の変更に係る権限である。アプリケーションのインストール時に、アプリケーションが使用するパーミッションがユーザに通知（宣言）され、ユーザによってインストールの可否が判断される。アプリケーションがインストールされた後、アプリケーションは、インストール時に宣言したパーミッションにより許可されている範囲内で動作する。このように、パーミッションに基づいてアプリケーションの動作に制限を与える機構がある。
【０００５】
しかし、全てのアプリケーションは、情報の取得に関するパーミッションを宣言し、そのパーミッションがユーザによって承認されると、端末に存在する情報を簡単に取得することができる。所定のWebサイトで公開されているアプリケーションのパーミッションの利用状況の報告によると、電話帳の中身を読み取るパーミッションの利用率は11％、位置情報を読み取るパーミッションの利用率は27％、スマートフォンの電話番号やSIM （Subscriber Identity Module）情報を読み取るパーミッションの利用率は58％となっている（非特許文献１参照）。つまり、所定のWebサイトで公開されているアプリケーションの多くが位置情報や電話番号等の機密情報を漏洩させる可能性がある。
【０００６】
不正なアプリケーションに対抗するため、各ベンダーは、Android（登録商標）に対応したアンチウイルスソフトを発売している。しかし、実際にこのようなソフトでは不正なアプリケーションを検知することは難しく、現状では検知漏れ（False Negative）が多数発生している。なお、非特許文献２には、アプリケーションの不正な動作を検知する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】萩原栄幸，ITmedia、「Android OSから見たセキュリティ対策ソフトの制約」、[online]、２０１１年１２月２６日、ITmedia、[平成２４年３月２７日検索]、インターネット<URL: http://www.itmedia.co.jp/enterprise/articles/1112/26/news015.html >
【非特許文献２】上松晴信、可児潤也、名坂康平、川端秀明、磯原隆将、竹森敬祐、西垣正勝、“安全なAndroidアプリの提供を実現するアプリ開発・管理方式ADMSの提案”、コンピュータセキュリティシンポジウム2011、セッション3D3-4、2011年10月
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述したように、アプリケーションは、情報の取得に関するパーミッションを宣言することで、端末に存在する情報を簡単に取得することができる。以下、図１９を参照して、アプリケーションが端末の機密情報を取得して表示するときの処理の流れを説明する。
【０００９】
アプリケーションは、端末に格納されている機密情報を取得するAPIである情報取得APIを呼び出す（ステップＳ９００）。呼び出された情報取得APIは端末内の所定の場所から機密情報を取得する（ステップＳ９０５）。機密情報を取得した情報取得APIは、取得した機密情報をアプリケーションに返答する（ステップＳ９１０）。機密情報を受け取ったアプリケーションは、情報を表示するAPIである表示APIを呼び出す（ステップＳ９１５）。呼び出された表示APIは機密情報を表示し（ステップＳ９２０）、処理結果をアプリケーションに返答する（ステップＳ９２５）。
【００１０】
上記の処理では、ステップＳ９１０でアプリケーションに機密情報が通知されている。このように、現在の仕様ではアプリケーションが機密情報を簡単に取得できてしまうため、早急な対策が望まれる。
【００１１】
本発明は、上述した課題に鑑みてなされたものであって、アプリケーションによる情報の利用を制限することができる情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上記の課題を解決するためになされたもので、記憶部と制御部を備え、前記制御部は、アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１の情報を取得する情報取得ステップと、取得した前記第１の情報と、前記第１の情報と異なる第２の情報とを前記記憶部に格納する情報格納ステップと、前記第２の情報を前記アプリケーションに返す返答ステップと、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す情報読み出しステップと、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、を実行することを特徴とする情報処理装置である。
【００１３】
また、本発明の情報処理装置において、前記制御部は、前記情報取得ステップ、前記返答ステップ、および前記処理ステップを実行する第１の制御部と、前記情報格納ステップおよび前記情報読み出しステップを実行する第２の制御部と、を有することを特徴とする。
【００１４】
また、本発明の情報処理装置は、ユーザに通知を行う通知部をさらに備え、前記情報読み出しステップは、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す読み出しステップと、前記通知部を介してユーザに通知を行う通知ステップと、を有し、前記処理ステップでは、ユーザに通知を行った後、ユーザの許可が得られた場合のみ、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返すことを特徴とする。
【００１５】
また、本発明は、端末に格納されている第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて、前記第１の情報に対応して用意された記憶領域に記憶する記憶部と、制御部と、を備え、前記制御部は、アプリケーションが、前記第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記記憶部の前記第１の情報に対応する記憶領域から前記第２の情報を読み出す第１の情報読み出しステップと、読み出した前記第２の情報を前記アプリケーションに返す返答ステップと、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す第２の情報読み出しステップと、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、を実行することを特徴とする情報処理装置である。
【００１６】
また、本発明の情報処理装置において、前記制御部は、前記返答ステップおよび前記処理ステップを実行する第１の制御部と、前記第１の情報読み出しステップおよび前記第２の情報読み出しステップを実行する第２の制御部と、を有することを特徴とする。
【００１７】
また、本発明の情報処理装置は、ユーザに通知を行う通知部をさらに備え、前記第１の情報読み出しステップは、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す読み出しステップと、前記通知部を介してユーザに通知を行う通知ステップと、を有し、前記処理ステップでは、ユーザに通知を行った後、ユーザの許可が得られた場合のみ、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返すことを特徴とする。
【００１８】
また、本発明の情報処理装置において、前記アプリケーションと前記第２の制御部に対して異なるUID（User ID）が与えられていることを特徴とする。
【００１９】
また、本発明の情報処理装置において、前記通知ステップでは、読み出した前記第１の情報をユーザに通知することを特徴とする。
【００２０】
また、本発明は、アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１のAPIの処理を行って前記第１の情報を取得する情報取得ステップと、取得した前記第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて記憶部に格納する情報格納ステップと、前記第２の情報を前記アプリケーションに返す返答ステップと、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す情報読み出しステップと、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、をコンピュータに実行させるためのプログラムである。
【００２１】
また、本発明は、アプリケーションが、端末に格納されている第１の情報を取得する第１のAPI（Application Program Interface）を第１の時点で実行しようとするときに、前記第１の情報と、前記第１の情報と異なる第２の情報とを関連付けて、前記第１の情報に対応して用意された記憶領域に記憶している記憶部の前記第１の情報に対応する記憶領域から前記第２の情報を読み出す第１の情報読み出しステップと、読み出した前記第２の情報を前記アプリケーションに返す返答ステップと、前記第１の時点よりも後の第２の時点において、前記アプリケーションが前記第２の情報を指定して前記第１のAPIと異なる第２のAPIを実行しようとするときに、指定された前記第２の情報と関連付けられた前記第１の情報を前記記憶部から読み出す第２の情報読み出しステップと、読み出した前記第１の情報を用いて前記第２のAPIの処理を行い、前記第１の情報を含まない処理結果を前記アプリケーションに返す処理ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２２】
本発明によれば、アプリケーションに対して、端末に格納されている第１の情報を直接参照させず、第１の情報と異なる第２の情報を参照させることによって、アプリケーションによる情報の利用を制限することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態による情報処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図３】本発明の第１の実施形態による情報処理装置の記憶部に保存される情報を示す参考図である。
【図４】本発明の第１の実施形態による情報処理装置の表示部に表示される情報を示す参考図である。
【図５】本発明の第１の実施形態におけるOSのコードを示す参考図である。
【図６】本発明の第１の実施形態におけるOSのコードを示す参考図である。
【図７】本発明の第１の実施形態におけるOSのコードを示す参考図である。
【図８】本発明の第２の実施形態による情報処理装置の構成を示すブロック図である。
【図９】本発明の第２の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１０】本発明の第２の実施形態による情報処理装置の表示部に表示される情報を示す参考図である。
【図１１】本発明の第３の実施形態による情報処理装置の構成を示すブロック図である。
【図１２】本発明の第３の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１３】本発明の第４の実施形態による情報処理装置の構成を示すブロック図である。
【図１４】本発明の第４の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１５】本発明の第５の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１６】本発明の第６の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１７】本発明の第７の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１８】本発明の第８の実施形態による情報処理装置の動作の流れを示すフロー図である。
【図１９】アプリケーションが機密情報を取得して表示するときの処理の流れを示すフロー図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照し、本発明の実施形態を説明する。本明細書および図面では、便宜上、必要に応じてandroid（登録商標）という文字列を*andrd*という文字列で代用し、java（登録商標）という文字列を*jv*という文字列で代用している。すなわち、*andrd*という文字列はandroid（登録商標）という文字列と等価であり、*jv*という文字列はjava（登録商標）という文字列と等価である。
【００２５】
（第１の実施形態）
まず、本発明の第１の実施形態を説明する。図１は、本実施形態による情報処理装置の構成を示している。本実施形態の情報処理装置は、OS にAndroid（登録商標）を実装したスマートフォン等の装置として構成されている。図１に示すように情報処理装置は、アプリケーション１０、制御部１１、記憶部１２、表示部１３を有する。
【００２６】
アプリケーション１０は、SMSクライアントアプリケーション等であり、アプリケーションの処理として規定された各種の処理を行う。制御部１１は、アプリケーション１０からの要求に応じてAPIの実行を制御する。制御部１１は、情報取得API実行部１１ａおよび表示API実行部１１ｂを有する。情報取得API実行部１１ａは、情報処理装置（端末）に格納されている機密情報を取得するAPIである情報取得APIを実行する。表示API実行部１１ｂは、情報を表示するAPIである表示APIを実行する。情報取得APIは、TelephonyManagerクラスのgetLine1Number等である。表示APIは、TextViewクラスのsetText等である。APIはメソッドであるが、本実施形態で注目するメソッドを他のメソッドと区別するためAPIと記載している。
【００２７】
記憶部１２は、揮発性または不揮発性のメモリで構成されており、OSのプログラムや、アプリケーションプログラム、情報処理装置が使用する各種データ等を記憶する。記憶部１２は、揮発性メモリと不揮発性メモリの組合せであってもよい。表示部１３は各種情報を表示する。
【００２８】
本実施形態のOSのプログラムでは、アプリケーションフレームワークで提供されている既存のクラスを定義しているコードに対して、制御部１１の動作に必要な新たなコードが追加されている。つまり、本実施形態のOSのプログラムは、制御部１１の動作を規定したコードを含む。
【００２９】
既存のOSのソースプログラムに対して、制御部１１の動作を規定するコードが追加されることで、OSのソースプログラムが修正され、修正されたソースプログラムがアセンブル（コンパイル）されることで、修正されたOSの実行プログラム（実行ファイル）が生成される。このようにして生成されたOSの実行プログラムが情報処理装置にインストールされている。情報処理装置においてOSが起動することで制御部１１が起動する。
【００３０】
本実施形態のOSのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータ（本実施形態の情報処理装置）に読み込ませ、実行させることにより、制御部１１は、プログラムで規定された処理を実行する。
【００３１】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フラッシュメモリ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３２】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００３３】
次に、本実施形態の情報処理装置の動作を説明する。図２は、情報処理装置が機密情報を表示するときの処理の流れを示している。
【００３４】
ある第１の時点でアプリケーション１０は情報取得APIを呼び出す（ステップＳ１００）。情報取得API実行部１１ａは、情報取得APIが呼び出されたことを検出し、情報処理装置内の所定の場所から機密情報を取得する（ステップＳ１０５）。機密情報は、電話番号、端末識別番号、SIM番号、国情報、通話履歴、電話帳データ、位置情報、受信メールの内容、カレンダー情報等である。また、情報取得API実行部１１ａはダミー情報を取得する（ステップＳ１１０）。ダミー情報は、秘匿すべき機密情報ではなく、アプリケーション１０に通知してもよい情報（例えば乱数）である。ステップＳ１１０におけるダミー情報の取得は、予め生成されて情報処理装置内の所定の場所に格納されたダミー情報を読み出すこと、ダミー情報を新たに生成することのどちらでもよい。
【００３５】
ダミー情報および機密情報を取得した情報取得API実行部１１ａは、取得した各情報を関連付けて記憶部１２に保存する（ステップＳ１１５）。図３は、記憶部１２に保存された情報の一例を示している。１つのダミー情報（key0等）と１つの機密情報（電話番号等）とが対になって関連付けられ、それぞれのダミー情報および機密情報の組合せがテーブルとして保存されている。
【００３６】
ダミー情報および機密情報を保存した後、情報取得API実行部１１ａはダミー情報をアプリケーション１０に返答する（ステップＳ１２０）。図１９では機密情報がアプリケーションに返答されているが、図２では機密情報ではなくダミー情報がアプリケーション１０に返答される。続いて、ある第２の時点でアプリケーション１０は、ダミー情報を引数に指定して表示APIを呼び出す（ステップＳ１２５）。指定するダミー情報は１つでも複数でもよい。このとき、アプリケーション１０から表示API実行部１１ｂにダミー情報が通知される。
【００３７】
表示API実行部１１ｂは、表示APIが呼び出されたことを検出し、アプリケーション１０から通知されたダミー情報と同一のダミー情報に対応する機密情報を記憶部１２から読み出す（ステップＳ１３０）。例えば、図３の例では、アプリケーション１０からkey0が通知された場合、テーブルから電話番号が読み出され、アプリケーション１０からkey1が通知された場合、テーブルから端末識別番号が読み出される。
【００３８】
機密情報を読み出した表示API実行部１１ｂは、読み出した機密情報を表示部１３に表示する（ステップＳ１３５）。図４は、表示部１３に表示された機密情報の一例を示している。電話番号等の機密情報４００が表示部１３の画面に表示される。機密情報を表示した後、表示API実行部１１ｂは処理結果をアプリケーション１０に返答する（ステップＳ１４０）。
【００３９】
上記の処理では、アプリケーション１０にダミー情報が通知され、機密情報は通知されない。したがって、アプリケーション１０が機密情報を直接利用できないようにすることができる。
【００４０】
次に、本実施形態における制御部１１の動作を実現するコード（ソースコード）の一例を説明する。図５は、OSの既存のアプリケーションフレームワークに追加するクラスのコードの一例を示している。コード５００ではダミー情報と機密情報を管理するテーブルが記述されている。コード５１０ではダミー情報と機密情報をテーブルに格納するメソッド（secretinsert）が記述されている。コード５２０ではダミー情報を検索キーとしてテーブルから機密情報を検索するメソッド（secretsearch）が記述されている。
【００４１】
図６は、OSの既存のアプリケーションフレームワークにおいて、既存のTelephonyManagerクラスの情報取得APIであるgetLine1Numberのコードを変更した一例を示している。コード６００では、ダミー情報および機密情報を取得し、図５に示したメソッド（secretinsert）によりダミー情報と機密情報をテーブルに格納し、ダミー情報（key0）を返答することが記述されている。
【００４２】
図７は、OSの既存のアプリケーションフレームワークにおいて、既存のTextViewクラスの表示APIであるsetTextのコードを変更した一例を示している。なお、図７ではコードの一部を省略している。以下ではコード７００に記述されている内容を説明する。変数textはsetTextの引数であり、表示する文字列を示す。indexOf("key0")は、文字列の中で文字key0が最初に出現する位置を文字数（0を起点とする）で返し、文字列に文字key0が出現しない場合に-1を返答するメソッドである。「indexOf("key0")!"=-1」という条件は、変数textの中に文字key0が出現したということを示している。したがって、変数text、すなわち表示する文字列の中にダミー情報key0が存在する場合に、図５に示したメソッド（secretsearch）により、ダミー情報key0に対応する機密情報がテーブルから検索され、表示する文字列中のダミー情報が機密情報で置き換えられる。
【００４３】
上述したように、本実施形態によれば、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができる。したがって、情報漏洩を防止することができる。
【００４４】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。第１の実施形態では、機密情報を表示する例を示したが、第２の実施形態では、機密情報をメモリカードに書き込む例を示す。図８は、本実施形態による情報処理装置の構成を示している。本実施形態では、制御部１１が表示API実行部１１ｂの代わりに書き込みAPI実行部１１ｃを有し、入力部１４およびメモリカード１５が設けられている。他の構成については、第１の実施形態の構成と同様である。
【００４５】
書き込みAPI実行部１１ｃは、ファイルの書き込みを行うAPIである書き込みAPIを実行する。書き込みAPIは、BufferedWriterクラスのwriteであり、保存場所にメモリカードを指定することで、メモリカードへの書き込みを行うことができる。入力部１４は、ユーザが操作するキーやボタン等を有し、ユーザによって入力された情報を制御部１１に通知する。メモリカード１５は、例えば情報処理装置に着脱可能な可搬記憶媒体である。
【００４６】
次に、本実施形態の情報処理装置の動作を説明する。図９は、情報処理装置が機密情報をメモリカードに保存するときの処理の流れを示している。ステップＳ２００〜Ｓ２２０の処理は図２のステップＳ１００〜Ｓ１２０の処理と同様であるので、ステップＳ２００〜Ｓ２２０については説明を省略する。
【００４７】
ある第２の時点でアプリケーション１０は、ダミー情報を引数に指定して書き込みAPIを呼び出す（ステップＳ２２５）。指定するダミー情報は１つでも複数でもよい。このとき、アプリケーション１０から書き込みAPI実行部１１ｃにダミー情報が通知される。
【００４８】
書き込みAPIが呼び出されると、書き込みAPI実行部１１ｃは、書き込みAPIが呼び出されたことを検出し、アプリケーション１０から通知されたダミー情報と同一のダミー情報に対応する機密情報を記憶部１２から読み出す（ステップＳ２３０）。この後、機密情報をメモリカード１５に保存してもよいかどうかをユーザに確認させるための処理が行なわれる。書き込みAPI実行部１１ｃは、読み出した機密情報を含むメッセージを表示部１３に表示し、ユーザに確認を促す（ステップＳ２３５）。
【００４９】
図１０は、表示部１３に表示されたメッセージの一例を示している。電話番号等の機密情報１０００と共に、ユーザに確認を促すメッセージ１０１０が表示部１３の画面に表示される。さらに、ユーザが機密情報を保存することを許可するためのボタン１０２０と、ユーザが機密情報を保存することを拒否するためのボタン１０３０とが表示部１３の画面に表示される。ユーザによって入力部１４を介してボタン１０２０またはボタン１０３０が操作され、機密情報の保存を許可する／しないを示す情報が入力される。
【００５０】
表示部１３に表示されたメッセージを確認したユーザによって、入力部１４を介して情報が入力される（ステップＳ２４０）。機密情報の保存を許可することを示す情報が入力された場合、書き込みAPI実行部１１ｃは、記憶部１２から読み出した機密情報をメモリカード１５に書き込む（ステップＳ２４５）。なお、機密情報の保存を拒否することを示す情報が入力された場合、書き込みAPI実行部１１ｃが、アプリケーション１０から通知されたダミー情報をメモリカード１５に書き込むようにしてもよいし、メモリカード１５への書き込みを中止してもよい。機密情報をメモリカード１５に書き込んだ後、書き込みAPI実行部１１ｃは処理結果をアプリケーション１０に返答する（ステップＳ２５０）。
【００５１】
上記の処理では、アプリケーション１０にダミー情報が通知され、機密情報は通知されない。また、アプリケーション１０がOSの標準的な書き込みAPIを使用せずに、独自に作成されたネイティブメソッドを使用してメモリカード１５に機密情報を保存しようとしても、アプリケーション１０には機密情報の代わりにダミー情報が通知されているので、アプリケーション１０からネイティブメソッドにダミー情報が渡され、メモリカード１５にはダミー情報が保存される。したがって、本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。
【００５２】
従来のパーミッションに基づいてアプリケーションの動作に制限を与える機構では、アプリケーションが宣言したパーミッションが、アプリケーションによって、いつ、どのように使用されているのかをユーザが知ることができない。ユーザが、アプリケーションをインストールするために、パーミッションを一度許可してしまうと、パーミッションを必要とする動作をアプリケーションが実行したとしても、ユーザにはそのことが通知されない。そのため、ユーザが情報漏洩などの被害に気づくことが難しい。
【００５３】
また、ユーザの誤操作に起因する課題もある。例えば、SMSクライアントアプリケーションの動作中に画面に表示されたボタンのうちSMSによりメッセージを送信するボタンをユーザが間違えて押しても、メッセージの送信動作を止めることができない。したがって、ユーザビリティの観点で、APIを利用した処理が行われる前に、アプリケーションがこれから行う動作をユーザが確認でき、動作の実行の可否をユーザが選択できるようになると、ユーザの誤操作による不利益が発生しなくなる。
【００５４】
本実施形態では、機密情報がメモリカード１５に書き込まれる際に、機密情報の書き込みを行ってもよいかどうかをユーザに確認させることができる。さらに、ユーザは、メモリカード１５に書き込まれる機密情報を表示部１３上で確認した上で、機密情報の書き込みを許可するかどうかを決定することができる。
【００５５】
（第３の実施形態）
次に、本発明の第３の実施形態を説明する。本実施形態では、機密情報を表示する例を示す。図１１は、本実施形態による情報処理装置の構成を示している。本実施形態では、制御部１１が情報取得API実行部１１ａおよび表示API実行部１１ｂの他にAPI実行制御部１１ｄを有する。API実行制御部１１ｄは、情報取得APIおよび表示APIが呼び出されたときにそれらのAPIの実行を制御する。他の構成については、第１の実施形態の構成と同様である。
【００５６】
本実施形態では、情報取得APIを定義するTelephonyManagerクラスのコードに対して、情報取得API実行部１１ａが実行する処理を規定するコードが追加され、表示APIを定義するTextViewクラスのコードに対して、表示API実行部１１ｂが実行する処理を規定するコードが追加されている。また、アプリケーションのインストールおよびアンインストールの管理を行ったり、アプリケーションに適切なパーミッションが付与されているか否かの判定を行ったりするPackageManagerServiceクラスのコードに対して、API実行制御部１１ｄが実行する処理を規定するコードが追加されている。
【００５７】
情報取得API実行部１１ａおよび表示API実行部１１ｂは、アプリケーション１０が情報取得API実行部１１ａおよび表示API実行部１１ｂのそれぞれを呼び出したときにアプリケーション１０と同一のプロセスで処理を行う。Android（登録商標）では、通常、UID（User ID）と呼ばれる、プロセス毎に異なるIDがプロセスに与えられ、UIDが異なるプロセス間ではリソースを共有することができない。
【００５８】
本実施形態では、アプリケーション１０が記憶部１２のテーブルに直接アクセスして機密情報を取得できないようにするため、アプリケーション１０のプロセスと、API実行制御部１１ｄのプロセスとには、異なるUIDが与えられ、API実行制御部１１ｄは、アプリケーション１０と異なるプロセスで処理を行う。上記によって、機密情報の安全性を高めることができる。
【００５９】
次に、本実施形態の情報処理装置の動作を説明する。図１２は、情報処理装置が機密情報を表示するときの処理の流れを示している。
【００６０】
ある第１の時点でアプリケーション１０は情報取得APIを呼び出す（ステップＳ３００）。情報取得API実行部１１ａは、情報取得APIが呼び出されたことを検出し、情報処理装置内の所定の場所から機密情報を取得する（ステップＳ３０５）。また、情報取得API実行部１１ａはダミー情報を取得する（ステップＳ３１０）。
【００６１】
ダミー情報および機密情報を取得した情報取得API実行部１１ａは、取得した各情報をAPI実行制御部１１ｄに通知し、各情報の保存をAPI実行制御部１１ｄに要求する。要求を受けたAPI実行制御部１１ｄは、情報取得API実行部１１ａから通知されたダミー情報および機密情報を関連付けて記憶部１２に保存する（ステップＳ３１５）。
【００６２】
ダミー情報および機密情報が保存された後、情報取得API実行部１１ａはダミー情報をアプリケーション１０に返答する（ステップＳ３２０）。続いて、ある第２の時点でアプリケーション１０は、ダミー情報を引数に指定して表示APIを呼び出す（ステップＳ３２５）。このとき、アプリケーション１０から表示API実行部１１ｂにダミー情報が通知される。
【００６３】
表示API実行部１１ｂは、表示APIが呼び出されたことを検出し、アプリケーション１０から通知されたダミー情報をAPI実行制御部１１ｄに通知し、機密情報の読み出しをAPI実行制御部１１ｄに要求する（ステップＳ３３０）。要求を受けたAPI実行制御部１１ｄは、表示API実行部１１ｂから通知されたダミー情報と同一のダミー情報に対応する機密情報を記憶部１２から読み出す（ステップＳ３３５）。
【００６４】
機密情報を読み出したAPI実行制御部１１ｄは、読み出した機密情報を表示API実行部１１ｂに通知する。表示API実行部１１ｂは、通知された機密情報を表示部１３に表示する（ステップＳ３４０）。機密情報を表示した後、表示API実行部１１ｂは処理結果をアプリケーション１０に返答する（ステップＳ３４５）。
【００６５】
上記の処理では、アプリケーション１０にダミー情報が通知され、機密情報は通知されない。したがって、本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。また、アプリケーション１０と異なるプロセスで処理を行うAPI実行制御部１１ｄのみが、機密情報が保存された記憶部１２のテーブルにアクセスできるようにすることによって、機密情報の安全性を高めることができる。
【００６６】
（第４の実施形態）
次に、本発明の第４の実施形態を説明する。本実施形態では、機密情報をメモリカードに書き込む例を示す。図１３は、本実施形態による情報処理装置の構成を示している。本実施形態では、制御部１１が情報取得API実行部１１ａおよび書き込みAPI実行部１１ｃの他にAPI実行制御部１１ｅを有する。API実行制御部１１ｅは、情報取得APIおよび表示APIが呼び出されたときにそれらのAPIの実行を制御する。他の構成については、第２の実施形態の構成と同様である。
【００６７】
本実施形態では、情報取得APIを定義するTelephonyManagerクラスのコードに対して、情報取得API実行部１１ａが実行する処理を規定するコードが追加され、書き込みAPIを定義するBufferedWriterクラスのコードに対して、書き込みAPI実行部１１ｃが実行する処理を規定するコードが追加されている。また、PackageManagerServiceクラスのコードに対して、API実行制御部１１ｅが実行する処理を規定するコードが追加されている。
【００６８】
情報取得API実行部１１ａおよび書き込みAPI実行部１１ｃは、アプリケーション１０が情報取得API実行部１１ａおよび書き込みAPI実行部１１ｃのそれぞれを呼び出したときにアプリケーション１０と同一のプロセスで処理を行う。本実施形態でも、アプリケーション１０が記憶部１２のテーブルに直接アクセスして機密情報を取得できないようにするため、アプリケーション１０のプロセスと、API実行制御部１１ｅのプロセスとには、異なるUIDが与えられ、API実行制御部１１ｅは、アプリケーション１０と異なるプロセスで処理を行う。上記によって、機密情報の安全性を高めることができる。
【００６９】
次に、本実施形態の情報処理装置の動作を説明する。図１４は、情報処理装置が機密情報を表示するときの処理の流れを示している。ステップＳ４００〜Ｓ４２０の処理は図１２のステップＳ３００〜Ｓ３２０の処理と同様であるので、ステップＳ４００〜Ｓ４２０については説明を省略する。
【００７０】
ある第２の時点でアプリケーション１０は、ダミー情報を引数に指定して書き込みAPIを呼び出す（ステップＳ４２５）。このとき、アプリケーション１０から書き込みAPI実行部１１ｃにダミー情報が通知される。
【００７１】
書き込みAPIが呼び出されると、書き込みAPI実行部１１ｃは、書き込みAPIが呼び出されたことを検出し、アプリケーション１０から通知されたダミー情報をAPI実行制御部１１ｅに通知し、機密情報の読み出しをAPI実行制御部１１ｅに要求する（ステップＳ４３０）。要求を受けたAPI実行制御部１１ｅは、書き込みAPI実行部１１ｃから通知されたダミー情報と同一のダミー情報に対応する機密情報を記憶部１２から読み出す（ステップＳ４３５）。
【００７２】
この後、機密情報をメモリカード１５に保存してもよいかどうかをユーザに確認させるための処理が行なわれる。書き込みAPI実行部１１ｃは、読み出した機密情報を含むメッセージを表示部１３に表示し、ユーザに確認を促す（ステップＳ４４０）。
【００７３】
表示部１３に表示されたメッセージを確認したユーザによって、入力部１４を介して情報が入力される（ステップＳ４４５）。API実行制御部１１ｅは、入力された情報を書き込みAPI実行部１１ｃに通知する。機密情報の保存を許可することを示す情報が入力された場合、書き込みAPI実行部１１ｃは、記憶部１２から読み出した機密情報をメモリカード１５に書き込む（ステップＳ４５０）。なお、機密情報の保存を拒否することを示す情報が入力された場合、書き込みAPI実行部１１ｃが、アプリケーション１０から通知されたダミー情報をメモリカード１５に書き込むようにしてもよいし、メモリカード１５への書き込みを中止してもよい。機密情報をメモリカード１５に書き込んだ後、書き込みAPI実行部１１ｃは処理結果をアプリケーション１０に返答する（ステップＳ４５５）。
【００７４】
上記の処理では、アプリケーション１０にダミー情報が通知され、機密情報は通知されない。したがって、本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。また、アプリケーション１０と異なるプロセスで処理を行うAPI実行制御部１１ｅのみが、機密情報が保存された記憶部１２のテーブルにアクセスできるようにすることによって、機密情報の安全性を高めることができる。
【００７５】
また、機密情報がメモリカード１５に書き込まれる際に、機密情報の書き込みを行ってもよいかどうかをユーザに確認させることができる。さらに、ユーザは、メモリカード１５に書き込まれる機密情報を表示部１３上で確認し、機密情報の書き込みを許可するかどうかを決定することができる。
【００７６】
（第５の実施形態）
次に、本発明の第５の実施形態を説明する。
【００７７】
第１〜第４の実施形態では、アプリケーションが起動後に機密情報に初めてアクセスする時点で、その都度、異なるダミー情報を取得する方式を採用してもよい。例えば、アプリケーションＡが機密情報αにアクセスした時点で乱数を生成し、以後、アプリケーションＡは一時的にこの乱数をダミー情報βとして使用する。この場合、アプリケーションＡが機密情報αにアクセスした時点で取得するダミー情報βと、アプリケーションＢが機密情報αにアクセスした時点で取得するダミー情報γとは異なり得る。アプリケーションが終了した時点で、アプリケーションが取得していたダミー情報はメモリから開放される。このため、アプリケーションＡが一旦終了した後に再起動し、再び機密情報αにアクセスする際に取得するダミー情報δも、ダミー情報β，γとは異なり得る。
【００７８】
情報処理装置の電源がオフとなる際には全てのアプリケーションが終了し、各アプリケーションが取得していたダミー情報はメモリから開放される。よって、各アプリケーションが使用するダミー情報の管理に揮発型の記憶装置を用いることが可能となり、例えば配列を用いたコーディングにより実現することができる。
【００７９】
一方、アプリケーションが機密情報毎に固定されたダミー情報を取得する方式も可能であり、第５の実施形態ではこの方式について説明する。この方式では、アプリケーションが同一の機密情報にアクセスした際に、常に同一のダミー情報がアプリケーションに通知される。情報処理装置の電源がオフとなった場合でも、各機密情報に対応したダミー情報は情報処理装置に保存されている。この方式では、各アプリケーションが使用するダミー情報の管理に不揮発型の記憶装置を用いることが可能となり、例えば既存のコンテンツプロバイダを変形することで実現することができる。
【００８０】
本実施形態は第１の実施形態の変形例であり、本実施形態の構成は、第１の実施形態の構成（図１）と同様である。本実施形態では、所定のアプリケーションが情報取得APIを実行した時点で、記憶部１２にはダミー情報と機密情報を関連付けたテーブルが予め格納されているものとする。例えば、あるアプリケーションが初めて機密情報を取得する際に、図２のステップＳ１００〜Ｓ１１５の処理により、ダミー情報と機密情報を関連付けたテーブルが記憶部１２に保存される。また、ダミー情報と機密情報は、記憶部１２において機密情報毎（あるいは情報取得API毎）に用意された記憶領域に保存されている。後述する処理では、情報取得APIが呼び出された際、その情報取得APIが識別され、その情報取得APIに対応する記憶領域、すなわちその情報取得APIによって取得される機密情報に対応する記憶領域が参照される。
【００８１】
次に、本実施形態の情報処理装置の動作を説明する。図１５は、情報処理装置が機密情報を表示するときの処理の流れを示している。
【００８２】
ある第１の時点でアプリケーション１０は情報取得APIを呼び出す（ステップＳ５００）。情報取得API実行部１１ａは、情報取得APIが呼び出されたことを検出し、情報取得APIにより取得される機密情報に対応した記憶部１２の記憶領域からダミー情報を読み出す（ステップＳ５０５）。情報取得API実行部１１ａは、読み出したダミー情報をアプリケーション１０に返答する（ステップＳ５１０）。以降のステップＳ５１５〜Ｓ５３０の処理は図２のステップＳ１２５〜Ｓ１４０の処理と同様であるので、ステップＳ５１５〜Ｓ５３０については説明を省略する。
【００８３】
本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。
【００８４】
（第６の実施形態）
次に、本発明の第６の実施形態を説明する。本実施形態では、アプリケーションが機密情報毎に固定されたダミー情報を取得する方式について説明する。本実施形態は第２の実施形態の変形例であり、本実施形態の構成は、第２の実施形態の構成（図８）と同様である。本実施形態では、第５の実施形態と同様に、所定のアプリケーションが情報取得APIを実行した時点で、記憶部１２にはダミー情報と機密情報を関連付けたテーブルが予め格納されているものとする。また、ダミー情報と機密情報は、記憶部１２において機密情報毎（あるいは情報取得API毎）に用意された記憶領域に保存されている。
【００８５】
図１６は、情報処理装置が機密情報をメモリカードに保存するときの処理の流れを示している。ステップＳ６００〜Ｓ６１０の処理は図１５のステップＳ５００〜Ｓ５１０の処理と同様であるので、ステップＳ６００〜Ｓ６１０については説明を省略する。また、ステップＳ６１５〜Ｓ６４０の処理は図９のステップＳ２２５〜Ｓ２５０の処理と同様であるので、ステップＳ６１５〜Ｓ６４０については説明を省略する。
【００８６】
本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。
【００８７】
（第７の実施形態）
次に、本発明の第７の実施形態を説明する。本実施形態では、アプリケーションが機密情報毎に固定されたダミー情報を取得する方式について説明する。本実施形態は第３の実施形態の変形例であり、本実施形態の構成は、第３の実施形態の構成（図１１）と同様である。本実施形態では、第５の実施形態と同様に、所定のアプリケーションが情報取得APIを実行した時点で、記憶部１２にはダミー情報と機密情報を関連付けたテーブルが予め格納されているものとする。また、ダミー情報と機密情報は、記憶部１２において機密情報毎（あるいは情報取得API毎）に用意された記憶領域に保存されている。
【００８８】
次に、本実施形態の情報処理装置の動作を説明する。図１７は、情報処理装置が機密情報を表示するときの処理の流れを示している。
【００８９】
ある第１の時点でアプリケーション１０は情報取得APIを呼び出す（ステップＳ７００）。情報取得API実行部１１ａは、情報取得APIが呼び出されたことを検出し、情報取得APIにより取得される機密情報に対応したダミー情報をAPI実行制御部１１ｄに要求する（ステップＳ７０５）。API実行制御部１１ｄは、ダミー情報を要求した情報取得APIにより取得される機密情報に対応した記憶部１２の記憶領域からダミー情報を読み出す（ステップＳ７１０）。情報取得API実行部１１ａは、読み出したダミー情報を情報取得API実行部１１ａに通知し、情報取得API実行部１１ａはダミー情報をアプリケーション１０に返答する（ステップＳ７１５）。以降のステップＳ７２０〜Ｓ７４０の処理は図１２のステップＳ３２５〜Ｓ３４５の処理と同様であるので、ステップＳ７２０〜Ｓ７４０については説明を省略する。
【００９０】
本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。また、機密情報の安全性を高めることができる。
【００９１】
（第８の実施形態）
次に、本発明の第８の実施形態を説明する。本実施形態では、アプリケーションが機密情報毎に固定されたダミー情報を取得する方式について説明する。本実施形態は第４の実施形態の変形例であり、本実施形態の構成は、第４の実施形態の構成（図１３）と同様である。本実施形態では、第５の実施形態と同様に、所定のアプリケーションが情報取得APIを実行した時点で、記憶部１２にはダミー情報と機密情報を関連付けたテーブルが予め格納されているものとする。また、ダミー情報と機密情報は、記憶部１２において機密情報毎（あるいは情報取得API毎）に用意された記憶領域に保存されている。
【００９２】
図１８は、情報処理装置が機密情報をメモリカードに保存するときの処理の流れを示している。ステップＳ８００〜Ｓ８１５の処理は図１７のステップＳ７００〜Ｓ７１５の処理と同様であるので、ステップＳ８００〜Ｓ８１５については説明を省略する。また、ステップＳ８２０〜Ｓ８５０の処理は図１４のステップＳ４２５〜Ｓ４５５の処理と同様であるので、ステップＳ８２０〜Ｓ８５０については説明を省略する。
【００９３】
本実施形態においても、アプリケーション１０が機密情報を直接利用できないように、機密情報の利用を制限することができ、情報漏洩を防止することができる。また、機密情報の安全性を高めることができる。
【００９４】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、各実施形態の情報処理装置をスマートフォン等の携帯電話端末に適用してもよいし、適用先は汎用的なOSで動作する装置であればよく、各実施形態の情報処理装置を家電製品や車等に適用してもよい。
【符号の説明】
【００９５】
１０・・・アプリケーション、１１・・・制御部、１１ａ・・・情報取得API実行部、１１ｂ・・・表示API実行部、１１ｃ・・・書き込みAPI実行部、１１ｄ，１１ｅ・・・API実行制御部、１２・・・記憶部、１３・・・表示部、１４・・・入力部、１５・・・メモリカード
【図１】
0005958896.tif 000002
【図２】
0005958896.tif 000003
【図３】
0005958896.tif 000004
【図４】
0005958896.tif 000005
【図５】
0005958896.tif 000006
【図６】
0005958896.tif 000007
【図７】
0005958896.tif 000008
【図８】
0005958896.tif 000009
【図９】
0005958896.tif 000010
【図１０】
0005958896.tif 000011
【図１１】
0005958896.tif 000012
【図１２】
0005958896.tif 000013
【図１３】
0005958896.tif 000014
【図１４】
0005958896.tif 000015
【図１５】
0005958896.tif 000016
【図１６】
0005958896.tif 000017
【図１７】
0005958896.tif 000018
【図１８】
0005958896.tif 000019
【図１９】
0005958896.tif 000020