説明

マシン属性を使用して企業環境におけるソフトウエア海賊版を防止する方法およびシステム

ボリュームライセンス環境におけるソフトウエア海賊版を防止する方法、システム及びコンピュータ読取可能な媒体。ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーを受信する。ボリューム・ライセンス・キーは、環境についての少なくとも1つのマシン属性から得られる第一データを有する。ボリューム・ライセンス・ファイルは、環境についての少なくとも1つのマシン属性から得られる第二データを使用してオーセンティケーションされる。そして、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージは、環境についての少なくとも1つのコンピュータ処理装置上、アクティベートされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般には、ソフトウエア海賊版の阻止の分野に関し、より詳細には、ボリューム・ライセンス・キー(VLK;volume license key)を使用するソフトウエアのボリュームライセンスの分野に関する。
【背景技術】
【0002】
ソフトウエア海賊版は、毎年、ソフトウエアベンダに巨額のコストをかける世界的な問題である。海賊版の1つの形は、不慮のコピーとして知られ、エンドユーザのライセンス合意の違反について、複数のコンピュータ上、ソフトウエアを共有かつインストールすることである。プロダクトアクティベーションは、前述の種類の海賊版を削減する1つの方法である。
【0003】
プロダクトアクティベーションは、一般的に、ソフトウエアベンダに対する、インストール識別コード及び/又はハードウエア識別子の提出にたよる。ソフトウエアベンダは、応答として、アクティベーション承認コードを返信する。プロダクトアクティベーションについて通常小売りのアプリケーションにおいて、一意的なプロダクトキーが箱詰めのソフトウエアパッケージの各々に与えられる。通常、いくらかの猶予期間(ソフトウエアのインストール後の、どのソフトウエアがアクティベートされることなく実行されるかの間の時間)の後、顧客は、ソフトウエアベンダに接触して、ソフトウエアのコピーをアクティベートする。前述のことを行うことの失敗は、ソフトウエアのディアクティベーション又はソフトウエアのデグレードされた機能に帰することが多い。通常、一意的なプロダクトキーを使用して、一意的なプロダクト識別コードを生成する。プロダクト識別コードは、ハッシュされたハードウエア関連の値と結合され、ソフトウエアが実行されるマシンを特定するインストール識別コードを生成する。ソフトウエアに実行を可能にさせるアクティベーション確定は、通常、顧客に返信される。前述に関して、さらにアクティベーション確定は、ライセンスファイル、又はライセンスを表すバイナリとすることができる。各々のログインにおいて、ライセンスされたソフトウエアは、ソフトウエアがアクティベートされた、本質的に同一なハードウエア上、ソフトウエアが実行されていることを確認する。確認が失敗すると、ソフトウエアが再び実行される前に、リアクティベーションが必要である。
【0004】
企業の顧客は、一般的に、ボリュームライセンスを購入する。なぜならば、企業のドメインの中の数百又は数千のマシンを有しているであろう、企業の顧客に対して、マシン固有アクティベーションコードを受信するのにインストールされるソフトウエアコピーの各々に対して、ソフトウエアベンダと接触するのは、実行可能ではないからである。従って、通常、ボリュームライセンスの所有者は、ソフトウエアベンダと接触してソフトウエアをアクティベートする必要はない。なぜならば、ソフトウエアは、ボリューム・ライセンス・キーが防止されると、アクティベーション要件を迂回するからである。従って、同一のボリューム・ライセンス・キーを使用して、多くの異なるコンピュータに使用することができ、猶予期間が満了する前後において、ソフトウエアを実行させるために、アクティベーションを必要とするものがない。前述の特徴は、企業の顧客がインストールするのに対して、ボリューム・ライセンス・キーを、より便利にさせたけれども、さらに、海賊版に対して、魅力のある標的である。
【発明の開示】
【発明が解決しようとする課題】
【0005】
従って、ボリューム・ライセンス・キーを侵害することを、より困難にする機構が必要である。本発明は、前述の必要性を満足する。
【課題を解決するための手段】
【0006】
本発明は、前述の欠点及び短所の観点から、ボリュームライセンス環境におけるソフトウエア海賊版を防止する方法、システム及びコンピュータ読取可能な媒体を与える。方法において、ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーが受信される。ボリューム・ライセンス・キーは、ボリュームライセンス環境の少なくとも1つのマシン属性から得られる第一データを有する。ボリューム・ライセンス・ファイルは、ボリュームライセンス環境の少なくとも1つのマシン属性から得られる第二データを使用して、オーセンティケーションされる。次に、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージは、ボリュームライセンス環境において、少なくとも1つのコンピュータ処理装置上、アクティベートされる。
【0007】
システムにおいて、ボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージを与える。ボリューム・ライセンス・ファイルは、コンピュータ環境のマシン属性から得られた第一データを有する。オーセンティケーションルーチンは、コンピュータ環境のマシン属性から得られる第二データから与えられ、及び第二データと第一データとを比較している。さらにその上、ボリューム・ライセンス・キーによってソフトウエアパッケージをアクティベートするアクティベーションルーチン及びボリューム・ライセンス・ファイルのオーセンティケーションの応答としてさらに与えられる。
【0008】
前述の結論は、望ましい実施形態の以下の詳細な説明も同様に、添付の図面とともに読まれると、より理解される。本発明を例示する目的のために、図面において、本発明の例の構成が示されるが、しかしながら、本発明を、特定の方法及び開示される有用性を制限しない。
【発明を実施するための最良の形態】
【0009】
本発明の主要な問題を、特殊性により記述して、法定の要件を満たす。しかしながら、記述自体は、本出願の範囲に制限することを意図しない。むしろ発明者は、主張される主要な問題がさらに別の方法において、実施されることを意図して、他の現在及び未来の技術とともに、本明細書において記述される1つとは異なるステップ又は要素を含む。さらに、用語の「ステップ」を、本明細書において、用いられる方法の異なる側面を暗示するのに用いることができるが、用語は、個々のステップの命令が明示的に記述されるときでない限り及び以外に、本明細書において開示される種々のステップの間又はステップ間のあらゆる特定の命令を含むことを解釈されるべきではない。
【0010】
(コンピュータ処理環境の例)
図1は、本発明を実施することができる、適したコンピュータ処理システム環境100の例を例示する。コンピュータ処理システム環境100は、適したコンピュータ処理環境の1つの例のみであり、及び本発明の使用又は機能の範囲としてあらゆる制限を提案することを意図しない。両者とも例示的オペレーティング環境100において例示されるあらゆる1つ又は結合に関連するあらゆる依存性又は必要性を有することを解釈されるコンピュータ処理環境100とすべきではない。
【0011】
本発明は、非常に多くの他の目的又は特定の目的のコンピュータ処理システム環境又は構成により使用可能である。よく知られたコンピュータ処理システム、環境、及び/又は構成は、制限はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、前述のシステム又は装置のいずれかを含む分散コンピュータ処理環境などを含む本発明による使用に適していることがある。
【0012】
本発明を、プログラムモジュールなど、コンピュータにより実行されるコンピュータ実行可能命令の一般的な背景において記述することがある。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能を、種々の実施形態において、望まれるとして結合又は分散することができる。さらに、本発明を、タスクが通信ネットワークを介してリンクされた遠隔処理装置により実行される分散コンピュータ処理環境において、実行することができる。分散コンピュータ処理環境において、プログラムモジュールを、メモリストレージ装置を含む、ローカル及びリモートの両方のコンピュータストレージ媒体において格納することができる。
【0013】
図1を参照すると、本発明を実装する例のシステムは、コンピュータ110の形式において、一般的な目的のコンピュータ処理装置を含む。コンピュータ110の構成は、制限はしないが、処理ユニット120、システムメモリ130及び処理ユニット120に対するシステムメモリを含む種々のシステムコンポーネントを連結するシステムバス121を含むことができる。システムバス121は、メモリバス又はメモリ制御、周辺バス、及びバスアーキテクチャの種類のいずれかを使用するローカルバスを含んでいるバス構造の複数の種類のいずれかであるとすることができる。例として、制限はしないが、前述のようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニン(Mezzanine)バスとしてさらに知られているPCI(Peripheral Component Interconnect)バスを含む。
【0014】
通常、コンピュータ110は、種々のコンピュータ読取可能な媒体を含む。コンピュータ読取可能な媒体は、コンピュータ110によりアクセスすることが出来るあらゆる利用可能な媒体とすることができ、揮発性及び非揮発性の媒体の両方、取外し可能な及び固定の媒体を含む。例として、制限しないが、コンピュータ読取可能な媒体は、コンピュータ・ストレージ・メディア、及び通信媒体を含むことが出来る。コンピュータ・ストレージ・メディアは、揮発性及び非揮発性媒体の両方の、コンピュータ読取可能な命令、データ、構造体、プログラムモジュール又は他のデータなど、情報を格納する方法又は技術において実装される取外し可能な及び固定の媒体を含む。コンピュータ・ストレージ・メディアは、制限しないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、DVD(digital versatile disk)若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気ストレージ装置、または所望の情報を格納するのに使用でき、コンピュータ110によりアクセスできる他のあらゆる媒体を含む。通常、通信媒体は、コンピュータ読取可能な命令、データ構造体、プログラムモジュール又は搬送波若しくは他の伝送機構など変調されたデータにおける他のデータを包含し、及びあらゆる情報伝達媒体を含む。用語の「変調されたデータ信号」は、1つまたは複数の信号特性セット若しくは信号の中の情報をエンコードする方法などにおいて変更された信号を有する。例えば、制限はしないが、通信媒体は、有線ネットワークまたは直接接続ネットワークなどの有線媒体、並びに音波、RF、赤外線及び他のワイヤレスな媒体を含む。さらに、上述のあらゆる結合を、コンピュータ読取可能な媒体の範囲内において含むべきである。
【0015】
システムメモリ130は、ROM(read−only memory)131、RAM(random access memory)132など、揮発性及び/又は不揮発性のメモリの形式におけるコンピュータ・ストレージ・メディアを含む。起動中など、コンピュータ110内の要素間において情報を転送するのに役立つ基本ルーチンを含む、基本入出力システム(BIOS)133は、通常、ROM131において格納される。通常、RAM132は、プロセッサ処理ユニット120により即時的にアクセス可能及び/又は現在処理中のデータ及び/又はプログラムモジュールを含む。例として、制限はしないが、図1は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136及びプログラムデータ137を例示する。
【0016】
さらに、コンピュータ110は、他の取外し可能な/固定の、揮発性/不揮発性のコンピュータ・ストレージ・メディアを含むことができる。例としてのみ、図1は、固定の不揮発性の磁気メディアに対して読取る又は書き込むハード・ディスク・ドライブ140、固定の不揮発性の磁気ディスク152に対して読取る又は書き込む磁気ディスクドライブ151、及びCD−ROM又は他の光媒体など、取外し可能の不揮発性の光ディスク156に対して読取る又は書き込む光ディスクドライブ155を例示する。例示的処理環境において使用することができる他の取外し可能/固定の、揮発性/不揮発性のコンピュータ・ストレージ・メディアは、制限はしないが、磁気テープカセット、フラッシュ・メモリ・カード、DVD、デジタル・ビデオ・テープ、固定のRAMなどを含む。通常、ハード・ディスク・ドライブ141は、インターフェース140などの固定のメモリインターフェースによってシステムバス121に接続され、及び通常、磁気ディスクドライブ151と光ディスクドライブ155は、インターフェース150など取外し可能なメモリインターフェースによりシステムバス121に接続される。
【0017】
上述の及び図1において例示されたドライブ及びドライブに関連付けられたコンピュータ・ストレージ・メディアは、コンピュータ読取可能な命令、データ構造体、プログラムモジュール及びコンピュータ110に対する他のデータについてのストレージを提供する。図1において、例として、ハード・ディスク・ドライブ141を、格納するオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146及びプログラムデータ147として例示する。上述のコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136及びプログラムデータ137と同一か異なるかのいずれかとすることができることを補足する。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146及びプログラムデータ147を、本明細書において、最小限、異なるコピーとして例示するために、異なる数を与える。ユーザは、キーボード162、及びマウス、トラックボール、タッチパッドとして一般的に言われるポインティングデバイス161などの入力装置によって、コンピュータ110へ命令及び情報を入力する。他の入力装置(図示せず)は、マイクロホン、ジョイスティック、ゲームパッド、サテライトディシュ、スキャナーなどを含むことができる。上述の及び他の入力装置を、システムバスに連結されたユーザ入力インターフェース160によって、プロセッサ処理ユニットに接続することが多いが、パラレルポート、ゲームポート又はUSB(universal serial bus)など、他のインターフェース及びバス構造により接続することができる。さらに、モニタ191又は他の種類のディスプレイ装置は、ビデオインターフェース190など、インターフェースを介してシステムバス121に接続する。モニタに加えて、さらにコンピュータは、出力周辺インターフェース190によって接続することが出来るスピーカ197及びプリンタ196など、他の周辺出力装置を含むことができる。
【0018】
コンピュータ110は、リモートコンピュータ180など、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境において、作動することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ペアデバイス又は他の共通ネットワークノードとすることができ、通常、コンピュータ110に関係する、上述の要素の多く又はすべてを含むが、図1において、メモリストレージ装置181のみを例示している。図1に示す論理接続は、ローカル・エリア・ネットワーク(LAN)及びワイド・エリア・ネットワーク(WAN)を含むが、さらに他のネットワークを含むことができる。前述のネットワーク処理環境は、オフィス、企業−ワイド・コンピュータ・ネットワーク、イントラネット、インターネットである。
【0019】
LANネットワーク処理環境において使用される場合、コンピュータ110は、ネットワークインターフェース又はアダプタ170によってLAN171に接続される。WANネットワーク処理環境において使用される場合、通常、コンピュータ110は、モデム172又はインターネットなど、WAN173を介して通信を確立する他の手段を含む。モデム172は、内部又は外部とすることができ、ユーザ入力インターフェース160又は適切な機構を介して、システムバス121に接続することが出来る。ネットワーク化環境において、コンピュータ110に関係する、例示されたプログラムモジュール、またはその一部を、リモート・メモリ・ストレージ装置に格納することができる。例として、制限はしないが、図1は、メモリ装置181に属するとしてリモート・アプリケーション・プログラム185を例示する。例示するネットワーク接続は、例であり、およびコンピュータ間の通信リンクを確立する他の手段を使用することが出来ることを理解するであろう。
【0020】
(分散コンピュータ処理フレームワーク又はアーキテクチャの例)
種々の分散コンピュータ処理フレームワークは、パーソナルコンピュータ及びインターネットの集合として見ると、発展し続けており、発展中である。個人及び業務のユーザは同様に、シームレスな内部処理可能な及びアプリケーションとコンピュータ処理装置とに対してウェブ可能なインターフェースを提供し、コンピュータ処理アクティビティをウェブブラウザ又はネットワーク指向に増加させる。
【0021】
例えば、本願特許出願人の .NETプラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディング・ブロック・サービス及びダウンロード可能なデバイスソフトウエアを含む。一般的に言って、 .NETプラットフォームは、(1)コンピュータ処理装置の全範囲の仕事を一緒にさせること及びユーザ情報を自動的に更新させ、それらすべてを同期させることの能力、(2)HTMLよりむしろXMLの使用の増加により可能な、ウェブサイトに対して増加された双方向通信性能、(3)電子メールなどの種々のアプリケーション又はOffice .NETなどのソフトウエアについての管理に対して中心的なスタートポイントからユーザへ、カスタマイズされたアクセス機能及び製品とサービスとの送付というオンラインサービス、(4)情報へのアクセスの効率及び容易さ、ユーザと装置との間の情報の同期も同様に、増加させる集中化されたデータストレージ、(5)電子メール、ファクシミリ及び電話など、種々の通信媒体を統合する能力、(6)開発者に対して、再利用可能なモジュールを増加させる能力、これにより生産性を増加させ及びプログラムエラー数を削減する並びに(7)同様に多くの他のクロスプラットフォーム統合機能を与える。
【0022】
本明細書における例示的実施形態を、コンピュータ処理装置に属するソフトウエアと結合して説明するが、さらに本発明の1つ又は複数の部分を、オペレーティングシステム、API又はミドルウエアを介して、サービスが、 .NETの言語及びサービスのすべてにより実行され、サポートされ、又はアクセスされるよう、コプロセッサと要求するオブジェクトとの間において、同様に他の分散コンピュータ処理フレームワークにおいて、実装することができる。
【0023】
(例示的実施形態)
図2Aは、本発明の一実施形態にかかるソフトウエアの海賊版を防止するハードウエア結合実施割当のシステムのブロック図である。サーバ204又はベンダ202は、WAN、LAN(有線又は無線)、イントラネット、インターネット等のネットワークを介して1つ又は複数のクライアント206又は208に接続することが出来る。図2Aにおいて、点で描いた線は、本発明の相互の実装を例示し、サーバ204は、オプションである。サーバ204の役割が初期ライセンスファイル発見のためであり、本発明を実装するのに必要ではないのである。
【0024】
ソフトウエアベンダは、ボリューム・ライセンス・ホルダに、制限はしないが、CD−ROM、又は直に、上述のようなものなどのネットワークとしてなど複数のメディア上、ボリュームライセンスされたソフトウエア212のコピーを与えることが出来る。随伴するソフトウエア212は、業務固有の、又はボリューム・ライセンス・ホルダ固有のVLK222とすることが出来る。本発明の一実施形態において、VLK222は、ライセンスファイル224と呼ばれる相対的に大きなファイル内に埋め込むことが出来る。ライセンスファイル224は、例えば、ボリューム・ライセンス・ホルダに対する識別子及びホルダにライセンスされた製品に基づいて構成することができ、及びハッシュされたDC(domain controller)名、AD(active directory)等、環境結合情報を含むことが出来る。
【0025】
さらにその上、1つの実施形態において、ライセンスファイル224は、例えば、1つ又は複数のマシン属性260及び/又は270に基づいてハードウエア結合情報を含むことが出来る。例えば、ライセンスファイル224は、1つ又は複数のクライアント206又は208から、それぞれ、マシン属性260又は270を含むことが出来る。マシン属性は、クライアント206又は208に関連付けられたハードウエア装置を識別するあらゆる種類のデータとすることが出来る。例えば、マシン属性は、プロセッサID等とすることが出来る。ライセンスファイル224において使用されるマシン属性260又は270を、ハッシュするか又はむしろライセンスファイル224へ処理することができる。したがって、ライセンスファイル224は、基本的には、顧客のクライアント206又は208のネットワーク内に含まれるハードウエアに関する顧客のコンピュータ処理環境のイメージを含むことが出来る。
【0026】
ライセンスファイル224において、ハッシュされた値としてか、それ以外としてのいずれか、マシン属性260又は270の包含は、潜在的なソフトウエア海賊版を、ソフトウエア212の正当なコピーについてのコピーする顧客環境から防ぐことが理解される。例えば、顧客が「クライアント1」、「クライアント2」及び「クライアント3」と名づけられた3つのクライアントコンピュータを有する場合、ソフトウエア海賊版は、例えば同一のクライアント名の、第2ネットワークへソフトウエアのコピーを試みることができる。1つ又は複数のクライアントコンピュータからマシン属性を組み入れ、ハードウエア結合情報をライセンスファイル224Aに組み入れることによって、コンピュータ処理環境のイメージが作成され、キーの型として使用することができる。以下に説明するように、クライアント206又は208がソフトウエア212のオーセンティケーションを試みると、コンピュータ処理環境内のクライアントのマシン属性を使用して、コンピュータ処理環境の第2イメージを作成する。そして、前述のイメージは、初期イメージと比較して、ソフトウエア212が固有のコンピュータ処理環境においてインストールするかどうかを決定することができる。したがって、実施形態は、ソフトウエア212が作動することが出来るコンピュータ処理環境が、ソフトウエア212が認証される実際の環境であることを実証する機構を与える。結果として、実施形態がハードウエア固有のデータを使用してソフトウエア212を認証するので、海賊版が認証された環境を再作成するのを試みる努力が失敗することができることが理解される。
【0027】
マシン属性260及び/又は270を含むことに加えて、ライセンスファイル224は、実施形態にしたがって、マシン属性260又は270が収集されると、タイムスタンプを生成することを含むことができる。さらに、ライセンスファイル224は、シグネチャ又は他のこのようなオーセンティケーション機構を含むことができる。マシン属性260及び/又は270に関連付けられたタイムスタンプの包含は、ソフトウエアを、「再生」攻撃などから防ぐのに役立つ。なぜならば、マシン属性260及び/又は270により促進されるハードウエア結合が、現在として知られているからである。実施形態にかかるクライアント206から収集されることがある例示的クライアントデータのグラフィカル表現は、図2Bと結合して例示される。さて、図2Bを参照すると、例えば、ライセンスファイル224へ合体するクライアント206から送信することができるデータ266の例を示す。1つの実施形態において、データ266は、1つ又は複数のマシン属性260、タイムスタンプ262及びシグネチャ264を含む。シグネチャ264は、ライセンスファイル224などの完全性を実証するのに用いることができる。
【0028】
さて、図2Aに戻ると、1つの実施形態において、ライセンスファイル224は、相対的に大きなシステムファイルとすることができることを補足する。選択される特定のファイル型は、制限はしないが、イメージまたはオーディオファイル形式を含むあらゆる型のファイル型とすることができる。VLK222は、データにおけるあらゆる場所に埋め込むことができ、そして、1つの実施形態においてプライベートキーによりシグネチャが行われることにより、ライセンスファイル224を生成することができる。本発明の1つの実施形態において、ライセンスファイル224の大きさは、1.44メガバイト(MB)より大きく、例えば2MBであり、ライセンスファイル224をフロッピーディスクなどへコピーすることを防ぐ。本発明の1つの実施形態において、ライセンスファイル224は、ライセンスファイル224のみを含み、及び関連するソフトウエア212を含んでいるCD−ROMのボリュームラベルとは異なるボリュームラベルを有するCD−ROMとして与えることができる。
【0029】
さて、ライセンスホルダのソフトウエア212がクライアント206、208などの間に分配される上述の環境を参照すると、ログイン時、クライアント206、208などのアクティベーションコードの常駐が、ライセンスファイル224が手を加えられていないことを実証するライセンスファイル224の内容を読み出す。本明細書において利用される場合、アクティベーションは、ソフトウエア・ライセンス・データ、ネットワーク環境結合、ハードウエア結合を実証し、及びソフトウエアを、さらなる結合実証なしに時間周期内に機能性を可能にする処理を言う。前述の点については、ソフトウエアインストール処理の間、VLK222及び/又はライセンスファイル224を、例えば、サーバ204を介して、クライアント208へ、又はクライアント206へ転送することができる。
【0030】
実証処理は、ライセンスにおいて定義される結合又はポリシーに対してローカルマシン上のライセンスをチェックすることを含むことが出来る。例えば、ハードウエア結合と結合して上述した顧客のコンピュータ処理環境から作成されるイメージの文脈において、ソフトウエア212を実証するのを試みるクライアント206又は208は、上述のマシン属性260又は270を再び使用することができ、及び属性がライセンスファイル224の中に含まれる属性と一致するかどうかの決定を行うことが出来る。そうでない場合、不一致は、試みが、認証されていないコンピュータ及び/又は環境上、ソフトウエア212のインストールをするためになされることを示すことが出来る。顧客は、クライアント206又は208を既に存在するコンピュータ環境と入れ替えるか又は追加することができることが理解される。ライセンスファイル224は、イメージファイル224において含まれる環境イメージと、ソフトウエア212がオーセンティケーションされると作成される環境イメージとの間に、複数の変化に対して許さない場合、顧客は、ベンダ202から新しいライセンスファイル224を取得することなしに、及び/又はコンピュータ処理環境におけるすべてのクライアント206及び208上、ライセンスファイルを再作成し、ソフトウエア212を再オーセンティケーションをすることなしに、ソフトウエア212に新規追加のクライアント206、208を追加することが出来なくするだろう。
【0031】
したがって、実施形態は、ライセンスファイル224が環境に対して作成されたとき作成されたイメージと、ソフトウエア212が特定のクライアントコンピュータにオーセンティケーションされたとき作成されたイメージとの間の複数の差異を可能にすることが出来るハードウエア結合認容を与える。認容は、例えば、ベンダ202などにより設定することができ、及びあらゆるレベルのセキュリティに影響を及ぼすよう選択することができる。一般的に言って、コンピュータ処理環境に許可される変更がより大きいので、選択する認容が大きいほど、与えられるセキュリティが小さいことが理解されるだろう。しかしながら、さらにより大きな認容は、新しいライセンスファイル224に対して再適用しなければならないことなく顧客がコンピュータ処理環境に対して作成されるハードウエア変更に関して、より大きな顧客自由度を可能にする。したがって、前述の認容レベルが、例えば海賊版の可能性、顧客ニーズなどの要因に基づいて決定される必要があることがある。
【0032】
ライセンスファイル224の完全性は、ファイルのシグネチャを検査することによって、実証することが出来る。ライセンスファイル224が手を加えられない場合、すなわち、完全性が実証される場合、ソフトウエアは、実行するよう許可することが出来る。ライセンスファイル224が手を加えられた場合、ソフトウエアは、削減された機能モードにおいて実行することができる。
【0033】
ソフトウエアの大規模開発は、通常、管理者が自ら非常に多くのマシンを設定するのに、コストが高く及び時間がかかる。加えて、管理者は、エンドユーザに自らマシンをアクティベートすることを望まないことが多い。したがって、前述のインストールは、それゆえに、通常、自動であり、無人又はリモート処理を使用する。
【0034】
ボリューム・ライセンス・ソフトウエアのアクティベーションを、セットアップ中に実行させることができ、又は後に実行させることができる。無人回答ファイルは、ソフトウエア設定ルーチンとともに使用して、通常の設定プロンプトを迂回するテキストファイルである。無人ファイルは、例えば、ターゲットマシンのローカル・エリア・ネットワーク(LAN)を介してか、インターネットを介してかのいずれかにより、VLKに自動的に入り、プロキシ設定を構成し、及びエンドユーザに代わってシステムを自動アクティベートすることが出来る。さらに、アクティベーションを、コマンドラインスクリプトを使用して設定後に、実行させることができる。
【0035】
クライアント206、208などのボリューム・ライセンス・ソフトウエアをインストールすると、インストールイメージは、無人ファイルの助けにより、準備することができる。ソフトウエア212は、スクリプトを実行することによって、クライアントマシン206、208などのインストールを行うことができる。スクリプトは、ライセンスファイル224のロケーションを、サーバ204を含む既知のロケーションのリストに設定する。あるいはまた、ライセンスファイル224は、ファイルがインストールイメージの部分である場合、クライアントマシンへコピーすることが出来る。ログオンすると、ライセンスファイル224が読取られ、データがオーセンティケーションされ、クライアントマシン206、208などがアクティベートされる。ライセンスファイル224において特定される環境特性を実証することが出来ずにシステムが接続される場合、システムは、猶予期間において作動し続けることが出来る。猶予期間を越えて、システムは、削減された機能モードにおいて作動し続けることができ、又はエンドユーザは、ソフトウエアベンダ202から拡張を要求することが出来る。ライセンスデータが実証出来ずシステムが非接続である場合、ソフトウエアは、システムがネットワークに再び連結するまで、非接続の機能によりのみ機能的であることを続けることが出来る。
【0036】
図3は、本発明の一実施形態にかかるソフトウエア海賊版を防止するハードウエア結合実施オフラインシステムのブロック図である。オフラインシステムにおいて、企業は、VLK222およびソフトウエアベンダ202が供給するセキュリティハードウエア装置252を受信する。ハードウエア装置252は、シグネチャ動作を実行して、フォーマットにおいてライセンスファイル224と同一のライセンスファイル225を生成する能力がある。クライアント206及び208上のボリューム・ライセンス・ソフトウエアのインストール、アクティベーション処理、及びライセンス実証手順は、VLKライセンスファイルのシグネチャが行われ、さらにソフトウエアベンダからであるのは、図2において記述したのと同一である。図2Aによると、図3において点線で描かれた線は、本発明の交互の実装を例示する。
【0037】
図4は、ハードウエア結合実施システムにおいてソフトウエア海賊版を、より困難にさせる方法のフローチャートである。ステップ402において、企業固有VLKおよびそのライセンスファイルを受信する。ステップ403において、関連するボリューム・ライセンス・ソフトウエアのインストールイメージを、1つ又は複数のクライアントマシン上のインストールに対して、準備することができる。前述のイメージの準備が図2A〜Bとともに上述したマシン属性及び他のデータの収集を含むことが出来ることを理解されるだろう。ステップ404において、ハードウエア固有又はボリューム・ライセンス・ホルダ固有のライセンスファイルを中央サーバに格納するかクライアントマシンに配置させることが出来る。ハードウエア固有又はボリューム・ライセンス・ホルダ固有のライセンスファイルは、サーバに関連付けられたクライアントマシンに対して、自由にアクセス可能ではないことがある。特別なスクリプトは、無人インストールを実行する準備をすることが出来る。
【0038】
ステップ406において、ソフトウエアが、クライアントマシンかマシン上にインストールされる。ステップ408において、スクリプトは、クライアントマシン上に配置されるか、クライアントマシンへライセンスファイルのロケーションを発行することによってか、例えば、WMI(windows management interface)を介してか、又はハードコードされたレジストリキーを介してかのいずれかとして、システムにおける既知のロケーションのリストの中のライセンスファイルのロケーションを設定する。ステップ410において、ログオンされると、アクティベーションルーチンは、ライセンスファイルのロケーションを検索する。ライセンスファイルがリモートサーバ上にある場合、スクリプトは、オプションとして、例えば、インターネットプロトコル(IP)アドレスを比較することによって、ライセンスファイルのロケーションを実証することが出来る。ステップ412において、アクティベーションルーチンは、ライセンスファイルからデータを読み出し、データが本物であることを実証し、ライセンスファイルにおいて特定されるマシン属性の特性を実証し、及びソフトウエアをアクティベートする。ライセンスファイルにおいて特定されるマシン属性の特性を実証することが出来ないが、システムが接続されている場合、システムは、猶予期間において機能を継続することが出来る。実施形態において、ステップ412において、ライセンスファイルが図2Aとともに上述したライセンスファイルにおいて特定されるマシン属性の特性についての予め定められた認容内にあるかどうかについての決定が、さらに行われる。もしそうである場合、ソフトウエアを、アクティベートすることが出来る。猶予期間を越えると、システムは、削減された機能モードにおいて作動することができるか、又はエンドユーザは、ソフトウエアベンダから拡張を要求することが出来る。ライセンスデータを実証することが出来ないが、システムが非接続である場合、ソフトウエアは、システムが再びネットワークに結合されるまで、非接続の機能によりのみ作動し続けるだろう。
【0039】
上述の例は、説明の目的のために単に与えられており、及び本発明の制限として説明されるためではないことを補足する。本発明を実装する種々の方法、例えば、本発明にかかるライセンス情報を取得するアプリケーション及びサービスを可能にする適切なAPI、ツールキット、ドライバコード、DLL(dynamic linked library)、オペレーティングシステム、制御、スタンドアロン又はダウンロード可能なソフトウエアオブジェクトなどがあることをさらに補足する。本発明は、APIのスタンドポイントから、本明細書において説明したVLKライセンス技術と結合して通信するソフトウエア又はハードウエアからも同様に、本発明の使用を予想する。したがって、本明細書において説明した本発明の種々の実装は、完全にハードウエアにおいて、一部ハードウエア及び一部ソフトウエアにおいて、ソフトウエアにおいても同様な側面を有することが出来る。
【0040】
上述のように、本発明の例示的実施形態は、種々のコンピュータ処理装置及びネットワークアーキテクチャとともに説明しているが、基本的な概念は、海賊版を防止するのが望ましいあらゆるコンピュータ処理装置及びシステムに適用することができる。したがって、本発明にかかるデータのエンコード/デコードに対する技法は、種々のアプリケーション及び装置に適用することができる。例えば、本発明のアルゴリズム及びハードウエア実装を、装置上の分離オブジェクトとして、別のオブジェクトとして、再利用可能な制御として、サーバからダウンロード可能なオブジェクトとして、デバイス又はオブジェクトとネットワークとの間の「ミドルマン」として、分散オブジェクトとして、ハードウエアとして、メモリにおいて、上述のあらゆる結合などを与えられ、コンピュータ処理装置のオペレーティングシステムに対して適用することができる。例示的プログラム可能な言語、名称及び例を、本明細書において、種々の選択、言語、名称及び例が制限となるのを意図しない表現として選択される。本発明を獲得する制御の利用に言及する実施形態に関して、本発明は、 .NET制御の提供に制限せず、むしろ本発明にかかる海賊版防止目的を達成するソフトウエア(及び/又はハードウエア)のあらゆる一部についての広げられる内容において、考えられるべきである。当事業者は、オブジェクトコード及び本発明の種々の実施形態により獲得される、同一な、同様な、等しい機能を獲得する用語を与える多くの方法があることを理解するであろう。本発明を、オンラインオークション又は入札サイトも同様にして、ともに実装することが出来る。
【0041】
上述したように、本明細書において説明された種々の技法を、ハードウエア又はソフトウエアとともに、適切には両方の結合とともに、実装することが出来る。したがって、本発明の方法及び装置、又はある側面若しくはそれらの部分は、フロッピーディスク、CD−ROM、ハードドライブ、又はあらゆる他のマシン読取可能なストレージ媒体など、実在の媒体に埋め込まれるプログラムコードの形式(すなわち、命令)をとることが出来る。前述の点において、プログラムコードをコンピュータなどのマシンによりロードかつ実行すると、マシンは、本発明を実践する装置になる。プログラム可能なコンピュータ上のプログラムコード実行の場合、コンピュータ処理装置は、一般的に、プロセッサ、プロセッサにより読取可能なストレージメディア(揮発性及び不揮発性のメモリ及び/又はストレージ要素を含む)、少なくとも1つの入力装置、少なくとも1つの出力装置を含むであろう。本発明の海賊版防止技法を利用する1つ又は複数のプログラムは、例えば、データ処理API、再利用可能な制御などの使用によって、コンピュータシステムと通信するための高位の手続きの又はオブジェクト指向のプログラム言語において実装されるのが望ましい。しかしながら、望むならば、プログラムをアセンブリ言語またはマシン言語において実装することができる。あらゆる場合において、言語は、コンパイルされた又は組み入れられた言語とすることができ、ハードウエア実装により結合することが出来る。
【0042】
さらに、本発明の方法及び装置を、電気ワイヤ又はケーブルなどの転送媒体を介して、光ファイバによって、他のあらゆる転送形式を介して、転送されるプログラムコードの形式において包含される通信を介して実行することが出来る。前述の点において、プログラムコードが、EPROM、ゲートアレイ、PLD(programmable logic device)クライアントコンピュータ、ビデオレコーダ又は上述の例示的実施形態において説明した信号処理能力を有する受信マシンなどマシンにより、受信され及びロードかつ実行されると、本発明を実行する装置になる。一般的な目的のプロセッサ上、実装されると、プログラムコードは、プログラムと結合して、一意的な装置を提供して、本発明の機能を呼び出す。加えて、本発明とともに用いられるあらゆるストレージ技法は、いつもハードウエアとソフトウエアとの結合であるとすることが出来る。
【0043】
本発明を種々の図面についての望ましい実施形態とともに説明しているが、他の同様な実施形態を使用することができ、又は変形及び追加を、本発明から逸脱することなく、本発明の同一の機能を実行する、説明された実施形態に対して、行うことが出来ることが理解されるべきである。例えば、本発明の例示的ネットワーク環境を、ペア・ツー・ペアのネットワーク化された環境など、ネットワーク化された環境の文脈において説明するが、当事業者は、本発明がそれらに制限されず、並びに本明細書において説明された方法は、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなど、有線か無線かに適用することができ、及び通信ネットワークを介して、ネットワークを越えて双方向通信してあらゆる数のそのようなコンピュータ処理装置に適用することができる。さらに、ハンドヘルドオペレーティングシステムおよび他のアプリケーション固有のオペレーティングシステムを含む、種々のコンピュータプラットホームは、特にワイヤレスネットワーク化された装置が急増し続けるので、予想されることを強調すべきである。さらにまだ、本発明は、複数の処理チップまたは処理装置においてまたは越えて実装することができ、及びストレージは、同様に複数の装置を越えて影響を及ぼすことが出来る。したがって、本発明は、あらゆる単一の実施形態に制限すべきではなく、むしろ添付の請求項にかかる広がり及び範囲において、解釈されるべきである。
【図面の簡単な説明】
【0044】
【図1】本発明を実装することができる側面における例示的コンピュータ処理環境である。
【図2A】本発明の一実施形態にかかるソフトウエア海賊版を防止する例示的ハードウエア結合実施システムを例示するブロック図である。
【図2B】本発明の一実施形態とともに使用することができる例示的クライアントデータのブロック図である。
【図3】本発明の一実施形態にかかるソフトウエア海賊版を防止する例示的オフラインシステムを例示するブロック図である。
【図4】本発明の一実施形態にかかるハードウエア結合実施システムにおけるソフトウエア海賊版を防止する例示的方法のフローチャートである。

【特許請求の範囲】
【請求項1】
ボリュームライセンス環境においてソフトウエア海賊版を防止するコンピュータに実装する方法であって、
ボリューム・ライセンス・ファイル内に埋め込まれ、前記環境についての少なくとも1つのマシン属性から得られる第一データを有するボリューム・ライセンス・キーを受信するステップと、
前記環境についての少なくとも1つのマシン属性から得られる第二データを使用して、ボリューム・ライセンス・ファイルをオーセンティケーションするステップと、
前記環境についての少なくとも1つのコンピュータ処理装置上、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージをアクティベートするステップと
を備えたことを特徴とする方法。
【請求項2】
前記マシン属性がハードウエア識別子であることを特徴とする請求項1に記載の方法。
【請求項3】
前記オーセンティケーションするステップが、予め定められた認容内において前記第一データと一致する前記第二データを決定するステップを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記環境の少なくとも1つのマシン属性を収集し、及び前記マシン属性をハッシュして前記第一データを構成するステップをさらに備えたことを特徴とする請求項1に記載の方法。
【請求項5】
前記マシン属性が収集されたときを示すタイムスタンプを収集するステップをさらに備えたことを特徴とする請求項4に記載の方法。
【請求項6】
前記第一データが、前記コンピュータ処理環境の複数のマシン属性から得られることを特徴とする請求項1に記載の方法。
【請求項7】
前記ボリューム・ライセンス・キー及びボリューム・ライセンス・ファイルが、前記少なくとも1つのコンピュータ処理装置を含む複数のコンピュータ処理装置上、インストールするソフトウエアパッケージに関連付けられたことを特徴とする請求項1に記載の方法。
【請求項8】
請求項1の方法を実行するコンピュータ実行可能な命令を備えたコンピュータ読取可能な媒体。
【請求項9】
コンピュータ処理環境においてソフトウエア海賊版を防止するシステムであって、
前記コンピュータ処理環境のマシン属性から得られる第一データを有するボリューム・ライセンス・ファイル内に埋め込まれたボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージと、
前記コンピュータ処理環境のマシン属性から第二データを取得し、及び前記第二データと前記第一データとを比較するオーセンティケーションルーチンと、
前記ボリューム・ライセンス・キーにより前記ソフトウエアパッケージをアクティベートし、及び前記ボリューム・ライセンス・ファイルをオーセンティケーションするのに応答するアクティベーションルーチンと
を備えたことを特徴とするシステム。
【請求項10】
前記オーセンティケーションルーチンが、予め定められた認容内において前記第一データと前記第二データが一致することを決定することを特徴とする請求項9に記載のシステム。
【請求項11】
前記第一データが、前記マシン属性から得られたハッシュされた値を有することを特徴とする請求項9に記載のシステム。
【請求項12】
前記第一データが、前記第一データが得られたときに対応するタイムスタンプを有することを特徴とする請求項11に記載のシステム。
【請求項13】
前記第一及び第二データが、複数のマシン属性から得られることを特徴とする請求項9に記載のシステム。
【請求項14】
ボリュームライセンス環境においてソフトウエア海賊版を防止する方法を実行するコンピュータ実行可能な命令を有するコンピュータ読取可能な媒体であって、
ボリューム・ライセンス・ファイル内に埋め込まれ、前記環境についての少なくとも1つのマシン属性から得られる第一データを有するボリューム・ライセンス・キーを受信するステップと、
前記環境についての少なくとも1つのマシン属性から得られる第二データを使用して、ボリューム・ライセンス・ファイルをオーセンティケーションするステップと、
前記環境についての少なくとも1つのコンピュータ処理装置上、ボリューム・ライセンス・キーに関連付けられたソフトウエアパッケージをアクティベートするステップと
を備えたことを特徴とするコンピュータ読取可能な媒体。
【請求項15】
前記マシン属性がハードウエア識別子であることを特徴とする請求項14に記載のコンピュータ読取可能な媒体。
【請求項16】
前記オーセンティケーションするステップが、予め定められた認容内において前記第一データと一致する前記第二データを決定するステップを含むことを特徴とする請求項14に記載のコンピュータ読取可能な媒体。
【請求項17】
前記方法が、前記環境の少なくとも1つのマシン属性を収集し、及び前記マシン属性をハッシュして前記第一データを構成するステップをさらに備えたことを特徴とする請求項14に記載のコンピュータ読取可能な媒体。
【請求項18】
前記方法が、前記マシン属性が収集されたときを示すタイムスタンプを収集するステップをさらに備えたことを特徴とする請求項17に記載のコンピュータ読取可能な媒体。
【請求項19】
前記第一データが、前記コンピュータ処理環境の複数のマシン属性から得られることを特徴とする請求項14に記載のコンピュータ読取可能な媒体。
【請求項20】
前記ボリューム・ライセンス・キー及びボリューム・ライセンス・ファイルが、前記少なくとも1つのコンピュータ処理装置を含む複数のコンピュータ処理装置上、インストールするソフトウエアパッケージに関連付けられたことを特徴とする請求項14に記載のコンピュータ読取可能な媒体。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2008−536209(P2008−536209A)
【公表日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願番号】特願2008−502964(P2008−502964)
【出願日】平成17年8月1日(2005.8.1)
【国際出願番号】PCT/US2005/027204
【国際公開番号】WO2006/104507
【国際公開日】平成18年10月5日(2006.10.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
2.WINDOWS
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】