(57)【要約】【課題】セキュリティで保護されたライセンス管理のためのシステム、方法、およびコンピュータプログラム製品を提供すること。【解決手段】ホストコンピュータは信頼できる状態で稼動する。ライセンスマネージャは、ホストコンピュータにインストールされる。ライセンスマネージャは、１つまたは複数のソフトウェアプログラムにアクセスできるように構成されている。１つまたは複数のソフトウェアプログラムは、ライセンスマネージャを介してのみアクセス可能である。ライセンスマネージャは、ホストコンピュータの信頼できる状態に拘束され、したがって、信頼できる状態が存在しなくなると、ライセンスマネージャは実行できなくなり、１つまたは複数のソフトウェアプログラムへのアクセスができなくなる。ホストコンピュータは、ＴＣＰＡ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｌｌｉａｎｃｅ）対応コンピュータとすることができる。【選択図】図１
2006179007.tif 000002
【特許請求の範囲】
【請求項１】
信頼できる状態で稼動するホストコンピュータと、
前記ホストコンピュータにインストールされているライセンスマネージャであって、該ライセンスマネージャを介してのみアクセス可能な１つまたは複数のソフトウェアプログラムにアクセスできるように構成され、前記ホストコンピュータの前記信頼できる状態に拘束されている結果、前記信頼できる状態が存在しなくなると、実行することができなくなって前記１つまたは複数のソフトウェアプログラムへのアクセスができなくなるライセンスマネージャと
を備えたことを特徴とするシステム。
【請求項２】
前記ホストコンピュータは、ＴＣＰＡ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｌｌｉａｎｃｅ）対応コンピュータであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記信頼できる状態は、セキュリティで保護されたブートプロセスを使用して前記ホストコンピュータをブートさせることによって確立されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記ホストコンピュータはハードウェア構成要素およびソフトウェア構成要素を含み、前記ソフトウェア構成要素はオペレーティングシステムを含み、前記ハードウェア構成要素はＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ）を含み、前記ＣＲＴＭは信頼できる構成要素であり、
前記セキュリティで保護されたブートプロセスは、システム制御を前記オペレーティングシステムに引き渡し、次いで前記ソフトウェア構成要素の保全性の確認が行われる前に、前記信頼できる構成要素を使用して前記ハードウェア構成要素の信頼性を確認するプロセスを含む
ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記ハードウェア構成要素は、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）をさらに含み、
前記ハードウェア構成要素およびソフトウェア構成要素の信頼性は、前記ＴＰＭに格納されているシステム構成データを使用して確認される
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記ライセンスマネージャは動的データセクションおよび静的コードセクションに分割され、前記動的データセクションは前記ライセンスマネージャの実行中に変化するデータを含み、前記静的コードセクションは前記ライセンスマネージャの実行中に変化しないデータを含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記静的コードセクションは、前記ソフトウェアプログラムのコードを格納する第１のサブセクション、および前記ライセンスマネージャの構成データを格納する第２のサブセクションの２つのサブセクションに分割されることを特徴とする請求項６に記載のシステム。
【請求項８】
前記動的データセクションは暗号キーであるデータキーによって保護され、前記静的コードセクションは異なる暗号キーであるコードキーによって保護されることを特徴とする請求項６に記載のシステム。
【請求項９】
前記データキーおよび前記コードキーは異なる暗号キーである外部キーによって保護されることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記外部キーは前記ホストコンピュータの前記信頼できる状態に拘束されることを特徴とする請求項９に記載のシステム。
【請求項１１】
情報伝達媒体に有形に組み込まれるコンピュータプログラム製品であって、
ホストコンピュータが信頼できる状態で稼動していることを確認するステップと、
ホストコンピュータから第１の暗号キーを受信するステップであって、前記第１の暗号キーは前記ホストコンピュータの信頼できる状態に拘束されるステップと、
前記第１の暗号キーを使用してライセンスマネージャを暗号化するステップと、
前記暗号化されたライセンスマネージャを前記ホストコンピュータに転送するステップと
を備えた処理をデータ処理装置に実行させるよう動作可能であることを特徴とするコンピュータプログラム製品。
【請求項１２】
前記ホストコンピュータが信頼できる状態で稼動していることを確認するステップは、前記ホストコンピュータにおいてリモート認証プロセスを実行するステップを含むことを特徴とする請求項１１に記載のコンピュータプログラム製品。
【請求項１３】
前記ホストコンピュータにおいてリモート認証プロセスを実行するステップは、
前記ホストコンピュータからシステム構成データを受信するステップと、
前記受信されたシステム構成データを１組の既知のシステム構成と比較するステップと
を含むことを特徴とする請求項１２に記載のコンピュータプログラム製品。
【請求項１４】
前記ライセンスマネージャは動的データセクションおよび静的コードセクションに分割され、前記動的データセクションは前記ライセンスマネージャの実行中に変化するデータを含み、前記静的コードセクションは前記ライセンスマネージャの実行中に変化しないデータを含むことを特徴とする請求項１２に記載のコンピュータプログラム製品。
【請求項１５】
前記第１の暗号キーを使用して前記ライセンスマネージャを暗号化するステップは、第２の暗号キーを使用して前記動的データセクションを暗号化するステップと、第３の暗号キーを使用して前記静的コードセクションを暗号化するステップと、前記第１の暗号キーを使用して前記第１および第２の暗号キーを暗号化するステップとを含むことを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
ライセンスマネージャをホストコンピュータに転送する方法であって、
ホストコンピュータが信頼できる状態で稼動していることを確認するステップと、
ホストコンピュータから前記ホストコンピュータの信頼できる状態に拘束される暗号キーを受信するステップと、
前記暗号キーを使用してライセンスマネージャを暗号化するステップと、
前記暗号化されたライセンスマネージャを前記ホストコンピュータに転送するステップと
を備えたことを特徴とする方法。
【請求項１７】
前記ホストコンピュータが信頼できる状態で稼動していることを確認するステップは、前記ホストコンピュータにおいてリモート認証プロセスを実行するステップを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記ホストコンピュータにおいてリモート認証プロセスを実行するステップは、
前記ホストコンピュータからシステム構成データを受信するステップと、
前記受信されたシステム構成データを１組の既知のシステム構成と比較するステップと
を含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ライセンスマネージャは動的データセクションおよび静的コードセクションに分割され、前記動的データセクションは前記ライセンスマネージャの実行中に変化するデータを含み、前記静的コードセクションは前記ライセンスマネージャの実行中に変化しないデータを含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記第１の暗号キーを使用して前記ライセンスマネージャを暗号化するステップは、第２の暗号キーを使用して前記動的データセクションを暗号化するステップと、第３の暗号キーを使用して前記静的コードセクションを暗号化するステップと、前記第１の暗号キーを使用して前記第１および第２の暗号キーを暗号化するステップとを含むことを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、デジタルコンピュータによるデータ処理に関し、より詳細にはライセンス管理に関する。
【背景技術】
【０００２】
ソフトウェアベンダーは、ソフトウェアの不正使用を防ぐために、ライセンスマネージャとも呼ばれるライセンス管理プログラムを使用する。ライセンスマネージャは、ソフトウェアライセンスの条件を守らせ、こうした条件が満たされていないときはソフトウェアにアクセスできないようにするよう設計されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
残念ながら、ライセンスマネージャは、任意のソフトウェアプログラム同様、改ざんを受けやすい。しかし、従来のライセンスマネージャは、それが稼動しているコンピューティング環境の信頼性を決定することができない。
【課題を解決するための手段】
【０００４】
ライセンス管理の技術を実施する方法、システム、およびコンピュータプログラム製品。
【０００５】
一般的な一態様において、こうした技術を実施するシステムは、信頼できる状態（ｔｒｕｓｔｅｄ  ｓｔａｔｅ）で稼動するホストコンピュータ、およびそのホストコンピュータにインストールされているライセンスマネージャを含む。ライセンスマネージャは、１つまたは複数のソフトウェアプログラムにアクセスできるように構成されている。１つまたは複数のソフトウェアプログラムは、ライセンスマネージャを介してのみアクセス可能である。ライセンスマネージャは、ホストコンピュータの信頼できる状態に拘束され（ｂｏｕｎｄ  ｔｏ）、したがって、信頼できる状態が存在しなくなると、ライセンスマネージャは実行できなくなり、１つまたは複数のソフトウェアプログラムへのアクセスができなくなる。
【０００６】
一態様は、以下の特徴のうちの１つまたは複数を含み得る。ホストコンピュータは、ＴＣＰＡ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｌｌｉａｎｃｅ）に対応したコンピュータとすることができる。
【０００７】
信頼できる状態は、セキュリティで保護されたブートプロセスを使用してホストコンピュータをブートすることによって確立することができる。
【０００８】
ホストコンピュータは、ハードウェア構成要素およびソフトウェア構成要素を含む。ソフトウェア構成要素は、オペレーティングシステムを含み得る。ハードウェア構成要素は、ＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ）を含み得る。ＣＲＴＭは、信頼できる構成要素とすることができる。
【０００９】
セキュリティで保護されたブートプロセスは、システム制御をオペレーティングシステムに引き渡し、次いでソフトウェア構成要素の保全性の確認が行われる前に、信頼できる構成要素を使用してハードウェア構成要素の信頼性を確認するステップを伴い得る。
【００１０】
ハードウェア構成要素は、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）をさらに含み得る。ハードウェア構成要素およびソフトウェア構成要素の信頼性は、ＴＰＭに格納されているシステム構成データを使用して確認することができる。
【００１１】
ライセンスマネージャは、動的データセクションおよび静的コードセクションに分割することができ、動的データセクションは、ライセンスマネージャの実行中に変わるデータを含み、静的コードセクションは、ライセンスマネージャの実行中に変わらないデータを含む。
【００１２】
静的コードセクションは、ソフトウェアプログラムのコードを格納する第１のサブセクション、およびライセンスマネージャの構成データを格納する第２のサブセクションの２つのサブセクションに分割することができる。
【００１３】
動的データセクションは、暗号キー（データキー）によって保護することができ、静的コードセクションは、異なる暗号キー（コードキー）によって保護することができる。
【００１４】
データキーおよびコードキーは、異なる暗号キー（外部キー）によって保護することができる。外部キーは、ホストコンピュータの信頼できる状態に拘束することができる。
【００１５】
一般的な別の一態様において、こうした技術を実施するコンピュータプログラム製品は、ホストコンピュータが信頼できる状態で稼動していることを確認し、ホストコンピュータから第１の暗号キーを受信し、第１の暗号キーがホストコンピュータの信頼できる状態に拘束され、第１の暗号キーを使用してライセンスマネージャを暗号化し、暗号化されたライセンスマネージャをホストコンピュータに転送するステップを含む操作をデータ処理装置に実行させるよう動作可能である。
【００１６】
一態様は、以下の特徴のうちの１つまたは複数を含み得る。ホストコンピュータが信頼できる状態で稼動していることを確認するステップは、ホストコンピュータにおいてリモート認証プロセス（remote attestation process）を行うステップを含む。
【００１７】
ホストコンピュータにおいてリモート認証プロセスを行うステップは、ホストコンピュータからシステム構成データを受信し、受信されたシステム構成データを１組の既知のシステム構成と比較するステップを含み得る。
【００１８】
ライセンスマネージャは、動的データセクションおよび静的コードセクションに分割することができ、動的データセクションは、ライセンスマネージャの実行中に変わるデータを含み、静的コードセクションは、ライセンスマネージャの実行中に変わらないデータを含む。
【００１９】
第１の暗号キーを使用してライセンスマネージャを暗号化するステップは、第２の暗号キーを使用して動的データセクションを暗号化するステップと、第３の暗号キーを使用して静的コードセクションを暗号化するステップと、第１の暗号キーを使用して第１および第２の暗号キーを暗号化するステップとを含み得る。
【００２０】
こうした技術は、以下の利点のうちの１つまたは複数を実現するために実施することができる。ライセンスマネージャは、改ざんされる恐れがない。信頼できる状態は、ライセンスマネージャがホストコンピュータにインストールされる前にホストコンピュータにおいて確立される。信頼できる状態が存在する限り、ライセンスマネージャは、ライセンスマネージャが適切に働くのを妨げようと試みるどんな不正プログラム（rogue program）もホスト環境に含まれていないことを確信することができる。一態様は、上記のすべての利点を提供する。
【００２１】
１つまたは複数の態様の詳細は、添付の図面および以下の説明に記載されている。これ以上の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになる。
【００２２】
様々な図面内の同様の参照番号および表示は、同様の要素を示す。
【発明を実施するための最良の形態】
【００２３】
図１に示すように、システム１００は、１つまたは複数のソフトウェアプログラム１２０の使用を管理するライセンスマネージャ１１０を備える。ライセンスマネージャ１１０は、各ソフトウェアプログラム１２０に関連付けられている１つまたは複数のソフトウェアライセンス１３０によって定義されるいくつかの使用条件を守らせる。ソフトウェアプログラム１２０は、ライセンスマネージャ１１０を介してのみアクセス可能である。したがって、ライセンスマネージャ１１０が稼動していない場合、ソフトウェアプログラム１２０にはアクセスすることができない。
【００２４】
ライセンスマネージャ１１０およびソフトウェアプログラム１２０は、ホストコンピュータ１４０にインストールされる。
【００２５】
ホストコンピュータ１４０にライセンスマネージャ１１０をインストールする前に、ホストコンピュータ１４０において信頼できる状態１５０を確立する。
【００２６】
ライセンスマネージャ１１０は、この信頼できる状態１５０に拘束させて（ｂｏｕｎｄ  ｔｏ）、信頼できる状態１５０が存在している間のみ動作できるようにする。信頼できる状態１５０が存在しなくなると、ライセンスマネージャ１１０は動作できなくなり、１つまたは複数のソフトウェアプログラム１２０へのアクセスができなくなる。
【００２７】
信頼できる状態１５０は、セキュリティで保護されたブートプロセスを使用してホストコンピュータ１４０をブートすることによって確立される。一実施形態において、セキュリティで保護されたブートプロセスを行うためには、ホストコンピュータ１４０がＴＣＰＡ対応コンピュータであることが必要である。ＴＣＰＡ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｌｌｉａｎｃｅ）は、様々なコンピュータ会社（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ、Ｉｎｔｅｌ、ＩＢＭ、Ｍｉｃｒｏｓｏｆｔ、Ｓｏｎｙ、Ｓｕｎなど）の主導のもとで、信頼できるコンピューティングの技術を実現する。Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐとしても知られているこうした会社のグループは、このグループによって開発された技術を記述するＴＣＰＡ仕様（http://www.trustedcomputinggroup.orgで入手可能）を発行している。
【００２８】
図２に示すように、ＴＣＰＡ対応ホストコンピュータ２００は、２つのＴＣＰＡ構成要素、ＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ）２１０およびＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）２２０を備える。
【００２９】
一実施形態において、信頼できるプラットフォームモジュール２２０は、例えばキー生成や、生成されたキーへのアクセスの制御など、いくつかの機能を提供するための、配線接続されたコンピュータチップ（スマートカードなど）である。信頼できるプラットフォームモジュール２２０は、プラットフォーム構成レジスタ（ＰＣＲ）２３０として知られている１組のメモリレジスタを備える。プラットフォーム構成レジスタ２３０は、システム構成データ２４０を格納する。システム構成データ２４０は、ホストコンピュータ１４０の様々なハードウェアおよびソフトウェア構成要素から取り出される測定値（ｍｅｔｒｉｃｓ）とする。後述するように、これらの測定値は、ホストコンピュータ１４０の信頼性を確認するため、セキュリティで保護されたブートプロセス中に使用される。
【００３０】
ＣＲＴＭ２１０は、最初に、つまり信頼できる状態１５０がホストコンピュータ１４０において確立される前に信頼することができるホストコンピュータ１４０の唯一の部分である。一実施形態においては、ＣＲＴＭ２１０は、ホストコンピュータ１４０のＢＩＯＳ（基本入出力システム）である。あるいは、ＣＲＴＭ２１０は、ホストコンピュータのＢＩＯＳの一部分のみを構成する。
【００３１】
ホストコンピュータ２００が起動すると、ＣＲＴＭ２１０は実行を開始する。ＣＲＴＭ２１０は、システム制御をオペレーティングシステムに引き渡す前にハードウェア構成要素の保全性を確認する。次いで、オペレーティングシステムは、ソフトウェア構成要素の保全性を確認する。ハードウェア構成要素およびソフトウェア構成要素の確認は、信頼できるプラットフォームモジュール２２０のプラットフォーム構成レジスタ２３０に格納されているシステム構成データ２４０を使用して行われる。測定値は、システム構成要素がどのように構成されているかを反映したものである。システム構成が改ざんされた場合、そうでなければ変更された場合、測定値はこの変更を反映する。ハードウェア構成要素またはソフトウェア構成要素への任意の変更がＣＲＴＭ２１０またはオペレーティングシステムによって検出されるとブートプロセスは停止する。ブートプロセスが完了すると、ホストコンピュータ１４０において信頼できる状態１５０が確立されているといえる。信頼できる状態１５０が確立されると、ライセンスマネージャ１１０をホストコンピュータ１４０にインストールすることができるのである。
【００３２】
図３に示すように、一実施形態において、ライセンスマネージャ１１０が動的データセクション３１０および静的コードセクション３２０に分割される。任意に選択して、ライセンスマネージャ１１０は、ライセンスマネージャ１１０についてのメタデータを格納する第３の区分、メタデータセクション３３０を備えることができる。例えば、このメタデータには、ライセンスマネージャ１１０によって管理されるソフトウェアプログラム１２０、およびこれらのプログラム１２０の許可されたユーザを識別する情報が含まれる。
【００３３】
動的データセクション３１０は、ライセンスマネージャ１１０がその機能を実行するのに必要なデータを有する。このデータは動的である。ここで動的とは、ライセンスマネージャ１１０の実行中にその値が変わることを意味する。例えば、このデータには、ソフトウェアプログラム１２０が実行された回数を数えるカウンタ値が含まれることもある。
【００３４】
静的コードセクション３２０には、ソフトウェアプログラム１２０が稼動するのに必要とするコードが含まれる。静的コードセクション３２０には、ライセンスマネージャ１１０が必要とする構成データが含まれることもある。例えば、構成データにより、ライセンスマネージャ１１０がどのネットワークポートおよびどのホストアドレス（license.xxx.comなど）を使用するかを示すようにすることができる。静的コードセクション３２０は、２つのサブセクションに分割することができる。一方のサブセクションは、ソフトウェアプログラムコードを格納するためのものであり、もう一方のサブセクションは、ライセンスマネージャ構成データを格納するためのものである。
【００３５】
一実施形態において、ライセンスマネージャ１１０は、１つまたは複数の暗号キーによって保護される。これらのキーは、図４に示すキーコンテナ４００に格納される。キーコンテナ４００は、ライセンスマネージャ１１０の動的データセクション３１０の暗号化に使用されるデータキー４１０、およびライセンスマネージャ１２０の静的コードセクション３２０の符号化に使用されるコードキー４２０を含む。データキー４１０およびコードキー４２０は、異なる暗号キーである。
【００３６】
キーコンテナ４００には、認証機関から取得された証明書４３０も含まれる。この証明書は、静的コードセクション３２０の認証に使用される。動的データセクション３１０に格納されているデータは変化する可能性があるため、動的データセクション３１０は認証されない。
【００３７】
キーコンテナ４００全体は、外部キー４４０と呼ばれる暗号キーによって保護される。外部キー４４０は、信頼できるプラットフォームモジュール２２０によって生成され、信頼できるプラットフォームモジュール２２０内に格納される。ホストコンピュータ１４０が信頼できる状態１５０で稼動していない場合、信頼できるプラットフォームモジュール２２０は、外部キー４４０を解放しない。
【００３８】
一実施形態において、外部キー４４０は非対称キーであり、データキー４１０およびコードキー４２０は対称キーである。あるいは、データキー４１０およびコードキー４２０も非対称キーとすることができる。この明細書において、データキー４１０およびコードキー４２０は、まとめて内部キーと呼ぶ。
【００３９】
図５は、ライセンスマネージャ１１０をホストコンピュータ１４０に転送するプロセス５００を示している。このプロセスは、ホストコンピュータ１４０において信頼できる状態１５０が確立された後にのみ実行される。
【００４０】
一般に、このプロセスは、ホストコンピュータ１４０のユーザがソフトウェアプログラム１２０の製造業者に連絡して、ソフトウェアプログラム１２０のライセンスマネージャ１１０をホストコンピュータ１４０に転送することを要求することによってトリガを引かれる。
【００４１】
この転送を許可する前に、製造業者は、リモート認証プロセス５１０を使用してホストコンピュータ１４０の信頼性を確認する。リモート認証プロセス５１０の一環として、製造業者のコンピュータは、ホストコンピュータ１４０に質問を送信する（ステップ５２０）。
【００４２】
この質問に応答して、ホストコンピュータ１４０は、製造業者のコンピュータに署名済みバージョンのシステム構成データ２４０を送信する。データの署名の目的は、データの確実性を証明することである。応答の一部として、ホストコンピュータ１４０は、製造業者のコンピュータに外部キー４４０も送信する（ステップ５３０）。より具体的には、送信されるものは、外部キー４４０の公開部分のみである。非公開部分は、信頼できるプラットフォームモジュール２２０内に保持される。
【００４３】
署名済み構成データおよび外部キー４４０を受信すると、製造業者は、例えばホストコンピュータシステムのシステム構成と、信頼できるとわかっているコンピュータシステムのシステム構成とを比較することによって、ホストコンピュータ１４０の信頼性を確認する。
【００４４】
ホストコンピュータ１４０の信頼性が確認されると、製造業者のコンピュータは、内部キー（データキー４１０およびコードキー４２０）を生成（ステップ５４０）し、内部キーを使用してライセンスマネージャ１１０を暗号化する（ステップ５５０）。内部キーは、特に、ライセンスマネージャ１１０のインストールごとに生成され、インストールごとに異なる。
【００４５】
次いで製造業者は、内部キー４１０、４２０をキーコンテナ４００に格納し、外部キー４４０を使用してキーコンテナを暗号化する（ステップ５６０）。次いで製造業者は、暗号化されたキーコンテナ４００および暗号化されたライセンスマネージャ１１０をホストコンピュータ１４０に送信する（ステップ５７０）。
【００４６】
ホストコンピュータ１４０は、外部キー４４０の非公開部分を使用してキーコンテナ４００のロックを解除し、内部キーをキーコンテナ４００内から取り出す。次いでホストコンピュータ１４０は、内部キーを使用してライセンスマネージャ１１０のロックを解除し、ライセンスマネージャをインストールする（ステップ５８０）。
【００４７】
上述したように、外部キー４４０は、信頼できる状態１５０に拘束される。したがって、ホストコンピュータ１４０がもはや信頼できる状態１５０で稼動していない場合、ホストコンピュータ１４０は、キーコンテナ４００のロックを解除することができず、ライセンスマネージャ１１０にアクセスすることができない。
【００４８】
本明細書に記載した本発明の様々な実施形態および機能的操作のすべては、本明細書に開示されている構造的手段およびその構造的な等価物を含め、またはその組み合わせで、デジタル電子回路、コンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができる。本発明は、１つまたは複数のコンピュータプログラム製品、すなわち、例えばプログラム可能プロセッサ、コンピュータ、または複数のコンピュータなどのデータ処理装置によって実行するために、またはその操作を制御するために、情報伝達媒体（information carrier）、例えばマシン読取可能な記憶装置や伝搬信号に有形で組み込まれる１つまたは複数のコンピュータプログラムとして実装することができる。コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、コンパイル言語、インタプリタ言語を含めて、任意の形のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットを含む任意の形で配置することができる。コンピュータプログラムは、必ずしもファイルに対応していなくてもよい。プログラムは、そのプログラム専用の単一のファイルに、または複数の連携ファイル（coordinated files）（１つまたは複数のモジュール、サブプログラム、コードの一部分を格納するファイル）に他のプログラムまたはデータを保持するファイルの一部に格納することができる。コンピュータプログラムは、１つのコンピュータで、または１つのサイトの複数のコンピュータ、または複数のサイトにわたって分散され、通信ネットワークで相互接続された複数のコンピュータで実行するように配置することができる。
【００４９】
本発明の方法のステップを含め、本明細書に記載したプロセスおよび論理フローは、入力データに対して作用し、出力を生成することによって本発明の機能を実行するため、１つまたは複数のプログラムを実行する１つまたは複数のプログラム可能プロセッサによって実行することができる。プロセスおよび論理フローは、ＦＰＧＡ（field programmable gate array）またはＡＳＩＣ（application-specific integrated circuit）など、専用論理回路によって実行することもでき、また本発明の装置は、専用論理回路として実装することができる。
【００５０】
コンピュータプログラムを実行するのに適したプロセッサは、一例として汎用および専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の１つまたは複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサ、および命令およびデータを格納する１つまたは複数のメモリ装置である。一般に、コンピュータは、磁気、光磁気ディスク、または光ディスクなど、データを格納する１つまたは複数の大容量記憶装置も備え、またはそれとの間でデータの送受信を行うように結合されて動作可能である。コンピュータプログラム命令およびデータを組み込むのに適した情報伝達媒体は、一例としてＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置などの半導体メモリ装置、内部ハードディスクや取外式ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含めて、すべての形の不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路によって補うことができ、またはそれに組み込むことができる。
【００５１】
ユーザとの対話を提供するため、本発明は、情報をユーザに表示するＣＲＴ（陰極線管）、ＬＣＤ（液晶表示装置）モニタなどの表示装置、およびユーザがコンピュータに入力を提供することができるマウスやトラックボールなどのキーボードおよびポインティング装置を有するコンピュータ上に実装することができる。他の種類の装置を使用してユーザとの対話を提供することもでき、例えばユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形の感覚フィードバックとすることができ、ユーザからの入力は、可聴音、音声、または触覚入力を含めて任意の形で受信することができる。
【００５２】
本発明は、バックエンド構成要素（データサーバなど）、ミドルウェア構成要素（アプリケーションサーバなど）、またはフロントエンド構成要素（ユーザが本発明の実装と対話することができるグラフィカルユーザインタフェースやＷｅｂブラウザを有するクライアント構成要素など）、あるいはこうしたバックエンド、ミドルウェア、およびフロントエンドの構成要素の任意の組み合わせを含むコンピューティングシステムで実現することができる。システムの構成要素は、任意の形または媒体のデジタルデータ通信、例えば通信ネットワークなどによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）および広域ネットワーク（「ＷＡＮ」）、例えばインターネットなどがある。
【００５３】
コンピューティングシステムは、クライアントおよびサーバを備えることができる。クライアントおよびサーバは、一般に互いに離れており、一般に通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で稼動し、相互にクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【００５４】
特定の実施形態の観点から本発明を説明してきたが、他の実施形態も特許請求の範囲内に含まれる。例えば、操作は、異なる順序で実行することができ、依然として望ましい結果を達成する。いくつかの実施形態において、マルチタスクおよび並列処理が好ましい場合がある。
【図面の簡単な説明】
【００５５】
【図１】セキュリティで保護されたライセンス管理用のシステムを示す図である。
【図２】ＴＣＰＡ対応ホストコンピュータを示す図である。
【図３】ライセンスマネージャを示す図である。
【図４】キーコンテナを示す図である。
【図５】ライセンスマネージャおよびキーコンテナをホストコンピュータに転送するプロセスを示す図である。
【符号の説明】
【００５６】
１１０  ライセンスマネージャ
１２０  ソフトウェアプログラム
１３０  ソフトウェアライセンス
１４０  ホストコンピュータ
１５０  信頼できる状態
２００  ＴＣＰＡ対応ホストコンピュータ
２４０  システム構成データ
３１０  動的データ
３２０  静的コード
３３０  メタデータ（任意）
４００  キーコンテナ
４１０  データキー
４２０  コードキー
４３０  証明書
４４０  外部キー
【図１】
2006179007.tif 000003
【図２】
2006179007.tif 000004
【図３】
2006179007.tif 000005
【図４】
2006179007.tif 000006
【図５】
2006179007.tif 000007