(57)【要約】  アプリケーションプログラム管理部６の第一の通信部９が、アプリケーション５から、保護対象リソース２の利用を要求するアクセス要求を受信すると、認証情報取得部１６が、アプリケーションプログラム管理部６が正当であることの検証に用いられる認証情報１３を認証情報記憶部１２から取得する。そして、第二の通信部１０が、アプリケーション５からのアクセス要求と認証情報１３とを、アプリケーション５による保護対象リソース２の利用可否を判断する認証部７に送信する。
2013168461.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムが実装されており、前記アプリケーションプログラムによるリソースの利用を管理するアプリケーションプログラム管理部を有するアプリケーションプログラム実行装置であって、
前記アプリケーションプログラム管理部が、
前記アプリケーションプログラムと通信するための第一の通信部と、
所定の認証処理により、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を、前記アプリケーションプログラムとは無関係に取得する認証情報取得部と、
前記認証情報取得部により取得された前記認証情報を、前記アプリケーションプログラムによるリソースの利用可否を判断する認証部に対して送信する第二の通信部とを有することを特徴とするアプリケーションプログラム実行装置。
【請求項２】
前記認証情報取得部は、
前記認証部以外には秘匿されている認証情報を取得することを特徴とする請求項１に記載のアプリケーションプログラム実行装置。
【請求項３】
前記第一の通信部は、
前記アプリケーションプログラムから、前記アプリケーションプログラム実行装置内の所定のリソースの利用を要求するリソース利用要求を受信し、
前記第二の通信部は、
前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により取得された前記認証情報とを、前記認証部に対して送信することを特徴とする請求項１又は２に記載のアプリケーションプログラム実行装置。
【請求項４】
前記アプリケーションプログラム管理部は、更に、
前記認証部と共有している、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を記憶する認証情報記憶部を有し、
前記認証情報取得部は、
前記認証情報記憶部から前記認証情報を読み出し、
前記第二の通信部は、
前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により前記認証情報記憶部から読み出された前記認証情報とを、前記認証部に対して送信することを特徴とする請求項３に記載のアプリケーションプログラム実行装置。
【請求項５】
前記アプリケーションプログラム管理部は、更に、
前記認証部と共有している認証鍵を記憶する認証鍵記憶部を有し、
前記認証情報取得部は、
前記認証鍵記憶部に記憶されている認証鍵を用いて、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を生成し、
前記第二の通信部は、
前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により生成された前記認証情報とを、前記認証部に対して送信することを特徴とする請求項３又は４に記載のアプリケーションプログラム実行装置。
【請求項６】
前記アプリケーションプログラム実行装置は、更に、
前記認証部との通信に用いられる共有メモリを有し、
前記第二の通信部は、
前記リソース利用要求と前記認証情報とを、前記共有メモリに書き込むことを特徴とする請求項３〜５のいずれかに記載のアプリケーションプログラム実行装置。
【請求項７】
前記認証情報取得部は、
所定の認証処理により、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を、第一の認証情報として、前記アプリケーションプログラムとは無関係に取得し、
前記第二の通信部は、
前記認証情報取得部により取得された前記第一の認証情報を、前記認証部に対して送信し、前記認証部において前記第一の認証情報により前記アプリケーションプログラム管理部が正当であることが立証された場合に、前記認証部が前記アプリケーションプログラムによるリソースの利用可否を判断する際に用いる第二の認証情報及び前記第二の認証情報の生成に用いられる認証鍵である第二の認証鍵のいずれかを前記認証部から受信することを特徴とする請求項１又は２に記載のアプリケーションプログラム実行装置。
【請求項８】
前記第一の通信部は、
前記第二の通信部により前記第二の認証情報が受信された場合に、前記アプリケーションプログラムに対して前記第二の認証情報を送信し、前記アプリケーションプログラムに、リソースの利用を要求するリソース利用要求とともに、前記第二の認証情報を前記認証部に対して送信させることを特徴とする請求項７に記載のアプリケーションプログラム実行装置。
【請求項９】
前記アプリケーションプログラム管理部は、更に、
前記第二の通信部により前記第二の認証鍵が受信された場合に、前記第二の認証鍵を用いて前記第二の認証情報を生成する第二の認証情報生成部を有し、
前記第一の通信部は、
前記第二の認証情報生成部により生成された前記第二の認証情報を前記アプリケーションプログラムに対して送信し、前記アプリケーションプログラムに、リソースの利用を要求するリソース利用要求とともに、前記第二の認証情報を前記認証部に対して送信させることを特徴とする請求項７に記載のアプリケーションプログラム実行装置。
【請求項１０】
前記第一の通信部は、
前記アプリケーションプログラムに、前記第二の認証情報の有効性を判断する前記認証部に対して前記第二の認証情報を送信させることを特徴とする請求項８又は９に記載のアプリケーションプログラム実行装置。
【請求項１１】
前記アプリケーションプログラム管理部と前記アプリケーションプログラムとが、前記アプリケーションプログラム実行装置に構築されている仮想実行環境上で動作することを特徴とする請求項１〜１０のいずれかに記載のアプリケーションプログラム実行装置。
【請求項１２】
前記認証部は、
前記アプリケーションプログラム実行装置内に配置されており、
前記第二の通信部は、
前記リソース利用要求と前記認証情報とを、前記アプリケーションプログラム実行装置内の前記認証部に対して送信することを特徴とする請求項３に記載のアプリケーションプログラム実行装置。
【請求項１３】
前記認証部は、
前記アプリケーションプログラム実行装置以外の外部装置内に配置されており、
前記第二の通信部は、
前記リソース利用要求と前記認証情報とを、前記外部装置内の前記認証部に対して送信することを特徴とする請求項３に記載のアプリケーションプログラム実行装置。
【請求項１４】
前記認証部は、
前記アプリケーションプログラム実行装置内に配置されており、
前記第二の通信部は、
前記第一の認証情報を、前記アプリケーションプログラム実行装置内の前記認証部に対して送信することを特徴とする請求項７に記載のアプリケーションプログラム実行装置。
【請求項１５】
前記認証部は、
前記アプリケーションプログラム実行装置以外の外部装置内に配置されており、
前記第二の通信部は、
前記第一の認証情報を、前記外部装置内の前記認証部に対して送信することを特徴とする請求項７に記載のアプリケーションプログラム実行装置。
【請求項１６】
前記アプリケーション実行装置は、
２つ以上のアプリケーションプログラムが実装されており、
２つ以上のアプリケーション管理部を有し、
各アプリケーション管理部は、前記２つ以上のアプリケーションプログラムのいずれかに対応し、対応するアプリケーションプログラムによるリソースの利用を管理することを特徴とする請求項１〜１５のいずれかに記載のアプリケーションプログラム実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム（以下、単に「アプリケーション」ともいう）を認証する技術に関する。
【背景技術】
【０００２】
近年、携帯電話や携帯端末、テレビなどの機器では、ダウンロードしたアプリケーションを実行させ、利用者に各種のサービスを提供するシステムが実現されている。
利用者は、これらのアプリケーションを、ネットワークを介してアプリケーション配信サーバからダウンロードし、携帯電話などの機器にインストールすることができる。
また、利用者は、他の機器やＰＣ（パーソナルコンピュータ）などからメモリカード（登録商標）などの交換型記憶媒体を用いて携帯電話などの機器にアプリケーションをインストールする。
しかし、これらのアプリケーションには、不正なアプリケーションが含まれている可能性がある。
このため、不正なアプリケーションが、機器内部の個人情報など機密情報に対する不正なアクセスをするおそれや利用者には利用が許可されていない機能を悪用するおそれがある。
そのため、特定の機密情報や機器が持つ機能（以下、これらを「リソース」という）へのアクセスを特定のアプリケーションのみに許可するセキュリティ対策が必要となる。【０００３】
このようなセキュリティ対策として、例えば、特許文献１に記載の技術がある。
特許文献１では、正当なアプリケーションであることを認証するための秘密の認証情報や認証情報を生成する秘密の認証鍵がアプリケーションに組み込まれている。
そして、このアプリケーションが、インストールされた機器において、機器内部のリソースにアクセスする前に、機器内部に設けられた認証モジュールが、アプリケーションから認証情報を受信し、受信した認証情報を用いて正当なアプリケーションであることを認証する。
そして、認証成功の場合に、認証モジュールがアプリケーションにリソースへのアクセスを許可する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−４９９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、認証モジュールが認証に用いる認証情報がアプリケーション内部に組み込まれている。
このため、悪意のある利用者がアプリケーションを解析することで、アプリケーション内部の認証情報が暴露されてしまい、機器内のリソースへの不正なアクセスが行われる可能性がある。【０００６】
この発明は、これらに鑑みたものであり、誰でもダウンロードできるアプリケーションプログラムに認証情報を組み込むことなく、正当なアプリケーションプログラムであることを認証できる仕組みを実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るアプリケーションプログラム実行装置は、
アプリケーションプログラムが実装されており、前記アプリケーションプログラムによるリソースの利用を管理するアプリケーションプログラム管理部を有するアプリケーションプログラム実行装置であって、
前記アプリケーションプログラム管理部が、
前記アプリケーションプログラムと通信するための第一の通信部と、
所定の認証処理により、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を、前記アプリケーションプログラムとは無関係に取得する認証情報取得部と、
前記認証情報取得部により取得された前記認証情報を、前記アプリケーションプログラムによるリソースの利用可否を判断する認証部に対して送信する第二の通信部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、認証情報取得部がアプリケーションプログラムとは無関係に認証情報を取得し、認証部に認証情報を送信するため、アプリケーションプログラムに認証情報を組み込むことなく、正当なアプリケーションプログラムであることを認証することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るアプリケーションプログラム実行装置の構成例を示す図。
【図２】実施の形態１に係る処理フローを示すフローチャート図。
【図３】実施の形態２に係るアプリケーションプログラム実行装置の構成例を示す図。
【図４】実施の形態２に係る処理フローを示すフローチャート図。
【図５】実施の形態２に係る処理フローを示すフローチャート図。
【図６】実施の形態３に係るアプリケーションプログラム実行装置の構成例を示す図。
【図７】実施の形態３に係るアプリケーションプログラム実行装置の機能概念図。
【図８】実施の形態３に係る処理フローを示すフローチャート図。
【図９】実施の形態３に係る処理フローを示すフローチャート図。
【図１０】実施の形態４に係るアプリケーションプログラム実行装置の構成例を示す図。
【図１１】実施の形態１〜４に係るアプリケーションプログラム実行装置のハードウェア構成例を示す図。
【図１２】実施の形態５に係るアプリケーションプログラム実行装置の構成例を示す図。
【図１３】実施の形態５に係る処理フローを示すフローチャート図。
【図１４】実施の形態５に係る処理フローを示すフローチャート図。
【図１５】実施の形態６に係るアプリケーションプログラム実行装置の構成例を示す図。
【図１６】実施の形態６に係る処理フローを示すフローチャート図。
【図１７】実施の形態６に係る処理フローを示すフローチャート図。
【図１８】実施の形態７に係るアプリケーションプログラム実行装置の構成例を示す図。
【図１９】実施の形態７に係る処理フローを示すフローチャート図。
【図２０】実施の形態８に係るアプリケーションプログラム実行装置の構成例を示す図。
【図２１】実施の形態８に係る処理フローを示すフローチャート図。
【図２２】実施の形態９に係るアプリケーションプログラム実行装置の構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、本実施の形態に係るアプリケーションプログラム実行装置の構成例を示す。
【００１１】
図１において、アプリケーションプログラム実行装置１は、例えば、携帯電話、携帯端末、テレビ等のアプリケーションがインストールされる機器である。
【００１２】
保護対象リソース２は、保護対象のリソースであり、秘密情報、特定のプログラム、特定のファイル、特定の機能等である。
【００１３】
アプリケーション登録部３は、アプリケーションプログラム実行装置１外からインストールされるアプリケーション５を保管する。
アプリケーション５には、利用者インタフェースである操作部４と、アプリケーションプログラム管理部６と通信するための第一の通信部８が含まれており、認証情報は含まれていない。
アプリケーション５は、保護対象リソース２の利用を要求するアクセス要求（リソース利用要求）を第一の通信部８から送信する。
【００１４】
アプリケーションプログラム管理部６（以下、「アプリケーション管理部６」と表記する）は、アプリケーション５からアクセス要求があった際に、アクセス要求を認証部７に送信するとともに、アクセス要求の送信元が正当なアプリケーション管理部６であることを立証するための認証情報を認証部７に送信する。
【００１５】
アプリケーション管理部６において、第一の通信部９は、アプリケーション５内の第一の通信部８からアクセス要求を受信する。
【００１６】
認証情報記憶部１２は、認証情報１３を記憶している。
認証情報１３は、認証部７の認証処理により、アクセス要求の送信元であるアプリケーション管理部６が正当であることを立証できる情報である。
認証情報１３は、例えば、後述する認証情報検証部１４が記憶している認証情報１５と同じ情報である。
このように、認証情報記憶部１２は、認証情報検証部１４と認証情報を共有している。
また、認証情報１３は、認証部７以外には秘匿されている。
【００１７】
認証情報取得部１６は、第一の通信部９がアクセス要求を受信した際に、アプリケーション５とは無関係に、認証情報記憶部１２から認証情報１３を取得する。
【００１８】
第二の通信部１０は、第一の通信部９が受信したアクセス要求と、認証情報取得部１６が取得した認証情報１３を、認証部７の第二の通信部１１に送信する。
【００１９】
認証部７は、アプリケーション管理部６の認証を実施し、保護対象リソース２へのアクセスを実施する。
【００２０】
認証部７において、第二の通信部１１は、アプリケーション管理部６の第二の通信部１０からアクセス要求と認証情報１３を受信する。
【００２１】
認証情報検証部１４は、認証情報１５を記憶しており、認証情報１５を用いて、第二の通信部１１が受信した認証情報１３を検証する。
【００２２】
アプリケーションプログラム実行装置１には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等が備わっており、アプリケーション管理部６及び認証部７の要素をソフトウェアにより実現可能である。
また、アプリケーション管理部６及び認証部７の一部をファームウェアにより実現してもよいし、アプリケーション管理部６及び認証部７の一部をハードウェアにより実現してもよい。
なお、アプリケーションプログラム実行装置１のハードウェア構成、ハードウェアとソフトウェアとファームウェアの関係については後述する。
【００２３】
次に動作について説明する。
図２は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図２では、アプリケーション管理部６を「管理部」と表記している。
【００２４】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際に、第一の通信部８が保護対象リソース２の利用を要求するアクセス要求をアプリケーション管理部６に送信する（Ｓ１００）。
保護対象リソース２へのアクセスは、情報の書き込みや読み出しなどのアクセスの他、外部との通信機能などアプリケーションプログラム実行装置１が持つ機能へのアクセスである。
後者は機能を介した情報の書き込みや読み出し、情報や命令の送信、命令が実行された結果の読み出しなど様々なアクセスがあるので、処理に応じて保護対象リソース２へのアクセス要求に書き込み対象の情報や処理命令などを含めてもよい。
【００２５】
アプリケーション管理部６では、第一の通信部９が、アプリケーション５からの保護対象リソース２へのアクセス要求を受信（Ｓ１０１）する。
そして、認証情報取得部１６が、認証情報記憶部１２から認証情報１３を取得し、第二の通信部１０が認証情報１３と保護対象リソース２へのアクセス要求とを認証部７へ送信する（Ｓ１０２）。
なお、アプリケーション５の正当性は、アプリケーション５のインストール時の検証等により担保されているものとする。
【００２６】
認証部７では、第二の通信部１１が、アプリケーション管理部６から保護対象リソース２へのアクセス要求と認証情報１３を受信（Ｓ１０３）する。
そして、認証情報検証部１４が、認証情報１５を用いて認証情報１３を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション管理部６）から送信されたものであるかどうかを認証する（Ｓ１０４）。
認証情報１３の検証は、どのような方法によってもよい。
Ｓ１０４の認証の結果、認証に成功した場合、認証情報検証部１４は、要求されたリソースへアクセスする（Ｓ１０５）。
一方、認証に失敗した場合、アクセス要求を破棄する（Ｓ１０６）。
この際、認証情報検証部１４は、認証に失敗した旨をアプリケーション管理部６に応答してもよい。
【００２７】
その後、認証部７は、第二の通信部１１を介してアプリケーション管理部６にアクセス応答を送信する（Ｓ１０７）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【００２８】
アプリケーション管理部６では、第二の通信部１０が認証部７からのアクセス応答を受信（Ｓ１０８）し、第一の通信部９がアプリケーション５にアクセス応答を送信（Ｓ１０９）する。
アプリケーション５では、第一の通信部８が、アプリケーション管理部６からアクセス応答を受信する（Ｓ１１０）。
【００２９】
なお、上記では、アプリケーション５からのリソースへのアクセス要求をアプリケーション管理部６が受信した後に、認証部７が認証情報１３と認証情報１５とを用いた認証を行うフローを説明した。
これに代えて、アプリケーションプログラム実行装置１の電源投入時に認証部７が認証情報１３と認証情報１５とを用いた認証を行い、以降のアクセス要求時には認証処理を行わないようにしてもよい。
また、電源投入時から一定時間以内のアクセス要求であれば認証処理を行わないようにしてもよい。
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部６から外部の認証部７を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
また、複数のリソースがある場合、アクセス要求にはアクセスするリソースの識別情報を含めて、認証部では識別情報に応じたリソースにアクセスする形態でもよい。
【００３０】
以上のように、アプリケーションは、アプリケーション管理部と認証部を介してリソースにアクセスするようにしているので、アプリケーション内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が１つのアプリケーション管理部で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
【００３１】
実施の形態２．
以上の実施の形態１では、アプリケーション５はアプリケーション管理部６を介して認証部７にアクセスする構成であるが、次にダウンロードされたアプリケーション５が事前にインストールされたアプリケーションを介して認証部７にアクセスする実施の形態を示す。
【００３２】
図３は、本実施の形態に係るアプリケーションプログラム実行装置１の構成例を示す。
【００３３】
本実施の形態でのアプリケーションプログラム実行装置１は、保護対象リソース２、アプリケーション登録部３、認証部７、共有メモリ２０に大別される。
【００３４】
本実施の形態では、アプリケーション登録部３は、内部にアプリケーションプログラム管理部２１（以下、「アプリケーション管理部２１」と表記する）を有している。
アプリケーション管理部２１は、アプリケーションプログラム実行装置１の製造者により事前にアプリケーションプログラム実行装置１にインストールされているアプリケーションである。
なお、アプリケーション管理部２１は利用者インタフェースを持たず、アプリケーションプログラム実行装置１に接続されるＳＤ（登録商標）カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
【００３５】
アプリケーション５は、実施の形態１と同様に、後からダウンロードされたアプリケーションである。
アプリケーション５の内部構成は、実施の形態１と同様であるため、説明を省略する。
【００３６】
アプリケーション管理部２１において、認証鍵記憶部２２は認証鍵２３を記憶している。
認証鍵２３は、チャンレンジ・レスポンス方式や鍵付メッセージ認証コードなど認証方式に対応した共通鍵アルゴリズムの鍵や公開鍵アルゴリズムの公開鍵・秘密鍵である。
共通鍵アルゴリズムが用いられている場合は、認証鍵記憶部２２が記憶している認証鍵２３は、認証部７の認証情報検証部１４が記憶している認証鍵２７と同じである。
公開鍵アルゴリズムが用いられている場合は、認証鍵記憶部２２が記憶している認証鍵２３は、認証部７の認証情報検証部１４が記憶している認証鍵２７に対応する鍵である。
このように、認証鍵記憶部２２は、認証部７の認証情報検証部１４と認証鍵を共有している。
【００３７】
認証情報生成部２４は、認証鍵記憶部２２の認証鍵２３を用いて、認証情報を生成する。
認証情報は、実施の形態１と同様に、アプリケーション管理部２１が正当であることの検証に用いられる。
本実施の形態では、認証情報生成部２４が認証情報取得部の例に相当する。
【００３８】
暗号部２６は、暗号鍵２５を保有しており、暗号鍵２５を用いて認証情報の暗号化を行う。
【００３９】
第一の通信部９は、実施の形態１と同様に、アプリケーション５内の第一の通信部８からアクセス要求を受信する。
第一の通信部８と第一の通信部９との間の通信は、プロセス間通信などでよい。
【００４０】
第二の通信部１０は、暗号部２６により暗号化された認証情報を共有メモリ２０に書き込む。
【００４１】
認証部７は、認証鍵２７を用いて、受信した認証情報を検証する認証情報検証部１４と、暗号鍵２８を用いて暗号化・復号を行う暗号部２９と、共有メモリ２０へのアクセスを行う第二の通信部１１から構成されている。
【００４２】
共有メモリ２０はＲＡＭなどの記憶装置であり、アプリケーション管理部２１と認証部７とが、情報の書き込みや読み出しを行うことができる。
また、共有メモリ２０には、アプリケーション管理部２１と認証部７のどちらが情報の書き込みを行っているかを示す転送フラグ３０が設けられている。
本実施の形態での転送フラグ３０は、クリアではアプリケーション管理部２１が、セットでは認証部７が共有メモリ２０に書き込めるものとする。
【００４３】
次に動作について説明する。
図４及び図５は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図４及び図５では、アプリケーション管理部２１を「管理部」と表記している。
【００４４】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際に、第一の通信部８が保護対象リソース２の利用を要求するアクセス要求をアプリケーション管理部２１に送信する（Ｓ２００）。
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
【００４５】
アプリケーション管理部２１では、第一の通信部９が、アプリケーション５からの保護対象リソース２へのアクセス要求を受信（Ｓ２０１）する。
次に、認証情報生成部２４が認証鍵２３を用いて認証情報を生成し、暗号部２６が暗号鍵２５を用いてアクセス要求と認証情報を暗号化する（Ｓ２０２）。
認証情報の生成アルゴリズムは、認証情報検証部１４が認証情報を検証できるものであれば、どのようなものでもよい。
暗号化は、本実施の形態のように認証情報とアクセス要求のすべてではなく、一部の情報を暗号化するようにしてもよい。
また、認証情報及びアクセス要求に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
そして、第二の通信部１０が、暗号化されたアクセス要求と認証情報を共有メモリ２０に書き込む（Ｓ２０３）。
そして、第二の通信部１０は、共有メモリ２０に設けられた転送フラグ３０をセットにする（Ｓ２０４）。
【００４６】
認証部７では、第二の通信部１１が、転送フラグ３０をポーリングし（Ｓ２０５）、転送フラグ３０がセットになっている場合に、共有メモリ２０内の情報を読み出す（Ｓ２０６）。
そして、暗号部２９が、暗号化されている認証情報及びアクセス要求を暗号鍵２８で復号（Ｓ２０７）する。
更に、認証情報検証部１４が、認証鍵２７を用いて認証情報を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション管理部２１）から送信されたものであるかどうかを認証する（Ｓ２０８）。
認証情報の検証は、どのような方法によってもよい。
Ｓ２０８の認証の結果、認証に成功した場合、認証情報検証部１４は、要求されたリソースへアクセスする（Ｓ２０９）。
一方、認証に失敗した場合、アクセス要求を破棄する（Ｓ２１０）。
この際、認証情報検証部１４は、共有メモリ２０を介してアプリケーション管理部２１に認証が失敗した旨を応答してもよい。
【００４７】
その後、認証部７では、暗号部２９が暗号鍵２８を用いてアクセス応答を暗号化（Ｓ２１１）する。
そして、第二の通信部１１が、暗号化されたアクセス応答を共有メモリ２０に書き込み（Ｓ２１２）、転送フラグ３０をクリアにする（Ｓ２１３）。
【００４８】
アプリケーション管理部２１では、第二の通信部１０が、転送フラグ３０をポーリングし（Ｓ２１４）、転送フラグ３０がクリアになったら、共有メモリ２０内の情報を読み出す（Ｓ２１５）。
その後、暗号部２６が、暗号鍵２５を用いて、暗号化されたアクセス応答を復号（Ｓ２１６）し、第一の通信部９がアプリケーション５にアクセス応答を送信（Ｓ２１７）する。
【００４９】
アプリケーション５では、第一の通信部８が、アプリケーション管理部２１からアクセス応答を受信する（Ｓ２１８）。
【００５０】
なお、本実施の形態では、アプリケーション管理部２１をアプリケーション登録部３の内部に設けたが、アプリケーション登録部３とは別に設けてもよい。
また、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
【００５１】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、認証情報生成部２４が認証情報の生成と暗号化・復号を行うことになる。
また、認証部７がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証部７を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
【００５２】
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部２１から外部の認証部７を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
また、複数のリソースがある場合、アクセス要求にはアクセスするリソースの識別情報を含めて、認証部では識別情報に応じたリソースにアクセスする形態でもよい。
【００５３】
以上のように、アプリケーション５は、アプリケーション管理部２１と認証部７を介してリソースにアクセスするようにしているので、アプリケーション５内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が１つのアプリケーション管理部２１で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
また、暗号部をアプリケーション管理部２１と認証部７に設けているので、共有メモリ２０からの情報漏えいリスクが低下し、より安全なシステムを利用者に提供できる。
また、認証情報生成部２４により毎回認証情報を生成しているので、認証情報を再利用した攻撃にも対抗でき、より安全なシステムを利用者に提供できる。
【００５４】
実施の形態３．
以上の実施の形態は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）でアプリケーションが動作する実環境又は仮想実行環境での認証処理を説明した。
本実施の形態では、仮想実行環境と実環境が共存する機器での実施の形態を示す。
【００５５】
図６は、本実施の形態に係るアプリケーションプログラム実行装置１の構成図であり、図７は本実施の形態に係るアプリケーションプログラム実行装置１の機能概念図である。
【００５６】
本実施の形態のアプリケーションプログラム実行装置１は、図７に示すように、ＯＳ５１上でネイティブアプリケーション５０と仮想実行環境５２（仮想マシンモニタ）が動作し、仮想実行環境５２上でアプリケーション管理部２１とアプリケーション５とが動作する。
ネイティブアプリケーション５０には、認証部７が含まれている。
また、ネイティブアプリケーション５０とＯＳ５１に、保護対象リソース２が含まれている。
なお、図７では、認証部７、アプリケーション管理部２１及びアプリケーション５の内部構成の図示を省略しているが、各要素の内部構成は図６に示すとおりである。
【００５７】
図６において、アプリケーション登録部３は、実施の形態２と同様に、内部にアプリケーション管理部２１を有する。
アプリケーション管理部２１は、アプリケーションプログラム実行装置１の製造者により事前にアプリケーションプログラム実行装置１にインストールされており、仮想実行環境５２で動作する。
アプリケーション管理部２１の内部構成は、実施の形態２に示したものと同様である。
但し、実施の形態２では、第二の通信部１０は、共有メモリ２０に暗号化された認証情報とアクセス要求を書き込んでいたが、本実施の形態では、認証部７の第二の通信部１１に暗号化された認証情報とアクセス要求を送信する。
なお、第二の通信部１１は、実施の形態２で示した共有メモリ２０を用いた通信を行ってもよい。
また、実施の形態２と同様に、アプリケーション管理部２１は利用者インタフェースを持たず、アプリケーションプログラム実行装置１に接続されるＳＤ（登録商標）カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
【００５８】
また、アプリケーション５及び認証部７の構成も、実施の形態２と同様である。
【００５９】
次に動作について説明する。
図８及び図９は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図８及び図９では、アプリケーション管理部２１を「管理部」と表記している。
【００６０】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際に、第一の通信部８が保護対象リソース２の利用を要求するアクセス要求をアプリケーション管理部２１に送信する（Ｓ３００）。
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
【００６１】
アプリケーション管理部２１では、第一の通信部９が、アプリケーション５からの保護対象リソース２へのアクセス要求を受信（Ｓ３０１）する。
次に、認証情報生成部２４が認証鍵２３を用いて認証情報を生成し、暗号部２６が暗号鍵２５を用いてアクセス要求と認証情報を暗号化する（Ｓ３０２）。
認証情報の生成アルゴリズムは、認証情報検証部１４が認証情報を検証できるものであれば、どのようなものでもよい。
暗号化は、本実施の形態のように認証情報とアクセス要求のすべてではなく、一部の情報を暗号化するようにしてもよい。
また、認証情報及びアクセス要求に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
そして、第二の通信部１０が、暗号化されたアクセス要求と認証情報を認証部７に送信する（Ｓ３０３）。
【００６２】
認証部７では、第二の通信部１１が、アプリケーション管理部２１からの暗号化されたアクセス要求と認証情報を受信（Ｓ３０４）する。
そして、暗号部２９が、暗号化されている認証情報及びアクセス要求を暗号鍵２８で復号（Ｓ３０５）する。
更に、認証情報検証部１４が、認証鍵２７を用いて認証情報を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション管理部２１）から送信されたものであるかどうかを認証する（Ｓ３０６）。
Ｓ３０６の認証の結果、認証に成功した場合、認証情報検証部１４は、要求されたリソースへアクセスする（Ｓ３０７）。
一方、認証に失敗した場合、アクセス要求を破棄する（Ｓ３０８）。
この際、第二の通信部１１がアプリケーション管理部２１に、認証が失敗した旨を応答してもよい。
【００６３】
その後、認証部７では、暗号部２９が暗号鍵２８を用いてアクセス応答を暗号化（Ｓ３０８）する。
そして、第二の通信部１１が、暗号化されたアクセス応答をアプリケーション管理部２１に送信する（Ｓ３０９）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【００６４】
アプリケーション管理部２１では、第二の通信部１０が、認証部７からの暗号化されたアクセス応答を受信（Ｓ３１０）し、暗号部２６が、暗号鍵２５を用いて、暗号化されたアクセス応答を復号（Ｓ３１１）し、第一の通信部９がアプリケーション５にアクセス応答を送信（Ｓ３１２）する。
【００６５】
アプリケーション５では、第一の通信部８が、アプリケーション管理部２１からアクセス応答を受信する（Ｓ３１３）。
【００６６】
なお、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
【００６７】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、認証情報生成部２４が認証情報の生成と暗号化・復号を行うことになる。
また、暗号部２９を、アプリケーション管理部２１内ではなく、仮想実行環境５２内に設け、仮想実行環境５２内にある暗号部を用いてもよい。
同様に、暗号部２９を、認証部７内ではなく、ＯＳ５１内に設け、ＯＳ５１内の暗号部を用いてもよい。
また、アプリケーション管理部２１の認証情報生成部２４は、仮想実行環境５２にある暗号部を用いて認証情報を生成するようにしてもよい。
同様に、認証部７の認証情報検証部１４は、ＯＳ５１の暗号部を用いて認証情報を検証するようにしてもよい。
【００６８】
なお、本実施の形態では、認証部７がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証部７を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
【００６９】
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部２１から外部の認証部７を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
また、複数のリソースがある場合、アクセス要求にはアクセスするリソースの識別情報を含めて、認証部では識別情報に応じたリソースにアクセスする形態でもよい。
【００７０】
以上のように、アプリケーション５は、アプリケーション管理部２１と認証部７を介してリソースにアクセスするようにしているので、アプリケーション５内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が１つのアプリケーション管理部２１で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
また、暗号部をアプリケーション管理部２１と認証部７に設けているので、共有メモリ２０からの情報漏えいリスクが低下し、より安全なシステムを利用者に提供できる。
また、認証情報生成部２４により毎回認証情報を生成しているので、認証情報を再利用した攻撃にも対抗でき、より安全なシステムを利用者に提供できる。
また、本実施の形態によれば、仮想実行環境で保護するリソースとは別のリソースを保護することができ、幅広いサービスを安全に利用者へ提供できる。
【００７１】
実施の形態４．
以上の実施の形態では、認証部７がアプリケーションプログラム実行装置１の内部にある例を示した。
本実施の形態では、認証部７がアプリケーションプログラム実行装置１の外部に設けられている例を示す。
【００７２】
図１０は、本実施の形態に係るアプリケーションプログラム実行装置１の構成図である。
【００７３】
本実施の形態では、実施の形態１〜３で示した認証部７の機能が、認証装置６１として、アプリケーションプログラム実行装置１の外部に設けられている。
認証装置６１は、外部装置の例に相当する。
なお、認証装置６１は、例えばＩＣカードで実現できる。
また、図１０において破線で囲んだ範囲が実施の形態１〜３で示した認証部７に相当する。
本実施の形態では、認証装置６１には、アプリケーションプログラム実行装置１の第三の通信部６０と通信するための第三の通信部６２が設けられている。
認証装置６１内の他の要素は、既に説明したものと同様なので、説明を省略する。
【００７４】
アプリケーションプログラム実行装置１は、保護対象リソース２と、アプリケーション５とアプリケーション管理部２１が含まれるアプリケーション登録部３と、保護対象リソース２にアクセスするための第三の通信部６０で構成されている。
アプリケーション５及びアプリケーション管理部２１は、実施の形態３に示したものと同様であるので、説明を省略する。
【００７５】
動作は、実施の形態３で述べた図８及び図９の処理フローにおいて、認証部７の動作を認証装置６１が行い、認証部７の保護対象リソース２へのアクセス（Ｓ３０７）が第三の通信部６２と第三の通信部６０を介して行われる点が異なり、他の処理フローは同じであるので、説明を省略する。
【００７６】
なお、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
また、本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、認証情報生成部２４が認証情報の生成と暗号化・復号を行うことになる。
【００７７】
なお、本実施の形態では、認証装置６１がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証装置６１を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
また、本実施の形態では、アプリケーションプログラム実行装置１内部のリソースへのアクセスを示したが、アプリケーションプログラム実行装置１外部のリソースにアクセスする構成でも同様の効果が得られる。
また、複数のリソースがある場合、アクセス要求にはアクセスするリソースの識別情報を含めて、認証部では識別情報に応じたリソースにアクセスする形態でもよい。
【００７８】
以上のように、認証装置をアプリケーションプログラム実行装置１の外部に設けても前述の実施の形態と同様の効果が得られる。
【００７９】
実施の形態５．
以上の実施の形態では、アプリケーションがアプリケーション管理部や認証部を介してリソースにアクセスする構成であるが、次にアプリケーションが、アプリケーション管理部を介さずに、アプリケーション管理部から得た情報を利用して認証部を介してリソースにアクセスする実施の形態を示す。
【００８０】
図１２は、本実施の形態に係るアプリケーションプログラム実行装置１の構成例を示す。
本実施の形態でのアプリケーションプログラム実行装置１の基本的な構成は図６と同じであり、保護対象リソース２、アプリケーション登録部３、認証部７に大別される。
【００８１】
アプリケーション登録部３は、実施の形態３と同様に、内部にアプリケーション管理部２１を有している。
アプリケーション管理部２１は、アプリケーションプログラム実行装置１の製造者により事前にアプリケーションプログラム実行装置１にインストールされているアプリケーションである。
なお、アプリケーション管理部２１は利用者インタフェースを持たず、アプリケーションプログラム実行装置１に接続されるＳＤ（登録商標）カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
【００８２】
本実施の形態でのアプリケーション管理部２１には、第一の認証情報生成部７０があり、これは実施の形態３における認証情報生成部２４と同じで、認証鍵記憶部２２の認証鍵２３を用いて、第一の認証情報を生成する。
第一の認証情報は、実施の形態１と同様に、アプリケーション管理部２１が正当であることの検証に用いられる。
本実施の形態では、第一の認証情報生成部７０が認証情報取得部の例に相当する。
【００８３】
アプリケーション５は、実施の形態１と同様に、後からダウンロードされたアプリケーションである。
アプリケーション５には第二の通信部７１があり、第二の通信部７１は、認証部７の第二の通信部１１と通信する。
なお、第二の通信部７１は、実施の形態２で示した共有メモリを用いた通信を行ってもよい。
第二の通信部７１以外の内部構成は、実施の形態１と同様であるため、説明を省略する。
【００８４】
認証部７において、第一の認証情報検証部７２は、認証鍵２７を用いて、受信した第一の認証情報を検証する。
【００８５】
暗号部２９は、暗号鍵２８を用いて暗号化・復号を行う。
【００８６】
第二の通信部１１は、アプリケーション管理部２１やアプリケーション５と通信する。
【００８７】
第二の認証情報生成・検証部７３は、アプリケーション５との通信時に使用される第二の認証情報を生成し、アプリケーション５から受信した第二の認証情報を検証する。
なお、本実施の形態での第二の認証情報はパスワードで実現できる。
【００８８】
次に動作について説明する。
図１３及び図１４は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図１３及び図１４では、アプリケーション管理部２１を「管理部」と表記している。
【００８９】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際、まず、第一の通信部８から保護対象リソース２の利用時に使用される第二の認証情報の提供を要求する第二の認証情報要求をアプリケーション管理部２１に送信する（Ｓ５００）。
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
アプリケーション管理部２１では、第一の通信部９が、アプリケーションからの第二の認証情報要求を受信（Ｓ５０１）する。
【００９０】
次に、アプリケーション管理部２１では、第一の認証情報生成部７０が認証鍵２３を用いて第一の認証情報を生成し、第二の通信部１０から認証部７へ第一の認証情報と第二の認証情報要求が送信される（Ｓ５０２）。
第一の認証情報の生成アルゴリズムは、第一の認証情報検証部７２が第一の認証情報を検証できるものであれば、どのようなものでもよい。
この際、暗号部２９が暗号鍵を用いて第一の認証情報を暗号化してもよい。
また、第一の認証情報に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
【００９１】
認証部７では、第二の通信部１１が、アプリケーション管理部２１からの第一の認証情報を受信（Ｓ５０３）する。
そして、第一の認証情報検証部７２が、認証鍵２７を用いて第一の認証情報を検証することで、第二の認証情報要求が正当な送信元（つまり、アプリケーション管理部２１）から送信されたものであるかどうかを認証する（Ｓ５０４）。
Ｓ５０４の認証の結果、認証に成功した場合、認証部７では、第二の認証情報生成・検証部７３が第二の認証情報を生成し、暗号部２９が暗号鍵２８を利用して第二の認証情報を暗号化する（Ｓ５０５）。
一方、認証に失敗した場合は、第一の認証情報検証部７２が、第二の認証情報要求を破棄する（Ｓ５０６）。
この際、第二の通信部１１がアプリケーション管理部２１に、認証が失敗した旨を応答してもよい。
そして、第二の通信部１１が、暗号化された第二の認証情報をアプリケーション管理部２１に送信する（Ｓ５０７）。
【００９２】
アプリケーション管理部２１では、第二の通信部１０が、認証部７からの暗号化された第二の認証情報を受信（Ｓ５０８）し、暗号部２６が、暗号鍵２５を用いて、暗号化された第二の認証情報を復号（Ｓ５０９）し、第一の通信部９がアプリケーション５に第二の認証情報を送信（Ｓ５１０）する。
【００９３】
アプリケーション５では、第一の通信部８が、アプリケーション管理部２１から第二の認証情報を受信する（Ｓ５１１）。
その後、アプリケーション５は、第二の通信部７１から第二の認証情報と保護対象リソースの利用を要求するアクセス要求を認証部７に送信する（Ｓ５１２）。
【００９４】
認証部７では、第二の通信部１１が第二の認証情報とアクセス要求を受信する（Ｓ５１３）。
第二の認証情報生成・検証部７３が、受信した第二の認証情報を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション５）から送信されたものであるかどうかを認証する（Ｓ５１４）。
Ｓ５１４の認証の結果、認証に成功した場合、認証部７は、要求されたリソースへアクセスする（Ｓ５１５）。
一方、認証に失敗した場合、認証部７は、アクセス要求を破棄する（Ｓ５１６）。
この際、第二の通信部１１がアプリケーション５に、認証が失敗した旨を応答してもよい。
そして、第二の通信部１１が、アクセス応答をアプリケーション５に送信する（Ｓ５１７）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【００９５】
アプリケーション５では、第二の通信部７１が、認証部７からアクセス応答を受信する（Ｓ５１８）。
【００９６】
なお、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
【００９７】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、第一の認証情報生成部７２が認証情報の生成と暗号化・復号を行うことになる。
また、暗号部２６を、アプリケーション管理部２１内ではなく、実施の形態３での仮想実行環境内に設け、仮想実行環境内にある暗号部を用いてもよい。
同様に、暗号部２９を、認証部７内ではなく、ＯＳ内に設け、ＯＳ内の暗号部を用いてもよい。
【００９８】
また、アプリケーション管理部２１の第一の認証情報生成部７０は、実施の形態３での仮想実行環境にある暗号部を用いて第一の認証情報を生成するようにしてもよい。
同様に、認証部７の第一の認証情報検証部７２や第二の認証情報生成・検証部７３は、ＯＳの暗号部を用いて第一の認証情報の検証や第二の認証情報の生成や検証をするようにしてもよい。
【００９９】
なお、本実施の形態では、認証部７がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証部７を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
【０１００】
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部２１から外部の認証部を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
【０１０１】
なお、本実施の形態では、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信した後に、認証部７が第一の認証情報を用いた認証を行うフローを説明した。
これに代えて、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信する前に、例えば、アプリケーションプログラム実行装置１の電源投入時に、認証部７が第一の認証情報を用いたアプリケーション管理部２１の認証を行って、第二の認証情報をアプリケーション管理部２１が取得しておき、アプリケーション５からの第二の認証情報要求が受信された場合に、アプリケーション管理部２１が取得しておいた第二の認証情報をアプリケーション５に応答するようにしてもよい。
また、以降のアクセス要求時には認証処理を行わないようにしてもよく、認証から一定時間以内のアクセス要求であれば認証処理を行わないようにしてもよい。
さらに、アプリケーション５はアプリケーション管理部２１から取得した第二の認証情報を記憶しておき、アプリケーション５が認証部７へアクセス要求する度に使用するようにしてもよい。
【０１０２】
また、アプリケーション管理部２１からアプリケーション５へ転送する第二の認証情報は、鍵付きメッセージ認証コードや暗号化などに対応する共通鍵でもよい。
この場合、アプリケーション５には受信した共通鍵から認証情報を生成する必要がある。
【０１０３】
また、本実施の形態では、第二の認証情報を認証部７で生成する構成を示したが、アプリケーション管理部２１で生成する構成でも、アプリケーション管理部２１と認証部７の両方で生成する構成でもよい。
後者の場合、例えば第一の認証情報を利用して第二の認証情報を同じ生成メカニズムを持つアプリケーション管理部２１と認証部７で生成することで実現できる。
【０１０４】
以上のように、アプリケーションは、ダウンロード後にアプリケーション管理部から第二の認証情報を得ており、認証部はその第二の認証情報を認証してリソースにアクセスするようにしている。
このため、誰でもダウンロードできるアプリケーション配信サーバ上のアプリケーション内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
【０１０５】
また、暗号部をアプリケーション管理部と認証部に設けているので、アプリケーション管理部と認証部との通信での情報漏えいリスクが低下し、より安全なシステムを利用者に提供できる。
【０１０６】
また、アプリケーションがアプリケーション管理部を介さずにリソースにアクセスできるので、効率がよく、前記実施の形態よりも少ないメモリで実現できるのでコストを削減できる。
【０１０７】
実施の形態６．
実施の形態５では、アプリケーション管理部がアプリケーションに認証部で生成した第二の認証情報を送信する構成を示したが、次に認証部で生成した第二の認証鍵を用いてアプリケーション管理部が第二の認証情報を生成する実施の形態を示す。
【０１０８】
図１５は、本実施の形態に係るアプリケーションプログラム実行装置１の構成例を示す。
本実施の形態でのアプリケーションプログラム実行装置１の基本的な構成は図１２と同じであり、保護対象リソース２、アプリケーション登録部３、認証部７に大別される。
【０１０９】
アプリケーション登録部３は、実施の形態５と同様に、内部にアプリケーション管理部２１を有している。
本実施の形態でのアプリケーション管理部２１には、第一の認証情報生成部７０があり、これは実施の形態３における認証情報生成部２４と同じで、認証鍵記憶部２２の第一の認証鍵８０を用いて、第一の認証情報を生成する。
第一の認証情報は、実施の形態１と同様に、アプリケーション管理部２１が正当であることの検証に用いられる。
本実施の形態でも、第一の認証情報生成部７０が認証情報取得部の例に相当する。
第二の認証情報生成部８１は認証部７から受信した第二の認証鍵８４を用いて第二の認証情報を生成する。
第二の認証鍵８４は共通鍵アルゴリズムの鍵、公開鍵アルゴリズムの公開鍵や秘密鍵でよく、前者の場合、第二の認証情報は暗号化データや鍵付メッセージ認証コード、後者の場合、電子証明書や電子署名、暗号化データである。
それ以外の内部構成は、他の実施の形態と同様であるため、説明を省略する。
【０１１０】
アプリケーション５は、実施の形態１と同様に、後からダウンロードされたアプリケーションであり、内部構成は、実施の形態５と同様であるため、説明を省略する。
【０１１１】
認証部７において、第一の認証情報検証部７２は、第一の認証鍵８２を用いて、受信した第一の認証情報を検証する。
第二の認証鍵生成部８３は、第二の認証鍵８４を生成する。
第二の認証情報検証部８５は、第二の認証鍵８４を用いて、受信した第二の認証情報を検証する。
それ以外の内部構成は、実施の形態５と同様であるため、説明を省略する。
【０１１２】
次に動作について説明する。
図１６及び図１７は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図１６及び図１７では、アプリケーション管理部２１を「管理部」と表記している。
【０１１３】
アプリケーション登録部２１にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際、まず、第一の通信部８から保護対象リソース２の利用時に使用される第二の認証情報の提供を要求する第二の認証情報要求をアプリケーション管理部２１に送信する（Ｓ６００）。
第二の認証情報に依存するが、アプリケーション５は、後に認証部７へ送信するアクセス要求命令や送信データ、もしくはその一部をアプリケーション管理部２１に送信してもよい。
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
アプリケーション管理部２１では、第一の通信部９が、アプリケーション５からの第二の認証情報要求を受信（Ｓ６０１）する。
【０１１４】
次に、アプリケーション管理部２１では、第一の認証情報生成部７０が第一の認証鍵８０を用いて第一の認証情報を生成し、第二の通信部１０から認証部７へ第一の認証情報と第二の認証鍵を要求する第二の認証鍵要求が送信される（Ｓ６０２）。
第一の認証情報の生成アルゴリズムは、第一の認証情報検証部７２が第一の認証情報を検証できるものであれば、どのようなものでもよい。
この際、暗号部２６が暗号鍵２５を用いて第一の認証情報を暗号化してもよい。
また、第一の認証情報に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
【０１１５】
認証部７では、第二の通信部１１が、アプリケーション管理部２１からの第一の認証情報と第二の認証鍵要求を受信（Ｓ６０３）する。
そして、第一の認証情報検証部７２が、第一の認証鍵を用いて第一の認証情報を検証することで、第二の認証鍵要求が正当な送信元（つまり、アプリケーション管理部２１）から送信されたものであるかどうかを認証する（Ｓ６０４）。
Ｓ６０４の認証の結果、認証に成功した場合、認証部７では第二の認証鍵生成部８３が、第二の認証鍵８４を生成し、暗号部２９にて暗号鍵２８を利用して第二の認証鍵８４を暗号化する（Ｓ６０５）。
一方、認証に失敗した場合、第一の認証情報検証部７２が、第二の認証鍵要求を破棄する（Ｓ６０６）。
この際、第二の通信部１１がアプリケーション管理部２１に、認証が失敗した旨を応答してもよい。
そして、第二の通信部１１が、暗号化された第二の認証鍵をアプリケーション管理部２１に送信する（Ｓ６０７）。
【０１１６】
アプリケーション管理部２１では、第二の通信部１０が、認証部７からの暗号化された第二の認証鍵を受信（Ｓ６０８）し、暗号部２６が、暗号鍵を用いて、暗号化された第二の認証鍵を復号（Ｓ６０９）する。
その後、第二の認証情報生成部８１が第二の認証情報を生成し（Ｓ６１０）、第一の通信部９がアプリケーション５に第二の認証情報を送信（Ｓ６１１）する。
【０１１７】
アプリケーション５では、第一の通信部８が、アプリケーション管理部２１から第二の認証情報を受信する（Ｓ６１２）。
その後、アプリケーション５では、第二の通信部７１から第二の認証情報と保護対象リソースの利用を要求するアクセス要求を認証部７に送信する（Ｓ６１３）。
【０１１８】
認証部７では、第二の通信部１１が第二の認証情報とアクセス要求を受信する（Ｓ６１４）。
次に、第二の認証情報検証部８５が、受信した第二の認証情報を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション５）から送信されたものであるかどうかを認証する（Ｓ６１５）。
Ｓ６１５の認証の結果、認証に成功した場合、認証部７は、要求されたリソースへアクセスする（Ｓ６１６）。
一方、認証に失敗した場合、認証部７は、アクセス要求を破棄する（Ｓ６１７）。
この際、第二の通信部１１がアプリケーション５に、認証が失敗した旨を応答してもよい。
そして、第二の通信部１１が、アクセス応答をアプリケーション５に送信する（Ｓ６１８）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【０１１９】
アプリケーション５では、第二の通信部７１が、認証部７からアクセス応答を受信する（Ｓ６１９）。
【０１２０】
なお、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
【０１２１】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、第一の認証情報生成部７０が認証情報の生成と暗号化・復号を行うことになる。
また、暗号部を、アプリケーション管理部内ではなく、実施の形態３での仮想実行環境内に設け、仮想実行環境内にある暗号部を用いてもよい。
同様に、暗号部を、認証部７内ではなく、ＯＳ内に設け、ＯＳ内の暗号部を用いてもよい。
【０１２２】
また、アプリケーション管理部２１の第一の認証情報生成部７０は、実施の形態３での仮想実行環境にある暗号部を用いて第一の認証情報を生成するようにしてもよい。
同様に、認証部７の第一の認証情報検証部７２や第二の認証情報生成・検証部７３は、ＯＳの暗号部を用いて第一の認証情報の検証や第二の認証情報の生成や検証をするようにしてもよい。
【０１２３】
なお、本実施の形態では、認証部７がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証部７を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
【０１２４】
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部２１から外部の認証部７を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
【０１２５】
なお、本実施の形態では、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信した後に、認証部７が第一の認証情報を用いた認証を行うフローを説明した。
これに代えて、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信する前に、例えば、アプリケーションプログラム実行装置１の電源投入時に、認証部７が第一の認証情報を用いたアプリケーション管理部２１の認証を行って、第二の認証鍵をアプリケーション管理部２１が取得しておき、アプリケーション５からの第二の認証情報要求が受信された場合に、アプリケーション管理部２１が取得しておいた第二の認証鍵を用いて第二の認証情報を生成してアプリケーション５に応答するようにしてもよい。
また、以降のアクセス要求時には認証処理を行わないようにしてもよく、電源投入時から一定時間以内のアクセス要求であれば認証処理を行わないようにしてもよい。
【０１２６】
以上のような構成でも前記実施の形態と同様の効果が得られる。
【０１２７】
実施の形態７．
以上の実施の形態では、アプリケーションが第二の認証情報を認証部に送信する構成であるが、次に認証部にて第二の認証情報の検証の前にその有効性を判断する実施の形態を示す。
【０１２８】
図１８は、本実施の形態に係るアプリケーションプログラム実行装置１の構成例を示す。
本実施の形態でのアプリケーションプログラム実行装置１の基本的な構成は図１２と同じである。
【０１２９】
認証部７の第二の認証情報生成・検証部７３には、第二の認証情報の有効性を判断する有効性判断部９０が設けられている。
有効性の判断には、認証回数、時間、日付などが用いられる。
例えば、認証回数の場合、認証部７が生成した第二の認証情報を使用した認証の回数をカウントし、それが規定値以下の場合は有効、規定値を超えた場合は無効とする。
また、認証部７が第二の認証情報を生成した時刻から、ある規定時間内の場合は有効、規定時間を超えた場合は無効としてもよい。
さらに、認証部７が第二の認証情報を生成した日付のみ有効、または、電子証明書のように第二の認証情報に設けた有効期限内のみを有効とし、それ以外を無効としてもよい。
また、認証部７で生成した乱数を元にランダムに有効・無効を判断してもよく、上記を組み合わせてもよい。
【０１３０】
次に動作について説明する。
図１９は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図１９では、処理フローの一部を示しており、アプリケーション５が第二の認証情報をアプリケーション管理部２１から取得する処理フローは図１６と図１７と同じであるので、省略している。
また、図１９では、アプリケーション管理部２１を「管理部」と表記している。
【０１３１】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際、図１６と図１７と同様に、第二の認証情報をアプリケーション管理部２１から取得する。
【０１３２】
アプリケーション５は、第二の認証情報を取得した後、第二の通信部７１から第二の認証情報と保護対象リソースの利用を要求するアクセス要求を認証部７に送信する（Ｓ７００）。
【０１３３】
認証部７では、第二の通信部１１で第二の認証情報とアクセス要求を受信する（Ｓ７０１）。
そして、第二の認証情報生成・検証部７３の有効性判断部９０が、第二の認証情報の有効性を判断する（Ｓ７０２）。
【０１３４】
判断の結果、有効であれば、第二の認証情報生成・検証部７３が、受信した第二の認証情報を検証し、アクセス要求が正当な送信元（つまり、アプリケーション５）から送信されたものであるかどうかを認証する（Ｓ７０３）。
Ｓ７０３の認証の結果、認証に成功した場合、認証部７は、要求されたリソースへアクセスし（Ｓ７０４）、第二の通信部１１がアクセス応答をアプリケーション５に送信する（図１７と同様の処理を行う）。
一方、認証に失敗した場合、第二の認証情報生成・検証部７３が、アクセス要求を破棄する（Ｓ７０５）。
この際、第二の通信部１１がアプリケーション５に、認証が失敗した旨を応答してもよい。
【０１３５】
一方、Ｓ７０２の判断の結果、無効であれば、第二の通信部１１が無効通知をアプリケーション５に送信する（Ｓ７０６）。
アプリケーション５では、第二の通信部７１が、認証部７から無効通知を受信（Ｓ７０７）すると、新しい第二の認証情報を取得するため、第二の認証情報要求を第一の通信部８からアプリケーション管理部２１へ送信する（Ｓ７０８）。
アプリケーション管理部２１では、第一の通信部９で第二の認証情報要求を受信（Ｓ７０９）すると、図１６と図１７と同様の処理を行い、アプリケーション５に新しい第二の認証情報を送信する。
【０１３６】
なお、本実施の形態では、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信した後に、認証部７が第一の認証情報を用いた認証を行うフローを説明した。
これに代えて、アプリケーション５からの第二の認証情報要求をアプリケーション管理部２１が受信する前に、例えば、アプリケーションプログラム実行装置１の電源投入時に、認証部７が第一の認証情報を用いたアプリケーション管理部２１の認証を行って、第二の認証情報をアプリケーション管理部２１が取得しておき、アプリケーション５からの第二の認証情報要求が受信された場合に、アプリケーション管理部２１が取得しておいた第二の認証情報をアプリケーション５に応答するようにしてもよい。
【０１３７】
また、本実施の形態では、第二の認証情報をアプリケーション管理部２１で生成する構成を示したが、アプリケーション管理部２１と認証部７の両方で生成する構成でもよい。
この場合、例えば第一の認証情報を利用して第二の認証情報を同じ生成メカニズムを持つアプリケーション管理部２１と認証部７で生成することで実現できる。
【０１３８】
なお、本実施の形態では、アプリケーション５が、アプリケーション管理部２１を介さずに、アプリケーション管理部２１から得た情報を利用して認証部７を介してリソースにアクセスする構成での形態を示したが、アプリケーション５がアプリケーション管理部２１や認証部７を介してリソースにアクセスする構成にも適用できる。
【０１３９】
以上のように、アプリケーション５は、ダウンロード後にアプリケーション管理部２１から第二の認証情報を得ており、認証部７はその第二の認証情報を認証してリソースにアクセスするようにしているので、誰でもダウンロードできるアプリケーション配信サーバ上のアプリケーション内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
【０１４０】
また、アプリケーション５がアプリケーション管理部２１を介さずにリソースにアクセスできるので、効率がよく、前記実施の形態よりも少ないメモリで実現できるのでコストを削減できる。
【０１４１】
また、アプリケーション５はリソースにアクセスする度に第二の認証情報を取得する必要はなく、また認証部７にて第二の認証情報の有効性を判断しているので、リソース取得処理が高速かつセキュアなシステムを実現することができる。
【０１４２】
実施の形態８．
以上の実施の形態は、アプリケーションのリソースに対するアクセスを許可する構成を説明した。
本実施の形態では、複数のアプリケーションの複数のリソースに対するアクセスを細かく許可する実施の形態を示す。
【０１４３】
図２０は、本実施の形態に係るアプリケーションプログラム実行装置１の構成図である。
【０１４４】
図２０において、アプリケーション登録部３は、他の実施の形態と同様に、内部にアプリケーション管理部２１とアプリケーション５を有している。
図２０では、アプリケーション管理部２１ａとアプリケーション管理部２１ｂの２つアプリケーション管理部２１、アプリケーション５ａとアプリケーション５ｂの２つのアプリケーション５が含まれる例を示している。
アプリケーション管理部２１ａは、アプリケーション５ａに対応し、アプリケーション５ａによるリソースの利用を管理する。
同様に、アプリケーション管理部２１ｂは、アプリケーション５ｂに対応し、アプリケーション５ｂによるリソースの利用を管理する。
【０１４５】
なお、以下では、アプリケーション管理部２１ａとアプリケーション管理部２１ｂを区別する必要がない場合は両者をまとめてアプリケーション管理部２１と表記し、アプリケーション５ａとアプリケーション５ｂを区別する必要がない場合は両者をまとめてのアプリケーション５と表記する。
アプリケーション管理部２１は、アプリケーションプログラム実行装置１の製造者により事前にアプリケーションプログラム実行装置１にインストールされている。
【０１４６】
また、本実施の形態では、リソースとしてリソース＿Ａ２ａとリソース＿Ｂ２ｂがある。
【０１４７】
アプリケーション管理部２１の内部構成は、他の実施の形態に示したものと同様である。
また、他の実施の形態と同様に、アプリケーション管理部２１は利用者インタフェースを持たず、アプリケーションプログラム実行装置１に接続されるＳＤ（登録商標）カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
【０１４８】
認証部７には、アクセス要求を送信したアプリケーション管理部２１に応じてリソースＡとリソースＢへのアクセスを制御するアクセス制御部９１を有している。
【０１４９】
なお、図２０では、認証部７、アプリケーション管理部２１及びアプリケーション５の内部構成の図示を省略しているが、各要素の内部構成は図６に示すとおりである。
【０１５０】
次に動作について説明する。
図２１は、本実施の形態に係るアプリケーションプログラム実行装置１の処理フローである。
なお、図２１では、処理フローの一部を示しており、アプリケーション５からアプリケーション管理部２１へアクセス要求を送信し、アプリケーション管理部２１からアプリケーション５へアクセス応答を送信する処理フローは図８と図９と同じであるので、省略している。
また、アプリケーション管理部を「管理部」と表記している。
【０１５１】
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
つまり、アプリケーション５ａとアプリケーション管理部２１ａの電子証明書が同じ場合にのみ、アプリケーション５ａとアプリケーション管理部２１ａの間の通信が許可される。
同様に、アプリケーション５ｂとアプリケーション管理部２１ｂの電子証明書が同じ場合にのみ、アプリケーション５ｂとアプリケーション管理部２１ｂの間の通信が許可される。
【０１５２】
アプリケーション管理部２１の第二の通信部１０（図示していない）が、暗号化されたアクセス要求と認証情報を認証部７に送信する（Ｓ３０３）。
アクセス要求にはアクセス先のリソースの識別情報が含まれている。
【０１５３】
認証部７では、第二の通信部１１が、アプリケーション管理部２１からの暗号化されたアクセス要求と認証情報を受信（Ｓ３０４）する。
そして、暗号部２９が、暗号化されている認証情報及びアクセス要求を暗号鍵２８で復号（Ｓ３０５）する。
更に、認証情報検証部１４が、認証鍵２７を用いて認証情報を検証することで、アクセス要求が正当な送信元（つまり、アプリケーション管理部２１）から送信されたものであるかどうかを認証する（Ｓ３０６）。
【０１５４】
Ｓ３０６の認証の結果、認証に成功した場合、アクセス制御部９１が、アクセス要求の送信元であるアプリケーション管理部２１を識別する情報と、アクセス先のリソースの識別情報とから許可されたアクセスであるか否かを判定する（Ｓ７５０）。
アクセス要求の送信元であるアプリケーション管理部２１を識別する情報としては、アプリケーション管理部２１ａと認証部７との間の通信路とアプリケーション管理部２１ｂと認証部７との間の通信路との違い（例えばポート番号）、アプリケーション管理部２１から受信した予め定められたアプリケーション管理部ＩＤ、暗号鍵や認証鍵に付与された鍵ＩＤなどが利用できる。
なお、アクセス要求の送信元であるアプリケーション管理部２１を識別する情報と、アクセス先のリソースの識別情報とをリストとして認証部７が保持する構成でもよい。
【０１５５】
判定の結果、アクセス可能と判定された場合、認証部７は、要求されたリソースへアクセスする（Ｓ３０７）。
アクセス不可能と判定された場合、認証部７は、アクセス要求を破棄する（Ｓ７５１）。
この際、第二の通信部１１がアプリケーション管理部２１に、アクセス不可能の旨を応答してもよい。
【０１５６】
Ｓ３０６の認証の結果、認証に失敗した場合、認証部７は、アクセス要求を破棄する（Ｓ３０８）。
この際、第二の通信部１１がアプリケーション管理部２１に、アクセス不可能の旨を応答してもよい。
【０１５７】
その後、認証部７では、暗号部２９が暗号鍵２８を用いてアクセス応答を暗号化（Ｓ３０８）する。
そして、第二の通信部１１が、暗号化されたアクセス応答をアプリケーション管理部２１に送信する（Ｓ３０９）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【０１５８】
アプリケーション管理部２１では、第二の通信部１０が、認証部７からの暗号化されたアクセス応答を受信する（Ｓ３１０）。
【０１５９】
なお、アプリケーション管理部２１はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
【０１６０】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、認証情報生成部２４が認証情報の生成と暗号化・復号を行うことになる。
また、アプリケーション管理部２１ごとに認証鍵と暗号鍵を変えてもよい。
この場合、各鍵を一意に識別する鍵ＩＤを付与してもよい。
【０１６１】
なお、本実施の形態では、認証部７がアプリケーション管理部２１を認証する形態を示したが、アプリケーション管理部２１が認証部７を認証する処理を追加し、相互認証するようにしてもよい。
このような相互認証により、さらに安全なシステムを利用者に提供することができる。
【０１６２】
また、認証部７をＩＣカードのようにアプリケーションプログラム実行装置１の外部に設け、アプリケーションプログラム実行装置１内部のアプリケーション管理部２１から外部の認証部７を経由してアプリケーションプログラム実行装置１内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
【０１６３】
また、アプリケーション管理部２１を１つで構成して、アプリケーションが持つＩＤや仮想実行環境から取得したアプリケーション管理部２１の通信先アプリケーションの識別情報を用いて認証部もしくはアプリケーション管理部２１がアクセスを判定する構成でもよい。
【０１６４】
本実施の形態はアプリケーション５からアプリケーション管理部２１を介してリソースにアクセスする形態を示したが、実施の形態５や６のように、アプリケーション管理部２１を介さずに、アプリケーション管理部２１から得た情報を利用してリソースにアクセスする構成でもかまわない。
【０１６５】
以上のように、アプリケーション５は、アプリケーション管理部２１と認証部７を介してリソースにアクセスするようにしているので、アプリケーション５内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
【０１６６】
また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が１つのアプリケーション管理部２１で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
【０１６７】
また、複数のアプリケーションのリソースに対するアクセスを細かく制御できるので、より安全なシステムを利用者に提供できる。
【０１６８】
実施の形態９．
以上の実施の形態では、保護対象リソース２がアプリケーションプログラム実行装置１の内部にある例を示した。
本実施の形態では、認証部７と保護対象リソース２がアプリケーションプログラム実行装置１の外部に設けられている例を示す。
【０１６９】
図２２は、本実施の形態に係るアプリケーションプログラム実行装置１の構成図である。
【０１７０】
本実施の形態では、アプリケーション５とアプリケーション管理部２１が第一のアプリケーションプログラム実行装置１ａに、認証部７の機能とリソースが、第二のアプリケーションプログラム実行装置１ｂとして、第一のアプリケーションプログラム実行装置１ａの外部に設けられている。
【０１７１】
第二のアプリケーションプログラム実行装置１ｂは、外部装置の例に相当する。
第二のアプリケーションプログラム実行装置１ｂは、例えば内部に機密情報を含むＩＣカードで実現できる。
【０１７２】
第一のアプリケーションプログラム実行装置１ａと第二のアプリケーションプログラム実行装置１ｂの要素は、既に説明したものと同様なので、説明を省略する。
【０１７３】
動作は、実施の形態３で述べた図８及び図９の処理フローにおいて、アプリケーション５とアプリケーション管理部２１の動作を第一のアプリケーションプログラム実行装置１ｂが行い、リソース２と認証部７の動作を第二のアプリケーションプログラム実行装置１ｂが行う点が異なり、他の処理フローは同じであるので、説明を省略する。
【０１７４】
以上のように、アプリケーションプログラム実行装置１を第一のアプリケーションプログラム実行装置と第二のアプリケーションプログラム実行装置に分離しても前述の実施の形態と同様の効果が得られる。
【０１７５】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【０１７６】
最後に、実施の形態１〜９に示したアプリケーションプログラム実行装置１のハードウェア構成例を図１１を参照して説明する。
アプリケーションプログラム実行装置１はコンピュータであり、アプリケーションプログラム実行装置１の各要素をプログラムで実現することができる。
アプリケーションプログラム実行装置１のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１７７】
演算装置９０１は、プログラムを実行するＣＰＵである。
外部記憶装置９０２は、例えばＲＯＭやフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭである。
通信装置９０４は、例えば、実施の形態４の認証装置６１と通信する際に用いられる。
また、通信装置９０４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークに接続されていてもよい。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１７８】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１等に示すアプリケーション管理部６、２１の「〜部」（但し、「認証鍵記憶部２２」を除く）として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１等に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーション５及び認証部７も外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１により実行される。
また、認証鍵、暗号鍵も外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１により利用される。
また、実施の形態１〜９の説明において、「〜の判断」、「〜の判定」、「〜の検証」、「〜の認証」、「〜の取得」、「〜の読み出し」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の受信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
また、乱数値、パラメータや電子証明書が、主記憶装置９０３にファイルとして記憶されてもよい。
また、図１等に示すアプリケーション管理部６、２１の「〜部」の少なくとも一部を、ファームウェアで実現してもよい。
【０１７９】
なお、図１１の構成は、あくまでもアプリケーションプログラム実行装置１のハードウェア構成の一例を示すものであり、アプリケーションプログラム実行装置１のハードウェア構成は図１１に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【０１８０】
１  アプリケーションプログラム実行装置、２  保護対象リソース、３  アプリケーション登録部、４  操作部、５  アプリケーション、６  アプリケーション管理部、７  認証部、８  第一の通信部、９  第一の通信部、１０  第二の通信部、１１  第二の通信部、１２  認証情報記憶部、１３  認証情報、１４  認証情報検証部、１５  認証情報、１６  認証情報取得部、２０  共有メモリ、２１  アプリケーション管理部、２２  認証鍵記憶部、２３  認証鍵、２４  認証情報生成部、２５  暗号鍵、２６  暗号部、２７  認証鍵、２８  暗号鍵、２９  暗号部、３０  転送フラグ、５０  ネイティブアプリケーション、５１  ＯＳ、５２  仮想実行環境、６０  第三の通信部、６１  認証装置、６２  第三の通信部、７０  第一の認証情報生成部、７１  第二の通信部、７２  第一の認証情報検証部、７３  第二の認証情報生成・検証部、８０  第一の認証鍵、８１  第二の認証情報生成部、８２  第一の認証鍵、８３  第二の認証鍵生成部、８４  第二の認証鍵、８５  第二の認証情報検証部、９０  有効性判断部。
【図１】
2013168461.tif 000003
【図２】
2013168461.tif 000004
【図３】
2013168461.tif 000005
【図４】
2013168461.tif 000006
【図５】
2013168461.tif 000007
【図６】
2013168461.tif 000008
【図７】
2013168461.tif 000009
【図８】
2013168461.tif 000010
【図９】
2013168461.tif 000011
【図１０】
2013168461.tif 000012
【図１１】
2013168461.tif 000013
【図１２】
2013168461.tif 000014
【図１３】
2013168461.tif 000015
【図１４】
2013168461.tif 000016
【図１５】
2013168461.tif 000017
【図１６】
2013168461.tif 000018
【図１７】
2013168461.tif 000019
【図１８】
2013168461.tif 000020
【図１９】
2013168461.tif 000021
【図２０】
2013168461.tif 000022
【図２１】
2013168461.tif 000023
【図２２】
2013168461.tif 000024
【手続補正書】
【提出日】平成26年5月26日(2014.5.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
アプリケーション管理部２１において、認証鍵記憶部２２は認証鍵２３を記憶している。
認証鍵２３は、チャレンジ・レスポンス方式や鍵付メッセージ認証コードなど認証方式に対応した共通鍵アルゴリズムの鍵や公開鍵アルゴリズムの公開鍵・秘密鍵である。
共通鍵アルゴリズムが用いられている場合は、認証鍵記憶部２２が記憶している認証鍵２３は、認証部７の認証情報検証部１４が記憶している認証鍵２７と同じである。
公開鍵アルゴリズムが用いられている場合は、認証鍵記憶部２２が記憶している認証鍵２３は、認証部７の認証情報検証部１４が記憶している認証鍵２７に対応する鍵である。
このように、認証鍵記憶部２２は、認証部７の認証情報検証部１４と認証鍵を共有している。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
その後、認証部７では、暗号部２９が暗号鍵２８を用いてアクセス応答を暗号化（Ｓ３１４）する。
そして、第二の通信部１１が、暗号化されたアクセス応答をアプリケーション管理部２１に送信する（Ｓ３０９）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
この場合は、認証情報生成部２４が認証情報の生成と暗号化・復号を行うことになる。
また、暗号部２６を、アプリケーション管理部２１内ではなく、仮想実行環境５２内に設け、仮想実行環境５２内にある暗号部を用いてもよい。
同様に、暗号部２９を、認証部７内ではなく、ＯＳ５１内に設け、ＯＳ５１内の暗号部を用いてもよい。
また、アプリケーション管理部２１の認証情報生成部２４は、仮想実行環境５２にある暗号部を用いて認証情報を生成するようにしてもよい。
同様に、認証部７の認証情報検証部１４は、ＯＳ５１の暗号部を用いて認証情報を検証するようにしてもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１１３
【補正方法】変更
【補正の内容】
【０１１３】
アプリケーション登録部３にあるアプリケーション５が動作して、保護対象リソース２へのアクセスを行う際、まず、第一の通信部８から保護対象リソース２の利用時に使用される第二の認証情報の提供を要求する第二の認証情報要求をアプリケーション管理部２１に送信する（Ｓ６００）。
第二の認証情報に依存するが、アプリケーション５は、後に認証部７へ送信するアクセス要求命令や送信データ、もしくはその一部をアプリケーション管理部２１に送信してもよい。
なお、アプリケーション５からアプリケーション管理部２１への通信は、例えば、アプリケーション５がインストールされた際に使用された電子証明書とアプリケーション管理部２１がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
アプリケーション管理部２１では、第一の通信部９が、アプリケーション５からの第二の認証情報要求を受信（Ｓ６０１）する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
また、アプリケーション管理部２１の第一の認証情報生成部７０は、実施の形態３での仮想実行環境にある暗号部を用いて第一の認証情報を生成するようにしてもよい。
同様に、認証部７の第一の認証情報検証部７２や第二の認証情報検証部８５は、ＯＳの暗号部を用いて第一の認証情報の検証や第二の認証情報の検証をするようにしてもよい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１４８
【補正方法】変更
【補正の内容】
【０１４８】
認証部７には、アクセス要求を送信したアプリケーション管理部２１に応じてリソース＿Ａとリソース＿Ｂへのアクセスを制御するアクセス制御部９１を有している。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１５７
【補正方法】変更
【補正の内容】
【０１５７】
その後、認証部７では、暗号部２９が暗号鍵２８を用いてアクセス応答を暗号化（Ｓ３１４）する。
そして、第二の通信部１１が、暗号化されたアクセス応答をアプリケーション管理部２１に送信する（Ｓ３０９）。
アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１７３
【補正方法】変更
【補正の内容】
【０１７３】
動作は、実施の形態３で述べた図８及び図９の処理フローにおいて、アプリケーション５とアプリケーション管理部２１の動作を第一のアプリケーションプログラム実行装置１ａが行い、リソース２と認証部７の動作を第二のアプリケーションプログラム実行装置１ｂが行う点が異なり、他の処理フローは同じであるので、説明を省略する。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１６
【補正方法】変更
【補正の内容】
【請求項１６】
前記アプリケーション実行装置は、
２つ以上のアプリケーションプログラムが実装されており、
２つ以上のアプリケーションプログラム管理部を有し、
各アプリケーションプログラム管理部は、前記２つ以上のアプリケーションプログラムのいずれかに対応し、対応するアプリケーションプログラムによるリソースの利用を管理することを特徴とする請求項１〜１５のいずれかに記載のアプリケーションプログラム実行装置。
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2013168461.tif 000025
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2013168461.tif 000026
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2013168461.tif 000027
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2013168461.tif 000028
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2013168461.tif 000029
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2013168461.tif 000030
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2013168461.tif 000031
【国際調査報告】
2013168461.tif 000032
2013168461.tif 000033
2013168461.tif 000034
2013168461.tif 000035