(57)【特許請求の範囲】
【請求項１】
アプリケーション（Ａ１）を管理する方法であって、
前記アプリケーション（Ａ１）は、２つの部分、すなわち汎用部分（ＢＴ）及び追加部分（Ｐ１）を含み、前記汎用部分（ＢＴ）はデバイス（ＤＥ１）にインストールされており、前記方法は、
−前記デバイス（ＤＥ１）が、前記デバイス（ＤＥ１）のフィンガープリント（ＤＦＰ）を入手し、前記デバイス（ＤＥ１）のユーザの認証を開始し、認証が成功した場合に、前記追加部分（Ｐ１）を取得するための、前記フィンガープリント（ＤＦＰ）と前記アプリケーション（Ａ１）のリファレンス（ＡｐｐＩＤ）と前記ユーザ又は前記ユーザの前記リファレンスに関連付けられた認証情報（ＵＣ）とを含む要求（Ｒ１）をサーバ（ＳＶ１）に送信するステップと、
−前記サーバ（ＳＶ１）が、前記追加部分（Ｐ１）を特定し、前記認証情報（ＵＣ）及び前記フィンガープリント（ＤＦＰ）の両方に基づく鍵を使用して前記追加部分（Ｐ１）の暗号化された部分（ＥＰ１）を生成し、前記暗号化された部分（ＥＰ１）を解読するように構成された自動解読プログラム（ＡＰ１）を作成するステップと、
−前記デバイス（ＤＥ１）が、前記サーバ（ＳＶ１）から前記暗号化された部分（ＥＰ１）及び前記自動解読プログラム（ＡＰ１）を受信するステップと、
−前記デバイス（ＤＥ１）が、前記フィンガープリント（ＤＦＰ）及び前記認証情報（ＵＣ）を入手し、前記フィンガープリント（ＤＦＰ）及び認証情報（ＵＣ）を入力パラメータとして使用して前記自動解読プログラム（ＡＰ１）を実行することによって前記追加部分（Ｐ１）を取得するステップと、を含むことを特徴とする方法。
【請求項２】
前記デバイス（ＤＥ１）は、前記暗号化された部分（ＥＰ１）及び前記自動解読プログラム（ＡＰ１）をその不揮発性メモリに格納し、前記デバイス（ＤＥ１）は、前記フィンガープリント（ＤＦＰ）を入手して前記ユーザの認証を開始し、前記デバイス（ＤＥ１）は、認証が成功した場合に、前記認証情報（ＵＣ）を入手し、前記追加部分（Ｐ１）が実行されそうになるとすぐに前記自動解読プログラム（ＡＰ１）を実行する、請求項１に記載の方法。
【請求項３】
前記デバイス（ＤＥ１）は、前記デバイス（ＤＥ１）の前記フィンガープリント（ＤＦＰ）及びユーザリファレンスを入手し、前記認証情報（ＵＣ）又は前記ユーザのリファレンス、前記フィンガープリント（ＤＦＰ）、及び前記アプリケーション（Ａ１）の前記リファレンス（ＡｐｐＩＤ）を含む使用要求（Ｒ２）をコントローラサーバ（ＳＶ３）に送信し、
−前記コントローラサーバ（ＳＶ３）は、前記ユーザに前記アプリケーション（Ａ１）を実行する許可が与えられているかどうかをチェックし、前記チェックを反映する結果を前記デバイス（ＤＥ１）に送信し、
−前記デバイス（ＤＥ１）は、受信した前記結果に応じて前記アプリケーション（Ａ１）の実行を許可する又は許可しない、請求項１に記載の方法。
【請求項４】
前記デバイス（ＤＥ１）は、可変的なランタイム環境を有し、前記要求（Ｒ１）は、前記現在のランタイム環境の状態を反映する特徴（ＲＴＰ）を含み、前記要求（Ｒ１）は、前記追加部分（Ｐ１）が実行されそうになるとすぐに送信される、請求項１に記載の方法。
【請求項５】
前記サーバ（ＳＶ１）は、前記暗号化された部分（ＥＰ１）を生成するために、複数の暗号化アルゴリズムの中から１つの暗号化アルゴリズムを動的に選択する、請求項１に記載の方法。
【請求項６】
サーバ（ＳＶ１）と通信可能なデバイス（ＤＥ１）であって、前記デバイス（ＤＥ１）は、アプリケーション（Ａ１）の汎用部分（ＢＴ）を受信及びインストールするように構成され、前記デバイス（ＤＥ１）は、
前記デバイス（ＤＥ１）のフィンガープリント（ＤＦＰ）を入手し、前記デバイス（ＤＥ１）のユーザの認証を開始し、認証が成功した場合に、前記ユーザに関連付けられた認証情報（ＵＣ）を取得し、前記アプリケーション（Ａ１）の追加部分（Ｐ１）を入手するための、前記フィンガープリント（ＤＦＰ）と前記アプリケーション（Ａ１）のリファレンス（ＡｐｐＩＤ）と前記ユーザ又は前記ユーザの前記リファレンスに関連付けられた認証情報（ＵＣ）とを含む要求（Ｒ１）を前記サーバ（ＳＶ１）に送信するように構成されたエージェント（ＡＧ）を備え、前記エージェント（ＡＧ）は、暗号化された部分（ＥＰ１）と、前記アプリケーション（Ａ１）に関連付けられ、前記暗号化された部分（ＥＰ１）を解読するように構成された自動解読プログラム（ＡＰ１）とを前記サーバ（ＳＶ１）から受信するように構成され、前記エージェント（ＡＧ）は、前記フィンガープリント（ＤＦＰ）及び認証情報（ＵＣ）を入力パラメータとして使用して前記自動解読プログラム（ＡＰ１）を実行することによって、前記追加部分（Ｐ１）を取得するように構成されることを特徴とするデバイス（ＤＥ１）。
【請求項７】
前記デバイス（ＤＥ１）は、前記暗号化された部分（ＥＰ１）及び前記自動解読プログラム（ＡＰ１）をその不揮発性メモリに格納するように構成され、前記エージェント（ＡＧ）は、前記ユーザの認証を開始し、認証が成功した場合に、前記フィンガープリント（ＤＦＰ）及び前記認証情報（ＵＣ）を入手し、前記追加部分（Ｐ１）が実行されそうになるとすぐに前記自動解読プログラム（ＡＰ１）を実行するように構成される、請求項６に記載のデバイス（ＤＥ１）。
【請求項８】
前記エージェント（ＡＧ）は、前記認証情報（ＵＣ）又は前記ユーザのリファレンス、前記フィンガープリント（ＤＦＰ）、及び前記アプリケーション（Ａ１）の前記リファレンス（ＡｐｐＩＤ）を含む使用要求（Ｒ２）をコントローラサーバ（ＳＶ３）に送信するように構成され、前記エージェント（ＡＧ）は、前記使用要求（Ｒ２）に応じて前記コントローラサーバ（ＳＶ３）から受信した結果に応じて前記アプリケーション（Ａ１）の実行を許可する又は許可しないように構成される、請求項６に記載のデバイス（ＤＥ１）。
【請求項９】
前記デバイス（ＤＥ１）は、可変的なランタイム環境を有し、前記エージェント（ＡＧ）は、前記可変的なランタイム環境の現在の状態を反映する特徴（ＲＴＰ）を前記要求（Ｒ１）に追加するように構成され、前記エージェント（ＡＧ）は、前記追加部分（Ｐ１）が実行されそうになるとすぐに前記要求（Ｒ１）を送信するように構成される、請求項６に記載のデバイス（ＤＥ１）。
【請求項１０】
アプリケーション（Ａ１）の展開に関与することができるサーバ（ＳＶ１）であって、前記サーバ（ＳＶ１）は電子装置であり、前記アプリケーション（Ａ１）は、２つの部分、すなわち、汎用部分（ＢＴ）及び追加部分（Ｐ１）を含み、前記汎用部分（ＢＴ）は、デバイス（ＤＥ１）にあらかじめインストールされていると仮定され、前記サーバ（ＳＶ１）は、前記追加部分（Ｐ１）を入手するための、前記デバイス（ＤＥ１）のフィンガープリント（ＤＦＰ）と前記アプリケーション（Ａ１）のリファレンス（ＡｐｐＩＤ）と前記デバイス（ＤＥ１）のユーザ又は前記デバイス（ＤＥ１）のユーザのリファレンスに関連付けられた認証情報（ＵＣ）とを含む要求（Ｒ１）を受信するように適合されたチェックエージェント（Ｍ１）を備え、
前記サーバ（ＳＶ１）は、前記追加部分（Ｐ１）を特定するように適合されたディスカバリーエージェント（Ｍ２）を備え、前記サーバ（ＳＶ１）は、前記認証情報（ＵＣ）及び前記フィンガープリント（ＤＦＰ）の両方に基づく鍵を使用して、前記追加部分（Ｐ１）の暗号化された部分（ＥＰ１）を生成するように適合されたジェネレータエージェント（Ｍ３）を備え、前記サーバ（ＳＶ１）は、前記暗号化された部分（ＥＰ１）を解読するように構成された自動解読プログラム（ＡＰ１）を作成し、前記要求（Ｒ１）に応じて前記暗号化された部分（ＥＰ１）及び前記自動解読プログラム（ＡＰ１）の両方を前記デバイス（ＤＥ１）に送信するように適合された暗号化エージェント（Ｍ４）を備えることを特徴とするサーバ（ＳＶ１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを管理する方法に関する。本発明は、特に、デバイス上で安全に実行されることを意図したアプリケーションを管理する方法に関する。
【背景技術】
【０００２】
携帯デバイス用のアプリケーションに関し、ますます多くのソフトウェアアプリケーションがインストールされている。このようなアプリケーションの中には、極秘データや、例えばモバイル決済などのサービスにアクセス可能なものもある。悪意のある人間が、あるデバイスから別のデバイスにソフトウェアアプリケーションをコピーし、そのアプリケーションを不正行為に使用するリスクがある。
【０００３】
デバイス内のソフトウェアアプリケーションの保護を強化する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、上述の技術的課題を解決することである。
【課題を解決するための手段】
【０００５】
本発明の目的は、汎用部分及び追加部分の両方を含むアプリケーションを管理する方法である。汎用部分はデバイスにインストールされている。この方法は、
−デバイスがデバイスのフィンガープリントを入手し、デバイスのユーザの認証を開始し、認証が成功した場合に、追加部分を入手するための、ユーザに関連付けられた認証情報又はユーザのリファレンスのいずれか、フィンガープリント、及びアプリケーションのリファレンスを含む要求をサーバに送信するステップと、
−サーバが、追加部分を特定し、認証情報及びフィンガープリントの両方に基づく鍵を使用して、追加部分の暗号化された部分を生成し、暗号化された部分を解読するように構成された自動解読プログラムを作成するステップと、
−デバイスが、暗号化された部分及び自動解読プログラムを受信するステップと、
−デバイスが、フィンガープリント及び認証情報を入手し、前記フィンガープリント及び認証情報を入力パラメータとして使用して自動解読プログラムを実行することによって追加部分を取得するステップと、を含む。
【０００６】
有利には、デバイスは、暗号化された部分及び自動解読プログラムをその不揮発性メモリに格納してよく、デバイスは、フィンガープリントを入手してユーザの認証を開始してよく、デバイスは、認証が成功した場合に、認証情報を入手し、追加部分が実行されそうになるとすぐに自動解読プログラムを実行してよい。
【０００７】
有利には、デバイスは、デバイスのフィンガープリント及びユーザリファレンスを入手してよく、認証情報又はユーザのリファレンス、フィンガープリント、及びアプリケーションのリファレンスを含む使用要求をコントローラサーバに送信してよい。コントローラサーバは、ユーザにアプリケーションを実行する許可が与えられているかどうかをチェックし、チェックを反映する結果をデバイスに送信してよい。デバイスは、受信した結果に応じてアプリケーションの実行を許可する又は許可しなくてよい。
【０００８】
有利には、デバイスは、可変的なランタイム環境を有してよい。要求は、現在のランタイム環境の状態を反映する特徴を含んでよく、要求は、追加部分が実行されそうになるとすぐに送信されてよい。
【０００９】
有利には、サーバは、暗号化された部分を生成するために、複数の暗号化アルゴリズムの中から１つの暗号化アルゴリズムを動的に選択してよい。
【００１０】
本発明の別の目的は、サーバと通信可能なデバイスである。デバイスは、アプリケーションの汎用部分を受信及びインストールするように構成される。デバイスは、デバイスのフィンガープリントを入手し、デバイスのユーザの認証を開始し、認証が成功した場合に、ユーザに関連付けられた認証情報を取得するように構成されたエージェントを備える。エージェントは、アプリケーションの追加部分を入手するための要求をサーバに送信するように構成される。要求は、認証情報又はユーザのリファレンス、フィンガープリント、及びアプリケーションのリファレンスを含む。エージェントは、アプリケーションに関連付けられた自動解読プログラムをサーバから受信し、フィンガープリント及び認証情報を入力パラメータとして使用して自動解読プログラムを実行することによって追加部分を取得するように構成される。
【００１１】
有利には、デバイスは、暗号化された部分及び自動解読プログラムをその不揮発性メモリに格納するように構成されてよい。エージェントは、ユーザの認証を開始し、認証が成功した場合に、フィンガープリント及び認証情報を入手し、追加部分が実行されそうになるとすぐに自動解読プログラムを実行するように構成されてよい。
【００１２】
有利には、エージェントは、認証情報又はユーザのリファレンス、フィンガープリント、及びアプリケーションのリファレンスを含む使用要求をコントローラサーバに送信するように構成されてよい。エージェントは、使用要求に応じてコントローラサーバから受信した結果に応じてアプリケーションの実行を許可する又は許可しないように構成されてよい。
【００１３】
有利には、デバイスは、可変的なランタイム環境を有し、エージェントは、可変的なランタイム環境の現在の状態を反映する特徴を要求に追加するように構成されてよい。エージェントは、追加部分が実行されそうになるとすぐに要求を送信するように構成されてよい。
【００１４】
本発明の別の目的は、２つの部分、すなわち汎用部分及び追加部分を含むアプリケーションの展開に関与することができるサーバである。汎用部分は、デバイスにあらかじめインストールされている。サーバは、追加部分を入手するための要求を受信するように適合されたチェックエージェントを備える。要求は、デバイスのユーザに関連付けられた認証情報又はデバイスのユーザのリファレンス、デバイスのフィンガープリント、及びアプリケーションのリファレンスを含む。サーバは、追加部分を特定するように適合されたディスカバリーエージェントを備える。サーバは、認証情報及びフィンガープリントの両方に基づく鍵を使用して、追加部分の暗号化された部分を生成するように適合されたジェネレータエージェントを備える。サーバは、暗号化された部分を解読するように構成された自動解読プログラムを作成し、要求に応じて暗号化された部分及び自動解読プログラムの両方を送信するように適合された暗号化エージェントを備える。
【図面の簡単な説明】
【００１５】
本発明の他の特徴及び利点は、対応する添付の図面を参照しながら本発明の複数の好適な実施形態の以下の説明を読めばより明らかになるだろう。
【００１６】
【図１】本発明によるデバイスへのアプリケーションのインストールの例を示すフローチャート。
【図２】本発明によるデバイス内でのアプリケーションの実行を制御する例を示すフローチャート。
【図３】本発明により管理されるアプリケーションの設計の例を示す図。
【図４】本発明によるアプリケーションを管理するように構成されたデバイスのアーキテクチャの例を示す図。
【図５】本発明によるアプリケーションを管理するように構成されたサーバのアーキテクチャの例を示す図。
【発明を実施するための形態】
【００１７】
本発明は、遠隔サーバと通信可能で、ソフトウェアアプリケーションを実行することを意図したどんなタイプのデバイスにも適用することができる。特に、本発明は、携帯電話、タブレットＰＣ、電子眼鏡、電子時計、及び電子ブレスレットといった携帯デバイス上で動くソフトウェアアプリケーションによく適している。本発明はまた、車両、計測器、スロットマシン、ＴＶ又はコンピュータなどのどんなデバイスにも適用することができる。
【００１８】
図１は、本発明によるソフトウェアアプリケーションを管理する方法の例を示す。
【００１９】
この例では、デバイスＤＥ１は、例えばＡｎｄｒｏｉｄ（登録商標）といったそれ自身のオペレーティングシステムを有する携帯電話である。
【００２０】
ソフトウェアアプリケーションＡ１は、２つの相補的部分、すなわち汎用部分ＢＴ及び追加部分Ｐ１を含むように設計される。
【００２１】
好ましくは、汎用部分ＢＴは、いくつかの種類のアプリケーションに使用可能なソフトウェア部分であってよい。汎用部分ＢＴは、いくつかのアプリケーションに共通の特徴及び構成要素を備えてよい。
【００２２】
汎用部分ＢＴは、デバイスＤＥ１のオペレーティングシステムから分離している。
【００２３】
有利には、汎用部分ＢＴは、追加部分Ｐ１のダウンロードを管理可能なブートストラップとして展開することができる。
【００２４】
第１のステップにおいて、サーバＳＶ２は、汎用部分ＢＴをデバイスＤＥ１に送信し、汎用部分ＢＴは、デバイスＤＥ１にインストールされる。一実施形態では、汎用部分ＢＴは、サーバＳＶ２から自由に取得及びインストールすることができる。
【００２５】
第２のステップにおいて、デバイスＤＥ１はユーザを認証する。例えば、デバイスＤＥ１は、ユーザにＰＩＮコード又は特定のパスワードをデバイスＤＥ１の画面／キーボードを通して入力することを要求してよい。デバイスＤＥ１はまた、ユーザの生体的特徴を入手してよい。代替的に、ユーザは、格納する別のデバイスから取得された機密データを使用して認証されてもよい。この別のデバイスは、例えばＵＳＢトークン又はＮＦＣ（近距離無線通信）トークンであってよい。ユーザ認証が成功した場合、デバイスＤＥ１はユーザの認証情報ＵＣを入手する。
【００２６】
第３のステップにおいて、デバイスＤＥ１は、デバイスＤＥ１のフィンガープリントＤＦＰを取得し、ユーザの認証情報ＵＣ、フィンガープリントＤＦＰ、及びアプリケーションＡ１のリファレンスＡｐｐＩＤを含む要求Ｒ１を作成する。
【００２７】
別の例では、認証情報ＵＣは、使用されている認証情報ＵＣがあらゆる取引に展開されるように、マスター認証情報から導かれてよい。この場合、デバイスＤＥ１は、自身のメモリからマスター認証情報を取得し、認証情報ＵＣとして使用される派生トークンを生成する。
【００２８】
別の例では、デバイスＤＥ１は、ユーザの認証情報ＵＣではなく、ユーザのリファレンス（すなわち、識別子）を含む要求Ｒ１を作成することができる。この場合、認証情報ＵＣは、サーバ及びデバイスＤＥ１の両方の側に事前に格納されていると仮定される。
【００２９】
別の例では、認証情報ＵＣは、ユーザがデバイスＤＥ１の認証を行うのに使用する（例えば、提供する）機密データから導かれてもよい。
【００３０】
リファレンスＡｐｐＩＤは、例えばアプリケーションＡ１の識別子又は名前であってよい。フィンガープリントＤＦＰは、デバイスＤＥ１のシリアルナンバー、又はデバイスＤＥ１に固有の任意のデータであってよい。
【００３１】
有利には、フィンガープリントＤＦＰは、デバイスＤＥ１のいくつかの手段又は要素に基づいて生成されてよい。例えば、フィンガープリントＤＦＰは、デバイスＤＥ１にインストールされているアプリケーションの番号（及び／又は名前）と、デバイスＤＥ１の不揮発性メモリの残りの空きサイズの組み合わせから作成されてよい。
【００３２】
次に、デバイスＤＥ１は、追加部分Ｐ１を取得するために要求Ｒ１をサーバＳＶ１に送信する。
【００３３】
第４のステップにおいて、サーバＳＶ１は、リファレンスＡｐｐＩＤに基づいて追加部分Ｐ１を特定する。サーバＳＶ１は、追加部分Ｐ１を専用の記憶装置から生成又は取得してよい。次に、サーバＳＶ１は、ユーザの認証情報ＵＣ及びフィンガープリントＤＦＰの両方を入力パラメータとして使用して、追加部分Ｐ１の暗号化された部分ＥＰ１を生成する。サーバＳＶ１はまた、暗号化された部分ＥＰ１を解読するように設計された自動解読プログラムＡＰ１を作成する。
【００３４】
代替的に、サーバＳＶ１は、ユーザの認証情報ＵＣ及びフィンガープリントＤＦＰの両方に基づいて鍵を計算してもよく、この計算された鍵を使用して暗号化された部分ＥＰ１を生成してもよい。
【００３５】
一実施形態では、サーバＳＶ１は、暗号化された部分ＥＰ１を生成するために事前に設定された暗号化アルゴリズムを使用してよい。任意選択で、サーバＳＶ１は、暗号化された部分ＥＰ１を生成するために、使用されている暗号化アルゴリズムが時間ごとに異なり得るように、いくつかの暗号化アルゴリズムから１つの暗号化アルゴリズムを動的に選択してもよい。例えば、サーバＳＶ１は、ＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）アルゴリズム又はＸＯＲアルゴリズムのいずれかをランダムに選択してよい。
【００３６】
自動解読プログラムＡＰ１は、暗号化された部分ＥＰ１を解読するように構成された自律的ソフトウェアアプリケーションである。自動解読プログラムＡＰ１は、入力パラメータとしてユーザの認証情報ＵＣ及びフィンガープリントＤＦＰの両方を必要とする。
【００３７】
第５のステップでは、サーバＳＶ１は、要求Ｒ１に応じて暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１の両方を送信する。好ましくは、デバイスＤＥ１は、これらの２つの要素を唯一のバンドルで入手してよい。任意選択で、これらの２つの要素は２つのパッケージで受信されてもよい。
【００３８】
ここから２つのオプションが可能である。バンドル（暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１の両方を含む）は、デバイスＤＥ１の不揮発性メモリに格納され後で使用されるか、デバイスＤＥ１に永久的に格納されることなく直ちに使用されてアプリケーションＡ１を実行するかのいずれかである。
【００３９】
第１のオプションでは、追加部分Ｐ１が開始しそうになるたびに（すなわち、追加部分Ｐ１が実行されそうになるとすぐに）、デバイスＤＥ１はユーザ認証を行い、認証が成功した場合に、再びユーザの認証情報ＵＣ及びデバイスＤＥ１のフィンガープリントＤＦＰを入手する。そしてデバイスＤＥ１は、ユーザの認証情報ＵＣ及びフィンガープリントＤＦＰを入力パラメータとして使用して、自動解読プログラムＡＰ１の実行を開始して追加部分Ｐ１を取得する。デバイスＤＥ１は、デバイスＤＥ１が再起動したり、電源がオフになったりした場合に消去される作業メモリに追加部分Ｐ１を格納する。
【００４０】
このオプションによって、たとえバンドル（暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１の両方を含む）がデバイスＤＥ１から別のデバイスに違法にコピーされたとしても、フィンガープリントが異なり、ユーザの認証情報が使用できないため、このような他のデバイスに追加部分Ｐ１を取り込むことはできない。
【００４１】
第２のオプションでは、デバイスＤＥ１は、直ちに（すなわち、自動解読プログラムＡＰ１を受け取るとすぐに）、第２のユーザ認証なしにユーザの認証情報ＵＣ及びフィンガープリントＤＦＰを入力パラメータとして使用して、自動解読プログラムＡＰ１を実行することによって追加部分Ｐ１を取得する。第２のオプションでは、デバイスは、自動解読プログラムＡＰ１、暗号化された部分ＥＰ１及び追加部分Ｐ１を自身の不揮発性メモリに永久的に格納しない。
【００４２】
任意選択で、デバイスＤＥ１は、そのランタイム環境の現在の状態に固有の特徴（すなわち、特性）ＲＴＰを取得し、この特徴ＲＴＰを要求Ｒ１に挿入してもよい。サーバＳＶ１は、デバイスＤＥ１の現在のランタイム環境と共にしか使用できない追加部分Ｐ１を生成するように設計することができる。換言すれば、追加部分Ｐ１は、デバイスＤＥ１の現在のランタイム環境だけが使用できるようにカスタマイズされている。例えば、この特徴ＲＴＰは、追加部分Ｐ１を実行するために割り当てられたメモリ領域の第１のアドレスであってよい。デバイスＤＥ１のランタイム環境は、カスタムの追加部分Ｐ１を後で（すなわち、ランタイム環境の状態が変化したときに）デバイスＤＥ１又は別のデバイスで使用できないほど変わりやすいと考えられる。
【００４３】
この場合、追加部分Ｐ１は、ターゲットのランタイム環境の状態に応じてカスタマイズされる。
【００４４】
セキュリティレベルを強化するために、サーバＳＶ１及びデバイスＤＥ１は、要求Ｒ１及びその応答を交換する前にセキュアチャネルを確立してよい。例えば、通信はＯＴＡ（Ｏｖｅｒ−Ｔｈｅ−Ａｉｒ）３Ｇ若しくは４Ｇチャネルを通して、又はＨＴＴＰＳセッションを介して行われてよい。
【００４５】
上記の例では、サーバＳＶ１及びＳＶ２は、２つの別個のエンティティとして示されているが、単一のサーバ又はマシンに統合されてもよい。
【００４６】
図２は、本発明によるソフトウェアアプリケーションの実行を制御する方法の例を示す。
【００４７】
この例では、デバイスＤＥ１はタブレットＰＣであってよく、アプリケーションＡ１は図１で説明したアプリケーションと類似してよい。
【００４８】
この方法は上記の第１のオプションに適用される。（すなわち、暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１がデバイスＤＥ１の不揮発性メモリに永久的に格納される場合。）
【００４９】
追加部分Ｐ１が実行されそうになるとすぐに、デバイスＤＥ１はユーザ認証を行い、認証が成功した場合に、ユーザの認証情報ＵＣを入手する。例えば、デバイスＤＥ１は、これらの認証情報を格納する第２のデバイスＤＥ２から認証情報ＵＣを取得することができる。例えば、第２のデバイスＤＥ２は、ＮＦＣ、Ｗｉ−ｆｉ又はＢｌｕｔｏｏｔｈ（登録商標）といった非接触セッションを介してデバイスＤＥ１と通信可能なデバイスであってよい。
【００５０】
デバイスＤＥ１は、デバイスＤＥ１のフィンガープリントＤＦＰを取得し、ユーザの認証情報ＵＣ（又はユーザのリファレンス）、フィンガープリントＤＦＰ、及びアプリケーションＡ１のリファレンスＡｐｐＩＤを含む使用要求Ｒ２を作成する。次に、デバイスＤＥ１は、追加部分Ｐ１を実行する権限を入手するために、使用要求Ｒ２をサーバＳＶ３に送信する。
【００５１】
サーバＳＶ３は、リファレンスＡｐｐＩＤに基づいて追加部分Ｐ１（したがって、アプリケーションＡ１）を特定する。次にサーバＳＶ３は、認証情報ＵＣ（又はリファレンス）が受け取られているユーザが、フィンガープリントＤＦＰに対応するデバイス上で追加部分Ｐ１を実行する（すなわち、アプリケーションＡ１を実行する）権限を与えられているかどうかをチェックする。このチェックは、ユーザに割当てられたアカウントに基づいてよい。限られた実行回数及び／又は時間ウィンドウに基づいてもよい。
【００５２】
次にサーバＳＶ３は、チェックの結果を反映する応答をデバイスＤＥ１に送信する。チェックが成功した場合、デバイスＤＥ１は、追加部分Ｐ１の実行を許可し、それ以外の場合は追加部分Ｐ１の実行を拒絶する。
【００５３】
一実施形態では、自動解読プログラムＡＰ１は、サーバＳＶ３が提供する結果が否定的である場合、追加アプリケーションＰ１の解読を拒絶するように構成されてよい。
【００５４】
別の例では、汎用部分ＢＴは、サーバＳＶ３が送信した結果が誤りであった場合、追加部分Ｐ１の実行を拒絶するように構成されてよい。
【００５５】
第３の例では、サーバＳＶ３は、値が自動解読プログラムＡＰ１によって入力パラメータとして使用されるデータを送信してよい。
【００５６】
任意選択で、サーバＳＶ３及び図１のサーバＳＶ１は、単一のサーバ又はマシンに統合されてよい。
【００５７】
図３は、本発明により管理されるアプリケーションＡ１のアーキテクチャの例を示す。
【００５８】
ソフトウェアアプリケーションＡ１は、アプリケーションの正確な実行に必要な２つの部分、すなわち、汎用部分ＢＴ及び追加部分Ｐ１を含む。
【００５９】
汎用部分ＢＴは、アプリケーションＡ１用に特別設計されている。汎用部分ＢＴは、アプリケーションＡ１に固有である。
【００６０】
汎用部分ＢＴは、完全なアプリケーションＡ１になりきるために追加部分Ｐ１を必要とする不完全なアプリケーションと見られる可能性がある。
【００６１】
汎用部分ＢＴは、オペレーティングシステムの要素でもＪａｖａ（登録商標） ＲＥなどの汎用仮想マシンでもないことに留意されたい。汎用部分ＢＴは（ＤＬＬなどの）共有可能なライブラリでない。汎用部分ＢＴは、独立に開始することができ、所望の処理を実行するのに追加部分を必要とするスタンドアロンソフトウェアである。
【００６２】
一方、追加部分Ｐ１は、独立に開始することができるスタンドアロンソフトウェアでない。
【００６３】
一例では、汎用部分ＢＴは、特徴及びそのセキュリティレベルが低いアプリケーションデータを含み、追加部分Ｐ１は、特徴及びそのセキュリティレベルが高いアプリケーションデータを含む。
【００６４】
一例では、汎用部分ＢＴはダウンロードマネージャＤＭを備える。ダウンロードマネージャＤＭは、リモートサーバからの追加部分Ｐ１のダウンロードを管理するように適合される。
【００６５】
本発明によって、汎用部分ＢＴは、アプリケーションストアに固有のアプリケーションとして登録することができる。一団のデバイスは、アプリケーションストアから汎用部分ＢＴを入手し、次いでデバイスごとにカスタマイズされた追加部分Ｐ１を安全にロードすることができる。
【００６６】
本発明は、どんなタイプのソフトウェアアプリケーションにも適用される。例えば、アプリケーションＡ１は、物理的アクセス制御、識別、決済、電気通信、ロイヤルティ、又は、動画、画像、若しくは音楽などのサービスアクセスに特化していてよい。
【００６７】
図４は、本発明によるアプリケーションを管理するように構成されたデバイスＤＥ１のアーキテクチャの例を示す。
【００６８】
デバイスＤＥ１は図１の携帯電話と類似している。デバイスＤＥ１は、フラッシュメモリであってもよい不揮発性メモリＭＥを備える。不揮発性メモリＭＥには、デバイスＤＥ１のオペレーティングシステムＯＳ、エージェントＡＧ、及びアプリケーションＡ１の汎用部分ＢＴが格納される。デバイスＤＥ１は、解読されて使用できるようになる（点線で描かれた）追加部分Ｐ１を備えてよいランタイム環境ＲＴＥも備える。ランタイム環境ＲＴＥは、作業メモリ（例えば揮発性ＲＡＭ）を備える。
【００６９】
エージェントＡＧは、デバイスＤＥ１のフィンガープリントＤＦＰを取得するように構成される。例えば、エージェントは、デバイスＤＥ１の識別子（すなわち、シリアルナンバー）やデバイスＤＥ１に独自に組み込まれたハードウェアコンポーネント（例えばハードディスク又はディスプレイ）の識別子を読み出すように適合されてよい。エージェントＡＧはまた、デバイスＤＥ１のユーザに関連付けられた認証情報ＵＣを取得するように構成される。エージェントＡＧはまた、識別子、名前、又は加入者番号といったユーザのリファレンスを取得するように構成されてよい。エージェントＡＧは、認証情報ＵＣ（又はユーザリファレンス）、フィンガープリントＤＦＰ、及びアプリケーションＡ１のリファレンスＡｐｐＩＤを含む要求Ｒ１を作成するように構成される。リファレンスＡｐｐＩＤは、例えばアプリケーションＡ１の識別子であってよい。
【００７０】
エージェントＡＧはまた、マスター認証情報を入手し、（例えば、一時トークン又はワンタイムトークンとして）マスター認証情報から認証情報ＵＣを導くように構成されてよい。
【００７１】
要求Ｒ１は、サーバＳＶ１からアプリケーションＡ１の追加部分Ｐ１を入手することを目的とする要求である。エージェントＡＧはまた、アプリケーションＡ１に関連付けられた自動解読プログラムＡＰ１をサーバＳＶ１から受信し、入力パラメータとしてフィンガープリントＤＦＰ及び認証情報ＵＣを使用して、自動解読プログラムＡＰ１を実行することによって追加部分Ｐ１を取得するように構成される。
【００７２】
有利には、エージェントＡＧは、フィンガープリントＤＦＰ及び認証情報ＵＣを入手し、追加部分Ｐ１が実行されそうになるとすぐに自動解読プログラムＡＰ１を実行するように構成されてよい。
【００７３】
有利には、エージェントＡＧは、受信した自動解読プログラムＡＰ１（及び／又は受信した暗号化された部分ＥＰ１）の整合性をチェックし、整合性チェックが成功した場合にのみフィンガープリントＤＦＰ及びユーザの認証情報ＵＣを入手するように構成されてよい。
【００７４】
有利には、エージェントＡＧは、認証情報ＵＣ（又はユーザリファレンス）、フィンガープリントＤＦＰ、及びアプリケーションＡ１のリファレンスＡｐｐＩＤを含む使用要求Ｒ２をコントローラサーバＳＶ３に送信するように構成されてよい。この場合、エージェントＡＧはまた、使用要求Ｒ２に応じてコントローラサーバＳＶ３から受信した結果に応じて追加部分Ｐ１の実行を許可する又は許可しないように構成されてよい。
【００７５】
任意選択で、エージェントＡＧは、ランタイム環境ＲＴＥの現在の状態を反映する（すなわち、ＲＴＥの現在の状態に固有の）特徴ＲＴＰを要求Ｒ１に追加するように構成されてよい。エージェントＡＧはまた、追加部分Ｐ１が実行されそうになるとすぐに要求Ｒ１を送信するように構成されてよい。
【００７６】
一実施形態では、エージェントＡＧ及び汎用部分ＢＴは単一のエンティティに統合されてよい。例えば、汎用部分ＢＴは、エージェントＡＧの全ての特徴を提供するように構成されてよい。
【００７７】
図５は、本発明によるアプリケーションを管理するように構成されたサーバＳＶ１のアーキテクチャの例を示す。
【００７８】
サーバＳＶ１は、チェックエージェントＭ１、ディスカバリーエージェントＭ２、ジェネレータエージェントＭ３及び暗号化エージェントＭ４を備える。チェックエージェントＭ１は、図１で説明された要求Ｒ１を受信するように構成される。ディスカバリーエージェントＭ２は、要求Ｒ１に含まれているリファレンスＡｐｐＩＤに基づいて追加部分Ｐ１を特定するように構成される。ジェネレータエージェントＭ３は、要求Ｒ１に含まれているユーザの認証情報ＵＣ（又はユーザリファレンス）及びデバイスフィンガープリントＤＦＰの両方を使用して、追加部分Ｐ１の暗号化された部分ＥＰ１を生成するように構成される。
【００７９】
暗号化エージェントＭ４は、暗号化された部分ＥＰ１を解読するように構成された自動解読プログラムＡＰ１を作成し、要求Ｒ１に応じて暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１の両方を送信するように設計される。
【００８０】
ジェネレータエージェントＭ３及び暗号化エージェントＭ４は、事前に設定された暗号化アルゴリズムを使用する、又はいくつかの利用可能な暗号化アルゴリズムの中から１つの暗号化アルゴリズムを選択してよい。
【００８１】
これらの４つのエージェントは、異なるソフトウェアコンポーネントとして実装される、又は１つ若しくは複数のコンポーネントに統合されてよい。
【００８２】
本発明によれば、追加部分Ｐ１は、一旦デバイスＤＥ１にインストールされると、たとえサーバＳＶ１との接続が切れたとしても、デバイスの電源が切られない、又はデバイスが再起動されない限り使用することができる。換言すれば、デバイスＤＥ１は、アプリケーションＡ１を実行する際にオフラインになる可能性がある。
【００８３】
本発明によって、追加部分Ｐ１（したがって、アプリケーションＡ１）の実行は、ユーザ認証が常に行われ、実行を開始する前にユーザの認証情報及びデバイスフィンガープリントの両方が必要となるため不正行為から保護される。本発明はコピー防止の解決策を提供する。
【００８４】
本発明は、同じアプリケーション（すなわち、サービス）を全ての許可ユーザに提供する一方、多様なバンドル（すなわち、暗号化された部分ＥＰ１及び自動解読プログラムＡＰ１）を真のユーザのそれぞれに提供することを可能にする。
【００８５】
上記の実施形態は、本発明の範囲内において非限定的な例として提示されていることを理解する必要がある。特に、デバイスは、本発明によって保護されたいくつかのアプリケーションを実行してよく、ソフトウェアアプリケーションは、どんな言語で書かれていてもよい。
【００８６】
デバイスＤＥ１のアーキテクチャ及びサーバＳＶ１のアーキテクチャは、単なる例として提示されている。
【図１】
0006517435.tif 000002
【図２】
0006517435.tif 000003
【図３】
0006517435.tif 000004
【図４】
0006517435.tif 000005
【図５】
0006517435.tif 000006