(57)【要約】      （修正有）【課題】デジタル署名付きのアプリケーションを抜き出して他の端末にインストールした場合に、他の端末でのアプリケーションの起動を防止するデジタル署名管理装置を提供する。【解決手段】署名分離処理部１１１は、デジタル署名２０２付きのアプリケーション２００をインストールする際に、デジタル署名２０２をアプリケーション２００から分離する。第１のインストーラ１１２は、デジタル署名２０２が分離されたアプリケーション２００をインストールする。第２のインストーラ１１３は、アプリケーション２００とデジタル署名２０２とを紐付けた情報を保存し、且つ、デジタル署名２０２を保存する。アプリ起動処理部１２１は、アプリケーション２００を起動する際に、前記情報を参照し、アプリケーション２００に紐付けられたデジタル署名２０２が正しいか否かをチェックし、正しければ、アプリケーション２００を起動する。【選択図】図１
2018028785.tif 000002
【特許請求の範囲】
【請求項１】
デジタル署名付きのアプリケーションをインストールする際に、前記デジタル署名を前記アプリケーションから分離する分離処理部と、
前記デジタル署名が分離された前記アプリケーションをインストールする第１のインストーラと、
前記アプリケーションと前記デジタル署名とを紐付けた情報を保存し、且つ、前記デジタル署名を保存する第２のインストーラと、
前記アプリケーションを起動する際に、前記情報を参照し、前記アプリケーションに紐付けられた前記デジタル署名が正しいか否かをチェックし、正しければ、前記アプリケーションを起動する起動処理部、を備える
ことを特徴とするデジタル署名管理装置。
【請求項２】
前記第１のインストーラは、ストレージに前記アプリケーションをインストールし、
前記第２のインストーラは、他のストレージに前記情報を保存し、且つ、前記デジタル署名を保存する
ことを特徴とする請求項１に記載のデジタル署名管理装置。
【請求項３】
前記アプリケーションを削除する際、前記アプリケーションに紐付けられた前記デジタル署名と前記情報を削除する
ことを特徴とする請求項１に記載のデジタル署名管理装置。
【請求項４】
前記アプリケーションのバージョンアップ時に、新しいデジタル署名が付加されている場合、前記第２インストーラは、前記デジタル署名を前記新しいデジタル署名に更新し、更に、前記アプリケーションと前記新しいデジタル署名とを紐付けた情報を記憶させる
ことを特徴とする請求項１に記載のデジタル署名管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション内のデジタル署名の管理に関する。
【背景技術】
【０００２】
スマートフォン、タブレット、パソコンなどの端末が普及するに従い、端末は、カメラ、Global Positioning System（GPS）、指紋センサなどの個人情報に関連した多くのセンサを搭載するようになっている。これらの個人情報の漏洩を防ぐため、端末には、改竄されたアプリケーションを起動できない仕組みなどが搭載される。改竄されたアプリケーションの起動を制限する方法として、例えば、アプリケーションにデジタル署名を付加する方法が知られている。
【０００３】
端末内で耐タンパ領域を設け、アプリケーションの認証に使用した情報を耐タンパ領域に保持することで、アプリケーションの改竄を防止する技術が知られている（例えば、特許文献１を参照）。
【０００４】
アプリケーションが作成したデータを、他のアプリケーションや偽装アプリケーションから保護する技術が知られている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２２３２３５号公報
【特許文献２】特開平１１−２４９１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アプリケーションにデジタル署名を施すと、作成した署名ファイルは、アプリケーションに付加されて一緒に配布される。そのため、端末からアプリケーションを抜き出し、他の端末にインストールして動作させることができる。
【０００７】
本発明は１つの側面において、デジタル署名付きのアプリケーションを抜き出して他の端末にインストールした場合に、他の端末でのアプリケーションの起動を防止することを目的とする。
【課題を解決するための手段】
【０００８】
分離処理部は、デジタル署名付きのアプリケーションをインストールする際に、前記デジタル署名を前記アプリケーションから分離する。第１のインストーラは、前記デジタル署名が分離された前記アプリケーションをインストールする。第２のインストーラは、前記アプリケーションと前記デジタル署名とを紐付けた情報を保存し、且つ、前記デジタル署名を保存する。起動処理部は、前記アプリケーションを起動する際に、前記情報を参照し、前記アプリケーションに紐付けられた前記デジタル署名が正しいか否かをチェックし、正しければ、前記アプリケーションを起動する。
【発明の効果】
【０００９】
本発明によれば、デジタル署名付きのアプリケーションを抜き出して他の端末にインストールした場合に、他の端末でのアプリケーションの起動を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るデジタル署名管理装置の構成の例を説明する図である。
【図２】配布されるアプリケーションのファイル構造の例を説明する図である。
【図３】本実施形態に係る署名データDBの例を説明する図である。
【図４】本実施形態に係るデジタル署名管理装置のハードウェア構成の例を説明する図である。
【図５】アプリケーションをインストールする際の処理の例を説明するフローチャートである。
【図６】アプリケーションを起動する際の処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
アプリケーションにデジタル署名を施す際、署名ファイルがアプリケーションに含まれるため、端末からアプリケーションを抜き出して他端末にインストールしても署名が有効なままであり、他端末でアプリケーションを使用できてしまう。そのため、本発明に係るデジタル署名管理装置は、アプリケーションとデジタル署名とを紐づけた状態で別々に管理することで、アプリケーションを抜き出して他端末にインストールしても署名が有効でないため、他端末でアプリケーションを使用することを防止できる。
【００１２】
図１は、本実施形態に係るデジタル署名管理装置の構成の例を説明する図である。アプリケーション２００は、ライブラリ２０１、署名２０２、リソース２０３のフォルダを含む。本実施形態に係るデジタル署名管理装置１００は、インストーラ１１０、アプリ起動処理部１２１、署名管理部１２２、ストレージ１３０、セキュアストレージ１４０を備える。インストーラ１１０は、アプリケーション２００をデジタル署名管理装置１００にインストールする処理をする際に動作する。アプリ起動処理部１２１は、インストールされたアプリケーションを使用する際に動作する。署名管理部１２２は、アプリ起動処理部１２１でアプリケーションを使用する際に用いられる署名を管理する。ストレージ１３０は、メモリである。セキュアストレージ１４０は、特別な権限を持つアプリケーションやライブラリがアクセスできるストレージである。本実施形態では、インストーラ１１０内の署名インストーラ１１３と署名管理部１２２が特別な権限を保持している。
【００１３】
＜インストール処理＞
アプリケーション２００をデジタル署名管理装置１００にインストールする際、インストーラ１１０内の署名分離処理部１１１は、アプリケーション２００の署名２０２を、アプリケーション２００から分離する。その結果、アプリケーション２００は、ライブラリ２０１とリソース２０３のフォルダを含むアプリケーション２００´と、署名２０２のフォルダとに分離される。
【００１４】
署名インストーラ１１３は、署名２０２のフォルダをセキュアストレージ１４０に保存する。又、署名インストーラ１１３は、セキュアストレージ１４０に保存した署名２０２とアプリケーション２００´とを紐づけて、セキュアストレージ１４０内の署名データベース（DB）１４１に保存する。
【００１５】
アプリインストーラ１１２は、署名２０２が分離されたアプリケーション２００´をストレージ１３０にインストールする。その後、署名チェック部１１４は、セキュアストレージ１４０にインストールされたアプリケーション２００´に対応する署名２０２が正しいか否かをチェックする。署名チェック部１１４は、署名２０２が正しいアプリケーション２００´の署名ファイルであると判定すると、アプリケーション２００´を利用可能なアプリケーションとして登録する。デジタル署名管理装置１００は、以降、アプリケーション２００´を利用可能となる。
【００１６】
＜アプリケーション起動＞
ユーザの操作などによりアプリケーション２００´を起動が指示されると、アプリ起動処理部１２１は、署名管理部１２２に署名２０２のチェック要求を通知する。署名管理部１２２は、アプリケーション２００´に紐付けられた署名２０２が署名データDB１４１に登録されているか否かを判定する。更に、署名管理部１２２は、アプリケーション２００´が利用可能と署名データDB１４１に登録されているか否かを判定する。アプリケーション２００´に紐付けられた署名２０２が署名データDB１４１に登録されており、且つ、アプリケーション２００´が利用可能と署名データDB１４１に登録されている場合、アプリ起動処理部１２１は、アプリケーション２００´を起動する。
【００１７】
なお、アプリケーション２００´を削除する指示を取得した場合、インストーラ１１０は、署名２０２と、署名２０２とアプリケーション２００´とが対応づけられている情報と、を削除する。アプリケーション２００´のバージョンアップ時に署名２０２と異なる署名ファイルが付加されていた場合、インストーラ１１０は、署名２０２を更新し、併せて、署名データDB１４１も更新する。
【００１８】
アプリケーション２００´が、デジタル署名管理装置１００から抜き出され、他の端末にインストールされた場合、他端末では、署名データDB１４１にアプリケーション２００´に紐付けられた署名２０２が登録されておらず、又、アプリケーション２００´が利用可能と登録されていない。そのため、アプリケーションを抜き出して他端末にインストールしても署名が有効でないため、他端末でアプリケーションを使用することを防止できる。
【００１９】
図２は、配布されるアプリケーションのファイル構造の例を説明する図である。アプリケーション２００が内包するアプリケーションフォルダ（拡張子apk）は、ライブラリフォルダ、署名フォルダ、リソースフォルダを含む。ライブラリフォルダは、ライブラリ２０１のファイルを含む。ライブラリ２０１のファイルは、汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたものである。署名フォルダは、署名２０２のファイルを含む。デジタル署名は、電磁的記録（電子文書）に付与される電子的な徴証であり、紙文書における印章やサイン（署名）に相当する役割をはたす。リソースフォルダは、リソース２０３のファイルである。リソース２０３のファイルは、実際のアプリケーション２００を動作させるプログラムファイルである。
【００２０】
本実施形態におけるデジタル署名管理装置１００では、アプリケーション２００を、ライブラリ２０１とリソース２０３を含むアプリケーション２００´と、署名２０２とに分離し、異なるストレージに保存する。これにより、アプリケーション２００´が、デジタル署名管理装置１００から抜き出され、他の端末にインストールされた場合でも、他端末では、署名２０２が保存されない。そのため、アプリケーションを抜き出して他端末にインストールしても署名が有効でないため、他端末でアプリケーションを使用することを防止できる。
【００２１】
図３は、本実施形態に係る署名データDBの例を説明する図である。署名データDB１４１は、アプリ名、署名ファイル名、利用可否情報の項目を備える。署名データDB１４１のアプリ名の項目は、アプリケーション２００´（アプリケーション２００と同一）の名称を表す情報を保持する。署名データDB１４１の署名ファイル名の項目は、アプリケーション２００´と紐付ける署名２０２を示す情報を保持する。署名データDB１４１の内で、アプリケーション２００´のアプリ名と署名ファイル名とが対応づけられることで、署名管理部１２２は、アプリケーション２００´が正しい署名２０２を保持しているか否かを判定できる。
【００２２】
署名データDB１４１の利用可否情報の項目は、各アプリケーション２００´が利用可能か否かを示す情報を保持する。利用可否情報は、アプリケーション２００のインストール時に署名２０２が正しいものと判定された場合に、署名チェック部１１４により登録される情報である。
【００２３】
図４は、本実施形態に係るデジタル署名管理装置のハードウェア構成の例を説明する図である。デジタル署名管理装置１００は、通信部１１、入出力装置１２、表示部１３、プロセッサ１４、バス１５、セキュアストレージ１６、ストレージ１７、Random Access Memory（RAM）１８を備える。
【００２４】
プロセッサ１４は、Central Processing Unitなどの任意の処理回路である。プロセッサ１４は、デジタル署名管理装置１００における署名分離処理部１１１、アプリインストーラ１１２、署名インストーラ１１３、署名チェック部１１４、アプリ起動処理部１２１、署名管理部１２２として動作する。なお、プロセッサ１４は、例えば、ストレージ１７に記憶されたプログラムを実行することができる。プロセッサ１４は、シングルプロセッサ、マルチプロセッサでもよい。ストレージ１７は、図１のストレージ１３０として動作し、アプリケーション２００´を記憶する。ストレージ１７は、プロセッサ１４の動作により得られたデータや、プロセッサ１４の処理に用いられるデータも、適宜、記憶する。セキュアストレージ１６は、図１のセキュアストレージ１４０として動作し、署名２０２と署名２０２の管理に使用する署名データDB１４１を記憶する。セキュアストレージ１４０は、特別な権限を持つアプリケーションやライブラリ、Operation System(OS)などがアクセスできるストレージである。本実施形態では、インストーラ１１０内の署名インストーラ１１３と署名管理部１２２が特別な権限を保持している。
【００２５】
入出力装置１２は、例えば、ボタン、キーボード、マウス、タッチパネル等の入力装置として実現される。表示部１３は、ディスプレイなどとして実現される。バス１５は、通信部１１、入出力装置１２、表示部１３、プロセッサ１４、セキュアストレージ１６、ストレージ１７、RAM１８の間を相互にデータの受け渡しが行えるように接続する。
【００２６】
通信部１１は、他端末や他装置との通信を制御するモジュールである。通信部１１で送受信したデータは、適宜、プロセッサ１４で処理される。
【００２７】
セキュアストレージ１６とストレージ１７は、例えば、Read Only Memory(ROM)、Random Access Memory（RAM）、Electrically Erasable Programmable Read-Only Memory(EEPROM)、不揮発性RAM、フラッシュメモリ、Hard Disk Drive(HDD)などである。ストレージ１７は、署名２０２が分離されたアプリケーション２００´を記憶する。セキュアストレージ１６は、署名２０２と、署名２０２とアプリケーション２００´の関係性を記憶した署名データDB１４１を記憶する。
【００２８】
図５は、アプリケーションをインストールする際の処理の例を説明するフローチャートである。署名分離処理部１１１は、アプリケーション２００を取得すると、アプリケーション２００が署名２０２を含むか否かを判定する（ステップＳ１０１）。アプリケーション２００が署名２０２を含む場合（ステップＳ１０１でＹＥＳ）、署名分離処理部１１１は、アプリケーション２００の署名２０２を、アプリケーション２００から分離する（ステップＳ１０２）。
【００２９】
署名インストーラ１１３は、署名２０２のフォルダをセキュアストレージ１４０に保存する（ステップＳ１０３）。署名インストーラ１１３は、セキュアストレージ１４０に保存した署名２０２とアプリケーション２００´とを紐づけて、セキュアストレージ１４０内の署名データベース（DB）１４１に保存する（ステップＳ１０４）。
【００３０】
アプリインストーラ１１２は、署名２０２が分離されたアプリケーション２００´をストレージ１３０にインストールする（ステップＳ１０５）。署名チェック部１１４は、セキュアストレージ１４０にインストールされたアプリケーション２００´に対応する署名２０２が正しいか否かのチェックを開始する（ステップＳ１０６）。署名チェック部１１４は、ステップＳ１０６のチェックで署名２０２が正しいか否かを判定する（ステップＳ１０７）。
【００３１】
署名２０２が正しい場合（ステップＳ１０７でＹＥＳ）、署名チェック部１１４は、アプリケーション２００´を利用可能なアプリケーションとして署名データDB１４１に登録する（ステップＳ１０８）。署名２０２が正しくない場合（ステップＳ１０７でＮＯ）、署名チェック部１１４は、アプリケーション２００´を利用可能でないアプリケーションとして署名データDB１４１に登録する（ステップＳ１０９）。なお、アプリケーション２００が署名２０２を含まない場合（ステップＳ１０１でＮＯ）にも、署名チェック部１１４は、アプリケーション２００´を利用可能でないアプリケーションとして署名データDB１４１に登録する（ステップＳ１０９）。ステップＳ１０８又はステップＳ１０９の処理が終了すると、インストーラ１１０は、アプリケーション２００のインストール処理を終了する。
【００３２】
図６は、アプリケーションを起動する際の処理の例を説明するフローチャートである。アプリ起動処理部１２１は、ユーザの操作などによりアプリケーション２００´を起動する指示を受け付ける（ステップＳ２０１）。署名管理部１２１は、アプリケーション２００´に紐付けられた署名２０２が署名データDB１４１に登録されているか否かを判定する（ステップＳ２０２）。アプリケーション２００´に紐付けられた署名２０２が署名データDB１４１に登録されている場合（ステップＳ２０２でＹＥＳ）、署名管理部１２１は、アプリケーション２００´が利用可能と署名データDB１４１に登録されているか否かを判定する（ステップＳ２０３）。アプリケーション２００´が利用可能と署名データDB１４１に登録されている場合（ステップＳ２０３でＹＥＳ）、アプリ起動処理部１２１は、アプリケーション２００´を起動する（ステップＳ２０４）。
【００３３】
アプリケーション２００´に紐付けられた署名２０２が署名データDB１４１に登録されていない場合（ステップＳ２０２でＮＯ）、又は、アプリケーション２００´が利用可能と署名データDB１４１に登録されていない場合（ステップＳ２０３でＮＯ）、アプリ起動処理部１２１は、アプリケーション２００´の起動を中止する（ステップＳ２０５）。
【００３４】
アプリケーション２００´が、デジタル署名管理装置１００から抜き出され、他の端末にインストールされた場合、他端末では、署名データDB１４１にアプリケーション２００´に紐付けられた署名２０２が登録されておらず、又、アプリケーション２００´が利用可能と登録されていない。そのため、アプリケーションを抜き出して他端末にインストールしても署名が有効でないため、他端末でアプリケーションを使用することを防止できる。
【符号の説明】
【００３５】
１００  デジタル署名管理装置
１１０  インストーラ
１１１  署名分離処理部
１１２  アプリインストーラ
１１３  署名インストーラ
１１４  署名チェック部
１２１  アプリ起動処理部
１２２  署名管理部１２２
１３０  ストレージ
１４０  セキュアストレージ
１４１  署名データDB
２００  アプリケーション
２０１  ライブラリ
２０２  署名
２０３  リソース
【図１】
2018028785.tif 000003
【図２】
2018028785.tif 000004
【図３】
2018028785.tif 000005
【図４】
2018028785.tif 000006
【図５】
2018028785.tif 000007
【図６】
2018028785.tif 000008