(57)【要約】【課題】  一意のボリュームライセンスキー（ＶＬＫ）をボリュームライセンス所有者に提供すること。【解決手段】  ＶＬＫおよび署名付きファイルが、ライセンス交付を受けたソフトウェアとともにボリュームライセンス所有者に提供される。ライセンスファイルは、やや大きいファイルで、たとえばインストールサーバ等に格納される。ログイン後、ライセンスファイルが読み取られ、データが認証され、システムがアクティブ化される。ライセンスデータを認証できない場合、システムは、猶予期間は完全に機能し、認証に成功するまで機能低下モードで動作する。システムは、切断されている場合、再度ネットワークに参加するまで、切断時の特徴でのみ機能する。完全にオフラインのインストールの場合、ライセンスファイルは、ソフトウェアベンダ割当の専用ＶＬＫ等を使用して、ボリュームライセンスの所有者によって生成される。【選択図】  図２
2004234668.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームライセンス環境においてソフトウェアの著作権侵害を阻止するコンピュータで実施される方法であって、
企業専用ボリュームライセンスファイル内に組み込まれた企業専用ボリュームライセンスキーを受信すること、
前記企業専用ボリュームライセンスファイルを認証すること、および
少なくとも１つのコンピューティング装置上の前記企業専用ボリュームライセンスキーに関連するソフトウェアパッケージをアクティブ化すること
を備えることを特徴とする方法。
【請求項２】
前記企業専用ボリュームライセンスキーおよび企業専用ボリュームライセンスファイルは、前記少なくとも１つのコンピューティング装置を含む複数のコンピューティング装置にインストールするための前記ソフトウェアパッケージに関連付けられていることを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つのコンピューティング装置に前記ソフトウェアパッケージをインストールすることをさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記ソフトウェアパッケージのインストールは無人インストール用スクリプトを使用して行われることを特徴とする請求項３に記載の方法。
【請求項５】
前記スクリプトのファイルで指定されている前記企業専用ボリュームライセンスキーおよびその関連するボリュームライセンスファイルは、猶予期間の間使用可能であることを特徴とする請求項４に記載の方法。
【請求項６】
マシンがオンラインで接続されており、前記企業専用ボリュームライセンスファイルのデータであるライセンスデータを検証できない場合、前記システムは前記猶予期間内は引き続き完全に機能することを特徴とする請求項５に記載の方法。
【請求項７】
前記マシンがオンラインで接続されており、前記ライセンスデータを検証できない場合、前記システムは機能低下モードで機能することを特徴とする請求項６に記載の方法。
【請求項８】
前記ライセンスデータを検証できず、前記マシンがインターネットに接続されている場合、エンドユーザが猶予期間中に署名付き拡張機能を要求する信号を送信することができることを特徴とする請求項５に記載の方法。
【請求項９】
前記スクリプトのファイルは前記少なくとも１つのコンピューティング装置のレジストリにプレーンテキストのボリュームライセンスキーを設定することを特徴とする請求項４に記載の方法。
【請求項１０】
前記プレーンテキストのボリュームライセンスキーのみを使用して前記ソフトウェアパッケージをアクティブ化することはできないことを特徴とする請求項９に記載の方法。
【請求項１１】
前記企業専用ボリュームライセンスファイルの位置を前記少なくとも１つのコンピューティング装置上に格納することをさらに備えることを特徴とする請求項２に記載の方法。
【請求項１２】
前記企業専用ボリュームライセンスファイルは１．５ＭＢより大きいことを特徴とする請求項２に記載の方法。
【請求項１３】
前記企業専用ボリュームライセンスファイルを中央位置に格納することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１４】
前記中央位置はサーバ上にあることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記中央位置は前記少なくとも１つのコンピューティング装置のユーザによる直接のアクセスから保護されていることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記企業専用ボリュームライセンスファイルは、前記企業専用ボリュームライセンスキーがランダムに組み込まれるファイルから導出されたデータを備えることを特徴とする請求項１に記載の方法。
【請求項１７】
前記企業専用ボリュームライセンスファイルは秘密キーで署名されることを特徴とする請求項１に記載の方法。
【請求項１８】
前記企業専用ボリュームライセンスファイルは第１のＣＤ−ＲＯＭを介して提供されることを特徴とする請求項１に記載の方法。
【請求項１９】
前記第１のＣＤ−ＲＯＭは前記企業専用ボリュームライセンスファイルのみを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記企業専用ボリュームライセンスファイルを含む前記第１のＣＤ−ＲＯＭは第１のボリュームラベルに関連付けられることを特徴とする請求項１８に記載の方法。
【請求項２１】
前記ソフトウェアパッケージは第２のボリュームラベルに関連する第２のＣＤ−ＲＯＭを介して提供され、前記第１のボリュームラベルは前記第２のボリュームラベルとは異なることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記企業専用ボリュームライセンスファイルは前記ソフトウェアパッケージと同じＣＤ−ＲＯＭ上にあることを特徴とする請求項１に記載の方法。
【請求項２３】
前記企業専用ライセンスファイルはソフトウェアベンダではなく企業によって生成されることを特徴とする請求項１に記載の方法。
【請求項２４】
前記企業は専用ＶＬＫを前記ソフトウェアベンダから受け取ることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記企業は少なくとも１つのソフトウェアベンダ提供のハードウェア装置を使用して前記企業専用ライセンスファイルを生成することを特徴とする請求項２３に記載の方法。
【請求項２６】
前記ハードウェア装置は非対称キー生成およびデジタル署名操作を行うことができることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記企業専用ライセンスファイルのデータであるライセンスデータを検証できず、前記マシンがオンラインで接続されていない場合、前記システムは完全に機能することを特徴とする請求項１に記載の方法。
【請求項２８】
請求項１に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
【請求項２９】
請求項１に記載の方法を実施するためのコンピュータ実行可能命令を搬送することを特徴とする変調されたデータ信号。
【請求項３０】
ソフトウェアの著作権侵害を阻止するシステムであって、
企業専用ボリュームライセンスファイル内に組み込まれた企業専用ボリュームライセンスキーに関連するソフトウェアパッケージと、
前記企業専用ボリュームライセンスファイルを格納する第１のコンピューティング装置と、
前記ソフトウェアパッケージを実行する第２のコンピューティング装置と、
前記企業専用ボリュームライセンスファイルの認証に応答して前記第２のコンピューティング装置上で前記ソフトウェアパッケージをアクティブ化するアクティブ化ルーチンと
を備えることを特徴とするシステム。
【請求項３１】
前記第１のコンピューティング装置および前記第２のコンピューティング装置は同じコンピューティング装置であることを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記企業専用ボリュームライセンスファイルは、前記企業専用ボリュームライセンスキーがランダムに組み込まれるファイルから導出されたデータを備えることを特徴とする請求項３０に記載のシステム。
【請求項３３】
前記企業専用ボリュームライセンスファイルは、企業が提出したコンピューティング環境の特徴および／または前記企業の識別および製品に関する情報から導出されたデータを備えることを特徴とする請求項３０に記載のシステム。
【請求項３４】
前記企業専用ライセンスファイルは１．５ＭＢより大きいことを特徴とする請求項３３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの著作権侵害の阻止の分野に関し、より詳細にはボリュームライセンスキー（ＶＬＫ）を使用したソフトウェアのボリュームライセンス交付の分野に関する。
【背景技術】
【０００２】
ソフトウェアの著作権侵害は世界的な問題であり、それによってソフトウェアベンダは毎年莫大な額の損失を被っている。気軽なコピーとして知られている著作権侵害の１つの形は、エンドユーザのライセンス契約に違反して、ソフトウェアを複数のコンピュータで共有し、そこにインストールすることである。プロダクトアクティベーション（ｐｒｏｄｕｃｔ  ａｃｔｉｖａｔｉｏｎ）は、この種の著作権侵害を低減する１つの方法である。
【０００３】
プロダクトアクティベーションは、一般にインストール識別コードおよび／またはハードウェア識別子のソフトウェアベンダへの提出に依存している。ソフトウェアベンダは、それに応答してアクティブ化確認コード（ａｃｔｉｖａｔｉｏｎ  ｃｏｎｆｉｒｍａｔｉｏｎ  ｃｏｄｅ）を戻す。１つのタイプのプロダクトアクティベーションでは、箱入りのソフトウェアのパッケージごとに一意のプロダクトキーが提供される。一般に、ある猶予期間（ソフトウェアのインストール後、ソフトウェアがアクティブ化されずに動作している期間）の後、顧客は、ソフトウェアのそのコピーをアクティブ化するためにソフトウェアベンダに連絡する必要がある。これを行わないと、しばしばソフトウェアがアクティブ化されない、またはソフトウェアの機能が低下することになる。一般に、一意のプロダクトキーを使用して一意の製品識別コードが生成され、これがハードウェアに関係するハッシュ値と結び付き、ソフトウェアが動作しているマシンに固有のインストール識別コードが生成される。一般に、ソフトウェアの実行を可能にするアクティブ化確認は顧客に戻される。これに関して、アクティブ化確認をライセンスファイル、またはライセンスを表すバイナリとすることもできる。ライセンス交付を受けたソフトウェアは、ログインのたびに、本質的にそれがアクティブ化されたのと同じハードウェアで動作していることをチェックする。チェックが失敗だった場合、ソフトウェアが再度実行する前に再アクティブ化が必要である。
【０００４】
通常、法人顧客はボリュームライセンスを購入する。ドメインに何百、または何千ものマシンを抱える法人顧客がソフトウェアコピーのインストールごとにソフトウェアに連絡してマシン固有のアクティブ化コードを受信することは適していない。したがって一般に、ボリュームライセンスキーが検出されると、ソフトウェアはアクティブ化要件をバイパスするので、ボリュームライセンスの所有者は、ソフトウェアをアクティブ化するためにソフトウェアベンダに連絡する必要はない。したがって、同じボリュームライセンスキーを異なる多くのコンピュータ上で使用することができ、どのコンピュータでも、猶予期間の終了前または終了後にソフトウェアが動作するようアクティブ化を行う必要はない。ボリュームライセンスキーのこの便利な特徴によって、こうしたソフトウェアは著作権侵害の格好の標的となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ボリュームライセンスキーの著作権侵害をより難しくする方法があれば役立つことになる。
【課題を解決するための手段】
【０００６】
企業専用のＶＬＫ、ライセンスＩＤ、ネットワーク環境設定ハッシュ（ｎｅｔｗｏｒｋ  ｅｎｖｉｒｏｎｍｅｎｔ  ｂｉｎｄｉｎｇ  ｈａｓｈ）、およびポリシデータを含むソフトウェアベンダの署名付きのファイルが、ライセンス交付を受けたソフトウェアとともにボリュームライセンスの所有者に提供される。この企業専用のライセンスファイルは、インストールサーバなどの中央サーバに格納することも、ローカルマシンに格納することもできる。企業専用のライセンスファイルは、フロッピー（登録商標）ディスクに収まらないように、（たとえば１．４４ＭＢより）やや大きくすることができる。一実施形態では、無人のインストールスクリプトが企業専用のＶＬＫライセンスファイルを参照することができる、または他の何らかの方法（手動または自動ファイルコピー操作）によるインストールプロセス後、またはその間にＶＬＫライセンスファイルを配置することができる。スクリプトは、企業専用ライセンスファイルの場所を含む。ログイン後、企業専用ライセンスファイルが読み取られ、データが認証され、ソフトウェアがアクティブ化される。ソフトウェアシステムがネットワーク接続中にライセンスデータを検証できなかった場合、ソフトウェアは、猶予期間中は引き続き完全に機能し、その期間を過ぎると機能低下モードで機能する。あるいはユーザは、ソフトウェアベンダに署名付き拡張機能を要求することができる。マシンがネットワークから切断されている間、環境設定が検証できない場合、システムは、ネットワークに再結合されるまで引き続き切断時の特徴でのみ機能する。ソフトウェアがインストールされる各オペレーティングシステム（ＯＳ）のインストールに一意の場所に猶予期間フラグが書き込まれる。フラグの妥当性は、ソフトウェアを介して検査することができる。
【０００７】
企業は、ソフトウェアベンダから署名付きのＶＬＫライセンスファイルを取得できない場合、ソフトウェアベンダが提供するハードウェア装置、たとえばスマートカードなどを使用してライセンスファイルを生成することができる。ソフトウェアベンダにそのコンピューティング環境の特徴を提出する必要なくライセンスファイル自体を生成することによって、企業は、そのコンピューティング環境のセキュリティの特徴を危険にさらす必要がなくなる。
【発明を実施するための最良の形態】
【０００８】
例示のコンピューティング環境
図１および以下の説明は、本発明を実施できる適したコンピューティング環境の概略を説明するためのものである。しかし、本発明との使用に、ハンドヘルド、携帯用、および他のあらゆるコンピュータ装置が考えられることを理解されたい。以下に汎用コンピュータについて説明するが、これは一例であり、本発明は、ネットワークサーバの相互運用性および対話を有するシンクライアントのみを必要とする。したがって本発明は、たとえばクライアント装置が単にＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）に対するブラウザまたはインターフェースとして働くネットワーク式環境など、ほんのわずかの、または最小のクライアントリソースが含まれるネットワーク式のホストサービスの環境で実施することができる。
【０００９】
必須ではないが、本発明は、開発者が使用する場合、アプリケーションプログラミングインターフェース（ＡＰＩ）を介して実施する、かつ／またはネットワークブラウジングソフトウェア内に含めることができる。これについて、クライアントワークステーション、サーバ、他の装置など１つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明する。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、さまざまな実施形態で要望に応じて、プログラムモジュールの機能を組み合わせる、または分散させることができる。さらに、本発明を他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。本発明との使用に適した周知のコンピューティングシステム、環境、および／または構成には、それだけには限定されないが、パーソナルコンピュータ（ＰＣ）、自動預金支払機、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどがある。また本発明は、通信ネットワークまたは他のデータ送信媒体によってリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。
【００１０】
図１は、したがって本発明を実施できる適したコンピューティングシステム環境１００の例を示しているが、上記で説明したように、コンピューティングシステム環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境１００を、コンピューティング環境１００の例に示した構成要素のいずれか１つ、またはその組合せに関連する依存性または必要条件を有しているものと解釈すべきではない。
【００１１】
図１を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ１１０の形で含んでいる。コンピュータ１１０の構成要素は、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含むさまざまなシステム構成要素を処理ユニット１２０に結合するシステムバス１２１を含む。システムバス１２１は、さまざまなバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ）ローカルバス、および（メザニンバスとしても知られている）ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどがある。
【００１２】
コンピュータ１１０は、一般にさまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外し可能および取外し不可媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外し可能および取外し不可媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ１１０からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込み、これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定または変更された１つまたは複数のその特徴を有する信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された通信などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。また、上記のいずれの組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
【００１３】
システムメモリ１３０は、読取専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１３３は、たとえば起動中など、コンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含み、一般にＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０からすぐにアクセス可能な、かつ／または処理ユニット１２０が現在処理しているデータおよび／またはプログラムモジュールを含む。図１は、それだけには限定されないが一例として、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００１４】
コンピュータ１１０は、他の取外し可能／取外し不可、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図１は、取外し不可な不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ１４１、取外し可能な不揮発性磁気ディスク１５２から読み取り、あるいはそこに書き込む磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体など、取外し可能な不揮発性光ディスク１５６から読み取り、あるいはそこに書き込む光ディスクドライブ１５５を示している。例示の動作環境で使用できる他の取外し可能／取外し不可、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスクドライブ１４１は一般に、インターフェース１４０などの取外し不可メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００１５】
上記で説明し、図１に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。図１ではたとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、異なっていてもよいことに注意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、キーボード１６２や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置１６１などの入力装置を介してコマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバス１２１に結合されているユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェースおよびバス構造で接続してもよい。
【００１６】
モニタ１９１または他のタイプの表示装置もまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。また、ノースブリッジなどのグラフィックインターフェース１８２をシステムバス１２１に接続してもよい。ノースブリッジは、ＣＰＵまたはホスト処理ユニット１２０と通信するチップセットであり、高速グラフィックポート（ＡＧＰ）通信の責任を担う。１つまたは複数のグラフィック処理ユニット（ＧＰＵ）１８４は、グラフィックインターフェース１８２と通信することができる。これに関して、ＧＰＵ１８４は、一般にレジスタ記憶装置などのオンチップメモリ記憶装置を含み、ビデオメモリ１８６と通信する。しかしＧＰＵ１８４はコプロセッサの一例にすぎず、したがってさまざまなコプロセッシング装置をコンピュータ１１０に含めることができる。モニタ１９１または他のタイプの表示装置も、ビデオメモリ１８６と通信することができるビデオインターフェース１９０などのインターフェースによってシステムバス１２１に接続される。コンピュータは、モニタ１９１に加えて、出力周辺インターフェース１９５を介して接続できるスピーカ１９７やプリンタ１９６などの他の周辺出力装置を含むこともできる。
【００１７】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ１１０に関連して上述した多くまたはすべての要素を含むが、図１にはメモリ記憶装置１８１のみを示している。図１に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域エリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００１８】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０は一般に、モデム１７２、またはインターネットなどＷＡＮ１７３にわたって通信を確立する他の手段を含む。モデム１７２は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク式環境では、コンピュータ１１０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図１は、それだけには限定されないが一例として、リモートアプリケーションプログラム１８５をメモリ記憶装置１８１上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用できることは理解されよう。
【００１９】
コンピュータ１１０または他のクライアント装置をコンピュータネットワークの一部として配置できることを、当業者であれば理解できよう。これに関して、本発明は、任意の数のメモリまたは記憶ユニット、および任意の数の記憶ユニットまたはボリュームにわたって行われる任意の数のアプリケーションおよびプロセスを有する任意のコンピュータシステムに関係する。本発明は、リモートまたはローカルの記憶装置を有するネットワーク環境に配置されたサーバコンピュータおよびクライアントコンピュータを備える環境に適用することができる。また本発明は、プログラム可能言語機能、解釈、および実行機能を有するスタンドアロンコンピューティング装置にも適用することができる。
【００２０】
ソフトウェアの著作権侵害を阻止するためのシステムおよび方法
図２は、本発明の一実施形態によるソフトウェアの著作権侵害を阻止する環境設定強制分散システムを示すブロック図である。サーバ２０４またはベンダ２０２は、ＷＡＮ、ＬＡＮ（有線または無線）、イントラネット、インターネット、または他の適したネットワークなどのネットワークを介して１つまたは複数のクライアント２０６または２０８に接続することができる。図２では、破線は本発明の代替実装形態を示しており、サーバ２０４の役割は最初のライセンスファイルを発見することであり、本発明の実施には必要ではないので、サーバ２０４はオプションであることを示している。
【００２１】
ソフトウェアベンダは、それだけには限定されないがＣＤ−ＲＯＭなど何らかの媒体を介してボリュームライセンスされたソフトウェア２１２のコピーをボリュームライセンスの所有者に提供することができる。ソフトウェア２１２に、企業専用またはボリュームラインセンス所有者専用のＶＬＫ２２２を添付することができる。本発明の一実施形態では、ＶＬＫ２２２は、ライセンスファイル２２４と呼ばれる比較的大きいファイル内に組み込まれている。ライセンスファイル２２４は、たとえば会社の識別、および会社に対してライセンス交付された製品に基づいて構築することができ、たとえばドメインコントローラ（ＤＣ）やアクティブディレクトリ（ＡＤ）の名前のハッシュなどの環境設定情報を含むことができる。一実施形態では、ライセンスファイルは、比較的大きいシステムファイルである。選択された特定のファイルタイプは、それだけには限定されないが、画像または音声ファイルフォーマットを含む任意のファイルタイプでよい。ＶＬＫ２２２をデータのどこかに組み込むことができ、一実施形態では、これが次いで秘密キーで署名されてライセンスファイル２２４が生成される。本発明の実施形態では、フロッピー（登録商標）ディスクへのライセンスファイル２２４のコピーを防止するために、ライセンスファイル２２４のサイズは、たとえば２ＭＢなど、１．４４メガバイト（ＭＢ）より大きい。本発明の一実施形態では、ライセンスファイル２２４は、ライセンスファイル２２４のみを含み、関連するソフトウェア２１２を含むＣＤ−ＲＯＭのボリュームラベルと異なるボリュームラベルを有するＣＤ−ＲＯＭを介して提供される。
【００２２】
ライセンスの所有者のソフトウェア２１２がクライアント２０６、２０８などの間で分配される上記の環境で、ログイン時、クライアントマシン２０６、２０８などに存在するアクティブ化コードは、ライセンスファイル２２４の内容を読み取ってライセンスファイル２２４が不正に変更されていないことを検証する。本明細書で使用する場合、アクティブ化とは、ソフトウェアライセンスデータの妥当性を検査し、ネットワーク環境を設定し、かつ設定の妥当性をさらに検査することなく、ソフトウェアがある期間内に動作できるようにするためのプロセスを指す。これに関して、ソフトウェアインストールプロセス中、ＶＬＫ２２２および／またはライセンスファイル２２４を、たとえばサーバ２０４を介してクライアント２０８またはクライアント２０６に送信することができる。この検証プロセスは、ローカルマシンのライセンスをライセンスで定義されている設定またはポリシと照合することを含む。サーバ位置からライセンスファイルを受信することはオプションである。
【００２３】
ライセンスファイル２２４の保全性は、ファイルの署名をチェックすることによって確認することができる。ライセンスファイル２２４が不正に変更されていない場合、すなわち保全性が確認された場合、ソフトウェアは動作することができる。ライセンスファイル２２４が不正に変更されている場合、ソフトウェアは機能低下モードで動作する。
【００２４】
ソフトウェアの大規模な配置は一般に、管理者が自分自身で大量のマシンをセットアップするにはコストおよび時間がかかり過ぎる。さらに、管理者はしばしばエンドユーザに各人のマシンを自分自身でアクティブ化して欲しくない。したがってこうしたインストールは、通常無人またはリモートのプロセスを使用して自動化される。
【００２５】
ボリュームライセンスされたソフトウェアのアクティブ化は、セットアップ中、または後で行うことができる。無人のアンサーファイルは、通常のセットアッププロンプトをバイパスするソフトウェアセットアップルーチンとともに使用するテキストファイルである。無人ファイルはたとえば、対象のマシンのローカルエリアネットワーク（ＬＡＮ）またはインターネットを介してＶＬＫを自動的に入力し、プロキシ設定を構成し、エンドユーザの代わりにシステムを自動的にアクティブ化することができる。アクティブ化を、コマンドラインスクリプトを使用してセットアップ後に行うこともできる。
【００２６】
ボリュームライセンスされたソフトウェアをクライアント２０６、２０８などにインストールするとき、無人ファイルを使用してインストール画像を用意することができる。無人ファイルは、無人インストールを実行する特殊スクリプトである。ソフトウェア２１２は、スクリプトを実行することによってクライアントマシン２０６、２０８などにインストールされる。スクリプトによって、ライセンスファイル２２４の位置がサーバ２０４を含む既知の位置のリストに設定される。あるいは、ファイルがインストール画像の一部である場合、ライセンスファイル２２４をクライアントマシンにコピーすることができる。ログイン後、ライセンスファイル２２４が読み取られ、データが認証され、クライアントマシン２０６、２０８などがアクティブ化される。ライセンスファイル２２４で指定された環境の特徴をシステムの接続中に検証できない場合、システムは、猶予期間内は機能し続ける。猶予期間が過ぎると、システムは機能低下モードで機能する、またはエンドユーザは、ソフトウェアベンダ２０２に拡張機能を要求することができる。システムの切断中にライセンスデータを検証できない場合、ソフトウェアは、システムが再度ネットワークに参加するまで、切断時の特徴でのみ機能し続ける。
【００２７】
さまざまな実施形態では、猶予期間中であり、ネットワーク接続されているが、本発明のシステムが環境の妥当性を検証できない場合、システムは、リークがあるかどうかをチェックし、猶予期間の追加期間を許可することができる中央位置に連絡することができる。たとえば、ライセンスファイルのハッシュおよびＨＷＩＤを中央位置に送信することができ、サーバはハッシュをブラックリストと照合し、次いでクライアント位置に無期限の署名付きライセンスを送信することができる。
【００２８】
これに関して、一実施形態では、ＶＬＫファイルのチェックが失敗の場合、結果は不合格である。別の実施形態では、ＶＬＫファイルのチェックが失敗の場合、ＶＬＫライセンスファイルを構文解析し、次いで新しいライセンスファイルに関して、リスト表示されたさまざまなサーバの検索を行うことができる。
【００２９】
ブラックオプ（ｂｌａｃｋ−ｏｐ）のシナリオでは、企業は、ＶＬＫ環境に関してソフトウェアベンダからライセンスを取得することはできない。したがって、一実施形態では、ブラックオプの場合、企業は、ソフトウェアベンダによって発行された、ハードウェアによって署名されたそれ自体のライセンスファイルを生成することができる。
【００３０】
図３は、本発明の一実施形態によるソフトウェアの著作権侵害を阻止するための企業のオフラインシステム２５０を示すブロック図である。オフラインシステムでは、企業は、ＶＬＫ２２２およびソフトウェアベンダ２０２提供のセキュリティハードウェア装置２５２を受け取る。セキュリティハードウェア装置２５２は、署名作業を行ってライセンスファイル２２４と同じフォーマットのライセンスファイル２２５を生成することができる。ボリュームライセンスされたソフトウェアのクライアントマシン２０６および２０８へのインストール、アクティブ化プロセス、およびライセンスの妥当性検証手順は、ＶＬＫライセンスファイルが署名され、またソフトウェアベンダからのものである図２に示したものと同じであり、図２と同様、図３では、破線は、本発明の代替実装形態を示す。
【００３１】
図４は、環境設定強制システムにおいてソフトウェアの著作権侵害をより難しくする方法を示すフロー図である。ステップ４０２で、企業専用ＶＬＫおよびその関連のライセンスファイルを受信する。関連するボリュームライセンスされたソフトウェアのインストール画像を、１つまたは複数のクライアントマシンへのインストールのために用意することができる。ステップ４０４で、企業専用またはボリュームライセンス所有者専用のライセンスファイルを中央サーバに格納する、またはクライアントマシンに配置することができる。企業専用またはボリュームライセンス所有者専用のライセンスファイルは、サーバに関連するクライアントマシンに自由にアクセスできない。無人インストールを行う特殊スクリプトを作成してもよい。
【００３２】
ステップ４０６で、ソフトウェアをクライアントマシンにインストールする。ステップ４０８で、スクリプトは、システムの既知の場所のリストでライセンスファイルの位置を、クライアントマシンに配置されているものとして、またはライセンスファイルの位置をクライアントマシンに発行することにより、たとえばウィンドウズ（登録商標）管理インターフェース（ＷＭＩ）またはハードコード化されたレジストリキーなどによって設定する。ステップ４１０で、ログイン後、アクティブ化ルーチンは、ライセンスファイルの位置を検索する。ライセンスファイルがリモートサーバにある場合、スクリプトは、オプションで、たとえばインターネットプロトコル（ＩＰ）アドレスを比較することによってライセンスファイルの位置を検証することができる。ステップ４１２で、アクティブ化ルーチンは、ライセンスファイルからデータを読み取り、データが本物であることを検証し、ライセンスファイルで指定された環境の特徴を検証し、ソフトウェアをアクティブ化する。システムが接続されている間にライセンスファイルで指定されている環境の特徴を検証できなかった場合、システムは、猶予期間の間、引き続き機能する。猶予期間を過ぎると、システムは機能低下モードで機能する、またはエンドユーザがソフトウェアベンダに拡張機能を要求することができる。システムが切断している間にライセンスデータを検証できない場合、ソフトウェアは、システムが再度ネットワークに参加するまで、切断時の特徴でのみ機能し続ける。
【００３３】
上記の例は、単に説明の目的で提供されており、決して本発明を限定するものと解釈されるべきではないことに注意されたい。また、アプリケーションおよびサービスが本発明に従ってライセンス情報を取得できるようになる適切なＡＰＩ、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能ソフトウェアオブジェクトなどの本発明を実施するさまざまな方法があることに注意されたい。本発明は、本明細書に記載したＡＰＩ（または他のソフトウェアオブジェクト）の観点、およびＶＬＫライセンス交付技術との関連で通信するソフトウェアまたはハードウェアオブジェクトの観点から本発明の使用を企図している。したがって、本明細書に記載した本発明のさまざまな実装形態は、完全にハードウェアに、一部はハードウェア、一部はソフトウェアに、またソフトウェアに態様を有することができる。
【００３４】
上述したように、本発明の実施形態の例は、さまざまなコンピューティング装置およびネットワークアーキテクチャに関連して説明してきたが、基礎となる概念を、著作権侵害を阻止することが望ましい任意のコンピューティング装置またはシステムに適用することができる。したがって、本発明にしたがってデータを符号化／復号化する技術を、さまざまなアプリケーションおよび装置に適用することができる。たとえば、本発明のアルゴリズムおよびハードウェアの実装を、たとえば装置上の別個のオブジェクトとして、別のオブジェクトの一部として、再利用可能なコントロールとして、サーバからダウンロード可能なオブジェクトとして、装置またはオブジェクトとネットワークとの間の「仲介者」として、分散されたオブジェクトとして、ハードウェアとして、メモリ内で、または上記の任意の組合せで提供して、コンピューティング装置のオペレーティングシステムに適用することができる。例示のプログラミング言語、名前、および例を、本明細書ではさまざまな選択肢の代表として選択しているが、これらの言語、名前、および例は、限定するためのものではない。本発明を達成のためにコントロールの使用に言及する実施形態に関して、本発明を．ＮＥＴコントロールの提供に限定するものではなく、本発明は、本発明による著作権侵害を阻止する目的を達成するソフトウェア（および／またはハードウェア）のより広義のコンテキストで検討すべきである。本発明のさまざまな実施形態によって達成される同様の、類似の、同等の機能を達成するオブジェクトコードおよび用語を提供する非常に多くの方法があることを当業者であれば理解されよう。本発明を、オンラインオークションまたは入札サイトとの関連で実施することもできる。
【００３５】
上述したように、本明細書に記載したさまざまな技術は、ハードウェアまたはソフトウェアとの関連で、あるいは適切な場合はそれら双方の組合せで実施することができる。したがって、本発明の方法および装置、またはそのいくつかの側面または一部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または任意の他のマシン可読記憶媒体など、有形の媒体に組み込まれたプログラムコード（すなわち命令）の形をとることができ、コンピュータなどのマシンは、プログラムコードをロードし、実行すると、本発明を実施する装置になる。プログラム可能コンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサから読み取り可能な記憶媒体（揮発性および不揮発性のメモリおよび／または記憶要素）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。たとえばデータ処理ＡＰＩ、再利用可能なコントロールなどの使用によって本発明の著作権侵害を阻止する技術を使用できる１つまたは複数のプログラムを高水準の手続き型またはオブジェクト指向型プログラミング言語で実施してコンピュータシステムと通信させることが好ましい。しかしプログラムは、要望に応じてアセンブリ言語、またはマシン言語で実施することができる。いずれの場合も、言語は、コンパイル型言語またはインタプリタ型言語とし、ハードウェア実装と組み合わせることができる。
【００３６】
本発明の方法および装置は、電気配線またはケーブルなどの何らかの送信媒体を介して、光ファイバによって、または送信の他の任意の形を介して送信されるプログラムコードの形で組み込まれた通信を介して実施することもでき、たとえばＥＰＲＯＭ、ゲートアレイ、プログラム可能論理装置（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダ類、または上記の例示の実施形態に記載した信号処理機能を有する受信機などのマシンは、プログラムコードを受信し、ロードし、実行すると、本発明を実施する装置になる。汎用プロセッサ上で実施すると、プログラムコードはプロセッサと結び付き、本発明の機能を呼び出すよう働く固有の装置を提供する。さらに、本発明とともに使用する任意の記憶技術は、常にハードウェアとソフトウェアとの組合せとすることができる。
【００３７】
本発明を、さまざまな図の好ましい実施形態に関連して説明してきたが、他の類似の実施形態を使用できること、または変更および追加を上記の実施形態に加えて本発明から逸脱することなく本発明の同じ機能を実行できることを理解されたい。たとえば、本発明のネットワーク環境の例を、ピアツーピアネットワーク式環境などのネットワーク式環境の文脈で説明しているが、本発明はそれだけには限定されず、本出願に記載した方法を、有線であろうと無線であろうと、ゲームコンソール、ハンドヘルドコンピュータ、携帯用コンピュータなど任意のコンピューティング装置または環境に適用でき、通信ネットワークを介して接続され、ネットワークを介して対話する任意の数のこうしたコンピューティング装置に適用できることを当業者には理解されよう。さらに、特に無線ネットワーク式装置の数は急増し続けるので、ハンドヘルド装置オペレーティングシステムおよび他のアプリケーション専用のオペレーティングシステムを含めてさまざまなコンピュータプラットフォームが考えられることを強調しておくべきである。さらに本発明は、複数の処理チップまたは装置で、またはそれらにわたって実施することができ、記憶もまた複数の装置にわたって行うことができる。したがって本発明は、任意の単一の実施形態に限定されるべきではなく、添付の特許請求の範囲の範囲内で解釈すべきである。
【図面の簡単な説明】
【００３８】
【図１】本発明の態様を実装できる例示のコンピューティング環境を示す図である。
【図２】本発明の一実施形態によるソフトウェアの著作権侵害を阻止するための環境設定強制システム（ｅｎｖｉｒｏｎｍｅｎｔ−ｂｉｎｄｉｎｇ−ｅｎｆｏｒｃｅｄ  ｓｙｓｔｅｍ）の例を示すブロック図である。
【図３】本発明の一実施形態によるソフトウェアの著作権侵害を阻止するための例示のオフラインシステムを示すブロック図である。
【図４】本発明の一実施形態による環境設定強制システムでのソフトウェアの著作権侵害を阻止するための例示の方法を示すフロー図である。
【符号の説明】
【００３９】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  読取専用メモリ
１３２  ランダムアクセスメモリ
１３３  基本入出力システム
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  インターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  インターフェース
１５１  磁気ディスクドライブ
１５２  取外し可能、不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  取外し可能、不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  ポインティング装置
１６２  キーボード
１７０  ネットワークインターフェースまたはアダプタ
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域エリアネットワーク
１８０  リモートコンピュータ
１８１  メモリ装置
１８２  グラフィックインターフェース
１８４  グラフィック処理ユニット
１８５  リモートアプリケーションプログラム
１８６  ビデオメモリ
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２０２  ベンダ
２０４  サーバ
２０５  オフラインシステム
２０６  クライアント
２０８  クライアント
２１２  ボリュームライセンスソフトウェア
２２２  ＶＬＫ
２２４  ライセンスファイル
２５２  セキュリティハードウェア装置
【図１】
2004234668.tif 000003
【図２】
2004234668.tif 000004
【図３】
2004234668.tif 000005
【図４】
2004234668.tif 000006