(57)【要約】  ボリュームライセンス環境におけるソフトウエア海賊版を防止する方法、システム及びコンピュータ読取可能な媒体。ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーを受信する。ボリューム・ライセンス・キーは、環境についての少なくとも１つのマシン属性から得られる第一データを有する。ボリューム・ライセンス・ファイルは、環境についての少なくとも１つのマシン属性から得られる第二データを使用してオーセンティケーションされる。そして、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージは、環境についての少なくとも１つのコンピュータ処理装置上、アクティベートされる。
2008536209.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームライセンス環境においてソフトウエア海賊版を防止するコンピュータに実装する方法であって、
ボリューム・ライセンス・ファイル内に埋め込まれ、前記環境についての少なくとも１つのマシン属性から得られる第一データを有するボリューム・ライセンス・キーを受信するステップと、
前記環境についての少なくとも１つのマシン属性から得られる第二データを使用して、ボリューム・ライセンス・ファイルをオーセンティケーションするステップと、
前記環境についての少なくとも１つのコンピュータ処理装置上、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージをアクティベートするステップと
を備えたことを特徴とする方法。
【請求項２】
前記マシン属性がハードウエア識別子であることを特徴とする請求項１に記載の方法。
【請求項３】
前記オーセンティケーションするステップが、予め定められた認容内において前記第一データと一致する前記第二データを決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記環境の少なくとも１つのマシン属性を収集し、及び前記マシン属性をハッシュして前記第一データを構成するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記マシン属性が収集されたときを示すタイムスタンプを収集するステップをさらに備えたことを特徴とする請求項４に記載の方法。
【請求項６】
前記第一データが、前記コンピュータ処理環境の複数のマシン属性から得られることを特徴とする請求項１に記載の方法。
【請求項７】
前記ボリューム・ライセンス・キー及びボリューム・ライセンス・ファイルが、前記少なくとも１つのコンピュータ処理装置を含む複数のコンピュータ処理装置上、インストールするソフトウエアパッケージに関連付けられたことを特徴とする請求項１に記載の方法。
【請求項８】
請求項１の方法を実行するコンピュータ実行可能な命令を備えたコンピュータ読取可能な媒体。
【請求項９】
コンピュータ処理環境においてソフトウエア海賊版を防止するシステムであって、
前記コンピュータ処理環境のマシン属性から得られる第一データを有するボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージと、
前記コンピュータ処理環境のマシン属性から第二データを取得し、及び前記第二データと前記第一データとを比較するオーセンティケーションルーチンと、
前記ボリューム・ライセンス・キーにより前記ソフトウエアパッケージをアクティベートし、及び前記ボリューム・ライセンス・ファイルをオーセンティケーションするのに応答するアクティベーションルーチンと
を備えたことを特徴とするシステム。
【請求項１０】
前記オーセンティケーションルーチンが、予め定められた認容内において前記第一データと前記第二データが一致することを決定することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記第一データが、前記マシン属性から得られたハッシュされた値を有することを特徴とする請求項９に記載のシステム。
【請求項１２】
前記第一データが、前記第一データが得られたときに対応するタイムスタンプを有することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記第一及び第二データが、複数のマシン属性から得られることを特徴とする請求項９に記載のシステム。
【請求項１４】
ボリュームライセンス環境においてソフトウエア海賊版を防止する方法を実行するコンピュータ実行可能な命令を有するコンピュータ読取可能な媒体であって、
ボリューム・ライセンス・ファイル内に埋め込まれ、前記環境についての少なくとも１つのマシン属性から得られる第一データを有するボリューム・ライセンス・キーを受信するステップと、
前記環境についての少なくとも１つのマシン属性から得られる第二データを使用して、ボリューム・ライセンス・ファイルをオーセンティケーションするステップと、
前記環境についての少なくとも１つのコンピュータ処理装置上、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージをアクティベートするステップと
を備えたことを特徴とするコンピュータ読取可能な媒体。
【請求項１５】
前記マシン属性がハードウエア識別子であることを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１６】
前記オーセンティケーションするステップが、予め定められた認容内において前記第一データと一致する前記第二データを決定するステップを含むことを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１７】
前記方法が、前記環境の少なくとも１つのマシン属性を収集し、及び前記マシン属性をハッシュして前記第一データを構成するステップをさらに備えたことを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１８】
前記方法が、前記マシン属性が収集されたときを示すタイムスタンプを収集するステップをさらに備えたことを特徴とする請求項１７に記載のコンピュータ読取可能な媒体。
【請求項１９】
前記第一データが、前記コンピュータ処理環境の複数のマシン属性から得られることを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【請求項２０】
前記ボリューム・ライセンス・キー及びボリューム・ライセンス・ファイルが、前記少なくとも１つのコンピュータ処理装置を含む複数のコンピュータ処理装置上、インストールするソフトウエアパッケージに関連付けられたことを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、ソフトウエア海賊版の阻止の分野に関し、より詳細には、ボリューム・ライセンス・キー（ＶＬＫ；ｖｏｌｕｍｅ  ｌｉｃｅｎｓｅ  ｋｅｙ）を使用するソフトウエアのボリュームライセンスの分野に関する。
【背景技術】
【０００２】
ソフトウエア海賊版は、毎年、ソフトウエアベンダに巨額のコストをかける世界的な問題である。海賊版の１つの形は、不慮のコピーとして知られ、エンドユーザのライセンス合意の違反について、複数のコンピュータ上、ソフトウエアを共有かつインストールすることである。プロダクトアクティベーションは、前述の種類の海賊版を削減する１つの方法である。
【０００３】
プロダクトアクティベーションは、一般的に、ソフトウエアベンダに対する、インストール識別コード及び／又はハードウエア識別子の提出にたよる。ソフトウエアベンダは、応答として、アクティベーション承認コードを返信する。プロダクトアクティベーションについて通常小売りのアプリケーションにおいて、一意的なプロダクトキーが箱詰めのソフトウエアパッケージの各々に与えられる。通常、いくらかの猶予期間（ソフトウエアのインストール後の、どのソフトウエアがアクティベートされることなく実行されるかの間の時間）の後、顧客は、ソフトウエアベンダに接触して、ソフトウエアのコピーをアクティベートする。前述のことを行うことの失敗は、ソフトウエアのディアクティベーション又はソフトウエアのデグレードされた機能に帰することが多い。通常、一意的なプロダクトキーを使用して、一意的なプロダクト識別コードを生成する。プロダクト識別コードは、ハッシュされたハードウエア関連の値と結合され、ソフトウエアが実行されるマシンを特定するインストール識別コードを生成する。ソフトウエアに実行を可能にさせるアクティベーション確定は、通常、顧客に返信される。前述に関して、さらにアクティベーション確定は、ライセンスファイル、又はライセンスを表すバイナリとすることができる。各々のログインにおいて、ライセンスされたソフトウエアは、ソフトウエアがアクティベートされた、本質的に同一なハードウエア上、ソフトウエアが実行されていることを確認する。確認が失敗すると、ソフトウエアが再び実行される前に、リアクティベーションが必要である。
【０００４】
企業の顧客は、一般的に、ボリュームライセンスを購入する。なぜならば、企業のドメインの中の数百又は数千のマシンを有しているであろう、企業の顧客に対して、マシン固有アクティベーションコードを受信するのにインストールされるソフトウエアコピーの各々に対して、ソフトウエアベンダと接触するのは、実行可能ではないからである。従って、通常、ボリュームライセンスの所有者は、ソフトウエアベンダと接触してソフトウエアをアクティベートする必要はない。なぜならば、ソフトウエアは、ボリューム・ライセンス・キーが防止されると、アクティベーション要件を迂回するからである。従って、同一のボリューム・ライセンス・キーを使用して、多くの異なるコンピュータに使用することができ、猶予期間が満了する前後において、ソフトウエアを実行させるために、アクティベーションを必要とするものがない。前述の特徴は、企業の顧客がインストールするのに対して、ボリューム・ライセンス・キーを、より便利にさせたけれども、さらに、海賊版に対して、魅力のある標的である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、ボリューム・ライセンス・キーを侵害することを、より困難にする機構が必要である。本発明は、前述の必要性を満足する。
【課題を解決するための手段】
【０００６】
本発明は、前述の欠点及び短所の観点から、ボリュームライセンス環境におけるソフトウエア海賊版を防止する方法、システム及びコンピュータ読取可能な媒体を与える。方法において、ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーが受信される。ボリューム・ライセンス・キーは、ボリュームライセンス環境の少なくとも１つのマシン属性から得られる第一データを有する。ボリューム・ライセンス・ファイルは、ボリュームライセンス環境の少なくとも１つのマシン属性から得られる第二データを使用して、オーセンティケーションされる。次に、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージは、ボリュームライセンス環境において、少なくとも１つのコンピュータ処理装置上、アクティベートされる。
【０００７】
システムにおいて、ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージを与える。ボリューム・ライセンス・ファイルは、コンピュータ環境のマシン属性から得られた第一データを有する。オーセンティケーションルーチンは、コンピュータ環境のマシン属性から得られる第二データから与えられ、及び第二データと第一データとを比較している。さらにその上、ボリューム・ライセンス・キーによってソフトウエアパッケージをアクティベートするアクティベーションルーチン及びボリューム・ライセンス・ファイルのオーセンティケーションの応答としてさらに与えられる。
【０００８】
前述の結論は、望ましい実施形態の以下の詳細な説明も同様に、添付の図面とともに読まれると、より理解される。本発明を例示する目的のために、図面において、本発明の例の構成が示されるが、しかしながら、本発明を、特定の方法及び開示される有用性を制限しない。
【発明を実施するための最良の形態】
【０００９】
本発明の主要な問題を、特殊性により記述して、法定の要件を満たす。しかしながら、記述自体は、本出願の範囲に制限することを意図しない。むしろ発明者は、主張される主要な問題がさらに別の方法において、実施されることを意図して、他の現在及び未来の技術とともに、本明細書において記述される１つとは異なるステップ又は要素を含む。さらに、用語の「ステップ」を、本明細書において、用いられる方法の異なる側面を暗示するのに用いることができるが、用語は、個々のステップの命令が明示的に記述されるときでない限り及び以外に、本明細書において開示される種々のステップの間又はステップ間のあらゆる特定の命令を含むことを解釈されるべきではない。
【００１０】
（コンピュータ処理環境の例）  
図１は、本発明を実施することができる、適したコンピュータ処理システム環境１００の例を例示する。コンピュータ処理システム環境１００は、適したコンピュータ処理環境の１つの例のみであり、及び本発明の使用又は機能の範囲としてあらゆる制限を提案することを意図しない。両者とも例示的オペレーティング環境１００において例示されるあらゆる１つ又は結合に関連するあらゆる依存性又は必要性を有することを解釈されるコンピュータ処理環境１００とすべきではない。
【００１１】
本発明は、非常に多くの他の目的又は特定の目的のコンピュータ処理システム環境又は構成により使用可能である。よく知られたコンピュータ処理システム、環境、及び／又は構成は、制限はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、前述のシステム又は装置のいずれかを含む分散コンピュータ処理環境などを含む本発明による使用に適していることがある。
【００１２】
本発明を、プログラムモジュールなど、コンピュータにより実行されるコンピュータ実行可能命令の一般的な背景において記述することがある。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能を、種々の実施形態において、望まれるとして結合又は分散することができる。さらに、本発明を、タスクが通信ネットワークを介してリンクされた遠隔処理装置により実行される分散コンピュータ処理環境において、実行することができる。分散コンピュータ処理環境において、プログラムモジュールを、メモリストレージ装置を含む、ローカル及びリモートの両方のコンピュータストレージ媒体において格納することができる。
【００１３】
図１を参照すると、本発明を実装する例のシステムは、コンピュータ１１０の形式において、一般的な目的のコンピュータ処理装置を含む。コンピュータ１１０の構成は、制限はしないが、処理ユニット１２０、システムメモリ１３０及び処理ユニット１２０に対するシステムメモリを含む種々のシステムコンポーネントを連結するシステムバス１２１を含むことができる。システムバス１２１は、メモリバス又はメモリ制御、周辺バス、及びバスアーキテクチャの種類のいずれかを使用するローカルバスを含んでいるバス構造の複数の種類のいずれかであるとすることができる。例として、制限はしないが、前述のようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしてさらに知られているＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００１４】
通常、コンピュータ１１０は、種々のコンピュータ読取可能な媒体を含む。コンピュータ読取可能な媒体は、コンピュータ１１０によりアクセスすることが出来るあらゆる利用可能な媒体とすることができ、揮発性及び非揮発性の媒体の両方、取外し可能な及び固定の媒体を含む。例として、制限しないが、コンピュータ読取可能な媒体は、コンピュータ・ストレージ・メディア、及び通信媒体を含むことが出来る。コンピュータ・ストレージ・メディアは、揮発性及び非揮発性媒体の両方の、コンピュータ読取可能な命令、データ、構造体、プログラムモジュール又は他のデータなど、情報を格納する方法又は技術において実装される取外し可能な及び固定の媒体を含む。コンピュータ・ストレージ・メディアは、制限しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気ストレージ装置、または所望の情報を格納するのに使用でき、コンピュータ１１０によりアクセスできる他のあらゆる媒体を含む。通常、通信媒体は、コンピュータ読取可能な命令、データ構造体、プログラムモジュール又は搬送波若しくは他の伝送機構など変調されたデータにおける他のデータを包含し、及びあらゆる情報伝達媒体を含む。用語の「変調されたデータ信号」は、１つまたは複数の信号特性セット若しくは信号の中の情報をエンコードする方法などにおいて変更された信号を有する。例えば、制限はしないが、通信媒体は、有線ネットワークまたは直接接続ネットワークなどの有線媒体、並びに音波、ＲＦ、赤外線及び他のワイヤレスな媒体を含む。さらに、上述のあらゆる結合を、コンピュータ読取可能な媒体の範囲内において含むべきである。
【００１５】
システムメモリ１３０は、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）１３１、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１３２など、揮発性及び／又は不揮発性のメモリの形式におけるコンピュータ・ストレージ・メディアを含む。起動中など、コンピュータ１１０内の要素間において情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）１３３は、通常、ＲＯＭ１３１において格納される。通常、ＲＡＭ１３２は、プロセッサ処理ユニット１２０により即時的にアクセス可能及び／又は現在処理中のデータ及び／又はプログラムモジュールを含む。例として、制限はしないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６及びプログラムデータ１３７を例示する。
【００１６】
さらに、コンピュータ１１０は、他の取外し可能な／固定の、揮発性／不揮発性のコンピュータ・ストレージ・メディアを含むことができる。例としてのみ、図１は、固定の不揮発性の磁気メディアに対して読取る又は書き込むハード・ディスク・ドライブ１４０、固定の不揮発性の磁気ディスク１５２に対して読取る又は書き込む磁気ディスクドライブ１５１、及びＣＤ−ＲＯＭ又は他の光媒体など、取外し可能の不揮発性の光ディスク１５６に対して読取る又は書き込む光ディスクドライブ１５５を例示する。例示的処理環境において使用することができる他の取外し可能／固定の、揮発性／不揮発性のコンピュータ・ストレージ・メディアは、制限はしないが、磁気テープカセット、フラッシュ・メモリ・カード、ＤＶＤ、デジタル・ビデオ・テープ、固定のＲＡＭなどを含む。通常、ハード・ディスク・ドライブ１４１は、インターフェース１４０などの固定のメモリインターフェースによってシステムバス１２１に接続され、及び通常、磁気ディスクドライブ１５１と光ディスクドライブ１５５は、インターフェース１５０など取外し可能なメモリインターフェースによりシステムバス１２１に接続される。
【００１７】
上述の及び図１において例示されたドライブ及びドライブに関連付けられたコンピュータ・ストレージ・メディアは、コンピュータ読取可能な命令、データ構造体、プログラムモジュール及びコンピュータ１１０に対する他のデータについてのストレージを提供する。図１において、例として、ハード・ディスク・ドライブ１４１を、格納するオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６及びプログラムデータ１４７として例示する。上述のコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６及びプログラムデータ１３７と同一か異なるかのいずれかとすることができることを補足する。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６及びプログラムデータ１４７を、本明細書において、最小限、異なるコピーとして例示するために、異なる数を与える。ユーザは、キーボード１６２、及びマウス、トラックボール、タッチパッドとして一般的に言われるポインティングデバイス１６１などの入力装置によって、コンピュータ１１０へ命令及び情報を入力する。他の入力装置（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、サテライトディシュ、スキャナーなどを含むことができる。上述の及び他の入力装置を、システムバスに連結されたユーザ入力インターフェース１６０によって、プロセッサ処理ユニットに接続することが多いが、パラレルポート、ゲームポート又はＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など、他のインターフェース及びバス構造により接続することができる。さらに、モニタ１９１又は他の種類のディスプレイ装置は、ビデオインターフェース１９０など、インターフェースを介してシステムバス１２１に接続する。モニタに加えて、さらにコンピュータは、出力周辺インターフェース１９０によって接続することが出来るスピーカ１９７及びプリンタ１９６など、他の周辺出力装置を含むことができる。
【００１８】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境において、作動することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ペアデバイス又は他の共通ネットワークノードとすることができ、通常、コンピュータ１１０に関係する、上述の要素の多く又はすべてを含むが、図１において、メモリストレージ装置１８１のみを例示している。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）及びワイド・エリア・ネットワーク（ＷＡＮ）を含むが、さらに他のネットワークを含むことができる。前述のネットワーク処理環境は、オフィス、企業−ワイド・コンピュータ・ネットワーク、イントラネット、インターネットである。
【００１９】
ＬＡＮネットワーク処理環境において使用される場合、コンピュータ１１０は、ネットワークインターフェース又はアダプタ１７０によってＬＡＮ１７１に接続される。ＷＡＮネットワーク処理環境において使用される場合、通常、コンピュータ１１０は、モデム１７２又はインターネットなど、ＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部又は外部とすることができ、ユーザ入力インターフェース１６０又は適切な機構を介して、システムバス１２１に接続することが出来る。ネットワーク化環境において、コンピュータ１１０に関係する、例示されたプログラムモジュール、またはその一部を、リモート・メモリ・ストレージ装置に格納することができる。例として、制限はしないが、図１は、メモリ装置１８１に属するとしてリモート・アプリケーション・プログラム１８５を例示する。例示するネットワーク接続は、例であり、およびコンピュータ間の通信リンクを確立する他の手段を使用することが出来ることを理解するであろう。
【００２０】
（分散コンピュータ処理フレームワーク又はアーキテクチャの例）
種々の分散コンピュータ処理フレームワークは、パーソナルコンピュータ及びインターネットの集合として見ると、発展し続けており、発展中である。個人及び業務のユーザは同様に、シームレスな内部処理可能な及びアプリケーションとコンピュータ処理装置とに対してウェブ可能なインターフェースを提供し、コンピュータ処理アクティビティをウェブブラウザ又はネットワーク指向に増加させる。
【００２１】
例えば、本願特許出願人の  ．ＮＥＴプラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディング・ブロック・サービス及びダウンロード可能なデバイスソフトウエアを含む。一般的に言って、  ．ＮＥＴプラットフォームは、（１）コンピュータ処理装置の全範囲の仕事を一緒にさせること及びユーザ情報を自動的に更新させ、それらすべてを同期させることの能力、（２）ＨＴＭＬよりむしろＸＭＬの使用の増加により可能な、ウェブサイトに対して増加された双方向通信性能、（３）電子メールなどの種々のアプリケーション又はＯｆｆｉｃｅ  ．ＮＥＴなどのソフトウエアについての管理に対して中心的なスタートポイントからユーザへ、カスタマイズされたアクセス機能及び製品とサービスとの送付というオンラインサービス、（４）情報へのアクセスの効率及び容易さ、ユーザと装置との間の情報の同期も同様に、増加させる集中化されたデータストレージ、（５）電子メール、ファクシミリ及び電話など、種々の通信媒体を統合する能力、（６）開発者に対して、再利用可能なモジュールを増加させる能力、これにより生産性を増加させ及びプログラムエラー数を削減する並びに（７）同様に多くの他のクロスプラットフォーム統合機能を与える。
【００２２】
本明細書における例示的実施形態を、コンピュータ処理装置に属するソフトウエアと結合して説明するが、さらに本発明の１つ又は複数の部分を、オペレーティングシステム、ＡＰＩ又はミドルウエアを介して、サービスが、  ．ＮＥＴの言語及びサービスのすべてにより実行され、サポートされ、又はアクセスされるよう、コプロセッサと要求するオブジェクトとの間において、同様に他の分散コンピュータ処理フレームワークにおいて、実装することができる。
【００２３】
（例示的実施形態）
図２Ａは、本発明の一実施形態にかかるソフトウエアの海賊版を防止するハードウエア結合実施割当のシステムのブロック図である。サーバ２０４又はベンダ２０２は、ＷＡＮ、ＬＡＮ（有線又は無線）、イントラネット、インターネット等のネットワークを介して１つ又は複数のクライアント２０６又は２０８に接続することが出来る。図２Ａにおいて、点で描いた線は、本発明の相互の実装を例示し、サーバ２０４は、オプションである。サーバ２０４の役割が初期ライセンスファイル発見のためであり、本発明を実装するのに必要ではないのである。
【００２４】
ソフトウエアベンダは、ボリューム・ライセンス・ホルダに、制限はしないが、ＣＤ−ＲＯＭ、又は直に、上述のようなものなどのネットワークとしてなど複数のメディア上、ボリュームライセンスされたソフトウエア２１２のコピーを与えることが出来る。随伴するソフトウエア２１２は、業務固有の、又はボリューム・ライセンス・ホルダ固有のＶＬＫ２２２とすることが出来る。本発明の一実施形態において、ＶＬＫ２２２は、ライセンスファイル２２４と呼ばれる相対的に大きなファイル内に埋め込むことが出来る。ライセンスファイル２２４は、例えば、ボリューム・ライセンス・ホルダに対する識別子及びホルダにライセンスされた製品に基づいて構成することができ、及びハッシュされたＤＣ（ｄｏｍａｉｎ  ｃｏｎｔｒｏｌｌｅｒ）名、ＡＤ（ａｃｔｉｖｅ  ｄｉｒｅｃｔｏｒｙ）等、環境結合情報を含むことが出来る。
【００２５】
さらにその上、１つの実施形態において、ライセンスファイル２２４は、例えば、１つ又は複数のマシン属性２６０及び／又は２７０に基づいてハードウエア結合情報を含むことが出来る。例えば、ライセンスファイル２２４は、１つ又は複数のクライアント２０６又は２０８から、それぞれ、マシン属性２６０又は２７０を含むことが出来る。マシン属性は、クライアント２０６又は２０８に関連付けられたハードウエア装置を識別するあらゆる種類のデータとすることが出来る。例えば、マシン属性は、プロセッサＩＤ等とすることが出来る。ライセンスファイル２２４において使用されるマシン属性２６０又は２７０を、ハッシュするか又はむしろライセンスファイル２２４へ処理することができる。したがって、ライセンスファイル２２４は、基本的には、顧客のクライアント２０６又は２０８のネットワーク内に含まれるハードウエアに関する顧客のコンピュータ処理環境のイメージを含むことが出来る。
【００２６】
ライセンスファイル２２４において、ハッシュされた値としてか、それ以外としてのいずれか、マシン属性２６０又は２７０の包含は、潜在的なソフトウエア海賊版を、ソフトウエア２１２の正当なコピーについてのコピーする顧客環境から防ぐことが理解される。例えば、顧客が「クライアント１」、「クライアント２」及び「クライアント３」と名づけられた３つのクライアントコンピュータを有する場合、ソフトウエア海賊版は、例えば同一のクライアント名の、第２ネットワークへソフトウエアのコピーを試みることができる。１つ又は複数のクライアントコンピュータからマシン属性を組み入れ、ハードウエア結合情報をライセンスファイル２２４Ａに組み入れることによって、コンピュータ処理環境のイメージが作成され、キーの型として使用することができる。以下に説明するように、クライアント２０６又は２０８がソフトウエア２１２のオーセンティケーションを試みると、コンピュータ処理環境内のクライアントのマシン属性を使用して、コンピュータ処理環境の第２イメージを作成する。そして、前述のイメージは、初期イメージと比較して、ソフトウエア２１２が固有のコンピュータ処理環境においてインストールするかどうかを決定することができる。したがって、実施形態は、ソフトウエア２１２が作動することが出来るコンピュータ処理環境が、ソフトウエア２１２が認証される実際の環境であることを実証する機構を与える。結果として、実施形態がハードウエア固有のデータを使用してソフトウエア２１２を認証するので、海賊版が認証された環境を再作成するのを試みる努力が失敗することができることが理解される。
【００２７】
マシン属性２６０及び／又は２７０を含むことに加えて、ライセンスファイル２２４は、実施形態にしたがって、マシン属性２６０又は２７０が収集されると、タイムスタンプを生成することを含むことができる。さらに、ライセンスファイル２２４は、シグネチャ又は他のこのようなオーセンティケーション機構を含むことができる。マシン属性２６０及び／又は２７０に関連付けられたタイムスタンプの包含は、ソフトウエアを、「再生」攻撃などから防ぐのに役立つ。なぜならば、マシン属性２６０及び／又は２７０により促進されるハードウエア結合が、現在として知られているからである。実施形態にかかるクライアント２０６から収集されることがある例示的クライアントデータのグラフィカル表現は、図２Ｂと結合して例示される。さて、図２Ｂを参照すると、例えば、ライセンスファイル２２４へ合体するクライアント２０６から送信することができるデータ２６６の例を示す。１つの実施形態において、データ２６６は、１つ又は複数のマシン属性２６０、タイムスタンプ２６２及びシグネチャ２６４を含む。シグネチャ２６４は、ライセンスファイル２２４などの完全性を実証するのに用いることができる。
【００２８】
さて、図２Ａに戻ると、１つの実施形態において、ライセンスファイル２２４は、相対的に大きなシステムファイルとすることができることを補足する。選択される特定のファイル型は、制限はしないが、イメージまたはオーディオファイル形式を含むあらゆる型のファイル型とすることができる。ＶＬＫ２２２は、データにおけるあらゆる場所に埋め込むことができ、そして、１つの実施形態においてプライベートキーによりシグネチャが行われることにより、ライセンスファイル２２４を生成することができる。本発明の１つの実施形態において、ライセンスファイル２２４の大きさは、１．４４メガバイト（ＭＢ）より大きく、例えば２ＭＢであり、ライセンスファイル２２４をフロッピーディスクなどへコピーすることを防ぐ。本発明の１つの実施形態において、ライセンスファイル２２４は、ライセンスファイル２２４のみを含み、及び関連するソフトウエア２１２を含んでいるＣＤ−ＲＯＭのボリュームラベルとは異なるボリュームラベルを有するＣＤ−ＲＯＭとして与えることができる。
【００２９】
さて、ライセンスホルダのソフトウエア２１２がクライアント２０６、２０８などの間に分配される上述の環境を参照すると、ログイン時、クライアント２０６、２０８などのアクティベーションコードの常駐が、ライセンスファイル２２４が手を加えられていないことを実証するライセンスファイル２２４の内容を読み出す。本明細書において利用される場合、アクティベーションは、ソフトウエア・ライセンス・データ、ネットワーク環境結合、ハードウエア結合を実証し、及びソフトウエアを、さらなる結合実証なしに時間周期内に機能性を可能にする処理を言う。前述の点については、ソフトウエアインストール処理の間、ＶＬＫ２２２及び／又はライセンスファイル２２４を、例えば、サーバ２０４を介して、クライアント２０８へ、又はクライアント２０６へ転送することができる。
【００３０】
実証処理は、ライセンスにおいて定義される結合又はポリシーに対してローカルマシン上のライセンスをチェックすることを含むことが出来る。例えば、ハードウエア結合と結合して上述した顧客のコンピュータ処理環境から作成されるイメージの文脈において、ソフトウエア２１２を実証するのを試みるクライアント２０６又は２０８は、上述のマシン属性２６０又は２７０を再び使用することができ、及び属性がライセンスファイル２２４の中に含まれる属性と一致するかどうかの決定を行うことが出来る。そうでない場合、不一致は、試みが、認証されていないコンピュータ及び／又は環境上、ソフトウエア２１２のインストールをするためになされることを示すことが出来る。顧客は、クライアント２０６又は２０８を既に存在するコンピュータ環境と入れ替えるか又は追加することができることが理解される。ライセンスファイル２２４は、イメージファイル２２４において含まれる環境イメージと、ソフトウエア２１２がオーセンティケーションされると作成される環境イメージとの間に、複数の変化に対して許さない場合、顧客は、ベンダ２０２から新しいライセンスファイル２２４を取得することなしに、及び／又はコンピュータ処理環境におけるすべてのクライアント２０６及び２０８上、ライセンスファイルを再作成し、ソフトウエア２１２を再オーセンティケーションをすることなしに、ソフトウエア２１２に新規追加のクライアント２０６、２０８を追加することが出来なくするだろう。
【００３１】
したがって、実施形態は、ライセンスファイル２２４が環境に対して作成されたとき作成されたイメージと、ソフトウエア２１２が特定のクライアントコンピュータにオーセンティケーションされたとき作成されたイメージとの間の複数の差異を可能にすることが出来るハードウエア結合認容を与える。認容は、例えば、ベンダ２０２などにより設定することができ、及びあらゆるレベルのセキュリティに影響を及ぼすよう選択することができる。一般的に言って、コンピュータ処理環境に許可される変更がより大きいので、選択する認容が大きいほど、与えられるセキュリティが小さいことが理解されるだろう。しかしながら、さらにより大きな認容は、新しいライセンスファイル２２４に対して再適用しなければならないことなく顧客がコンピュータ処理環境に対して作成されるハードウエア変更に関して、より大きな顧客自由度を可能にする。したがって、前述の認容レベルが、例えば海賊版の可能性、顧客ニーズなどの要因に基づいて決定される必要があることがある。
【００３２】
ライセンスファイル２２４の完全性は、ファイルのシグネチャを検査することによって、実証することが出来る。ライセンスファイル２２４が手を加えられない場合、すなわち、完全性が実証される場合、ソフトウエアは、実行するよう許可することが出来る。ライセンスファイル２２４が手を加えられた場合、ソフトウエアは、削減された機能モードにおいて実行することができる。
【００３３】
ソフトウエアの大規模開発は、通常、管理者が自ら非常に多くのマシンを設定するのに、コストが高く及び時間がかかる。加えて、管理者は、エンドユーザに自らマシンをアクティベートすることを望まないことが多い。したがって、前述のインストールは、それゆえに、通常、自動であり、無人又はリモート処理を使用する。
【００３４】
ボリューム・ライセンス・ソフトウエアのアクティベーションを、セットアップ中に実行させることができ、又は後に実行させることができる。無人回答ファイルは、ソフトウエア設定ルーチンとともに使用して、通常の設定プロンプトを迂回するテキストファイルである。無人ファイルは、例えば、ターゲットマシンのローカル・エリア・ネットワーク（ＬＡＮ）を介してか、インターネットを介してかのいずれかにより、ＶＬＫに自動的に入り、プロキシ設定を構成し、及びエンドユーザに代わってシステムを自動アクティベートすることが出来る。さらに、アクティベーションを、コマンドラインスクリプトを使用して設定後に、実行させることができる。
【００３５】
クライアント２０６、２０８などのボリューム・ライセンス・ソフトウエアをインストールすると、インストールイメージは、無人ファイルの助けにより、準備することができる。ソフトウエア２１２は、スクリプトを実行することによって、クライアントマシン２０６、２０８などのインストールを行うことができる。スクリプトは、ライセンスファイル２２４のロケーションを、サーバ２０４を含む既知のロケーションのリストに設定する。あるいはまた、ライセンスファイル２２４は、ファイルがインストールイメージの部分である場合、クライアントマシンへコピーすることが出来る。ログオンすると、ライセンスファイル２２４が読取られ、データがオーセンティケーションされ、クライアントマシン２０６、２０８などがアクティベートされる。ライセンスファイル２２４において特定される環境特性を実証することが出来ずにシステムが接続される場合、システムは、猶予期間において作動し続けることが出来る。猶予期間を越えて、システムは、削減された機能モードにおいて作動し続けることができ、又はエンドユーザは、ソフトウエアベンダ２０２から拡張を要求することが出来る。ライセンスデータが実証出来ずシステムが非接続である場合、ソフトウエアは、システムがネットワークに再び連結するまで、非接続の機能によりのみ機能的であることを続けることが出来る。
【００３６】
図３は、本発明の一実施形態にかかるソフトウエア海賊版を防止するハードウエア結合実施オフラインシステムのブロック図である。オフラインシステムにおいて、企業は、ＶＬＫ２２２およびソフトウエアベンダ２０２が供給するセキュリティハードウエア装置２５２を受信する。ハードウエア装置２５２は、シグネチャ動作を実行して、フォーマットにおいてライセンスファイル２２４と同一のライセンスファイル２２５を生成する能力がある。クライアント２０６及び２０８上のボリューム・ライセンス・ソフトウエアのインストール、アクティベーション処理、及びライセンス実証手順は、ＶＬＫライセンスファイルのシグネチャが行われ、さらにソフトウエアベンダからであるのは、図２において記述したのと同一である。図２Ａによると、図３において点線で描かれた線は、本発明の交互の実装を例示する。
【００３７】
図４は、ハードウエア結合実施システムにおいてソフトウエア海賊版を、より困難にさせる方法のフローチャートである。ステップ４０２において、企業固有ＶＬＫおよびそのライセンスファイルを受信する。ステップ４０３において、関連するボリューム・ライセンス・ソフトウエアのインストールイメージを、１つ又は複数のクライアントマシン上のインストールに対して、準備することができる。前述のイメージの準備が図２Ａ〜Ｂとともに上述したマシン属性及び他のデータの収集を含むことが出来ることを理解されるだろう。ステップ４０４において、ハードウエア固有又はボリューム・ライセンス・ホルダ固有のライセンスファイルを中央サーバに格納するかクライアントマシンに配置させることが出来る。ハードウエア固有又はボリューム・ライセンス・ホルダ固有のライセンスファイルは、サーバに関連付けられたクライアントマシンに対して、自由にアクセス可能ではないことがある。特別なスクリプトは、無人インストールを実行する準備をすることが出来る。
【００３８】
ステップ４０６において、ソフトウエアが、クライアントマシンかマシン上にインストールされる。ステップ４０８において、スクリプトは、クライアントマシン上に配置されるか、クライアントマシンへライセンスファイルのロケーションを発行することによってか、例えば、ＷＭＩ（ｗｉｎｄｏｗｓ  ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｆａｃｅ）を介してか、又はハードコードされたレジストリキーを介してかのいずれかとして、システムにおける既知のロケーションのリストの中のライセンスファイルのロケーションを設定する。ステップ４１０において、ログオンされると、アクティベーションルーチンは、ライセンスファイルのロケーションを検索する。ライセンスファイルがリモートサーバ上にある場合、スクリプトは、オプションとして、例えば、インターネットプロトコル（ＩＰ）アドレスを比較することによって、ライセンスファイルのロケーションを実証することが出来る。ステップ４１２において、アクティベーションルーチンは、ライセンスファイルからデータを読み出し、データが本物であることを実証し、ライセンスファイルにおいて特定されるマシン属性の特性を実証し、及びソフトウエアをアクティベートする。ライセンスファイルにおいて特定されるマシン属性の特性を実証することが出来ないが、システムが接続されている場合、システムは、猶予期間において機能を継続することが出来る。実施形態において、ステップ４１２において、ライセンスファイルが図２Ａとともに上述したライセンスファイルにおいて特定されるマシン属性の特性についての予め定められた認容内にあるかどうかについての決定が、さらに行われる。もしそうである場合、ソフトウエアを、アクティベートすることが出来る。猶予期間を越えると、システムは、削減された機能モードにおいて作動することができるか、又はエンドユーザは、ソフトウエアベンダから拡張を要求することが出来る。ライセンスデータを実証することが出来ないが、システムが非接続である場合、ソフトウエアは、システムが再びネットワークに結合されるまで、非接続の機能によりのみ作動し続けるだろう。
【００３９】
上述の例は、説明の目的のために単に与えられており、及び本発明の制限として説明されるためではないことを補足する。本発明を実装する種々の方法、例えば、本発明にかかるライセンス情報を取得するアプリケーション及びサービスを可能にする適切なＡＰＩ、ツールキット、ドライバコード、ＤＬＬ（ｄｙｎａｍｉｃ  ｌｉｎｋｅｄ  ｌｉｂｒａｒｙ）、オペレーティングシステム、制御、スタンドアロン又はダウンロード可能なソフトウエアオブジェクトなどがあることをさらに補足する。本発明は、ＡＰＩのスタンドポイントから、本明細書において説明したＶＬＫライセンス技術と結合して通信するソフトウエア又はハードウエアからも同様に、本発明の使用を予想する。したがって、本明細書において説明した本発明の種々の実装は、完全にハードウエアにおいて、一部ハードウエア及び一部ソフトウエアにおいて、ソフトウエアにおいても同様な側面を有することが出来る。
【００４０】
上述のように、本発明の例示的実施形態は、種々のコンピュータ処理装置及びネットワークアーキテクチャとともに説明しているが、基本的な概念は、海賊版を防止するのが望ましいあらゆるコンピュータ処理装置及びシステムに適用することができる。したがって、本発明にかかるデータのエンコード／デコードに対する技法は、種々のアプリケーション及び装置に適用することができる。例えば、本発明のアルゴリズム及びハードウエア実装を、装置上の分離オブジェクトとして、別のオブジェクトとして、再利用可能な制御として、サーバからダウンロード可能なオブジェクトとして、デバイス又はオブジェクトとネットワークとの間の「ミドルマン」として、分散オブジェクトとして、ハードウエアとして、メモリにおいて、上述のあらゆる結合などを与えられ、コンピュータ処理装置のオペレーティングシステムに対して適用することができる。例示的プログラム可能な言語、名称及び例を、本明細書において、種々の選択、言語、名称及び例が制限となるのを意図しない表現として選択される。本発明を獲得する制御の利用に言及する実施形態に関して、本発明は、  ．ＮＥＴ制御の提供に制限せず、むしろ本発明にかかる海賊版防止目的を達成するソフトウエア（及び／又はハードウエア）のあらゆる一部についての広げられる内容において、考えられるべきである。当事業者は、オブジェクトコード及び本発明の種々の実施形態により獲得される、同一な、同様な、等しい機能を獲得する用語を与える多くの方法があることを理解するであろう。本発明を、オンラインオークション又は入札サイトも同様にして、ともに実装することが出来る。
【００４１】
上述したように、本明細書において説明された種々の技法を、ハードウエア又はソフトウエアとともに、適切には両方の結合とともに、実装することが出来る。したがって、本発明の方法及び装置、又はある側面若しくはそれらの部分は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、又はあらゆる他のマシン読取可能なストレージ媒体など、実在の媒体に埋め込まれるプログラムコードの形式（すなわち、命令）をとることが出来る。前述の点において、プログラムコードをコンピュータなどのマシンによりロードかつ実行すると、マシンは、本発明を実践する装置になる。プログラム可能なコンピュータ上のプログラムコード実行の場合、コンピュータ処理装置は、一般的に、プロセッサ、プロセッサにより読取可能なストレージメディア（揮発性及び不揮発性のメモリ及び／又はストレージ要素を含む）、少なくとも１つの入力装置、少なくとも１つの出力装置を含むであろう。本発明の海賊版防止技法を利用する１つ又は複数のプログラムは、例えば、データ処理ＡＰＩ、再利用可能な制御などの使用によって、コンピュータシステムと通信するための高位の手続きの又はオブジェクト指向のプログラム言語において実装されるのが望ましい。しかしながら、望むならば、プログラムをアセンブリ言語またはマシン言語において実装することができる。あらゆる場合において、言語は、コンパイルされた又は組み入れられた言語とすることができ、ハードウエア実装により結合することが出来る。
【００４２】
さらに、本発明の方法及び装置を、電気ワイヤ又はケーブルなどの転送媒体を介して、光ファイバによって、他のあらゆる転送形式を介して、転送されるプログラムコードの形式において包含される通信を介して実行することが出来る。前述の点において、プログラムコードが、ＥＰＲＯＭ、ゲートアレイ、ＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）クライアントコンピュータ、ビデオレコーダ又は上述の例示的実施形態において説明した信号処理能力を有する受信マシンなどマシンにより、受信され及びロードかつ実行されると、本発明を実行する装置になる。一般的な目的のプロセッサ上、実装されると、プログラムコードは、プログラムと結合して、一意的な装置を提供して、本発明の機能を呼び出す。加えて、本発明とともに用いられるあらゆるストレージ技法は、いつもハードウエアとソフトウエアとの結合であるとすることが出来る。
【００４３】
本発明を種々の図面についての望ましい実施形態とともに説明しているが、他の同様な実施形態を使用することができ、又は変形及び追加を、本発明から逸脱することなく、本発明の同一の機能を実行する、説明された実施形態に対して、行うことが出来ることが理解されるべきである。例えば、本発明の例示的ネットワーク環境を、ペア・ツー・ペアのネットワーク化された環境など、ネットワーク化された環境の文脈において説明するが、当事業者は、本発明がそれらに制限されず、並びに本明細書において説明された方法は、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなど、有線か無線かに適用することができ、及び通信ネットワークを介して、ネットワークを越えて双方向通信してあらゆる数のそのようなコンピュータ処理装置に適用することができる。さらに、ハンドヘルドオペレーティングシステムおよび他のアプリケーション固有のオペレーティングシステムを含む、種々のコンピュータプラットホームは、特にワイヤレスネットワーク化された装置が急増し続けるので、予想されることを強調すべきである。さらにまだ、本発明は、複数の処理チップまたは処理装置においてまたは越えて実装することができ、及びストレージは、同様に複数の装置を越えて影響を及ぼすことが出来る。したがって、本発明は、あらゆる単一の実施形態に制限すべきではなく、むしろ添付の請求項にかかる広がり及び範囲において、解釈されるべきである。
【図面の簡単な説明】
【００４４】
【図１】本発明を実装することができる側面における例示的コンピュータ処理環境である。
【図２Ａ】本発明の一実施形態にかかるソフトウエア海賊版を防止する例示的ハードウエア結合実施システムを例示するブロック図である。
【図２Ｂ】本発明の一実施形態とともに使用することができる例示的クライアントデータのブロック図である。
【図３】本発明の一実施形態にかかるソフトウエア海賊版を防止する例示的オフラインシステムを例示するブロック図である。
【図４】本発明の一実施形態にかかるハードウエア結合実施システムにおけるソフトウエア海賊版を防止する例示的方法のフローチャートである。
【図１】
2008536209.tif 000003
【図２Ａ】
2008536209.tif 000004
【図２Ｂ】
2008536209.tif 000005
【図３】
2008536209.tif 000006
【図４】
2008536209.tif 000007
【国際調査報告】
2008536209.tif 000008