(57)【特許請求の範囲】
【請求項１】
複数のユーザ端末およびディストリビュータ端末がネットワークを介して接続されているシステムにおいて、ソフトウェアプログラムのオーソライズされていない使用を防止する方法において、
前記ディストリビュータ端末が、第１の時間インターバルにおいて生成するファイルが、前記第１の時間インターバルに関連づけられた第１の暗号キーを使用して少なくとも部分的に暗号化されるように構成されたソフトウェアプログラムを、前記ネットワークを介して、前記ユーザ端末に提供するステップと、
前記ディストリビュータ端末が、前記ユーザ端末に提供されたソフトウェアプログラムからの更新要求と該ソフトウェアプログラムの識別子を受信するステップと、
前記ディストリビュータ端末が、前記ネットワークを介して、前記ディストリビュータ端末内に登録されているオーソライズされているソフトウェアプログラムの識別子と前記受信した識別子とを比較し、その有効性を判断するステップと、
（i）前記有効性が有効の場合、前記ディストリビュータ端末が、前記第１の時間インターバルの後に続く第２の時間インターバルにおいて、前記第１の暗号キーを置き換えるために、前記第１の暗号キーとは異なる前記第２の時間インターバルに関連づけられた第２の暗号キーを提供するステップと、
（ii）前記有効性が無効の場合、前記ディストリビュータ端末が、前記第２の暗号キーを提供しないでおくステップとを含み、
前記第２の暗号キーで暗号化されたファイルは、該第２の暗号キーに書き換え更新されたソフトウェアプログラムによってのみ読み出し可能である、ことを特徴とする方法。
【請求項２】
前記第１の暗号キーは、公知の一方向関数を使用して前記第２の暗号キーの関数として演算可能であることを特徴とする請求項１記載の方法。
【請求項３】
所定の時間インターバルにおいて前記ソフトウェアプログラムにより生成された各ファイルは、前記時間インターバルの識別子でラベル付けされていることを特徴とする請求項１記載の方法。
【請求項４】
複数のユーザ端末、ディストリビュータ端末及びネットワーク含み、前記ユーザ端末及びディストリビュータ端末が前記ネットワークを介して接続される、ソフトウェアプログラムのオーソライズされていない使用を防止するシステムであって、
前記ディストリビュータ端末は、第１の時間インターバルにおいて生成するファイルが、前記第１の時間インターバルに関連づけられた第１の暗号キーを使用して少なくとも部分的に暗号化されるように構成されたソフトウェアプログラムを、前記ネットワークを介して、前記ユーザ端末に提供し、
前記ディストリビュータ端末は、前記ユーザ端末に提供されたソフトウェアプログラムからの更新要求と該ソフトウェアプログラムの識別子を受信し、
前記ディストリビュータ端末は、前記ネットワークを介して、前記ディストリビュータ端末内に登録されたオーソライズされているユーザ端末の識別子と前記受信した識別子とを比較し、その有効性を判断し、
（i）前記有効性が有効の場合、前記ディストリビュータ端末は、前記第１の時間インターバルの後に続く第２の時間インターバルにおいて、前記第１の暗号キーを置き換えるために、前記第１の暗号キーとは異なる前記第２の時間インターバルに関連づけられた第２の暗号キーを提供し、
（ii）前記有効性が無効の場合、前記ディストリビュータ端末は、前記第２の暗号キーを提供しないでおき、
前記第２の暗号キーで暗号化されたファイルは、前記第２の暗号キーに書き換え更新されたソフトウェアプログラムによってのみ読み出し可能であることを特徴とするシステム。
【請求項５】
前記有効性が無効の場合（ii）、前記ディストリビュータ端末が、前記更新要求を無視するステップであることを特徴とする請求項１記載の方法。
【請求項６】
前記有効性が無効の場合（ii）、前記ディストリビュータ端末が、前記第１の暗号キーを置き換えるためにランダムな暗号キーを提供するステップであって、前記ランダムな暗号キーは、前記第１の暗号キーとは異なり、前記第２の時間インターバルとも関連付けられていない、ステップであることを特徴とする請求項１記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータソフトウェアに係り、特に、コンピュータソフトウェアのオーソライズされていない流布および使用を防止する技法に関する。
【０００２】
【従来の技術】
ソフトウェア著作権侵害が大きな商業上の問題であることがよく知られている。ビジネスソフトウェアアライアンス、www.bsa.org による最近の研究によれば、全てのソフトウェアプログラムの４０％が著作権侵害されて、著作権侵害のために年間１１０億ドルを失っている。ソフトウェア著作権侵害は、主に、犯罪が低コストであり、かつデータのコピーを防止することが本来的に不可能であることにより、伝統的な法律的および技術的方法が防止することを大きく失敗してきた犯罪である。
【０００３】
著作権侵害に対する保護のための１つの従来のアプローチは、ユーザに彼らのソフトウェアプログラムを登録することを要求することである。このアプローチの一例は、Sheriff Software Development Kit, www.sheriff-software.comにより具現化されている。しかし、このアプローチは、著作権侵害者により操作されていないソフトウェアのみを保護し、したがって、職業的著作権侵害者よりもむしろ友人間でコピーすることを防止することに向けられている。
【０００４】
著作権侵害に対して保護するために、ユーザとディストリビュータとの間で他のタイプの相互作用を使用することも知られている。これらのタイプの相互作用を使用する多数の異なる商品が存在する。１つのそのような商品は、Microsoft Clip Art Gallery Live, cgl.microsoft.com/clipgalleryliveであり、これは、登録されたユーザのみがクリップアウトの大きな宝庫（repository）にアクセスすることを許容する。そして、ディストリビュータは、各ユーザのアクセス頻度が合理的なレベルに留まっていることを確認することができ、これにより、アクセッシング(accessing)ソフトウェアの大規模なクローニングを防止する。
【０００５】
伝統的に、上述した著作権侵害の問題と無関係に、ユーザは、一般に、既知のバグを取り除くため、セキュリティパッチ(security patches)を追加するため、新しい機能を追加するため、かつソフトウェアを他のプログラムとコンパチブルに保つために、彼らのソフトウェアを更新させることを望む。ソフトウェア更新の数多くの技法がこの分野において知られている。例えば、１つの商品、McAfee Secure Cast/Active Shield, www.McAfee.comは、最初に、ユーザに、無料のウイルス検出プログラムおよび限定された数の無料の更新を提供するが、後続の更新は、支払いのみにより利用可能とする。多くの場合において、ソフトウェアに対する更新は、より頻繁な更新の必要性があまりないので、そして、従来の更新技法を使用するより頻繁な更新のコストおよび不便さはかなり大きいので、大まかに手作業で行われる。
【０００６】
【発明が解決しようとする課題】
上述の更新技法は、一般に、ソフトウェア著作権侵害を防止するように特に設計された方法で適用されていなかった。また、前述したように、ソフトウェア著作権侵害を防止するための現存する技法は、適切でない。したがって、この技術分野において、ソフトウェア著作権侵害を防止するためのより効率的かつ有効なアプローチに対する必要性がある。
【０００７】
【課題を解決するための手段】
本発明は、ソフトウェア著作権侵害を防止する方法で、合法的なユーザおよび非合法的なユーザの両方に対してソフトウェアの頻繁な更新を強制するソフトウェアエージング方法および装置を提供することにより、従来技術の上述した問題の１つまたは２つ以上を解決する。
【０００８】
本発明によれば、ソフトウェアプログラムは、そのプログラムにより生成される１個以上のファイルが、そのファイルが生成される現在の時間インターバルに関連づけられた暗号キーを使用して、少なくとも部分的に暗号化されるように構成される。暗号化キーは、所定のインターバルにおいて暗号化するために使用された暗号キーが、そのインターバルの間に暗号化されたファイルを解読するためにも必要とされるように、暗号化および解読の両方の動作に対して使用されるシンメトリックキー(symmetric key)であり得る。
【０００９】
ソフトウェアプログラムの周期的更新は、ソフトウェアプログラムの合法的ユーザに提供され、更新の各々は、後続の時間インターバルに関連づけられた異なる暗号キーを含む。時間インターバルのうちの特定の１つに関連づけられた暗号キーは、周期的更新の対応するバージョンを受信したソフトウェアプログラムの一組の合法的コピーの各々に共通であり得る。周期的更新は、プログラム機能のいかなる変更も提供する必要はないが、その代わりに、プログラムにより生成されるファイルを暗号化するために使用された暗号キーの変更により、プログラムの著作権侵害を防止するように設計される。
【００１０】
本発明の別の側面によれば、所定の時間インターバルにおいてソフトウェアプログラムにより生成された各ファイルは、時間インターバルのプレインテキスト（plaintext）識別子でラベル付けされ得る。時間インターバル識別子は、そのインターバルに対するファイルの暗号化された部分を解読するために使用され得る特定の暗号キーを独特に同定する。
【００１１】
本発明の更なる側面によれば、現在の時間インターバルに関連づけられた暗号キーは、公知の一方向関数（publicly-known one-way function）を使用して、後続の時間インターバルに関連づけられた暗号キーの関数として演算可能であり得る。これは、古い暗号キーを記憶する必要性をなくし、また、所定の更新の後に新しい暗号キーを使用して以前に暗号化されたファイルをリフレッシュする必要性をなくする。
【００１２】
本発明の更なる別の側面によれば、対応する暗号キーを使用して現在の時刻または時間インターバルｔに対してソフトウェアプログラムにより生成されたファイルは、少なくともインターバルｔ−δに対応する更新を受けたプログラムのコピーのみによって読み出し可能である。ここで、δは、現在のバージョンと以前のバージョンとの間のコンパチビリティが望まれる時間インターバルの指定された数である。
【００１３】
本発明は、前述した従来の技法に対する数多くの利点を提供する。例えば、本発明に従って１つの時間インターバルから別の時間インターバルへの暗号キーの変更は、合法的ユーザおよび非合法的ユーザの両方に普通でないほど頻繁な更新をリクエストすることを故意に求めることにより、ソフトウェアプログラムのオーソライズされていない使用を防止し、これによりソフトウェア著作権侵害により生じる追跡および起訴のリスクを大幅に増大させる。また、周期的更新は、ソフトウェアプログラムの合法的ユーザに対して実質的にトランスペアレントな方法で具現化され得る。
【００１４】
【発明の実施の形態】
本発明は、本発明のソフトウェアエージング技法が、インターネットまたは他のタイプの通信ネットワーク上で具現化される例示的なシステムについて以下に説明される。しかし、本発明は、ソフトウェア著作権侵害を防止することが望ましいいかなるタイプの電子システムまたはデバイスアプリケーションにもより広く適用可能であることが理解されなければならない。例えば、インターネットまたは他のコンピュータネットワーク上の通信と共に使用するためによく適しているが、本発明は、スマートカードまたは他の電子デバイスに基づくアプリケーションを含む膨大な他のソフトウェア関連アプリケーションにも適用され得る。
【００１５】
図１は、ソフトウェアエージング技法が本発明に従って具現化され得る例示的なシステム１０を示す。システム１０は、Ｎ個の合法的ユーザ１２−１，１２−２，…１２−Ｎのセット１２、およびＭ個の非合法的ユーザ１４−１，１４−２，…１４−Ｍのセット１４を含む。ユーザ１２−ｉ，ｉ＝１，…Ｎおよび１４−ｊ，ｊ＝１，…Ｍの各々は、ネットワーク１６に結合されている。ネットワーク１６には、ソフトウェアディストリビュータ１８およびソフトウェア著作権侵害者１９も結合されている。
【００１６】
ネットワーク１６は、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、インターネットのようなグローバルデータ通信ネットワーク、プライベート「イントラネット」ネットワークまたはいずれか他の適切なデータ通信媒体、並びにそのようなネットワークまたは他の通信媒体の一部または組合せであり得る。例えば、エレメント１２および１８は、１つのネットワークにより接続され、エレメント１４および１９は、別のネットワークにより接続され得る。膨大な他の相互接続構成も、使用され得る。
【００１７】
図２は、システム１０のエレメント１２−ｉ，１４−ｊ，１８または１９のうちの所定の１つの可能性のある具現化を示す。この例示的な具現化において、システム１０のエレメントは、プロセッサ２０、電子メモリ２２、ディスクベースドメモリ２４、およびネットワークインターフェース２６を含み、これら全ては、バス２７を介して通信する。システム１０のエレメント１２−ｉ，１４−ｊ，１８または１９のうちの１個以上は、パーソナルコンピュータ、メインフレームコンピュータ、コンピュータワークステーション、カードリーダとの組合せのスマートカード、またはいずれか他のタイプのデジタルデータプロセッサ並びにその様々な部分または組合せとして具現化され得る。
【００１８】
プロセッサ２０は、マイクロプロセッサ、中央処理装置、特定用途向け集積回路（ＡＳＩＣ）または他の適切な処理回路であり得る。図２に示された構成は、図示の明瞭化のために単純化されており、図中に示されていない更なるエレメントを含み得る。また、処理エレメントの他の構成も、システム１０のエレメントのうちの１個以上を具現化するために使用され得る。
【００１９】
システム１０のエレメント１２−ｉ，１４−ｊ，１８および１９は、以下に詳細に説明される方法でソフトウェアエージングを提供するために、本発明によるソフトウェアプログラムを実行する。本発明は、エレメントメモリの１個以上に記憶された１個以上のソフトウェアプログラムにおいて、またはシステム１０のエレメントに関連づけられた機械読み出し可能媒体に記憶された１個以上のプログラムにおいて、全体的または部分的に具現化され得る。
【００２０】
本発明の１つの例示的実施形態は、それを経済的に実行可能でないようにすることによりソフトウェア著作権侵害を防止するソフトウェアエージング技法を提供する。例示的な実施形態において、扱われる主な驚異は、著作権侵害者１９が、利益を得るために、ソフトウェアプログラムのコピーを入手し、もしかすると改ざんし、非合法的ユーザ１４に頒布することである。例示的な実施形態は、数人の相互に信頼しかつ協調するユーザが、ソフトウェアプログラムを一緒に購入し、または著作権侵害が、利益のためではなく悪名または破壊的目的のためになされる状況に、本発明の１つ以上の側面がそのような状況において適用可能であるが、取り扱わない。
【００２１】
例示的な実施形態において、ディストリビュータ１８は、ソフトウェアを販売し、登録されたユーザのリストを保持し、合法的ユーザ１２に対するソフトウェア更新のためのサービスを維持することが仮定されている。また、ディストリビュータの目標は、その利益を最大化し、そのソフトウェアの著作権侵害されたバージョンが使用されることを防止することであることが仮定されている。ここでなされるこれらのおよび全ての他の仮定は、例示目的のみのためであり、本発明の範囲をいかなる方法によっても限定するものと解釈すべきでない。
【００２２】
合法的ユーザ１２は、ディストリビュータ１８または関連する者からソフトウェアを購入し、ネットワーク１６を介してディストリビュータから更新を得る。これらのユーザは、それらのソフトウェアが、機能の意味においてディストリビュータにより提供される理想的な構成に可能な限り近いことを望む。以下に詳細に説明するように、本発明の著作権侵害保護の利点は、合法的ユーザに対して実質的にトランスペアレントである方法で、即ち、処理遅れおよびファイルサイズの増大のようなネガティブな影響を最小化する方法で具現化され得ることである。
【００２３】
この例示的な実施形態における著作権侵害者１９は、ディストリビュータ１８により販売されたソフトウェアを入手し、ソフトウェアのもしかすると改ざんされたコピーを有償で非合法的ユーザ１４に再頒布することが仮定されている。また、著作権侵害者は、ソフトウェアのソースコードにアクセスすることができ、頒布者により具現化されたいずれかの保護メカニズムを除去するために、ソフトウェアを改ざんしかつ再コンパイルすることができることが仮定されている。著作権侵害者の目標は、利益を最大化しかつ発覚および訴追のリスクを最小化することである。
【００２４】
非合法的ユーザ１４は、著作権侵害者１９からソフトウェアを入手する。合法的ユーザと同様に、非合法的ユーザは、それらのソフトウェアが、提供される機能の意味において、理想的なものに可能な限り近くなることを望む。また、非合法的ユーザは、「著作権侵害ディスカウント」でソフトウェアを購入することにより、それらの利益を最大化し、ソフトウェア故障のリスクを最小化することを望む。この例示的な実施形態において、非合法的ユーザは、一般に、互いに共同せず、ソフトウェアを入手するために著作権侵害者とのみ関わり合うことが仮定されている。
【００２５】
本発明によれば、非合法的ユーザのソフトウェアが更新されない場合、これらのユーザは、合法的ユーザのソフトウェアと相互に動作可能なソフトウェアを有することにならない。非合法的ユーザが、互いにファイルを交換することが依然として可能であるかも知れない。しかし、本発明のソフトウェアエージングプロセスは、非合法的ユーザが、合法的ユーザとの完全な相互作用可能性を得るために、更新を必要とすることになるように構成される。
【００２６】
合法的なソフトウェアプログラムが、そのライセンスが許容する者より多くのマシン上で実行される場合、リミットに到達する前に更新をリクエストするユーザのみが合法的と考えられ、残りのユーザは非合法的と考えられることに留意すべきである。この例示的な実施形態は、マシンがそれらの更新を調整しない限りそのような状況において著作権侵害保護を提供する。
【００２７】
本発明の例示的な実施形態は、著作権侵害者１９に、非合法的ユーザ１４への著作権侵害されたソフトウェアの定期的な更新を提供することに責任があることを強制するように設計される。これは、著作権侵害者と非合法的ユーザが接触を保つことを要求する。特に、著作権侵害者は、ネットワーク１６上の電子的手段などを介して、非合法的ユーザに接触することができなければならずまたは非合法的ユーザにより接触されなければならない。
【００２８】
継続する接触の要求は、著作権侵害者に対する法的リスクを増大させる。例えば、これは、インフィルトレータ（infiltrators）が、著作権侵害者を発見し、追跡するアクションをとることを可能にする。この驚異は、非合法的ユーザに対する著作権侵害されたソフトウェアのリスクを増大させる。これは、非合法的ユーザは、追跡を防止するために消えるかまたは追跡され廃業させられる可能性のある著作権侵害者からの更新に依存することを強制されることになるからである。
【００２９】
上記した著作権侵害者と非合法的ユーザとの間の強制された関わり合いは、ディストリビュータ１８に登録された合法的ユーザ１２へのみソフトウェア更新を供給させることにより、この例示的実施形態において達成され得る。非合法的ユーザ１４のうちの一人が更新のためにディストリビュータに接触するとき、そのユーザは、登録番号を提供することを求められる。番号が無効である場合、ディストリビュータは、最新の更新ではなくランダムな更新を供給することができ、これにより、著作権侵害されたソフトウェアの動作を効率的に悪くさせる。ディストリビュータは、所定のユーザに対してソフトウェアを特定の期間内に既に更新した場合、これは、更新の追加的なコピーが同じユーザによりリクエストされたことを示すことになり、ランダムな更新を供給することができる。
【００３０】
強制される関わり合いの観点において、著作権侵害者は、自動的に著作権侵害者に接触するかまたは著作権侵害者からの更新を待つように、更新をリクエストする著作権侵害されたソフトウェアの一部を改造しなければならないことになる。そのような改造は、販売された著作権侵害されたソフトウェアの全てにおいてなされる必要があり、著作権侵害者のネットワークアドレスを含むようにソフトウェアの修正によりまたは他の技法により具現化され得る。このタイプの改造がなされない場合、非合法的ユーザは、更新を拒絶されることになり、彼らに対する著作権侵害されたソフトウェアの価値を低くすることになり、したがって、著作権侵害者に対する可能性のある利益を低くすることになる。
【００３１】
この例示的実施形態は、同じプログラムの他のインスタンス（instances）により解釈される必要があり得るファイル、メッセージまたは他の出力を生成するソフトウェアプログラムと共に使用するために特によく適している。そのような全ての出力は、一般に、ここで、「ファイル」と呼ばれる。このタイプのプログラムの例は、ワードプロセッサ、スプレッドシートパッケージ、ウェブブラウザおよびネットワーク化されたゲームを含む。しかし、本発明の技法は、たとえば、対応するオペレーティングシステムが、それ自体およびそれが更新されるために実行する全てのプログラムの両方を必要とするように、構成される階層的アプローチの使用により、いかなるタイプのプログラムにも、簡単に拡張され得る。
【００３２】
コンパチビリティの問題は、明示的ファイルだけでなく、切り取りおよび張り付け動作のために使用されるバッファのような黙示的ファイルに対しても生じることに留意すべきである。オペレーディングシステムがそれ自体更新されることを必要とするのではなく、それが実行するプログラムが更新されることを単に必要とすることで十分に見えるかも知れないが、これは、それが実行するプログラムが更新されることを強制するオペレーティングシステムの一部をディスエーブルすることにより、著作権侵害者が保護を出し抜くことを可能にすることになる。オペレーティングシステムが更新されることを要求することは、著作権侵害者が非合法的なユーザにオペレーティングシステム更新を供給しなければならないことを確かにする。
【００３３】
本発明の例示的な実施形態において、多数のコンフリクト解決問題が生じる。第１のそのような問題は、潜在的な同期化問題に関する。そのような問題は、例えば、合法的なユーザとディストリビュータとの間の接続が、更新の転送の間に中断される場合に生じ得る。現行のシステムにおいてそのような同期化問題に対する典型的なアプローチは、同じステップのシーケンスを再実行することである。しかし、そのようなアプローチは、著作権侵害者が、更新を受信させた後に自動的に「ハングアップ」するソフトウェアをクローンすることを可能にし、これにより、別のクローンが、最後のステップの直前に接続が中断されたことをクレームすることを可能にするので、本発明の例示的な実施形態において不適切である。この問題が防止されるが、合法的なユーザの更新が拒絶されないことを確かにするより洗練された再実行が使用されなければならい。
【００３４】
別のコンフリクト解決問題は、後悔する非合法なユーザに関する。所定のアプリケーションにおいて、非合法なユーザが、例えば、指定された料金を支払うことにより、合法的になることを可能にすることが望ましい。そのようなアレンジメントにおいて、著作権侵害者は、ディストリビュータにより、限定された期間働くサンプルを手渡す宣伝者（advertiser）のように使用される。これは、送られるより少ない情報を必要とし得るが、オンラインプロトコルを使用してソフトウェアを販売することに機能的に対応する。
【００３５】
この例示的な実施形態において、著作権侵害保護の成功は、要求される更新の頻度に依存する。例えば、１つの可能な具現化は、毎週または２週毎の更新が自動的になされることを必要とし得る。これは、合法的なユーザにこれらの更新を実行することを強制することは十分でない。したがって、この例示的な実施形態は、合法的なユーザおよび非合法的なユーザの両方が更新を行うことを強制されるように構成される。以下に詳細に説明するように、これは、更新が適切な動作のために必要とされるようにソフトウェアを構成することによりなされ得る。
【００３６】
図３について以下に説明する例示的な更新プロセスにおいて、ソフトウェアにより出力されるファイルは、そのファイルが読み出しまたは書き込みされるときにどのように解釈されるべきかに影響を与えるバージョンに依存する番号を含む。非合法なユーザのソフトウェアが合法的ユーザのソフトウェアとコンパチブルになるために、またはより具体的に、非合法なユーザのソフトウェアが合法的ユーザから受信したファイルを解釈することができるようにするために、非合法なソフトウェアは、そのファイルを生成した合法的ソフトウェアとほぼアップツーデートでなければならない。
【００３７】
これを強制するために、ソフトウェアは、例えば、ソフトウェアのバージョン番号と共に、そのソフトウェアと同じぐらいの古さまたはそれより古いファイルの解釈を許容する短い秘密情報を含むように構成され得る。ここで、ソフトウェアの年齢は、バージョン番号との関連で測定される。以下に詳細に説明するように、この例示的な実施形態は、新しいソフトウェアバージョンが、古いファイルおよび新しいファイルの両方を解釈することを可能にする一方で、この目的を達成する。
【００３８】
交信中に具現化された機能的変化は、著作権侵害者がこれらの更新を直接的に実行しかつ非合法なユーザが更新をリクエストする必要を防止することができるので、予測可能なものであってはならない。同様に、絶縁されたプログラム、即ち非合法なユーザのプログラムが、例えば、ソフトウェアの適切に更新されたピースからのファイルを観察することにより、機能的更新を決定することを実行不可能でなければならない。
【００３９】
図３は、本発明の例示的な実施形態のソフトウェア更新プロセスを示すフローチャートである。この更新プロセスは、ディストリビュータがそれが販売するソフトウェアの各ピースに識別子を割り当てることにより、ステップ３０において初期化される。これは、ソフトウェアそれ自体に識別子を含めることにより、またはインストール時にユーザが識別子をそれからコピーする紙のドキュメントを使用することにより、またはこの技術分野においてよく知られている他の技法を使用することによりなされ得る。識別子は、例えば、通常の技法を使用してそのようなエレメントの適切な散在空間（sparse space）から選択された非反復性のランダムエレメントであり得る。
【００４０】
ステップ３２は、所定のインターバルにおいて、合法的なユーザが、プログラムのリスト中で、識別子をディストリビュータに送ることにより、そのソフトウェアの更新をイニシエートすることを示す。ディストリビュータは、ステップ３４において、これらが有効な識別子であることを確認し、現在の更新時間インターバルの間に更新のためにそれらが使用されなかったことを確認する。現在のインターバルに対して以前の更新リクエストがない有効な識別子は、合法的なユーザを示す。
【００４１】
ディストリビュータが、特定のユーザサイトに複数のライセンスを与える場合、更新は、強制された方法で実行されることができ、またはディストリビュータは、ライセンスの数に対応する数の更新を許容することができる。ステップ３６において、有効な更新リクエストに対応すると決定されたソフトウェアの各ピースに対して、ディストリビュータが、正しい更新を送出する。そして、更新は、ステップ３８において、ユーザソフトウェアに適用される。
【００４２】
更新リクエストは、例えば、登録された識別子がない場合、または最大数の更新が、その時間インターバルにおいて既に実行された場合に無効であると決定され得る。無効な識別子は、非合法なユーザを示す。無効な更新リクエストの場合において、ディストリビュータは、単にリクエストを拒絶することができる。別の例として、ディストリビュータは、ランダムな更新を送ることにより、無効な更新要求に応答することができる。正しい更新とランダムな更新との間の区別は、図４に示されたソフトウェアエージングプロセスとの関連で以下に詳細に説明する。
【００４３】
一般に、正しい更新は、ユーザソフトウェアに適用されると、このソフトウェアを、ソフトウェアの他の更新されたコピーと共に機能的に通用させ、一方により生成されたファイルが、他方により読み出すことができ、アウトオブデート（out-of-date）コピーと部分的に後ろ向きにコンパチブルであるようにし、そのソフトウェアがアウトオブデートソフトウェアにより生成されたファイルを読み出すことはできるが、アウトオブデートソフトウェアが、それが生成するファイルを読み出すことができないようにする。ランダム更新は、ユーザソフトウェアに適用されると、現在のものであるかまたはアウトオブデートのものであるかどうかに関わらず、プログラムの他のコピーにより生成されたいかなるファイルの読み出しをすることにもそのソフトウェアが有効でなくなるようにする。
【００４４】
図１および３との関連で説明された例示的な実施形態は、単一のディストリビュータのみに関する。しかし、ここで説明された技法は、いずれの数の複数のディストリビュータにも簡単な方法で拡張され得る。複数のディストリビュータは、ソフトウェア更新プロセスにおいて、単独に動作することができまたは互いに共同することができる。
【００４５】
図３において参照された更新は、ディストリビュータから、合法的なユーザへ、通常の方法で、ネットワーク１６上に確立された通信チャネルを介して送ることができる。チャネルが公衆通信チャネルであるかまたは１つ以上の潜在的に不安全なリンクを含む場合、暗号化が更新に適用され得る。例えば、ユーザ識別子が同定目的のために共有シークレットキーとして動作し、暗号化のために使用される一部と共に増大される対称的（symmetric）暗号化技法が使用され得る。
【００４６】
ディストリビュータからユーザへの送信が更新の間に中断される場合、ユーザは一般に、別の更新をリクエストしなければならない。ディストリビュータが、そのような反復されるリクエストが、ソフトウェアの非合法コピーによりなされる別個のリクエストと間違えないことを確かにするために、数多くの技法が使用され得る。
【００４７】
１つのそのような技法は、失敗カウンターの使用を含む。例えば、各ユーザは、ローカルカウンター中に、失敗した更新の試みのその数を記録することができ、この数は、所定の更新リクエストと共に送信され得る。これは、ディストリビュータが、合法的ユーザからの反復された送信と非合法ユーザによる独立の送信とを区別することを可能にする。これは、前述したように、この例示的な実施形態に対して、非合法なユーザは互いに共同しないことが仮定されているからである。
【００４８】
別の可能性のある技法は、ディストリビュータが、自動的に特定の小さい数の反復される更新リクエストを許容することである。例えば、最大で５回のそのような反復されるリクエストが許可され得る。これは、更新の試みが５回より多く失敗する可能性がないので、合法的ユーザに対する中断された送信に関連する問題を除去する一方で、大規模な著作権侵害を防止することになる。
【００４９】
さらに別の可能性のある技法は、ディストリビュータが、ユーザに、失敗した更新の試みの後に、交信状態を「ロールバック（roll back)」するために、トールフリー番号に電話をかけることを要求することである。この場合において、ディストリビュータは、以前の交信状態にロールバックすることを許容する前に、その呼びに対するオリジネーティング番号または他のユーザ情報を確認することができる。
【００５０】
上記の技法の様々な組合せ並びに明示的に説明されていない他の技法も使用され得る。
【００５１】
図３の更新プロセスは、以下の方法で、著作権侵害追跡を容易にすることができる。非合法なユーザによりイニシエートされているものとして記録されている各更新リクエストに対して、ディストリビュータは、そのユーザにより使用されるコピーに関連づけられた非合法なコピーのクラスタを決定することを試みることができる。クラスタは、ユーザソフトウェアの識別子並びに他の利用可能な情報によりインデックス付けされ得る。同様な技法が、他の手段により回復される著作権侵害ソフトウェアに適用され得る。ディストリビュータは、これにより、著作権侵害問題の範囲およびソースをよりよく決定することができる。
【００５２】
図４は、本発明の例示的な実施形態のソフトウェアエージングプロセスを示すフローチャートである。前述したように、本発明のソフトウェアエージングは、著作権侵害が防止されるように、全てのユーザが頻繁な自動的更新を実行することを強制するように設計される。
【００５３】
ステップ４０において、ユーザは、現在の時間インターバルｔから後続の時間インターバルｔ＋１まで、ユーザソフトウェアのピースの更新の一部として、シンメトリックキーＫｔ＋１を受信する。ステップ４２において、ユーザソフトウェアは、次のインターバルに対してキーＫｔ＋１から演算されるシンメトリックキーＫｔを使用して、現在の時間インターバルｔにおいてそれが生成する全てのファイルの少なくとも一部を暗号化する。特に、Ｋｔ＝ｆ（Ｋｔ＋１）であり、ここで、ｆは著作権侵害者にとってインバート（invert）することが実行不可能であるパブリックワンウェイ関数である。ディストリビュータは、それが関数ｆをインバートすることを許容するトラップドアー（trap-door）キーを有し得る。
【００５４】
別の例として、ディストリビュータは、それから初期値Ｋ０までの全ての以前の値が演算される値ＫＴでスタートし得る。この例において、更新インターバルの予測される数を超える値Ｔが選択される。例えば、どのソフトウェアのピースも１００年を超える寿命を有しないと仮定し、毎週の更新を仮定すると、Ｔに対する適切な値は、５２００である。ステップ４４において、各ファイルは、最後に修正された時間インターバルでラベル付けされる。このラベル付けは、時間インターバルを同定することにより、暗号化が実行されたキーを特定する。ラベルそれ自体は、プレインテキスト、即ち暗号化されていないものであり得る。
【００５５】
図４のソフトウェアエージングプロセスは、ユーザソフトウェアが、ソフトウェアのそのバージョンの全てのコピーに共通なシンメトリックキーを使用して、それが生成する各ファイルの少なくとも一部を暗号化するように構成される。各ファイルは、それが最後に修正された時間インターバルでラベル付けされ、これは、暗号化が実行されたキーを示す。
【００５６】
好都合なことに、上述したエージングプロセスは、古いキーが新しいキーから演算されることを可能にすることにより、キー更新が実行されるとき全てのファイルをリフレッシュする必要性および全ての古いキーを記憶する必要性を除去する。しかし、新しいキーは、古いキーから演算することができないことに留意すべきである。インターバルｔからｔ＋１への変化における合法的ユーザに送られる上述した正しい更新は、合法的ユーザがその古いキーを置き換えるために使用するキーＫｔ＋１を含む。
【００５７】
正しい更新は、新しいフィーチャーを追加するため、新たに発見されたセキュリティ問題を解決するなどのために、ソフトウェアに対するパッチを含む。検出された非合法なユーザに送られる上記のランダムな更新は、Ｋｔ＋１の代わりにランダムな数を含み得る。これは、これが最早実行することがないように、ソフトウェアをアクティブに改悪するソフトウェアへのパッチを含む。非合法なユーザがランダムな更新を検出しかつそれがそのソフトウェアに適用されることを防止したとしても、そのソフトウェアのユーティリティは、それが、ソフトウェアのより後のバージョンにより出力されかつＫｔ＋１またはより後のキーにより暗合化されたファイルを読み出すことができないので低下し続けることになる。
【００５８】
図４のソフトウェアエージングプロセスは、いかなる既に知られたタイプの暗号化技法を使用することもできる。例えば、本発明は、NBS FIPS Pub 46-1, U.S. Department of Commerce, 1988に示された周知のＤＥＳ（Data Encryption Standard）のようなシンメトリック暗号（cipher）を使用して具現化され得る。このタイプのシンメトリック暗号は、一般のセッティングにおいて安全であると考えられないとしても、本発明のソフトウェアエージングプロセスにおける使用にとってこのタイプのシンメトリック暗号は、安全である。これは、ソフトウェアエージングプロセスが、メッセージを解読または見られたメッセージからキーを確立することができる個々のユーザに対する保護のみをしようとするからである。
【００５９】
著作権侵害者が解読キーを決定する場合、その非合法なユーザの全てにそれをどうにかして配らなければならず、これは、追跡および訴追のリスクを増大させるので、著作権侵害者に対して同じレベルの保護を提供する必要はない。著作権侵害者が暗号化スキームをインバートして、これによりキーまたは対応するプレインテキストを得たとした場合、著作権侵害者は、非合法なユーザに配るソフトウェアのオーソライズされていないコピーにこの情報を組み込むことができる。合法的なディストリビュータは、キーを変更して、著作権侵害者により生成されるオーソライズされていないソフトウェアを正しくないものとすることにより対応することができる。
【００６０】
したがって、この例示的な実施形態において、幾分弱い暗号を使用することが可能である。しかし、ＡＥＳ（the Advaced Encryption Standard）としての使用のために最近選択されたRijndael暗号のようなより強い暗号も使用され得る。Rijndael暗号に関する更なる詳細は、例えば、http://www.esat.kuleuven.ac.be/〜rijmen/rijndael/およびhttp://csrc.nist.gov/encryption/aesにおいて見出すことができる。本発明との組合せでの使用に適した他の暗号技法に関する更なる詳細が、例えば、A.J. Menezes et al., "Handbook of Applied Cryptography," CRC Press, 1997において見出すことができる。
【００６１】
この例示的な実施形態において、同じシンメトリックキーが全ての合法的ユーザに配られ、これらのユーザの各々が、他のものにより生成される暗号化されたファイルを正しく解釈することができるようになる。これが、著作権侵害者にとってシンメトリックキーを得ることが非常に容易となったとしても、これは、セキュリティの弱点ではない。例えば、著作権侵害者が、実際に、合法的ユーザのうちの一人であり、したがってキーを自動的に受け取る可能性がある。このソフトウェアエージングプロセスは、非合法なユーザが、著作権侵害者からの更新によりキーを受け取ることを強制するように設計されている。
【００６２】
図３のソフトウェアエージングプロセス中の関数ｆは、ソフトウェアの寿命に亘ってインバートすることが実行不可能のままでなければならないことはなく、その代わりに、各時間インターバルにおいて非合法なユーザがインバートすることが不便となるように、インバートするための十分な演算的労力を必要とするのみでよい。関数の高速逆変換（inversion）を可能にするアタックが引かれるようになる場合において、新しい関数が選択されかつ使用されなければならない。全てのソフトウェアは、古いフォーマットの全てのファイルをリフレッシュするために更新される必要がある。この更新は、古いキーおよび新しいキーの両方の知識を有する中間（intermediary）バージョンおよび対応する一方向関数（one-way functions）を使用して実行され得る。
【００６３】
図３のソフトウェアエージングプロセスは、フレキシブルな更新を可能にするように構成され得る。そのようなアレンジメントは、正確に同じバージョンに必ずしも更新されないソフトウェアバージョンに対して新しいファイルを読み出し可能にすることができる。特に、時間インターバルｔにおいてファイルを暗号化するために最も最近配られたキーＫｔを使用する代わりに、ソフトウェアは、暗号化キーＫｔ−δ＋１を使用することができる。ここで、δは、ソフトウェアのピースが合法的ユーザからの新しいファイルを読むことができるようにするために必要な更新頻度を示す。例えば、δの値は、３にセットされることができ、これにより、２つの更新だけ遅れたプログラムが新しいファイルを読むことを可能にする。他の値も、所定のアプリケーションに対して適切に使用され得る。
【００６４】
ここで使用される「時間インターバル」の用語は、周期的インターバル、および非周期的インターバルの両方を含み、スタート時刻、終了時刻、特定の時点などのような特定の時間ピリオドを示すために使用される他の時間デシグネータを含むものと意図されている。
【００６５】
図３および４との関連で説明した更新およびエージングプロセスは、オープン(open)、読み出し、書き込みなどのようなシステムコールをインターセプトし、所望の動作を提供するためにこれらのコールを処理するいわゆるミドルウェアを使用して具現化され得る。例えば、ミドルウェアは、所定のユーザプログラムによりなされた全てのファイルリードリクエストをインターセプトし、このリードリクエストを、解読動作がその後に続く読み出しで置き換えることができる。同様に、所定のプログラムによりなされたファイル書き込みリクエストは、インターセプトされ、暗号化および書き込みリクエストにより置き換えられ得る。これは、本発明による著作権侵害保護と共に構成されたプログラムを提供するように現行のプログラムの効率的な変換を可能にする。上述したミドルウェア機能をアプリケーションプログラムに直接的に含めることが、有利である。
【００６６】
前述したように、本発明のソフトウェアエージングプロセスは、非合法なユーザへ頻繁な更新を配ることを著作権進言者に強制することにより、著作権侵害に対し保護する。好都合なことに、保護は、合法的ユーザに対して実質的にトランスペアレントである方法で提供される。
【００６７】
本発明のソフトウェアエージングプロセスの結果として著作権侵害者に課せられる義務が、よりフォーマルに説明される。著作権侵害者は合法的なユーザと共謀しないことが仮定されている。例えば、一人のユーザが別のユーザのために更新を実行する場合、第１のユーザは、著作権侵害者の組織の一部であると考えられる。上記したように、変数δは、コンパチビリティのために必要な更新頻度の尺度である。
【００６８】
合法的ユーザのソフトウェアがいずれか特定の時刻において機能の大幅な低下なしに働くために、著作権侵害者は、平均で少なくともδ時間インターバル毎に非合法なユーザ１４の少なくともＭ−ｃｎδを更新する必要があることが分かる。ここで、ｎは、所定のインターバルにおいてソフトウェアの特定のコピーに対してディストリビュータが許容する更新の最大数であり、ｃは、著作権侵害者がディストリビュータから合法的に購入したソフトウェアパッケージの数である。合法的ユーザのソフトウェアが、ユーザが少なくともδ時間ピリオド毎にディストリビュータに接続するように管理する限り、いかなる時刻においても、機能の大幅な低下なしに働くことになることが分かる。
【００６９】
本発明の上述した実施形態は、例示目的のみであることが理解されるべきである。例えば、本発明は、いかなるタイプのソフトウェアおよびいかなるアレンジメントまたは構成のユーザ、ディストリビュータおよび著作権侵害者にも適用され得る。また、いかなる多様な異なる暗号化技法も使用され得る。また、本発明は、上述した更新の受領に対する適切な課金により、ソフトウェアレンタルまたはアプリケーションサービスプロバイダーに対する加入の管理を容易にすることのような、著作権侵害保護を超える追加的な利点を提供するために使用され得る。
【００７０】
【発明の効果】
以上説明したように、本発明によれば、ソフトウェア著作権侵害を防止するためのより効率的かつ有効なアプローチを提供することができる。
【００７１】
特許請求の範囲の発明の要件の後に括弧で記載した番号がある場合は、本発明の一実施例の対応関係を示すものであって、本発明の範囲を限定するものと解釈すべきではない。
【図面の簡単な説明】
【図１】本発明によるソフトウェアエージングが具現化され得るコンピュータシステムの例示的な実施形態を示す図。
【図２】図１のシステムのエレメントのうちの所定の１つの可能性のある構成を示すブロック図。
【図３】本発明による例示的なソフトウェア更新プロセスを示すフローチャート。
【図４】本発明によるソフトウェアエージングプロセスの一例を示すフローチャート。
【符号の説明】
１０  システム
１２  合法的ユーザ
１４  非合法的ユーザ
１６  ネットワーク
１８  ディストリビュータ
１９  著作権侵害者
２０  プロセッサ
２２  メモリ
２４  ディスク
２６  ネットワークインターフェース
【図１】
0004490614.tif 000002
【図２】
0004490614.tif 000003
【図３】
0004490614.tif 000004
【図４】
0004490614.tif 000005