ネットワークを通じて第1のサーバからコンピューティングプラットフォームへライセンスとアプリケーションプログラムをプロビジョニングする方法であって、前記ライセンスは第1の公開鍵を用いて前記第1のサーバにより暗号化され、第2の鍵を含み、前記アプリケーションプログラムは前記第2の鍵を用いて前記第1のサーバにより暗号化され、前記方法は、前記コンピューティングシステムのプロセッサにより実行されるホストアプリケーションが、ユーザパスワードを受け取るステップと、前記ホストアプリケーションが、前記ユーザパスワードから、少なくとも部分的に対称鍵を求めるステップと、前記ホストアプリケーションが、前記対称鍵で署名されたメッセージで、前記コンピュータシステムのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントに、ライセンスを送るステップと、前記ライセンス管理ファームウェアコンポーネントが、前記ハードウェアで実装されたセキュリティエンジンのセキュアストレージに記憶された前記ユーザパスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記ライセンスに対する前記第1のサーバの署名を確認し、前記第1の公開鍵に対応する前記ライセンス管理ファームウェアコンポーネントの第1の秘密鍵を用いて前記ライセンスを復号して、前記第2の鍵を取得するステップと、前記ライセンス管理ファームウェアコンポーネントが、前記第2の鍵を前記ホストアプリケーションに送るステップと、前記ホストアプリケーションが、前記第2の鍵を用いて前記アプリケーションプログラムを復号するステップとを有する、方法。前記コンピューティングプラットフォームが、前記第1のサーバに接続して、前記ホストアプリケーションを前記コンピューティングプラットフォームにダウンロードするステップをさらに有する、請求項1に記載の方法。前記セキュリティエンジンのケーパビリティライセンシングサービスが、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するステップをさらに有する、請求項2に記載の方法。前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期するステップをさらに有する、請求項1に記載の方法。前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスを復号する前に、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認するステップをさらに有する、請求項4に記載の方法。前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記第2の鍵を有する、請求項1に記載の方法。前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ライセンス管理ファームウェアコンポーネントから前記ホストアプリケーションに前記第2の鍵を送らないステップをさらに有する、請求項1に記載の方法。コンピューティングプラットフォームであって、ホストアプリケーションを実行するプロセッサと、前記ホストアプリケーションを記憶するメモリと、インタフェースを通して前記プロセッサと結合したチップセットであって、前記チップセットはハードウェアで実装したセキュリティエンジンを有し、前記セキュリティエンジンはセキュアストレージとライセンス管理ファームウェアコンポーネントとを含む、チップセットとを有し、前記コンピューティングプラットフォームは、ネットワークを通じて第1のサーバから前記コンピューティングプラットフォームへライセンスとアプリケーションプログラムをプロビジョニングするように構成され、前記ライセンスは第1の公開鍵を用いて前記第1のサーバにより暗号化され、第2の鍵を含み、前記アプリケーションプログラムは前記第2の鍵を用いて前記第1のサーバにより暗号化され、前記ホストアプリケーションは、実行されたとき、ユーザパスワードを受け取り、前記ユーザパスワードから少なくとも部分的に対称鍵を求め、前記対称鍵で署名されたメッセージで、前記ライセンス管理ファームウェアコンポーネントに前記ライセンスを送り、前記ライセンス管理ファームウェアコンポーネントが、前記セキュアストレージに記憶された前記ユーザパスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記ライセンスに対する前記第1のサーバの署名を確認し、前記第1の公開鍵に対応する前記ライセンス管理ファームウェアコンポーネントの第1の秘密鍵を用いて前記ライセンスを復号して、前記第2の鍵を取得し、前記第2の鍵を前記ホストアプリケーションに送り、前記ホストアプリケーションは、実行されたとき、前記第2の鍵を用いて前記アプリケーションプログラムを復号する、コンピューティングプラットフォーム。前記コンピューティングプラットフォームは、前記第1のサーバに接続され、前記ホストアプリケーションをダウンロードして前記メモリに記憶させる、請求項8に記載のコンピューティングプラットフォーム。前記ハードウェアで実装されたセキュリティエンジンは、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するケーパビリティライセンシングサービスコンポーネントを有する、請求項9に記載のコンピューティングプラットフォーム。前記ライセンス管理ファームウェアコンポーネントは前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期する、請求項8に記載のコンピューティングプラットフォーム。前記ライセンスを復号した後に、前記ライセンス管理ファームウェアコンポーネントが、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認する、請求項11に記載のコンピューティングプラットフォーム。前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記第2の鍵を有する、請求項8に記載のコンピューティングプラットフォーム。前記ライセンス管理ファームウェアコンポーネントは、前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ホストアプリケーションに前記第2の鍵を送らない、請求項8に記載のコンピューティングプラットフォーム。ネットワークにより第1のサーバからコンピューティングプラットフォームにライセンスとアプリケーションプログラムをプロビジョニングする方法であって、前記コンピューティングプラットフォーム上のプロセッサにより実行されているホストアプリケーションが、前記第1のサーバから前記ライセンスと前記アプリケーションプログラムを受け取るステップであって、前記ライセンスは前記コンピューティングプラットフォームのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントの公開鍵を用いて、前記第1のサーバにより暗号化され、前記アプリケーションプログラムは前記第1のサーバにより生成されたライセンス暗号化鍵を用いて前記第1のサーバにより暗号化され、前記暗号化されたライセンスは前記第1のサーバの秘密鍵により署名され、前記暗号化され署名されたライセンスと前記暗号化されたアプリケーションプログラムとを前記コンピューティングプラットフォームのメモリに記憶させる、ステップと、前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得するステップと、前記ホストアプリケーションが、前記パスワードから少なくとも部分的に対称鍵を求め、前記暗号化され署名されたライセンスを含むメッセージを前記対称鍵で署名するステップと、前記メッセージを、前記ホストアプリケーションから、前記ハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントに送るステップと、前記ライセンス管理ファームウェアコンポーネントが、前記パスワードから、少なくとも部分的に前記対称鍵を求めるステップと、前記ライセンス管理ファームウェアコンポーネントが、前記対称鍵を用いて前記メッセージの署名を確認するステップと、前記メッセージの署名が正しいと確認されたとき、前記第1のサーバの公開鍵を用いて前記暗号化されたライセンスの署名を確認し、前記ライセンス署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたライセンスを復号するステップと、前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスからライセンス暗号化鍵を取り出し、前記ライセンス暗号化鍵を前記ホストアプリケーションに送るステップと、前記ホストアプリケーションが、前記ライセンス暗号化鍵を用いて、前記暗号化されたアプリケーションプログラムを復号し、前記コンピューティングプラットフォームにおいて前記アプリケーションプログラムへのアクセスを許可するステップとを有する、方法。前記ライセンス管理ファームウェアコンポーネントが、前記対称鍵を求める前に、前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得するステップと、前記ホストアプリケーションが、前記ライセンス管理ファームウェアコンポーネントの公開鍵で前記パスワードを暗号化するステップと、前記ホストアプリケーションが、前記暗号化されたパスワードを、前記ネットワークにより前記コンピューティングプラットフォームに結合した第2のサーバに送るステップと、前記ライセンス管理ファームウェアコンポーネントが、前記第2のサーバの秘密鍵により署名された前記暗号化されたパスワードを受け取るステップと、前記ライセンス管理ファームウェアコンポーネントが、前記暗号化されたパスワードの署名を確認し、前記署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたパスワードを復号し、前記パスワードを前記セキュアエンジン中のセキュアストレージに記憶させるステップとをさらに有する、請求項15に記載の方法。前記コンピューティングプラットフォームが、前記第1のサーバに接続して、前記ホストアプリケーションを前記コンピューティングプラットフォームにダウンロードするステップをさらに有する、請求項15に記載の方法。前記セキュリティエンジンのケーパビリティライセンシングサービスが、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するステップをさらに有する、請求項17に記載の方法。前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期するステップをさらに有する、請求項15に記載の方法。前記ライセンス管理ファームウェアコンポーネントが、前記ライセンスを復号する前に、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認するステップをさらに有する、請求項19に記載の方法。前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記ライセンス暗号化鍵を有する、請求項15に記載の方法。前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ライセンス管理ファームウェアコンポーネントから前記ホストアプリケーションに前記ライセンス暗号化鍵を送らないステップをさらに有する、請求項15に記載の方法。コンピューティングプラットフォームであって、ホストアプリケーションを実行するプロセッサと、前記ホストアプリケーションを記憶するメモリと、インタフェースを通して前記プロセッサと結合したチップセットであって、前記チップセットはハードウェアで実装したセキュリティエンジンを有し、前記セキュリティエンジンはセキュアストレージとライセンス管理ファームウェアコンポーネントとを含む、チップセットとを有し、前記コンピューティングプラットフォームは、ネットワークにより第1のサーバからライセンスとアプリケーションプログラムをプロビジョニングし、前記ホストアプリケーションは前記第1のサーバから前記ライセンスと前記アプリケーションプログラムを受け取り、前記ライセンスは前記コンピューティングプラットフォームのチップセット中のハードウェアで実装されたセキュリティエンジンのライセンス管理ファームウェアコンポーネントの公開鍵を用いて、前記第1のサーバにより暗号化され、前記アプリケーションプログラムは前記第1のサーバにより生成されたライセンス暗号化鍵を用いて前記第1のサーバにより暗号化され、前記暗号化されたライセンスは前記第1のサーバの秘密鍵により署名され、前記暗号化され署名されたライセンスと前記暗号化されたアプリケーションプログラムとを前記メモリに記憶させ、ユーザからパスワードを取得し、前記パスワードから少なくとも部分的に対称鍵を求め、前記暗号化され署名されたライセンスを含むメッセージを前記対称鍵で署名し、前記メッセージを前記ライセンス管理ファームウェアコンポーネントに送り、前記ライセンス管理ファームウェアコンポーネントは、前記パスワードから少なくとも部分的に前記対称鍵を求め、前記対称鍵を用いて前記メッセージに対する署名を確認し、前記メッセージの署名が正しいと確認されたとき、前記第1のサーバの公開鍵を用いて前記暗号化されたライセンスの署名を確認し、前記ライセンス署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたライセンスを復号し、前記ライセンスから前記ライセンス暗号化鍵を取り出し、前記ライセンス暗号化鍵を前記ホストアプリケーションに送り、前記ホストアプリケーションは、前記ライセンス暗号化鍵を用いて、前記暗号化されたアプリケーションプログラムを復号し、前記コンピューティングプラットフォームにおいて前記アプリケーションプログラムへのアクセスを許可する、コンピューティングプラットフォーム。前記ライセンス管理ファームウェアコンポーネントは、前記ホストアプリケーションが、前記コンピューティングプラットフォームのユーザからパスワードを取得し、前記ライセンス管理ファームウェアコンポーネントの公開鍵で前記パスワードを暗号化し、前記ホストアプリケーションが、前記暗号化されたパスワードを、前記ネットワークにより前記コンピューティングプラットフォームに結合した第2のサーバに送り、前記ライセンス管理ファームウェアコンポーネントが、前記第2のサーバの秘密鍵により署名された前記暗号化されたパスワードを受け取り、前記暗号化されたパスワードの署名を確認し、前記署名が正しいと確認されたとき、前記ライセンス管理ファームウェアコンポーネントの秘密鍵を用いて前記暗号化されたパスワードを復号し、前記パスワードを前記セキュリティエンジン中のセキュアストレージに記憶させる、請求項23に記載のコンピューティングプラットフォーム。前記コンピューティングプラットフォームは、前記第1のサーバに接続され、前記ホストアプリケーションをダウンロードして前記メモリに記憶させる、請求項23に記載のコンピューティングプラットフォーム。前記ハードウェアで実装されたセキュリティエンジンは、前記ユーザパスワードを受け取る前に、前記第1のサーバと前記ライセンス管理ファームウェアコンポーネントとの間の許可された通信チャネルをアクティブ化するケーパビリティライセンシングサービスコンポーネントを有する、請求項25に記載のコンピューティングプラットフォーム。前記ライセンス管理ファームウェアコンポーネントは前記ライセンス管理ファームウェアコンポーネントの時間を前記第1のサーバの時間と同期する、請求項23に記載のコンピューティングプラットフォーム。前記ライセンスを復号した後に、前記ライセンス管理ファームウェアコンポーネントが、前記アプリケーションプログラムの許可された仕様のリース期限が徒かしたか確認する、請求項27に記載のコンピューティングプラットフォーム。前記ライセンスは、前記アプリケーションプログラムの一意的な識別子、前記ユーザのコンピューティングプラットフォームによる前記アプリケーションプログラムの許可された仕様のリース期限、及び前記第2の鍵を有する、請求項23に記載のコンピューティングプラットフォーム。前記ライセンス管理ファームウェアコンポーネントは、前記コンピューティングプラットフォームにおいて窃盗状態がトリガーされたとき、前記ホストアプリケーションに前記第2の鍵を送らない、請求項23に記載のコンピューティングプラットフォーム。本発明の実施形態は、ハードウェア実施のセキュリティエンジンSEを用いるソフトウェアライセンシングメカニズムを提供する。SEは、コンピューティングプラットフォームのチップセットに組み込まれ、ホストOSとは独立しており、認証用リモートサーバとセキュアに通信することができる。ホストOSと独立なハードウェアコンポーネントを用いて、ソフトウェアライセンス及び/又はアプリケーションプログラムなどの制限付きソフトウェアの復号、及びリース期間などのポリシーの強制に必要な暗号鍵保護するので、純粋なソフトウェアベースのソリューションと比較してセキュリティソリューションがよりセキュアになる。ソフトウェアだけのソリューションと比較して、SEをハッキングして鍵を取得することはずっと難しい。SEはユーザレベルやOSソフトウェアにより改ざんできないからである。以下の詳細な説明では、様々な実施形態をよく理解してもらうために、具体的な詳細事項を多数記載する。しかし、本発明の様々な実施形態はこれらの具体的な詳細事項がなくても実施することができる。他の場合には、本発明の具体的な実施形態を分かりにくくしないように、周知の方法、手順、コンポーネント、回路は詳細には説明していない。さらに、本発明の実施形態の様々な態様は、集積半導体回路ハードウェア、コンピュータ読み取り可能記憶媒体に記憶された一又は複数のプログラムに組織化されたコンピュータ読み取り可能命令ソフトウェア、又はハードウェアとソフトウェアの組合せなどの様々な手段を用いて実行できる。本開示の目的において、ロジックとは、ハードウェア、プロセッサの動作を制御するマイクロコードなどを含むソフトウェア、ファームウェア、又はこれらの組合せを意味するものとする。図1は、本発明の一実施形態によるシステムアーキテクチャ100を示す図である。明りょう化のため、図1はコンピューティングプラットフォーム102の簡略図を含む。コンピューティングプラットフォームは、少なくとも一プロセッサと少なくとも一メモリとを有する任意のタイプのコンピューティング装置である。一実施形態では、コンピューティングプラットフォームは、セルラホン、スマートホン、タブレット、パーソナルデジタルアシスタントPDA、ネットブックなどのハンドヘルド及び/又はモバイルコンピューティング装置を含む。コンピューティングプラットフォームがハンドヘルド及び/又はモバイル装置である一実施形態では、先行技術のシステムにおけるようにハードウェアドングルを必要とするものは実際的ではなく、問題がある。コンピューティングプラットフォームの一実施形態のより詳細な例は、図6を参照して説明する。本発明の実施形態では、制限付きソフトウェアの不正使用をライセンス、準備及び抑止するため、セキュアな実行及び記憶環境を提供するため、セキュリティエンジンSE108と呼ぶ組み込みマイクロコントローラを用いる。一実施形態では、セキュリティエンジン108は、チップセット106中の周知のマネージャビリティエンジンMEハードウェアコンポーネント内の機能として実施してもよい。他の実施形態では、セキュリティエンジンは、MEとは別の、チップセット106内の回路として実施してもよい。SEはファームウェアを有する。このファームウェアは、セキュアな実行環境においてマイコロコントローラ上で実行され、コンピューティングプラットフォーム102中のプロセッサで実行されるユーザレベルプログラム、オペレーティングシステムOS、ベーシック入出力システムBIOSによる改ざんから保護されたセキュア記憶エリア109を提供する。一実施形態では、セキュアストレージは、ソフトウェアライセンシングの目的で用いられる暗号鍵その他のデータを記憶している。セキュアストレージはいかなるタイプのメモリであってもよい。一実施形態では、SEは少なくとも2つのファームウェアモジュールを有する。セキュアライセンスマネージメントSLMサービス112は、ライセンス情報とそれに関連するポリシーを復号するのに必要な鍵の記憶を管理するファームウェアモジュールを有する。ケーパビリティライセンシングサービスCLS110は、SEにおいてSLMサービスのセキュアプロビジョニングを提供するファームウェアモジュールを有する。コンピューティングプラットフォーム102は、チップセット106に結合した少なくとも一のプロセッサ104を含む。プロセッサ104は、ホストアプリケーション116と呼ぶアプリケーションプログラムを実行する。ホストアプリケーションは、コンピューティングプラットフォーム上にインストールされた制限付きソフトウェアを使い使用の許可を受ける目的で、コンピューティングプラットフォームのユーザとインターラクションする。制限付きソフトウェアは、ソフトウェアベンダが、ポリシーを定めて、ライセンスにより管理したいソフトウェアを含む。一実施形態では、ホストアプリケーション116は、セキュリティエンジンインタフェースSEI114により、SE108と通信する。様々な実施形態では、SEIは、既知の標準的通信インタフェース又は独自の通信インタフェースの一により実施できる。SEは、そのケーパビリティを、パブリック又はプライベートのセキュアアプリケーションプログラムインタフェースAPIにより、OS図1には図示せずとホストアプリケーションとに公開している。コンピューティングプラットフォーム102は、既知の方法を用いてネットワーク118と通信する。一実施形態では、ネットワークはインターネットである。一実施形態では、ホストアプリケーション116はネットワークと通信でき、またホストアプリケーション116やプロセッサ104により実行されるその他のプログラムユーザレベルプログラムやOSにかかわらずとは独立に、SE108もネットワークと通信できる。このように、SE108は、プロセッサにより実行されるプログラムとは別に、コンピューティングプラットフォームに対して他の通信チャネルを提供する。ライセンスサーバ120は、ネットワークに結合し、ライセンスと通信ポリシーをプロビジョニングするケーパビリティと復号鍵をSEに提供する。一実施形態では、ライセンスサーバは、制限付きソフトウェアを、ユーザのコンピューティングプラットフォームに供給する。ある実施形態では、複数のライセンスサーバがあってもよい。一実施形態では、各ライセンスサーバは、ソフトウェアベンダ独立ソフトウェアベンダISVにより運営されてもよい。オーソライゼーションサーバ122が、ネットワークに結合し、CLSをイネーブルし、SE中のCLS110とSLM112をアクティブ化又は非アクティブ化する。一実施形態では、ソフトウェアアプリケーションの取得及びライセンシングの前に、SLMサービス112はアクティブ化されなければならない。アクティブ化は、オーソライゼーションサーバ122を用いた実現できる。一実施形態では、SEは、オーソライゼーションサーバの暗号鍵のうち公開部分にアクセスできる。この部分は、コンピューティングプラットフォームの製造時に、そのチップセット106に書き込まれたfusedものであっても良い。SEは、オーソライゼーションサーバの公開鍵を用いて、オーソライゼーションサーバとのセキュア通信チャネルを生成できる。アクティブ化フローは、SLMサービスについて必要な修正をしたCLSアクティブ化プロセスに従う。アクティブ化プロセスは、ライセンスサーバの公開鍵をSEに記憶し、SLMサービスとライセンスサーバがその間にセキュアな通信チャネルを生成できるようにする。図2は、本発明の一実施形態によるSLMサービスをアクティブ化するプロセス200を示す図である。ブロック202において、ユーザはライセンスサーバ120に接続し、ホストアプリケーションをダウンロードして実行し、所望の制限付きソフトウェアのライセンスをユーザのコンピューティングプラットフォーム102にインストールする。この接続は、周知のように、ウェブブラウザを用いて行える。制限付きソフトウェアは、コンピューティングプラットフォーム上でユーザにより使用される任意のプログラムであが、そのソフトウェアへのアクセスはライセンスメカニズムにより制限されている。ブロック204において、ホストアプリケーションはCLSアクティブ化プロセスを実行し、新しいオーソライゼーションAuthorizationをインストールし、SLMサービス112をアクティブ化する。一実施形態では、この処理はコンピューティングプラットフォームに対して一度だけ実行できる。他の実施形態では、この処理は制限付きソフトウェアをインストールする前に実行できる。図3は、本発明の一実施形態によるケーパビリティライセンスサービスCLSをアクティブ化するプロセス300を示す図である。ブロック302において、ライセンスサーバ120は、ホストアプリケーション116とSEI114を介して、SE108内のCLS110に、ライセンスサーバの公開鍵を有するパーミット生成オブジェクトcreatepermitobjectを送信する。ブロック304において、CLSは許可生成オブジェクトを用いてパーミットpermitを生成し、そのパーミットをホストアプリケーションを介してライセンスサーバに送信する。ブロック306において、ライセンスサーバはそのパーミットにオーソライゼーションプロダクト鍵を付加し、ライセンスとパーミットの組合せをオーソライゼーションサーバ122に送信する。ブロック308において、オーソライゼーションサーバは、オーソライゼーションプロダクト鍵を確認し、成功裏に確認されれば、ルートパーミットサーバ鍵の秘密部分を用いて、そのパーミットに署名する。RPSKの公開部分は、コンピューティングプラットフォーム102の製造時に、SE108に格納されている。次に、ブロック310において、オーソライゼーションサーバは、ライセンスサーバとホストアプリケーションを介してCLSに、署名されたパーミットを送信する。署名されたパーミットを受信した時、ブロック312において、CLSは、RPSKの公開部分を用いて、署名されたパーミットを確認し、成功裏に確認されれば、パーミットデータを保存し、SLMサービスをアクティブ化する。最後に、ブロック314において、CLSは、ホストアプリケーションとライセンスサーバを介してオーソライゼーションサーバに、アクティブ化確認activationconfirmationを送信する。一実施形態では、オーソライゼーションサーバは、SEの製造者により所有及び/又は運営されてもよい。ライセンスサーバは、SLMサービスのサービスプロバイダ例えば、ハードウェアメカニズムによりソフトウェアの使用を保護したいISVにより所有及び/又は運営されてもよい。一実施形態では、SEは、最初にコンピューティングプラットフォームが出荷される時に、オーソライゼーションサーバのみを信頼する。その後、オーソライゼーションサーバを用いて、SLMサービスの管理のため、ライセンスサーバに、信頼関係を委託delegateする。このように、コンピューティングプラットフォームの購入後、ユーザによりSLMサービスが付加される。これにより、ユーザが、同様のサービスを提供する複数のプロバイダからSLMサービスプロバイダを選択するフレキシビリティを提供できる。また、これにより、SE製造者と取引関係にあるサービスプロバイダのみに信頼関係を委託するセキュアな方法を提供できる。図2に戻り、CLSアクティブ化プロセスが不成功であれば、エラー状態が報告され、アクティブ化処理は終了する。SLMサービスのアクティブ化が成功すれば、ブロック206において、ライセンスサーバ120は自機の時間をSLMサービスと同期させ、ライセンスのダウンロードの際、リース時間を適切に設定できるようにする。ホストアプリケーション116は、時間を同期した後、ブロック208においてパスワードを入力するようにユーザにプロンプトする。ブロック210において、ホストアプリケーションは、周知のコンピューティングプラットフォーム入力技術によりユーザパスワードを受け取り、製造プロセス中にSE内のセキュアストレージに記憶されたSLMサービス112の公開鍵でそのユーザパスワードを暗号化し、オーソライゼーションサーバ122にその暗号化したパスワードを送信する。ブロック212において、オーソライゼーションサーバは、その秘密鍵で、暗号化されたパスワードに署名し、その結果得られたメッセージ暗号化され署名されたユーザパスワードをSLMサービス112に送信する。ブロック214において、SLMサービスは、製造時にSEに格納されたオーソライゼーションサーバの公開鍵を用いてそのメッセージを確認し、暗号化されたパスワードをSLMサービスの秘密鍵を用いて復号し、確認が成功すると、ユーザパスワードをセキュアストレージ109に記憶する。SLMサービスの非アクティブ化は、CLS非アクティブ化プロセスを実行し、アクティブ化オーソライゼーションactivationAuthorizationをヌルオーソライゼーションnullAuthorizationで置き換えることにより、実現できる。図4と図5は、本発明の一実施形態による、ライセンスを取得し、制約されたソフトウェアを許可authorizeするプロセス400と500を示す図である。ブロック402において、ユーザは、ライセンスサーバ120に、ユーザのコンピューティングプラットフォーム102における使用のライセンスとともに、制限付きソフトウェアをダウンロードするように要求する。一実施形態では、この要求はホストアプリケーションを介して為される。ブロック404において、ライセンスサーバは、ライセンス暗号鍵LEKを生成し、LEKを用いて、要求された制限付きソフトウェアを暗号化する。一実施形態では、LEKは対称鍵である。ブロック406において、ライセンスサーバはLEKを用いてライセンスを生成する。一実施形態では、ライセンスは、要求された制限付きソフトウェアの一意的識別子、ユーザに関する情報、ソフトウェアを用いるリース期間、及びLEKを含む。ライセンスサーバはSLMサービスの公開鍵を用いてライセンスを暗号化する。一実施形態では、ホストアプリケーションはSLMサービスの公開鍵をユーザ要求の一部としてライセンスサーバに送信する。ライセンスサーバはライセンスサーバの秘密鍵を用いてライセンスに署名する。ブロック408において、ライセンスサーバは、暗号化された制限付きソフトウェアと署名されたライセンスとを、ユーザのコンピューティングプラットフォーム上のホストアプリケーションに送信する。一実施形態では、ホストアプリケーションは、暗号化された制限付きソフトウェアと署名されたライセンスとを、コンピューティングプラットフォーム上のメモリに記憶する。他の一実施形態では、暗号化された制限付きソフトウェア及び/又はライセンスは、セキュアストレージ109に記憶される。ブロック410において、ユーザがソフトウェアの使用を要求する。ブロック412において、ホストアプリケーションはユーザにそのユーザのパスワードを入力するようにプロンプトする。ブロック414において、ユーザはパスワードを入力する。処理は図5のブロック502に続く。ブロック502において、ホストアプリケーションは、ユーザパスワードから対称鍵を求める。一実施形態では、このプロセスは、PasswordBasedCryptographySpecificationVersion20September2000BKaliskiRSALaboratoriesRequestforComments2898により実施できる。他の実施形態では、他の鍵生成メカニズムを用いても良い。ブロック504において、ホストアプリケーションは、対称鍵で署名されたメッセージで、暗号化されたライセンスを、SEI114によりSLMサービス112に送信する。ブロック506において、SLMサービスは、ブロック214で記憶されたユーザパスワードから、対称鍵を求める。SLMサービスはメッセージのデジタル署名を確認する。SLMサービスは、メッセージの署名が正しいことが確認されると、さらに、ライセンスサーバの公開鍵を用いて、暗号化されたライセンスのライセンスサーバの署名を確認する。ライセンス署名が確認されると、SLMサービスは、SLMサービスの秘密鍵を用いて、暗号化されたライセンスを復号し、リース期限が過ぎていないことを確認する。リース期限が経過していなければ、ブロック508において、SLMサービスは、ライセンスからLEKを取り出し、そのLEKをホストアプリケーションに送信する。ブロック510において、ホストアプリケーションは、LEKを用いて、暗号化された制限付きソフトウェアを復号し、コンピューティングプラットフォーム上のソフトウェアへのアクセスを許可する。一実施形態では、LEKは一意的であり、あるリース期間のみに対して生成され、ワンタイムで使用されるだけであってもよい。LEKは、一旦使用されると、ハッカーが鍵にアクセスできたとしても、有用ではなくなる。一実施形態では、SLMサービスは、LEKを用いて、暗号化されたソフトウェアを復号し、復号の結果得られたソフトウェアをホストアプリケーションに提供する。一実施形態では、LEKは一時的にメモリに記憶されるが、ハードディスクドライブには記憶されない。さらなる保護のため、一実施形態では、ホストアプリケーションは既知の方法により改ざん耐久性があるようにできる。一実施形態では、コンピューティングプラットフォームに複数のオーソライゼーションがインストールされ、ユーザは複数のソフトウェアベンダから得られる制限付きソフトウェアプロダクトを同時にサブスクライブsubscribeできる。一実施形態では、コンピューティングプラットフォームをさらに保護するため、コンピューティングプラットフォームの既知の窃盗対策技術を含んでいてもよい。一実施形態では、窃盗状態がトリガーされると、SLMサービスはライセンス暗号鍵LEKをホストアプリケーションに送信せずに、盗まれたコンピューティングプラットフォームでソフトウェアが使われることを防止する。他の一実施形態では、窃盗状態がトリガーされると、SLMサービスは、暗号化されたソフトウェアを復号しない。一実施形態では、ホストアプリケーションは、上記の通りインストレーション機能を有する。他の一実施形態では、ホストアプリケーションは、制限付きソフトウェアだけでなくインストレーション機能を含む。一実施形態では、インストレーションはコンピューティングプラットフォームに対して一度だけ実行できる。他の一実施形態では、インストレーションは制限付きソフトウェアのインストールを試みる前に実行できる。図6は、本発明の一実施形態によるコンピューティングプラットフォーム環境を示す図である。様々な実施形態では、システム600の一又は複数のコンポーネントは、本発明の実施形態を参照してここに説明する一又は複数の動作を実行できる様々な電子デバイスに設けることができる。例えば、システム600の一又は複数のコンポーネントを用いて、ここに説明する動作に従って例えば、命令を処理し、あるいはサブルーチンを実行するなどして、図1-5を参照して説明した動作を実行する。また、例えば、図6を参照してここに説明する様々な記憶デバイスは、データ、動作結果などの記憶に用いることができる。一実施形態では、ネットワーク603を介して、又はローカルメモリデバイスから受け取ったデータは、プロセッサ602に備えられたキャッシュに記憶されてもよい。これらのプロセッサは、本発明の様々な実施形態によりここで説明する動作を用いる。図6のコンピューティングシステムは、モバイルコンピューティング装置、ハンドヘルドコンピューティング装置、又は据え置き型コンピューティング装置に組み込まれていてもよい。より具体的には、コンピューティングシステム600は、相互接続ネットワークすなわちバス604を介して通信する一又は複数の中央処理ユニットCPU602又はプロセッサを含む。したがって、ここに説明する様々な動作は、ある実施形態では、プロセッサにより実行される。さらに、プロセッサ602は、汎用プロセッサ、コンピュータネットワーク603を介して通信されるデータを処理するネットワークプロセッサ、RISCreducedinstructionsetcomputer又はCISCcomplexinstructionsetcomputerを含むその他のタイプのプロセッサを含む。さらに、プロセッサ602はシングルコアデザインでもマルチコアデザインでもよい。マルチコアデザインのプロセッサ602は、同じ集積回路ICダイ上に異なるタイプのプロセッサコアを集積したものであってもよい。また、マルチコアデザインのプロセッサ602は、対称又は非対称のマルチプロセッサとして実装されてもよい。さらに、図1-5を参照して説明した動作は、システム600の一又は複数のコンポーネントにより実行できる。一実施形態では、プロセッサ1602-1などのプロセッサは、ハードワイヤードロジック例えば、回路又はマイクロコードとして、セキュアライセンス管理サービス及び/又はケーパビリティライセンシングサービスを有する。一実施形態では、これらのコンポーネントは、セキュリティエンジンに記憶されたファームウェアとして実装できる。チップセット606も相互接続604で通信できる。チップセット606は、グラフィックスメモリコントロールハブGMCH608を含む。GMCH608は、メモリ612と通信するメモリコントローラ610を含む。メモリ612は、コンピューティングシステム600に含まれるプロセッサ602その他のデバイスにより実行される命令シーケンスを含むデータを記憶する。さらに、メモリ612は、実行のためにプロセッサ602にロードされる前のホストアプリケーション116、暗号化されたライセンス、暗号化された制限付きソフトウェアプログラム、実行ファイルに対応する命令、マッピングなどのここで説明する一又は複数のプログラム又はアルゴリズムを記憶できる。命令を含むこのデータの少なくとも一部は、ディスクドライブ628に、及び/又はプロセッサ602中の一又は複数のキャッシュに記憶できる。本発明の一実施形態では、メモリ612は、ランダムアクセスメモリRAM、ダイナミックRAMDRAM、シンクロナスDRAMSDRAM、スタティックRAMSRAM、又はその他のタイプの記憶デバイスなどの一又は複数の揮発性ストレージすなわちメモリを含む。ハードディスクなどの不揮発性メモリも利用できる。複数のプロセッサ及び/又は複数のシステムメモリなど別のデバイスも、相互接続ネットワーク604を介して通信できる。GMCH608は、ディスプレイ616と通信するグラフィックスインタフェース614も含む。本発明の一実施形態では、グラフィックスインタフェース614は、AGPacceleratedgraphicsportを介してディスプレイ616と通信できる。本発明の一実施形態では、ディスプレイ616はフラットパネルディスプレイ又はタッチスクリーンディスプレイである。これらは、例えば信号変換器によりグラフィックスインタフェース614と通信する。信号変換器は、ビデオメモリやシステムメモリなどの記憶デバイスに記憶された画像のデジタル表現をディスプレイ信号に変換する。ディスプレイ信号はディスプレイ616により解釈され表示される。インタフェース614により生成されたディスプレイ信号は、ディスプレイ616により解釈され、ディスプレイ616上に表示される前に、様々な制御デバイスを通して送られる。ハブインタフェース618により、GMCH608と入出力I/OコントロールハブICH620が通信できる。ICH620は、コンピューティングシステム600と通信するI/Oデバイスにインタフェースを提供する。ICH620は、ペリフェラルコンポーネント相互接続PCIブリッジ、ユニバーサルシリアルバスUSBコントローラ、又はその他のタイプのペリフェラルブリッジやコントローラなどのペリフェラルブリッジ又はコントローラ624を通してバス622と通信できる。ブリッジ624は、プロセッサ602とペリフェラルデバイスとの間にデータパスを提供する。他のタイプのトポロジーも利用できる。また、複数のバスが、例えば複数のブリッジ又はコントローラにより、ICH620と通信できる。さらに、ICH620と通信する他のペリフェラルには、本発明の様々な実施形態において、IDEintegrateddriveelectronics又はSCSIsmallcomputersysteminterfaceハードディスクドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピィ登録商標ディスクドライブ、デジタル出力サポートDVIdigitalvideointerfaceなど、その他のデバイスが含まれる。一実施形態では、ICHはセキュリティエンジン108を有する。一実施形態では、セキュリティエンジンはICH内のファームウェアとして実装できる。バス622は、オーディオデバイス626、一又は複数のディスクドライブ628、及びネットワークインタフェースデバイス630と通信できる。これらは例えば、インターネット等のコンピュータネットワーク603と通信できる。一実施形態では、デバイス630は、有線又は無線通信機能を有するネットワークインタフェースコントローラNICである。他のデバイスはバス622を介して通信できる。また、本発明の実施形態では、様々なコンポーネントがGMCH608と通信できる。また、プロセッサ602、GMCH608、及び/又はグラフィックスインタフェース514を結合して単一チップとしてもよい。一実施形態では、セキュリティエンジン108は、プロセッサ602による動作とは独立に、ICH620を介してバス622及びネットワークインタフェースデバイス630を通じて、ネットワーク603と通信する。さらに、コンピューティングシステム600は揮発性及び/又は不揮発性のメモリ又はストレージを含む。例えば、不揮発性メモリは、次のうち一又は複数を含む:リードオンリメモリROM、プログラマブルROMPROM、イレーザブルPROMEPROM、電気的EPROMEEPROM、ディスクドライブ、フロッピィ登録商標ディスク、コンパクトディスクROMCD-ROM、デジタルバーサタイルディスクDVD、フラッシュメモリ、光磁気ディスク、又は命令などを含む電子的データを記憶することができる他のタイプの不揮発性機械読み取り可能媒体を含む。他の一実施形態では、システム600のコンポーネントはポイントツーポイントPtP構成で構成できる。例えば、プロセッサ、メモリ、及び/又は入出力デバイスは、複数のポイントツーポイントインタフェースにより相互接続される。一実施形態では、チップセット606は、メモリコントローラハブMCHとセキュリティエンジンとを有する。本発明の様々な実施形態では、例えば、図1-5を参照してここで説明した動作は、ハードウェア例えば、論理回路、ソフトウェア例えば、図6を参照して説明したプロセッサなどのプロセッサの動作を制御するマイクロコードを含む、ファームウェア、又はこれらの組合せとして実装できる。これらは、コンピュータ例えば、コンピューティング装置のプロセッサその他のロジックのプログラムに用いられ、ここに説明する動作を実行させる命令又はソフトウェアプロシージャを記憶した有体の機械読み取り可能又はコンピュータ読み取り可能媒体を含むコンピュータプログラム製品として提供できる。機械読み取り可能媒体は、ここに説明したような記憶デバイスを含み得る。本明細書において一実施形態とは、その実施形態に関して説明する機能、構造、特徴が少なくとも1つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で一実施形態とはと記載するが、同じ実施形態を指すものであってもなくてもよい。また、以下の説明及び請求項において、coupledとconnectedとの用語及びその変化形を用いることがある。本発明のある実施形態では、接続されたconnectedという用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。結合されたという用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、結合されたという用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。また、かかるコンピュータ読み取り可能媒体は、コンピュータプログラム製品としてダウンロード可能であってもよい。この場合、プログラムは、通信リンク例えば、バス、モデム、又はネットワーク接続を介して、リモートコンピュータ例えば、サーバから要求コンピュータ例えば、クライアントに、データ信号により転送できる。よって、本発明の実施形態を構造的特徴及び/又は方法動作の具体的な言葉で説明したが、言うまでもなく、本発明は説明した具体的な特徴や動作に限定されない。むしろ、具体的な特徴や動作は、請求した主題を実施する形式例として開示したものである。