(57)【要約】【課題】端末アプリの端末間移動や改ざんによる実行を防止する。【解決手段】端末アプリの実行に必須の実行許可情報について、端末アプリのハッシュ値及び端末識別情報で暗号化して端末に置き、実行の都度、端末アプリのハッシュ値と端末の端末識別情報で復号化して端末アプリに提供することにより、端末アプリが改ざんされておらず、かつ、端末間で移動されてもいない場合以外は、実行許可情報の復号と端末アプリ実行が不可能となる。このため、端末アプリの端末間移動や改ざんによる実行を防止することができる。また、実行許可情報を端末に置くことで、実行ごとに制御サーバにアクセスする必要が無く端末及びサーバで情報処理と通信の負荷が削減できる。【選択図】図１
2013046122.tif 000002
【特許請求の範囲】
【請求項１】
端末アプリの実行及びその他の情報処理を行う端末であって、
端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段と、
端末アプリからハッシュ値を生成するハッシュ生成手段と、
端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段が生成したハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化してその端末アプリに提供する復号化手段と、
を有することを特徴とする端末。
【請求項２】
生成された前記ハッシュ値と、前記端末アプリを識別するアプリ識別情報と、を含む確認要求を所定の制御サーバへ送信する確認要求送信手段と、
送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報を受信する許可情報受信手段と、
受信された前記実行許可情報を、前記確認要求に係る前記ハッシュ値と、この端末の端末識別情報と、で暗号化し暗号化データとする暗号化手段と、
を有することを特徴とする請求項１記載の端末。
【請求項３】
生成された前記ハッシュ値と、前記端末アプリを識別するアプリ識別情報と、端末の端末識別情報と、を含む確認要求を所定の制御サーバへ送信する確認要求送信手段と、
送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報であって、前記確認要求に含まれる前記ハッシュ値及び前記端末識別情報と、で暗号化された暗号化データを受信する暗号許可受信手段と、
を有することを特徴とする請求項１記載の端末。
【請求項４】
端末へ端末アプリを提供する制御サーバであって、
前記端末アプリの実行に必要となる所定の実行許可情報を、その端末アプリに係るハッシュ値と、前記端末から受信する端末識別情報と、で暗号化し暗号化データとする暗号化手段と、
アプリ保護プログラムを組み込んだ端末アプリ及び前記暗号化データを端末に提供する提供手段と、
を有し、
前記アプリ保護プログラムは前記端末に、
前記端末において前記端末アプリを実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて所定の暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させる
ことを特徴とする制御サーバ。
【請求項５】
端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段と、
端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認手段と、
前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認手段と、
前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求の送信元である前記端末へ送信する許可送信手段と、
を有することを特徴とする制御サーバ。
【請求項６】
端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段と、
端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認手段と、
前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認手段と、
前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求から取得する前記ハッシュ値及び前記端末識別情報で暗号化し暗号化データとする暗号化手段と、
暗号化された前記暗号化データを、前記確認要求の送信元である前記端末へ送信する許可送信手段と、
を有することを特徴とする制御サーバ。
【請求項７】
アプリ保護プログラムを構成する共通モジュールを端末に提供する共通提供手段と、
前記共通モジュールとともに前記アプリ保護プログラムを実現する個別モジュールを組み込んだ端末アプリを端末に提供する個別提供手段と、
を有し、
前記共通モジュールは前記端末に、
前記端末に導入された前記端末アプリからハッシュ値を生成させ、
生成された前記ハッシュ値と前記端末アプリを識別するアプリ識別情報とを含む確認要求を所定の制御サーバへ送信させ、
送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報であって、前記確認要求に係る前記ハッシュ値及びこの端末の端末識別情報とで暗号化し暗号化データとしたものを所定の暗号許可記憶手段に記憶させ、
前記個別モジュールは前記端末に、
その個別モジュールを組み込んだ端末アプリが前記端末で初回に起動されるとき、前記共通モジュールに、その端末アプリに含まれる前記アプリ識別情報を渡して前記確認要求を指示させ、
前記端末において前記端末アプリを再度実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させる
ことを特徴とする請求項５又は６記載の制御サーバ。
【請求項８】
請求項１から３のいずれか一項に記載の端末Ｔと、
請求項４から７のいずれか一項に記載の制御サーバと、
を有することを特徴とするアプリ保護システム。
【請求項９】
端末アプリの実行及びその他の情報処理を行う端末におけるアプリ保護方法であって、
端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段を有するコンピュータが、
端末アプリからハッシュ値を生成するハッシュ生成処理と、
端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段が生成したハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化してその端末アプリに提供する復号化処理と、
を行うことを特徴とするアプリ保護方法。
【請求項１０】
端末へ端末アプリを提供する制御サーバのコンピュータが、
前記端末アプリの実行に必要となる所定の実行許可情報を、その端末アプリに係るハッシュ値と、前記端末から受信する端末識別情報と、で暗号化し暗号化データとする暗号化処理と、
アプリ保護プログラムを組み込んだ端末アプリ及び前記暗号化データを端末に提供する提供処理と、
を実行し、
前記アプリ保護プログラムは前記端末に、
前記端末において前記端末アプリを実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて所定の暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させる
ことを特徴とするアプリ保護方法。
【請求項１１】
端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段を有する制御サーバのコンピュータが、
端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認処理と、
前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認処理と、
前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求の送信元である前記端末へ送信する許可送信処理と、
を実行することを特徴とするアプリ保護方法。
【請求項１２】
端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段を有する制御サーバのコンピュータが、
端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認処理と、
前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認処理と、
前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求から取得する前記ハッシュ値及び前記端末識別情報で暗号化し暗号化データとする暗号化処理と、
暗号化された前記暗号化データを、前記確認要求の送信元である前記端末へ送信する許可送信処理と、
を実行することを特徴とするアプリ保護方法。
【請求項１３】
端末アプリの実行及びその他の情報処理を行う端末のためのアプリ保護プログラムであって、
前記プログラムは、端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段を有するコンピュータを制御することにより
端末アプリからハッシュ値を生成させ、
端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段に生成させたハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化させてその端末アプリに提供させる
ことを特徴とするアプリ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末用アプリの保護に関する。
【背景技術】
【０００２】
スマートフォンや携帯電話端末装置に代表されるモバイル情報端末（以下「端末」）で実行されるアプリケーション・ソフトウェア（以下「端末アプリ」や「アプリ」とも呼ぶ）が普及し、多様な機能を提供している。端末アプリには有料課金モデルや限定特典など、利用する端末やユーザを限定するものも多く、この種の端末アプリは購入などで正当な利用権原のある端末に限って実行が許諾される。この種の端末アプリは、提供者に無断で端末間でコピーや移動がされると、許諾外の端末上で利用され有料課金収入を脅かすなど、優良なソフトの普及を阻害する弊害が生じる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０４９８７６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そのような弊害を防止するため、導入すなわちインストールや初回起動時に、端末識別情報（固有製造番号など）を端末アプリ内に埋め込み、他の端末に移しても動作しないようにする工夫も提案されている。しかし、この場合、端末アプリのうち埋め込まれた端末識別情報の部分を改ざんすることで、任意の端末上でも無断利用されるおそれがあった。
【０００５】
端末と利用権原に関しては、指紋認証などで正当なユーザだけに端末の操作を許す技術はあるが（例えば、特許文献１参照）、この技術は、端末の各種操作を許す前に一括してユーザ認証を行うもので、認証されたユーザであれば端末内の情報は自由に操作できるので、端末アプリの端末間移動や改ざんを防止するものではなかった。
【０００６】
上記の課題に対し、本発明の目的は、端末アプリの端末間移動や改ざんによる実行を防止することである。
【課題を解決するための手段】
【０００７】
上記の目的をふまえ、本発明の一態様（１）は、端末アプリの実行及びその他の情報処理を行う端末であって、端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段と、端末アプリからハッシュ値を生成するハッシュ生成手段と、端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段が生成したハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化してその端末アプリに提供する復号化手段と、を有することを特徴とする。
【０００８】
本発明の他の態様（９）は、上記態様を方法のカテゴリで捉えたもので、端末アプリの実行及びその他の情報処理を行う端末におけるアプリ保護方法であって、端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段を有するコンピュータが、端末アプリからハッシュ値を生成するハッシュ生成処理と、端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段が生成したハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化してその端末アプリに提供する復号化処理と、を行うことを特徴とする。
【０００９】
本発明の他の態様（１３）は、上記態様をコンピュータ・プログラムのカテゴリで捉えたもので、端末アプリの実行及びその他の情報処理を行う端末のためのアプリ保護プログラムであって、前記プログラムは、端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する暗号許可記憶手段を有するコンピュータを制御することにより、端末アプリからハッシュ値を生成させ、端末アプリを実行しようとするとき、その端末アプリから前記ハッシュ生成手段に生成させたハッシュ値及びこの端末の端末識別情報とにより、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから、前記実行許可情報を復号化させてその端末アプリに提供させることを特徴とする。
【００１０】
本発明では、端末アプリの実行に必須の実行許可情報について、端末アプリのハッシュ値及び端末識別情報で暗号化して端末に置き、実行の都度、端末アプリのハッシュ値と端末の端末識別情報で復号化して端末アプリに提供することにより、端末アプリが改ざんされておらず、かつ、端末間で移動されてもいない場合以外は、実行許可情報の復号と端末アプリ実行が不可能となる。このため、端末アプリの端末間移動や改ざんによる実行を防止することができる。また、実行許可情報を端末に置くことで、実行ごとに制御サーバにアクセスする必要が無く端末及びサーバで情報処理と通信の負荷が削減できる。
【００１１】
本発明の他の態様（２）である端末は、上記いずれかの態様において、生成された前記ハッシュ値と、前記端末アプリを識別するアプリ識別情報と、を含む確認要求を所定の制御サーバへ送信する確認要求送信手段と、送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報を受信する許可情報受信手段と、受信された前記実行許可情報を、前記確認要求に係る前記ハッシュ値と、この端末の端末識別情報と、で暗号化し暗号化データとする暗号化手段と、を有することを特徴とする。
【００１２】
本発明の他の態様（５）である制御サーバは、端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段と、端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認手段と、前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認手段と、前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求の送信元である前記端末へ送信する許可送信手段と、を有することを特徴とする。
【００１３】
本発明の他の態様（１１）であるアプリ保護方法は、上記態様を方法のカテゴリで捉えたもので、端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段を有する制御サーバのコンピュータが、端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認処理と、前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認処理と、前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求の送信元である前記端末へ送信する許可送信処理と、を実行することを特徴とする。
【００１４】
これらの態様では、先に述べた本発明の作用効果に加え、特に、端末からの確認要求により制御サーバが、端末アプリの無改ざん性と正当権原の存在を確認のうえ実行許可情報を提供し、この実行許可情報はハッシュ値と端末識別情報で暗号化した暗号化データとして端末で記憶しておく。これにより、端末アプリのダウンロード提供時点では、制御サーバが実行許可情報を端末識別情報で暗号化して端末に送信する負荷が不要となるうえ、ダウンロード時点では端末アプリが端末に直ちには固定されない。このため、ユーザの都合のよい任意の端末で端末アプリを初回起動し確認要求を行えば、以降、その端末上のみで端末アプリを利用可能となり、柔軟な使い勝手が実現される。
【００１５】
本発明の他の態様（３）は、端末に関連する上記いずれかの態様において、生成された前記ハッシュ値と、前記端末アプリを識別するアプリ識別情報と、端末の端末識別情報と、を含む確認要求を所定の制御サーバへ送信する確認要求送信手段と、送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報であって、前記確認要求に含まれる前記ハッシュ値及び前記端末識別情報と、で暗号化された暗号化データを受信する暗号許可受信手段と、を有することを特徴とする。
【００１６】
本発明の他の態様（６）である制御サーバは、端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段と、端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認手段と、前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認手段と、前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求から取得する前記ハッシュ値及び前記端末識別情報で暗号化し暗号化データとする暗号化手段と、暗号化された前記暗号化データを、前記確認要求の送信元である前記端末へ送信する許可送信手段と、を有することを特徴とする。
【００１７】
本発明の他の態様（１２）であるアプリ保護方法は、上記態様を方法のカテゴリで捉えたもので、端末への提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶しているアプリ情報記憶手段を有する制御サーバのコンピュータが、端末から送信された端末アプリに係る確認要求から取得するハッシュ値と、その端末アプリについて前記アプリ情報記憶手段に記憶されている前記ハッシュ値と、の照合によりその端末アプリが改ざんされていないことを確認する改ざん確認処理と、前記確認要求から取得するアプリ識別情報と、前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記アプリ識別情報と、の照合によりその端末アプリについて利用権原が存在することを確認する利用権原確認処理と、前記改ざんされていないこと及び前記利用権原が存在することが確認された前記端末アプリについて前記アプリ情報記憶手段に記憶されている前記実行許可情報を、前記確認要求から取得する前記ハッシュ値及び前記端末識別情報で暗号化し暗号化データとする暗号化処理と、暗号化された前記暗号化データを、前記確認要求の送信元である前記端末へ送信する許可送信処理と、を実行することを特徴とする。
【００１８】
これらの態様では、先に述べた作用効果に加え、特に、端末からの確認要求により制御サーバが、端末アプリの無改ざん性と正当権原の存在を確認のうえ実行許可情報を提供し、この実行許可情報はハッシュ値と端末識別情報で暗号化した暗号化データとして端末で記憶しておく。これにより、端末アプリのダウンロード提供時点では、制御サーバが実行許可情報を端末識別情報で暗号化して端末に送信する負荷が不要となるうえ、ダウンロード時点では端末アプリが端末に直ちには固定されない。このため、ユーザの都合のよい任意の端末で端末アプリを初回起動し確認要求を行えば、以降、その端末上のみで端末アプリを利用可能となり、柔軟な使い勝手が実現される。
特に、暗号化を端末側で行う態様（２、５）では、暗号化に要するサーバ負荷が軽減され、一方、暗号化をサーバ側で行う態様（３、６）では、処理能力の限られた端末の負荷が軽減されるうえ、端末アプリ実行の鍵となる実行許可情報を暗号化前に通信ネットワーク経由などで送信するためにＳＳＬなど他に暗号化の手段を用意する必要が無いので、少ない負担でセキュリティを維持できる。
【００１９】
本発明の他の態様（４）は、端末へ端末アプリを提供する制御サーバであって、前記端末アプリの実行に必要となる所定の実行許可情報を、その端末アプリに係るハッシュ値と、前記端末から受信する端末識別情報と、で暗号化し暗号化データとする暗号化手段と、アプリ保護プログラムを組み込んだ端末アプリ及び前記暗号化データを端末に提供する提供手段と、を有し、前記アプリ保護プログラムは前記端末に、前記端末において前記端末アプリを実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて所定の暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させることを特徴とする。
【００２０】
本発明の他の態様（１０）であるアプリ保護方法は、上記態様を方法のカテゴリで捉えたもので、端末へ端末アプリを提供する制御サーバのコンピュータが、前記端末アプリの実行に必要となる所定の実行許可情報を、その端末アプリに係るハッシュ値と、前記端末から受信する端末識別情報と、で暗号化し暗号化データとする暗号化処理と、アプリ保護プログラムを組み込んだ端末アプリ及び前記暗号化データを端末に提供する提供処理と、を実行し、前記アプリ保護プログラムは前記端末に、前記端末において前記端末アプリを実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて所定の暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させることを特徴とする。
【００２１】
これらの態様では、先に述べた作用効果に加え、特に、制御サーバからアプリ保護プログラムを組み込んだ端末アプリと共に、ハッシュ値と端末識別情報で暗号化した暗号化データも端末に提供することにより、以降、端末アプリの初回起動時を含め端末では確認要求等の処理は不要となるので、ユーザの使い勝手に優れ、端末アプリを当初から特定の端末に確実に固定することができる。
【００２２】
本発明の他の態様（８）であるアプリ保護システムは、端末に関連する上記いずれかの態様と、制御サーバに関連する上記いずれかの態様と、を有することを特徴とする。
【００２３】
本発明の他の態様（７）は、制御サーバに関連する上記いずれかの態様において、アプリ保護プログラムを構成する共通モジュールを端末に提供する共通提供手段と、前記共通モジュールとともに前記アプリ保護プログラムを実現する個別モジュールを組み込んだ端末アプリを端末に提供する個別提供手段と、を有し、前記共通モジュールは前記端末に、前記端末に導入された前記端末アプリからハッシュ値を生成させ、生成された前記ハッシュ値と前記端末アプリを識別するアプリ識別情報とを含む確認要求を所定の制御サーバへ送信させ、送信された前記確認要求に対応して前記制御サーバから送信され前記端末アプリの実行に必要となる実行許可情報であって、前記確認要求に係る前記ハッシュ値及びこの端末の端末識別情報とで暗号化し暗号化データとしたものを所定の暗号許可記憶手段に記憶させ、前記個別モジュールは前記端末に、その個別モジュールを組み込んだ端末アプリが前記端末で初回に起動されるとき、前記共通モジュールに、その端末アプリに含まれる前記アプリ識別情報を渡して前記確認要求を指示させ、前記端末において前記端末アプリを再度実行しようとするときに、その端末アプリから前記ハッシュ生成手段が生成するハッシュ値と、その端末の端末識別情報と、により、その端末アプリに対応付けて前記暗号許可記憶手段に記憶されている前記暗号化データから前記実行許可情報を復号化してその端末アプリに提供させることを特徴とする。
【００２４】
この態様では、先に述べた作用効果に加え、確認要求と暗号化の部分を共通モジュールとして端末にインストールすることにより、確認要求や暗号化の機能部分を端末アプリごとに重複して持つ必要がなくなるため、限られた記憶容量の圧迫が回避できるうえ、共通モジュール部分の改修や更新が一度の処理で迅速に完了する。さらに、全ての端末アプリに共通する単一のモジュールとしてアプリ保護プログラムを実現し端末にインストールしておく場合と比べ、個別具体的な端末アプリの特徴など事情に応じた機能を個別モジュールで自由に実装可能となる。
【００２５】
なお、上記の各態様は、その態様について明記しなかった他のカテゴリ（方法、プログラムなど）としても把握することができ、それら方法やプログラムのカテゴリについては、装置のカテゴリで示した「手段」を、「処理」や「ステップ」のように適宜読み替えるものとする。また、処理やステップの実行順序は本出願に直接明記するものに限定されず、適宜変更したりまとめて処理するなど変更可能であることも当然である。さらに、方法やプログラムのカテゴリにおいて、個々の処理やステップを実行する「コンピュータ」は共通でもよいし処理ごとに異なってもよい。加えて、本発明は、後述するさらに具体的な各態様を含むものである。
【発明の効果】
【００２６】
本発明によれば、端末アプリの端末間移動や改ざんによる実行を防止することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の第１実施形態について構成を示す機能ブロック図。
【図２】本発明の第１実施形態におけるデータ例を示す図。
【図３】本発明の第１実施形態における確認要求に関する処理手順を示すフローチャート。
【図４】本発明の第１実施形態における端末アプリ実行時の処理手順を示すフローチャート。
【図５】本発明の第２実施形態について構成を示す機能ブロック図。
【図６】本発明の第３実施形態について構成を示す機能ブロック図。
【発明を実施するための形態】
【００２８】
次に、本発明の例として、本発明を実施するための形態（「実施形態」と呼ぶ）について図に沿って説明する。なお、背景技術や課題などで既に述べた内容と共通の前提事項については適宜省略する。
【００２９】
〔１.第１実施形態〕
〔１−１．第１実施形態の構成〕
本実施形態は、図１（構成図）に示すように、アプリ保護装置を兼ねる端末Ｔと、制御サーバ２（以下「サーバ２」又は「サーバ」とも呼ぶ）と、を有するアプリ保護システムに関するものである。
【００３０】
上記のうちサーバ２は、図１に示すように、コンピュータの構成として少なくとも、ＣＰＵなどの演算制御部６と、主メモリや補助記憶装置等の記憶装置７と、通信ネットワークＮ（例えば、インターネット、移動通信網など）との通信手段８（通信ゲートウェイ装置、移動通信網との通信回路、無線ＬＡＮアダプタなど）と、を有する。
【００３１】
また、端末Ｔは、端末アプリの実行及びその他の情報処理を行う電子情報機器で、スマートフォン、携帯電話端末、タブレットＰＣのほか、モバイルＰＣ、据置型ＰＣなどである。端末Ｔは、図示はしないが、上記のようなコンピュータの構成に加え、液晶表示パネルやタッチパネル、押ボタンなどを用いた入出力部を有する。端末Ｔは、図１では少数を模式的に示すが、実際はユーザ数に応じ多数存在する。
【００３２】
そして、端末Ｔ及びサーバ２では、それぞれ、記憶装置７に記憶（インストール）した所定のコンピュータ・プログラム（端末Ｔにあってはアプリ保護プログラムを構成する共通モジュール及び個別モジュール）が演算制御部６を制御することで、図１に示す各手段などの要素（１１ほか）を実現する。
【００３３】
それら要素のうち情報の記憶手段は、記憶装置７上のファイルなど任意のデータ形式で実現できるほか、ネットワークコンピューティング（クラウド）によるリモート記憶でもよい。また、記憶手段は、データの格納領域だけでなく、データの入出力や管理などの機能を含んでもよい。また、本出願に示す記憶手段の単位は説明上の便宜によるもので、適宜、構成を分けたり一体化できるほか、明示する記憶手段以外にも、各手段の処理データや処理結果などを記憶する記憶手段を適宜用いるものとする。
【００３４】
そして、記憶手段のうち、暗号許可記憶手段４１は、図２（１）に例示するように、端末アプリの実行で必要となる実行許可情報をその端末アプリのハッシュ値及び端末の端末識別情報とで暗号化した暗号化データを端末アプリに対応付けて記憶する手段である。実行許可情報は、端末アプリの実行必須の実行許可コードなどのデジタル情報であり、個々の端末アプリごとに異なってもよいし共通でもよい。
【００３５】
また、アプリ情報記憶手段２８は、図２（２）に例示するように、端末Ｔへの提供に係る端末アプリであって利用権原が存在するものについて、アプリ識別情報と、ハッシュ値と、端末での実行で必要となる実行許可情報と、を記憶している手段である。ここで「アプリ識別情報」は、個々の端末毎にダウンロード提供した端末アプリに固有のシリアル番号などで、同じ種類、バージョンの端末アプリでもユーザや端末ごとに異なるものとする。
【００３６】
但し、アプリ識別情報は、端末アプリの実行ファイル自体に埋め込んだり、端末アプリの実行ファイル自体を少しずつ変えて一意に個性を持たせれば、そのようなファイルに基づくハッシュ値も異なることになるので、そのようなハッシュ値をアプリ識別情報として用いてもよい。また、「利用権原」は、有料アプリの購入履歴の他、販促用特典の取得履歴、テスト用ＩＤの記録など、種類は問わない。
【００３７】
なお、図中（例えば図１）の矢印は、データや制御などの流れについて主要な方向を補助的に示すもので、方向の限定を意味するものではない。例えばデータをある方向に取得する場合、事前のデータリクエストや事後のアクノリッジ（ＡＣＫ）が逆方向に送信される。また、記憶手段以外の各手段は、以下に説明するような情報処理の機能・作用を実現・実行する処理手段であるが、これらは説明のために整理した機能単位であり、実際のハードウェア要素やソフトウェアモジュールとの一致は問わない。
【００３８】
〔１−２．第１実施形態の作用〕
上記のように構成された第１実施形態の作用を、図３のフローチャートに示す。
〔１−２−１．概要〕
作用の概要としては、アプリ保護プログラムが、端末アプリを問わない共通モジュールＭＸと、個々の端末アプリに組み込まれている個別モジュールＭ１と、の協働により構成される。そして、端末Ｔに事前インストールした共通モジュールＭＸが、端末アプリＡの初回起動時にサーバ２へ確認要求を送信し、返信された実行許可情報を暗号化し端末アプリＡの次回以降の起動時に復号化して用いる。以下、具体的に説明する。
【００３９】
〔１−２−２．共通モジュールの事前インストール〕
まず、端末Ｔには予め、アプリ保護プログラムを構成する共通モジュールＭＸを、製造時に組み込み又はユーザがダウンロードしてインストールしておく（ステップＳ１）。ユーザがサーバ２からダウンロードする際、サーバ２の共通提供手段２５が、アプリ保護プログラムを構成する共通モジュールＭＸを、予め記憶している所定の共通モジュール記憶手段２４などから読み出して端末Ｔに送信することで提供する（ステップＳ２１）。
【００４０】
ダウンロード提供された共通モジュールＭＸは、端末Ｔの仕様に応じて、端末アプリの一つとして、又はデバイスドライバのようなオプションのシステムモジュール、アドイン、ダイナミック・リンク・ライブラリなど適宜な形式で、端末Ｔにインストール（導入）される。上記のように共通モジュールＭＸがインストールされた端末Ｔは、個々の端末アプリＡを実行できる実行環境となる。
【００４１】
〔１−２−３．端末アプリの提供〕
そして、個々の端末アプリＡについては、アプリ購入などに際しての端末Ｔからのダウンロードの要求アクセスに対して（ステップＳ２）、サーバ２の個別提供手段２７が、共通モジュールＭＸとともにアプリ保護プログラムを実現する個別モジュールＭ１を組み込んだ端末アプリＡとして、端末Ｔに提供する（ステップＳ２２）。端末アプリＡは、図１では一つを示すが、端末Ｔの記憶容量の許す限り多数を利用でき、個々の端末アプリＡは端末Ｔにインストールされると、アイコンなどで起動可能となる。
【００４２】
なお、個別モジュールＭ１は、所定のアプリ等記憶手段２６などにおいて、予め端末アプリＡに組み込んだ状態で記憶しておけばダウンロード提供時に端末アプリＡに組み込む処理負荷が軽減できる。一方、ダウンロード提供時に端末アプリＡにその場で組み込むようにすれば、共通モジュールＭＸについて端末Ｔにおける記憶容量の重複が回避できるうえ、更新時も全ての組込済の端末アプリＡを作成し直す負担が避けられる。
【００４３】
〔１−２−４．確認要求の送信〕
そして、個別モジュールＭ１を組み込んだ端末アプリＡが端末Ｔで起動され（ステップＳ３）、その起動が初回の場合（ステップＳ４：「ＹＥＳ」）、個別モジュールＭ１は端末Ｔの特に演算制御部６を制御することにより確認要求指示手段１１として、共通モジュールＭＸに、その端末アプリＡに含まれるアプリ識別情報を渡して確認要求を指示させる（ステップＳ５）。
【００４４】
この際、個別モジュールＭ１から共通モジュールＭＸを動作させるために、オペレーティングシステムなどの基本ソフトウェアに代表されるソフトウェアの構成上、具体的にどのような種類の連携手段を採用するかは基本ソフトウェアの種類や仕様に応じて自由に選択すればよいが、一例として、モジュール間でのパラメータ受渡しを伴う呼び出しを用いることが考えられる。
【００４５】
このとき、個別モジュールＭ１は端末アプリＡに組み込まれているので、端末アプリの一種である共通モジュールＭＸからみると、他の端末アプリＡから制御を渡されることになるが、基本ソフトウェアの仕様上、端末アプリＡ自身の参照（どの端末アプリを処理対象とするかを特定するポインタなどの情報）を端末アプリ間で引き渡せない場合も考えられる。このような場合、端末アプリＡのファイルパス（端末アプリＡの実行ファイルが置かれている端末Ｔ上のファイルディレクトリやフォルダを特定する文字列などの情報）を渡せばよい。
【００４６】
また、ファイルパスを渡しても共通モジュールＭＸによるアプリ識別情報の取得が困難である場合、アプリ識別情報についてもパラメータとして引き継ぐことが考えられる。なお、個別モジュールＭ１と共通モジュールＭＸの間で、どちらにどの機能を置くかは自由であり（後述）、端末アプリＡのハッシュ値の生成を個別モジュールＭ１で行う場合、先述のように個別モジュールＭ１から共通モジュールＭＸへファイルパスに代えて、生成したハッシュ値を渡してもよい。
【００４７】
いずれにしても、確認要求の指示を個別モジュールＭ１から受けて共通モジュールＭＸでは、まず、ハッシュ生成手段Ｘ１が、端末アプリＡのプログラムファイルから、その時点におけるハッシュ値すなわちダイジェストを生成する（ステップＳ６）。
【００４８】
ここで、ハッシュ値を生成する基礎となるファイルなどデータの範囲は、個別モジュールＭ１を除く端末アプリＡ正味の部分に限定すれば処理の負荷と時間が抑制でき、一方、個別モジュールＭ１を含む端末アプリＡ全体を対象とすれば個別モジュールＭ１部分の改ざんにも対応できるので処理精度が改善する。そして、上記のように生成されたハッシュ値と、端末アプリＡを識別するアプリ識別情報と、を含む確認要求を確認要求送信手段Ｘ２がサーバ２へ送信する（ステップＳ７）。
【００４９】
〔１−２−５．確認要求に対する処理〕
サーバ２では、改ざん確認手段３１が、端末Ｔから送信された端末アプリＡに係る確認要求から取得するハッシュ値と、その端末アプリＡについてアプリ情報記憶手段２８に記憶されているハッシュ値と、の照合によりその端末アプリＡが改ざんされていないことを確認する（ステップＳ２３）。また、利用権原確認手段３２が、確認要求から取得するアプリ識別情報と、端末アプリＡについてアプリ情報記憶手段２８に記憶されているアプリ識別情報と、の照合によりその端末アプリＡについて利用権原が存在することを確認する（ステップＳ２４）。なお、利用権原確認手段３２は、アプリ識別情報を用いた照合により利用権原が存在することを確認したが、端末識別情報、ユーザを識別するユーザ識別情報、及びこれらの組み合わせを用いた照合により利用権原が存在することを確認することもできる。この場合、確認要求送信手段Ｘ２はこれらの情報を含む確認要求をサーバ２に送信する。また、アプリ情報記憶手段２８は、アプリ識別情報のほか、端末識別情報、ユーザ識別情報を記憶する。
【００５０】
そして、改ざんされていないこと（ステップＳ２３：「ＹＥＳ」）及び利用権原が存在すること（ステップＳ２４：「ＹＥＳ」）が確認された端末アプリＡについては、許可送信手段３３が、アプリ情報記憶手段２８に記憶されている実行許可情報を、確認要求の送信元である端末Ｔへ送信する（ステップＳ２５）。一方、改ざんされているか（ステップＳ２３：「ＮＯ」）又は利用権原が無い（ステップＳ２４：「ＮＯ」）端末アプリについてはエラーコードなど否定的な応答を許可送信手段３３が返信する（ステップＳ２６）。
【００５１】
〔１−２−６．暗号化データの記憶〕
端末Ｔでは、確認要求への返信として送信され受信した応答が肯定的で、すなわち実行許可情報であれば（ステップＳ８：「ＯＫ」）それを記憶し（ステップＳ９）、エラーコードなど否定的な応答であれば（ステップＳ８：「ＮＧ」）、エラー表示のうえ端末アプリを終了するなど所定の動作を行う（ステップＳ１０）。
【００５２】
応答が肯定的な場合については、許可情報受信手段Ｘ３が、送信された確認要求に対応してサーバ２から送信され端末アプリＡの実行に必要となる実行許可情報であって、確認要求に係るハッシュ値及びこの端末Ｔの端末識別情報とで暗号化し暗号化データとしたものを、所定の暗号許可記憶手段４１に記憶させる。
【００５３】
具体的には、ハッシュ値と端末識別番号によりサーバ２側で暗号化済の暗号化データを端末Ｔで受信し記憶させる態様も考えられるが（後述）、ここでは、他の暗号化技術（ＳＳＬなど）で保護している実行許可情報を受信し（ステップＳ８：「ＯＫ」）、受信された実行許可情報を暗号化手段Ｘ４が、確認要求に係るハッシュ値と、この端末の端末識別情報と、で暗号化して暗号化データとし、暗号許可記憶手段４１に記憶させるものとする（ステップＳ９）。
【００５４】
なお、端末識別情報は、端末Ｔの物理的な個体製造番号や、契約者に紐付いた端末ＩＤなどであり、端末アプリは、オペレーティングシステムなどの基本ソフトウェアから取得できる。そして、上記のように暗号化を端末Ｔ側で行うことにより、暗号化に要するサーバ負荷が軽減され、また、暗号化に用いる端末識別情報を通信ネットワークＮ上で伝送するセキュリティリスクなどの負荷が回避できる。
【００５５】
〔１−２−７．端末アプリ実行時の処理〕
上記のように暗号化データが端末Ｔで記憶された状態で、端末アプリＡが続行され又は自動再起動もしくはユーザ操作などで改めて起動されることにより、以下のような処理で端末アプリ本来の機能を実行できる。すなわち、暗号化データを記憶済の端末Ｔにおいて端末アプリＡを改めて起動するなどして実行しようとするとき、端末アプリＡの起動は（ステップＳ３）初回ではなく２度目以降であり（ステップＳ４：「ＮＯ」）、図中、円で示す端子Ｅから図４のフローチャートへ進む。
【００５６】
そして、まず、個別モジュールＭ１は端末Ｔにハッシュ生成手段５０として、端末アプリＡのファイルから、その時点におけるハッシュ値すなわちダイジェストを生成させる（ステップＳ１１）。また、個別モジュールＭ１は端末Ｔに復号化手段６０として、その端末アプリＡからハッシュ生成手段５０が生成したハッシュ値及びこの端末Ｔの端末識別情報（例えば個体製造番号など）とにより、その端末アプリＡに対応付けて暗号許可記憶手段４１に記憶されている暗号化データから、実行許可情報を復号化してその端末アプリＡに提供させる（ステップＳ１２）。なお、ハッシュ生成手段Ｘ１とハッシュ生成手段５０は、実際のプログラム上では同じルーチンやモジュールなどを使うことができる。
【００５７】
起動された端末アプリＡは、上記のように提供される実行許可情報をチェックし（ステップＳ１３）、予め設定されている真正な実行許可情報と確認できれば（ステップＳ１３：「ＯＫ」）動作を継続し（ステップＳ１４）、確認できなければ（ステップＳ１３：「ＮＧ」）エラー表示を行って端末アプリを終了する（ステップＳ１５）などして、本来の動作を回避する。
【００５８】
〔１−３．第１実施形態の効果〕
以上のような第１実施形態の基本的効果としては、端末アプリＡの実行に必須の実行許可情報について、端末アプリＡのハッシュ値及び端末識別情報で暗号化して端末Ｔに置き（例えば図３）、実行の都度、端末アプリＡのハッシュ値と端末の端末識別情報で復号化して端末アプリＡに提供することにより（例えば図４）、端末アプリＡが改ざんされておらず、かつ、端末間で移動されてもいない場合以外は、実行許可情報の復号と端末アプリ実行が不可能となる。このため、端末アプリＡの端末間移動や改ざんによる実行を防止することができる。また、実行許可情報を端末Ｔに置くことで、実行ごとにサーバ２にアクセスする必要が無く端末Ｔ及びサーバ２で情報処理と通信の負荷が削減できる。また、端末とサーバとの間の通信が不可能な状態（オフライン）であっても、端末アプリが正当に実行されるよう管理することができる。
【００５９】
特に、第１実施形態では、端末Ｔからの確認要求によりサーバ２が、端末アプリＡの無改ざん性と正当権原の存在を確認のうえ実行許可情報を提供し、この実行許可情報はハッシュ値と端末識別情報で暗号化した暗号化データとして端末Ｔで記憶しておく。これにより、端末アプリＡのダウンロード提供時点では、サーバ２が実行許可情報を端末識別情報で暗号化して端末Ｔに送信する負荷が不要となるうえ、ダウンロード時点では端末アプリＡが端末Ｔに直ちには固定されない。このため、ユーザの都合のよい任意の端末で端末アプリＡを初回起動し確認要求を行えば、以降、その端末上のみで端末アプリＡを利用可能となり、柔軟な使い勝手が実現される。
【００６０】
また、第１実施形態では、上記の基本的効果に加え、確認要求と暗号化の部分を共通モジュールＭＸとして端末Ｔにインストールすることにより（例えば図１）、確認要求や暗号化の機能部分を端末アプリＡごとに重複して持つ必要がなくなるため、限られた記憶容量の圧迫が回避できるうえ、共通モジュールＭＸ部分の改修や更新が一度の処理で迅速に完了する。さらに、アプリ保護プログラム全体を、全ての端末アプリＡに共通する単一のモジュールとして実現し端末Ｔにインストールしておく場合と比べ、個別具体的な端末アプリＡの特徴など事情に応じた機能を個別モジュールＭ１で自由に実装可能となる。
【００６１】
〔２．第２実施形態〕
上記第１実施形態では、端末アプリＡの初回起動時に端末Ｔからサーバ２への確認要求により実行許可情報を取得したが、実行許可情報は端末アプリＡのダウンロード提供時に端末アプリＡと共に端末Ｔに提供してもよい。このような第２実施形態の構成を図５に示す。
【００６２】
この場合、サーバ２０は、端末Ｔ２へ端末アプリＢを提供する制御サーバであって、図５に示す次の手段を備える。すなわち、暗号化手段７２は、端末アプリ（例えば端末アプリＢ）の実行に必要となる所定の実行許可情報を、その端末アプリＢに係るハッシュ値と、端末Ｔ２から受信する端末識別情報と、で暗号化し暗号化データとする。そして、提供手段７３が、アプリ保護プログラムＰを組み込んだ端末アプリＢと、前記暗号化データと、を端末Ｔ２に提供する。図５において、暗号化データを記憶している暗号許可記憶手段４２は、例えば、アプリ保護プログラムＰの内部データなどとしても実現できる。
【００６３】
第２実施形態におけるアプリ保護プログラムＰは、個別モジュールと共通モジュールに分かれておらず、端末Ｔ２において端末アプリＢを実行しようとするときにその端末Ｔ２に、次の処理を行わせる。すなわち、アプリ保護プログラムＰは端末Ｔ２に、その端末アプリＢからハッシュ生成手段５２が生成するハッシュ値と、その端末Ｔ２の端末識別情報と、により、復号化手段６０として、その端末アプリＢに対応付けて所定の暗号許可記憶手段４２に記憶されている上記の暗号化データから実行許可情報を復号化してその端末アプリＢに提供させる。端末アプリＢは提供された実行許可情報が真正であれば動作を継続する。
【００６４】
この第２実施形態では、先に述べた第１実施形態の基本的効果に加え、特に、サーバ２０からアプリ保護プログラムＰを組み込んだ端末アプリＢと共に、ハッシュ値と端末識別情報で暗号化した暗号化データも端末Ｔ２に提供することにより、以降、端末アプリＢの初回起動時を含め端末Ｔ２では確認要求等の処理は不要となるので、ユーザの使い勝手に優れ、端末アプリＢを当初から特定の端末Ｔ２に確実に固定することができる。
【００６５】
〔２．第３実施形態〕
また、第１実施形態では、実行許可情報を端末側で暗号化したが、暗号化は制御サーバの側で行ってもよく、また、このような構成においても、アプリ保護プログラムが個別モジュールと共通モジュールに分かれていることは必須ではない。このような構成例を第３実施形態として図６に示す。この例は、第２実施形態より第１実施形態に近いが、図１（第１実施形態）と比較すると、アプリ保護プログラムＰ２が個別モジュールと共通モジュールに分かれておらず、それに関連して、制御サーバ３０には共通モジュール記憶手段と共通提供手段はなく、暗号化手段Ｚ４が制御サーバ３０の側にある。
【００６６】
第３実施形態では、提供手段３７は、アプリ保護プログラムＰ２を組み込んだ端末アプリＣを端末Ｔ３へ提供し、そのアプリ保護プログラムＰ２の確認要求送信手段Ｚ２は、端末アプリＣの初回起動時、制御サーバ３０へ送信する確認要求に、ハッシュ生成手段Ｘ１により生成されたハッシュ値と、端末アプリＣを識別するアプリ識別情報と、を含める点は第１実施形態と同様であるが、さらに、端末Ｔ３の端末識別情報も含める。
【００６７】
制御サーバ３０において、アプリ情報記憶手段２８、改ざん確認手段３１及び利用権原確認手段３２は第１実施形態に準じるが、第２実施形態では、暗号化手段Ｚ４が、改ざんされていないこと及び利用権原が存在することが確認された端末アプリＣについてアプリ情報記憶手段２８に記憶されている実行許可情報を、確認要求から取得するハッシュ値及び端末識別情報で暗号化し暗号化データとし、許可送信手段８３が、暗号化された前記暗号化データを、確認要求の送信元である端末Ｔ３へ送信する。
【００６８】
この場合、端末Ｔ３では、暗号許可受信手段Ｚ３が、送信された確認要求に対応して上記のように制御サーバ３０から送信され端末アプリＣの実行に必要となる実行許可情報であって、確認要求に含まれるハッシュ値及び端末識別情報と、で暗号化された暗号化データを受信し、暗号許可記憶手段４１に記憶させる。
【００６９】
このような第３実施形態では、暗号化を制御サーバ３０で行うことにより、処理能力の限られた端末Ｔ３の負荷が軽減されるうえ、端末アプリ実行の鍵となる実行許可情報を暗号化前に通信ネットワーク経由などで送信するためにＳＳＬなど他に暗号化の手段を用意する必要が無いので、少ない負担でセキュリティを維持できる。
【００７０】
〔４．他の実施形態〕
なお、上記各実施形態は例示に過ぎず、本発明は、以下に例示するものやそれ以外の他の実施態様も含むものである。例えば、本出願における構成図、データの図、フローチャートなどは例示に過ぎず、各要素の有無、その配置や処理実行などの順序、具体的内容などは適宜変更可能である。一例として、第１実施形態において個別モジュールＭ１と共通モジュールＭＸに分けて示した各機能の手段を、第２実施形態や第３実施形態のようにモジュールに分けずに実現してもよい。この場合、端末アプリ自身の参照とファイルパスが同一アプリのものであり詐称でないこと（同一性）を保証する手段を設けることで、より確実に、端末アプリの端末間移動や改ざんによる実行を防止することが望ましい。
【００７１】
また、アプリ保護プログラムを個別モジュールと共通モジュールに分ける場合、どの機能をどちらに設けるかは自由である。例えば、実行許可情報を暗号化データにする暗号化は、共通モジュールで行う例（例えば第１実施形態）や制御サーバで行う例（第３実施形態）以外にも、個別モジュールで行うようにしてもよい。また、暗号許可記憶手段による暗号化データの記憶、ハッシュの生成や復号化も共通モジュールで行い、共通モジュールの持つ具体的機能を呼び出す機能だけを個別モジュールに持たせてもよい。このように、機能の振分けや、個別モジュールと共通モジュールとの間で授受するパラメータの種類は、スマートフォンのプラットフォームの種類や仕様などに合わせて自由に定めることができる。
【００７２】
また、図１などに示した制御サーバにおける個々の手段を、相互に別個独立の設備で実現する構成も一般的であり、例えば、端末アプリの配信と、確認要求の対応を、相互に異なるサーバで処理するなどが考えられる。また、制御サーバでも端末でも機能によっては、外部のプラットフォーム等をＡＰＩ（アプリケーション・プログラム・インタフェース）やネットワークコンピューティング（いわゆるクラウドなど）で呼び出して実現するなど、構成は柔軟に変更できる。さらに、本発明に関する手段などの各要素は、コンピュータの演算制御部に限らず物理的な電子回路など他の情報処理機構で実現してもよい。
【符号の説明】
【００７３】
１  本装置
６  演算制御部
７  記憶装置
８  通信手段
１１  確認要求指示手段
４１，４２  暗号許可記憶手段
１５  データ記憶手段
２，２０，３０  制御サーバ（サーバ）
２４  共通モジュール記憶手段
２５  共通提供手段
２６  アプリ等記憶手段
２７  個別提供手段
２８  アプリ情報記憶手段
３１  確認手段
３２  利用権原確認手段
３３，８３  許可送信手段
３７，７３  提供手段
５０，５２，Ｘ１  ハッシュ生成手段
６０，７２  暗号化手段
Ａ，Ｂ，Ｃ  端末アプリ
Ｅ  端子
Ｍ１  個別モジュール
ＭＸ  共通モジュール
Ｎ  通信ネットワーク
Ｐ，Ｐ２  アプリ保護プログラム
Ｔ，Ｔ２，Ｔ３  端末
Ｘ２，Ｚ２  確認要求送信手段
Ｘ３  許可情報受信手段
Ｘ４，Ｚ４  暗号化手段
Ｚ３  暗号許可受信手段
【図１】
2013046122.tif 000003
【図２】
2013046122.tif 000004
【図３】
2013046122.tif 000005
【図４】
2013046122.tif 000006
【図５】
2013046122.tif 000007
【図６】
2013046122.tif 000008