情報処理装置、プログラム、および情報処理システム
【課題】アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することが可能な情報処理装置、プログラム、および情報処理システムを提供する。
【解決手段】ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部とを備える情報処理装置が提供される。
【解決手段】ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部とを備える情報処理装置が提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
近年、耐タンパ性を有するICチップ(以下、「セキュアチップ」という。)を備えた携帯電話などの情報処理装置が普及している。ユーザは、このような情報処理装置を、例えばリーダ/ライタにかざすだけでデータ通信を行うことができるので、非常に便利である。例えば、この情報処理装置を電子マネーシステムに適用することで、ユーザは、店舗等において、情報処理装置をリーダ/ライタにかざすだけで支払いを即座に完了することができる。
【0003】
また、上記の電子マネーシステムを使用する際に、ユーザは、情報処理装置内にインストールされたアプリケーションを起動し、表示画面上で使用履歴や残額などを確認することができる。このように、情報処理装置の中には様々なアプリケーションを取り入れられる。
【0004】
上述したセキュアチップを備えた情報処理装置に係る様々な技術が開発されている。特許文献1では、リーダ/ライタが情報処理装置と通信可能とするアクセス鍵を管理することにより、サービス、アクセス鍵等が増加しても迅速に、セキュアに通信することができる技術が開示されている。また、特許文献2では、リーダ/ライタが1または2種類の認証手段を組み合わせて情報処理装置の認証を行い、セキュアチップに対して通信処理を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−222787号公報
【特許文献2】特開2006−246015号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上述した情報処理装置にインストールされ得るアプリケーションの中には、セキュアチップに不正にアクセスするものがある。このため、情報処理装置では、そのような不正なアクセスを防止する必要がある。不正なアクセスの具体例としては、ユーザが気付かない内に、不正に私用履歴などを閲覧されること等が挙げられる。
【0007】
上述した不正なアクセスを防止するために、情報処理装置では、システム運営事業者がアプリケーションマネージャの仕様を独自に変更し、独自変更を実施したシステム運営事業者が管理するシステム上でのみ利用することで、セキュアチップへのアクセス制御を行っていた。
【0008】
しかしながら、統一仕様に準拠したアプリケーションマネージャ、および周辺システムを複数のシステム運営事業者が共用する場合、各システム運営事業者が独自に仕様を変更するとシステムの整合性が損なわれるため、アプリケーションマネージャの仕様を変更することはできない。このため、従来のアクセス制御方式が採用できないという問題があった。また、セキュアチップへのアクセス制御のために、アプリケーションマネージャの仕様を、アプリケーションに応じてその都度変更することは煩わしいという問題もあった。
【0009】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することが可能な、新規かつ改良された情報処理装置、プログラム、および情報処理システムを提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、を備える情報処理装置が提供される。
【0011】
係る構成により、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【0012】
また、第1の秘密鍵および第1の公開鍵を有する第1の鍵ペアのうちの上記第1の公開鍵を有する検証部をさらに備え、上記アクセス権限情報は、上記第1の鍵ペアのうちの上記第1の秘密鍵を用いた第1のデジタル署名を含み、上記認証情報は、上記第1の鍵ペアのうちの上記第1の秘密鍵を用いた第2のデジタル署名を含み、上記検証部は、上記アクセス権限情報に含まれる上記第1のデジタル署名の検証を行い、また、上記認証情報に含まれる前記第2のデジタル署名の検証を行ってもよい。
【0013】
また、上記取得部は、上記アプリケーションから上記アプリケーションのバイナリデータを取得し、上記認証情報は、第2の秘密鍵および第2の公開鍵を有する第2の鍵ペアのうちの上記第2の秘密鍵を用いた上記アプリケーションの署名値と、上記第2の鍵ペアのうちの上記第2の公開鍵とを含み、上記認証部は、上記取得部が取得した上記アプリケーションのバイナリデータと、上記認証情報に含まれる上記アプリケーションの署名値を上記認証情報に含まれる上記第2の鍵ペアのうちの上記第2の公開鍵を用いて復号化した復号化データとを比較することにより、上記アプリケーションの認証を行ってもよい。
【0014】
また、上記アプリケーションは、第3の秘密鍵および第3の公開鍵を有する第3の鍵ペアのうちの上記第3の公開鍵と、上記第3の鍵ペアのうちの上記第3の秘密鍵を用いた第3のデジタル署名とを有し、上記取得部は、上記アプリケーションから上記第3の鍵ペアのうちの上記第3の公開鍵を取得し、上記認証情報は、上記第3の鍵ペアのうちの上記第3の公開鍵を含み、上記認証部は、上記取得部が取得した上記第3の鍵ペアのうちの上記第3の公開鍵と、上記認証情報に含まれる上記第3の鍵ペアのうちの上記第3の公開鍵とを比較することにより、上記アプリケーションの認証を行ってもよい。
【0015】
また、上記認証部により認証された上記アプリケーションが有する上記アクセス権限情報に含まれる上記ICチップへのアクセス用コマンドの情報を記憶する記憶部をさらに備え、上記制御部は、上記アプリケーションからの上記ICチップへのアクセス用コマンドが、上記記憶部に記憶された上記アクセス用コマンドの情報に含まれるときに、上記アプリケーションによる上記ICチップへのアクセスを許可し、上記アプリケーションからの上記ICチップへのアクセス用コマンドが、上記記憶部に記憶された上記アクセス用コマンドの情報に含まれないときに、上記アプリケーションによる上記ICチップへのアクセスを制限してもよい。
【0016】
また、上記記憶部は、上記認証部により認証された上記アプリケーションが有する上記アクセス権限情報に含まれる上記ICチップのアクセス可能領域の情報をさらに記憶し、上記制御部は、上記記憶部に記憶された上記アクセス可能領域の情報に基づいて、上記アプリケーションによる上記ICチップへのアクセス領域を制限してもよい。
【0017】
また、上記取得部が取得した上記認証情報を保持する保持部をさらに備え、上記認証部は、上記保持部が保持する上記認証情報に基づいて、上記アプリケーションの認証を行ってもよい。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、として機能させるためのプログラムが提供される。
【0019】
係るプログラムを用いることにより、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【0020】
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置と、上記情報処理装置と通信可能な外部サーバと、を備え、上記情報処理装置は、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を上記外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、を備える情報処理システムが提供される。
【0021】
係るシステムを用いることにより、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【発明の効果】
【0022】
以上説明したように本発明によれば、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【図面の簡単な説明】
【0023】
【図1】従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御を説明するための説明図である。
【図2】本発明の第1の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【図3】図2におけるクライアントの機能構成を説明するための説明図である。
【図4】本第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【図5】本第1の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。
【図6】図5におけるステップS102で実行されるアクセス権限情報認証処理のフローチャートである。
【図7】図5におけるステップS106で実行されるアプリケーション認証処理のフローチャートである。
【図8】図5におけるステップS109で実行されるコマンド実行制御処理のフローチャートである。
【図9】アクセス権限情報の内容を説明するための説明図である。
【図10】アクセス権限情報の内容を説明するための説明図である。
【図11】認証情報の内容を説明するための説明図である。
【図12】認証情報の内容を説明するための説明図である。
【図13】本発明の第2の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【図14】本第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【図15】本第2の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。
【図16】図15におけるステップS808で実行されるアプリケーション認証処理のフローチャートである。
【図17】認証情報の内容を説明するための説明図である。
【図18】認証情報の内容を説明するための説明図である。
【発明を実施するための形態】
【0024】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0025】
なお、説明は以下の順序で行うものとする。
1.従来のアクセス制御
2.本発明の第1の実施の形態に係る情報処理システム
3.本発明の第1の実施の形態に係るアクセス制御のための準備処理
4.本発明の第1の実施の形態に係るアクセス制御処理
5.本発明の第2の実施の形態に係る情報処理システム
6.本発明の第2の実施の形態に係るアクセス制御のための準備処理
7.本発明の第2の実施の形態に係るアクセス制御処理
【0026】
[従来のアクセス制御]
本発明の実施の形態に係る情報処理システムについて説明する前に、まず、従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御について説明する。図1は、従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御を説明するための説明図である。
【0027】
図1において、従来の情報処理装置としての携帯電話などのクライアント10は、アプリケーション11、アプリケーション12、制御モジュール13、API(Application Program Interface)14、アプリケーションマネージャ15およびセキュアチップ16を備える。アプリケーション11は、セキュアチップ16へのアクセス権限を有していない。アプリケーション12は、セキュアチップ16へのアクセス権限を有している。
【0028】
クライアント10では、アプリケーション12がセキュアチップ16へのアクセスをAPI14を介して制御モジュール13に要求すると、アプリケーションマネージャ15はアクセスを要求したアプリケーション12がアクセス権限を有するか否かを判定する。アプリケーション12は、セキュアチップ16へのアクセス権限を有するため、アプリケーションマネージャ15によりアプリケーション12によるセキュアチップ16へのアクセスが許可される。これにより、制御モジュール13はアプリケーション12から要求されたセキュアチップ16へのアクセス用コマンドをセキュアチップ16に対して実行することができる。
【0029】
一方、アプリケーション11がセキュアチップ16へのアクセスをAPI14を介して制御モジュール13に要求すると、アプリケーション11は、セキュアチップ16へのアクセス権限を有していないため、セキュアチップ16へのアクセスが許可されない。このため、制御モジュール13はアプリケーション11から要求されたセキュアチップ16へのアクセス用コマンドをセキュアチップ16に対して実行しない。これにより、アクセス権限を有していないアプリケーション11によるセキュアチップ16への不正なアクセスを防止することができる。なお、クライアント10は、インストールされたアプリケーションが制御モジュール14を経由しないでセキュアチップ16へアクセスすることをブロックする機能を有している。
【0030】
ところで、従来のクライアント10では、システム運営事業者がアプリケーションマネージャ15の仕様を独自に変更し、独自変更を実施したシステム運営事業者が管理するシステム上でのみ利用することで、セキュアチップ16へのアクセス制御を行っていた。例えば、携帯電話などのクライアント10内で動作するJavaアプリケーションにおいては、マニフェストファイルおよびJAD(Java Application Descriptor)に対してセキュアチップ16へのアクセス用属性を追加する。そして、その内容をアプリケーションマネージャ15の一例としてのJAM(Java Application Manager)が解釈できるようにJAMの統一仕様に対して、仕様を独自に変更し、その独自仕様を、仕様を変更したシステム運営事業者が管理するシステムでのみ適用していた。
【0031】
しかしながら、統一仕様に準拠したアプリケーションマネージャ、および周辺システムを複数のシステム運営事業者が共用する場合、各システム運営事業者が独自に仕様を変更するとシステムの整合性が損なわれるため、アプリケーションマネージャの仕様を変更することはできない。このため、従来のアクセス制御方式が採用できず、アプリケーションによるセキュアチップ16への不正なアクセスを防止することができない。
【0032】
そこで、後述する本発明の実施の形態に係る情報処理システムでは、後述するアクセス制御のための準備処理、およびアクセス制御処理を実行する。これにより、アプリケーションマネージャ15の仕様を変更することなく、アプリケーションによるセキュアチップ16への不正なアクセスを防止することができる。
【0033】
[本発明の第1の実施の形態に係る情報処理システム]
次に、本発明の第1の実施の形態に係る情報処理システムについて説明する。図2は、本発明の第1の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【0034】
図2において、本発明の情報処理システムの一例としての情報処理システム1000は、携帯電話などのクライアント100、イシュアサーバ200、アプリケーション提供サーバ300および認証サーバ400を備える。なお、情報処理システム1000は、クライアント100の代わりにPCなどのクライアント150を備えてもよい。クライアント100,150は、本発明の情報処理装置の一例である。これらクライアント100,150、サーバ200,300,400はそれぞれ通信網500に接続されている。
【0035】
クライアント100は、アプリケーション110、制御モジュール120およびセキュアチップ130を備える。セキュアチップ130は、耐タンパ性が優れたICチップである。セキュアチップ130は、例えばリーダ/ライタ(図示せず)と非接触通信を行うための非接触通信デバイス(図示せず)を備え、リーダ/ライタと非接触方式で情報を通信する。また、セキュアチップ130は、記憶装置(図示せず)を備え、非接触方式で通信する情報を記憶する。なお、セキュアチップ130の記憶装置は、非接触方式で通信する情報以外の情報も記憶することができる。アプリケーション110は、セキュアチップ130の記憶装置に記憶された情報を用いて所定の処理を行う。また、アプリケーション110は、後述する図9および図10のアクセス権限情報112を有する。制御モジュール120は、セキュアチップ130の制御を行う。例えば、制御モジュール120は、後述するようにアプリケーション110によるセキュアチップ130へのアクセス制御を行う。
【0036】
クライアント150は、アプリケーション160および制御モジュール170を備え、制御モジュール170は外部のセキュアチップ180の制御を行う。なお、アプリケーション160、制御モジュール170、セキュアチップ180はそれぞれ、アプリケーション110、制御モジュール120、セキュアチップ130と同様の機能構成を有する。また、アプリケーション160は、アクセス権限情報112と同様のアクセス権限情報162を有する。
【0037】
アプリケーション提供サーバ300は、例えば、アプリケーション110を作成する。また、アプリケーション提供サーバ300は、セキュアチップ130へアクセスするアプリケーション110を作成する場合、イシュアサーバ200へセキュアチップ130へのアクセスを申請する。イシュアサーバ200から後述するアクセス権限情報112が発行されると、アプリケーション提供サーバ300は、発行されたアクセス権限情報112をアプリケーション110に埋め込む。また、アプリケーション提供サーバ300は、後述する認証情報402を生成するための情報をイシュアサーバ200へ送信する。アプリケーション提供サーバ300は、クライアント100からのアプリケーション110の提供依頼があると、アプリケーション110をクライアント100へ提供する。
【0038】
イシュアサーバ200は、例えば、アプリケーション提供サーバ300からのセキュアチップ130へのアクセス申請を受け付けた後に、アクセス権限情報112を生成して、生成したアクセス権限情報112をアプリケーション提供サーバ300へ発行する。また、イシュアサーバ200は、アプリケーション提供サーバ300から認証情報402を生成するための情報を受信した後に、認証情報402を生成して、生成した認証情報402を認証サーバ400に送信する。
【0039】
認証サーバ400は、認証情報402を有する。認証サーバ400は、本発明の外部サーバの一例である。認証サーバ400は、例えば、後述するようにクライアント100の制御モジュール120からの認証情報402の要求を受け付けた後に、認証情報402を制御モジュール120へ送信する。
【0040】
情報処理システム1000では、後述する図4のアクセス制御のための準備処理および図5のアクセス制御処理を実行することにより、アプリケーションマネージャ(図示せず)などの仕様を変更することなく、アプリケーションによるセキュアチップ130への不正なアクセスを防止することができる。以下、情報処理システム1000がクライアント100、イシュアサーバ200、アプリケーション提供サーバ300および認証サーバ400から構成される場合について説明する。
【0041】
次に、図2におけるクライアント100の機能構成について説明する。図3は、図2におけるクライアント100の機能構成を説明するための説明図である。
【0042】
図3において、クライアント100は、アプリケーション110、制御モジュール120およびセキュアチップ130を備える。制御モジュール120は、受付部121、取得部122、認証部123、制御部124、検証部125、記憶部126および保持部127を備える。
【0043】
受付部121は、セキュアチップ130にアクセスするためのアクセス権限情報112を有するアプリケーション110から、セキュアチップ130へのアクセス要求を受け付ける。取得部122は、受付部121が受け付けたアクセス要求に含まれるアクセス権限情報112に基づいて、アプリケーション110の認証を行うための認証情報402を認証サーバ400から取得する。認証部123は、取得部122が取得した認証情報402に基づいて、アプリケーション110を認証する。制御部124は、認証部123による認証結果に基づいて、アプリケーション110によるセキュアチップ130へのアクセスを制御する。
【0044】
検証部125は、後述するようにイシュアサーバ200が生成した鍵ペアのうちの公開鍵を有し、アクセス権限情報112に含まれるデジタル署名の検証を行い、また、認証情報402に含まれるデジタル署名の検証を行う。記憶部126は、認証部123により認証されたアプリケーション110が有するアクセス権限情報112に含まれるセキュアチップ130へのアクセス用コマンドの情報およびアクセス可能領域の情報を記憶する。保持部127は、取得部122が取得した認証情報402を保持する。
【0045】
[本発明の第1の実施の形態に係るアクセス制御のための準備処理]
以下、本発明の第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理について説明する。図4は、本発明の第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【0046】
図4において、まず、イシュアサーバ200は、本発明の第1の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成する(ステップS201)。次いで、イシュアサーバ200は、生成した鍵ペアのうち公開鍵(図示せず)をクライアント100の制御モジュール120へ埋め込む(ステップS202)。
【0047】
次いで、アプリケーション提供サーバ300は、作成するアプリケーション110がクライアント100のセキュアチップ130へアクセス可能となるように、イシュアサーバ200へセキュアチップ130へのアクセスを申請する(ステップS301)。具体的には、アプリケーション提供サーバ300は、イシュアサーバ200へ実行したいチップアクセス用コマンドの一覧とアクセスしたいチップ領域の一覧とを送信する。
【0048】
次いで、セキュアチップ130へのアクセス申請を受け付けたイシュアサーバ200は、アクセス申請内容に基づいて、図9および図10に示すアクセス権限情報112を生成する(ステップS203)。図9および図10に示すように、アクセス権限情報112は、アプリケーション識別子113と、実行可能コマンド一覧114と、アクセス可能領域一覧115と、署名データ116とから構成される。アプリケーション識別子113は、アプリケーション110を識別するための情報である。実行可能コマンド一覧114は、アプリケーション110が実行可能なチップアクセス用コマンドの一覧である。アクセス可能領域一覧115は、アプリケーション110がアクセス可能なチップ領域の一覧である。署名データ116は、アプリケーション識別子113、実行可能コマンド一覧114およびアクセス可能領域一覧115に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。署名データ116は、本発明の第1のデジタル署名の一例である。そして、イシュアサーバ200は、生成したアクセス権限情報112をアプリケーション提供サーバ300へ発行する(ステップS204)。
【0049】
次いで、アプリケーション提供サーバ300は、アプリケーション110を作成して(ステップS302)、作成したアプリケーション110にステップS204で発行されたアクセス権限情報112を埋め込む(ステップS303)。アプリケーション提供サーバ300は、後述するようにアプリケーション110が制御モジュール120へセキュアチップ130へのアクセスを要求する際に、アプリケーション110が制御モジュール120へアクセス権限情報112を渡すようにする。
【0050】
次いで、アプリケーション提供サーバ300は、本発明の第2の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成して(ステップS304)、図11に示すように、生成した鍵ペアのうち秘密鍵302を用いてアプリケーション110のアプリケーション署名値404を生成する(ステップS305)。そして、アプリケーション提供サーバ300は、図11に示すように、ステップS305で生成したアプリケーション署名値404と、ステップS304で生成した鍵ペアのうち公開鍵304とをイシュアサーバ200に提供する(ステップS306)。
【0051】
次いで、イシュアサーバ200は、提供されたアプリケーション署名値404と、公開鍵304とに基づいて、図11および図12に示す認証情報402を生成する(ステップS205)。図11および図12に示すように、認証情報402は、アプリケーション識別子403と、アプリケーション署名値404と、署名検証用公開鍵405と、署名データ406とから構成される。アプリケーション識別子403は、アプリケーション110を識別するための情報である。アプリケーション署名値404は、アプリケーション110への署名値である。署名検証用公開鍵405は、アプリケーション110へのデジタル署名に利用した秘密鍵302に対応する公開鍵304である。署名データ406は、アプリケーション識別子403、アプリケーション署名値404および署名検証用公開鍵405に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。署名データ406は、本発明の第2のデジタル署名の一例である。そして、イシュアサーバ200は、生成した認証情報402を認証サーバ400へ送信して(ステップS206)、認証サーバ400は受信した認証情報402を登録して、本処理を終了する。
【0052】
[本発明の第1の実施の形態に係るアクセス制御処理]
以下、本発明の第1の実施の形態に係る情報処理システムが実行するアクセス制御処理について説明する。図5は、本発明の第1の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。本処理は、図4のアクセス制御のための準備処理の後に実行される。
【0053】
図5において、まず、アプリケーション110は、制御モジュール120へセキュアチップ130へのアクセスを要求する(ステップS101)。このとき、アプリケーション110は、埋め込まれたアクセス権限情報112を制御モジュール120へ渡す。
【0054】
次いで、セキュアチップ130へのアクセス要求を受け付けた制御モジュール120は、後述する図6のアクセス権限情報認証処理を実行して、アプリケーション110から渡されたアクセス権限情報112の正当性の認証を行う(ステップS102)。
【0055】
ステップS102のアクセス権限情報認証処理が正常に終了した場合、制御モジュール120は、アクセス権限情報112に対応する認証情報402を認証サーバ400へ要求する(ステップS103)。このとき、制御モジュール120は、アクセス権限情報112におけるアプリケーション識別子113を認証サーバ400へ渡す。
【0056】
次いで、認証情報402の要求を受け付けた認証サーバ400は、認証情報402を制御モジュール120へ送信する(ステップS401)。具体的には、認証サーバ400は、制御モジュール120から渡されたアプリケーション識別子113と同一のアプリケーション識別子403を有する認証情報402を制御モジュール120へ送信する。
次いで、認証情報402を受信した制御モジュール120は、アプリケーション110へアプリケーション110のバイナリデータを要求する(ステップS104)。次いで、アプリケーション110のバイナリデータの要求を受け付けたアプリケーション110は、アプリケーション110のバイナリデータを制御モジュール120へ送信する(ステップS105)。
【0057】
次いで、認証情報402を受信した制御モジュール120は、後述する図7のアプリケーション認証処理を実行して、セキュアチップ130へのアクセスを要求するアプリケーション110のセキュアチップ130へのアクセス権限の正当性の認証を行う(ステップS106)。
【0058】
ステップS106のアプリケーション認証処理が正常に終了した場合、制御モジュール120は、アクセス権限情報112における実行可能コマンド一覧114およびアクセス可能領域一覧115を記憶装置(図示せず)に記憶する(ステップS107)。
【0059】
そして、アプリケーション110は、チップアクセス用コマンドの実行を制御モジュール120へ要求する(ステップS108)。チップアクセス用コマンドの実行要求を受け付けた制御モジュール120は、後述する図8のコマンド実行制御処理を実行して、要求されたチップアクセス用コマンドの実行の可否を判定する(ステップS109)。
【0060】
ステップS109のコマンド実行制御処理が正常に終了した場合、制御モジュール120は、セキュアチップ130へ要求されたチップアクセス用コマンドを実行して(ステップS110)、本処理を終了する。
【0061】
図6は、図5におけるステップS102で実行されるアクセス権限情報認証処理のフローチャートである。
【0062】
図6において、まず、制御モジュール120は、アプリケーション110から渡されたアクセス権限情報112のフォーマットが正当であるか否かを判別する(ステップS501)。具体的には、制御モジュール120は、アクセス権限情報112のフォーマットが、図10に示すような、図4におけるステップS203でのイシュアサーバ200によるアクセス権限情報112の生成において規定したフォーマットであるか否かを判別する。
【0063】
アクセス権限情報112のフォーマットが正当であるときは(ステップS501でYES)、制御モジュール120は、図4におけるステップS202で埋め込まれた公開鍵を用いてアクセス権限情報112における署名データ116の検証を行う。そして、制御モジュール120は、署名データ116が正当であるか否かを判別する(ステップS502)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ116を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子113、実行可能コマンド一覧114およびアクセス可能領域一覧115とが一致しているか否かを判別して、署名データ116が正当であるか否かを判別する。
【0064】
署名データ116が正当であるときは(ステップS502でYES)、制御モジュール120は、アクセス権限情報112は正当であると認証して、本処理を正常に終了する。アクセス権限情報112のフォーマットが不当であるとき(ステップS501でNO)、または署名データ116が不当であるときは(ステップS502でNO)、制御モジュール120は、アクセス権限情報112は不当であるとして、本処理をエラー終了する。
【0065】
図6のアクセス権限情報認証処理によれば、アクセス権限情報112のフォーマットまたは署名データ116が不当であるとき、すなわち、アクセス権限情報112がイシュアサーバ200から正当に発行されたものでないときは、本処理をエラー終了する。これにより、イシュアサーバ200から正当に発行されたものではないアクセス権限情報112を有するアプリケーション(図示せず)によるセキュアチップ130へのアクセスを禁止することができる。
【0066】
図7は、図5におけるステップS106で実行されるアプリケーション認証処理のフローチャートである。
【0067】
図7において、まず、制御モジュール120は、受信した認証情報402のフォーマットが正当であるか否かを判別する(ステップS601)。具体的には、制御モジュール120は、認証情報402のフォーマットが、図12に示すような、図4におけるステップS205でのイシュアサーバ200による認証情報402の生成において規定したフォーマットであるか否かを判別する。
認証情報402のフォーマットが正当であるときは(ステップS601でYES)、制御モジュール120は、図4におけるステップS202で埋め込まれた公開鍵を用いて認証情報402における署名データ406の検証を行う。そして、制御モジュール120は、署名データ406が正当であるか否かを判別する(ステップS602)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ406を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子403、アプリケーション署名値404および署名検証用公開鍵405とが一致しているか否かを判別して、署名データ406が正当であるか否かを判別する。
認証情報402のフォーマットが不当であるとき(ステップS601でNO)、または署名データ406が不当であるときは(ステップS602でNO)、制御モジュール120は、認証情報402は不当であるとして、本処理をエラー終了する。
署名データ406が正当であるときは(ステップS602でYES)、制御モジュール120は、受信した認証情報402からアプリケーション署名値404および署名検証用公開鍵405を抽出する(ステップS603)。
【0068】
次いで、制御モジュール120は、抽出したアプリケーション署名値404を署名検証用公開鍵405を用いて復号化する(ステップS604)。そして、制御モジュール120は、認証情報402から抽出したアプリケーション署名値404の復号化データと、図5のステップS105で受信したアプリケーション110のバイナリデータとが一致するか否かを判別する(ステップS605)。なお、アプリケーション署名値404の復号化データとは、アプリケーション110のバイナリデータに相当する。
【0069】
アプリケーション署名値404の復号化データがアプリケーション110のバイナリデータと一致するときは(ステップS605でYES)、制御モジュール120は、アプリケーション110は正当であると認証して、本処理を正常に終了する。アプリケーション署名値404の復号化データがアプリケーション110のバイナリデータと一致しないときは(ステップS605でNO)、制御モジュール120は、アプリケーション110は不当であるとして、本処理をエラー終了する。
【0070】
図7のアプリケーション認証処理によれば、認証情報402から抽出したアプリケーション署名値404の復号化データと、アプリケーション110から受信したアプリケーション110のバイナリデータとが一致しないとき、すなわち、アクセス権限情報112を不当なアプリケーション(図示せず)が有しているときは、本処理をエラー終了する。これにより、アクセス権限情報112を有する不当なアプリケーション(図示せず)によるセキュアチップ130へのアクセスを禁止することができる。
上述した図7のアプリケーション認証処理では、クライアント100と認証サーバ400との間において、予め安全な通信路が用意されている場合は、認証情報402の改竄の虞がないため、認証情報402の正当性の認証は行わなくてもよい。すなわち、図7のアプリケーション認証処理では、ステップS601およびステップS602の処理を実行することなく、ステップS603の処理から実行する。これにより、アプリケーション認証処理の工程数を削減することができる。
【0071】
図8は、図5におけるステップS109で実行されるコマンド実行制御処理のフローチャートである。
【0072】
図8において、まず、制御モジュール120は、記憶装置(図示せず)に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されているか否かを判別する(ステップS701)。
【0073】
記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されているときは(ステップS701でYES)、制御モジュール120は、実行可能コマンド一覧114内に図5のステップS108で要求されたチップアクセス用コマンドがあるか否かを判別する(ステップS702)。記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されていないときは(ステップS701でNO)、要求されたチップアクセス用コマンドは実行不可能であるとして、本処理をエラー終了する。
【0074】
実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがあるときは(ステップS702でYES)、制御モジュール120は、アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域があるか否かを判別する(ステップS703)。実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがないときは(ステップS702でNO)、制御モジュール120は、要求されたチップアクセス用コマンドを実行不可能であるとして、本処理をエラー終了する。
【0075】
アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域があるときは(ステップS703でYES)、制御モジュール120は、要求されたチップアクセス用コマンドは実行可能であるとして、本処理を正常に終了する。アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域がないときは(ステップS703でNO)、制御モジュール120は、要求されたチップアクセス用コマンドを実行不可能であるとして、本処理をエラー終了する。
【0076】
図8のコマンド実行制御処理によれば、記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されていないとき、すなわち、セキュアチップ130へのアクセスを制御モジュール120に要求して、アクセス権限情報の認証およびアプリケーションの認証を行っていないアプリケーション(図示せず)によるチップアクセス用コマンドの実行要求であるときは、本処理をエラー終了する。これにより、制御モジュール120においてアクセス権限情報の認証およびアプリケーションの認証を行っていないアプリケーション(図示せず)によるセキュアチップ130へのアクセスを制止することができる。
【0077】
また、実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがないとき、すなわち、実行を許可されていないチップアクセス用コマンドの実行要求をアプリケーション110が行うときは、本処理をエラー終了する。これにより、アプリケーション110による実行を許可されていないチップアクセス用コマンドの実行を制限することができる。
【0078】
また、アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域がないとき、すなわち、アクセスが許可された領域を超えたチップアクセス用コマンドの実行要求をアプリケーション110が行うときは、本処理をエラー終了する。これにより、アプリケーション110によるアクセスが許可された領域を超えたチップアクセス用コマンドの実行を制限することができる。
【0079】
上述したように、図5のアクセス制御処理によれば、上述した図6のアクセス権限情報認証処理、図7のアプリケーション認証処理および図8のコマンド実行制御処理を実行することにより、アプリケーションからのセキュアチップ130への不正なアクセスを防止することができる。また、制御モジュール120は、アプリケーション110が有するアクセス権限情報112および認証サーバ400から取得する認証情報402に基づいて、アプリケーション110によるセキュアチップ130へのアクセスを制御する。したがって、アクセス制御のために、インストールされたアプリケーションの管理等を行うアプリケーションマネージャ(図示せず)などの仕様を変更する必要はない。これにより、アプリケーションマネージャ(図示せず)の仕様を変更することなく、アプリケーションからのセキュアチップ130への不正なアクセスを防止することができる。
【0080】
上述した図5のアクセス制御処理では、制御モジュール120は、ステップS401において認証サーバ400から送信された認証情報402を受信した後に、その認証情報402を記憶装置(図示せず)において保持してもよい。そして、制御モジュール120は、ステップS103においてアクセス権限情報112に対応する認証情報402が記憶装置に保持されている場合は、認証情報402を認証サーバ400へ要求することなく、記憶装置に保持されている認証情報402を用いてステップS106のアプリケーション認証処理を行う。これにより、アクセス制御処理の工程数を削減することができる。
【0081】
[本発明の第2の実施の形態に係る情報処理システム]
次に、本発明の第2の実施の形態に係る情報処理システムについて説明する。本実施の形態に係る情報処理システムは、クライアントにインストールされるアプリケーションがデジタル署名および公開鍵を有する点などが第1の実施の形態と異なるのみであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。図13は、本発明の第2の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【0082】
図13において、本発明の情報処理システムの一例としての情報処理システム2000は、携帯電話などのクライアント600、イシュアサーバ200、アプリケーション提供サーバ300、認証サーバ410を備える。クライアント600は、本発明の情報処理装置の一例である。これらクライアント600、サーバ200,300,410はそれぞれ通信網500に接続されている。
【0083】
クライアント600は、アプリケーション610、制御モジュール620、セキュアチップ630、アプリケーションマネージャ640を備える。セキュアチップ630は、上述したセキュアチップ130と同様の構成を有する。アプリケーション610は、セキュアチップ630の記憶装置に記憶された情報を用いて所定の処理を行う。アプリケーション610は、アクセス権限情報612を有する。アクセス権限情報612は、上述したアクセス権限情報112と同様の構成を有する。また、アプリケーション610は、後述するアプリケーション提供サーバ300において生成された鍵ペアのうちの秘密鍵(図示せず)を用いたアプリケーション610のデジタル署名614と、その鍵ペアのうちの公開鍵618とを有する。デジタル署名614は、本発明の第3のデジタル署名の一例である。アプリケーションマネージャ640は、アプリケーション610のクライアント600へのインストール時に、アプリケーション610が有する公開鍵618を用いてデジタル署名614の検証を行い、アプリケーション610の認証を行う。制御モジュール620は、セキュアチップ630の制御を行う。例えば、制御モジュール620は、後述するようにアプリケーション610のセキュアチップ630へのアクセス制御を行う。
【0084】
アプリケーション提供サーバ300は、例えば、アプリケーション610を作成する。また、アプリケーション提供サーバ300は、セキュアチップ630へアクセスするアプリケーション610を作成する場合、イシュアサーバ200へセキュアチップ630へのアクセスを申請する。イシュアサーバ200からアクセス権限情報612が発行されると、アプリケーション提供サーバ300は、発行されたアクセス権限情報612をアプリケーション610に埋め込む。また、アプリケーション提供サーバ300は、後述する認証情報412を生成するための情報をイシュアサーバ200へ送信する。アプリケーション提供サーバ300は、クライアント600からのアプリケーション610の提供依頼があると、アプリケーション610をクライアント600へ提供する。
【0085】
イシュアサーバ200は、例えば、アプリケーション提供サーバ300からのセキュアチップ130へのアクセス申請を受け付けた後に、アクセス権限情報612を生成して、生成したアクセス権限情報612をアプリケーション提供サーバ300へ発行する。また、イシュアサーバ200は、アプリケーション提供サーバ300から認証情報412を生成するための情報を受信した後に、認証情報412を生成して、生成した認証情報412を認証サーバ410に送信する。
【0086】
認証サーバ410は、認証情報412を有する。認証サーバ410は、本発明の外部サーバの一例である。認証サーバ410は、例えば、後述するようにクライアント600の制御モジュール620からの認証情報412の要求を受け付けた後に、認証情報412を制御モジュール620へ送信する。
【0087】
情報処理システム2000では、後述する図14のアクセス制御のための準備処理および図15のアクセス制御処理を実行することにより、アプリケーションマネージャ640などの仕様を変更することなく、アプリケーションによるセキュアチップ630への不正なアクセスを防止することができる。
【0088】
[本発明の第2の実施の形態に係るアクセス制御のための準備処理]
以下、本発明の第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理について説明する。本実施の形態に係るアクセス制御のための準備処理は、図4におけるステップS306においてアプリケーション提供サーバ300が鍵ペアのうちの公開鍵のみをイシュアサーバ200に提供する点と、ステップS205においてイシュアサーバ200が公開鍵のみに基づいて認証情報を生成する点などが第1の実施の形態と異なるのみであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。図14は、本発明の第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【0089】
図14において、まず、イシュアサーバ200は、鍵ペアを生成する(ステップS201)。次いで、イシュアサーバ200は、生成した鍵ペアのうち公開鍵(図示せず)をクライアント100の制御モジュール120へ埋め込む(ステップS202)。次いで、アプリケーション提供サーバ300は、イシュアサーバ200へセキュアチップ130へのアクセスを申請する(ステップS301)。
【0090】
次いで、イシュアサーバ200は、アクセス申請内容に基づいて、図9および図10に示すアクセス権限情報112と同様のアクセス権限情報612を生成する(ステップS203)。そして、イシュアサーバ200は、生成したアクセス権限情報612をアプリケーション提供サーバ300へ発行する(ステップS204)。
【0091】
次いで、アプリケーション提供サーバ300は、アプリケーション610を作成して(ステップS302)、作成したアプリケーション610にステップS204で発行されたアクセス権限情報612を埋め込む(ステップS303)。
【0092】
次いで、アプリケーション提供サーバ300は、本発明の第3の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成して(ステップS304)、図17に示すように、生成した鍵ペアのうち秘密鍵616を用いてアプリケーション610にデジタル署名を付与する(ステップS305)。これにより、アプリケーション610にはデジタル署名614とステップS304で生成した鍵ペアのうち公開鍵618が付与される。そして、アプリケーション提供サーバ300は、図17に示すように、ステップS304で生成した鍵ペアのうち公開鍵618のみをイシュアサーバ200に提供する(ステップS316)。
【0093】
次いで、イシュアサーバ200は、提供された公開鍵618に基づいて、図17および図18に示す認証情報412を生成する(ステップS215)。図17および図18に示すように、認証情報412は、アプリケーション識別子413と、署名検証用公開鍵414と、署名データ415とから構成される。アプリケーション識別子413は、アプリケーション610を識別するための情報である。署名検証用公開鍵414は、アプリケーション610へのデジタル署名614に利用した秘密鍵616に対応する公開鍵618である。署名データ415は、アプリケーション識別子413および署名検証用公開鍵414に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。そして、イシュアサーバ200は、生成した認証情報412を認証サーバ410へ送信して(ステップS216)、認証サーバ410は受信した認証情報412を登録して、本処理を終了する。
【0094】
[本発明の第2の実施の形態に係るアクセス制御処理]
以下、本発明の第2の実施の形態に係る情報処理システムが実行するアクセス制御処理について説明する。図15は、本発明の第2の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。本処理は、図14のアクセス制御のための準備処理の後に実行される。
【0095】
図15において、まず、アプリケーション610は、アプリケーションマネージャ640へクライアント600へのインストールを要求する(ステップS801)。このとき、アプリケーション610は、アプリケーション610に付与されたデジタル署名614および公開鍵618をアプリケーションマネージャ640へ渡す。
【0096】
次いで、アプリケーション610のインストール要求を受け付けたアプリケーションマネージャ640は、公開鍵618を用いてデジタル署名614の検証を行う(ステップS802)。ステップS802での検証の結果、デジタル署名614が正当である場合は、クライアント600へのアプリケーション610のインストールが許可される。一方、ステップS802での検証の結果、デジタル署名614が不当である場合は、クライアント600へのアプリケーション610のインストールは許可されない。
【0097】
アプリケーション610のクライアント600へのインストールの後、アプリケーション610は、制御モジュール620へセキュアチップ630へのアクセスを要求する(ステップS803)。このとき、アプリケーション610は、埋め込まれたアクセス権限情報612を制御モジュール620へ渡す。
【0098】
次いで、セキュアチップ630へのアクセス要求を受け付けた制御モジュール620は、上述した図6のアクセス権限情報認証処理と同様のアクセス権限情報認証処理を実行して、アプリケーション610から渡されたアクセス権限情報612の正当性の認証を行う(ステップS804)。
【0099】
ステップS804のアクセス権限情報認証処理が正常に終了した場合、制御モジュール620は、アクセス権限情報612に対応する認証情報412を認証サーバ410へ要求する(ステップS805)。このとき、制御モジュール620は、アクセス権限情報612におけるアプリケーション識別子(図示せず)を認証サーバ410へ渡す。
【0100】
次いで、認証情報412の要求を受け付けた認証サーバ410は、認証情報412を制御モジュール620へ送信する。具体的には、認証サーバ410は、制御モジュール620から渡されたアプリケーション識別子(図示せず)と同一のアプリケーション識別子413を有する認証情報412を制御モジュール620へ送信する。
【0101】
次いで、認証情報402を受信した制御モジュール120は、アプリケーション610へ公開鍵618を要求する(ステップS806)。次いで、公開鍵618の要求を受け付けたアプリケーション610は、公開鍵618を制御モジュール620へ送信する(ステップS807)。
【0102】
次いで、制御モジュール620は、後述する図16のアプリケーション認証処理を実行して、セキュアチップ630へのアクセスを要求するアプリケーション610のセキュアチップ630へのアクセス権限の正当性の認証を行う(ステップS808)。
【0103】
ステップS808のアプリケーション認証処理が正常に終了した場合、制御モジュール620は、アクセス権限情報612における実行可能コマンド一覧(図示せず)およびアクセス可能領域一覧(図示せず)を記憶装置(図示せず)に記憶する(ステップS809)。
【0104】
そして、アプリケーション610は、チップアクセス用コマンドの実行を制御モジュール620へ要求する(ステップS810)。チップアクセス用コマンドの実行要求を受け付けた制御モジュール620は、上述した図8のコマンド実行制御処理と同様のコマンド実行制御処理を実行して、要求されたチップアクセス用コマンドの実行の可否を判定する(ステップS811)。
【0105】
ステップS811のコマンド実行制御処理が正常に終了した場合、制御モジュール620は、セキュアチップ630へ要求されたチップアクセス用コマンドを実行して(ステップS812)、本処理を終了する。
【0106】
図16は、図15におけるステップS808で実行されるアプリケーション認証処理のフローチャートである。
【0107】
図16において、まず、制御モジュール620は、受信した認証情報412のフォーマットが正当であるか否かを判別する(ステップS901)。具体的には、制御モジュール620は、認証情報412のフォーマットが、図18に示すような、図14におけるステップS215でのイシュアサーバ200による認証情報412の生成において規定したフォーマットであるか否かを判別する。
認証情報412のフォーマットが正当であるときは(ステップS901でYES)、制御モジュール620は、図14におけるステップS202で埋め込まれた公開鍵を用いて認証情報412における署名データ415の検証を行う。そして、制御モジュール620は、署名データ415が正当であるか否かを判別する(ステップS902)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ415を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子413および署名検証用公開鍵414とが一致しているか否かを判別して、署名データ415が正当であるか否かを判別する。
認証情報412のフォーマットが不当であるとき(ステップS901でNO)、または署名データ415が不当であるときは(ステップS902でNO)、制御モジュール620は、認証情報412は不当であるとして、本処理をエラー終了する。
署名データ415が正当であるときは(ステップS902でYES)、制御モジュール620は、受信した認証情報412から署名検証用公開鍵414を抽出する(ステップS903)。
【0108】
次いで、制御モジュール620は、認証情報412から抽出した署名検証用公開鍵414と、図15のステップS807で受信した公開鍵618とが一致するか否かを判別する(ステップS904)。
【0109】
署名検証用公開鍵414と公開鍵618とが一致するときは(ステップS904でYES)、制御モジュール620は、アプリケーション610は正当であると認証して、本処理を正常に終了する。署名検証用公開鍵414と公開鍵618とが一致しないときは(ステップS904でNO)、制御モジュール620は、アプリケーション610は不当であるとして、本処理をエラー終了する。
【0110】
図16のアプリケーション認証処理によれば、認証情報412から抽出した署名検証用公開鍵414と、図15のステップS807で受信した公開鍵618とが一致しないとき、すなわち、アクセス権限情報(図示せず)を不当なアプリケーション(図示せず)が有しているときは、本処理をエラー終了する。これにより、アクセス権限情報(図示せず)を有する不当なアプリケーション(図示せず)によるセキュアチップ630へのアクセスを禁止することができる。
上述した図16のアプリケーション認証処理では、クライアント600と認証サーバ410との間において、予め安全な通信路が用意されている場合は、認証情報412の改竄の虞がないため、認証情報412の正当性の認証は行わなくてもよい。すなわち、図16のアプリケーション認証処理では、ステップS901およびステップS902の処理を実行することなく、ステップS903の処理から実行する。これにより、アプリケーション認証処理の工程数を削減することができる。
【0111】
上述したように、図15のアクセス制御処理によれば、上述した図6のアクセス権限情報認証処理と同様の処理、図16のアプリケーション認証処理および上述した図8のコマンド実行制御処理と同様の処理を実行することにより、上述した図5のアクセス制御処理と同様の効果を奏することができる。また、ステップS808でのアプリケーション認証処理では、署名検証用公開鍵414と公開鍵618との比較のみにより、アプリケーション610の認証を行うことができるので、アプリケーション認証処理の処理速度を向上させることができる。
【0112】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0113】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0114】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW等の光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【0115】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【0116】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【0117】
以上、添付図面を参照しながら本発明の好適な実施の形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0118】
100,600 クランアント
110,610 アプリケーション
112,612 アクセス権限情報
120,620 制御モジュール
130,630 セキュアチップ
200 イシュアサーバ
300 アプリケーション提供サーバ
400,410 認証サーバ
402,412 認証情報
1000,2000 情報処理システム
【技術分野】
【0001】
本発明は、情報処理装置、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
近年、耐タンパ性を有するICチップ(以下、「セキュアチップ」という。)を備えた携帯電話などの情報処理装置が普及している。ユーザは、このような情報処理装置を、例えばリーダ/ライタにかざすだけでデータ通信を行うことができるので、非常に便利である。例えば、この情報処理装置を電子マネーシステムに適用することで、ユーザは、店舗等において、情報処理装置をリーダ/ライタにかざすだけで支払いを即座に完了することができる。
【0003】
また、上記の電子マネーシステムを使用する際に、ユーザは、情報処理装置内にインストールされたアプリケーションを起動し、表示画面上で使用履歴や残額などを確認することができる。このように、情報処理装置の中には様々なアプリケーションを取り入れられる。
【0004】
上述したセキュアチップを備えた情報処理装置に係る様々な技術が開発されている。特許文献1では、リーダ/ライタが情報処理装置と通信可能とするアクセス鍵を管理することにより、サービス、アクセス鍵等が増加しても迅速に、セキュアに通信することができる技術が開示されている。また、特許文献2では、リーダ/ライタが1または2種類の認証手段を組み合わせて情報処理装置の認証を行い、セキュアチップに対して通信処理を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−222787号公報
【特許文献2】特開2006−246015号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上述した情報処理装置にインストールされ得るアプリケーションの中には、セキュアチップに不正にアクセスするものがある。このため、情報処理装置では、そのような不正なアクセスを防止する必要がある。不正なアクセスの具体例としては、ユーザが気付かない内に、不正に私用履歴などを閲覧されること等が挙げられる。
【0007】
上述した不正なアクセスを防止するために、情報処理装置では、システム運営事業者がアプリケーションマネージャの仕様を独自に変更し、独自変更を実施したシステム運営事業者が管理するシステム上でのみ利用することで、セキュアチップへのアクセス制御を行っていた。
【0008】
しかしながら、統一仕様に準拠したアプリケーションマネージャ、および周辺システムを複数のシステム運営事業者が共用する場合、各システム運営事業者が独自に仕様を変更するとシステムの整合性が損なわれるため、アプリケーションマネージャの仕様を変更することはできない。このため、従来のアクセス制御方式が採用できないという問題があった。また、セキュアチップへのアクセス制御のために、アプリケーションマネージャの仕様を、アプリケーションに応じてその都度変更することは煩わしいという問題もあった。
【0009】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することが可能な、新規かつ改良された情報処理装置、プログラム、および情報処理システムを提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、を備える情報処理装置が提供される。
【0011】
係る構成により、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【0012】
また、第1の秘密鍵および第1の公開鍵を有する第1の鍵ペアのうちの上記第1の公開鍵を有する検証部をさらに備え、上記アクセス権限情報は、上記第1の鍵ペアのうちの上記第1の秘密鍵を用いた第1のデジタル署名を含み、上記認証情報は、上記第1の鍵ペアのうちの上記第1の秘密鍵を用いた第2のデジタル署名を含み、上記検証部は、上記アクセス権限情報に含まれる上記第1のデジタル署名の検証を行い、また、上記認証情報に含まれる前記第2のデジタル署名の検証を行ってもよい。
【0013】
また、上記取得部は、上記アプリケーションから上記アプリケーションのバイナリデータを取得し、上記認証情報は、第2の秘密鍵および第2の公開鍵を有する第2の鍵ペアのうちの上記第2の秘密鍵を用いた上記アプリケーションの署名値と、上記第2の鍵ペアのうちの上記第2の公開鍵とを含み、上記認証部は、上記取得部が取得した上記アプリケーションのバイナリデータと、上記認証情報に含まれる上記アプリケーションの署名値を上記認証情報に含まれる上記第2の鍵ペアのうちの上記第2の公開鍵を用いて復号化した復号化データとを比較することにより、上記アプリケーションの認証を行ってもよい。
【0014】
また、上記アプリケーションは、第3の秘密鍵および第3の公開鍵を有する第3の鍵ペアのうちの上記第3の公開鍵と、上記第3の鍵ペアのうちの上記第3の秘密鍵を用いた第3のデジタル署名とを有し、上記取得部は、上記アプリケーションから上記第3の鍵ペアのうちの上記第3の公開鍵を取得し、上記認証情報は、上記第3の鍵ペアのうちの上記第3の公開鍵を含み、上記認証部は、上記取得部が取得した上記第3の鍵ペアのうちの上記第3の公開鍵と、上記認証情報に含まれる上記第3の鍵ペアのうちの上記第3の公開鍵とを比較することにより、上記アプリケーションの認証を行ってもよい。
【0015】
また、上記認証部により認証された上記アプリケーションが有する上記アクセス権限情報に含まれる上記ICチップへのアクセス用コマンドの情報を記憶する記憶部をさらに備え、上記制御部は、上記アプリケーションからの上記ICチップへのアクセス用コマンドが、上記記憶部に記憶された上記アクセス用コマンドの情報に含まれるときに、上記アプリケーションによる上記ICチップへのアクセスを許可し、上記アプリケーションからの上記ICチップへのアクセス用コマンドが、上記記憶部に記憶された上記アクセス用コマンドの情報に含まれないときに、上記アプリケーションによる上記ICチップへのアクセスを制限してもよい。
【0016】
また、上記記憶部は、上記認証部により認証された上記アプリケーションが有する上記アクセス権限情報に含まれる上記ICチップのアクセス可能領域の情報をさらに記憶し、上記制御部は、上記記憶部に記憶された上記アクセス可能領域の情報に基づいて、上記アプリケーションによる上記ICチップへのアクセス領域を制限してもよい。
【0017】
また、上記取得部が取得した上記認証情報を保持する保持部をさらに備え、上記認証部は、上記保持部が保持する上記認証情報に基づいて、上記アプリケーションの認証を行ってもよい。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、として機能させるためのプログラムが提供される。
【0019】
係るプログラムを用いることにより、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【0020】
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置と、上記情報処理装置と通信可能な外部サーバと、を備え、上記情報処理装置は、ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、上記ICチップへのアクセス要求を受け付ける受付部と、上記受付部が受け付けた上記アクセス要求に含まれる上記アクセス権限情報に基づいて、上記アプリケーションの認証を行うための認証情報を上記外部サーバから取得する取得部と、上記取得部が取得した上記認証情報に基づいて、上記アプリケーションを認証する認証部と、上記認証部による認証結果に基づいて、上記アプリケーションによる上記ICチップへのアクセスを制御する制御部と、を備える情報処理システムが提供される。
【0021】
係るシステムを用いることにより、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【発明の効果】
【0022】
以上説明したように本発明によれば、アプリケーションマネージャの仕様を変更することなく、アプリケーションによるセキュアチップへの不正なアクセスを防止することができる。
【図面の簡単な説明】
【0023】
【図1】従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御を説明するための説明図である。
【図2】本発明の第1の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【図3】図2におけるクライアントの機能構成を説明するための説明図である。
【図4】本第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【図5】本第1の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。
【図6】図5におけるステップS102で実行されるアクセス権限情報認証処理のフローチャートである。
【図7】図5におけるステップS106で実行されるアプリケーション認証処理のフローチャートである。
【図8】図5におけるステップS109で実行されるコマンド実行制御処理のフローチャートである。
【図9】アクセス権限情報の内容を説明するための説明図である。
【図10】アクセス権限情報の内容を説明するための説明図である。
【図11】認証情報の内容を説明するための説明図である。
【図12】認証情報の内容を説明するための説明図である。
【図13】本発明の第2の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【図14】本第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【図15】本第2の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。
【図16】図15におけるステップS808で実行されるアプリケーション認証処理のフローチャートである。
【図17】認証情報の内容を説明するための説明図である。
【図18】認証情報の内容を説明するための説明図である。
【発明を実施するための形態】
【0024】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0025】
なお、説明は以下の順序で行うものとする。
1.従来のアクセス制御
2.本発明の第1の実施の形態に係る情報処理システム
3.本発明の第1の実施の形態に係るアクセス制御のための準備処理
4.本発明の第1の実施の形態に係るアクセス制御処理
5.本発明の第2の実施の形態に係る情報処理システム
6.本発明の第2の実施の形態に係るアクセス制御のための準備処理
7.本発明の第2の実施の形態に係るアクセス制御処理
【0026】
[従来のアクセス制御]
本発明の実施の形態に係る情報処理システムについて説明する前に、まず、従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御について説明する。図1は、従来の情報処理装置におけるアプリケーションによるセキュアチップへのアクセス制御を説明するための説明図である。
【0027】
図1において、従来の情報処理装置としての携帯電話などのクライアント10は、アプリケーション11、アプリケーション12、制御モジュール13、API(Application Program Interface)14、アプリケーションマネージャ15およびセキュアチップ16を備える。アプリケーション11は、セキュアチップ16へのアクセス権限を有していない。アプリケーション12は、セキュアチップ16へのアクセス権限を有している。
【0028】
クライアント10では、アプリケーション12がセキュアチップ16へのアクセスをAPI14を介して制御モジュール13に要求すると、アプリケーションマネージャ15はアクセスを要求したアプリケーション12がアクセス権限を有するか否かを判定する。アプリケーション12は、セキュアチップ16へのアクセス権限を有するため、アプリケーションマネージャ15によりアプリケーション12によるセキュアチップ16へのアクセスが許可される。これにより、制御モジュール13はアプリケーション12から要求されたセキュアチップ16へのアクセス用コマンドをセキュアチップ16に対して実行することができる。
【0029】
一方、アプリケーション11がセキュアチップ16へのアクセスをAPI14を介して制御モジュール13に要求すると、アプリケーション11は、セキュアチップ16へのアクセス権限を有していないため、セキュアチップ16へのアクセスが許可されない。このため、制御モジュール13はアプリケーション11から要求されたセキュアチップ16へのアクセス用コマンドをセキュアチップ16に対して実行しない。これにより、アクセス権限を有していないアプリケーション11によるセキュアチップ16への不正なアクセスを防止することができる。なお、クライアント10は、インストールされたアプリケーションが制御モジュール14を経由しないでセキュアチップ16へアクセスすることをブロックする機能を有している。
【0030】
ところで、従来のクライアント10では、システム運営事業者がアプリケーションマネージャ15の仕様を独自に変更し、独自変更を実施したシステム運営事業者が管理するシステム上でのみ利用することで、セキュアチップ16へのアクセス制御を行っていた。例えば、携帯電話などのクライアント10内で動作するJavaアプリケーションにおいては、マニフェストファイルおよびJAD(Java Application Descriptor)に対してセキュアチップ16へのアクセス用属性を追加する。そして、その内容をアプリケーションマネージャ15の一例としてのJAM(Java Application Manager)が解釈できるようにJAMの統一仕様に対して、仕様を独自に変更し、その独自仕様を、仕様を変更したシステム運営事業者が管理するシステムでのみ適用していた。
【0031】
しかしながら、統一仕様に準拠したアプリケーションマネージャ、および周辺システムを複数のシステム運営事業者が共用する場合、各システム運営事業者が独自に仕様を変更するとシステムの整合性が損なわれるため、アプリケーションマネージャの仕様を変更することはできない。このため、従来のアクセス制御方式が採用できず、アプリケーションによるセキュアチップ16への不正なアクセスを防止することができない。
【0032】
そこで、後述する本発明の実施の形態に係る情報処理システムでは、後述するアクセス制御のための準備処理、およびアクセス制御処理を実行する。これにより、アプリケーションマネージャ15の仕様を変更することなく、アプリケーションによるセキュアチップ16への不正なアクセスを防止することができる。
【0033】
[本発明の第1の実施の形態に係る情報処理システム]
次に、本発明の第1の実施の形態に係る情報処理システムについて説明する。図2は、本発明の第1の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【0034】
図2において、本発明の情報処理システムの一例としての情報処理システム1000は、携帯電話などのクライアント100、イシュアサーバ200、アプリケーション提供サーバ300および認証サーバ400を備える。なお、情報処理システム1000は、クライアント100の代わりにPCなどのクライアント150を備えてもよい。クライアント100,150は、本発明の情報処理装置の一例である。これらクライアント100,150、サーバ200,300,400はそれぞれ通信網500に接続されている。
【0035】
クライアント100は、アプリケーション110、制御モジュール120およびセキュアチップ130を備える。セキュアチップ130は、耐タンパ性が優れたICチップである。セキュアチップ130は、例えばリーダ/ライタ(図示せず)と非接触通信を行うための非接触通信デバイス(図示せず)を備え、リーダ/ライタと非接触方式で情報を通信する。また、セキュアチップ130は、記憶装置(図示せず)を備え、非接触方式で通信する情報を記憶する。なお、セキュアチップ130の記憶装置は、非接触方式で通信する情報以外の情報も記憶することができる。アプリケーション110は、セキュアチップ130の記憶装置に記憶された情報を用いて所定の処理を行う。また、アプリケーション110は、後述する図9および図10のアクセス権限情報112を有する。制御モジュール120は、セキュアチップ130の制御を行う。例えば、制御モジュール120は、後述するようにアプリケーション110によるセキュアチップ130へのアクセス制御を行う。
【0036】
クライアント150は、アプリケーション160および制御モジュール170を備え、制御モジュール170は外部のセキュアチップ180の制御を行う。なお、アプリケーション160、制御モジュール170、セキュアチップ180はそれぞれ、アプリケーション110、制御モジュール120、セキュアチップ130と同様の機能構成を有する。また、アプリケーション160は、アクセス権限情報112と同様のアクセス権限情報162を有する。
【0037】
アプリケーション提供サーバ300は、例えば、アプリケーション110を作成する。また、アプリケーション提供サーバ300は、セキュアチップ130へアクセスするアプリケーション110を作成する場合、イシュアサーバ200へセキュアチップ130へのアクセスを申請する。イシュアサーバ200から後述するアクセス権限情報112が発行されると、アプリケーション提供サーバ300は、発行されたアクセス権限情報112をアプリケーション110に埋め込む。また、アプリケーション提供サーバ300は、後述する認証情報402を生成するための情報をイシュアサーバ200へ送信する。アプリケーション提供サーバ300は、クライアント100からのアプリケーション110の提供依頼があると、アプリケーション110をクライアント100へ提供する。
【0038】
イシュアサーバ200は、例えば、アプリケーション提供サーバ300からのセキュアチップ130へのアクセス申請を受け付けた後に、アクセス権限情報112を生成して、生成したアクセス権限情報112をアプリケーション提供サーバ300へ発行する。また、イシュアサーバ200は、アプリケーション提供サーバ300から認証情報402を生成するための情報を受信した後に、認証情報402を生成して、生成した認証情報402を認証サーバ400に送信する。
【0039】
認証サーバ400は、認証情報402を有する。認証サーバ400は、本発明の外部サーバの一例である。認証サーバ400は、例えば、後述するようにクライアント100の制御モジュール120からの認証情報402の要求を受け付けた後に、認証情報402を制御モジュール120へ送信する。
【0040】
情報処理システム1000では、後述する図4のアクセス制御のための準備処理および図5のアクセス制御処理を実行することにより、アプリケーションマネージャ(図示せず)などの仕様を変更することなく、アプリケーションによるセキュアチップ130への不正なアクセスを防止することができる。以下、情報処理システム1000がクライアント100、イシュアサーバ200、アプリケーション提供サーバ300および認証サーバ400から構成される場合について説明する。
【0041】
次に、図2におけるクライアント100の機能構成について説明する。図3は、図2におけるクライアント100の機能構成を説明するための説明図である。
【0042】
図3において、クライアント100は、アプリケーション110、制御モジュール120およびセキュアチップ130を備える。制御モジュール120は、受付部121、取得部122、認証部123、制御部124、検証部125、記憶部126および保持部127を備える。
【0043】
受付部121は、セキュアチップ130にアクセスするためのアクセス権限情報112を有するアプリケーション110から、セキュアチップ130へのアクセス要求を受け付ける。取得部122は、受付部121が受け付けたアクセス要求に含まれるアクセス権限情報112に基づいて、アプリケーション110の認証を行うための認証情報402を認証サーバ400から取得する。認証部123は、取得部122が取得した認証情報402に基づいて、アプリケーション110を認証する。制御部124は、認証部123による認証結果に基づいて、アプリケーション110によるセキュアチップ130へのアクセスを制御する。
【0044】
検証部125は、後述するようにイシュアサーバ200が生成した鍵ペアのうちの公開鍵を有し、アクセス権限情報112に含まれるデジタル署名の検証を行い、また、認証情報402に含まれるデジタル署名の検証を行う。記憶部126は、認証部123により認証されたアプリケーション110が有するアクセス権限情報112に含まれるセキュアチップ130へのアクセス用コマンドの情報およびアクセス可能領域の情報を記憶する。保持部127は、取得部122が取得した認証情報402を保持する。
【0045】
[本発明の第1の実施の形態に係るアクセス制御のための準備処理]
以下、本発明の第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理について説明する。図4は、本発明の第1の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【0046】
図4において、まず、イシュアサーバ200は、本発明の第1の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成する(ステップS201)。次いで、イシュアサーバ200は、生成した鍵ペアのうち公開鍵(図示せず)をクライアント100の制御モジュール120へ埋め込む(ステップS202)。
【0047】
次いで、アプリケーション提供サーバ300は、作成するアプリケーション110がクライアント100のセキュアチップ130へアクセス可能となるように、イシュアサーバ200へセキュアチップ130へのアクセスを申請する(ステップS301)。具体的には、アプリケーション提供サーバ300は、イシュアサーバ200へ実行したいチップアクセス用コマンドの一覧とアクセスしたいチップ領域の一覧とを送信する。
【0048】
次いで、セキュアチップ130へのアクセス申請を受け付けたイシュアサーバ200は、アクセス申請内容に基づいて、図9および図10に示すアクセス権限情報112を生成する(ステップS203)。図9および図10に示すように、アクセス権限情報112は、アプリケーション識別子113と、実行可能コマンド一覧114と、アクセス可能領域一覧115と、署名データ116とから構成される。アプリケーション識別子113は、アプリケーション110を識別するための情報である。実行可能コマンド一覧114は、アプリケーション110が実行可能なチップアクセス用コマンドの一覧である。アクセス可能領域一覧115は、アプリケーション110がアクセス可能なチップ領域の一覧である。署名データ116は、アプリケーション識別子113、実行可能コマンド一覧114およびアクセス可能領域一覧115に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。署名データ116は、本発明の第1のデジタル署名の一例である。そして、イシュアサーバ200は、生成したアクセス権限情報112をアプリケーション提供サーバ300へ発行する(ステップS204)。
【0049】
次いで、アプリケーション提供サーバ300は、アプリケーション110を作成して(ステップS302)、作成したアプリケーション110にステップS204で発行されたアクセス権限情報112を埋め込む(ステップS303)。アプリケーション提供サーバ300は、後述するようにアプリケーション110が制御モジュール120へセキュアチップ130へのアクセスを要求する際に、アプリケーション110が制御モジュール120へアクセス権限情報112を渡すようにする。
【0050】
次いで、アプリケーション提供サーバ300は、本発明の第2の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成して(ステップS304)、図11に示すように、生成した鍵ペアのうち秘密鍵302を用いてアプリケーション110のアプリケーション署名値404を生成する(ステップS305)。そして、アプリケーション提供サーバ300は、図11に示すように、ステップS305で生成したアプリケーション署名値404と、ステップS304で生成した鍵ペアのうち公開鍵304とをイシュアサーバ200に提供する(ステップS306)。
【0051】
次いで、イシュアサーバ200は、提供されたアプリケーション署名値404と、公開鍵304とに基づいて、図11および図12に示す認証情報402を生成する(ステップS205)。図11および図12に示すように、認証情報402は、アプリケーション識別子403と、アプリケーション署名値404と、署名検証用公開鍵405と、署名データ406とから構成される。アプリケーション識別子403は、アプリケーション110を識別するための情報である。アプリケーション署名値404は、アプリケーション110への署名値である。署名検証用公開鍵405は、アプリケーション110へのデジタル署名に利用した秘密鍵302に対応する公開鍵304である。署名データ406は、アプリケーション識別子403、アプリケーション署名値404および署名検証用公開鍵405に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。署名データ406は、本発明の第2のデジタル署名の一例である。そして、イシュアサーバ200は、生成した認証情報402を認証サーバ400へ送信して(ステップS206)、認証サーバ400は受信した認証情報402を登録して、本処理を終了する。
【0052】
[本発明の第1の実施の形態に係るアクセス制御処理]
以下、本発明の第1の実施の形態に係る情報処理システムが実行するアクセス制御処理について説明する。図5は、本発明の第1の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。本処理は、図4のアクセス制御のための準備処理の後に実行される。
【0053】
図5において、まず、アプリケーション110は、制御モジュール120へセキュアチップ130へのアクセスを要求する(ステップS101)。このとき、アプリケーション110は、埋め込まれたアクセス権限情報112を制御モジュール120へ渡す。
【0054】
次いで、セキュアチップ130へのアクセス要求を受け付けた制御モジュール120は、後述する図6のアクセス権限情報認証処理を実行して、アプリケーション110から渡されたアクセス権限情報112の正当性の認証を行う(ステップS102)。
【0055】
ステップS102のアクセス権限情報認証処理が正常に終了した場合、制御モジュール120は、アクセス権限情報112に対応する認証情報402を認証サーバ400へ要求する(ステップS103)。このとき、制御モジュール120は、アクセス権限情報112におけるアプリケーション識別子113を認証サーバ400へ渡す。
【0056】
次いで、認証情報402の要求を受け付けた認証サーバ400は、認証情報402を制御モジュール120へ送信する(ステップS401)。具体的には、認証サーバ400は、制御モジュール120から渡されたアプリケーション識別子113と同一のアプリケーション識別子403を有する認証情報402を制御モジュール120へ送信する。
次いで、認証情報402を受信した制御モジュール120は、アプリケーション110へアプリケーション110のバイナリデータを要求する(ステップS104)。次いで、アプリケーション110のバイナリデータの要求を受け付けたアプリケーション110は、アプリケーション110のバイナリデータを制御モジュール120へ送信する(ステップS105)。
【0057】
次いで、認証情報402を受信した制御モジュール120は、後述する図7のアプリケーション認証処理を実行して、セキュアチップ130へのアクセスを要求するアプリケーション110のセキュアチップ130へのアクセス権限の正当性の認証を行う(ステップS106)。
【0058】
ステップS106のアプリケーション認証処理が正常に終了した場合、制御モジュール120は、アクセス権限情報112における実行可能コマンド一覧114およびアクセス可能領域一覧115を記憶装置(図示せず)に記憶する(ステップS107)。
【0059】
そして、アプリケーション110は、チップアクセス用コマンドの実行を制御モジュール120へ要求する(ステップS108)。チップアクセス用コマンドの実行要求を受け付けた制御モジュール120は、後述する図8のコマンド実行制御処理を実行して、要求されたチップアクセス用コマンドの実行の可否を判定する(ステップS109)。
【0060】
ステップS109のコマンド実行制御処理が正常に終了した場合、制御モジュール120は、セキュアチップ130へ要求されたチップアクセス用コマンドを実行して(ステップS110)、本処理を終了する。
【0061】
図6は、図5におけるステップS102で実行されるアクセス権限情報認証処理のフローチャートである。
【0062】
図6において、まず、制御モジュール120は、アプリケーション110から渡されたアクセス権限情報112のフォーマットが正当であるか否かを判別する(ステップS501)。具体的には、制御モジュール120は、アクセス権限情報112のフォーマットが、図10に示すような、図4におけるステップS203でのイシュアサーバ200によるアクセス権限情報112の生成において規定したフォーマットであるか否かを判別する。
【0063】
アクセス権限情報112のフォーマットが正当であるときは(ステップS501でYES)、制御モジュール120は、図4におけるステップS202で埋め込まれた公開鍵を用いてアクセス権限情報112における署名データ116の検証を行う。そして、制御モジュール120は、署名データ116が正当であるか否かを判別する(ステップS502)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ116を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子113、実行可能コマンド一覧114およびアクセス可能領域一覧115とが一致しているか否かを判別して、署名データ116が正当であるか否かを判別する。
【0064】
署名データ116が正当であるときは(ステップS502でYES)、制御モジュール120は、アクセス権限情報112は正当であると認証して、本処理を正常に終了する。アクセス権限情報112のフォーマットが不当であるとき(ステップS501でNO)、または署名データ116が不当であるときは(ステップS502でNO)、制御モジュール120は、アクセス権限情報112は不当であるとして、本処理をエラー終了する。
【0065】
図6のアクセス権限情報認証処理によれば、アクセス権限情報112のフォーマットまたは署名データ116が不当であるとき、すなわち、アクセス権限情報112がイシュアサーバ200から正当に発行されたものでないときは、本処理をエラー終了する。これにより、イシュアサーバ200から正当に発行されたものではないアクセス権限情報112を有するアプリケーション(図示せず)によるセキュアチップ130へのアクセスを禁止することができる。
【0066】
図7は、図5におけるステップS106で実行されるアプリケーション認証処理のフローチャートである。
【0067】
図7において、まず、制御モジュール120は、受信した認証情報402のフォーマットが正当であるか否かを判別する(ステップS601)。具体的には、制御モジュール120は、認証情報402のフォーマットが、図12に示すような、図4におけるステップS205でのイシュアサーバ200による認証情報402の生成において規定したフォーマットであるか否かを判別する。
認証情報402のフォーマットが正当であるときは(ステップS601でYES)、制御モジュール120は、図4におけるステップS202で埋め込まれた公開鍵を用いて認証情報402における署名データ406の検証を行う。そして、制御モジュール120は、署名データ406が正当であるか否かを判別する(ステップS602)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ406を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子403、アプリケーション署名値404および署名検証用公開鍵405とが一致しているか否かを判別して、署名データ406が正当であるか否かを判別する。
認証情報402のフォーマットが不当であるとき(ステップS601でNO)、または署名データ406が不当であるときは(ステップS602でNO)、制御モジュール120は、認証情報402は不当であるとして、本処理をエラー終了する。
署名データ406が正当であるときは(ステップS602でYES)、制御モジュール120は、受信した認証情報402からアプリケーション署名値404および署名検証用公開鍵405を抽出する(ステップS603)。
【0068】
次いで、制御モジュール120は、抽出したアプリケーション署名値404を署名検証用公開鍵405を用いて復号化する(ステップS604)。そして、制御モジュール120は、認証情報402から抽出したアプリケーション署名値404の復号化データと、図5のステップS105で受信したアプリケーション110のバイナリデータとが一致するか否かを判別する(ステップS605)。なお、アプリケーション署名値404の復号化データとは、アプリケーション110のバイナリデータに相当する。
【0069】
アプリケーション署名値404の復号化データがアプリケーション110のバイナリデータと一致するときは(ステップS605でYES)、制御モジュール120は、アプリケーション110は正当であると認証して、本処理を正常に終了する。アプリケーション署名値404の復号化データがアプリケーション110のバイナリデータと一致しないときは(ステップS605でNO)、制御モジュール120は、アプリケーション110は不当であるとして、本処理をエラー終了する。
【0070】
図7のアプリケーション認証処理によれば、認証情報402から抽出したアプリケーション署名値404の復号化データと、アプリケーション110から受信したアプリケーション110のバイナリデータとが一致しないとき、すなわち、アクセス権限情報112を不当なアプリケーション(図示せず)が有しているときは、本処理をエラー終了する。これにより、アクセス権限情報112を有する不当なアプリケーション(図示せず)によるセキュアチップ130へのアクセスを禁止することができる。
上述した図7のアプリケーション認証処理では、クライアント100と認証サーバ400との間において、予め安全な通信路が用意されている場合は、認証情報402の改竄の虞がないため、認証情報402の正当性の認証は行わなくてもよい。すなわち、図7のアプリケーション認証処理では、ステップS601およびステップS602の処理を実行することなく、ステップS603の処理から実行する。これにより、アプリケーション認証処理の工程数を削減することができる。
【0071】
図8は、図5におけるステップS109で実行されるコマンド実行制御処理のフローチャートである。
【0072】
図8において、まず、制御モジュール120は、記憶装置(図示せず)に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されているか否かを判別する(ステップS701)。
【0073】
記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されているときは(ステップS701でYES)、制御モジュール120は、実行可能コマンド一覧114内に図5のステップS108で要求されたチップアクセス用コマンドがあるか否かを判別する(ステップS702)。記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されていないときは(ステップS701でNO)、要求されたチップアクセス用コマンドは実行不可能であるとして、本処理をエラー終了する。
【0074】
実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがあるときは(ステップS702でYES)、制御モジュール120は、アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域があるか否かを判別する(ステップS703)。実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがないときは(ステップS702でNO)、制御モジュール120は、要求されたチップアクセス用コマンドを実行不可能であるとして、本処理をエラー終了する。
【0075】
アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域があるときは(ステップS703でYES)、制御モジュール120は、要求されたチップアクセス用コマンドは実行可能であるとして、本処理を正常に終了する。アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域がないときは(ステップS703でNO)、制御モジュール120は、要求されたチップアクセス用コマンドを実行不可能であるとして、本処理をエラー終了する。
【0076】
図8のコマンド実行制御処理によれば、記憶装置に実行可能コマンド一覧114およびアクセス可能領域一覧115が記憶されていないとき、すなわち、セキュアチップ130へのアクセスを制御モジュール120に要求して、アクセス権限情報の認証およびアプリケーションの認証を行っていないアプリケーション(図示せず)によるチップアクセス用コマンドの実行要求であるときは、本処理をエラー終了する。これにより、制御モジュール120においてアクセス権限情報の認証およびアプリケーションの認証を行っていないアプリケーション(図示せず)によるセキュアチップ130へのアクセスを制止することができる。
【0077】
また、実行可能コマンド一覧114内に要求されたチップアクセス用コマンドがないとき、すなわち、実行を許可されていないチップアクセス用コマンドの実行要求をアプリケーション110が行うときは、本処理をエラー終了する。これにより、アプリケーション110による実行を許可されていないチップアクセス用コマンドの実行を制限することができる。
【0078】
また、アクセス可能領域一覧115内に要求されたチップアクセス用コマンドのアクセス領域がないとき、すなわち、アクセスが許可された領域を超えたチップアクセス用コマンドの実行要求をアプリケーション110が行うときは、本処理をエラー終了する。これにより、アプリケーション110によるアクセスが許可された領域を超えたチップアクセス用コマンドの実行を制限することができる。
【0079】
上述したように、図5のアクセス制御処理によれば、上述した図6のアクセス権限情報認証処理、図7のアプリケーション認証処理および図8のコマンド実行制御処理を実行することにより、アプリケーションからのセキュアチップ130への不正なアクセスを防止することができる。また、制御モジュール120は、アプリケーション110が有するアクセス権限情報112および認証サーバ400から取得する認証情報402に基づいて、アプリケーション110によるセキュアチップ130へのアクセスを制御する。したがって、アクセス制御のために、インストールされたアプリケーションの管理等を行うアプリケーションマネージャ(図示せず)などの仕様を変更する必要はない。これにより、アプリケーションマネージャ(図示せず)の仕様を変更することなく、アプリケーションからのセキュアチップ130への不正なアクセスを防止することができる。
【0080】
上述した図5のアクセス制御処理では、制御モジュール120は、ステップS401において認証サーバ400から送信された認証情報402を受信した後に、その認証情報402を記憶装置(図示せず)において保持してもよい。そして、制御モジュール120は、ステップS103においてアクセス権限情報112に対応する認証情報402が記憶装置に保持されている場合は、認証情報402を認証サーバ400へ要求することなく、記憶装置に保持されている認証情報402を用いてステップS106のアプリケーション認証処理を行う。これにより、アクセス制御処理の工程数を削減することができる。
【0081】
[本発明の第2の実施の形態に係る情報処理システム]
次に、本発明の第2の実施の形態に係る情報処理システムについて説明する。本実施の形態に係る情報処理システムは、クライアントにインストールされるアプリケーションがデジタル署名および公開鍵を有する点などが第1の実施の形態と異なるのみであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。図13は、本発明の第2の実施の形態に係る情報処理システムの概略構成を説明するための説明図である。
【0082】
図13において、本発明の情報処理システムの一例としての情報処理システム2000は、携帯電話などのクライアント600、イシュアサーバ200、アプリケーション提供サーバ300、認証サーバ410を備える。クライアント600は、本発明の情報処理装置の一例である。これらクライアント600、サーバ200,300,410はそれぞれ通信網500に接続されている。
【0083】
クライアント600は、アプリケーション610、制御モジュール620、セキュアチップ630、アプリケーションマネージャ640を備える。セキュアチップ630は、上述したセキュアチップ130と同様の構成を有する。アプリケーション610は、セキュアチップ630の記憶装置に記憶された情報を用いて所定の処理を行う。アプリケーション610は、アクセス権限情報612を有する。アクセス権限情報612は、上述したアクセス権限情報112と同様の構成を有する。また、アプリケーション610は、後述するアプリケーション提供サーバ300において生成された鍵ペアのうちの秘密鍵(図示せず)を用いたアプリケーション610のデジタル署名614と、その鍵ペアのうちの公開鍵618とを有する。デジタル署名614は、本発明の第3のデジタル署名の一例である。アプリケーションマネージャ640は、アプリケーション610のクライアント600へのインストール時に、アプリケーション610が有する公開鍵618を用いてデジタル署名614の検証を行い、アプリケーション610の認証を行う。制御モジュール620は、セキュアチップ630の制御を行う。例えば、制御モジュール620は、後述するようにアプリケーション610のセキュアチップ630へのアクセス制御を行う。
【0084】
アプリケーション提供サーバ300は、例えば、アプリケーション610を作成する。また、アプリケーション提供サーバ300は、セキュアチップ630へアクセスするアプリケーション610を作成する場合、イシュアサーバ200へセキュアチップ630へのアクセスを申請する。イシュアサーバ200からアクセス権限情報612が発行されると、アプリケーション提供サーバ300は、発行されたアクセス権限情報612をアプリケーション610に埋め込む。また、アプリケーション提供サーバ300は、後述する認証情報412を生成するための情報をイシュアサーバ200へ送信する。アプリケーション提供サーバ300は、クライアント600からのアプリケーション610の提供依頼があると、アプリケーション610をクライアント600へ提供する。
【0085】
イシュアサーバ200は、例えば、アプリケーション提供サーバ300からのセキュアチップ130へのアクセス申請を受け付けた後に、アクセス権限情報612を生成して、生成したアクセス権限情報612をアプリケーション提供サーバ300へ発行する。また、イシュアサーバ200は、アプリケーション提供サーバ300から認証情報412を生成するための情報を受信した後に、認証情報412を生成して、生成した認証情報412を認証サーバ410に送信する。
【0086】
認証サーバ410は、認証情報412を有する。認証サーバ410は、本発明の外部サーバの一例である。認証サーバ410は、例えば、後述するようにクライアント600の制御モジュール620からの認証情報412の要求を受け付けた後に、認証情報412を制御モジュール620へ送信する。
【0087】
情報処理システム2000では、後述する図14のアクセス制御のための準備処理および図15のアクセス制御処理を実行することにより、アプリケーションマネージャ640などの仕様を変更することなく、アプリケーションによるセキュアチップ630への不正なアクセスを防止することができる。
【0088】
[本発明の第2の実施の形態に係るアクセス制御のための準備処理]
以下、本発明の第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理について説明する。本実施の形態に係るアクセス制御のための準備処理は、図4におけるステップS306においてアプリケーション提供サーバ300が鍵ペアのうちの公開鍵のみをイシュアサーバ200に提供する点と、ステップS205においてイシュアサーバ200が公開鍵のみに基づいて認証情報を生成する点などが第1の実施の形態と異なるのみであるので、重複した構成、作用については説明を省略し、以下に異なる構成、作用についての説明を行う。図14は、本発明の第2の実施の形態に係る情報処理システムが実行する、アクセス制御のための準備処理のシーケンス図である。
【0089】
図14において、まず、イシュアサーバ200は、鍵ペアを生成する(ステップS201)。次いで、イシュアサーバ200は、生成した鍵ペアのうち公開鍵(図示せず)をクライアント100の制御モジュール120へ埋め込む(ステップS202)。次いで、アプリケーション提供サーバ300は、イシュアサーバ200へセキュアチップ130へのアクセスを申請する(ステップS301)。
【0090】
次いで、イシュアサーバ200は、アクセス申請内容に基づいて、図9および図10に示すアクセス権限情報112と同様のアクセス権限情報612を生成する(ステップS203)。そして、イシュアサーバ200は、生成したアクセス権限情報612をアプリケーション提供サーバ300へ発行する(ステップS204)。
【0091】
次いで、アプリケーション提供サーバ300は、アプリケーション610を作成して(ステップS302)、作成したアプリケーション610にステップS204で発行されたアクセス権限情報612を埋め込む(ステップS303)。
【0092】
次いで、アプリケーション提供サーバ300は、本発明の第3の鍵ペアの一例としての、デジタル署名のための鍵ペアを生成して(ステップS304)、図17に示すように、生成した鍵ペアのうち秘密鍵616を用いてアプリケーション610にデジタル署名を付与する(ステップS305)。これにより、アプリケーション610にはデジタル署名614とステップS304で生成した鍵ペアのうち公開鍵618が付与される。そして、アプリケーション提供サーバ300は、図17に示すように、ステップS304で生成した鍵ペアのうち公開鍵618のみをイシュアサーバ200に提供する(ステップS316)。
【0093】
次いで、イシュアサーバ200は、提供された公開鍵618に基づいて、図17および図18に示す認証情報412を生成する(ステップS215)。図17および図18に示すように、認証情報412は、アプリケーション識別子413と、署名検証用公開鍵414と、署名データ415とから構成される。アプリケーション識別子413は、アプリケーション610を識別するための情報である。署名検証用公開鍵414は、アプリケーション610へのデジタル署名614に利用した秘密鍵616に対応する公開鍵618である。署名データ415は、アプリケーション識別子413および署名検証用公開鍵414に対する、ステップS201で生成した鍵ペアのうち秘密鍵202を用いたデジタル署名である。そして、イシュアサーバ200は、生成した認証情報412を認証サーバ410へ送信して(ステップS216)、認証サーバ410は受信した認証情報412を登録して、本処理を終了する。
【0094】
[本発明の第2の実施の形態に係るアクセス制御処理]
以下、本発明の第2の実施の形態に係る情報処理システムが実行するアクセス制御処理について説明する。図15は、本発明の第2の実施の形態に係る情報処理システムが実行するアクセス制御処理のシーケンス図である。本処理は、図14のアクセス制御のための準備処理の後に実行される。
【0095】
図15において、まず、アプリケーション610は、アプリケーションマネージャ640へクライアント600へのインストールを要求する(ステップS801)。このとき、アプリケーション610は、アプリケーション610に付与されたデジタル署名614および公開鍵618をアプリケーションマネージャ640へ渡す。
【0096】
次いで、アプリケーション610のインストール要求を受け付けたアプリケーションマネージャ640は、公開鍵618を用いてデジタル署名614の検証を行う(ステップS802)。ステップS802での検証の結果、デジタル署名614が正当である場合は、クライアント600へのアプリケーション610のインストールが許可される。一方、ステップS802での検証の結果、デジタル署名614が不当である場合は、クライアント600へのアプリケーション610のインストールは許可されない。
【0097】
アプリケーション610のクライアント600へのインストールの後、アプリケーション610は、制御モジュール620へセキュアチップ630へのアクセスを要求する(ステップS803)。このとき、アプリケーション610は、埋め込まれたアクセス権限情報612を制御モジュール620へ渡す。
【0098】
次いで、セキュアチップ630へのアクセス要求を受け付けた制御モジュール620は、上述した図6のアクセス権限情報認証処理と同様のアクセス権限情報認証処理を実行して、アプリケーション610から渡されたアクセス権限情報612の正当性の認証を行う(ステップS804)。
【0099】
ステップS804のアクセス権限情報認証処理が正常に終了した場合、制御モジュール620は、アクセス権限情報612に対応する認証情報412を認証サーバ410へ要求する(ステップS805)。このとき、制御モジュール620は、アクセス権限情報612におけるアプリケーション識別子(図示せず)を認証サーバ410へ渡す。
【0100】
次いで、認証情報412の要求を受け付けた認証サーバ410は、認証情報412を制御モジュール620へ送信する。具体的には、認証サーバ410は、制御モジュール620から渡されたアプリケーション識別子(図示せず)と同一のアプリケーション識別子413を有する認証情報412を制御モジュール620へ送信する。
【0101】
次いで、認証情報402を受信した制御モジュール120は、アプリケーション610へ公開鍵618を要求する(ステップS806)。次いで、公開鍵618の要求を受け付けたアプリケーション610は、公開鍵618を制御モジュール620へ送信する(ステップS807)。
【0102】
次いで、制御モジュール620は、後述する図16のアプリケーション認証処理を実行して、セキュアチップ630へのアクセスを要求するアプリケーション610のセキュアチップ630へのアクセス権限の正当性の認証を行う(ステップS808)。
【0103】
ステップS808のアプリケーション認証処理が正常に終了した場合、制御モジュール620は、アクセス権限情報612における実行可能コマンド一覧(図示せず)およびアクセス可能領域一覧(図示せず)を記憶装置(図示せず)に記憶する(ステップS809)。
【0104】
そして、アプリケーション610は、チップアクセス用コマンドの実行を制御モジュール620へ要求する(ステップS810)。チップアクセス用コマンドの実行要求を受け付けた制御モジュール620は、上述した図8のコマンド実行制御処理と同様のコマンド実行制御処理を実行して、要求されたチップアクセス用コマンドの実行の可否を判定する(ステップS811)。
【0105】
ステップS811のコマンド実行制御処理が正常に終了した場合、制御モジュール620は、セキュアチップ630へ要求されたチップアクセス用コマンドを実行して(ステップS812)、本処理を終了する。
【0106】
図16は、図15におけるステップS808で実行されるアプリケーション認証処理のフローチャートである。
【0107】
図16において、まず、制御モジュール620は、受信した認証情報412のフォーマットが正当であるか否かを判別する(ステップS901)。具体的には、制御モジュール620は、認証情報412のフォーマットが、図18に示すような、図14におけるステップS215でのイシュアサーバ200による認証情報412の生成において規定したフォーマットであるか否かを判別する。
認証情報412のフォーマットが正当であるときは(ステップS901でYES)、制御モジュール620は、図14におけるステップS202で埋め込まれた公開鍵を用いて認証情報412における署名データ415の検証を行う。そして、制御モジュール620は、署名データ415が正当であるか否かを判別する(ステップS902)。具体的には、ステップS202で埋め込まれた公開鍵を用いて署名データ415を復号化して、復号化データと署名対象データ、すなわちアプリケーション識別子413および署名検証用公開鍵414とが一致しているか否かを判別して、署名データ415が正当であるか否かを判別する。
認証情報412のフォーマットが不当であるとき(ステップS901でNO)、または署名データ415が不当であるときは(ステップS902でNO)、制御モジュール620は、認証情報412は不当であるとして、本処理をエラー終了する。
署名データ415が正当であるときは(ステップS902でYES)、制御モジュール620は、受信した認証情報412から署名検証用公開鍵414を抽出する(ステップS903)。
【0108】
次いで、制御モジュール620は、認証情報412から抽出した署名検証用公開鍵414と、図15のステップS807で受信した公開鍵618とが一致するか否かを判別する(ステップS904)。
【0109】
署名検証用公開鍵414と公開鍵618とが一致するときは(ステップS904でYES)、制御モジュール620は、アプリケーション610は正当であると認証して、本処理を正常に終了する。署名検証用公開鍵414と公開鍵618とが一致しないときは(ステップS904でNO)、制御モジュール620は、アプリケーション610は不当であるとして、本処理をエラー終了する。
【0110】
図16のアプリケーション認証処理によれば、認証情報412から抽出した署名検証用公開鍵414と、図15のステップS807で受信した公開鍵618とが一致しないとき、すなわち、アクセス権限情報(図示せず)を不当なアプリケーション(図示せず)が有しているときは、本処理をエラー終了する。これにより、アクセス権限情報(図示せず)を有する不当なアプリケーション(図示せず)によるセキュアチップ630へのアクセスを禁止することができる。
上述した図16のアプリケーション認証処理では、クライアント600と認証サーバ410との間において、予め安全な通信路が用意されている場合は、認証情報412の改竄の虞がないため、認証情報412の正当性の認証は行わなくてもよい。すなわち、図16のアプリケーション認証処理では、ステップS901およびステップS902の処理を実行することなく、ステップS903の処理から実行する。これにより、アプリケーション認証処理の工程数を削減することができる。
【0111】
上述したように、図15のアクセス制御処理によれば、上述した図6のアクセス権限情報認証処理と同様の処理、図16のアプリケーション認証処理および上述した図8のコマンド実行制御処理と同様の処理を実行することにより、上述した図5のアクセス制御処理と同様の効果を奏することができる。また、ステップS808でのアプリケーション認証処理では、署名検証用公開鍵414と公開鍵618との比較のみにより、アプリケーション610の認証を行うことができるので、アプリケーション認証処理の処理速度を向上させることができる。
【0112】
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0113】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0114】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW等の光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【0115】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【0116】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【0117】
以上、添付図面を参照しながら本発明の好適な実施の形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0118】
100,600 クランアント
110,610 アプリケーション
112,612 アクセス権限情報
120,620 制御モジュール
130,630 セキュアチップ
200 イシュアサーバ
300 アプリケーション提供サーバ
400,410 認証サーバ
402,412 認証情報
1000,2000 情報処理システム
【特許請求の範囲】
【請求項1】
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
を備える、情報処理装置。
【請求項2】
第1の秘密鍵および第1の公開鍵を有する第1の鍵ペアのうちの前記第1の公開鍵を有する検証部をさらに備え、
前記アクセス権限情報は、前記第1の鍵ペアのうちの前記第1の秘密鍵を用いた第1のデジタル署名を含み、
前記認証情報は、前記第1の鍵ペアのうちの前記第1の秘密鍵を用いた第2のデジタル署名を含み、
前記検証部は、前記アクセス権限情報に含まれる前記第1のデジタル署名の検証を行い、また、前記認証情報に含まれる前記第2のデジタル署名の検証を行う、請求項1に記載の情報処理装置。
【請求項3】
前記取得部は、前記アプリケーションから前記アプリケーションのバイナリデータを取得し、
前記認証情報は、第2の秘密鍵および第2の公開鍵を有する第2の鍵ペアのうちの前記第2の秘密鍵を用いた前記アプリケーションの署名値と、前記第2の鍵ペアのうちの前記第2の公開鍵とを含み、
前記認証部は、前記取得部が取得した前記アプリケーションのバイナリデータと、前記認証情報に含まれる前記アプリケーションの署名値を前記認証情報に含まれる前記第2の鍵ペアのうちの前記第2の公開鍵を用いて復号化した復号化データとを比較することにより、前記アプリケーションの認証を行う、請求項1または2に記載の情報処理装置。
【請求項4】
前記アプリケーションは、第3の秘密鍵および第3の公開鍵を有する第3の鍵ペアのうちの前記第3の公開鍵と、前記第3の鍵ペアのうちの前記第3の秘密鍵を用いた第3のデジタル署名とを有し、
前記取得部は、前記アプリケーションから前記第3の鍵ペアのうちの前記第3の公開鍵を取得し、
前記認証情報は、前記第3の鍵ペアのうちの前記第3の公開鍵を含み、
前記認証部は、前記取得部が取得した前記第3の鍵ペアのうちの前記第3の公開鍵と、前記認証情報に含まれる前記第3の鍵ペアのうちの前記第3の公開鍵とを比較することにより、前記アプリケーションの認証を行う、請求項1または2に記載の情報処理装置。
【請求項5】
前記認証部により認証された前記アプリケーションが有する前記アクセス権限情報に含まれる前記ICチップへのアクセス用コマンドの情報を記憶する記憶部をさらに備え、
前記制御部は、前記アプリケーションからの前記ICチップへのアクセス用コマンドが、前記記憶部に記憶された前記アクセス用コマンドの情報に含まれるときに、前記アプリケーションによる前記ICチップへのアクセスを許可し、
前記アプリケーションからの前記ICチップへのアクセス用コマンドが、前記記憶部に記憶された前記アクセス用コマンドの情報に含まれないときに、前記アプリケーションによる前記ICチップへのアクセスを制限する、請求項1に記載の情報処理装置。
【請求項6】
前記記憶部は、前記認証部により認証された前記アプリケーションが有する前記アクセス権限情報に含まれる前記ICチップのアクセス可能領域の情報をさらに記憶し、
前記制御部は、前記記憶部に記憶された前記アクセス可能領域の情報に基づいて、前記アプリケーションによる前記ICチップへのアクセス領域を制限する、請求項5に記載の情報処理装置。
【請求項7】
前記取得部が取得した前記認証情報を保持する保持部をさらに備え、
前記認証部は、前記保持部が保持する前記認証情報に基づいて、前記アプリケーションの認証を行う、請求項1に記載の情報処理装置。
【請求項8】
コンピュータを、
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
として機能させるためのプログラム。
【請求項9】
情報処理装置と、
前記情報処理装置と通信可能な外部サーバと、
を備え、
前記情報処理装置は、
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を前記外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
を備える、情報処理システム。
【請求項1】
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
を備える、情報処理装置。
【請求項2】
第1の秘密鍵および第1の公開鍵を有する第1の鍵ペアのうちの前記第1の公開鍵を有する検証部をさらに備え、
前記アクセス権限情報は、前記第1の鍵ペアのうちの前記第1の秘密鍵を用いた第1のデジタル署名を含み、
前記認証情報は、前記第1の鍵ペアのうちの前記第1の秘密鍵を用いた第2のデジタル署名を含み、
前記検証部は、前記アクセス権限情報に含まれる前記第1のデジタル署名の検証を行い、また、前記認証情報に含まれる前記第2のデジタル署名の検証を行う、請求項1に記載の情報処理装置。
【請求項3】
前記取得部は、前記アプリケーションから前記アプリケーションのバイナリデータを取得し、
前記認証情報は、第2の秘密鍵および第2の公開鍵を有する第2の鍵ペアのうちの前記第2の秘密鍵を用いた前記アプリケーションの署名値と、前記第2の鍵ペアのうちの前記第2の公開鍵とを含み、
前記認証部は、前記取得部が取得した前記アプリケーションのバイナリデータと、前記認証情報に含まれる前記アプリケーションの署名値を前記認証情報に含まれる前記第2の鍵ペアのうちの前記第2の公開鍵を用いて復号化した復号化データとを比較することにより、前記アプリケーションの認証を行う、請求項1または2に記載の情報処理装置。
【請求項4】
前記アプリケーションは、第3の秘密鍵および第3の公開鍵を有する第3の鍵ペアのうちの前記第3の公開鍵と、前記第3の鍵ペアのうちの前記第3の秘密鍵を用いた第3のデジタル署名とを有し、
前記取得部は、前記アプリケーションから前記第3の鍵ペアのうちの前記第3の公開鍵を取得し、
前記認証情報は、前記第3の鍵ペアのうちの前記第3の公開鍵を含み、
前記認証部は、前記取得部が取得した前記第3の鍵ペアのうちの前記第3の公開鍵と、前記認証情報に含まれる前記第3の鍵ペアのうちの前記第3の公開鍵とを比較することにより、前記アプリケーションの認証を行う、請求項1または2に記載の情報処理装置。
【請求項5】
前記認証部により認証された前記アプリケーションが有する前記アクセス権限情報に含まれる前記ICチップへのアクセス用コマンドの情報を記憶する記憶部をさらに備え、
前記制御部は、前記アプリケーションからの前記ICチップへのアクセス用コマンドが、前記記憶部に記憶された前記アクセス用コマンドの情報に含まれるときに、前記アプリケーションによる前記ICチップへのアクセスを許可し、
前記アプリケーションからの前記ICチップへのアクセス用コマンドが、前記記憶部に記憶された前記アクセス用コマンドの情報に含まれないときに、前記アプリケーションによる前記ICチップへのアクセスを制限する、請求項1に記載の情報処理装置。
【請求項6】
前記記憶部は、前記認証部により認証された前記アプリケーションが有する前記アクセス権限情報に含まれる前記ICチップのアクセス可能領域の情報をさらに記憶し、
前記制御部は、前記記憶部に記憶された前記アクセス可能領域の情報に基づいて、前記アプリケーションによる前記ICチップへのアクセス領域を制限する、請求項5に記載の情報処理装置。
【請求項7】
前記取得部が取得した前記認証情報を保持する保持部をさらに備え、
前記認証部は、前記保持部が保持する前記認証情報に基づいて、前記アプリケーションの認証を行う、請求項1に記載の情報処理装置。
【請求項8】
コンピュータを、
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
として機能させるためのプログラム。
【請求項9】
情報処理装置と、
前記情報処理装置と通信可能な外部サーバと、
を備え、
前記情報処理装置は、
ICチップにアクセスするためのアクセス権限情報を有するアプリケーションから、前記ICチップへのアクセス要求を受け付ける受付部と、
前記受付部が受け付けた前記アクセス要求に含まれる前記アクセス権限情報に基づいて、前記アプリケーションの認証を行うための認証情報を前記外部サーバから取得する取得部と、
前記取得部が取得した前記認証情報に基づいて、前記アプリケーションを認証する認証部と、
前記認証部による認証結果に基づいて、前記アプリケーションによる前記ICチップへのアクセスを制御する制御部と、
を備える、情報処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−28688(P2011−28688A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−176574(P2009−176574)
【出願日】平成21年7月29日(2009.7.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(504134520)フェリカネットワークス株式会社 (129)
【Fターム(参考)】
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願日】平成21年7月29日(2009.7.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(504134520)フェリカネットワークス株式会社 (129)
【Fターム(参考)】
[ Back to top ]