説明

通信装置、データアクセス方法、およびデータアクセスプログラム

【課題】不正なアプリケーションからのアクセス要求を的確に拒絶する。
【解決手段】アプリ承認コードを受け付けると、認証情報管理サーバから認証情報テーブルを取得し、証明書抽出部105は、認証情報テーブルを利用して証明書情報をパッケージマネージャ106から抽出し、検証処理部107は、証明書情報に基づいて、クライアントアプリケーション101の検証を行なう。クライアントアプリケーション101が正当であるとの検証が行なわれると、リクエストID生成部108は、クライアントアプリケーション101のためのリクエストIDを生成し、通知部109は、リクエストIDをパッケージ名およびアクティビティ名に基づいて定められたクライアントアプリケーション101に通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、任意のサイトからダウンロードしたアプリケーションを保持する通信装置およびこのアプリケーションによるデータアクセス方法、およびデータアクセスプログラムに関する。
【背景技術】
【0002】
近年の携帯電話は、さまざまなアプリケーションをサイトからダウンロードすることができる。しかしながら、悪意あるアプリケーションも存在しており、全てのアプリケーションに対して携帯電話における各データベース(例えば電話帳)に対するアクセスを許容すると、個人情報が外部に流出する可能性が高まり、好ましくはない。そのために、アプリケーションに対する検証を行い、必要なアプリケーションに対してのみ各データベースに対するアクセスを許容する仕組みが必要となる。
【0003】
特許文献1(特開平11−143840号公報)においては、クライアントオブジェクトプログラムに対する署名検証を行い、検証後、管理テーブルを用いて登録の有無をチェックすることにより、不正プログラムのチェックを行っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−143840号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、この特許文献1に記載の技術では、署名検証をしたり、またクライアント端末側において予め登録した情報に基づいて、プログラムの適否を判断しているため、プログラムそれ自体が不正なものであった場合、その機能を停止させることができない。すなわち、正当な手続きをもってして証明書等を手に入れたプログラムがあった場合、後になってそのインストールをしたプログラムを排除することは困難となる。
【0006】
そこで、本発明においては、プログラムなどのアプリケーションが詐称などされたとしても、不正なアプリケーションからのアクセス要求を的確に拒絶することができる通信装置、データアクセス方法、およびデータアクセスプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述の課題を解決するために、本発明の通信装置は、任意のサイトからダウンロードされたアプリケーションと、前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、を備える通信装置において、前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得手段と、前記取得手段により取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出手段と、前記証明書情報抽出手段により抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証手段と、前記検証手段により、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成手段と、前記生成手段により生成された許可情報を、認証情報テーブルに従って識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知手段と、を備えている。
【0008】
この発明によれば、アプリケーションから登録番号を受け付けると、認証情報管理サーバから登録番号、識別子および回答先指定情報を対応付けた認証情報テーブルを取得し、取得された認証情報テーブルに基づいて、登録番号に対応する識別子を特定する。そして、特定された識別子に基づいて証明書情報を抽出し、この証明書情報に基づいて、アプリケーションの検証を行なう。ここで、アプリケーションが正当であるとの検証が行なわれると、アプリケーションにおけるアクセスを許可するための許可情報を生成し、生成された許可情報を、抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する。
【0009】
これにより、不正なアプリケーションが他のアプリケーションを詐称した、データベースに対するアクセスは拒絶される。すなわち、他のアプリケーションを詐称した不正なアプリケーションは、データベースに必要な許可情報を受け取ることができないため、データベースに対してアクセスすることができず、よって不正な行為によるデータ流出を確実に防止することができる。
【0010】
また、認証情報管理サーバから取得した識別子および回答先指定情報に基づいてリクエストIDをアプリケーションに通知するため、仮に登録情報自体を正当な手続きを持ってして取得したアプリケーションが、後になって不正なアプリケーションであることが分かった場合、認証情報管理サーバ側において、そのような不正なアプリケーションに対しては許可情報を通知しないように、その認証情報テーブルを書き換えることができ、この場合においても、不正なアプリケーションによるデータベースに対するアクセスを防止することができる。
【0011】
また、本発明の通信装置において、アプリケーションは、アクセス要求および許可情報を、アクセス対象に対して送信し、前記アクセス対象は、前記許可情報が一致していた場合に、前記アプリケーションからのアクセスを許可するように構成してもよい。
【0012】
この発明によれば、アプリケーションは、アクセス要求および許可情報を、アクセス対象に対して送信し、アクセス対象は、許可情報が一致していた場合に、アプリケーションからのアクセスを許可することで、不正なアプリケーションからのアクセスを防止することができる。
【0013】
また、本発明の通信装置において、前記許可情報は、有効期限が定められており、前記アクセス対象は、前記許可情報の有効期限に基づいて、前記アプリケーションからのアクセスの可否を判断するようにしてもよい。
【0014】
この発明によれば、許可情報は、有効期限が定められており、アクセス対象は、許可情報の有効期限に基づいて、アプリケーションからのアクセスの可否を判断することができ、アクセス対象先に対するアクセスを制限することができ、データ流出のリスクを軽減することができる。
【0015】
また、本発明の通信装置において、前記許可情報の有効期限は、前記アプリケーションが起動している間であるようにしてもよい。
【0016】
この発明によれば、許可情報の有効期限は、アプリケーションが起動している間とすることで、簡易に有効期限を設定することができるとともに、アクセス対象からのデータ流出のリスクを低減することができる。
【0017】
また、本発明において、登録番号は、アプリ承認コードであり、識別子は、パッケージ名であり、回答先指定情報は、アクティビティ名であり、許可情報は、リクエストIDであり、それぞれアンドロイドにおいて規定されたものであるようにしてもよい。
【0018】
なお、本発明は、上述通信装置の発明のほか、データアクセス方法およびデータアクセスプログラムの発明としても捉えることができる。
【0019】
すなわち、本発明のデータアクセス方法は、任意のサイトからダウンロードされたアプリケーションと、前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、を備える通信装置におけるデータアクセス方法において、前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得ステップと、前記取得ステップにより取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出ステップと、前記証明書情報抽出ステップにより抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証ステップと、前記検証ステップにより、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成ステップと、前記生成ステップにより生成された許可情報を、認証情報テーブルに従って抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知ステップと、を備えている。
【0020】
また、本発明のデータアクセスプログラムは、任意のサイトからダウンロードされたアプリケーションと、前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、を利用したデータアクセスプログラムにおいて、前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得モジュールと、前記取得モジュールにより取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出モジュールと、前記証明書情報抽出モジュールにより抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証モジュールと、前記検証モジュールにより、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成モジュールと、前記生成モジュールにより生成された許可情報を、認証情報テーブルに従って抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知モジュールと、を備えている。
【発明の効果】
【0021】
本発明によれば、不正なアプリケーションが他のアプリケーションであると詐称して、データベースに対するアクセスをしようとしても、そのアクセスは拒絶される。すなわち、他のアプリケーションであると詐称した不正なアプリケーションは、データベースに必要なリクエストIDを受け取ることができないため、データベースにおける不正な行為によるデータ流出を確実に防止することができる。
【図面の簡単な説明】
【0022】
【図1】本実施形態の通信装置である携帯電話100を用いて通信システムのシステム構成を示すシステム図である。
【図2】本実施形態の携帯電話100の機能を示すブロック図である。
【図3】携帯電話100のハードウェア構成図である。
【図4】認証情報管理サーバ200に記憶されている認証情報テーブルの具体例を示す。
【図5】OSにおいて記憶されているパッケージ情報のリストを示す説明図である。
【図6】アドレス帳110などのデータベースに対するアクセス処理を示すフローチャートである。
【図7】アドレス帳110などのデータベースに対するアクセス処理を示すフローチャートである。
【発明を実施するための形態】
【0023】
添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【0024】
図1は、本実施形態の通信装置である携帯電話100を用いて通信システムのシステム構成を示すシステム図である。図1に示されるとおり、この通信システムは、携帯電話100および認証情報管理サーバ200から構成されており、携帯電話100は、ダウンロードしたアプリケーションを動作させようとしたときに、認証情報管理サーバ200から認証情報テーブルを取得し、この認証情報テーブルを用いて、アプリケーションの正当性を判断することができる。この認証情報管理サーバ200は、図1においては、非等だけ示しているが、後述するとおり、アプリケーションを管理するところは多数ある。そのため、アプリケーションを管理する会社(販売会社や、通信事業者)等ごとに存在するものである。
【0025】
図2は、本実施形態の携帯電話100の機能を示すブロック図である。図2に示されるとおり、この携帯電話100は、クライアントアプリケーション101(アプリケーション)、セキュア処理部102、パッケージマネージャ106、およびセキュアアドレス帳112を含んで構成されている。セキュア処理部102は、さらに、テーブル取得部103(取得手段)、記憶部104、証明書抽出部105(証明書情報抽出手段)、検証処理部107(検証手段)、リクエストID生成部108(生成手段)、および通知部109(通知手段)を含んで構成されている。また、セキュアアドレス帳112は、アドレス帳110およびリクエストID記憶部111を含んで構成されている。
【0026】
この携帯電話100は、図3に示されるハードウェア構成により実現される。図3は、携帯電話100のハードウェア構成図である。図2に示される携帯電話100は、物理的には、図3に示すように、CPU11、主記憶装置であるRAM12及びROM13、入力デバイスであるキーボード及びマウス等の入力装置14、ディスプレイ等の出力装置15、ネットワークカード等のデータ送受信デバイスである通信モジュール16、半導体メモリ等の補助記憶装置17などを含むコンピュータシステムとして構成されている。図2において説明した各機能は、図3に示すCPU11、RAM12等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU11の制御のもとで入力装置14、出力装置15、通信モジュール16を動作させるとともに、RAM12や補助記憶装置17におけるデータの読み出し及び書き込みを行うことで実現される。以下、図2に示す機能ブロックに基づいて、各機能ブロックを説明する。
【0027】
クライアントアプリケーション101は、プログラム等のアプリケーションであって、ネットワークを介してダウンロードされたアプリケーションである。図2においては、便宜上、クライアントアプリケーション101aから101cの3つしかクライアントアプリケーションを記述していないが、一般的に携帯電話100には、複数のクライアントアプリケーション101をダウンロードして記憶することができる。以降、クライアントアプリケーション101aから101cの一つ若しくは全てを含んで、クライアントアプリケーション101と称する。なお、このクライアントアプリケーション101は、携帯電話100において保持されているアドレス帳などの、各種データベースに対してアクセスすることができる機能を有している。また、このクライアントアプリケーション101は、メモリ等に記憶された状態で携帯電話100に保持されており、CPUにより処理されることにより各種機能を実行するものである。
【0028】
セキュア処理部102は、クライアントアプリケーション101からアクセス認証要求およびアプリ承認コードを受信すると、このアプリ承認コードに従って、クライアントアプリケーション101が不正なものであるか否かを判断する。以下、さらに詳細に説明する。
【0029】
テーブル取得部103は、クライアントアプリケーション101からアクセス認証要求、アプリ承認コードおよびコールバックアドレスを受信すると、アプリ承認コードに基づいて、記憶部104に記憶されているクライアントアプリケーション101の認証情報テーブルに、そのクライアントアプリケーション101に関する認証情報が記憶されているか否かを判断する。そして、記憶されていないと判断すると、認証情報管理サーバ200から認証情報テーブルを取得する。その際、認証情報管理サーバ200において記憶されている認証情報テーブルが前回取得した認証情報テーブルと比較して更新されたか否かを問い合わせ、更新されたとの回答を得た場合には、認証情報テーブル200から認証情報テーブルを取得する。
【0030】
例えば、テーブル取得部103は、HTTP(Hyper Text TransferProtocol)のGETコマンドを用いて、認証情報テーブルを示したファイル名を指定することで、認証情報管理サーバ200から認証情報テーブルを取得することができる。なお、当然ながら、HTTPや、GETコマンドを用いることに限定するものではなく、インターネットを経由して情報を取得できる手段であるならば、その取得方法は問わない。取得した認証情報テーブルは、記憶部104において更新されて記憶される。また、更新されていないとの回答を得た場合には、取得処理は行わない。この場合、前回取得された認証情報テーブルが記憶部104に記憶されたままとなる。そして、認証情報管理サーバ200において更新された場合には、アプリ承認コードに基づいて、更新された認証情報テーブルに、そのクライアントアプリケーション101に関する認証情報が記憶されているか否かを判断する。
【0031】
なお、上述では、テーブル取得部103が、アプリ承認コードに基づいて、既に記憶されている認証情報テーブルに、クライアントアプリケーション101の認証情報が記憶されている場合には、認証情報テーブルを取得しないようにしているが、これに限るものではなく、常時、認証情報管理サーバ200に対して、更新の有無の問い合わせを行うようにしてもよい。このような処理をすることで、不正なアプリケーションの発見を早期に行うことができる。また、テーブル取得部103は、クライアントアプリケーション101ごとに、その認証情報テーブルの取得先を変えるようにしてもよい。クライアントアプリケーション101ごとにその認証情報を管理する会社等は異なるため、認証情報テーブルを記憶しているサーバも当然に異なっている。なお、クライアントアプリケーション101には、認証情報管理サーバ200のアクセス先や、それを示す識別子などが記述されているなどして、クライアントアプリケーション101によって、そのアクセス先が異なるように構成されている。
【0032】
図4に、認証情報管理サーバ200に記憶されている認証情報テーブルの具体例を示す。図4に示されるとおり、アプリ承認コード、パッケージ名、アプリ承認の有効/無効、およびアクティビティ名を対応付けて記憶している。アプリ承認コードは、アクセスコントロール管理元で払い出したクライアントアプリケーション101の登録番号である。ここでいうアクセスコントロール管理元とは、アプリケーションの作成者による申請に対してその許認可を行うところを指すものであり、例えばアプリケーションの販売管理会社であったり、通信キャリア事業者である。アプリ承認の有効/無効とは、アプリ承認コードの有効または無効を示す情報であり、認証情報管理サーバ200のオペレータ(例えば、上述販売管理会社のオペレータ)により切り替えられるものである。例えば、クライアントアプリケーション101が不正なものであると、アプリ承認コード発行後に発覚した場合、アプリ承認コードを無効にすることにより、クライアントアプリケーション101のデータベースへのアクセス等を制限することができる。
【0033】
また、パッケージ名は、OS上でのアプリケーションの識別子であり、アクティビティ名は、アプリケーションの画面を特定するための情報である。このアクティビティ名は、本実施形態では、認証情報を戻すためのアドレス情報(回答先指定情報)として利用している。
【0034】
これら用語は、グーグル(登録商標)により規定された、スマートフォンなどの携帯端末のプラットフォームであるアンドロイド(Android)により規定されたものである。他のプラットフォームを利用した場合においても、上述と同様の機能や情報を持っている場合には、本実施形態の技術を適用することができる。
【0035】
記憶部104は、テーブル取得部103において取得された認証情報テーブルを記憶する部分である。
【0036】
証明書抽出部105は、テーブル取得部103により取得された認証情報テーブルを参照して、アプリ承認コードに対応するパッケージ名を特定し、このパッケージ名を利用してパッケージマネージャ106から、証明書を抽出する部分である。
【0037】
パッケージマネージャ106は、OS(Operating System)に備えられている管理プログラムであり、ダウンロードされた各アプリケーションの証明書情報を管理し、記憶する部分である。このパッケージマネージャ106は、証明書抽出部105からの証明書の抽出指示に応じて、パッケージ名に対応する証明書を証明書抽出部105に出力する。なお、パッケージマネージャ106は、ダウンロードしたアプリケーションごとにパッケージ情報(Packageinfo)を記憶しており、このパッケージ情報には証明書が含まれている。
【0038】
図5は、OSにおいて記憶されているパッケージ情報のリストを示す説明図である。図5においては、Packageinfoで示されたパッケージ情報を記憶していることを示している。それぞれアプリケーションの証明書を保持している。
【0039】
検証処理部107は、証明書抽出部105により抽出された証明書の検証を行い、クライアントアプリケーション101の正当性を判断する部分である。
【0040】
リクエストID生成部108は、検証処理部107において、クライアントアプリケーション101が正当であると判断されると、リクエストIDを生成する部分である。このリクエストIDは、クライアントアプリケーション101によるデータアクセスを許可するための許可情報である。リクエストID生成部108は、セキュアアドレス帳112に、生成したリクエストIDを記憶させる。なお、このリクエストIDは、有効期限があるものとしてもよく、例えば、クライアントアプリケーション101が起動している間、有効なものとする。すなわち、クライアントアプリケーション101が起動するごとに、プロセスIDが発行され、それとともに、リクエストIDが発行されるが、クライアントアプリケーション101が終了すると、これらプロセスIDおよびリクエストIDは無効となる。例えば、クライアントアプリケーション101が起動している間には、有効なプロセスIDおよびリクエストIDを記憶するためのバッファ領域を設けておき、クライアントアプリケーション101が終了したときには、そのバッファ領域からプロセスIDおよびリクエストIDを削除することにより、クライアントアプリケーション101と、リクエストIDとの同期を取ることができる。上述のリクエストIDの有効期限の設定については、必須のものではなく、データ流出リスクの増加を許容できるのであれば、設定しなくてもよい。
【0041】
そして、セキュアアドレス帳112は、このリクエストIDを用いて、有効期限内、すなわちクライアントアプリケーション101が、リクエストIDが発行されてから継続して起動しているのであれば、クライアントアプリケーション101による、携帯電話100に保持されている各種データに対するアクセスを許可することができる。
【0042】
通知部109は、リクエストID生成部108により生成されたリクエストIDを、パッケージ名およびアクティビティ名により特定されたクライアントアプリケーション101に通知する部分である。すなわち、通知部109は、認証情報テーブルを参照して、アプリ承認コードに基づいてパッケージ名およびアクティビティ名を抽出する。そして、抽出したパッケージ名およびアクティビティ名に基づいて特定されたクライアントアプリケーション101宛てにリクエストIDを通知する。
【0043】
また、通知部109は、アプリ認証要求を行ったクライアントアプリケーション101に対して、コールバックアドレスを用いて、当該アプリ認証要求に対する応答として、アプリ認証要求結果(OKまたはNG)を送信する。なお、リクエストIDが通知されるクライアントアプリケーション101と、アプリ認証要求結果が送信されるクライアントアプリケーション101とは、必ずしも同じとは限らない。クライアントアプリケーション101がアプリ承認コードを詐称してアクセスしようとした場合、アプリ承認コードに基づいてパッケージ名やアクティビティ名が特定される。その場合、パッケージ名やアクティビティ名に基づいて、正しいクライアントアプリケーション101が特定される。
【0044】
例えば、図2におけるクライアントアプリケーション101cが不正なアプリケーションとした場合、クライアントアプリケーション101aであるとして詐称して、クライアントアプリケーション101aのアプリ承認コードを送信したとする。しかしながら、アドレス帳110などのデータベースのアクセスに必要なリクエストIDは、アプリ承認コードに対応するアクティビティ名およびパッケージ名に基づいて特定されたクライアントアプリケーション101aに送信されることになる。よって、詐称したクライアントアプリケーション101cにリクエストIDが送信されることはない。
【0045】
アドレス帳110は、携帯電話100が保持しているデータベースであり、宛先人名やその電話番号、メールアドレスを対応付けて記憶する部分である。なお、本実施形態では、一例としてアドレス帳を、アクセス対象となるデータベースとして挙げているが、これに限るものではなく、電子メールのデータや、電話・電子メールの発着信履歴、携帯電話100の設定値情報などが、アクセス制限の対象のデータベースとして考えられる。
【0046】
リクエストID記憶部111は、リクエストID生成部108により生成されたリクエストIDを記憶する部分である。アドレス帳110は、このリクエストID記憶部111に記憶されたリクエストIDに基づいて、クライアントアプリケーション101からのアクセス要求に対して、その適否を判断する。
【0047】
このようにして、不正なクライアントアプリケーション101からのアクセスを確実に防止することができる。
【0048】
つぎに、本実施形態の携帯電話100を用いたデータアクセス処理方法について説明する。図6は、本実施形態の携帯電話100の処理を示すフローチャートである。まず、クライアントアプリケーション101が起動されると、その旨の起動信号がセキュア処理部102に出力され、その後、アプリ承認コードおよびコールバックアドレスを含んだ認証要求がセキュア処理部102に出力される(S101、S102)。
【0049】
そして、テーブル取得部103において、受け付けたアプリ承認コードに基づいて、認証情報テーブルから、アプリ承認コードに対応するアプリケーション情報の存在の有無が判断される(S103)。ここでアプリケーション情報がないと判断されると、テーブル取得部103により、認証情報管理サーバ200において、認証情報テーブルの更新がされたものか否かが判断されて、その後更新された場合には、当該認証情報管理サーバ200から認証情報テーブルが取得される(S104、S105)。なお、アプリケーション情報の存在の有無を判断することなく、常に認証情報管理サーバ200において認証情報テーブルの更新の有無を問い合わせるようにしてもよい。
【0050】
取得された認証情報テーブルは記憶部104に記憶され、更新される(S107)。なお、認証情報管理サーバ200において認証情報テーブルが更新されていない場合には、取得処理は行われない。その後、証明書抽出部105により、アプリ承認コードに対応するパッケージ名が、認証情報テーブルに基づいて特定され(S108)、パッケージマネージャ106から証明書の取得処理が行われる(S109、S110)。検証処理部107では、取得した証明書に基づいて検証処理が行われる(S111)。そして、証明書の検証結果がメッセージとして、表示部(図示せず)に表示される(S112)。
【0051】
その後、リクエストID生成部108によりリクエストIDが生成される(S113)。生成処理後、コールバックアドレスに基づいて、認証要求をしたクライアントアプリケーション101が特定され、当該クライアントアプリケーション101に対して認証結果が通知部109により通知される(S114)。また、アクティビティ名およびパッケージ名により特定されたクライアントアプリケーション101宛に、通知部109により、リクエストID生成部108により生成されたリクエストIDが送信される(S115、S116)。クライアントアプリケーション101では、送信されたリクエストIDが記憶される(S117)。
【0052】
このようにして、各種データベースにアクセスに必要なリクエストIDは、アプリ承認コードに対応したパッケージ名およびアクティビティ名に基づいて定められたクライアントアプリケーション101宛に送信することになり、必ずしも認証要求をしたクライアントアプリケーション101に送られることはない。よって、認証要求をしたクライアントアプリケーション101が不正なものであり、アプリ承認コードを詐称して認証要求を行ったとしても、リクエストIDを入手することができない。よって、アドレス帳や、各種データベースを不正なクライアントアプリケーション101からのアクセスから守ることができる。
【0053】
なお、もともと不正なクライアントアプリケーション101cに対して承認がおりて、証明書やアプリ承認コードが発行された場合においても、認証情報管理サーバ200において、そのアプリ承認コードを含んだ認証管理テーブルを送らないように、送信対象となる認証管理テーブルには、アプリ承認コード若しくはそれに対応するアクティビティ名などを含めないようにすることで、不正なクライアントアプリケーション101によるアドレス帳110などのデータベースに対するアクセスを適切に防止することができる。
【0054】
ここで、クライアントアプリケーション101がアドレス帳110などのデータベースに対してアクセスする際の処理について説明する。図7は、アドレス帳110などのデータベースに対するアクセス処理を示すフローチャートである。
【0055】
クライアントアプリケーション101により、セキュアアドレス帳112に対してアクセス要求を行う際において、予め保持されているリクエストIDは読み出され、アクセス要求とともにリクエストIDが、セキュアアドレス帳112に対して送信される(S201)。
【0056】
セキュアアドレス帳112では、アドレス帳110に対するアクセス要求を受けると、リクエストID記憶部111に記憶されているリクエストIDを読み出し、クライアントアプリケーション101から受け付けたリクエストIDと比較する(S202)。ここで、一致していれば、アドレス帳110によるアクセス許可が下され(S203)、一致していないのであれば、エラー処理行われる(S204)。
【0057】
このようにして、アドレス帳などのデータベースは、クライアントアプリケーション101からのアクセス要求に対して、リクエストIDに基づいてアクセスの可否を判断することができ、不正なクライアントアプリケーション101からのアクセス要求を拒絶することができる。よって、不正なクライアントアプリケーション101をインストールしたことによる、データの流出を確実に防止することができる。
【0058】
つぎに、本実施形態の携帯電話100の作用効果について説明する。本実施形態の携帯電話100によれば、テーブル取得部103において、クライアントアプリケーション101からアプリ承認コードを受け付けると、認証情報管理サーバ200からアプリ承認コード、パッケージ名およびアクティビティ名を対応付けた認証情報テーブルを取得する。そして、証明書抽出部105は、取得された認証情報テーブルに基づいて、アプリ承認コードに対応するパッケージ名を抽出する。そして、証明書抽出部105は、抽出されたパッケージ名に基づいて証明書情報をパッケージマネージャ106から抽出し、検証処理部107は、証明書情報に基づいて、クライアントアプリケーション101の検証を行なう。ここで、クライアントアプリケーション101が正当であるとの検証が行なわれると、リクエストID生成部108は、クライアントアプリケーション101のためのリクエストIDを生成し、通知部109は、生成されたリクエストIDを、認証情報テーブルから抽出されたパッケージ名およびアクティビティ名に基づいて定められた宛先となるクライアントアプリケーション101に通知する。
【0059】
これにより、例えば、不正なクライアントアプリケーション101cが、他のクライアントアプリケーション101aであると詐称して、アクセス対象となるデータベースは、そのアクセスを拒絶することができる。すなわち、他のクライアントアプリケーション101aであると詐称した不正なクライアントアプリケーション101cは、データベースに必要なリクエストIDを受け取ることができないため、データベースにおける不正な行為によるデータ流出を確実に防止することができる。
【0060】
また、認証情報管理サーバ200から取得したパッケージ名およびアクティビティ名に基づいてリクエストIDをクライアントアプリケーション101に通知するため、仮にアプリ承認コード自体を正当な手続きを持ってして取得したクライアントアプリケーション101が、後になって不正なクライアントアプリケーション101であることが分かった場合、認証情報管理サーバ200側において、そのような不正なクライアントアプリケーション101に対してはリクエストIDを通知しないように、その認証情報テーブルを書き換えることができ、この場合においても、不正なクライアントアプリケーション101によるデータベースに対するアクセスを防止することができる。
【0061】
また、本実施形態の携帯電話100において、クライアントアプリケーション101は、アクセス要求およびリクエストIDを、アクセス対象であるセキュアアドレス帳112に対して送信し、セキュアアドレス帳112は、リクエストIDが一致していると判断する場合に、クライアントアプリケーション101(例えばクライアントアプリケーション101a)からのアクセスを許可することで、不正なクライアントアプリケーション101(例えば、クライアントアプリケーション101c)からのアクセスを防止することができる。
【0062】
また、本実施形態の携帯電話100において、リクエストIDは、有効期限が定められており、アクセス対象であるセキュアアドレス帳112は、リクエストIDの有効期限に基づいて、クライアントアプリケーション101からのアクセスの可否を判断することができ、アクセス対象先に対するアクセスを制限することができ、データ流出のリスクを軽減することができる。
【0063】
また、本実施形態の携帯電話100において、リクエストIDの有効期限は、クライアントアプリケーション101が起動している間とすることで、簡易に有効期限を設定することができるとともに、アクセス対象からのデータ流出のリスクを低減することができる。
【0064】
なお、リクエストIDの有効期限の管理方法として、上述のほか、タイマー等を利用して有効期限内であるか否かを判断することにより、リクエストIDの一致・不一致を判断するようにしてもよい。
【0065】
なお、上述の実施形態においては、クライアントアプリケーション101からの認証要求は、アプリ承認コードとともに送信しているが、これに限るものではない。例えば、認証要求およびアプリ承認コードに加えて、アクティビティ名を追加して、セキュア処理部102に送信するようにしてもよい。このような処理をとった場合、認証情報管理サーバ200においては、アクティビティ名との対応付けた認証情報テーブルは必要なくなり、認証情報テーブルは、アプリ承認コード、パッケージ名、およびアプリの有効/無効を対応付けて記憶しておけばよい。
【0066】
なお、上述の通信装置100におけるセキュア処理部102は、プログラムとして実現することができる。例えば、セキュア処理部102は、データアクセスプログラムとして存在するものであって、テーブル取得モジュール(取得モジュール)、記憶モジュール、証明書抽出モジュール(証明書情報抽出モジュール)、検証処理モジュール(検証モジュール)、リクエストID生成モジュール(生成モジュール)、および通知モジュール(通知モジュール)を含んで構成されているようにしてもよい。また、このようなプログラムをCD−ROM、DVD、そのほか半導体メモリなどに記憶させておき、必要に応じて、通信装置にインストールすることにより本実施形態の機能を実現するようにしてもよい。
【符号の説明】
【0067】
100…携帯電話、101…クライアントアプリケーション、
101a…クライアントアプリケーション、101c…クライアントアプリケーション、102…セキュア処理部、103…テーブル取得部、104…記憶部、105…証明書抽出部、106…パッケージマネージャ、107…検証処理部、108…リクエストID生成部、109…通知部、110…アドレス帳、111…リクエストID記憶部、112…セキュアアドレス帳、200…認証情報管理サーバ。


【特許請求の範囲】
【請求項1】
任意のサイトからダウンロードされたアプリケーションと、
前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、
を備える通信装置において、
前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得手段と、
前記取得手段により取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出手段と、
前記証明書情報抽出手段により抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証手段と、
前記検証手段により、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成手段と、
前記生成手段により生成された許可情報を、認証情報テーブルに従って抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知手段と、
を備える通信装置。
【請求項2】
アプリケーションは、アクセス要求および許可情報を、アクセス対象に対して送信し、
前記アクセス対象は、前記許可情報が一致していた場合に、前記アプリケーションからのアクセスを許可する
ことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記許可情報は、有効期限が定められており、
前記アクセス対象は、前記許可情報の有効期限に基づいて、前記アプリケーションからのアクセスの可否を判断する
ことを特徴とする請求項1または2に記載の通信装置。
【請求項4】
前記許可情報の有効期限は、前記アプリケーションが起動している間であることを特徴とする請求項3に記載の通信装置。
【請求項5】
登録番号は、アプリ承認コードであり、
識別子は、パッケージ名であり、
回答先指定情報は、アクティビティ名であり、
許可情報は、リクエストIDであり、
それぞれアンドロイドにおいて規定されたものである
ことを特徴とする請求項1から4のいずれか一項に記載の通信装置。
【請求項6】
任意のサイトからダウンロードされたアプリケーションと、
前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、
を備える通信装置におけるデータアクセス方法において、
前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得ステップと、
前記取得ステップにより取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出ステップと、
前記証明書情報抽出ステップにより抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証ステップと、
前記検証ステップにより、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成ステップと、
前記生成ステップにより生成された許可情報を、認証情報テーブルに従って抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知ステップと、
を備えるデータアクセス方法。
【請求項7】
任意のサイトからダウンロードされたアプリケーションと、
前記アプリケーションをダウンロードする際に、前記アプリケーションの検証のための証明書情報を、OS上においてアプリケーションを識別するための識別子と対応付けて記憶するパッケージマネージャと、
を利用したデータアクセスプログラムにおいて、
前記アプリケーションから、当該アプリケーションの管理元において割り当てられた登録番号を受け付けると、認証情報管理サーバから、アプリケーションの登録番号、OS上におけるアプリケーションの識別子およびアプリケーションに対して情報の回答先を特定するための回答先指定情報を対応付けた認証情報テーブルを取得する取得モジュールと、
前記取得モジュールにより取得された認証情報テーブルに基づいて、前記受け付けられた登録番号に対応する識別子を特定し、当該識別子に基づいて証明書情報を、前記パッケージマネージャから抽出する証明書情報抽出モジュールと、
前記証明書情報抽出モジュールにより抽出された証明書情報に基づいて、前記アプリケーションの検証を行なう検証モジュールと、
前記検証モジュールにより、前記アプリケーションが正当であるとの検証が行なわれると、前記アプリケーションにおけるデータに対するアクセスを許可するための許可情報を生成する生成モジュールと、
前記生成モジュールにより生成された許可情報を、認証情報テーブルに従って抽出された識別子および回答先指定情報に基づいて定められたアプリケーションに通知する通知モジュールと、
を備えるデータアクセスプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−3733(P2013−3733A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−132534(P2011−132534)
【出願日】平成23年6月14日(2011.6.14)
【出願人】(591144475)ドコモ・システムズ株式会社 (8)
【Fターム(参考)】