"プロセッサを有するホスト、ホストへ接続されるセキュアプロセッサ及びリモートサーバを有するシステムにおいてソフトウェアアプリケーションを実行する方法であって、前記方法は:前記ホストにより、前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込む段階と;前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡す段階と;前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのためのアクティベーション列を前記リモートサーバへ要求する段階と;前記セキュアプロセッサにより、前記ソフトウェアアプリケーションのための前記アクティベーション列を前記リモートサーバから受信する段階と;前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードを実行可能にするために、前記アクティベーション列を使用する段階と;前記ホストにより、前記ホストソフトウェアコードを実行する段階と;前記ホストで実行される前記ホストソフトウェアコードにより、前記セキュアプロセッサ内の前記の実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す段階と;前記セキュアプロセッサにより、前記呼び出しへの応答を取得するために、前記の実行可能なセキュアプロセッサソフトウェアコードの手続を実行する段階と;前記セキュアプロセッサにより、前記呼び出しへの前記応答を返す段階と;を有する、方法。請求項1に記載の方法であって、前記セキュアプロセッサソフトウェアコードは保護され、かつ、前記方法は、前記セキュアプロセッサにより、前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除する段階をさらに有する、方法。請求項2に記載の方法であって、前記セキュアプロセッサソフトウェアコードは暗号化によって保護され、前記アクティベーション列は復号鍵であり、かつ、前記セキュアプロセッサは、前記復号鍵を用いた復号により前記の保護されたセキュアプロセッサソフトウェアコードの保護を解除することを特徴とする、方法。請求項1に記載の方法であって、前記セキュアプロセッサにより、前記セキュアプロセッサソフトウェアコードの整合性を検証する段階をさらに有する、方法。請求項1に記載の方法であって、前記アクティベーション列は、パスワード、前記セキュアプロセッサソフトウェアコードを補完するコードの一部、および前記セキュアプロセッサソフトウェアコードの準備をさせるための前記セキュアプロセッサによって実行されるよう意図されるバイナリコードのグループから選択されることを特徴とする、方法。請求項1に記載の方法であって、前記セキュアプロセッサにより、前記アクティベーション列をメモリに保存する段階をさらに有する、方法。請求項1に記載の方法であって、前記セキュアプロセッサは、複数のソフトウェアアプリケーションを保護するよう構成されることを特徴とする、方法。請求項1に記載の方法であって:前記ホストにより、前記ソフトウェアアプリケーションのタイトル識別子を読み込む段階;及び前記ホストにより、前記セキュアプロセッサへ前記タイトル識別子を渡す段階;をさらに有し、前記セキュアプロセッサは、前記要求に前記タイトル識別子を含めることを特徴とする、方法。ソフトウェアアプリケーションを実行するためのシステムであって、前記システムは、プロセッサを有するホスト及び前記ホストへ接続されるセキュアプロセッサを有し:前記ホストは:前記ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み;前記セキュアプロセッサソフトウェアコードを前記セキュアプロセッサへ渡し;前記ホストソフトウェアコードを実行し;かつ前記ホストソフトウェアコードを実行するとき、前記セキュアプロセッサ内の実行可能な前記セキュアプロセッサソフトウェアコードの手続を読み出す;よう構成され、前記セキュアプロセッサは:前記セキュアプロセッサソフトウェアコードを受信し;前記ソフトウェアアプリケーションのアクティベーション列をリモートサーバへ要求し;前記ソフトウェアアプリケーションの前記アクティベーション列を前記リモートサーバから受信し;前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサの前記手続を実行し;かつ前記呼び出しへの前記応答を返す;よう構成されることを特徴とする、システム。ソフトウェアアプリケーションを実行するためのシステムにおけるセキュアプロセッサであって、前記システムは、プロセッサを有し、かつ、前記セキュアプロセッサへ接続されるホストをさらに有し、前記セキュアプロセッサは:前記ホストからセキュアプロセッサソフトウェアコードを受信し;前記ソフトウェアアプリケーションのためのアクティベーション列をリモートサーバへ要求し;前記ソフトウェアアプリケーションのための前記アクティベーション列をリモートサーバから受信し;前記セキュアプロセッサソフトウェアコードを実行可能にするために前記アクティベーション列を使用し;前記ホストから、前記セキュアプロセッサソフトウェアコードの手続のための呼び出しを受信し;前記呼び出しへの応答を取得するために前記の実行可能なセキュアプロセッサソフトウェアコードの前記手続を実行し;かつ前記呼び出しへの前記応答を前記ホストへ返すよう構成される、セキュアプロセッサ。この解決策はよく機能したが、固有のソフトウェアプログラムを保護するための用途に当初制限された;すなわち、各タイトルは専用のセキュアプロセッサを必要とする。いくつかの場合において、例えば電子的に提供されるタイトルの場合、複数のタイトルを保護するセキュアプロセッサを有することは有益である。セキュアプロセッサによって実行されるソフトウェアはそのタイトルに依存するため、以下の二つの選択肢がある:-前もって複数のタイトルのソフトウェアコードをセキュアプロセッサに読み込む。この選択肢は単純であるが、保護するタイトルが前もって知られていなければならず、これらのタイトルが利用可能になっている必要があるという欠点を有する。-タイトルを実行するとき、セキュアプロセッサの中のソフトウェアコードをリアルタイムに読み込む。セキュアプロセッサでソフトウェアコードを安全に読み出す、Java登録商標Card及びSimツールキットのような既存の解決策が存在する。コードは、しばしばデジタルダウンロードにより提供される。さらなる詳細については、2008年にSpringer-VerlagNewYorkInc.から出版されている、K.MarkantonakisとK.Mayesによる、SmartCards,Token,SecurityandApplicationsを参照されたい。しかしながら、これらの解決策はさらに改善の余地がある。したがって、ユーザが権利を取得したタイトルのみアクセスを許可すると同時に、異なる複数のソフトウェアのタイトルの保護を有効にするシステムへの必要性があることが認められるだろう。また、システムは、タイトルが前もって知られていないときでも動作すべきである。本発明は、そのようなシステムを提供する。第一の態様において、本発明は、プロセッサを有するホスト、ホストへ接続されるセキュアプロセッサ及びリモートサーバを有するシステムにおいてソフトウェアアプリケーションを実行する方法を対象とする。ホストは、ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み、後者を、リモートサーバへソフトウェアアプリケーションのためのアクティベーション列を要求するセキュアプロセッサへ渡す。セキュアプロセッサは、ソフトウェアアプリケーションのためのアクティベーション列を受信し、セキュアプロセッサソフトウェアコードを実行可能にするために、それを使用する。ホストは、ホストソフトウェアコードを実行し、セキュアプロセッサで実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す。セキュアプロセッサは、返されるべき呼び出しへの応答を取得するため、実行可能なセキュアプロセッサソフトウェアコードの手続を実行する。第一の望ましい実施形態においては、セキュアプロセッサソフトウェアコードは保護され、セキュアプロセッサが前記保護されたセキュアプロセッサソフトウェアコードの保護を解除する。保護されたセキュアプロセッサソフトウェアコードは暗号化によって保護されており、アクティベーション列は復号鍵であり、かつ、セキュアプロセッサは前記復号鍵を用いて復号化することによって前記保護されたセキュアプロセッサソフトウェアコードの保護を解除する点で有利である。第二の望ましい実施形態においては、セキュアプロセッサは、セキュアプロセッサソフトウェアコードの整合性を検証する。第三の望ましい実施形態においては、アクティベーション列は、パスワード、セキュアプロセッサソフトウェアコードを補完するコードの一部、およびセキュアプロセッサソフトウェアコードの準備をさせるための、セキュアプロセッサによって実行されるよう意図されるバイナリコードのグループから選択される。第四の望ましい実施形態においては、セキュアプロセッサはメモリ内にアクティベーション列を保存する。第五の望ましい実施形態においては、セキュアプロセッサは、複数のソフトウェアアプリケーションを保護するように構成される。第六の望ましい実施形態においては、ホストは、ソフトウェアアプリケーションのためのタイトル識別子を読み込み、要求の中にタイトルIDを含んでセキュアプロセッサへタイトル識別子を渡す。第二の態様において、本発明はソフトウェアアプリケーションを実行するためのシステムを対象とする。システムは、プロセッサを有するホスト及びホストへ接続されるセキュアプロセッサを有する。ホストは、ソフトウェアアプリケーションのホストソフトウェアコード及びセキュアプロセッサソフトウェアコードを読み込み;セキュアプロセッサソフトウェアコードをセキュアプロセッサに渡し;ホストソフトウェアコードを実行し;およびソフトウェアコードを実行するとき、セキュアプロセッサで実行可能なセキュアプロセッサソフトウェアコードの手続を呼び出す;よう構成される。セキュアプロセッサは、セキュアプロセッサソフトウェアコードを受信し;リモートサーバにソフトウェアアプリケーションのためのアクティベーション列を要求し;リモートサーバからソフトウェアアプリケーションのためのアクティベーション列を受信し;セキュアプロセッサソフトウェアコードを実行可能にするためのアクティベーション列を使用し;呼び出しへの応答を取得するために実行可能なセキュアプロセッサソフトウェアコードの手続を実行し;及び呼び出しへの応答を返すよう構成される。第三の態様において、本発明は、ソフトウェアアプリケーションを実行するためのシステムにおけるセキュアプロセッサを対象とする。システムは、プロセッサを有し、かつ、セキュアプロセッサへ接続されるホストをさらに有する。セキュアプロセッサは、ホストからセキュアプロセッサソフトウェアコードを受信し;リモートサーバへソフトウェアアプリケーションのためのアクティベーション列を要求し;リモートサーバからソフトウェアアプリケーションのためのアクティベーション列を受信し;セキュアプロセッサソフトウェアコードを実行可能にするためにアクティベーション列をセキュアプロセッサソフトウェアコードに適用し;ホストからセキュアプロセッサソフトウェアコードの手続のために呼び出しを受信し;呼び出しへの応答を取得するために実行可能なセキュアプロセッサソフトウェアコードの手続を実行し;及びホストへ呼び出しへの応答を返すよう構成される。本発明の望ましい機能は、例を限定しない目的で、添付の図面への参照とともに以下の図面において説明される。本発明は、各ソフトウェアタイトルのために動的に適応する単一のセキュアプロセッサを用いて、複数のソフトウェアタイトルの保護を可能にする。WO2009/074686において記載されている解決策と同様に、本発明のシステム100は、ホスト110及びセキュアプロセッサ120の二つの要素を有する図1において示されている。セキュアプロセッサ120は、例えばアプリケーションのファミリのような、ソフトウェアのタイトルに対応する複数のアプリケーションを保護する能力を有する。それぞれのアプリケーション130は、3つの主要部分:ホスト110のためのソフトウェアコード131ホストソフトウェアコード、セキュアプロセッサ120のためのソフトウェアコード132セキュアプロセッサソフトウェアコードおよびアクティベーション列133を有し、少なくともアクティベーション列133は、ホストソフトウェアコード131から分離してホスト110へと配送されることができる。セキュアプロセッサソフトウェアコード132は、権限を与えられたセキュアプロセッサ120のみが実行できるよう、望ましくは機密性および整合性ともに保護される。ホスト110はアプリケーション130を読み込むとき、ホストソフトウェアコード131を保持し、セキュアプロセッサソフトウェアコード132をセキュアプロセッサ120へ渡す。ホスト110は、通常、次にホストソフトウェアコード131を実行する。セキュアプロセッサ120は、権限を与えられていない人又はデバイスによってアクセスすることが困難、望ましくは不可能に近いように、目的を持ってその計算が保護されているのと同様、保存するコードの少なくとも一部分はセキュアである。セキュアプロセッサの共通の例は、スマートカードおよび耐タンパプロセッサを含む。セキュアプロセッサ120が存在するとき、受信されたセキュアプロセッサソフトウェアコード132を実行するために、セキュアプロセッサ120は望ましくは:-例えば、復号によって、ソフトウェアコードのブロックの順列によって、又は他の所定の命令のためにある命令を置換することによって、ソフトウェアコードの保護を解除する。-保護が解除されたソフトウェアコードの整合性を確認する。保護されたソフトウェアコードの整合性をチェックすることも必然的に可能であることは注意しなければならない。-現在のアクティベーション列133を待つ。アクティベーション列133は、このタイトル又はタイトルのグループについて包括的であることができ、又は、既知のアプリケーション130と既知のセキュアプロセッサ120を組にするよう特別に作成されることができる。アクティベーション列は、リモートサーバからセキュアに配送されることができる。セキュアプロセッサ120は、保護の解除、整合性確認およびホスト110との通信のための他のものの中で用いられる常駐ソフトウェアコード図示されないを有することに注意しなければならない。アクティベーション列133は、セキュアプロセッサソフトウェアコードを使用可能すなわち、実行可能にするために、セキュアプロセッサ120によってセキュアプロセッサソフトウェアコード132へ適用される。正しいアクティベーション列133がないと、セキュアプロセッサソフトウェアコード132は、望ましくは実行不可能である。アクティベーション列133は、多数の異なる形をなすことができる。例えば、セキュアプロセッサソフトウェアコード132この場合、アクティベーション列はコードの保護を解除するために必要とされるを復号するための鍵、セキュアプロセッサソフトウェアコード132によって動作するために必要とされる‘パスワード’、セキュアプロセッサソフトウェアコード132一つの命令から全てのプログラムの部分に及ぶから欠落している望ましくは必要不可欠なソフトウェア、又はセキュアプロセッサソフトウェアコード132を準備するためにセキュアプロセッサ120によって実行されるべきバイナリコードである。理想的には、セキュアプロセッサ120は、複数のアクティベーション列133を保存する能力を有する。この場合、セキュアプロセッサ120は、既に有するアクティベーション列133を要求する必要がない点で有利である。図2において示される望ましい実施形態において、ホスト210は、インターネット240へアクセス可能な一般的なコンピュータである。ホスト210は、少なくとも一つのプロセッサ、メモリ、インターネットインターフェース等を有する。セキュアプロセッサ220は、アクティベーション列等を保存するメモリ221を有するスマートカード又はスマートカード型デバイスであり、望ましくはUSBバス250を経てホスト210へと接続されている。セキュアプロセッサ220は、ホスト210を通じてリモートサーバ260へ仮想の直接接続280を開くことができる。好ましい実施形態の目的は、セキュアプロセッサ220が、ソフトウェアプロバイダによって提供されたアプリケーションのファミリを保護することである。望ましい実施形態において、アプリケーション230は、CD-ROM、DVD-ROM又はブルーレイディスクのような物理的な光学記憶媒体270に、ホストコード271、暗号化されたコード272およびタイトルID273として保存されている。アプリケーション230は、ホストコード271およびセキュアプロセッサコード275を有し、セキュアプロセッサコード275は順に以下の3つの部分:-タイトルID273、タイトルに一意保護されていないである識別子-一般コード277、すなわち一つ以上のタイトルによって使用可能なコード、および-タイトル固有コード278、すなわちタイトルに固有のコードを有する。一般コード277およびタイトル固有コード278は、暗号化されたコード272から生成される。一般コード277およびタイトル固有コード278は、アプリケーション230が実行されるとき、セキュアプロセッサ220によって実行されるソフトウェアコードである。図3は、本発明の望ましい実施形態によるアプリケーションの物理コピーの生成を表す。-ランダムな128ビットの鍵であるタイトル鍵305が選択される310。タイトル鍵305およびタイトルID273は、アクティベーション列を形成する。-タイトル固有コード278は、タイトル鍵305を用いてAESで暗号化され320、保護されたタイトルコード308を生成する。-2048ビットのプロバイダ秘密鍵315を用いて、一般コード277および保護されたタイトルコード308に関してRSAの署名が計算され330、タイトル署名318を生成する。全てのセキュアプロセッサ220プロバイダと接続されたは、対応する2048ビットのプロバイダ公開鍵を保存する。-一般コード277、保護されたコード308およびタイトル署名318は、128ビットのプロバイダ対称鍵335を用いてAESで暗号化され340、暗号化されたコード272を生成する。全てのセキュアプロセッサ220プロバイダに接続されたは、プロバイダ対称鍵335も保存する。-ホストコード271、保護されたコード272およびタイトルID273は、次に、たとえば光学記憶媒体270のような物理コピーに保存される350。物理光学記憶媒体270を読み込むとき、ホスト210は、セキュアプロセッサ220に、暗号化されたコード272およびタイトルID273を供給する。セキュアプロセッサ220は、次に、以下の処理を行う:-プロバイダ対称鍵335を用いて暗号化されたコード272を復号する-プロバイダ公開鍵を用いてタイトル署名318が正しいか検証する-署名の検証が正しい場合、アクティベーション列メモリ221がタイトルID273に対応するアクティベーション列233を保存しているかどうか検証する。--アクティベーション列メモリ221がそのようなアクティベーション列233を保存していないとき、セキュアプロセッサ220はサーバ260へアクティベーション列233を要求する。これは、セキュアプロセッサの個別の一意の鍵ペアを用いて、SACSecureAuthenticatedChannelのようないかなる適切な先行技術を用いて、望ましくは実行される。--要求されたアクティベーション列233を受信すると、セキュアプロセッサ220は、アクティベーション列メモリ221にセキュアに保存する。-アクティベーション列233によって提供されたタイトル鍵305を用いて、タイトル固有コード278を復号化する。-一般コード277及びタイトル固有コード278によって形成されるコードを実行する。ホスト210がホストコード271を実行するとき、ホスト210はセキュアプロセッサ220内の一般コード277及びタイトル固有コード278内の手続を呼び出す。セキュアプロセッサは、要求された手続を実行し、対応する応答を返す。セキュアプロセッサ220がないとき、不正なコード例えば、別のタイトルに対応するコードのみを含むとき、又は正しいアクティベーション列233を欠くとき、全く返答が返されないか又は不正であるとの返答が返され、かつ、タイトルの実行は適切に働かないであろう。当然のことながら、望ましい実施形態は、一つのソフトウェアプロバイダのみをサポートする。当業者は、複数のプロバイダに拡張するアイデアを容易に理解するだろう。それぞれのプロバイダは、自分のプロバイダ対称鍵並びに自分のプロバイダ公開鍵及び自分のプロバイダ秘密鍵の鍵ペアを有するだろう。アプリケーションは、発行するプロバイダを識別する追加の情報を有するであろう。当業者は、本発明が、ソフトウェアのファミリ又は複数のソフトウェアプログラムを保護することができることを理解するだろう。例えば、本発明の、それぞれのタイトルを動的に保護するよう構成されているセキュアプロセッサは、既知の編集者又は販売業者によって提供される、いかなるソフトウェアをも保護することができる。このことは、ソフトウェアにつき一つのトークンを用いるよりもユーザフレンドリである。詳細な説明、適切なクレーム及び図面に開示されるそれぞれの機能は、独立して提供されてもよく、いかなる適切な組み合わせにおいて提供されてもよい。ハードウェアで実装されるよう記載されている機能は、ソフトウェアでも実装されてもよく、その逆も同様である。クレーム内に現れる参照番号は、説明の手段として記載されたものであり、クレームの範囲に何ら制限を及ぼすべきではない。"