(57)【要約】  本発明は、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御するためのデバイスドライバを提供する。デバイスドライバは、メディアドライブ用のデバイスドライバスタックへのアクセスのためのインターフェース、上記メディアドライブへのコンピュータ可読媒体の挿入を検出するための検出器、および上記コンピュータ可読媒体からのデータ転送をモニタリングするためのモニタを含む。モニタは、上記コンピュータ可読媒体上のデータにアクセスするアプリケーションの振る舞い特性を評価し、上記振る舞い特性が予め決められた基準を満たす場合は表示をする。制御システムは、上記振る舞い特性が上記予め決められた基準を満たす場合は少なくとも１つの制御出力を出すために上記モニタに反応する。本発明はまた、デバイスドライバによってコンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する方法を提供する。
2009509282.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御するデバイスドライバであって、
メディアドライブ用のデバイスドライバスタックへのアクセスのためのインターフェースと、
前記メディアドライブへのコンピュータ可読媒体の挿入を検出する検出器と、
前記コンピュータ可読媒体からのデータ転送をモニタリングし、前記コンピュータ可読媒体上のデータにアクセスするアプリケーションの振る舞い特性を評価するモニタと、
前記振る舞い特性が予め決められた基準を満たす場合は少なくとも１つの制御出力を出すために前記モニタに反応する制御システムと
を含むデバイスドライバ。
【請求項２】
前記振る舞い特性はデータ転送の量を含み、前記予め決められた基準はデータ転送の前記量の閾値を超えると超えないのうちの１つを含む、請求項１に記載のデバイスドライバ。
【請求項３】
前記閾値が１０メガバイトから１０ギガバイトまでの範囲にある、請求項２に記載のデバイスドライバ。
【請求項４】
前記振る舞い特性が振る舞いのパターンを含み、前記予め決められた基準が選択された振る舞いのパターンの変更と無変更のうちの１つを含む、請求項１に記載のデバイスドライバ。
【請求項５】
前記振る舞いのパターンは前記コンピュータ可読媒体を読み取るためのナビゲーションパスを含む、請求項４に記載のデバイスドライバ。
【請求項６】
前記振る舞い特性は制御スクランブリングシステム鍵の復号を含む、請求項１に記載のデバイスドライバ。
【請求項７】
前記振る舞い特性はデータ転送の頻度を含み、前記予め決められた基準はデータ転送の前記頻度の閾値を超えると超えないのうちの１つを含む、請求項１に記載のデバイスドライバ。
【請求項８】
前記制御出力は制御コマンドである、請求項１に記載のデバイスドライバ。
【請求項９】
前記制御出力は前記コンピュータ可読媒体へのさらなるアクセスを許可すると禁止するのうちの１つのための命令である、請求項１に記載のデバイスドライバ。
【請求項１０】
前記制御出力は前記コンピュータ可読媒体からのさらなるデータ転送を禁止するように構成される、請求項１に記載のデバイスドライバ。
【請求項１１】
前記制御出力は認証表示である、請求項１に記載のデバイスドライバ。
【請求項１２】
前記制御出力はさらなるアプリケーション機能へのアクセスを許可する、請求項１に記載のデバイスドライバ。
【請求項１３】
前記デバイスドライバを前記デバイスドライバスタックにフックするフックマネージャをさらに含む、請求項１に記載のデバイスドライバ。
【請求項１４】
前記コンピュータ可読媒体が複製から保護されているかどうか立証するために前記コンピュータ可読媒体上の指紋を読み取る指紋リーダをさらに含む、請求項１に記載のデバイスドライバ。
【請求項１５】
コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する方法であって、
メディアドライブ用のデバイスドライバスタックにアクセスするステップと、
前記メディアドライブへのコンピュータ可読媒体の挿入を検出するステップと、
前記コンピュータ可読媒体からのデータ転送をモニタリングするステップと、
前記モニタリングされたデータ転送に基づいて、コンピュータ可読媒体上のデータを読み取るアプリケーションの振る舞い特性を評価するステップと、
前記振る舞い特性が予め決められた基準を満たす場合は少なくとも１つの制御出力を出すステップと
を含む方法。
【請求項１６】
前記モニタリングするステップはデータ転送の量をモニタリングするステップを含み、前記評価するステップは前記量が閾値を超えるかどうか判断するステップを含む、請求項１５に記載の方法。
【請求項１７】
前記閾値は１０メガバイトから１０ギガバイトまでの範囲にある、請求項１６に記載の方法。
【請求項１８】
前記モニタリングするステップは振る舞いのパターンをモニタリングするステップを含み、前記評価するステップは振る舞いの選択されたパターンに変更があるかどうか判断するステップを含む、請求項１５に記載の方法。
【請求項１９】
前記振る舞いのパターンは前記コンピュータ可読媒体を読み取るためのナビゲーションパスを含む、請求項１８に記載の方法。
【請求項２０】
前記モニタリングするステップは制御スクランブリングシステム鍵の復号をモニタリングするステップを含む、請求項１５に記載の方法。
【請求項２１】
前記モニタリングするステップはデータ転送の頻度をモニタリングするステップを含み、評価するステップは前記頻度が閾値を超えるかどうか判断するステップを含む、請求項１５に記載の方法。
【請求項２２】
前記制御出力が制御コマンドである、請求項１５に記載の方法。
【請求項２３】
前記制御出力が前記コンピュータ可読媒体へのさらなるアクセスを許可すると禁止するのうちの１つのための命令である、請求項１５に記載の方法。
【請求項２４】
前記制御出力が前記コンピュータ可読媒体からのさらなるデータ転送を禁止する、請求項１５に記載の方法。
【請求項２５】
前記制御出力が認証表示である、請求項１５に記載の方法。
【請求項２６】
前記制御出力がさらなるアプリケーション機能へのアクセスを許可する、請求項１５に記載の方法。
【請求項２７】
前記デバイスドライバを前記デバイスドライバスタックにフックするステップをさらに含む、請求項１５に記載の方法。
【請求項２８】
前記コンピュータ可読媒体が複製から保護されているかどうか立証するために前記コンピュータ可読媒体上の指紋を読み取るステップをさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本発明は、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する機器および方法に関し、特に、データ担持媒体の無許可の複製からの保護に適用可能である。
【背景技術】
【０００２】
[0002]  無許可の複製からＣＤおよびＤＶＤを含む光ディスクなどのコンピュータ可読媒体を保護する様々な技法が知られている。２つのそのような保護方法は両方とも参照により本明細書に組み込まれている我々の前の米国特許出願第１０／８４８，８７９号および第１０／９３９，１８６号に記載されている。
【０００３】
[0003]  米国特許出願第１０／８４８，８７９号は、光ディスクによって担持されているデータの間に、エラーを含めて、冗長制御データが含まれている保護方法を開示している。制御データは、再生されるべき資料またはコンテンツデータを含む光ディスク上のコンテンツファイルへのアクセスを制御し、コンテンツの通常の再生中は冗長制御データは利用されない。しかし、無許可の複製中は冗長制御データがアクセスされ、そのようなデータ内のエラーが、コンテンツデータへのアクセスを提供する少なくとも１つのプログラムパスのナビゲーションを阻害するように構成される。
【０００４】
［0004］  米国特許出願第１０／９３９，１８６号は、読み取り不可能なまたは破壊的なデータを含む少なくとも１つの領域が光ディスク上のコンテンツデータの中に提供される保護方法を開示している。コンテンツデータを含むコンテンツファイルにアクセスするためのディスク上の制御データは、通常の再生中は読み取り不可能なまたは破壊的なデータの領域へのアクセスが防止されることを保証する。しかし、無許可の複製の場合は、読み取り不可能なまたは破壊的なデータがアクセスされ、複製を妨害または防止する。
【０００５】
[0005]  これらの２つの前の米国特許出願は両方とも、「リッピング」として知られている手順、すなわちローカルコンピュータまたはネットワークのハードドライブへの無許可の複製から光ディスクを保護するために、光ディスクに組み込まれたデータに依存するという点でパッシブである。
【０００６】
[0006]  そのようなパッシブな技法は、無許可の複製からの保護にある程度有効である。しかし、リッピングソフトウェアは、そのようなパッシブな形態の保護に打ち勝つのに次第に複雑で強力になり、次第に効果的になってきている。
【０００７】
[0007]  したがって、無許可の複製からのより効果的な形態の保護、および回避するのがより難しい形態の保護が必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
[0008]  本発明の一目的は、前述の問題を克服する、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する手段を提供することである。
【０００９】
[0009]  本発明の他の目的は、コンピュータ可読媒体の使用の場合を認証する手段を提供することである。そのような認証は、媒体の使用が、通常の再生においてのように、合法的であることを検証するために、あるいはさらなるアプリケーション機能または他の機能へのアクセスを可能にするために使用されてもよく、リッピングなど、媒体の無許可の使用を禁止するために使用されてもよい。
【００１０】
[0010]  本発明の他の目的は、無許可の複製からの改善された保護を提供する、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する効果的な機器および方法を提供することである。
【００１１】
[0011]  本発明の他の目的は、コンピュータ可読媒体上に提供されるパッシブなデータとは対照的に、コンピュータにインストールされるアクティブなプロセスの形態のコンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する機器および方法を提供することである。
【課題を解決するための手段】
【００１２】
[0012]  本発明の第１の態様によれば、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御するデバイスドライバであって、メディアドライブ用のデバイスドライバスタックへのアクセスのためのインターフェースと、上記メディアドライブへのコンピュータ可読媒体の挿入を検出する検出器と、上記コンピュータ可読媒体からのデータ転送をモニタリングし、上記コンピュータ可読媒体上のデータを読み取るアプリケーションの振る舞い特性を評価するためのモニタと、上記振る舞い特性が予め決められた基準を満たす場合は少なくとも１つの制御出力を出すために上記モニタに反応する制御システムとを含むデバイスドライバが提供される。
【００１３】
[0013]  本発明の他の態様によれば、コンピュータ可読媒体上のデータへのアクセスをモニタリングし制御する方法であって、メディアドライブ用のデバイスドライバスタックにアクセスするステップと、メディアドライブへのコンピュータ可読媒体の挿入を検出するステップと、コンピュータ可読媒体からのデータ転送をモニタリングするステップと、モニタリングされたデータ転送に基づいて、コンピュータ可読媒体上のデータを読み取るアプリケーションの振る舞い特性を評価するステップと、振る舞い特性が予め決められた基準を満たす場合は少なくとも１つの制御出力を出すステップとを含む方法が提供される。
【００１４】
[0014]  後述の好ましい諸実施形態では、評価は、データ転送の量または頻度のうちの１つ、あるいはコンピュータ可読媒体上のデータにアクセスするための振る舞いのパターンを含む振る舞い特性に基づく。
【００１５】
[0015]  データの量または頻度のいずれかが評価される場合は、予め決められた基準は、測定された量または頻度の値が比較される閾値でもよい。振る舞いのパターンが評価される場合は、評価は、コンピュータ可読媒体上のメインコンテンツにアクセスするためのナビゲーションパスに基づいてもよい。予め決められた基準は、ディスク上に含まれている制御データ内で識別される予め設定されたナビゲーションパスでもよく、ディスク上でアクセスされるデータのためのナビゲーションパスはマッチのために、この予め設定されたナビゲーションパスと比較される。
【００１６】
[0016]  評価は、好ましくは、メインコンテンツを合法的に再生するためにコンピュータ可読媒体上のデータにアクセスしているプレーヤと、メインコンテンツを不法に複製するためにデータにアクセスしているリッパーとを見分けるためである。そのような状況では、制御出力は、さらなる複製のためのコンピュータ可読媒体へのさらなるアクセスをそれぞれ許可または禁止するのに役立つ。
【００１７】
[0017]  追加としてまたは代替として、評価は、さらなる機能へのアクセスを許可するためにコンピュータ可読媒体のユーザまたは使用を認証するためでもよい。
【００１８】
[0018]  本発明のそのような発展形態では、評価が、ユーザが合法的なユーザであることを立証した場合、コンピュータ可読媒体上のさらなる機能へのアクセスを制御するために制御出力が利用されてもよい。
【００１９】
[0019]  無許可の使用からコンピュータ可読媒体上のデータを保護する上記の技法は、それらがリアルタイムでそのような使用をモニタリングし制御することに依存するという点でアクティブであると考えられてもよい。もちろん、本発明によれば、そのようなアクティブな技法を従来技術に関して前述されたパッシブな技法と組み合わせることが可能である。
【００２０】
[0020]  本発明はまた、デバイスドライバがメディアドライブ用のデバイスドライバスタックにフックすることができるようにするためのフックドライバを含んでもよい。
【００２１】
[0021]  有利には、本発明はまた、媒体が複製から保護されていることを示す指紋を担持しているかどうか立証するためにメディアドライブへの挿入時にコンピュータ可読媒体をチェックするための指紋リーダを含む。そうでない場合は、本発明は、好ましくは、モニタリングも評価も行わずにデータ転送を許可する。
【発明を実施するための最良の形態】
【００２２】
[0022]  本発明は、添付の図面に関連して例としてのみさらに説明される。
【００２３】
[0023]  次に、本発明は、図面に例示されているいくつかの好ましい実施形態に関連して説明される。本発明は、パーソナルコンピュータ、ローカルエリアネットワーク（ＬＡＮ）を含むコンピュータシステム、またはインターネットなどの広域ネットワーク（ＷＡＮ）を含むコンピュータネットワークで利用されてもよい。原理はどの場合でも同じであり、したがって、パーソナルコンピュータにおける本発明の利用形態だけが説明される。そのような利用形態は、本発明で利用される基本ハードウェアおよびそれに対応するアーキテクチャを例示する図１〜４に例示されている。
【００２４】
[0024]  まず図１および２を参照すると、パーソナルコンピュータ１０は、中央処理装置（ＣＰＵ）１２、メモリ１４、およびハードディスク１６を含む。コンピュータ１０はまた、光ディスク、例えばＣＤまたはＤＶＤなどのコンピュータ可読媒体のための少なくとも１つのメディアドライブ２０を含む。メモリ１４には、様々な機能に関するＣＰＵ１２への命令を提供するためのアプリケーションソフトウェアが格納されている。特に、第１のそのような機能２２は、コンピュータ可読媒体、この場合はメディアドライブ２０に装填された光ディスクに関して読み書きを制御するためのデバイスドライバスタックを含む。第２の機能２４は、コンピュータ１０のハードディスク１６に関して読み書きを制御するためのストレージデバイスドライバスタックである。さらに、本発明によるデバイスドライバを含むさらなる機能２６がメモリ１４に格納されている。デバイスドライバ２６は、本発明の使用にあたり後述のモニタリング機能を実行するためにデバイスドライバスタック２２およびストレージデバイスドライバスタック２４のうちの少なくとも１つにフックするので、本明細書では「フックドライバ」と呼ばれる。
【００２５】
[0025]  本発明によれば、フックドライバ２６は、光ディスク２８が光ドライブ２０に挿入された場合は検出し、その後、光ディスク２８の使用をモニタリングする。特に、フックドライバ２６は、ディスク上のデータが、再生アプリケーション３０による通常の再生の対象であるか、またはリッピングアプリケーション３２による無許可の複製であるか判断するために、光ディスク２８に関してデータ転送および／または光ディスク２８がアクセスされる方式をモニタリングする。通常の再生中は、情報は、スピーカおよび／またはディスプレイを介しての出力のために、デバイスドライバスタック２２を介してプレーヤ３０によって光ディスク２８から読み取られる。しかし、リッピング中は、光ディスク２８から読み取られたデータは、リッパー３２によって複製され、ストレージデバイスドライバスタック２４によってローカルハードディスク１６に転送される。リッパー３２によるリッピングの検出と同時に、フックドライバ２６は、リッパー３２による光ディスク２８へのアクセスを禁止し、かつ／または光ディスク２８からのさらなるデータの複製を防止するための諸ステップを実行する。
【００２６】
[0026]  図３は、デバイスドライバスタック２２の詳細およびフックドライバ２６とデバイスドライバスタック２２との接続を示す。図３に示されているように、デバイスドライバスタック２２は、コンピュータ１０のユーザモード４２とカーネルモード４４との間のインターフェース４０に配置される。ユーザモードは、例えば、ウィンドウズアプリケーション４４、再生アプリケーション３０またはコンピュータユーザによって必要とされる他のアプリケーションを含めて、コンピュータ内のアプリケーションの実施など、高レベルのアクティビティを処理する。カーネルモード４４は、タスクのスケジューリング、およびドライバなどとのインターフェーシングなど、低レベルのアクティビティを処理する。
【００２７】
[0027]  インターフェース４０は、スモールコンピュータシステムインターフェース（ＳＣＳＩ）として知られていて、例えば、光ドライブ２０などのハードウェアを、デバイスドライバスタック２２を介してコンピュータ１０の中のＣＰＵ１２に接続するのに役立つ。ウィンドウズ（登録商標）または他のアプリケーション４４から光ドライブ２０へのＳＣＳＩ要求として知られている要求は、光ドライブ２０での実施のために、インターフェース４０を横断して、要求を高レベルのソフトウェア言語から光ドライブ２０の形態の物理ハードウェアに適用可能な命令に次第に変換するデバイスドライバスタック２２内の一連の層を通して送信される。次いで、完了したＳＣＳＩ要求は、ＣＰＵ１２での処理のために、デバイスドライバスタック２２を通り、インターフェース４０を横断して、ウィンドウズアプリケーション４４へ逆方向に送信される。
【００２８】
[0028]  図３に示されているように、デバイスドライバスタックは、高レベルのデバイスオブジェクト４６と、この場合ＣＤ−ＲＯＭクラスドライバを含む別のデバイスオブジェクト４８と、ＣＤ−ＲＯＭクラスドライバ４８からの命令を光ドライブ２０へのアプリケーションのための信号に変換するための物理デバイスオブジェクト５０との形態の３つの層を含む。図３では、フックドライバ２６は、デバイスドライバスタック２２の最低のアクセスポイントで、言い換えれば、光ドライブ２０を含むハードウェアにインターフェースするデバイスドライバスタック２２のレベルで、物理デバイスオブジェクト５０にフックするドライバオブジェクト５２として示されている。フックドライバ２６（ドライバオブジェクト５２）をデバイスドライバスタック２２に関してできるだけ低く配置する理由は、光ドライブ２０で光ディスク２８を読み取ろうとする可能性がある全てのアプリケーションおよびプロセスからの要求またはコマンドをインターセプトするためである。フックドライバ２６がデバイスドライバスタック２２に関してより高いレベルに配置された場合、いくつかの要求およびコマンドがフックドライバ２６をバイパスし、それによって、フックドライバ２６によって提供されたモニタリング機能を回避するように設定されることができる可能性がある。
【００２９】
[0029]  図４は、コンピュータ１０のユーザ４２とカーネル４４を隔てるＳＣＳＩインターフェース４０に配置され、アプリケーション４４からの要求を受信するように構成されたデバイスドライバスタック２２の少し違った説明を示す別の図である。この例では、デバイスドライバスタック２２は、上部フィルタドライバ５４と下部フィルタドライバ５６との間に配置されたＣＤ−ＲＯＭクラスドライバ４８を含む。下部フィルタドライバ５６は、要求を、ハードウェア抽象化層（ＨＡＬ）５８を介して光ドライブ２０に適用する、物理デバイスオブジェクト５０に接続される。ＨＡＬ５８は、物理デバイスオブジェクト５０から受信された要求からハードウェア信号を抽出し、それらを光ドライブ２０に適用し、光ドライブ２０から受信した信号を、物理デバイスオブジェクト５０に送信し戻すための完了した要求に転換するのに役立つ。
【００３０】
[0030]図示されているようにフックドライバ２６は、デバイスドライバスタック２２の物理デバイスオブジェクト５０にフックされ、フックドライバ２６と物理デバイスオブジェクト５０との接続を実行するためのフックマネージャ６０、指紋リーダ６２、および認証オブジェクト６４を含む。次に、フックマネージャ６０、指紋リーダ６２、および認証オブジェクト６４のさらなる詳細が、これらのオブジェクトそれぞれによって実行されるステップを表示するフローチャートを示す図５〜７に関連して説明される。
【００３１】
[0031]  図５は、以下のようなフックマネージャ６０の動作を示すフローチャートである。ステップ５００で、フックドライバ２６は、物理デバイスオブジェクト５０にアクセスし、それ自体を、コンピュータ１０の中に組み込まれた、または周辺機器としてコンピュータ１０に接続されたプラグアンドプレイ（ＰＮＰ）デバイスの通知を受信するために登録する。そのようなＰＮＰデバイスは、光ドライブ２０を含む。次に、ステップ５０２で、フックドライバ２６は、コンピュータ１０のオペレーティングシステムに光ドライブ２０を含む現在存在するそのようなデバイスのリストを要求し、取得する。ステップ５０２でのＰＮＰデバイスの通知を求める要求はアクティブのままであり、さらなるデバイスがコンピュータ１０に接続されると、そのようなデバイスのＩＤがフックドライバ２６に供給される。ステップ５０２でＰＮＰデバイスの現在のリストを取得した後で、フックドライバ２６は、ステップ５０４で、物理デバイスオブジェクト５０によって提供された通常のＳＣＳＩ機能の代わりにそれ自体の機能を使用する。したがって、将来のＳＣＳＩ要求は全てフックドライバ２６を通過することになる。したがって、ステップ５０６に示されているように、光ドライブ２０への供給を求める将来のＳＣＳＩ要求は全てフックドライバ２６を通して送られる。さらに、ステップ５０８で、フックドライバ２６は、メディア到着の通知、すなわち光ディスク２８が光ドライブ２０に挿入されたという通知を受信するために、それ自体をアプリケーション４４に登録する。次に、そのような通知は、ステップ５１０によって示されているように、フックドライバ２６によって処理される。これで、フックドライバ２６のインストールが完了する。
【００３２】
[0032]  図６は、図５のサブルーチン５１０に含まれるステップの詳細を示す。ステップ６００で、光ドライブ２０に新規の光ディスク２８が挿入されたという通知が受信された場合、フックドライバはステップ６０２でコンテンツ保護（ＣＰ）署名または指紋があるか光ディスクをチェックする。フックドライバ２６はステップ６０４で指紋があるかどうか問い合わせ、回答がＹＥＳの場合は、ステップ６０６でフラグ「保護されている」を真に設定する。ステップ６０４の問合せに対する回答がＮＯの場合は、フックドライバはステップ６０８でフラグを「偽」に設定する。
【００３３】
[0033]  次に、認証デバイス６４の第１の実施形態が図７に関連して説明される。認証デバイス６４の本実施形態は、大量のデータの転送は通常の再生ではなくリッピングが行われていることを意味するという想定に基づく。例えば、そのような大量のデータは１０メガバイトから１０ギガバイトまでの範囲にあってもよい。
【００３４】
[0034]  図７に示されているように、ステップ７００で、これまではデバイスドライバスタック２２で処理されたであろう要求が、今は、フックドライバ２６によって受信される。ステップ７０２で、フックドライバ２６は受信された要求が読取り要求かどうか問い合わせる。回答がＮＯの場合は、フックドライバはステップ７０４に進み、要求が書込み要求かどうか問い合わせる。回答が再びＮＯの場合は、フックドライバ２６はステップ７０６で単に要求を光ドライブ２０に転送する。ステップ７０４での問合せに対する回答が、プロセスがいかなる種類のデータをもディスク１６に書き込むことを意図することを示すＹＥＳの場合は、フックドライバ２６はステップ７０８に進み、プロセスのためのＩＤを取得する。次に、７１０で、フックドライバ２６はプロセスによって書き込まれたデータの量を書込みデータログにログし始め、再びステップ７０６に進む。
【００３５】
[0035]  ステップ７０２に戻ると、このステップでの問合せに対する回答が、ＹＥＳ、すなわちフックドライバ２６によって受信された要求が読取り要求である場合は、フックドライバ２６はステップ７１２に進み、光ドライブ２０に挿入された光ディスク２８が、図６のシーケンスのステップ６０６またはステップ６０８で生成されたフラグをレビューすることにより複製から保護されているかどうかチェックする。光ディスク２８が保護されていない場合は、フックドライバ２６は再びステップ７０６に進み、単にＳＣＳＩ要求を直接光ドライブ２０に渡す。一方、光ディスク２８が保護されている場合は、フックドライバ２６はステップ７１４に進み、光ディスク２８を使用することを意図するプロセスのＩＤを取得する。次に、ステップ７１６で、フックドライバ２６は、プロセスが今光ディスク２８のビデオ領域からビデオデータを読み取っているかどうか問い合わせる。そうしていない場合は、フックドライバ２６は、プロセスが、光ディスク２８上のボーナス資料として知られているもの、すなわち、複製に対して制限されていない宣伝、販売促進または他のそのような資料を読み取っていると想定し、ステップ７１８で、そのようなボーナス資料から読み取られるデータの量を読取りボーナス資料データログにログし始める。有効プレーヤは通常の再生を開始する前にボーナス資料を複製してもよく、そのようなアクティビティをブロックしないことが重要である。次いで、フックドライバはステップ７０６に進む。
【００３６】
[0036]  ステップ７１６で、プロセスが光ディスク２８のビデオ領域からビデオデータを読み取っていることが立証された場合は、次に、ステップ７２０で、フックドライバ２６は、プロセスが（以下で説明されるように）すでに永続的にブロックされているがどうかチェックし、応答がＹＥＳの場合は、直接ステップ７２２に進む。ステップ７２０の問合せに対する応答が、プロセスがブロックされていないことを示すＮＯの場合は、フックドライバ２６は、その代わりに、ステップ７２４に進み、光ディスク２８からのプロセス読取りが、大量のデータが転送されていることを示唆する、光ディスク２８のビデオ領域から読み取られるビデオデータの読取り閾値を超えているかどうか問い合わせる。フックドライバ２６は、このためにビデオデータログをチェックする。回答がＮＯの場合は、フックドライバ２６は、ステップ７２６で、単にビデオデータログにビデオ領域から読み取られたデータの量をログし、ステップ７０６に進む。
【００３７】
[0037]  しかし、フックドライバ２６がステップ７２４で読取り閾値が超えられていることを立証した場合、ステップ７２８に進み、前述のログを、書込みデータがあるか、および読取りボーナス資料データがあるかレビューし、これらのログから推論された第２閾値が超えられているかどうか問い合わせる。この第２閾値は、書込みデータログ内の書込みデータの書込み閾値と、読取りボーナス資料データログ内の読取りボーナス資料データの読取り閾値との差であるように設定され、単にボーナス資料に関するより多くの量の所与のデータがプロセスによってハードディスク１６に書き込まれたことを示す。したがって、この第２閾値は、事実上ビデオデータ書込み閾値を表す。ステップ７２８の問合せに対する回答がＮＯの場合は、フックドライバ２６はステップ７２６に進み、ビデオデータログにビデオ領域から読み取られたデータの量をログする。
【００３８】
[0038]  一方、ステップ７２８の問合せに対する回答がＹＥＳの場合は、フックドライバ２６はステップ７３０に進み、閾率が超えられたかどうか問い合わせる。この閾率は、ビデオデータログ内のデータの現在の量に対する、書込みデータログ内の書込みデータの現在の量と、読取りボーナス資料データログで読み取られたボーナス資料データの現在の量との差の比率であり、書き込まれるビデオデータの量が、例えば光ディスク２８上のビデオ資料の分析だけでなくリッピングを示すのに十分であることを示す。ステップ７３０の問合せに対する回答がＹＥＳの場合は、フックドライバは再びステップ７３２に進み、プロセスが永続的にブロックされていることを示すフラグを設定する。ステップ７３０の問合せに対する回答がＮＯの場合は、フックドライバ２６はステップ７２６に進み、光ディスク２８のビデオ領域から読み取られたビデオデータの量をログする。
【００３９】
[0039]  ステップ７３２でプロセスがブロックされているというフラグを設定した後で、次に、フックドライバ２６はステップ７２２に進み、まず元のＳＣＳＩ要求を変更し、その後ステップ７０６でそれを光ドライブ２０に渡す。
【００４０】
[0040]  ここでの想定は、リッピングの場合は、転送されたデータの量は読取り閾値と書込み閾値の両方を超え、通常の再生の場合は、読取り閾値は超えられてもよいが、書込み閾値は超えられないということである。したがって、ステップ７２８の問合せに対する回答が、ビデオデータ書込み閾値が超えられたことを示すＹＥＳの場合は、フックドライバ２６は、現在のプロセスのためにフラグ「ブロックされているは真に等しい」を設定する。このフラグは、フックドライバ２６から見ると通常の再生ではなくリッピング動作が行われていることを示し、したがって、その場合は、フックドライバはステップ７２２でＳＣＳＩ要求を変更する。同様に、フックドライバ２６はステップ７３２で書込み閾値と読み取られたボーナスデータの量との差に対する読取り閾値の比率が超えられたことを発見した場合は、フラグ「ブロックされているは真に等しい」を再び設定し、リッピングが行われているという想定のもとに元のＳＣＳＩ要求を変更する。そのような変更は、例えば、識別されたプロセスが光ドライブ２０内の光ディスク２８にさらにアクセスしないようにすること、あるいは、さらなる書込みを防止するするまたは返されたデータを役に立たないようにすることにより、光ディスク２８からのさらなる複製を防止することを含んでもよい。
【００４１】
[0041]  認証の正確さを保証し、リッピングの誤評価を防止するために、読取りおよび書込み閾値は比較的高いレベルで設定される。これは、さらなる複製を防止する決定がなされる前にデータのいくらかの量が複製される可能性があり、例えば、数十メガバイトが、リッピングが検出されるときまでに光ドライブ２０とターゲットストレージデバイス１６との間で転送されてしまっている可能性があることを意味する。しかし、典型的なＤＶＤでは、１００メガバイトはそれでもなおコンテンツの約３分を表すだけであり、ユーザがこの量の複製保護ビデオ資料をリップすることを許可することは、特にフックドライバ２６が通常の再生を妨害しないことを保証する場合は、ＤＶＤ上のビデオコンテンツの全体の長さの点から見て重大ではない。
【００４２】
[0042]  図７に示されている実施形態の説明から、光ディスク２８が、それが複製から保護されていることを示す指紋を含み、さらに、書込みプロセスが予め決められた書込み閾値を超えない限り、フックドライバ２６はＳＣＳＩ要求には事実上見えないことが理解されるであろう。
【００４３】
[0043]  認証デバイス６４の第２の実施形態は、図１２に例示されており、光ディスク２８上のデータの読み取り中に利用されるナビゲーションパスの評価に基づく。この実施形態を理解するためには、光ディスク２８上に提供されたデータ構造、および光ディスク２８上のデータを読み取るために利用されるナビゲーションパスをも理解することが必要である。したがって、まず、ＤＶＤ上に提供されたデータの構造の特定の例が図８および９に関連して説明され、次に、そのようなデータ構造のために、合法的プレーヤ３０によって、および２つの異なる種類のリッパー３２によって取られるナビゲーションパスが、それぞれ、図１０および１１に関連して説明される。
【００４４】
[0044]  まず、図８を参照すると、ＤＶＤ上に提供されたデータは、ＤＶＤの読取りを管理するための、すなわちＤＶＤ上のデータを読み取るためのナビゲーションパスを決定するための制御データと、ＤＶＤ上のメインコンテンツを含むコンテンツデータとを含む。
図８に示されているＤＶＤ２８は、普通は最初に再生され、辿られるべきナビゲーションパスを示す、最初のプログラムチェーン（ＰＧＣ）８００を含む簡単なビデオＤＶＤである。ビデオマネージャ（ＶＭＧ）８０２は様々な情報データを含み、メインメニュー８０６を有するタイトルメニュー８０４含む。ＤＶＤはまた、２つのビデオタイトルセット（ＶＴＳ）８０８および８１０を含み、それぞれがやはり情報ファイルを含む。ＶＴＳ１  ８０８は、通常の著作権警告を含む単一のタイトル８１２を含む。ＶＴＳ２  ８１０は、ＤＶＤ上のメインムービーのためのタイトルを含む第１タイトル８１４、およびロゴなどの短いビデオクリップのための、または、サイレントブラックビデオの２つのフレームのためのタイトルを含む第２タイトル８１６を含む。
【００４５】
[0045]  タイトル８１４、８１６はそれぞれ１つまたは複数のプログラムチェーン（ＰＧＣ）８１８、８２０をそれぞれ含む。タイトル８１４のＰＧＣ８１８は、通常は順に再生されるように構成されるＰＧ１、ＰＧ２など…のいくつかの個々のプログラム８２２を含む。各プログラム８２２は、対応するビデオオブジェクトセット８２６の特定の部分にアドレスする少なくとも１つのポインタ８２４を有する。各ビデオオブジェクトセット８２６は、セル１／１、セル１／２など…のいくつかのセル８２８に分割される。同様に、プログラムチェーン８２０も、ビデオオブジェクトセット８２６の特定の部分への、この場合はセル２／１などのセル８３４へのポインタ８３２を有するＰＧ１などのプログラム８３０を有する。
【００４６】
[0046]  図８のナビゲーション構造から生じるナビゲーション順が図９に示されている。ＤＶＤ２８を光ドライブ２０に装填した後で、まず、ＶＴＳ１  ８０８および著作権警告を含むタイトル８１２が提示される。その後で、メインタイトル８０４のメインメニュー８０６が提示され、メインメニュー８０６上の再生ボタン８３６がアクティブ化された場合、ナビゲーション順は、ＶＴＳ２  ８１０内のタイトル８１６、およびセル８３４に含まれるロゴまたは他のコンテンツに進む。次に、ナビゲーション順は、タイトル８１４に進み、ＤＶＤのメインコンテンツまたはムービーを再生し、それに続いて、ナビゲーション順はメインメニュー８０６に戻る。
【００４７】
[0047]  図８から、タイトル８１６のための表示データは、メインタイトル８１４のための表示データの後でＤＶＤ２８上に物理的に配置されることに留意すべきである。したがって、図９に示されているように、まず、合法的なプレーヤ３０は、ビデオオブジェクトセット８２６の端にあるセル８３４にアクセスすることによりタイトル８１６のための表示データにアクセスし、次いで、ビデオオブジェクトセット８２６のセル８２８にアクセスすることによりメインタイトル８１４のための表示データにアクセスするために、ＤＶＤ２８上の前の物理的位置にジャンプバックする。対照的に、リッパーは、直線的にＤＶＤ上の異なるファイルにアクセスする、またはまず情報ファイルにアクセスし、次いで、メインタイトルを選択した後で、メインタイトルのための表示データにアクセスする。さらに、リッパーは、タイトル８１６のための表示データの前にメインタイトル８１４のための表示データにアクセスする。これは、図１０および１１から最もよく理解されることができる。
【００４８】
[0048]  図１０は、制御データまたはナビゲーション情報、およびコンテンツデータまたはビデオ情報をそれぞれ含む情報ファイルが、プレーヤによってどのようにアクセスされるかを示す、合法的なプレーヤ３０のナビゲーションパスを示す。図示されているように、プレーヤ３０は、まず、ＶＭＧ  ８０２内の制御データまたはナビゲーション情報１００２、次いで、図９に示されているＤＶＤビデオ上のナビゲーション構造によって定義されたナビゲーションパスに従って、ＶＴＳ１  ８０８、ＶＭＧ８０２の中のＶＭＧＭ＿ＶＯＢＳ、そして最後にＶＴＳ２  ８１０にアクセスする。ＶＴＳ２  ８１０にアクセスする場合、プレーヤは、まず、セル２／１を含むビデオオブジェクト８３４に、次に、セル１／１、１／２などを含むビデオオブジェクト８２８に送られる。
【００４９】
[0049]  図１１を参照すると、これは、ＤＶＤにセクタごとにまたはファイルごとにアクセスする第１リッパー３２と、まずタイトル情報を取得するために情報フィルタにアクセスし、次いでリッピングするために選択されたタイトル、多分メインタイトルのためにコンテンツデータにアクセスする第２リッパー３２とによってそれぞれ取られるナビゲーションパスを示す。そのようなリッパーは、「ＩＦＯ解析」リッパーとして知られている。図１１に示されているように、セクタごとのまたはファイルごとのリッパー３２は、単に、ＤＶＤ上の物理的順序でビデオマネージャ８０２、ＶＴＳ１  ８０８およびＶＴＳ２  ８１０のファイルの全てを通って進む。対照的に、ＩＦＯ解析リッパー３２は、まずビデオマネージャ８０２ならびにＶＴＳ１およびＶＴＳ２  ８０８、８１０のそれぞれの制御データ１００２にアクセスし、次いで次に進んでメインタイトル８１４のためのビデオオブジェクト８２８にアクセスする。いずれの場合にも、リッパー３２は合法的なプレーヤ３０のものとは全く異なるナビゲーションパスを辿り、セル１／１、１／２など…を含むビデオオブジェクト８２８にアクセスした後で、セル２／１を含むビデオオブジェクト８３４にアクセスする、またはビデオオブジェクト８３４には全然アクセスしない。
【００５０】
[0050]  図１２に例示された認証デバイス６４の第２の実施形態は、ナビゲーションパスにおけるそのような逸脱をモニタリングするのに役立ち、したがって、ＤＶＤへのアクセスを制御するのに役立つ。この実施形態は、図８〜１１に示されているデータおよびナビゲーション構造に基づく。
【００５１】
[0051]  図１２に示されている認証デバイス６４の第２の実施形態は、リッピングがあるかチェックするためにＤＶＤ２８のビデオオブジェクト８２８、８３４へのアクセスをモニタリングする。フックドライバ２６は、ステップ１２００でＳＣＳＩ要求を受信し、ステップ１２０２でＤＶＤが複製保護されているかどうか問い合わせる。回答がＮＯの場合は、フックドライバ２６はステップ１２０４で単にＳＣＳＩ要求を光ドライブ２０に転送する。一方、ＤＶＤが複製保護されていることが立証された場合は、フックドライバ２６は、ステップ１２０６に進み、ディスク指紋から、セル２／１を含むビデオオブジェクト８３４がセル１／１、１／２などを含むビデオオブジェクト８２８の前に読み取られるべきであることを立証し、セル１／１およびセル２／１のための位置を取得する。
【００５２】
[0052]  次に、フックドライバ２６はステップ１２０８に進み、受信されたＳＣＳＩ要求が読取り要求かどうか問い合わせる。回答がＮＯの場合は、フックドライバ２６はステップ１２０４に進み、前の場合と同様に単に要求を光ドライブ２０に転送する。しかし、回答がＹＥＳの場合は、フックドライバ２６はステップ１２１０でＤＶＤ２８を使用することを意図するプロセスのためのＩＤを取得する。フックドライバ２６はステップ１２１２に進み、このプロセスのためにフラグ「ブロックされているは真に等しい」がすでに設定されているかどうかチェックする。回答がＮＯの場合は、フックドライバ２６はステップ１２１４に進み、読取り要求で要求されたディスクセクタの物理セクタアドレスとＳＣＳＩ要求が生じたプロセスのプロセスＩＤとをメモリ１４に書き込む。次いで、フックドライバ２６はステップ１２１６に進み、要求されたセクタがセル１／１にあったかどうかチェックする。回答がＮＯの場合は、フックドライバは前の場合と同様にステップ１２０４で単に要求を光ドライブ２０に渡す。一方、ステップ１２１６の問合せに対する回答がＹＥＳの場合は、フックドライバ２６はステップ１２１８でセル２／１がすでにアクセスされたかどうか問い合わせる。回答がＹＥＳの場合は、フックドライバ２６は再びステップ１２０４で単に要求を光ドライブ２０に転送する。しかし、ステップ１２１８での問合せへの回答が、現在の読取り要求がまずセル２／１にアクセスすることなしにセル１／１にアクセスしようとしていたことを示すＮＯの場合は、フックドライバはステップ１２２０で現在のプロセスのためにフラグ「ブロックされているは真に等しい」を設定する。フラグ「ブロックされているは真に等しい」が、ステップ１２１２で立証されたようにまたはステップ１２２０の結果として設定された場合、フックドライバ２６はステップ１２２２へ進み、ステップ１２０４で変更された要求を光ドライブ２０に渡す前に、元のＳＣＳＩ要求を例えばＤＶＤへのさらなるアクセスを防止するようにまたはＤＶＤ２８からの複製を防止するように変更する。
【００５３】
[0053]  図１２に示されている認証デバイスの実施形態は、セクタごと／ファイルごとのリッパーとＩＦＯ解析リッパーの両方を検出するように設計され、それらはいずれもＶＴＳ２  ８１０の中のセル１／１の前にセル２／１にアクセスしない。もちろん、図１２の認証デバイス６４は図８〜１１で与えられたＤＶＤの特定の例に基づき、どの場合でも特定の光ディスク上の特定のデータおよびナビゲーション構造に適合するように適切に変更されるであろうことが理解されるべきである。また、代替ナビゲーションパス認証構造が可能であることも理解されるべきである。
【００５４】
[0054]  認証デバイス６４の第３の実施形態は、図１３に示されており、光ディスク２８の再生を制御する情報を暗号化するためにプレーヤ３０と光ディスク２８の両方によって所有されているコンテンツスクランブリングシステム（ＣＳＳ）鍵の復号に基づいて、光ディスク２８上の正しいナビゲーションパスが利用されているかどうか検出するように設計されている。プロセスはステップ１３００で開始し、フックドライバ２６が、ＣＳＳ復号がユーザアプリケーション４４からの読取りまたは書込み要求に応答して行われる方法をモニタリングし始める。簡単のために、要求は読取り要求であると仮定されるが、プロセスは書込み要求の場合でも同様であるはずである。フックドライバ２６はステップ１３０２に進み、アプリケーション４４がビデオ再生用のプレーヤ３０を認証するために完全なセットの認証付与ＩＤ（ＡＧＩＤ）の妥当性を確認するかどうか問い合わせる。回答がＹＥＳの場合は、フックドライバ２６はステップ１３０４に進むが、回答がＮＯの場合は、フックドライバは、リッピングが行われているという想定のもとにステップ１３０６で読取りプロセスを停止する。ステップ１３０４で、フックドライバ２６は、アプリケーションが有効ＣＳＳ認証を行っているかどうか問い合わせる。回答がＮＯの場合は、アプリケーションは再びステップ１３０６に進む。しかし、回答がＹＥＳの場合は、フックドライバ２６はステップ１３０８に進み、アプリケーションが、再生ソフトウェア内に提供されている正しいバス鍵を使用して、光ディスク２８上に提供されている再生認証鍵を読み取っているかどうか問い合わせる。回答がＮＯの場合は、フックドライバ２６はステップ１３０６に進み、回答がＹＥＳの場合は、フックドライバはステップ１３１０に進む。ステップ１３１０で、フックドライバ２６は、アプリケーションが、再生ソフトウェア内の正しいバス鍵を使用して、ビデオタイトルを表す光ディスク２８上のタイトル鍵を読み取っているかどうか問い合わせる。回答がＮＯの場合は、フックドライバ２６はステップ１３０６に進み、回答がＹＥＳの場合は、フックドライバ２６は１３１２に進む。ここで、フックドライバ２６は、アプリケーションが光ディスク２８の正しいセクタからタイトル鍵を読み取っているかどうかチェックする。回答がＮＯの場合は、フックドライバ２６は再びステップ１３０６に進む。一方、ステップ１３１２への回答がＹＥＳの場合は、フックドライバ２６は、ステップ１３１４でプレーヤ３０が合法的なユーザであると想定し、再生が続行することを許可する。
【００５５】
[0055]  光ドライブ２０に送信される読取り要求の頻度をモニタリングし、それによって光ディスク２８へのアクセスを制御する認証デバイスの第４の実施形態が図１４に示されている。この第４の実施形態では、フックドライバ２６はステップ１４００でＳＣＳＩ要求を受信し、ステップ１４０２で光ディスク２８上の指紋をチェックし、ディスクが複製保護されているかどうか立証する。回答がＮＯの場合は、フックドライバ２６はステップ１４０４で単に要求を光ドライブ２０に転送する。しかし、回答がＹＥＳの場合は、フックドライバ２６はステップ１４０６に進み、ＳＣＳＩ要求が読取り要求かどうか問い合わせる。ＮＯの場合は、フックドライバ２６は要求を前の場合と同様にステップ１４０４を介して光ドライブ２０に転送する。ステップ１４０６の結果が、読取り要求が受信されたことを示す場合は、フックドライバ２６はステップ１４０８に進み、光メディア２８を使用することを意図するプロセスのためのＩＤを取得する。
【００５６】
[0056]  次に、フックドライバ２６はステップ１４１０でこの特定のプロセスのためにフラグ「ブロックされているは真に等しい」がすでに設定されているかどうか問い合わせる。現在のプロセスのためにフラグ「ブロックされているは真に等しい」が設定されていることを確認した場合は、フックドライバ２６はステップ１４２０に進む。ステップ１４１０への回答がＮＯの場合は、フックドライバ２６はステップ１４１２に進み、読取り要求で要求された光ディスク２８上のセクタの物理セクタアドレスならびに要求の回数をメモリ１４に書き込む。フックドライバ２６はステップ１４１４に進み、前の読取り要求の記録された回数から、このプロセスのための読取り要求頻度が頻度閾値を超えているかどうかチェックする。回答がＮＯの場合は、フックドライバ２６は読取り要求をステップ１４０４を介して光ドライブ２０に渡す。一方、回答がＹＥＳの場合は、フックドライバ２６はステップ１４１６で、現在のプロセスによって読み取られたセクタの最後のブロックが連続したセクタからなるかどうか検証する。回答がＮＯの場合は、フックドライバ２６はステップ１４０４に進み、要求を光ドライブ２０に転送する。しかし、回答がＹＥＳの場合は、フックドライバ２６はステップ１４１８で現在のプロセスのためにフラグ「ブロックされているは真に等しい」を設定し、ステップ１４２０に進む。ステップ１４２０では、フックドライバ２６は、例えば、光ディスク２８へのさらなるアクセスを防止するように、または光ディスク２８のさらなる複製を防止するように元のＳＣＳＩ要求を変更し、次いで、変更された要求をステップ１４０４を介して光ドライブ２０に渡す。
【００５７】
[0057]  図１４に示されている第４の実施形態は、合法的なプレーヤ３０は、その再生バッファ内に十分な情報を維持するように設計された速度で光ディスク２８上のセクタを読み取り、ビデオ、オーディオおよびサブピクチャ情報をビューアへの表示のために利用可能にするという想定に基づく。対照的に、リッパー３２は、リッピングを短くするためにできるだけ速く特定のセルを含む各セクタを読み取ろうと試みる。さらに、プレーヤ３０が高速でスキャンしている場合は、プレーヤはいくつかのセクタをスキップすることを意図するが、リッパーは、通常、各セル内の情報を全て読み取ろうと試みる。したがって、読取り頻度の評価を読取り順序と組み合わせることにより、読取りプロセスが合法的プレーヤ３０のものであるか、リッパー３２のものであるかが立証されることができる。
【００５８】
[0058]  図１４の実施形態の変形形態では、読取り順の評価を全て省略し、単に読取り頻度を評価することが可能である。この場合、ステップ１４１６は、図１４に例示されている流れ順から省略され、その代わり、流れ順は、読取り要求頻度閾値が超えられたかどうかに関するステップ１４１４の問合せが回答ＹＥＳを生成した場合は、直接ステップ１４１４からステップ１４１８に進むことになる。
【００５９】
[0059]  本発明の様々な実施例が上記で説明されてきた。いくつかの変更形態が本発明の範囲内で可能であることが理解されるであろう。
【００６０】
[0060]  例えば、認証デバイス６４の４つの異なるバージョンが論じられてきたが、他の変形形態が利用されてもよいことが理解されるであろう。さらに、前述の認証デバイス６４は、状況に応じて、いかなる特定のフックドライバ２６においてでも、個々にまたは組み合わせて利用されてもよい。
【００６１】
[0061]  光ディスク２８上のデータにアクセスするために利用されるナビゲーションパスにおける逸脱などの振る舞いのパターンをモニタリングする認証デバイス６４の場合、前述のパターンは、デバイスのより複雑な振る舞いモデルを作り出すために、別々にまたは一緒に、あるいは実際に他のそのようなパターンと一緒に、デバイス６４によってモニタリングされてもよいことが理解されるであろう。
【００６２】
[0062]  本発明の特定の特徴は、フックドライバ２６が、普通は合法的であるＳＣＳＩ要求に見えないように効果的に設計されることである。前述の諸実施形態はまた、メディアが複製保護されていることを示す指紋を所有していない光メディアに見えないように設計される。
【００６３】
[0063]  さらに、前述の諸実施形態は全て、新たに挿入された光メディアが、そのメディアが複製から保護されるべきであることを示す指紋を有しているかどうかチェックし、フックドライバ２６はそれらの場合にその機能を実行するだけである。本発明は、指紋が存在してもしなくても全ての場合に利用されることが同様に可能である。
【００６４】
[0064]  さらに、前述のフックドライバ２６は、主に読取り要求をモニタリングするように設計されているが、別の実施形態では、フックドライバ２６が、そうではなくまたは同様に、他の要求をモニタリングするように設計されることも可能である。
【００６５】
[0065]  前述の諸実施形態は全て光メディアを複製から保護するためである。本発明は、代替としてまたは追加として、他の利用形態を有してもよいことが理解されるであろう。例えば、ユーザまたはプロセスが認証デバイス６４によって認証された後は、デバイスは、合法的な複製プロセス、あるいは例えばサウンドトラックファイル、ゲームまたは他の特別のオファーを提供するオンラインストアなどのさらなる機能へのアクセスを許可しても、または提供してもよい。
【図面の簡単な説明】
【００６６】
【図１】本発明を組み込んだコンピュータのブロック図である。
【図２】図１のコンピュータのさらなる詳細を示すブロック図である。
【図３】情報の通常の流れおよび本発明によるスタックとフックドライバとの関係を示す、図２のデバイスドライバスタックの図である。
【図４】図３のデバイスドライバスタックおよびフックドライバの別の図である。
【図５】フックドライバをデバイスドライバスタックにフックするためのフックドライバのためのフックマネージャのステップを示すフローチャートである。
【図６】コンピュータのメディアドライブに挿入された光ディスク上の指紋を読み取るためのフックドライバの指紋リーダのステップを示すフローチャートである。
【図７】フックドライバの光ディスクからのデータ転送の量を評価するための第１の実施形態によるデータ転送認証のためのステップを示すフローチャートである。
【図８】光ディスク上のデータのナビゲーション構造を示す図である。
【図９】図８のナビゲーション構造から生じるナビゲーション順を示す図である。
【図１０】図８のナビゲーション構造に関して、合法的なプレーヤのためのナビゲーションパス、および２つの異なる種類のリッパーのためのナビゲーションパスをそれぞれ示す図である。
【図１１】図８のナビゲーション構造に関して、合法的なプレーヤのためのナビゲーションパス、および２つの異なる種類のリッパーのためのナビゲーションパスをそれぞれ示す図である。
【図１２】ナビゲーションパスの評価に基づくフックドライバの第２の実施形態によるナビゲーションパス認証のためのステップを示すフローチャートである。
【図１３】コンテンツスクランブリングシステム（ＣＳＳ）復号を利用するフックドライバの第３の実施形態のための認証ステップを示すフローチャートである。
【図１４】光ディスクからのデータ転送の頻度を評価するためのフックドライバの第４の実施形態によるデータ転送認証のためのステップを示すフローチャートである。
【図１】
2009509282.tif 000003
【図２】
2009509282.tif 000004
【図３】
2009509282.tif 000005
【図４】
2009509282.tif 000006
【図５】
2009509282.tif 000007
【図６】
2009509282.tif 000008
【図７】
2009509282.tif 000009
【図８】
2009509282.tif 000010
【図９】
2009509282.tif 000011
【図１０】
2009509282.tif 000012
【図１１】
2009509282.tif 000013
【図１２】
2009509282.tif 000014
【図１３】
2009509282.tif 000015
【図１４】
2009509282.tif 000016
【国際調査報告】
2009509282.tif 000017
2009509282.tif 000018
2009509282.tif 000019