(57)【特許請求の範囲】
【請求項１】
計算デバイス上で処理されるアプリケーションを保護する方法であって、
前記計算デバイスは、デジタル権利管理（ＤＲＭ）システム、アプリケーション、および前記アプリケーションに関するＤＲＭデジタルライセンスとを有し、
前記アプリケーションは、第１のコードと第２のコードとを含み、
前記ＤＲＭデジタルライセンスは、第１のデジタルライセンスと第２のデジタルライセンスとを含み、
前記アプリケーションが前記計算デバイス上で処理されるある時点で、前記第１のコードがトリガされるステップと、
ここで、前記第１のコードは、ある機能を行うように実行されることを目的として、前記ＤＲＭデジタルライセンスに基づき、該アプリケーションが、前記機能を行うように実行されることが許されているかどうかを前記ＤＲＭシステムが決定することを要求するコードであり、
前記第１のコードにより、前記ＤＲＭシステムにおいて、前記アプリケーションが、第１のデジタルライセンスに基づいて前記機能を行うように実行されることが許可されていることを認証する第１の認証ステップと、
ここで、該第１のデジタルライセンスは、前記アプリケーションの使用が有効であることを証明するものであり、
前記アプリケーションが前記計算デバイス上で処理されるある時点で、前記第２のコードがトリガされるステップと、
ここで、前記第２のコードは、該アプリケーションが、前記計算デバイス上または前記ＤＲＭシステムに関連して実行されるべきことを決定するためのコードであり、
前記第２のコードにより、前記アプリケーションにおいて、該アプリケーションが、第２のデジタルライセンスに基づいて前記ＤＲＭシステムに接続された状態で実行されることが許可されていることを認証する第２の認証ステップと、
ここで、該第２のデジタルライセンスは、前記ＤＲＭシステムと前記アプリケーションとの組み合わせが有効であることを証明するものであって、前記計算デバイス上に存在していることを示す前記アプリケーションの一意なＩＤと前記計算デバイス上に存在していることを示す前記ＤＲＭシステムの一意なＩＤとを有するものであり、
前記第１のデジタルライセンスおよび／又は第２のデジタルライセンスにより実際に、アプリケーションがある機能を行うように実行することが許されると判定した場合にだけ、ＤＲＭシステムによってアプリケーションが実行されるステップと
を具え、前記アプリケーションは、保護されていない第１のアプリケーションから前記第１のコードおよび前記第２のコードにより保護された第２のアプリケーションに変換されており、前記第２のアプリケーションは、前記第１のアプリケーションとして機能するが、該第２のアプリケーションを変更することにより、前記アプリケーションが動作しなくなるように制御されたことを特徴とする方法。
【請求項２】
前記第１の認証ステップは、
前記第１のコードにより、前記ＤＲＭシステムが自らの有効性を証明するドキュメントを前記アプリケーションに提出することを該ＤＲＭシステムに要求するステップと、
前記第１のコードは、前記提出されたドキュメントを受け取り、該提出されたドキュメントを検査するステップと、
前記第１のコードにより、前記検査されたドキュメントに基づき、前記ＤＲＭシステムが、前記ＤＲＭデジタルライセンスを行使することができるものとして信頼されるべきかどうかの有効性を判断するステップと、
前記第１のコードにより、前記アプリケーションが前記機能を行うように実行されることが前記ＤＲＭデジタルライセンスによって許されるかどうかを前記ＤＲＭシステムが決定することを要求し、前記ＤＲＭシステムは、その後、前記ＤＲＭデジタルライセンスにおけるあらゆる条項を検討して、その条項が前記アプリケーションのその実行を許すかどうかを決定するステップと、
前記ＤＲＭシステムが、前記信頼されるべきものと判断された場合で、かつ、前記ＤＲＭシステムが、前記ＤＲＭデジタルライセンスにより実際に、前記アプリケーションが前記機能を行うように実行することが許されると判定した場合にだけ、前記アプリケーションを実行するステップと
を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記アプリケーションのロード中又は前記アプリケーションの実行中の所定の時点、および周期的から成るグループから選択された時点に応答して、前記第１のコードがトリガされるステップを含むことを特徴とする請求項２記載の方法。
【請求項４】
前記第１のコードにより、前記ＤＲＭシステムが、デジタル証明書を提出することによって自らの有効性を証明することを要求し、前記第１のコードにより、前記証明書が有効であるかどうかを判断するステップを含むことを特徴とする請求項２記載の方法。
【請求項５】
前記第１のコードにより、前記ＤＲＭシステムが、デジタル署名を提出することによって自らの有効性を証明することを要求し、前記第１のコードにより、前記証明書が検証されるかどうかを判断するステップを含むことを特徴とする請求項２記載の方法。
【請求項６】
前記アプリケーションは、ＩＤを有し、前記ライセンスは、アプリケーションＩＤを含む識別情報を有するものであり、
前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを判定するステップと、
前記識別情報の中の前記アプリケーションＩＤが前記アプリケーションの前記ＩＤに一致した場合にだけ、前記アプリケーションを実行するステップと
をさらに具えたことを特徴とする請求項２記載の方法。
【請求項７】
前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤ、および前記アプリケーションの前記ＩＤを獲得し、前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを決定するステップを含むことを特徴とする請求項６記載の方法。
【請求項８】
前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤを獲得して前記アプリケーションＩＤを前記第１のコードに送り、前記第１のコードにより、前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを判定するステップを含むことを特徴とする請求項６記載の方法。
【請求項９】
前記第２の認証ステップは、
前記アプリケーションは、ＩＤを有し、前記ＤＲＭシステム又は前記計算デバイスは、ＩＤを有し、また前記ライセンスは、アプリケーションＩＤ、およびＤＲＭシステムＩＤ又は計算デバイスＩＤを有する証明書を含み、これにより当該方法は、
第２のコードにより、前記ライセンスから前記証明書を取得するステップと、
第２のコードにより、前記証明書の中から、前記アプリケーションＩＤ、および前記ＤＲＭシステムＩＤ又は前記計算デバイスＩＤを取得するステップと、
前記第２のコードにより、前記ＤＲＭシステム又は前記計算デバイスから、前記ＤＲＭシステム又は前記計算デバイスの前記ＩＤを取得するステップと、
前記第２のコードにより、前記アプリケーションから、前記アプリケーションの前記ＩＤを取得するステップと、
前記第２のコードにより、前記アプリケーションから取得された前記ＩＤが、前記証明書からの前記アプリケーションＩＤに一致するかどうかを判定するステップと、
前記第２のコードにより、前記ＤＲＭシステムと前記計算デバイスのどちらかから取得された前記ＩＤが、前記証明書からの前記ＤＲＭシステム／計算デバイスＩＤに一致するかどうかを判定するステップと、
前記第２のコードにより、前記アプリケーションから取得された前記ＩＤが、前記証明書からの前記アプリケーションＩＤに一致し、前記ＤＲＭシステムと前記計算デバイスのどちらかから取得された前記ＩＤが、前記証明書からの前記ＤＲＭシステム／計算デバイスＩＤに一致すると決定された場合にだけ、前記アプリケーションを実行するステップと
を含むことを特徴とする請求項１記載の方法。
【請求項１０】
前記アプリケーションのロード中又は前記アプリケーションの実行中の所定の時点、および周期的から成るグループから選択された時点に応答して、前記第２のコードがトリガされるステップを含むことを特徴とする請求項９記載の方法。
【請求項１１】
請求項１ないし１０のいずれかに記載の方法を、前記計算デバイスとしてのコンピュータに実行させることが可能な命令を有するプログラム。
【請求項１２】
請求項１１記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１３】
計算デバイス上で処理されるアプリケーションを保護する装置であって、
前記計算デバイスは、デジタル権利管理（ＤＲＭ）システム、アプリケーション、および前記アプリケーションに関するＤＲＭデジタルライセンスとを有し、
前記アプリケーションは、第１のコードと第２のコードとを含み、
前記ＤＲＭデジタルライセンスは、第１のデジタルライセンスと第２のデジタルライセンスとを含み、
前記アプリケーションが前記計算デバイス上で処理されるある時点で、前記第１のコードがトリガされる手段と、
ここで、前記第１のコードは、ある機能を行うように実行されることを目的として、前記ＤＲＭデジタルライセンスに基づき、該アプリケーションが、前記機能を行うように実行されることが許されているかどうかを前記ＤＲＭシステムが決定することを要求するコードであり、
前記第１のコードにより、前記ＤＲＭシステムにおいて、前記アプリケーションが、第１のデジタルライセンスに基づいて前記機能を行うように実行されることが許可されていることを認証する第１の認証手段と、
ここで、該第１のデジタルライセンスは、前記アプリケーションの使用が有効であることを証明するものであり、
前記アプリケーションが前記計算デバイス上で処理されるある時点で、前記第２のコードがトリガされる手段と、
ここで、前記第２のコードは、該アプリケーションが、前記計算デバイス上または前記ＤＲＭシステムに関連して実行されるべきことを決定するためのコードであり、
前記第２のコードにより、前記アプリケーションにおいて、該アプリケーションが、第２のデジタルライセンスに基づいて前記ＤＲＭシステムに接続された状態で実行されることが許可されていることを認証する第２の認証手段と、
ここで、該第２のデジタルライセンスは、前記ＤＲＭシステムと前記アプリケーションとの組み合わせが有効であることを証明するものであって、前記計算デバイス上に存在していることを示す前記アプリケーションの一意なＩＤと前記計算デバイス上に存在していることを示す前記ＤＲＭシステムの一意なＩＤとを有するものであり、
前記第１のデジタルライセンスおよび／又は第２のデジタルライセンスにより実際に、アプリケーションがある機能を行うように実行することが許されると判定した場合にだけ、ＤＲＭシステムによってアプリケーションが実行される手段と
を具え、前記アプリケーションは、保護されていない第１のアプリケーションから前記第１のコードおよび前記第２のコードにより保護された第２のアプリケーションに変換されており、前記第２のアプリケーションは、前記第１のアプリケーションとして機能するが、該第２のアプリケーションを変更することにより、前記アプリケーションが動作しなくなるように制御されたことを特徴とする装置。
【請求項１４】
前記第１の認証手段は、
前記第１のコードにより、前記ＤＲＭシステムが自らの有効性を証明するドキュメントを前記アプリケーションに提出することを該ＤＲＭシステムに要求する手段と、
前記第１のコードは、前記提出されたドキュメントを受け取り、該提出されたドキュメントを検査する手段と、
前記第１のコードにより、前記検査されたドキュメントに基づき、前記ＤＲＭシステムが、前記ＤＲＭデジタルライセンスを行使することができるものとして信頼されるべきかどうかの有効性を判断する手段と、
前記第１のコードにより、前記アプリケーションが前記機能を行うように実行されることが前記ＤＲＭデジタルライセンスによって許されるかどうかを前記ＤＲＭシステムが決定することを要求し、前記ＤＲＭシステムは、その後、前記ＤＲＭデジタルライセンスにおけるあらゆる条項を検討して、その条項が前記アプリケーションのその実行を許すかどうかを決定する手段と、
前記ＤＲＭシステムが、前記信頼されるべきものと判断された場合で、かつ、前記ＤＲＭシステムが、前記ＤＲＭデジタルライセンスにより実際に、前記アプリケーションが前記機能を行うように実行することが許されると判定した場合にだけ、前記アプリケーションを実行する手段と
を含むことを特徴とする請求項１３記載の装置。
【請求項１５】
前記アプリケーションのロード中又は前記アプリケーションの実行中の所定の時点、および周期的から成るグループから選択された時点に応答して、前記第１のコードがトリガされる手段を含むことを特徴とする請求項１４記載の装置。
【請求項１６】
前記第１のコードにより、前記ＤＲＭシステムが、デジタル証明書を提出することによって自らの有効性を証明することを要求し、前記第１のコードにより、前記証明書が有効であるかどうかを判断する手段を含むことを特徴とする請求項１４記載の装置。
【請求項１７】
前記第１のコードにより、前記ＤＲＭシステムが、デジタル署名を提出することによって自らの有効性を証明することを要求し、前記第１のコードにより、前記証明書が検証されるかどうかを判断する手段を含むことを特徴とする請求項１４記載の装置。
【請求項１８】
前記アプリケーションは、ＩＤを有し、前記ライセンスは、アプリケーションＩＤを含む識別情報を有するものであり、
前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを判定する手段と、
前記識別情報の中の前記アプリケーションＩＤが前記アプリケーションの前記ＩＤに一致した場合にだけ、前記アプリケーションを実行する手段と
をさらに具えたことを特徴とする請求項１４記載の装置。
【請求項１９】
前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤ、および前記アプリケーションの前記ＩＤを獲得し、前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを決定する手段を含むことを特徴とする請求項１８記載の装置。
【請求項２０】
前記ＤＲＭシステムにより、前記識別情報の中の前記アプリケーションＩＤを獲得して前記アプリケーションＩＤを前記第１のコードに送り、前記第１のコードにより、前記識別情報の中の前記アプリケーションＩＤが、前記アプリケーションの前記ＩＤに一致するかどうかを判定する手段を含むことを特徴とする請求項１８記載の装置。
【請求項２１】
前記第２の認証手段は、
前記アプリケーションは、ＩＤを有し、前記ＤＲＭシステム又は前記計算デバイスは、ＩＤを有し、また前記ライセンスは、アプリケーションＩＤ、およびＤＲＭシステムＩＤ又は計算デバイスＩＤを有する証明書を含み、これにより当該装置は、
第２のコードにより、前記ライセンスから前記証明書を取得する手段と、
第２のコードにより、前記証明書の中から、前記アプリケーションＩＤ、および前記ＤＲＭシステムＩＤ又は前記計算デバイスＩＤを取得する手段と、
前記第２のコードにより、前記ＤＲＭシステム又は前記計算デバイスから、前記ＤＲＭシステム又は前記計算デバイスの前記ＩＤを取得する手段と、
前記第２のコードにより、前記アプリケーションから、前記アプリケーションの前記ＩＤを取得する手段と、
前記第２のコードにより、前記アプリケーションから取得された前記ＩＤが、前記証明書からの前記アプリケーションＩＤに一致するかどうかを判定する手段と、
前記第２のコードにより、前記ＤＲＭシステムと前記計算デバイスのどちらかから取得された前記ＩＤが、前記証明書からの前記ＤＲＭシステム／計算デバイスＩＤに一致するかどうかを判定する手段と、
前記第２のコードにより、前記アプリケーションから取得された前記ＩＤが、前記証明書からの前記アプリケーションＩＤに一致し、前記ＤＲＭシステムと前記計算デバイスのどちらかから取得された前記ＩＤが、前記証明書からの前記ＤＲＭシステム／計算デバイスＩＤに一致すると決定された場合にだけ、前記アプリケーションを実行する手段と
を含むことを特徴とする請求項１３記載の装置。
【請求項２２】
前記アプリケーションのロード中又は前記アプリケーションの実行中の所定の時点、および周期的から成るグループから選択された時点に応答して、前記第２のコードがトリガされる手段を含むことを特徴とする請求項２１記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルコンテンツにおける権利を行使するためのアーキテクチャに係るアプリケーションの保護のための方法および媒体に関する。より詳細には、本発明は、デジタルコンテンツのユーザによって獲得されたライセンス権利によって指定されたパラメータに従ってのみ暗号化されたデジタルコンテンツへのアクセスを許すというような行使アーキテクチャに関する。さらに詳細には、本発明は、ソフトウェアアプリケーションを保護するのに使用されるアーキテクチャに関する。
【０００２】
＜関連出願の相互参照＞
本出願は、参照によりそれぞれ全体が本明細書に組み込まれている
１９９９年４月１２日に出願した「ENFORCEMENT ARCHITECTURE AND METHOD FOR DIGITAL RIGHTS MANAGEMENT」という名称の米国特許出願番号０９／２９０，３６３、および１９９９年３月２７日に出願した「ENFORCEMENT ARCHITECTURE AND METHOD FOR DIGITAL RIGHTS MANAGEMENT」という名称の米国特許仮出願番号６０，１２６，６１４に関連する。
【０００３】
【従来の技術】
デジタル権利の管理および行使は、デジタルコンテンツがユーザに配布されるデジタルオーディオ、デジタルビデオ、デジタルテキスト、デジタルデータ、デジタルマルチメディアなどのデジタルコンテンツに関連して極めて望ましい。典型的な配布の様式には、磁気（フロッピー（登録商標））ディスク、磁気テープ、光（コンパクト）ディスク（ＣＤ）などの有形のデバイス、ならびに電子掲示板、電子ネットワーク、インターネットなどの無形の媒体が含まれる。ユーザが受け取ると、ユーザは、パーソナルコンピュータ上のメディアプレーヤなどの適切なレンダリングデバイスの助けを借りてデジタルコンテンツをレンダリングする、つまり「再生」する。
【０００４】
通常、作成者、発行者、放送業者などのコンテンツ所有者または権利所有者（以降、「コンテンツ所有者」）は、ライセンス料または何らかの他の対価と引換えにユーザまたは受け手にデジタルコンテンツを配布することを望む。コンテンツ所有者は、選択が与えられるのであれば、ユーザが、配布されたデジタルコンテンツに対して何を行うことができるかを制限することを望む可能性が高い。例えば、コンテンツ所有者は、ユーザが、少なくとも第２のユーザからのライセンス料をコンテンツ所有者に与えないような仕方でコンテンツをコピーして第２のユーザに再配布することを禁止することを望む。
【０００５】
さらに、コンテンツ所有者は、ユーザに実際に購入されたあらゆるタイプのライセンスの条項を守らせながら、異なるライセンス料で異なるタイプの使用ラインセンスを購入する柔軟性をユーザに提供することを望む可能性がある。例えば、コンテンツ所有者は、配布されたデジタルコンテンツが、限られた回数だけ、ある合計時間だけ、あるタイプのマシン上でだけ、あるタイプのメディアプレーヤ上でだけ、あるタイプのユーザによってだけ再生されるのを許すことを望む場合がある。
【０００６】
【発明が解決しようとする課題】
しかし、ユーザにデジタルコンテンツの配布が行われた後、コンテンツ所有者は、デジタルコンテンツに対してほとんど規制を有さない。このことは、実質的にすべての新しいパーソナルコンピュータまたは最新のパーソナルコンピュータが、デジタルコンテンツの正確なデジタルコピーを作成し、正確なデジタルコピーを書込み可能な磁気ディスクまたは光ディスクにダウンロードする、または正確なデジタルコピーをインターネットなどのネットワークを介して任意の宛先に送信するのに必要なソフトウェアおよびハードウェアを含むことに鑑みて特に問題である。
【０００７】
もちろん、ライセンス料が得られた正当な取引の一環として、コンテンツ所有者は、デジタルコンテンツのユーザが、デジタルコンテンツを再配布しないことを約束することを要求することができる。しかし、そのような約束は、簡単に結ばれて簡単に破られる。コンテンツ所有者は、通常、暗号化および暗号化解除が関わるいくつかの周知のセキュリティデバイスの任意のものを介してそのような再配布を防止しようと試みることができる。
【０００８】
しかし、ある程度、決心したユーザが、暗号化されたデジタルコンテンツを暗号化解除し、デジタルコンテンツを暗号化されていない形態で保存した後、そのコンテンツを再配布することを防止するものはほとんど存在しない。
【０００９】
そこで、本発明の目的は、特にデジタルコンテンツの再配布の防止に関して規制が柔軟であり、デジタルコンテンツのコンテンツ所有者によってその規制の定義が可能であり、任意の形態のデジタルコンテンツの規制されたレンダリングまたは再生を可能にした行使アーキテクチャおよび行使方法に係るアプリケーションの保護のための方法および媒体を提供することにある。
【００１０】
また、本発明の他の目的は、レンダリング環境が行使アーキテクチャの少なくとも一部分を含む、パーソナルコンピュータなどの計算デバイス上で規制されたレンダリング環境を提供することにある。レンダリング環境は、デジタルコンテンツが、コンテンツ所有者の規制下にない計算デバイス上でレンダリングされるにしても、コンテンツ所有者によって指定されたとおりにしかレンダリングされることを許さない。
【００１１】
さらに、本発明の他の目的は、信頼される構成要素が、コンテンツ所有者によって許可されていない仕方でデジタルコンテンツにアクセスしようとする計算デバイスのユーザによる試みにさえ抗して、あるデジタルコンテンツに関連して計算デバイス上でコンテンツ所有者の権利を行使する、計算デバイス上で実行される信頼される構成要素を提供することにある。１例として、信頼されるソフトウェア構成要素は、計算デバイスのユーザが、デジタルコンテンツのコンテンツ所有者によって許可されている形を除き、デジタルコンテンツのコピーを作成するのを防止する。
【００１２】
最後に、本発明の他の目的は、デジタル権利管理アーキテクチャがソフトウェアアプリケーションの保護をサポートすることを可能にする方法および機構を提供することにある。より詳細には、通常のソフトウェアアプリケーションが、多数の構成ファイルからなる可能性があることに留意すると、デジタル権利管理アーキテクチャが、ソフトウェアアプリケーションが、アプリケーションの所有者によって望まれない形で使用されることを防ぐことを可能にする方法および機構の必要性が存在する。
【００１３】
【課題を解決するための手段】
前述した必要性は、アーキテクチャおよび方法が、インターネット、光ディスクなどの媒体上で利用可能な保護された（セキュアな）デジタルコンテンツにおける権利を行使する、デジタル権利管理のための行使アーキテクチャおよび行使方法によって少なくともある程度、満たされる。コンテンツを供与するため、このアーキテクチャは、インターネットなどを介して暗号化された形態でデジタルコンテンツがアクセス可能であるコンテンツサーバを含む。また、コンテンツサーバは、光ディスク等の上に記録するために暗号化されたデジタルコンテンツを供給することも可能であり、暗号化されたデジタルコンテンツを光ディスク自体の上で配布することができる。コンテンツサーバにおいて、デジタルコンテンツは、暗号化鍵を使用して暗号化され、デジタルコンテンツをユーザの計算デバイスまたはクライアントマシンにおいてデジタルライセンスとバインドするのに公開鍵／秘密鍵技術が使用される。
【００１４】
ユーザが、計算デバイス上でデジタルコンテンツをレンダリングしようと試みたとき、レンダリングアプリケーションが、ユーザの計算デバイス上でデジタル権利管理（ＤＲＭ）システムを起動する。ユーザが、初めてそのデジタルコンテンツをレンダリングしようと試みている場合、ＤＲＭシステムは、求めている仕方でデジタルコンテンツをレンダリングするライセンスを獲得するようライセンスサーバにユーザを導くか、またはユーザ側でアクションを全く必要とすることなくライセンスサーバからライセンスをトランスペアレントに獲得する。ライセンスは、以下のものを含む。
−暗号化されたデジタルコンテンツを暗号化解除する暗号化解除鍵（ＫＤ）。
−記述がデジタル可読形態である場合、ライセンスによって与えられる権利（再生、コピー等）、および関連する条件（開始日、失効日、再生の回数等）の記述。
−ライセンスの完全性を保証するデジタル署名。
【００１５】
ユーザが、ライセンスサーバからそのようなライセンスを獲得すること無しに暗号化されたデジタルコンテンツを暗号化解除してレンダリングすることができてはならない。獲得されたライセンスはユーザの計算デバイス内のライセンスストアに格納される。
【００１６】
重要なことには、ライセンスサーバは、「信頼される」（すなわち、自らを認証することができる）ＤＲＭシステムだけにライセンスを発行する。「信頼」を実装するため、ＤＲＭシステムは、ＤＲＭシステムのために暗号化解除機能および暗号化機能を行う「ブラックボックス」を備えている。ブラックボックスは、公開鍵／秘密鍵ペア、バージョン番号、および固有署名を含み、以上すべてが、承認された認定機関によって提供されるものである。公開鍵は、発行されるライセンスの部分を暗号化し、これにより、ライセンスをブラックボックスにバインドする目的でライセンスサーバに供与される。秘密鍵は、対応する公開鍵を使用して暗号化された情報を暗号化解除する目的で、ブラックボックスにだけ利用可能であり、ユーザまたは他の何人にも利用可能ではない。ＤＲＭシステムは、最初、公開鍵／秘密鍵ペアを有するブラックボックスを備え、ユーザは、ライセンスを最初に要求したとき、ブラックボックスサーバから更新されたセキュアなブラックボックスをダウンロードするように促される。ブラックボックスサーバは、固有の公開鍵／秘密鍵ペアとともに更新されたブラックボックスを提供する。更新されたブラックボックスは、ユーザの計算デバイス上でだけ実行される固有の実行可能コードで書かれ、定期的に再更新される。
【００１７】
ユーザが、ライセンスを要求したとき、クライアントマシンは、ブラックボックスの公開鍵、バージョン番号、および署名をライセンスサーバに送り、ライセンスサーバは、バージョン番号が最新であり、署名が有効である場合にだけ、ライセンスを発行する。また、ライセンス要求は、行われたライセンスの要求が関係するデジタルコンテンツの識別、および要求されたデジタルコンテンツに関連する暗号化解除鍵を特定する鍵ＩＤも含む。ライセンスサーバは、ブラックボックス公開鍵を使用して暗号化解除鍵を暗号化し、暗号化解除鍵を使用してライセンス条項を暗号化した後、暗号化された暗号化解除鍵および暗号化されたライセンス条項をライセンス署名とともにユーザの計算デバイスにダウンロードする。
【００１８】
ダウンロードされたライセンスが、ＤＲＭシステムライセンスストアの中に記憶されると、ユーザは、ライセンスによって与えられ、ライセンス条項によって指定された権利に従ってデジタルコンテンツをレンダリングすることができる。デジタルコンテンツをレンダリングする要求が行われたとき、ブラックボックスが、暗号化解除鍵およびライセンス条項を暗号化解除するようにさせられ、またＤＲＭシステムライセンスイバリュエータ（ｅｖａｌｕａｔｏｒ）が、ライセンス条項を評価する。ブラックボックスは、ライセンス評価により、要求者が、コンテンツを再生することが許されているという判定がもたらされる場合にだけ暗号化されたデジタルコンテンツを暗号化解除する。暗号化解除されたコンテンツが、レンダリングのためにレンダリングアプリケーションに提供される。
【００１９】
本発明の一実施形態では、デジタル権利管理（ＤＲＭ）システム、アプリケーション、およびアプリケーションに関するＤＲＭデジタルライセンスがすべて計算デバイス上にある。アプリケーションは、ある機能を行うように実行されるものであり、ライセンスに基づいてアプリケーションがその機能を行うように実行されることが許されていることをＤＲＭシステムが判定することを要求するコードを含む。コードは、トリガされたとき、ＤＲＭシステムが、ドキュメントを提出することによって有効性を証明することを要求し、提出されたドキュメントを受け取り、そのドキュメントを検査し、提出されたドキュメントに基づき、ＤＲＭシステムが、有効であり、ライセンスを行使するものとして信頼されるかどうかを判断する。また、コードは、ＤＲＭシステムは、ライセンスにより、アプリケーションが、機能を行うように実行することを許すかどうかを判定するように要求し、その後、ＤＲＭシステムは、ライセンスの中のあらゆる条項を検査して、条項によりアプリケーションの実行が許されるかどうかを判定する。次に、ＤＲＭシステムが、ライセンスによって実際にアプリケーションが機能を行うように実行することを許すと判定した場合にだけ、アプリケーションが実行される。
【００２０】
アプリケーションは、そのアプリケーションが、計算デバイスの１つの上で、またはＤＲＭシステムに関連して実行されることを判定するためのコードをさらに含む。コードは、トリガされたとき、証明書からアプリケーションＩＤ、およびＤＲＭシステムＩＤと計算デバイスＩＤのどちらかを獲得し、またＤＲＭシステムと計算デバイスのどちらかからＩＤを取得し、アプリケーションからそのアプリケーションのＩＤを取得する。次に、コードは、アプリケーションから取得されたＩＤが、証明書からのアプリケーションＩＤに一致するかどうかを判定し、またＤＲＭシステムと計算デバイスのどちらかから取得されたＩＤが、証明書からのＤＲＭシステム／計算デバイスＩＤに一致するかどうかを判定する。次に、アプリケーションから取得されたＩＤが、証明書からのアプリケーションＩＤに一致し、ＤＲＭシステムと計算デバイスのどちらかから取得されたＩＤが、証明書からのＤＲＭシステム／計算デバイスＩＤに一致する場合にだけ、アプリケーションが実行される。
【００２１】
以上の概要、および本発明の実施形態の以下の詳細な説明は、添付の図面と併せて読まれるとき、よりよく理解される。本発明を例示するため、図面には、現在、好ましいとされる実施形態を示している。ただし、理解されるべきこととして、本発明は、図示した構成および手段（ｉｎｓｔｒｕｍｅｎｔａｌｉｔｉｅｓ）には限定されない。
【００２２】
【発明の実施の形態】
同様の符号が、すべての図面にわたって同様の要素を指すように使用される図面を詳細に参照すると、図１に、本発明の一実施形態による行使アーキテクチャ１０が示されている。全体として、行使アーキテクチャ１０により、デジタルコンテンツ１２の所有者が、デジタルコンテンツ１２がユーザの計算デバイス１４上でレンダリングされることが許されるには、まず満たされなければならないライセンス規則を指定することが可能になる。ライセンス規則は、ユーザ／ユーザの計算デバイス１４（以降、状況により別段、必要とされない限り、これらの用語は区別しない）が、コンテンツ所有者、またはコンテンツ所有者の代理業者から獲得しなければならないデジタルライセンス１６の中で実現される。デジタルコンテンツ１２は、暗号化された形態で配布され、無料で広汎に配布されることが可能である。好ましくは、デジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）が、ライセンス１６に含められる。
【００２３】
＜コンピュータ環境＞
図１２、および以下の考察は、本発明および／または本発明の部分を実施することができる適切な計算環境の簡単な一般的説明を提供するものとする。必須ではないが、本発明は、サーバ上のクライアントワークステーションなどのコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。さらに、本発明、および／または本発明の部分は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等を含め、他のコンピュータシステム構成で実施してもよいことを理解されたい。また、本発明は、タスクが、通信網を介してリンクされた遠隔処理デバイスによって行われる分散計算環境において実施してもよい。分散計算環境では、プログラムモジュールが、ローカルのメモリ記憶デバイスと遠隔の記憶デバイスの両方の中に配置されることが可能である。
【００２４】
図１２に示すとおり、例としての汎用計算システムには、処理ユニット１２１、システムメモリ１２２、およびシステムメモリから処理ユニット１２１までを含む様々なシステム構成要素を結合するシステムバス１２３を含む、従来のパーソナルコンピュータ１２０等が含まれる。システムバス１２３は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造の任意のものであることが可能である。システムメモリは、読取り専用メモリ（ＲＯＭ）１２４、およびランダムアクセスメモリ（ＲＡＭ）１２５を含む。始動中などに、パーソナルコンピュータ１２０内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力／出力システム１２６（ＢＩＯＳ）が、ＲＯＭ１２４の中に記憶される。
【００２５】
パーソナルコンピュータ１２０は、ハードディスク（図示せず）に対して読取りおよび書込みを行うためのハードディスクドライブ１２７、取外し可能な磁気ディスク１２９に対して読取りおよび書込みを行うための磁気ディスクドライブ１２８、およびＣＤ−ＲＯＭ、または他の光媒体などの取外し可能な光ディスク１３１に対して読取りおよび書込みを行うための光ディスクドライブ１３０をさらに含むことが可能である。ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０は、それぞれ、ハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光ドライブインターフェース１３４でシステムバス１２３に接続される。以上のドライブ、および関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストーレッジがパーソナルコンピュータ２０に提供される。
【００２６】
本明細書で説明する例としての実施形態は、ハードディスク、取外し可能な磁気ディスク１２９、および取外し可能な光ディスク１３１を使用するが、コンピュータがアクセスすることが可能なデータを記憶することができる他のタイプのコンピュータ可読媒体も、例としての動作環境において使用できることを理解されたい。そのような他のタイプの媒体には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）等が含まれる。
【００２７】
オペレーティングシステム１３５、１つまたは複数のアプリケーションプログラム１３６、その他のプログラムモジュール１３７、およびプログラムデータ１３８を含め、いくつかのプログラムモジュールをハードディスク、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４、またはＲＡＭ１２５に記憶することができる。ユーザは、キーボード１４０やポインティングデバイス１４２などの入力デバイスを介してパーソナルコンピュータ１２０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース１４６を介して処理ユニット１２１に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）（ＵＳＢ）などの他のインターフェースで接続してもよい。また、モニタ１４７、または他のタイプの表示デバイスも、ビデオアダプタ１４８などのインターフェースを介してシステムバス１２３に接続される。モニタ１４７に加えて、パーソナルコンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス（図示せず）も含む。また、図１２の例としてのシステムは、ホストアダプタ１５５、スモールコンピュータシステムインターフェース（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）（ＳＣＳＩ）バス１５６、およびＳＣＳＩバス１５６に接続された外部記憶デバイス１６２も含む。
【００２８】
パーソナルコンピュータ１２０は、遠隔コンピュータ１４９のような１つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。遠隔コンピュータ１４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、パーソナルコンピュータ１２０に関連して前述した要素の多く、またはすべてを含むが、図１２では、メモリ記憶デバイス１５０だけを示している。図１２に描いた論理接続は、ローカルエリアネットワーク（ＬＡＮ）１５１、およびワイドエリアネットワーク（ＷＡＮ）１５２を含む。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００２９】
ＬＡＮネットワーキング環境で使用されるとき、パーソナルコンピュータ１２０は、ネットワークインターフェース、またはネットワークアダプタ１５３を介してＬＡＮ１５１に接続される。ＷＡＮネットワーキング環境で使用されるとき、パーソナルコンピュータ１２０は、通常、インターネットなどのワイドエリアネットワーク１５２を介して通信を確立するためのモデム１５４、または他の手段を含む。内部にあることも、外部にあることも可能なモデム１５４は、シリアルポートインターフェース１４６を介してシステムバス１２３に接続される。ネットワーク化された環境では、パーソナルコンピュータ１２０に関連して描いたプログラムモジュール、またはプログラムモジュールの部分が、遠隔メモリ記憶デバイスの中に記憶されることが可能である。図示したネットワーク接続は、例としてのものであり、コンピュータ間で通信リンクを確立する他の手段も使用できることが理解されよう。
【００３０】
＜アーキテクチャ＞
図１を再び参照すると、本発明の一実施形態では、アーキテクチャ１０が、オーサリングツール（ａｕｔｈｏｒｉｎｇ  ｔｏｏｌ）１８、コンテンツ−鍵データベース２０、コンテンツサーバ２２、ライセンスサーバ２４、およびブラックボックスサーバ２６、ならびに前述したユーザの計算デバイス１４を含む。
【００３１】
＜アーキテクチャ−オーサリングツール１８＞
オーサリングツール１８は、デジタルコンテンツ１２をパッケージ化して、本発明のアーキテクチャ１０に関連して使用するのに適した形態にするためにコンテンツ所有者によって使用される。詳細には、コンテンツ所有者が、デジタルコンテンツ１２、デジタルコンテンツ１２に付随すべき命令および／または規則、およびデジタルコンテンツ１２がどのようにパッケージ化されるべきかに関する命令および／または規則をオーサリングツール１８に提供する。次に、オーサリングツール１８が、暗号化／暗号化解除鍵、およびデジタルコンテンツ１２に付随する命令および／または規則に従ってデジタルコンテンツ１２が暗号化されたデジタルコンテンツパッケージ１２ｐを生成する。
【００３２】
本発明の一実施形態では、オーサリングツール１８は、異なる暗号化／暗号化解除鍵に従って暗号化された同一のデジタルコンテンツ１２をそれぞれが有するいくつかの異なるデジタルコンテンツ１２パッケージ１２ｐを連続的に生成するように命令される。理解されるべきこととして、同一のデジタルコンテンツ１２を有するいくつかの異なるパッケージ１２ｐを有することは、パッケージ１２ｐ／コンテンツ１２（以降、別段、必要とされない限り、単に「デジタルコンテンツ１２」）の配布を追跡するのに役立つ可能性がある。そのような配布追跡は、通常、必要ないが、デジタルコンテンツ１２が違法に販売された、または放送された場合、調査機関によって使用されることが可能である。
【００３３】
本発明の一実施形態では、デジタルコンテンツ１２を暗号化する暗号化／暗号化解除鍵は、暗号化鍵が暗号化解除鍵（ＫＤ）でもあることで、対称鍵である。以下により詳細に述べるとおり、暗号化解除鍵（ＫＤ）は、デジタルコンテンツ１２に関するライセンス１６の一部として隠された形態でユーザの計算デバイス１４に送られる。好ましくは、各デジタルコンテンツ１２は、コンテンツＩＤを備え（または各パッケージ１２ｐが、パッケージＩＤを備え）、各暗号化解除鍵（ＫＤ）が、鍵ＩＤを有し、またオーサリングツール１８により、各デジタルコンテンツ１２（または各パッケージ１２ｐ）に関する暗号化解除鍵（ＫＤ）、鍵ＩＤ、およびコンテンツＩＤ（またはパッケージＩＤ）が、コンテンツ−鍵データベース２０の中に記憶させられる。さらに、デジタルコンテンツ１２に関して発行されるライセンス１６のタイプに関するライセンスデータ、および各タイプのライセンス１６に関する条項および条件が、コンテンツ−鍵データベース２０、あるいは別のデータベース（図示せず）の中に記憶されることが可能である。好ましくは、ライセンスデータは、状況、および市場の条件によって必要となるに応じて、コンテンツ所有者によって変更されることが可能である。
【００３４】
使用時に、オーサリングツール１８には、とりわけ、以下を含む情報が供給される。
−パッケージ化されるべきデジタルコンテンツ１２。
−透かし入れ（ｗａｔｅｒｍａｒｋｉｎｇ）、および／または指紋入れ（ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ）が使用される場合、透かし入れ、および／または指紋入れのタイプおよびパラメータ。
−データ圧縮が使用される場合、データ圧縮のタイプおよびパラメータ。
−使用される暗号化のタイプおよびパラメータ。
−シリアル化（ｓｅｒｉａｌｉｚａｔｉｏｎ）が使用される場合、シリアル化のタイプおよびパラメータ。
−デジタルコンテンツ１２に付随すべき命令および／または規則。
【００３５】
周知のとおり、透かしは、識別子としてデジタルコンテンツ１２に追加される、隠されたコンピュータ可読の信号である。指紋は、各インスタンスに関して異なる透かしである。理解されるべきこととして、インスタンスは、固有であるデジタルコンテンツ１２のバージョンである。任意のインスタンスの複数のコピーを作成することができ、またあらゆるコピーは、特定のインスタンスのものである。デジタルコンテンツの特定のインスタンスが違法に販売された、または放送されたとき、調査機関が、場合により、デジタルコンテンツ１２に追加された透かし／指紋に従って容疑者を特定することが可能である。
【００３６】
データ圧縮は、本発明の趣旨および範囲を逸脱することなく、任意の適切な圧縮アルゴリズムに従って行われることが可能である。例えば、．ｍｐ３圧縮アルゴリズム、または．ｗａｖ圧縮アルゴリズムを使用することができる。もちろん、デジタルコンテンツ１２が、既に圧縮された状態にあることも可能であり、その場合、さらなる圧縮は必要ない。
【００３７】
デジタルコンテンツ１２に付随すべき命令および／または規則には、本発明の趣旨および範囲を逸脱することなく、実質的にあらゆる適切な命令、規則、または他の情報が含まれることが可能である。以下に述べるとおり、付随する命令／規則／情報は、主に、デジタルコンテンツ１２をレンダリングするライセンス１６を獲得するためにユーザ、およびユーザの計算デバイス１４によって使用される。したがって、付随する命令／規則／情報には、以下により詳細に説明するとおり、適切にフォーマットされたライセンス獲得スクリプト等が含まれることが可能である。追加として、または別法として、付随する命令／規則／情報には、ユーザにデジタルコンテンツ１２のプレビューを提供するように設計された「プレビュー」情報が含まれることが可能である。
【００３８】
供給された情報を使用して、オーサリングツール１８は、デジタルコンテンツ１２に対応する１つまたは複数のパッケージ１２ｐを生成する。次に、各パッケージ１２ｐを世界に配布するためにコンテンツサーバ２２上に記憶することができる。
【００３９】
本発明の一実施形態では、図２を参照すると、オーサリングツール１８は、指定し、操作することが可能な入力パラメータを受け取る動的オーサリングツール１８である。したがって、オーサリングツール１８は、複数のデジタルコンテンツ１２に関して複数の変種のパッケージ１２ｐを迅速に生成することができる。好ましくは、入力パラメータは、図示するとおり、情報２８の形態で実現され、辞書２８は、以下のようなパラメータを含む。
−デジタルコンテンツ１２を有する入力ファイル２９ａの名前。
−行われるべき符号化のタイプ。
−使用されるべき暗号化／暗号化解除鍵（ＫＤ）。
−デジタルコンテンツ１２とともにパッケージ１２ｐの中にパッケージ化されるべき付随する命令／規則／情報（「ヘッダ情報」）。
−行われるべき多重化（ｍｕｘｉｎｇ）のタイプ。
−デジタルコンテンツ１２に基づいてパッケージ１２ｐが書き込まれるべき出力ファイル２９ｂの名前。
【００４０】
理解されるべきこととして、辞書２８は、オーサリングツール１８のオペレータ（人間またはマシン）によって容易かつ迅速に変更可能であり、したがって、オーサリングツール１８によって行われるオーサリングのタイプも同様に、動的な仕方で容易かつ迅速に変更可能である。本発明の一実施形態では、オーサリングツール１８は、人間のオペレータに対してコンピュータスクリーン上で表示可能なオペレータインターフェース（図示せず）を含む。したがって、オペレータは、そのインターフェースを使用して辞書２８を変更することができ、またさらに、そのインターフェースを使用して辞書２８を変更する際に適切な支援および／または制限を受けることが可能である。
【００４１】
オーサリングツール１８内部で、図２に見られるとおり、ソースフィルタ１８ａが、デジタルコンテンツ１２を有する入力ファイル２９ａを辞書２８から受け取り、その入力ファイルからデジタルコンテンツ１２を取得して、デジタルコンテンツ１２をＲＡＭなどのメモリ２９ｃの中に入れる。次に、符号化フィルタ１８ｂが、メモリ２９ｃの中のデジタルコンテンツ１２に対して符号化を行い、辞書２８の中で指定される符号化のタイプに従ってファイルを入力形式から出力形式に（すなわち、．ｗａｖから．ａｓｐに、．ｍｐ３から．ａｓｐになど）転換し、符号化されたデジタルコンテンツ１２をメモリ２９ｃの中に入れる。図示するとおり、パッケージ化されるべきデジタルコンテンツ（例えば、音楽）が、．ｗａｖ形式または．ｍｐ３形式などの圧縮された形式で受け取られ、．ａｓｐ（アクティブストリーミングプロトコル（ａｃｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｐｒｏｔｏｃｏｌ））形式などの形式に変換される。もちろん、本発明の趣旨および範囲を逸脱することなく、他の入力形式および出力形式を使用することができる。
【００４２】
その後、暗号化フィルタ１８ｃが、辞書２８の中で指定された暗号化／暗号化解除鍵（ＫＤ）に従ってメモリ２９ｃの中の符号化されたデジタルコンテンツ１２を暗号化し、暗号化されたデジタルコンテンツ１２をメモリ２９ｃの中に入れる。次に、ヘッダフィルタ１８ｄが、辞書２８の中で指定されたヘッダ情報をメモリ２９ｃの中の暗号化されたデジタルコンテンツ１２に追加する。
【００４３】
理解されるべきこととして、状況に応じて、パッケージ１２ｐは、複数のストリームが多重化された（すなわち、「ｍｕｘ処理」された）時間的に揃えられたデジタルコンテンツ１２の複数のストリーム（図２では、１つのストリームを示している）を含むことが可能である。したがって、多重化フィルタ（ｍｕｘ  ｆｉｌｔｅｒ）１８ｅが、辞書２８の中で指定された多重化のタイプに従ってメモリ２９ｃの中のヘッダ情報および暗号化されたデジタルコンテンツ１２に対して多重化を行い、その結果をメモリ２９ｃの中に入れる。次に、ファイルライタフィルタ（ｆｉｌｅ  ｗｒｉｔｅｒ  ｆｉｌｔｅｒ）１８ｆが、その結果をメモリ２９ｃから取得し、辞書２８の中で指定された出力ファイル２９ｂにその結果をパッケージ１２ｐとして書き込む。
【００４４】
ある状況では、行われるべき符号化のタイプは、通常、変化しないことに留意されたい。多重化のタイプは、通常、符号化のタイプに基づくので、同様に、多重化のタイプも、変化しないことが通例である。実際に変化しない場合、辞書２８は、符号化のタイプおよび／または多重化のタイプに関するパラメータを含む必要がない。実際、符号化のタイプが、符号化フィルタの中に「配線によって組まれ（ｈａｒｄｗｉｒｅｄ）」、かつ／または多重化のタイプが、多重化フィルタの中に「配線によって組まれる」だけでよい。もちろん、本発明の趣旨および範囲を逸脱することなく、状況によって必要とされるのに応じて、オーサリングツール１８は、前述したフィルタのすべてを含むこと、または他のフィルタを含むことが可能であり、またあらゆる含まれるフィルタが、配線によって組まれる、または辞書２８の中で指定されたパラメータに従って機能を行うことが可能である。
【００４５】
好ましくは、オーサリングツール１８は、適切なソフトウェアを使用して適切なコンピュータ上、プロセッサ上、または他の計算マシン上に実装される。そのようなマシン、およびそのようなソフトウェアの構造および動作は、本明細書の開示に基づいて明白であるはずであり、したがって、本開示において詳述することは必要ない。
【００４６】
＜アーキテクチャ−コンテンツサーバ２２＞
図１を再び参照すると、本発明の一実施形態では、コンテンツサーバ２２が、オーサリングツール１８によって生成されたパッケージ１２ｐを配信するか、または別の形で取得のために供与する。パッケージ１２ｐは、本発明の趣旨および範囲を逸脱することなく、コンテンツサーバ２２が要求するのに応じて任意の適切な配信チャネルを使用して配信されることが可能である。例えば、配信チャネルは、インターネットまたは別のネットワーク、電子掲示板、電子メール等であることが可能である。コンテンツサーバ２２を使用してパッケージ１２ｐを磁気ディスク、または光ディスク、あるいはその他の記憶デバイスにコピーすることができ、次に、記憶デバイスを配布することができる。
【００４７】
コンテンツサーバ２２は、信頼問題またはセキュリティ問題を顧慮せずにパッケージ１２ｐを配信することが認められよう。以下で述べるとおり、そのような問題は、ライセンスサーバ２４、およびライセンスサーバ２４とユーザの記憶デバイス１４の間の関係に関連して対処される。本発明の一実施形態では、コンテンツサーバ２２は、デジタルコンテンツ１２を要求するあらゆる配信先（ｄｉｓｔｒｉｂｕｔｅｅ）にデジタルコンテンツ１２を有するパケット１２ｐを自由にリリースし、配信する。ただし、コンテンツサーバ２２は、配信に先立って所定の配信料の支払いをまず要求する、あるいは配信先が自らを認証することを要求する、あるいは実際に、配信先の識別に基づいて配信が行われるべきかどうかを決定することが可能である。
【００４８】
さらに、予期されるデマンドを満たすように事前にいくつかの異なるパッケージ１２ｐを生成するようにオーサリングツール１８を制御することにより、コンテンツサーバ２２を使用してインベントリ（ｉｎｖｅｎｔｏｒｙ）管理を行うことができる。例えば、サーバは、同一のデジタルコンテンツ１２に基づいて１００のパッケージを生成し、各パッケージ１２ｐを１０回、提供することが可能である。例えば、パッケージ１２ｐの供給が、２０まで減少すると、コンテンツサーバ２２は、やはり例として、８０のさらなるパッケージ１２ｐを生成するようにオーサリングツール１８を導くことができる。
【００４９】
好ましくは、アーキテクチャ１０におけるコンテンツサーバ２２は、以下により詳細に説明するとおり、ライセンス１６を評価し、対応するデジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）を獲得するプロセスの一環として使用される固有の公開鍵／秘密鍵ペア（ＰＵ−ＣＳ、ＰＲ−ＣＳ）を有する。周知のとおり、公開鍵／秘密鍵ペアは、鍵ペアの鍵の１つで暗号化されたものが、鍵ペアの鍵の他方によってだけ暗号化解除することができることで、非対称鍵である。公開鍵／秘密鍵ペア暗号化システムでは、公開鍵は、世界に知らせてもよいが、秘密鍵は、秘密鍵の所有者によって常に秘密に保たれなければならない。したがって、コンテンツサーバ２２は、秘密鍵（ＰＲ−ＣＳ）を使用してデータを暗号化した場合、暗号化解除の目的で、公開鍵（ＰＵ−ＣＳ）とともにその暗号化されたデータを世界に送り出すことができる。したがって、外部デバイスが、コンテンツサーバ２２だけがデータを暗号化解除することができるようにデータをコンテンツサーバ２２に送ることを望む場合、外部デバイスは、まず、そのコンテンツサーバ２２の公開鍵（ＰＵ−ＣＳ）を獲得し、次に、その公開鍵を使用してデータを暗号化しなければならない。したがって、次に、コンテンツサーバ２２が（また、コンテンツサーバ２２だけが）、その秘密鍵（ＰＲ−ＣＳ）を使用して暗号化されたデータを暗号化解除することができる。
【００５０】
オーサリングツール１８と同様に、コンテンツサーバ２２も、適切なソフトウェアを使用して適切なコンピュータ上、プロセッサ上、またはその他の計算マシン上で実装される。そのようなマシンおよびそのようなソフトウェアの構造および動作は、本明細書の開示に基づいて明白であるはずであり、したがって、本開示で詳述することは必要ない。本発明の一実施形態では、オーサリングツール１８、およびコンテンツサーバ２２が、それぞれ別個の作業スペース内で、単一のコンピュータ上、単一のプロセッサ上、または単一の他の計算マシン上に常駐することが可能である。さらに、コンテンツサーバ２２は、ある状況では、前述したとおり、オーサリングツール１８を含むことが可能であり、かつ／またはオーサリングツール１８の機能を行うことが可能であることを認識されたい。
【００５１】
＜デジタルコンテンツパッケージ１２ｐの構造＞
次に、図３を参照すると、本発明の一実施形態では、コンテンツサーバ２２によって配信されるデジタルコンテンツパッケージ１２ｐが、以下のものを含む。
−前述したとおり、暗号化／暗号化解除鍵（ＫＤ）を使用して暗号化されたデジタルコンテンツ１２（すなわち、（ＫＤ（ＣＯＮＴＥＮＴ）））、
−デジタルコンテンツ１２（またはパッケージ１２ｐ）のコンテンツＩＤ（またはパッケージＩＤ）、
−暗号化解除鍵（ＫＤ）の鍵ＩＤ。
−好ましくは、暗号化されていない形態のライセンス獲得情報。
−コンテンツサーバ２２秘密鍵（ＰＲ−ＣＳ）で署名されたコンテンツサーバ２２公開鍵（ＰＵ−ＣＳ）を暗号化する鍵ＫＤ（すなわち、（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ）））。
【００５２】
（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））に関して、このアイテムは、以下に説明するとおり、デジタルコンテンツ１２および／またはパッケージ１２ｐを検証することに関連して使用されることを理解されたい。デジタル署名（以下を参照）を有する証明書とは異なり、（ＫＤ（ＰＵ−ＣＳ））を得るのに鍵（ＰＵ−ＣＳ）は必要ない。代わりに、鍵（ＰＵ−ＣＳ）は、単に暗号化解除鍵を適用することによって獲得される。獲得されると、その鍵（ＰＣ−ＣＳ）を使用して署名（Ｓ（ＰＲ−ＣＳ））の有効性を試験することができる。
【００５３】
また、パッケージ１２ｐがオーサリングツール１８によって構成されるには、オーサリングツール１８が、想定では、辞書２８によって供給されるヘッダ情報として、ライセンス獲得情報、および（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））を既に所有していなければならない。さらに、オーサリングツール１８とコンテンツサーバ２２が、想定では、（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））を構成するように対話しなければならない。この対話は、例えば、以下のステップを含むことが可能である。
−（ＰＵ−ＣＳ）をオーサリングツール１８に送るコンテンツサーバ２２。
−（ＫＤ）を使用して（ＰＵ−ＣＳ）を暗号化して（ＫＤ（ＰＵ−ＣＳ））を生成するオーサリングツール１８。
−（ＫＤ（ＰＵ−ＣＳ））をコンテンツサーバ２２に送るオーサリングツール１８。
−（ＰＲ−ＣＳ）を使用して（ＫＤ（ＰＵ−ＣＳ））に署名して（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））を生成するコンテンツサーバ２２。
−（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））をオーサリングツール１８に送るコンテンツサーバ２２。
【００５４】
＜アーキテクチャ−ライセンスサーバ２４＞
図１を再び参照すると、本発明の一実施形態では、ライセンスサーバ２４が、デジタルコンテンツ１２に関連してユーザの計算デバイス１４からライセンス１６の要求を受け取る機能、ユーザの計算デバイス１４が、発行されたライセンス１６を遵守するものとして信頼できるかどうかを判定する機能、ライセンス１６を交渉する機能、ライセンス１６を構成する機能、およびライセンス１６をユーザの計算デバイス１４に伝送する機能を行う。好ましくは、伝送されるライセンス１６は、デジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）を含む。このライセンスサーバ２４、および以上の機能を以下により詳細に説明する。好ましくは、コンテンツサーバ２２と同様に、アーキテクチャ１０におけるライセンスサーバ２４は、以下により詳細に説明するとおり、ライセンス１６を評価し、対応するデジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）を獲得するプロセスの一環として使用される固有の公開鍵／秘密鍵ペア（ＰＵ−ＬＳ、ＰＲ−ＬＳ）を有する。
【００５５】
オーサリングツール１８およびコンテンツサーバ２２と同様に、ライセンスサーバ２４は、適切なソフトウェアを使用して適切なコンピュータ上、プロセッサ上、または他の計算マシン上に実装される。そのようなマシンおよびそのようなソフトウェアの構造および動作は、本明細書の開示に基づいて明白であるはずであり、したがって、本開示において詳述する必要はない。さらに、本発明の一実施形態では、オーサリングツール１８および／またはコンテンツサーバ２２が、ライセンスサーバ２４とともに、それぞれ別個の作業スペース内で、単一のコンピュータ上、単一のプロセッサ上、または単一の他の計算マシン上に常駐することが可能である。
【００５６】
本発明の一実施形態では、ライセンス１６の発行に先立って、ライセンスサーバ２４とコンテンツサーバ２２は、ライセンスサーバ２４が、実際に、コンテンツサーバ２２によって配信されるデジタルコンテンツ１２の少なくとも一部分に関してライセンス機関（ｌｉｃｅｎｓｉｎｇ  ａｕｔｈｏｒｉｔｙ）となることに合意する代理契約（ａｇｅｎｃｙ  ａｇｒｅｅｍｅｎｔ）等を結ぶ。理解されるべきこととして、本発明の趣旨および範囲を逸脱することなく、１つのコンテンツサーバ２２が、いくつかのライセンスサーバ２４と代理契約等を結ぶことができ、かつ／または１つのライセンスサーバ２４が、いくつかのコンテンツサーバ２２と代理契約等を結ぶことができる。
【００５７】
好ましくは、ライセンスサーバ２４は、実際に、自らが、コンテンツサーバ２２によって配信されるデジタルコンテンツ１２に関するライセンス１６を発行する権限を有することを世界に示すことができる。これを行うため、ライセンスサーバ２４が、コンテンツサーバ２２にライセンスサーバ２４公開鍵（ＰＵ−ＬＳ）を送り、また次に、コンテンツサーバ２２が、ライセンスサーバ２４に、コンテンツサーバ２２秘密鍵で署名されたコンテンツ（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−ＣＳ））としてＰＵ−ＬＳを含むデジタル証明書を送ることが好ましい。理解されるべきこととして、証明書の中のコンテンツ（ＰＵ−ＬＳ）には、コンテンツサーバ２２公開鍵（ＰＵ−ＣＳ）を使用してだけアクセスすることが可能である。やはり理解されるべきこととして、一般に、基底のデータのデジタル署名は、そのデータの暗号化された形態であり、そのデータが改ざんされている場合、または別の仕方で変更されている場合、そのデータにマッチしない。
【００５８】
デジタルコンテンツ１２に関連するライセンス機関として、またライセンス機能の一環として、ライセンスサーバ２４は、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）へのアクセスを有さなければならない。したがって、ライセンスサーバ２４が、デジタルコンテンツ１２（またはパッケージ１２ｐ）に関する暗号化解除鍵（ＫＤ）、鍵ＩＤ、およびコンテンツＩＤ（またはパッケージＩＤ）を有するコンテンツ鍵データベース２０にアクセスを有することが好ましい。
【００５９】
＜アーキテクチャ−ブラックボックスサーバ２６＞
やはり図１を参照すると、本発明の一実施形態では、ブラックボックスサーバ２６が、ユーザの計算デバイス１４における新しいブラックボックス３０をインストールする機能、および／またはアップグレードする機能を行う。以下により詳細に説明するとおり、ブラックボックス３０は、ユーザの計算デバイス１４のために暗号化機能、および暗号化解除機能を行う。やはり、以下により詳細に説明するとおり、ブラックボックス３０は、攻撃に対してセキュアであり、保護されているものとされる。このセキュリティおよび保護は、以下により詳細に説明するとおり、少なくともある程度、ブラックボックスサーバ２６を使用して、必要に応じて、ブラックボックス３０を新しいバージョンにアップグレードすることによって提供される。
【００６０】
オーサリングツール１８と同様に、コンテンツサーバ２２、ライセンスサーバ２４、およびブラックボックスサーバ２６は、適切なソフトウェアを使用して適切なコンピュータ上、プロセッサ上、または他の計算マシン上に実装される。そのようなマシンおよびそのようなソフトウェアの構造および動作は、本明細書の開示に基づいて明白であるはずであり、したがって、本開示において詳述することは必要ない。さらに、本発明の一実施形態では、ライセンスサーバ２４、オーサリングツール１８、および／またはコンテンツサーバ２２が、それぞれ別個の作業スペース内で、ブラックボックスサーバ２６とともに、単一のコンピュータ上、単一のプロセッサ上、または単一の他の計算マシン上に常駐することが可能である。ただし、セキュリティ上の目的で、ブラックボックスサーバ２６を別個のマシン上に有することが賢明である可能性があることに留意されたい。
【００６１】
次に、図４を参照すると、本発明の一実施形態では、ユーザの計算デバイス１４は、キーボード、マウス、スクリーン、プロセッサ、ＲＡＭ、ＲＯＭ、ハードドライブ、フロッピー（登録商標）ドライブ、ＣＤプレーヤ、および／または以上に類するものを含む要素を有するパーソナルコンピュータ等である。ただし、ユーザの計算デバイス１４は、本発明の趣旨および範囲を逸脱することなく、とりわけ、テレビジョンまたはモニタなどの専用ビューイング（ｖｉｅｗｉｎｇ）デバイス、ステレオプレーヤ、またはその他の音楽プレーヤなどの専用オーディオデバイス、専用プリンタ等であることも可能である。
【００６２】
デジタルコンテンツ１２のコンテンツ所有者は、ユーザの計算デバイス１４が、コンテンツ所有者自身が指定した規則を遵守すること、すなわち、求める仕方でレンダリングを可能にするライセンス１６をユーザが獲得しない限り、デジタルコンテンツ１２がレンダリングされないことを信頼しなければならない。したがって、好ましくは、ユーザの計算デバイス１４は、デジタルコンテンツ１２に関連し、ユーザによって獲得されるライセンス１６で実現されるライセンス規則に従ってでなければ、デジタルコンテンツ１２をレンダリングしないことをコンテンツ所有者に確信させることができる信頼される構成要素、または信頼される機構３２を提供しなければならない。
【００６３】
この場合、信頼される機構３２は、デジタルコンテンツ１２がレンダリングされることをユーザが要求したときにイネーブルにされ、求める仕方でデジタルコンテンツ１２をレンダリングするライセンス１６をユーザが有するかどうかを判定し、必要な場合、そのライセンス１６を獲得することを実行し、ユーザが、デジタルコンテンツ１２を再生する権利を有するかどうかをライセンス１６に従って判定し、また、ライセンス１６に従ってユーザがそのような権利を実際に有する場合、レンダリング目的でデジタルコンテンツ１２を暗号化解除するデジタル権利管理（ＤＲＭ）システム３２である。ユーザの計算デバイス１４上の、アーキテクチャ１０に関連するＤＲＭシステム３２の内容および機能を以下に説明する。
【００６４】
＜ＤＲＭシステム３２＞
ＤＲＭシステム３２は、本明細書に開示するアーキテクチャ１０を使用して以下の４つの主な機能を行う。すなわち、（１）コンテンツ獲得、（２）ライセンス獲得、（３）コンテンツレンダリング、および（４）ブラックボックス３０インストール／更新である。好ましくは、以上の機能の任意のものが、任意の時点で行われることが可能である。ただし、機能のいくつかは、デジタルコンテンツ１２が獲得されることを既に必要とすることが認められる。
【００６５】
＜ＤＲＭシステム３２−コンテンツ獲得＞
ユーザおよび／またはユーザの計算デバイス１４によるデジタルコンテンツ１２の獲得は、通常、比較的簡単なことであり、一般に、暗号化されたデジタルコンテンツ１２を有するファイルをユーザの計算デバイス１４上に置くことに関わる。もちろん、本明細書で開示するアーキテクチャ１０、およびＤＲＭシステム３２で機能するには、暗号化されたデジタルコンテンツ１２が、以下に説明するとおり、デジタルパケット１２ｐなどの、アーキテクチャ１０およびＤＲＭシステム３２に適する形態になっていることが必要である。
【００６６】
理解されるべきこととして、デジタルコンテンツ１２は、本発明の趣旨および範囲を逸脱することなく、直接に、または間接的に、コンテンツサーバ２２から任意の仕方で獲得することが可能である。例えば、デジタルコンテンツ１２は、インターネットなどのネットワークからダウンロードされること、獲得された光ディスクまたは磁気ディスク等の上に存在すること、電子メール等の一部として受信されること、または電子掲示板等からダウンロードされることが可能である。
【００６７】
デジタルコンテンツ１２は、獲得されると、好ましくは、計算デバイス１４上で実行されるレンダリングアプリケーション３４（以下に説明する）によって、またはＤＲＭシステム３２によってアクセス可能であるように記憶される。例えば、デジタルコンテンツ１２は、ユーザの計算デバイス１４のハードドライブ（図示せず）上、または計算デバイス１４がアクセス可能なネットワークサーバ（図示せず）上のファイルとして配置することが可能である。デジタルコンテンツ１２が、光ディスク上または磁気ディスク上などで獲得される場合、そのディスクが、ユーザの計算デバイス１４に結合された適切なドライブ（図示せず）の中に存在するだけでよい可能性がある。
【００６８】
本発明では、直接の配布ソースとしてのコンテンツサーバ２２からも、間接の配布ソースとしての何らかの仲介役からも、デジタルコンテンツ１２を獲得するのに特別なツールが必要であることを全く想定していない。つまり、デジタルコンテンツ１２が、他のあらゆるデータファイルと同様に容易に獲得されることが好ましい。ただし、ＤＲＭシステム３２および／またはレンダリングアプリケーション３４は、ユーザがデジタルコンテンツ１２を獲得するのを支援するように設計されたインターフェース（図示せず）を含むことが可能である。例えば、このインターフェースは、デジタルコンテンツ１２を探索すること、デジタルコンテンツ１２のソースであることが分かっている事前定義されたインターネットＷｅｂサイトにリンクすること等を行うように特に設計されたＷｅｂブラウザを含むことが可能である。
【００６９】
＜ＤＲＭシステム３２−コンテンツレンダリング、第１部＞
次に、図５Ａを参照すると、本発明の一実施形態では、暗号化されたデジタルコンテンツ１２が、ユーザに配布されて受け取られ、ユーザによって記憶されたファイルの形態で計算デバイス１４上に置かれたものと想定して、ユーザが、レンダリングコマンドの何らかの変種を実行することにより、デジタルコンテンツ１２をレンダリングしようと試みる（ステップ５０１）。例えば、そのようなレンダリングコマンドは、デジタルコンテンツ１２を「再生する」要求、または「開く」要求として実現することができる。例えば、ワシントン州レッドモンドのマイクロソフトコーポレーションによって販売される「ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）」オペレーティングシステムなどの一部の計算環境では、この再生コマンド、または開くコマンドは、単にデジタルコンテンツ１２を表すアイコン上で「クリックする」程度の簡単なものであることが可能である。もちろん、本発明の趣旨および範囲を逸脱することなく、レンダリングコマンドの他の実施形態も使用することができる。一般に、レンダリングコマンドは、ユーザが、デジタルコンテンツ１２を有するファイルが開かれ、遂行され、実行され、かつ／または以上に類することが行われるように指示したときにはいつでも、実行されるものと見なすことができる。
【００７０】
重要なことには、さらに、レンダリングコマンドは、デジタルコンテンツ１２を、印刷された形態、ビジュアル形態、オーディオ形などの別の形態にコピーする要求として実現することができる。理解されるべきこととして、同一のデジタルコンテンツ１２を、コンピュータスクリーン上などのある形態でレンダリングし、次に、印刷されたドキュメントなどの別の形態でレンダリングすることが可能である。本発明では、各タイプのレンダリングは、以下に説明するとおり、ユーザがレンダリングを行う権利を有する場合にだけ行われる。
【００７１】
本発明の一実施形態では、デジタルコンテンツ１２は、拡張子で終わるファイル名を有するデジタルファイルの形態になっており、計算デバイス１４が、その拡張子に基づいて特定の種類のレンダリングアプリケーション３４を開始することを決めることができる。例えば、ファイル名拡張子が、デジタルコンテンツ１２がテキストファイルであることを示す場合、レンダリングアプリケーション３４は、ワシントン州レッドモンドのマイクロソフトコーポレーションによって販売される「ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤ」などの何らかの形態のワードプロセッサである。同様に、ファイル名拡張子が、デジタルコンテンツ１２がオーディオファイル、ビデオファイル、および／またはマルチメディアファイルであることを示す場合、レンダリングアプリケーション３４は、やはり、ワシントン州レッドモンドのマイクロソフトコーポレーションによって販売される「ＭＩＣＲＯＳＯＦＴ  ＭＥＤＩＡ  ＰＬＡＹＥＲ」などの何らかの形態のマルチメディアプレーヤである。
【００７２】
もちろん、本発明の趣旨および範囲を逸脱することなく、レンダリングアプリケーションを決める他の方法を使用することも可能である。単に一例として、デジタルコンテンツ１２は、そのデジタルコンテンツ１２をレンダリングするのに必要なレンダリングアプリケーション３４のタイプに関する情報を含むメタデータを暗号化されていない形態（すなわち、前述したヘッダ情報の形態）で含むことが可能である。
【００７３】
好ましくは、レンダリングアプリケーション３４は、ファイル名に関連するデジタルコンテンツ１２を検査し、そのデジタルコンテンツ１２が、権利の保護された形態で暗号化されているかどうかを判定する（ステップ５０３、５０５）。保護されていない場合、デジタルコンテンツ１２は、無造作にレンダリングすることができる（ステップ５０７）。保護されている場合、レンダリングアプリケーション３４は、暗号化されたデジタルコンテンツ１２から、そのデジタルコンテンツ１２を再生するのにＤＲＭシステム３２が必要であるとを判定する。したがって、レンダリングアプリケーション３４は、ユーザの計算デバイス１４が、そのデバイス１４上のＤＲＭシステム３２を実行するように導く（ステップ５０９）。次に、レンダリングアプリケーション３４は、ＤＲＭシステム３２を呼び出してデジタルコンテンツ１２を暗号化解除する（ステップ５１１）。以下により詳述するとおり、ＤＲＭシステム３２は、ユーザが、デジタルコンテンツ１２に関して有効なライセンス１６を有し、その有効なライセンス１６におけるライセンス規則に従ってデジタルコンテンツ１２を再生する権利を有する場合にだけ、実際にそのデジタルコンテンツ１２を暗号化解除する。好ましくは、ＤＲＭシステム３２は、レンダリングアプリケーション３４によって呼び出された後、少なくとも、ユーザがデジタルコンテンツ１２を再生する権利を有するかどうかを判定する目的で、レンダリングアプリケーション３４から制御を引き継ぐ（ステップ５１３）。
【００７４】
本発明の一実施形態では、図４を再び参照すると、ＤＲＭシステム３２が、ライセンスイバリュエータ３６、ブラックボックス３０、ライセンスストア３８、および状態ストア４０を含む。
【００７５】
＜ＤＲＭシステム３２構成要素−ライセンスイバリュエータ３６＞
ライセンスイバリュエータ３６は、とりわけ、要求されたデジタルコンテンツ１２に対応する１つまたは複数のライセンス１６を探し出し、そのライセンス１６が有効であるかどうかを判定し、有効なライセンス１６におけるライセンス規則を検討し、検討したライセンス規則に基づき、要求側のユーザが、求める仕方で要求のデジタルコンテンツ１２をレンダリングする権利を有するかどうかを判定する。理解されるべきこととして、ライセンスイバリュエータ３６は、ＤＲＭシステム３２における信頼される構成要素である。本開示では、「信頼される」ということは、ライセンスサーバ２４（または任意の他の信頼する側の要素）が、信頼される要素が、ライセンス１６における権利記述に従ってデジタルコンテンツ１２の所有者の願いを実行すること、およびユーザが、不正な、または別の何らかの目的で信頼される要素を容易に変更できないことを確信させられることを意味する。
【００７６】
ライセンスイバリュエータ３６は、実際にライセンス１６を適切に評価することを確実にするため、またライセンス１６の実際の評価を回避する目的で、ユーザによって不正改造されている、または別の仕方で変更されていることがないことを確実にするため、信頼されなければならない。したがって、ライセンスイバリュエータ３６は、保護された環境、または覆われた環境において実行して、ライセンスイバリュエータ３６に対するユーザのアクセスが拒否されるようにする。本発明の趣旨および範囲を逸脱することなく、ライセンスイバリュエータ３６に関連して他の保護手段も使用することができる。
【００７７】
＜ＤＲＭシステム３２構成要素−ブラックボックス３０＞
主に、前述したとおり、ブラックボックス３０は、ＤＲＭシステム３２において暗号化機能および暗号化解除機能を行う。詳細には、ブラックボックス３０は、ライセンスイバリュエータ３６と連携して動作して、ある情報をライセンスイバリュエータ機能の一環として暗号化解除すること、および暗号化することを行う。さらに、ライセンスイバリュエータ３６が、ユーザが、求める仕方で要求のデジタルコンテンツ１２をレンダリングする権利を実際に有すると判定すると、ブラックボックス３０は、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）の提供を受け、暗号化解除鍵（ＫＤ）に基づいてデジタルコンテンツ１２の暗号化解除の機能を行う。
【００７８】
ブラックボックス３０は、ＤＲＭシステム３２の信頼される構成要素でもある。詳細には、ライセンスサーバ２４が、ブラックボックス３０が、ライセンス１６におけるライセンス規則に従ってだけ暗号化解除機能を行うことを信頼し、またブラックボックス３０が、ライセンス１６の実際の評価を回避するという不正な目的で、ユーザによって不正改造された、または別の仕方で変更された場合、動作しないことを信頼しなければならない。したがって、ブラックボックス３０も、保護された環境、または覆われた環境において実行して、ブラックボックス３０に対するユーザのアクセスが拒否されるようにする。この場合も、本発明の趣旨および範囲を逸脱することなく、ブラックボックス３０に関連して他の保護手段も使用することができる。好ましくは、コンテンツサーバ２２およびライセンスサーバ２４と同様に、ＤＲＭシステム３２におけるブラックボックス３０は、以下により詳細に説明するとおり、ライセンス１６を評価し、デジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）を獲得するプロセスの一環として使用される固有の公開鍵／秘密鍵ペア（ＰＵ−ＢＢ、ＰＲ−ＢＢ）を有する。
【００７９】
＜ＤＲＭシステム３２構成要素−ライセンスストア３８＞
ライセンスストア３８は、対応するデジタルコンテンツ１２に関してＤＲＭシステム３２によって受け取られたライセンス１６を記憶する。ライセンスストア３８自体は、信頼される必要はない。というのは、ライセンスストア３８は、以下に説明するとおり、信頼構成要素がそれぞれ、内部に既に組み込まれていなければならないライセンス１６を単に記憶するだけだからである。本発明の一実施形態では、ライセンスストア３８は、ハードディスクドライブまたはネットワークドライブなどのドライブのサブディレクトリに過ぎない。ただし、ライセンスストア３８は、ＤＲＭシステム３２にとって比較的便利な場所にライセンス１６を記憶する機能を行う限り、本発明の趣旨および範囲を逸脱することなく、任意の他の形態で実現することができる。
【００８０】
＜ＤＲＭシステム３２構成要素−状態ストア４０＞
状態ストア４０は、現在、ライセンスストア３８の中にある、または以前にライセンスストア３８の中にあったライセンス１６に対応する状態情報を保持する機能を行う。状態情報は、ＤＲＭシステム３２によって生成され、必要に応じて状態ストア４０の中に記憶される。例えば、特定のライセンス１６により、対応するデジタルコンテンツ１２の所定回数のレンダリングだけが許される場合、状態ストア４０は、ライセンス１６に関連して何回のレンダリングが実際に行われたかに関する状態情報を保持する。状態ストア４０は、ライセンスストア３８の中にもはや存在しないライセンス１６に関する状態情報を保持しつづけて、そうでなければ、ライセンスストア３８からライセンスを削除した後、状態ストア４０から対応する状態情報を削除しようとして同一のライセンス１６を獲得することが有利である状況を回避する。
【００８１】
状態ストア４０も、内部に記憶されている情報が、ユーザにより都合の良い状態にリセットされないことを確実にするために信頼されなければならない。したがって、状態ストア４０も同様に、保護された環境、または覆われた環境において実行して、状態ストア４０に対するユーザのアクセスが拒否されるようにする。この場合も、本発明の趣旨および範囲を逸脱することなく、もちろん、他の保護手段も使用することができる。例えば、状態ストア４０は、ＤＲＭシステム３２によって計算デバイス１４上に暗号化された形態で記憶されることが可能である。
【００８２】
＜ＤＲＭシステム３２−コンテンツレンダリング、第２部＞
図５Ａを再び参照し、本発明の一実施形態におけるコンテンツレンダリングについて再び述べると、ＤＲＭシステム３２は、呼出し側のレンダリングアプリケーション３４から制御を引き継いだ後、ユーザが、求める仕方で要求のデジタルコンテンツ１２をレンダリングする権利を有するかどうかを判定するプロセスを開始する。詳細には、ＤＲＭシステム３２は、ライセンスストアの中で有効な、使用を可能にするライセンス１６を探し出すか（ステップ５１５、５１７）、またはライセンスサーバ２４から、有効な、使用を可能にするライセンス１６を獲得しようと試みる（すなわち、以下に述べ、図７に示すライセンス獲得機能を行う）。
【００８３】
第１のステップとして、図６を参照すると、ＤＲＭシステム３２のライセンスイバリュエータ３６が、デジタルコンテンツ１２に対応する１つまたは複数の受け取られたライセンス１６の存在に関してライセンスストア３８を検査する（ステップ６０１）。通常、ライセンス１６は、以下に述べるとおり、デジタルファイルの形態になっている。ただし、ライセンス１６は、本発明の趣旨および範囲を逸脱することなく、他の形態になっていることも可能であることが認められよう。通常、ユーザは、ライセンス１６なしにデジタルコンテンツ１２を受け取る。ただし、デジタルコンテンツ１２は、本発明の趣旨および範囲を逸脱することなく、対応するライセンス１６とともに受け取られることが可能であることも同様に認められよう。
【００８４】
図３に関連して前述したとおり、各デジタルコンテンツ１２は、デジタルコンテンツ１２（またはパッケージ１２ｐ）を識別するコンテンツＩＤ（またはパッケージＩＤ）、および暗号化されたデジタルコンテンツ１２を暗号化解除する暗号化解除鍵（ＫＤ）を識別する鍵ＩＤを備えたパッケージ１２ｐの中にある。好ましくは、コンテンツＩＤ（またはパッケージＩＤ）、および鍵ＩＤは、暗号化解除されていない形態になっている。したがって、特に、デジタルコンテンツ１２のコンテンツＩＤに基づき、ライセンスイバリュエータ３６は、そのコンテンツＩＤに該当する識別子を含むライセンス１６をライセンスストア３８の中で探す。特に、デジタルコンテンツ１２の所有者が、デジタルコンテンツ１２に関して複数の異なる種類のライセンス１６を指定しており、ユーザが、そのライセンス１６のなかの複数のライセンスを獲得している場合、複数のそのようなライセンスが見出される可能性があることに留意されたい。実際、ライセンスイバリュエータ３６が、要求のデジタルコンテンツ１２に対応するライセンス１６をライセンスストア３８の中で全く見出さなかった場合、ＤＲＭシステム３２は、以下に説明するライセンス獲得の機能（図５のステップ５１９）を行うことが可能である。
【００８５】
次に、ＤＲＭシステム３２に、デジタルコンテンツ１２をレンダリングする要求が行われており、またデジタルコンテンツ１２に対応する１つまたは複数のライセンス１６が、ライセンスストア３８の中に存在するものと想定する。本発明の一実施形態では、ＤＲＭシステム３２のライセンスイバリュエータ３６は、各ライセンス１６に関して、そのライセンス１６自体が有効であるかどうかを判定することに取りかかる（図６のステップ６０３および６０５）。好ましくは、詳細には、各ライセンス１６が、そのライセンス１６のコンテンツ２８に基づくデジタル署名を含む。理解されるべきこととして、デジタル署名２６は、コンテンツ２８が改ざんされているか、または別の仕方で変更されている場合、ライセンス１６にマッチしない。したがって、ライセンスイバリュエータ３６は、デジタル署名２６に基づき、コンテンツ２８が、ライセンスサーバ２４から受け取られた形態をしている（すなわち、有効である）かどうかを判定することができる。有効なライセンス１６がライセンスストア３８の中で見出されなかった場合、ＤＲＭシステム３２は、以下に説明するライセンス獲得機能を行って有効なライセンス１６を獲得することができる。
【００８６】
１つまたは複数の有効なライセンス１６が見出されたと想定すると、それぞれの有効なライセンス１６に関して、ＤＲＭシステム３２のライセンスイバリュエータ３６が、次に、その有効なライセンス１６が、所望の仕方で対応するデジタルコンテンツ１２をレンダリングする権利をユーザに与える（すなわち、使用を可能にするものである）かどうか判定する（ステップ６０７および６０９）。詳細には、ライセンスイバリュエータ３６は、各ライセンス１６における権利記述に基づき、またユーザが、デジタルコンテンツ１２に何をしようとしているかに基づき、要求側のユーザが、要求のデジタルコンテンツ１２を再生する権利を有するかどうかを判定する。例えば、この権利記述により、ユーザが、デジタルコンテンツ１２をサウンドにレンダリングすることが許されるが、暗号化解除されたデジタルコピーにレンダリングすることは許されない。
【００８７】
理解されるべきこととして、各ライセンス１６における権利記述は、ユーザが誰であるか、どこにユーザが所在するか、どのようなタイプの計算デバイス１４をユーザが使用しているか、どのようなレンダリングアプリケーション３４がＤＲＭシステム３２を呼び出しているか、日付、時刻等を含め、いくつかのファクタの任意のものに基づき、ユーザがデジタルコンテンツ１２を再生する権利を有するかどうかを指定する。さらに、権利記述は、例えば、所定の回数の再生に、または所定の再生時間にライセンスを制限することが可能である。そのような場合、ＤＲＭシステム３２は、ライセンス１６に関してあらゆる状態情報（すなわち、何回、デジタルコンテンツ１２がレンダリングされたか、デジタルコンテンツ１２がレンダリングされた合計時間等）を参照しなければならず、この状態情報は、ユーザの計算デバイス１４上のＤＲＭシステム３２の状態ストア４０の中に記憶されている。
【００８８】
したがって、ＤＲＭシステム３２のライセンスイバリュエータ３６が、それぞれ有効なライセンス１６の権利記述を検討して、その有効なライセンス１６により、求めている権利がユーザに与えられるかどうかを判定する。これを行う際、ライセンスイバリュエータ３６は、ユーザの計算デバイス１４にローカルな他のデータを参照して、ユーザが、求めている権利を有するかどうかの判定を行う。図４に見られるとおり、このデータは、ユーザの計算デバイス（マシン）１４の識別４２およびデバイス１４の特定の態様、ユーザの識別４４およびユーザの特定の態様、レンダリングアプリケーション３４の識別およびアプリケーション３４の特定の態様、システムクロック４６等を含むことが可能である。求める仕方でデジタルコンテンツ１２をレンダリングする権利をユーザに提供する有効なライセンス１６が見出されない場合、ＤＲＭシステム３２は、以下に説明するライセンス獲得機能を行い、そのようなライセンス１６が実際に獲得可能である場合、そのライセンス１６を獲得する。
【００８９】
もちろん、一部の場合、ユーザは、要求する仕方でデジタルコンテンツ１２をレンダリングする権利を獲得することができない。というのは、デジタルコンテンツ１２のコンテンツ所有者が、そのような権利が許可されるべきでないことを実際に指示しているからである。例えば、デジタルコンテンツ１２のコンテンツ所有者が、ユーザがテキストドキュメントを印刷すること、または暗号化されていない形態でマルチメディアプレゼンテーションをコピーすることを許すライセンス１６が交付されるべきでないことを指示していることが可能である。本発明の一実施形態では、デジタルコンテンツ１２は、ライセンス１６の購入時にどのような権利が入手可能かに関するデータ、および入手可能なライセンス１６のタイプに関するデータを含む。ただし、デジタルコンテンツ１２のコンテンツ所有者は、デジタルコンテンツ１２に関して入手可能なライセンス１６を変更することにより、デジタルコンテンツに関して現行で入手可能な権利を任意の時点で変更できることが認められよう。
【００９０】
＜ＤＲＭシステム３２−ライセンス獲得＞
次に、図７を参照すると、ライセンスイバリュエータ３６が、実際に、要求されたデジタルコンテンツ１２に対応する有効な、使用を可能にするライセンス１６をライセンスストア３８の中で見出さなかった場合、ＤＲＭシステム３２が、ライセンス獲得の機能を行うことが可能である。図３に示すとおり、各デジタルコンテンツ１２は、そのデジタルコンテンツ１２をレンダリングするためのライセンス１６をどのように獲得するかに関する暗号化されていない形態の情報（すなわち、ライセンス獲得情報）とともにパッケージ化される。
【００９１】
本発明の一実施形態では、ライセンス獲得情報は、とりわけ、入手可能なライセンス１６のタイプを含み、また各ライセンスサーバ２４が、実際に、デジタルコンテンツ１２に対応するライセンス１６を発行することができる場合、１つまたは複数の適切なライセンスサーバ２４にアクセスすることが可能な１つまたは複数のインターネットＷｅｂサイト、または他のサイト情報を含むことが可能である。もちろん、ライセンス１６は、本発明の趣旨および範囲を逸脱することなく、他の仕方で獲得することも可能である。例えば、ライセンス１６は、電子掲示板において、あるいは磁気ディスクまたは光ディスク等の上のファイルの形態で直接に、または通常の郵便を介してでも獲得することが可能である。
【００９２】
ライセンス１６を獲得するための場所が、実際に、ネットワーク上のライセンスサーバ２４であると想定すると、ライセンスイバリュエータ３６が、Ｗｅｂサイト情報、または他のサイト情報に基づき、ライセンスサーバ２４に対するネットワーク接続を確立し、次に、接続されたライセンスサーバ２４にライセンス１６の要求を送信する（ステップ７０１、７０３）。詳細には、ＤＲＭシステム３２は、ライセンスサーバ２４に接触すると、適切なライセンス要求情報３６をそのライセンスサーバ２４に伝送する。
【００９３】
本発明の一実施形態では、ライセンス１６は、以下に類するものを含むことが可能な情報３６を要求する。すなわち、とりわけ、
−ＤＲＭシステム３２のブラックボックス３０の公開鍵（ＰＵ−ＢＢ）。
−ＤＲＭシステム３２のブラックボックス３０のバージョン番号。
−ブラックボックス３０を認定する認定機関からのデジタル署名を伴う証明書（ただし、証明書は、ブラックボックス３０の前述した公開鍵およびバージョン番号を実際に含む）。
−デジタルコンテンツ１２（またはパッケージ１２ｐ）を識別するコンテンツＩＤ（またはパッケージＩＤ）。
−デジタルコンテンツ１２を暗号化解除するための暗号化解除鍵（ＫＤ）を識別する鍵ＩＤ。
−要求されたライセンス１６のタイプ（実際に、複数のタイプが入手可能な場合）。
−デジタルコンテンツ１２のレンダリングを要求したレンダリングアプリケーション３４のタイプ。
および／または以上に類するもの。
【００９４】
もちろん、本発明の趣旨および範囲を逸脱することなく、より多量の、またはより少量のライセンス１６要求情報３６が、ＤＲＭシステム３２によってライセンスサーバ２４に伝送されることが可能である。例えば、レンダリングアプリケーション３４のタイプに関する情報が必要でない可能性がある一方で、ユーザおよび／またはユーザの計算デバイス１４に関する追加の情報が必要である可能性がある。
【００９５】
ライセンスサーバ２４は、ＤＲＭシステム３２からライセンス１６要求情報３６を受け取ると、信頼／認証に関して、またその他の目的でいくつかの検査を行うことができる。本発明の一実施形態では、ライセンスサーバ２４は、認定機関のデジタル署名に関して証明書を検査して、署名が改ざんされているかどうか、または別の仕方で変更されているかどうかを判定する（ステップ７０５、７０７）。改ざん、または変更されている場合、ライセンスサーバ２４は、要求情報３６に基づいてライセンス１６を交付するのを拒否する。また、ライセンスサーバ２４は、既知の「不良な」ユーザおよび／またはユーザの計算デバイス１４のリストも保持することができ、リスト上のいずれかの不良なユーザおよび／または不良なユーザの計算デバイス１４からの要求に基づいてライセンス１６を交付するのを拒否することができる。本発明の趣旨および範囲を逸脱することなく、そのような「不良」リストを任意の適切な仕方で編成することが可能である。
【００９６】
受け取られた要求、およびその要求に関連する情報に基づき、また詳細には、ライセンス要求情報の中のコンテンツＩＤ（またはパッケージＩＤ）に基づき、ライセンスサーバ２４は、コンテンツ−鍵データベース２０（図１）に問い合わせ、要求の根拠であるデジタルコンテンツ１２（またはパッケージ１２ｐ）に対応するレコードを探し出すことができる。前述したとおり、このレコードは、そのデジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）、鍵ＩＤ、およびコンテンツＩＤを含む。さらに、このレコードは、デジタルコンテンツ１２に関して発行されるべきライセンス１６のタイプに関するライセンスデータ、および各タイプのライセンス１６に関する条項および条件を含むことが可能である。あるいは、このレコードは、そのような追加の情報を有する場所に対するポインタ、リンク、またはリファレンスを含むことが可能である。
【００９７】
前述したとおり、複数のタイプのライセンス１６が入手可能であることが可能である。例えば、比較的小額のライセンス料で、限られた回数のレンダリングを許すライセンス１６が入手可能であることが可能である。より高額のライセンス料で、失効日まで無制限のレンダリングを許すライセンス１６が、入手可能であることが可能である。さらに高額のライセンス料で、失効日なしの無制限のレンダリングを許すライセンス１６が入手可能であることが可能である。本発明の趣旨および範囲を逸脱することなく、任意の種類のライセンス条項を有する実質的にあらゆるタイプのライセンス１６を考案することが可能であり、またライセンスサーバ２４によって発行することが可能である。
【００９８】
本発明の一実施形態では、ライセンス１６の要求は、ライセンスサーバ２４からユーザの計算デバイス１４に伝送されるＷｅｂページ等の助けを借りて達せられる。好ましくは、このＷｅｂページは、ライセンス１６要求の根拠であるデジタルコンテンツ１２に関してライセンスサーバ２４から入手可能なすべてのタイプのライセンス１６に関する情報を含む。
【００９９】
本発明の一実施形態では、ライセンス１６を発行することに先立ち、ライセンスサーバ２４は、ブラックボックス３０のバージョン番号を検査して、ブラックボックス３０が比較的新しいかどうかを判定する（ステップ７０９、７１１）。理解すべきこととして、ブラックボックス３０は、不正な（すなわち、ライセンス１６なしにデジタルコンテンツ１２を不適切にレンダリングする、または対応するライセンス１６の条項を外れてレンダリングする）目的を有するユーザからの攻撃に対してセキュアであり、保護されているものとする。ただし、そのような攻撃に対して完全にセキュアなシステムおよびソフトウェアデバイスは存在しないことを認識されたい。
【０１００】
また、理解されるべきこととして、ブラックボックス３０が比較的新しい場合、すなわち、比較的最近に獲得されるか、または更新されている場合、ブラックボックス３０が、不正なユーザによって成功裏に攻撃されている可能性がより低い。好ましくは、信頼に関わることとして、ライセンスサーバ２４は、比較的新しくはないブラックボックス３０バージョン番号を含む要求情報３６を伴うライセンス要求を受け取った場合、以下に説明するとおり、対応するブラックボックス３０が現行のバージョンに更新されるまで、要求されたライセンス１６を発行するのを拒否する。簡単に言えば、ライセンスサーバ２４は、ブラックボックス３０が比較的新しくない限り、ブラックボックス３０を信頼しない。
【０１０１】
本発明のブラックボックス３０のコンテキストでは、「現行の」または「比較的新しい」という用語は、本発明の趣旨および範囲を逸脱することなく、ブラックボックス３０の経時（ａｇｅ）、または使用法に基づいてブラックボックス３０を信頼する機能と整合する任意の適切な意味を有することが可能である。例えば、「現行」は、経時に従って（すなわち、１カ月以内の経時）定義することができる。代替の例として、「現行」は、ブラックボックス３０がデジタルコンテンツ１２を暗号化解除した回数（すなわち、２００回以内の暗号化解除）に基づいて定義することができる。さらに、「現行」は、ライセンスサーバ２４ごとに「現行」に違った定義が行われ、ライセンスサーバ２４が、さらに、とりわけ、ライセンス１６が要求されたデジタルコンテンツ１２に依存して、または要求されたライセンス１６のタイプに依存して「現行」に違った定義を行う、各ライセンスサーバ２４によって設定されたポリシーに基づくことが可能である。
【０１０２】
ブラックボックス３０のバージョン番号、またはブラックボックス３０の他の指示から、ブラックボックス３０が現行のものであるとライセンスサーバ２４が確信させられたと想定して、ライセンスサーバ２４が、ライセンス１６に関する条項および条件をユーザと交渉することに取りかかる（ステップ７１３）。あるいは、ライセンスサーバ２４は、ユーザとライセンス１６を交渉し、次に、ブラックボックス３０のバージョン番号から、ブラックボックス３０が現行のものであるという確信を得る（すなわち、ステップ７１３を行い、次にステップ７１１を行う）。もちろん、交渉の量は、発行されるべきライセンス１６のタイプ、およびその他のファクタに応じて様々である。例えば、ライセンスサーバ２４が、単に支払済みの無制限の使用ライセンス１６を発行する場合、ほとんど交渉を行う必要がない。他方、ライセンス１６が、変化する値、スライディングスケール（ｓｌｉｄｉｎｇ  ｓｃａｌｅ）、ブレークポイント（ｂｒｅａｋ  ｐｏｉｎｔ）、およびその他の詳細などの項目に基づく場合、そのような項目および詳細をライセンスサーバ２４とユーザの間で調整してからでないと、ライセンス１６を発行することができない可能性がある。
【０１０３】
理解されるべきこととして、状況に応じて、ライセンス交渉は、ユーザが、ライセンスサーバ２４にさらなる情報（例えば、ユーザ、ユーザの計算デバイス１４等に関する情報）を提供することを必要とする可能性がある。重要なことには、ライセンス交渉は、ユーザおよびライセンスサーバ２４が、とりわけ、互いに受入れ可能な支払い手段（クレジット口座、デビット（ｄｅｂｉｔ）口座、郵送される小切手等）、および／または支払い方法（即時の支払い、ある期間にわたる支払い等）を決めることも要求することが可能である。
【０１０４】
ライセンス１６のすべての条項が交渉され、ライセンスサーバ２４とユーザの両方によって合意されると（ステップ７１５）、ライセンスサーバ２４によってデジタルライセンス１６が生成され（ステップ７１９）、この生成されたライセンス１６は、少なくともある程度、ライセンス要求、ブラックボックス３０公開鍵（ＰＵ−ＢＢ）、およびコンテンツ−鍵データベース２０から獲得される要求の根拠であるデジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）に基づいている。
【０１０５】
本発明の一実施形態では、図８で見られるとおり、生成されたライセンス１６は、以下のものを含む。すなわち、
−ライセンス１６が適用されるデジタルコンテンツ１２のコンテンツＩＤ。
−暗号化解除鍵（ＫＤ）で、場合により、暗号化されたデジタル権利ライセンス（ＤＲＬ）４８（すなわち、ライセンスイバリュエータ３６が問い合わせることができる所定の形式で書かれたライセンス１６の権利記述、または実際の条項および条件）（すなわち、ＫＤ（ＤＲＬ））。
−ライセンス要求の中で受け取られたブラックボックス３０公開鍵（ＰＵ−ＢＢ）で暗号化されたデジタルコンテンツに関する暗号化解除鍵（すなわち、（ＰＵ−ＢＢ（ＫＤ））。
−（ＫＤ（ＤＲＬ））および（ＰＵ−ＢＢ（ＫＤ））に基づき、ライセンスサーバ２４秘密鍵で暗号化されたライセンスサーバ２４からのデジタル署名（付加された証明書なしの）（すなわち、（Ｓ（ＰＲ−ＬＳ）））。
−ライセンスサーバ２４が、コンテンツサーバ２２から以前に獲得した、ライセンスサーバ２４が、ライセンス１６を発行するコンテンツサーバ２２からの許可を有することを示す証明書（すなわち、（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−ＣＳ）））である。
【０１０６】
理解されるべきこととして、前述した要素、および、場合により、その他の要素は、デジタルファイル、または何らかの他の適切な形態にパッケージ化される。やはり、理解されるべきこととして、ライセンス１６の中のＤＲＬ４８、または（ＰＵ−ＢＢ（ＫＤ））が改ざんされた、または別の仕方で変更された場合、ライセンス１６の中のデジタル署名（Ｓ（ＰＲ−ＬＳ））は、ライセンス１６にマッチせず、したがって、ライセンス１６を有効にしない。この理由で、ＤＲＬ４８は、必ずしも暗号化された形態（すなわち、前述した（ＫＤ（ＤＲＬ）））でなくてもよい。ただし、暗号化された形態は、一部の場合、望ましく、したがって、本発明の趣旨および範囲を逸脱することなく使用することができる。
【０１０７】
デジタルライセンス１６が準備されると、このライセンス１６は、要求側（すなわち、ユーザの計算デバイス１４上のＤＲＭシステム３２）に対して発行される（図７のステップ７１９）。好ましくは、ライセンス１６は、ライセンス１６の要求が行われたのと同じパス（すなわち、インターネット、または別のネットワーク）を介して伝送される。ただし、本発明の趣旨および範囲を逸脱することなく、別のパスを使用することもできる。受領時に、要求側のＤＲＭシステム３２は、好ましくは、受領したデジタルライセンス１６をライセンスストア３８の中に配置する（ステップ７２１）。
【０１０８】
ユーザの計算デバイス１４には、ときとして動作不良が生じる可能性があり、そのユーザの計算デバイス１４上のＤＲＭシステム３２のライセンスストア３８の中に記憶されたライセンス１６が、回復不能な仕方で失われる可能性があることを理解されたい。したがって、ライセンスサーバ２４が、発行されたライセンス１６のデータベース５０を維持し（図１）、またライセンスサーバ２４が、発行済みライセンス１６のコピーまたは再発行（以降、「再発行」）をユーザに提供することを、そのユーザが、実際に、再発行を受ける資格がある場合、行うことが好ましい。ライセンス１６が回復不能な仕方で失われる前述したケースでは、状態ストア４０の中に記憶され、ライセンス１６に対応する状態情報も失われていることになっている可能性が高い。この失われた状態情報が、ライセンス１６を再発行する際、考慮に入れられなければならない。例えば、固定回数のレンダリングライセンス１６は、比較的短い期間の後、応分に割振り計算した形で正当に再発行することが可能であるが、比較的長い期間の後、再発行することは可能でない。
【０１０９】
＜ＤＲＭシステム３２−ブラックボックス３０のインストール／アップグレード＞
前述したとおり、ライセンス１６を獲得する機能の一環として、ライセンスサーバ２４は、ユーザの計算デバイス１４が、比較的新しくはない、すなわち、比較的古いバージョン番号を有するブラックボックス３０を備えたＤＲＭシステム３２を有する場合、ユーザからのライセンス１６の要求を拒否する可能性がある。その場合、そのＤＲＭシステム３２のブラックボックス３０をアップグレードして、その後にライセンス獲得機能を開始できるようにすることが好ましい。もちろん、ブラックボックス３０は、本発明の趣旨および範囲を逸脱することなく、任意の時点でアップグレードすることができる。
【０１１０】
好ましくは、ユーザの計算デバイス１４上のＤＲＭシステム３２をインストールするプロセスの一環として、ブラックボックス３０の固有でない「ライト（ｌｉｔｅ）」バージョンが提供される。次に、この「ライト」ブラックボックス３０を、デジタルコンテンツ１２をレンダリングするのに先立って固有の通常のバージョンにアップグレードする。理解されるべきこととして、各ＤＲＭシステム３２の中のブラックボックス３０は固有であり、１つのブラックボックス３０のセキュリティを破って侵入することにより、何らかの他のブラックボックス３０で容易に侵入を繰り返すことはできない。
【０１１１】
次に、図９を参照すると、ＤＲＭシステム３２が、ブラックボックスサーバ２６等（前述し、図１に示した）から固有のブラックボックス３０を要求することにより、ブラックボックス３０を獲得する（ステップ９０１）。通常、この要求は、インターネットを使用して行われるが、本発明の趣旨および範囲を逸脱することなく、他のアクセス手段を使用することもできる。例えば、ブラックボックスサーバ２６に対する接続は、ローカル式または遠隔式の直接接続であることが可能である。ある固有のライトでないブラックボックス３０から別の固有のライトでないブラックボックス３０へのアップグレードも、例えば、前述したとおり、ライセンスサーバ２４が、ブラックボックス３０が現行のものでないと見なした時点などの任意の時点で、ＤＲＭシステム３２によって要求されることが可能である。
【０１１２】
その後、ブラックボックスサーバ２６は、新しい固有のブラックボックス３０を生成する（ステップ９０３）。図３に見られるとおり、それぞれの新しいブラックボックス３０は、バージョン番号、および認定機関からのデジタル署名を有する証明書を備えている。ライセンス獲得機能に関連して前述したとおり、ブラックボックス３０のバージョン番号は、ブラックボックス３０の相対的な経時および／または使用法を示す。やはりライセンス獲得機能に関連して前述した、認定機関からのデジタル署名を備えた証明書は、ライセンスサーバ２４がブラックボックス３０を信頼すべきことの認定機関からの進言（ｐｒｏｆｆｅｒ）機構、または保証機構である。もちろん、ライセンスサーバ２４は、認定機関が、実際に信頼に値するブラックボックス３０に関して証明書を発行するものと信頼しなければならない。実際には、ライセンスサーバ２４が、特定の認定機関を信用せず、その認定機関によって発行されたあらゆる証明書を尊重することを拒否する可能性がある。例えば、特定の認定機関が、証明書を不適切に発行することを繰り返し行っていることが分かった場合、信頼がなされない可能性がある。
【０１１３】
好ましくは、前述したとおり、ブラックボックスサーバ２６は、新しい固有の公開鍵／秘密鍵ペア（ＰＵ−ＢＢ、ＰＲ−ＢＢ）を新たに生成された固有のブラックボックス３０に含める（図９のステップ９０３）。好ましくは、そのブラックボックス３０に関する秘密鍵（ＰＲ−ＢＢ）には、そのブラックボックス３０だけがアクセス可能であり、そのブラックボックス３０を有するＤＲＭシステム３２を有する計算デバイス１４、および計算デバイス１４のユーザを含め、それ以外の世界には隠されており、アクセス不可能である。
【０１１４】
世界から秘密鍵（ＰＲ−ＢＢ）を隠す機能を実際に行う限り、本発明の趣旨および範囲を逸脱することなく、ほとんどの任意の隠蔽スキームを使用することができる。単に一例として、秘密鍵（ＰＲ−ＢＢ）は、いくつかの下位構成要素に分割することができ、各下位構成要素を固有に暗号化して、異なる場所に記憶することができる。そのような状況では、下位構成要素が決して完全に組み立てられて秘密鍵全体（ＰＲ−ＢＢ）をもたらすことがないことが好ましい。
【０１１５】
本発明の一実施形態では、秘密鍵（ＰＲ−ＢＢ）は、コードベースの暗号技術に従って暗号化される。詳細には、この実施形態では、ブラックボックス３０の実際のソフトウェアコード（または他のソフトウェアコード）が、暗号化鍵として使用される。したがって、ブラックボックス３０のコード（または他のソフトウェアコード）が、例えば、不正な目的を有するユーザによって改ざんされた、または別の仕方で変更された場合、その秘密鍵（ＰＲ−ＢＢ）を暗号化解除することができない。
【０１１６】
それぞれの新しいブラックボックス３０は、新しい公開鍵／秘密鍵ペア（ＰＵ−ＢＢ、ＰＲ−ＢＢ）と共に配信されるが、新しいブラックボックス３０には、好ましくは、ユーザの計算デバイス１４上のＤＲＭシステム３２に以前に配信された古いブラックボックス３０からの古い公開鍵／秘密鍵ペアに対するアクセスも与えられる（ステップ９０５）。したがって、アップグレードされたブラックボックス３０は、それでも、以下により詳細に述べるとおり、古い鍵ペアを使用して、その古い鍵ペアに従って生成されたより古いデジタルコンテンツ１２、およびより古い対応するライセンス１６にアクセスすることができる。
【０１１７】
好ましくは、ブラックボックスサーバ２６によって配信されたアップグレードされたブラックボックス３０は、ユーザの計算デバイス１４に緊密に結び付く、または緊密に関連する。したがって、アップグレードされたブラックボックス３０は、不正な目的、またはその他の目的で、複数の計算デバイス１４間で動作上、転送することができない。本発明の一実施形態では、ブラックボックス３０の要求（９０１）の一環として、ＤＲＭシステム３２が、そのＤＲＭシステム３２に固有であり、かつ／またはユーザの計算デバイス１４に固有であるハードウェア情報をブラックボックスサーバ２６に提供し、ブラックボックスサーバ２６は、その提供されたハードウェア情報にある程度、基づき、そのＤＲＭシステム３２用のブラックボックス３０を生成する。次に、この生成されたアップグレード済みのブラックボックス３０が、ユーザの計算デバイス１４上のＤＲＭシステム３２に配信されて、インストールされる（ステップ９０７、９０９）。その後、アップグレードされたブラックボックス３０が、何らかの仕方で別の計算デバイス１４に転送された場合、転送されたブラックボックス３０は、その別の計算デバイス１４を宛先としていないことを認識し、要求されたレンダリングが、その別の計算デバイス１４上で進められることを全く許さない。
【０１１８】
新しいブラックボックス３０がＤＲＭシステム３２にインストールされると、ＤＲＭシステム３２は、ライセンス獲得機能、または任意の他の機能を開始することができる。
【０１１９】
＜ＤＲＭシステム３２−コンテンツレンダリング、第３部＞
次に、図５Ｂを参照すると、ライセンスイバリュエータ３６が、少なくとも１つの有効なライセンス１６を見出し、また有効なライセンス１６の少なくとも１つが、求める仕方で対応するデジタルコンテンツ１２をレンダリングするのに必要な権利をユーザに提供する（すなわち、使用を可能にするものである）ものと想定すると、ライセンスイバリュエータ３６が、そのライセンス１６の１つをさらなる使用のために選択する（ステップ５１９）。詳細には、要求されたデジタルコンテンツ１２をレンダリングするため、ライセンスイバリュエータ３６とブラックボックス３０が一緒に、ライセンス１６から暗号化解除鍵（ＫＤ）を獲得し、ブラックボックス３０が、その暗号化解除鍵（ＫＤ）を使用してデジタルコンテンツ１２を暗号化解除する。本発明の一実施形態では、前述したとおり、ライセンス１６から獲得された暗号化解除鍵（ＫＤ）が、ブラックボックス３０公開鍵で暗号化され（ＰＵ−ＢＢ（ＫＤ））、ブラックボックス３０が、その暗号化された暗号化解除鍵を自らの秘密鍵（ＰＲ−ＢＢ）を使用して暗号化解除して、暗号化解除鍵（ＫＤ）をもたらす（ステップ５２１、５２３）。ただし、本発明の趣旨および範囲を逸脱することなく、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）を獲得する他の方法も使用することができる。
【０１２０】
ブラックボックス３０は、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）、およびそのデジタルコンテンツ１２をレンダリングするライセンスイバリュエータ３６からの許可を入手すると、制御が、レンダリングアプリケーション３４に戻ることが可能である（ステップ５２５、５２７）。本発明の一実施形態では、次に、レンダリングアプリケーション３４が、ＤＲＭシステム３２／ブラックボックス３０を呼び出し、暗号化されたデジタルコンテンツ１２の少なくとも一部分を暗号化解除鍵（ＫＤ）に従って暗号化解除のためにブラックボックス３０に向かわせる（ステップ５２９）。ブラックボックス３０は、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）に基づいてデジタルコンテンツ１２を暗号化解除し、次に、暗号化解除したデジタルコンテンツ１２を実際のレンダリングのためにレンダリングアプリケーション３４に戻す（ステップ５３３、５３５）。レンダリングアプリケーション３４は、本発明の趣旨および範囲を逸脱することなく、デジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）に基づき、暗号化解除のために暗号化されたデジタルコンテンツ１２の一部分、またはデジタルコンテンツ１２全体をブラックボックス３０に送ることができる。
【０１２１】
好ましくは、レンダリングアプリケーション３４が、暗号化解除のためにデジタルコンテンツ１２をブラックボックス３０に送ったとき、ブラックボックス３０および／またはＤＲＭシステム３２が、そのレンダリングアプリケーション３４を認証して、そのレンダリングアプリケーション３４が、ＤＲＭシステム３２に動作するように最初に要求を行ったのと同じレンダリングアプリケーション３４であることを確実にする（ステップ５３１）。そうでなければ、あるタイプのレンダリングアプリケーション３４上のレンダリング要求に基づくことにより、レンダリング許可が不適切に獲得され、実際には、別のタイプのレンダリングアプリケーション３４を使用してレンダリングが行われる可能性が存在する。認証が成功し、デジタルコンテンツ１２が、ブラックボックス３０によって暗号化解除されたものと想定すると、次に、レンダリングアプリケーション３４が、暗号化解除されたデジタルコンテンツ１２をレンダリングすることができる（ステップ５３３、５３５）。
【０１２２】
＜鍵トランザクションのシーケンス＞
次に、図１０を参照すると、本発明の一実施形態では、鍵トランザクションのシーケンスが、暗号化解除鍵（ＫＤ）を獲得し、要求されたデジタルコンテンツ１２に関するライセンス１６を評価するように（すなわち、図５Ａおよび５Ｂのステップ５１５〜５２３を行うように）行われる。主に、このシーケンスでは、ＤＲＭシステム３２が、ライセンス１６から暗号化解除鍵（ＫＤ）を獲得し、ライセンス１６およびデジタルコンテンツ１２から獲得された情報を使用して、ライセンス１６とデジタルコンテンツ１２の両方の有効性を認証し、または確実にし、次に、ライセンス１６が、求められる仕方でデジタルコンテンツ１２をレンダリングする権利を実際に提供するかどうかを判定する。提供する場合、デジタルコンテンツ１２をレンダリングすることができる。
【０１２３】
図８に見られるとおり、デジタルコンテンツ１２に関する各ライセンス１６が、
−ライセンス１６が適用されるデジタルコンテンツ１２のコンテンツＩＤ。
−暗号化解除鍵（ＫＤ）で、場合により、暗号化されたデジタル権利ライセンス（ＤＲＬ）４８（すなわち、ＫＤ（ＤＲＬ））。
−ブラックボックス３０公開鍵（ＰＵ−ＢＢ）で暗号化されたデジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）（すなわち、（ＰＵ−ＢＢ（ＫＤ）））。
−（ＫＤ（ＤＲＬ））および（ＰＵ−ＢＢ（ＫＤ））に基づき、ライセンスサーバ２４秘密鍵で暗号化されたライセンスサーバ２４からのデジタル署名（すなわち、（Ｓ（ＰＲ−ＬＳ）））。
【０１２４】
ライセンスサーバ２４が、コンテンツサーバ２２から以前に獲得した証明書（すなわち、（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−ＣＳ）））を含むことを念頭に置き、また、図３に見られるとおり、デジタルコンテンツ１２を有するパッケージ１２ｐが、
−デジタルコンテンツ１２のコンテンツＩＤ。
−ＫＤで暗号化されたデジタルコンテンツ１２（すなわち、（ＫＤ（ＣＯＮＴＥＮＴ）））。
−暗号化されていないライセンス獲得スクリプト。
−コンテンツサーバ２２秘密鍵（ＰＲ−ＣＳ）で署名されたコンテンツサーバ２２公開鍵（ＰＵ−ＣＳ）を暗号化する鍵ＫＤ（すなわち、（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ）））を含むことも念頭に置いて、本発明の一実施形態では、デジタルコンテンツ１２に関するライセンス１６の特定の１つに関する鍵トランザクションの特定のシーケンスが、以下のとおりである。
【０１２５】
１．ライセンス１６からの（ＰＵ−ＢＢ（ＫＤ））に基づき、ユーザの計算デバイス１４上のＤＲＭシステム３２のブラックボックス３０が、自らの秘密鍵（ＰＲ−ＢＢ）を適用して（ＫＤ）を獲得する（ステップ１００１）。（ＰＲ−ＢＢ（ＰＵ−ＢＢ（ＫＤ））＝（ＫＤ））。重要なこととして、次に、ブラックボックス３０は、ＫＤを使用して無造作にデジタルコンテンツ１２を暗号化解除することを開始できることに留意されたい。ただし、やはり重要なこととして、ライセンスサーバ２４は、ブラックボックス３０がそうしないものと信頼する。この信頼は、ライセンスサーバ２４が、ブラックボックス３０が信頼に値することを保証する認定機関からの証明書に基づいてライセンス１６を発行した時点で確立されている。したがって、ブラックボックス３０が、最終ステップではなく、初期ステップとして暗号化解除鍵（ＫＤ）を獲得するにも関わらず、ＤＲＭシステム３２は、以下に説明するとおり、すべてのライセンス１６検証機能および評価機能を行いつづける。
【０１２６】
２．デジタルコンテンツ１２からの（ＫＤ（ＰＵ−ＣＳ）Ｓ（ＰＲ−ＣＳ））に基づき、ブラックボックス３０は、新たに獲得された暗号化解除鍵（ＫＤ）を適用して（ＰＵ−ＣＳ）を獲得する（ステップ１００３）。（ＫＤ（ＫＤ（ＰＵ−ＣＳ））＝（ＰＵ−ＣＳ））。さらに、ブラックボックス３０は、（ＰＵ−ＣＳ）を署名（Ｓ（ＰＲ−ＣＳ））に照らして適用して、署名およびデジタルコンテンツ１２／パッケージ１２ｐが有効であることの確信を得ることができる（ステップ１００５）。有効でない場合、プロセスは停止され、デジタルコンテンツ１２へのアクセスが拒否される。
【０１２７】
３．ライセンス１６からの（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−ＣＳ））に基づき、ブラックボックス３０は、新たに獲得されたコンテンツサーバ２２公開鍵（ＰＵ−ＣＳ）を適用して、証明書が有効であることの確信を得る（ステップ１００７）。有効であることは、ライセンス１６を発行したライセンスサーバ２４が、そうすることの許可をコンテンツサーバ２２から得ていることを意味する。次に、ブラックボックス３０は、証明書コンテンツを検査して（ＰＵ−ＬＳ）を獲得する（ステップ１００９）。有効でなかった場合、プロセスは停止され、ライセンス１６に基づくデジタルコンテンツ１２へのアクセスは拒否される。
【０１２８】
４．ライセンス１６からの（Ｓ（ＰＲ−ＬＳ））に基づき、ブラックボックス３０は、新たに獲得されたライセンスサーバ２４公開鍵（ＰＵ−ＬＳ）を適用して、ライセンス１６が有効であることの確信を得る（ステップ１０１１）。有効でなかった場合、プロセスは停止され、ライセンス１６に基づくデジタルコンテンツ１２へのアクセスは拒否される。
【０１２９】
５．すべての検証ステップが成功し、ライセンス１６の中のＤＲＬ４８が、暗号化解除鍵（ＫＤ）で実際に暗号化されたものと想定すると、次に、ライセンスイバリュエータ３６が、既に獲得済みの暗号化解除鍵（ＫＤ）をライセンス１６から獲得された（ＫＤ（ＤＲＬ））に適用して、ライセンス１６からライセンス条項（すなわち、ＤＲＬ４８）を獲得する（ステップ１０１３）。もちろん、ライセンス１６の中のＤＲＬ４８が、実際に暗号化解除鍵（ＫＤ）で暗号化されていない場合、ステップ１０１３は、省略することができる。次に、ライセンスイバリュエータ３６が、ＤＲＬ４８の評価／問合せを行い、ライセンス１６の中のＤＲＬ４８に基づき、ユーザの計算デバイス１４が、求める仕方で対応するデジタルコンテンツ１２をレンダリングする権利を有するかどうか（すなわち、ＤＲＬ４８が使用を可能にするものであるかどうか）を判定する（ステップ１０１５）。ライセンスイバリュエータ３６が、その権利が存在しないと判定した場合、プロセスは停止され、ライセンス１６に基づくデジタルコンテンツ１２へのアクセスは拒否される。
【０１３０】
６．最後に、ライセンス１６の評価により、ＤＲＬ４８条項に基づいてユーザの計算デバイス１４が、求める仕方で対応するデジタルコンテンツ１２をレンダリングする権利を有するという肯定的な判定がもたらされたものと想定すると、ライセンスイバリュエータ３６は、ブラックボックス３０が、暗号化解除鍵（ＫＤ）に従って対応するデジタルコンテンツ１２をレンダリングすることができることをブラックボックス３０に知らせる。その後、ブラックボックス３０は、暗号化解除鍵（ＫＤ）を適用して、パッケージ１２ｐからデジタルコンテンツ１２を暗号化解除する（すなわち、（ＫＤ（ＫＤ（ＣＯＮＴＥＮＴ））＝（ＣＯＮＴＥＮＴ）））（ステップ１０１７）。
【０１３１】
以上に指定した一連のステップは、ライセンス１６とデジタルコンテンツ１２の間の交替、または「ピンポン（ｐｉｎｇ−ｐｏｎｇｉｎｇ）」を表すことに留意することが重要である。このピンポンにより、検証プロセスおよび評価プロセスが、デジタルコンテンツ１２とライセンス１６がともに適切に発行された有効な形態で存在する場合にだけ行われることが可能であるということで、デジタルコンテンツ１２が、ライセンス１６に緊密に結合されることが確実になる。さらに、ライセンス１６からコンテンツサーバ２２公開鍵（ＰＵ−ＣＳ）を獲得するのと、パッケージ１２ｐからデジタルコンテンツ１２を暗号化解除された形態で（また、場合により、ライセンス１６からライセンス条項（ＤＲＬ４８）を暗号化解除された形態で）獲得するのとに同一の暗号化解除鍵（ＫＤ）が必要とされるため、以上のアイテムも緊密に結合される。また、署名検証により、デジタルコンテンツ１２およびライセンス１６が、コンテンツサーバ２２およびライセンスサーバ２４からそれぞれ発行されたのと同じ形態であることが確実になる。したがって、ライセンスサーバ２４を迂回することによってデジタルコンテンツ１２を暗号化解除することは、不可能でないにしても困難であり、また、デジタルコンテンツ１２またはライセンス１６を改変した後、暗号化解除することも、不可能でないにしても困難である。
【０１３２】
本発明の一実施形態では、署名確認、特にライセンス１６の署名確認が、以下のとおり交替で行われる。図８に見られるように、ライセンスサーバ２４の秘密鍵（ＰＲ−ＬＳ）で署名が暗号化されるのではなく、各ライセンス１６の署名が、秘密根底鍵（ｐｒｉｖａｔｅ  ｒｏｏｔ  ｋｅｙ）（ＰＲ−Ｒ）（図示せず）で暗号化され、各ＤＲＭシステム３２のブラックボックス３０が、その秘密根底鍵（ＰＲ−Ｒ）に対応する公開根底鍵（ｐｕｂｌｉｃ  ｒｏｏｔ  ｋｅｙ）（ＰＵ−Ｒ）（やはり図示せず）を含んでいる。秘密根底鍵（ＰＲ−Ｒ）は、根底エンティティにだけ知られ、ライセンスサーバ２４は、ライセンス１６を発行することを根底エンティティと取り決めた場合にだけ、ライセンス１６を発行することができる。
【０１３３】
詳細には、この実施形態では、
１．ライセンスサーバ２４が、自らの公開鍵（ＰＵ−ＬＳ）を根底エンティティに提供し、
２．根底エンティティが、秘密根底鍵（ＰＲ−Ｒ）で暗号化されたライセンスサーバ公開鍵（ＰＵ−ＬＳ）（すなわち、（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−Ｒ）））をライセンスサーバ２４に戻し、また
３．次に、ライセンスサーバ２４が、ライセンスサーバ秘密鍵（Ｓ（ＰＲ−ＬＳ））で暗号化された署名を有するライセンス１６を発行し、また根底エンティティからの証明書（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−Ｒ））をライセンスに付加する。
【０１３４】
ＤＲＭシステム１８が発行されたライセンス１６を検証するには、ＤＲＭシステム１８は、
１．公開根底鍵（ＰＵ−Ｒ）を付加された証明書（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−Ｒ））に適用してライセンスサーバ公開鍵（ＰＵ−ＬＳ）を獲得し、また
２．獲得されたライセンスサーバ公開鍵（ＰＵ−ＬＳ）をライセンス１６の署名（Ｓ（ＰＲ−ＬＳ））に適用する。
【０１３５】
重要なことには、根底エンティティが、ライセンスサーバ２４に対して証明書（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−Ｒ））を提供することによってライセンス１６を発行する許可を与えると、ライセンスサーバ２４は、同様の証明書を第２のライセンスサーバ２４に提供することができ（すなわち、（ＣＥＲＴ（ＰＵ−ＬＳ２）Ｓ（ＰＲ−ＬＳ１）））、これにより、第２のライセンスサーバもライセンス１６を発行することができるようになることを認識されたい。既に明白であるとおり、第２のライセンスサーバによって発行されるライセンス１６は、第１の証明書（ＣＥＲＴ（ＰＵ−ＬＳ１）Ｓ（ＰＲ−Ｒ））、および第２の証明書（ＣＥＲＴ（ＰＵ−ＬＳ２）Ｓ（ＰＲ−ＬＳ１））を含む。同様に、このライセンス１６は、第１の証明書から第２の証明書までの連鎖を辿ることによって検証される。もちろん、その連鎖にさらなるリンクを追加してトラバース（ｔｒａｖｅｒｓｅ）することも可能である。
【０１３６】
前述した署名確認プロセスの１つの利点は、根底エンティティが、定期的に秘密根底鍵（ＰＲ−Ｒ）を変更し、これにより、各ライセンスサーバ２４が新しい証明書（ＣＥＲＴ（ＰＵ−ＬＳ）Ｓ（ＰＲ−Ｒ））を獲得することを同様に要求することが可能なことである。重要なことには、その新しい証明書を獲得する要件として、各ライセンスサーバが、自らをアップグレードすることが必要とされる可能性がある。ブラックボックス３０の場合と同様に、ライセンスサーバ２４が、比較的新しい場合、すなわち、比較的最近、アップグレードされている場合、ライセンスサーバ２４が、成功裏に攻撃を受けている可能性がより低い。したがって、信頼に関わることとして、各ライセンスサーバ２４は、好ましくは、署名確認プロセスなどの適切なアップグレードトリガ機構を介して、定期的にアップグレードされることが必要とされる。もちろん、本発明の趣旨および範囲を逸脱することなく、他のアップグレード機構も使用することができる。
【０１３７】
もちろん、秘密根底鍵（ＰＲ−Ｒ）が変更された場合、各ＤＲＭシステム１８における公開根底鍵（ＰＵ−Ｒ）も変更されなければならない。この変更は、例えば、通常のブラックボックス３０アップグレード中に行われることが可能であり、あるいは、実際に、ブラックボックス３０アップグレードが行われることを要する可能性がある。変更された公開根底鍵（ＰＵ−Ｒ）は、より古い秘密根底鍵（ＰＲ−Ｒ）に基づいて発行されたより古いライセンス１６に関する署名検証の障害になる可能性があるが、この障害は、アップグレードされたブラックボックス３０が、すべての古い公開根底鍵（ＰＵ−Ｒ）を憶えておくことを要求することによって最小限に抑えることができる。あるいは、ライセンス１６に関する証明書確認を１回だけ、例えば、ライセンス１６が、ＤＲＭシステム１８のライセンスイバリュエータ３６によって最初に評価されるときにだけ要求することにより、その障害を最小限に抑えることができる。その場合、署名確認が行われたかどうかに関する状態情報がまとめられなければならず、またその状態情報は、ＤＲＭシステム１８の状態ストア４０の中に記憶されなければならない。
【０１３８】
＜デジタル権利ライセンス４８＞
本発明の一実施形態では、ライセンスイバリュエータ３６が、ライセンス１６の権利記述または権利条項としてデジタル権利ライセンス（ＤＲＬ）４８を評価して、ＤＲＬ４８により、求める仕方で対応するデジタルコンテンツ１２をレンダリングすることが許されるかどうかが判定される。本発明の一実施形態では、ＤＲＬ４８は、任意のＤＲＬ言語でライセンサ（ｌｉｃｅｎｓｏｒ）（すなわち、コンテンツ所有者）が書くことが可能である。
【０１３９】
理解されるべきこととして、ＤＲＬ４８を指定する多数のやり方が存在する。したがって、あらゆるＤＲＬ言語において高い度合いの柔軟性が見込まれなければならない。ただし、特定のライセンス言語におけるＤＲＬ４８のすべての態様を指定することは実際的ではなく、その言語の作成者が、特定のデジタルライセンサが所望する可能性があるすべての可能なライセンシングの態様を理解できる可能性は、極めて低い。さらに、極めて高度なライセンス言語は、不必要であり、比較的簡単なＤＲＬ４８を提供するライセンサには障害とさえなる可能性がある。それでも、ライセンサは、どのようにＤＲＬ４８を指定すべきかを不必要に制限してはならない。同時に、ライセンスイバリュエータ３６は、いくつかの特定のライセンス問題に関して常にＤＲＬ４８から回答を得ることができなければならない。
【０１４０】
本発明では、図１１を参照すると、ＤＲＬ４８は、任意のライセンス言語で指定することができるが、言語識別子、または言語タグ５４を含む。ライセンス１６を評価するライセンスイバリュエータ３６が、言語タグ５４を検討して言語を識別する予備ステップを行い、次に、その識別された言語でライセンス１６にアクセスするのに適切なライセンス言語エンジン５２を選択する。理解されるべきこととして、ライセンス言語エンジン５２は、存在し、ライセンスイバリュエータ３６がアクセスできなければならない。存在しない場合、言語タグ５４および／またはＤＲＬ４８は、好ましくは、言語エンジン５２を獲得するための場所５６（通常、Ｗｅｂサイト）を含む。
【０１４１】
通常、言語エンジン５２は、ハードドライブなどのユーザの計算デバイス１４のメモリの中に常駐する実行可能ファイル、または１組のファイルの形態をしている。言語エンジン５２は、ライセンスイバリュエータ３６を助けて、ＤＲＬ４８に直接に問合せを行い、ライセンスイバリュエータ３６は、仲介役をする言語エンジン５２等を介してＤＲＬ４８に間接的に問合せを行う。実行されたとき、言語エンジン５２は、ＲＡＭなどの、ユーザの計算デバイス１４のメモリ内部の作業空間において実行される。ただし、本発明の趣旨および範囲を逸脱することなく、任意の他の形態の言語エンジン５２も使用することができる。
【０１４２】
好ましくは、任意の言語エンジン５２、および任意のＤＲＬ言語が、以下に述べるとおり、あらゆるＤＲＬ４８によって応えられることをライセンスイバリュエータ３６が予期する少なくともいくつかの特定のライセンス問題をサポートする。したがって、ライセンスイバリュエータ３６は、何らかの特定のＤＲＬ言語には結び付いておらず、ＤＲＬ４８は、任意の適切なＤＲＬ言語で書くことができ、また、新しいライセンス言語で指定されたＤＲＬ４８が既存のライセンスイバリュエータ３６によって使用されることが、対応する新しい言語エンジン５２をライセンスイバリュエータ３６に獲得させることによって可能になる。
【０１４３】
＜ＤＲＬ言語＞
それぞれＤＲＬ４８で実現されたＤＲＬ言語の２つの例を以下に提示する。第１の「簡単な」ＤＲＬ４８は、ライセンス属性を指定するＤＲＬ言語で書かれ、一方、第２の「スクリプト」ＤＲＬ４８は、ＤＲＬ４８の中で指定されたスクリプトに従って機能を行うことができるＤＲＬ言語で書かれる。ＤＲＬ言語で書かれているが、コードの各行の意味は、各行の言語（ｌｉｎｇｕｉｓｔｉｃｓ）、および／または以下の属性記述チャートに基づいて明白なはずである。
0004486321.tif 000002
0004486321.tif 000003
0004486321.tif 000004
0004486321.tif 000005
0004486321.tif 000006
以上に指定した２つのＤＲＬ４８では、リストされた属性が、以下の記述、および以下のデータタイプを有する。
【０１４４】
【表１】
0004486321.tif 000007
【０１４５】
【表２】
0004486321.tif 000008
【０１４６】
【表３】
0004486321.tif 000009
【０１４７】
＜メソッド＞
前述したとおり、任意の言語エンジン５２および任意のＤＲＬ言語が、デジタルライセンスイバリュエータ３６が、あらゆるＤＲＬ４８によって応えられるものと予期する少なくともいくつかの特定のライセンス問題をサポートすることが好ましい。サポートされる問題を認識することには、本発明の趣旨および範囲を逸脱することなく、前述した２つのＤＲＬ４８の例で使用した用語法と整合するあらゆる問題が含まれる可能性があり、本発明の一実施形態では、サポートされる問題、つまり「メソッド」には、以下のとおり、「アクセスメソッド」、「ＤＲＬメソッド」、および「イネーブル使用（ｅｎａｂｌｉｎｇ  ｕｓｅ）メソッド」が含まれる。
【０１４８】
＜アクセスメソッド＞
アクセスメソッドは、最上位レベルの属性に関してＤＲＬ４８にクエリを行うのに使用される。
VARIANT QueryAttribute(BSTR key)
有効な鍵は、ＢＳＲＴ  Ｖａｒｉａｎｔをそれぞれが戻すＬｉｃｅｎｓｅ．Ｎａｍｅ、Ｌｉｃｅｎｓｅ．Ｉｄ、Ｃｏｎｔｅｎｔ．Ｎａｍｅ、Ｃｏｎｔｅｎｔ．Ｉｄ、Ｃｏｎｔｅｎｔ．Ｔｙｐｅ、Ｏｗｎｅｒ．Ｎａｍｅ、Ｏｗｎｅｒ．Ｉｄ、Ｏｗｎｅｒ．ＰｕｂｌｉｃＫｅｙ、Ｌｉｃｅｎｓｅｅ．Ｎａｍｅ、Ｌｉｃｅｎｓｅｅ．Ｉｄ、Ｌｉｃｅｎｓｅｅ．ＰｕｂｌｉｃＫｅｙ、Ｄｅｓｃｒｉｐｔｉｏｎ、およびＴｅｒｍｓ、ならびにＤａｔｅ  Ｖａｒｉａｎｔをそれぞれが戻すＩｓｓｕｅｄ、Ｖａｌｉｄｔｙ．Ｓｔａｒｔ、およびＶａｌｉｄｙ．Ｅｎｄを含む。
【０１４９】
＜ＤＲＬメソッド＞
以下のＤＲＬメソッドの実装は、ＤＲＬ４８ごとに異なる。ＤＲＬメソッドの多くは、より高度な情報をＤＲＬ４８に伝えることを目的とする「データ」というラベルが付けられた変種のパラメータを含む。これは、現在、主に将来の拡張性のためのものである。
Boolean IsActivated(Variant data)
このメソッドは、ＤＲＬ４８／ライセンス１６が活動化されているかどうかを示すブーリアン（Ｂｏｏｌｅａｎ）を戻す。活動化されたライセンス１６の例は、初回の再生時に４８時間だけアクティブである制限された動作のライセンス１６である。
【０１５０】
Activate(Variant data)
このメソッドは、ライセンス１６を活動化するのに使用される。ライセンス１６は、活動化されると、非活動化することができない。
【０１５１】
Variant QueryDRL(Variant data)
このメソッドは、より高度なＤＲＬ４８と通信するのに使用される。これは、主に、ＤＲＬ４８機能セットの将来の拡張性に関するものである。
【０１５２】
Variant GetExpires(BSTR action,Variant data)
このメソッドは、提出済みアクション（ｐａｓｓｅｄ−ｉｎ  ａｃｔｉｏｎ）に関するライセンス１６の失効日を戻す。戻り値がＮＵＬＬである場合、ライセンス１６は、決して失効しないか、または活動化されていない等のために、まだ失効日を有さないものと考えられる。
【０１５３】
Variant GetCount(BSTR action,Variant data)
このメソッドは、残っている提出済みアクションの動作の回数を戻す。ＮＵＬＬが戻された場合、その動作は、無制限の回数、行うことができる。
【０１５４】
Boolean IsEnabled(BSTR action,Variant data)
このメソッドは、ライセンス１６が、現時点で要求されたアクションをサポートするかどうかを示す。
【０１５５】
Boolean IsSunk(BSTR action,Variant data)
このメソッドは、ライセンス１６の代金が支払われているかどうかを示す。前払いで代金が支払われているライセンス１６は、ＴＲＵＥを戻し、一方、使用されるにつれて代金を徴収するライセンス１６などの、前払いで代金が支払われていないライセンス１６は、ＦＡＬＳＥを戻す。
【０１５６】
＜イネーブル使用メソッド＞
このメソッドは、コンテンツを暗号化解除する際に使用するためにライセンス１６をイネーブルにするのに使用される。
【０１５７】
Boolean Validate(BSTR key)
このメソッドは、ライセンス１６を検証するのに使用される。提出済みの鍵は、ライセンス１６の署名の検証で使用するための対応するデジタルコンテンツ１２に関する暗号化解除鍵（ＫＤ）で暗号化されたブラックボックス３０公開鍵（ＰＵ−ＢＢ）（すなわち、（ＫＤ（ＰＵ−ＢＢ）））である。ＴＲＵＥの戻り値は、ライセンス１６が有効であることを示す。ＦＡＬＳＥの戻り値は、無効を示す。
【０１５８】
int OpenLicense 16(BSTR action,BSTR key,Variant data)
このメソッドは、暗号化解除されたイネーブルビット（ｅｎａｂｌｉｎｇ  ｂｉｔ）にアクセスする準備をするのに使用される。提出済みの鍵は、前述したとおり、（ＫＤ（ＰＵ−ＢＢ））である。０の戻り値が、成功を示す。その他の戻り値は、定義することができる。
【０１５９】
BSTR GetDecryptedEnablingBits(BSTR action,Varinat data)
Variant GetDecryptedEnablingBitsAsBinary(BSTR action,Variant Data)
このメソッドは、暗号化解除された形態のイネーブルビットにアクセスするのに使用される。いくつかの理由のどれかのためにそれが成功しなかった場合、空のストリング、または空のバリアントが戻される。
【０１６０】
void CloseLicense(BSTR action,Variant data)
このメソッドは、提出済みアクションを行うためにイネーブルビットへのアクセスをロック解除するのに使用される。いくつかの理由のどれかのためにこれが成功しなかった場合、空のストリングが戻される。
【０１６１】
＜ヒューリスティック＞
前述したとおり、同一のデジタルコンテンツ１２に関して複数のライセンス１６が存在する場合、ライセンス１６の１つが、さらなる使用のために選択されなければならない。前述したメソッドを使用して、この選択を行うために以下のヒューリスティックを実施することが可能である。詳細には、デジタルコンテンツ１２に対してアクション（例えば、「再生」）を行うため、以下のステップを行うことが可能である。
【０１６２】
１．特定のデジタルコンテンツ１２に適用されるすべてのライセンス１６を獲得する。
【０１６３】
２．アクションを可能にしない各ライセンス１６を、そのライセンス１６に対してＩｓＥｎａｂｌｅｄファンクションを呼び出すことによって除去する。
【０１６４】
３．アクティブでない各ライセンス１６を、そのライセンス１６に対してＩｓＡｃｔｉｖａｔｅｄを呼び出すことによって除去する。
【０１６５】
４．前払いで代金が支払われていない各ライセンス１６を、そのライセンス１６に対してＩｓＳｕｎｋを呼び出すことによって除去する。
【０１６６】
５．何らかのライセンス１６が残っている場合、そのライセンス１６を使用する。特に、無制限回数の再生のライセンス１６が失効日を有する場合、無制限回数の再生のライセンス１６を使用してから、制限された回数の再生のライセンス１６を使用する。あらゆる時点で、ユーザは、既に獲得された特定のライセンス１６を選択することが、その選択の費用対効果が大きくない場合でも、許されていなければならない。したがって、ユーザは、ＤＲＭシステム３２には、場合により、明白でない基準に基づいてライセンス１６を選択することができる。
【０１６７】
６．ライセンス１６が全く残っていない場合、そのことを示すステータスを戻す。次に、ユーザに、以下のオプションが与えられる。すなわち、
前払いで代金が支払われていないライセンス１６が利用可能である場合、そのライセンス１６を使用すること、
あるライセンス１６が利用可能である場合、そのライセンス１６を活動化すること、かつ／または
ライセンスサーバ２４からのライセンス獲得を行うこと。
【０１６８】
＜ソフトウェアアプリケーションの保護＞
以上に開示したとおり、以上に提示したＤＲＭアーキテクチャ１０は、単一のコンピュータファイルの形態のデジタルコンテンツ１２を保護する。ただし、当分野の技術者一般（ｒｅｌｅｖａｎｔ  ｐｕｂｌｉｃ）には理解されるべきこととして、このＤＲＭアーキテクチャ１０は、複数の構成コンピュータファイルの形態のデジタルコンテンツ１２を保護するのにも使用することができる。例えば、各構成ファイルは、前述したとおり、ＤＲＭシステム３２によって検査される対応するライセンス１６を有することが可能である。同様に、その構成ファイルの一部だけが対応するライセンスを必要とすることが、特に、その他のファイルが、ライセンスファイルなしにはアクセス不可能であるか、使用不可能であるか、または別の形で利用不可能である場合に可能である。
【０１６９】
複数のファイルの形態をしているデジタルコンテンツ１２の一例は、複数の構成ファイルを有するコンピュータソフトウェアアプリケーションである。詳細には、ソフトウェアアプリケーションは、通常、実行可能コードを少なくとも１つが含むファイルの集合の形態で、ソフトウェアプロバイダによって提供される。したがって、ＤＲＭアーキテクチャ１０の文脈では、各ファイルが暗号化され、対応するライセンス１６に伴われていることが可能である。そうではなく、１つのライセンス１６が、アプリケーションのファイルのすべてのファイル、または複数のファイルに適用可能であることも可能である。
【０１７０】
あるいは、実行可能コードを有する各ファイルだけが暗号化され、対応するライセンス１６に伴われていることが、特に、すべての他のファイルに、その「実行可能」ファイルを介してだけ到達可能である場合に可能である。別の代案として、実行可能ファイルの選択されたファイルだけが暗号化され、対応するライセンス１６に伴われることが、特に、その選択された実行可能ファイルが決定的である、重要である、主要である等と考えられる場合に可能である。この場合も、１つのライセンス１６が、アプリケーションの実行可能ファイルのなかのすべての実行可能ファイル、または複数の実行可能ファイルに適用可能であることが可能である。
【０１７１】
通常、計算デバイス１４上のアプリケーションは、計算デバイス１４上に常駐するオペレーティングシステムの一部であるローダ等を使用してロードされる。したがって、アプリケーションの少なくとも一部のファイルがＤＲＭ保護されている場合、ローダは、そのファイルが保護されていることを認識し、それぞれの保護されたファイルに関して、計算デバイス１４上でＤＲＭシステム３２を使用して、その保護されたファイルに対してＤＲＭ認証および暗号化解除を行わなければならない。ただし、重要なことには、アプリケーションをロードすることは、特に時間を消費するタスクである可能性があり、１つまたは複数のアプリケーションファイルのＤＲＭ暗号化解除などの何らかの相当なＤＲＭ活動を追加することにより、過度であると考えられる量までロード時間が長引く可能性がある。重要なことには、複数のアプリケーションファイル、大きいアプリケーションファイル、またはこの組合せのＤＲＭ暗号化解除が必要とされる場合、過度なロード時間の可能性がより高くなる。
【０１７２】
本発明の一実施形態では、アプリケーションを保護するのにＤＲＭ暗号化は利用されない。ただし、本発明の趣旨および範囲を逸脱することなく、何らかの種類のＤＲＭ暗号化をアプリケーションに関連して使用することができる。代わりに、本発明の一実施形態では、図１３を参照すると、記載したアプリケーションは、どこか内部に、ＤＲＭシステム３２と協働してアプリケーションがロードされ、実行されるのを許されるべきことを確実にする第１のセットのコード６０を含む。詳細には、アプリケーションが、ＤＲＭコンテンツ１２として作用し、少なくとも１つの対応するＤＲＭライセンス１６を有し、アプリケーション１２内部の第１のコード６０により、何らかの時点で、アプリケーション１２が、計算デバイス１４上のＤＲＭシステム３２の認証を行うようにさせられる。
【０１７３】
特に、アプリケーション１２内部の第１のコード６０は、本発明の趣旨および範囲を逸脱することなく、適切な時点でＤＲＭシステム３２の認証をトリガする。例えば、認証は、アプリケーション１２がロードされたとき、アプリケーション１２の１つまたは複数の特定の機能のそれぞれにアクセスが行われたとき、かつ／または１０分ごとになど、周期的にトリガされることが可能である。さらに、前述した特定のファンクションに関して、対応するライセンス１６により、各ファンクションにアクセスすることができるかどうかが指定されることが可能である。さらに、それぞれの特定のファンクションが、別々の対応するライセンス１６を必要とすること、または特定のファンクションの特定のもの、および／または組合せに関して複数のライセンス１６が利用可能であり得ることが可能である。
【０１７４】
本発明の一実施形態では、第１のコード６０は、アプリケーション１２の開発中にアプリケーションに追加される。したがって、アプリケーション１２の開発者は、アプリケーション１２に第１のコード６０を追加することによって認証を使用することを組み込む。
【０１７５】
理解されるであろうとおり、不正なエンティティが、第１のコード６０の動作を迂回し、これにより、第１のコード６０が、アプリケーション１２のＤＲＭ認証をトリガするのを防止することを試みる可能性がある。この迂回は、例えば、第１のコード６０を迂回するようにアプリケーション１２を書き換えることにより、またはアプリケーション１２から第１のコード６０を削除するか、または別の仕方で除去することによって達することが可能である。したがって、アプリケーション１２内部の第１のコード６０のそのような迂回を回避するため、本発明の一実施形態では、第１のコード６０を含むアプリケーション１２が、開発中に、第１の保護されていない形態から第２の保護された形態に完全性プロテクタ（ｉｎｔｅｇｒｉｔｙ  ｐｒｏｔｅｃｔｏｒ）６２（図１３）によって変換される。
【０１７６】
一般に、完全性プロテクタ６２は、第２の形態のアプリケーション１２が、第１の形態のアプリケーション１２と同じように機能するように操作する。ただし、重要なこととして、第１の形態から第２の形態へのアプリケーション１２の変換中、完全性プロテクタ６２は、前述した不正なエンティティによって試みられるもののような、第２の形態からのアプリケーションのあらゆる改変、改造、または変更により、アプリケーション１２が動作しなくなる結果が、その結果を回避する相当な努力が行われない限り、もたらされるようにアプリケーション１２を変更する。完全性プロテクタ６２は、アプリケーション１２の各インスタンスを固有バージョンとして生成するように使用することができ、アプリケーション１２のインスタンスのグループを固有バージョンとして生成するように使用することができ、かつ／またはアプリケーション１２のすべてのインスタンスを同一のバージョンとして生成するように使用することができることに留意されたい。一般に、完全性プロテクタ６２は、ソフトウェア構成体であり、当分野の技術者一般には周知であるか、または明白なはずである。したがって、本発明の趣旨および範囲を逸脱することなく、任意の適切なソフトウェアまたはハードウェアの完全性プロテクタ６２を使用することができる。
【０１７７】
完全性プロテクタ６２の例が、参照により本明細書に組み込まれている、２０００年３月１４日に出願した「BORE-Resistant Digital Goods Configuration and Distribution Methods And Arrangements」という名称（例えば、米国特許出願番号０９／５２５，２０６（整理番号ＭＳ１−３９４ＵＳ／１３１０６４．１））に提示されている。簡単に述べると、この出願では、完全性プロテクタは、コードオプティマイザ（ｏｐｔｉｍｉｚｅｒ）が、実行可能コードを受け取り、所定の最適化パラメータに基づいてそのコードを最適化するコード最適化の副産物である。要点を述べると、コードオプティマイザが、最適化パラメータに従ってコードの部分を再構成して、機能的に等価である（すなわち、同一の機能を行う）が、動作上、最適化された最適化バージョンを生成する。さらに、この最適化されたコードは、最適化後に変更された場合、通常、動作しなくなる。
【０１７８】
完全性プロテクタ６２により、ディストリビュータ（ｄｉｓｔｒｉｂｕｔｏｒ）プログラムによって配信されたアプリケーション１２が、完全性の保護された形態になることが確実になることに留意されたい。したがって、本発明の趣旨および範囲を逸脱することなく、配布のために完全性の保護された形態でアプリケーション１２を生成する任意の他の方法、または機構を使用することができる。例えば、この完全性の保護された形態は、アプリケーション１２を設計し、符号化する過程で実現することができる。
【０１７９】
本発明の一実施形態では、第１のコード６０を有するアプリケーション１２のライセンスが、ユーザの計算デバイス１２上のＤＲＭシステム３２に従ってそのユーザに与えられる。したがって、ユーザは、上記に指定したような任意の適切な仕方でライセンスサーバ２４等からＤＲＭライセンス１６を獲得する。ただし、重要なこととして、獲得されたライセンス１６は、特に、アプリケーション１２が暗号化される必要がない限りで、アプリケーション１２を暗号化解除するコンテンツ鍵を含まない。代わりに、図１３に見られるとおり、獲得されたライセンス１６は、アプリケーション１２を識別する識別情報６４を含む。もちろん、それでも、本発明の趣旨および範囲を逸脱することなく、アプリケーション１２の暗号化を使用することもできる。
【０１８０】
計算デバイス１４上のアプリケーション１２の実行中、第１のコード６０が、ＤＲＭシステム３２を検査して、獲得されたＤＲＭライセンス１６が計算デバイス上に存在することを確実にする。詳細には、本発明の一実施形態では、第１のコード６０が、ＤＲＭ認証の一環として、計算デバイス１４上のＤＲＭシステム３２と認証プロトコルをやり取りして、ライセンス１６に基づき、アプリケーション１２を実行するのが許されているという証拠をＤＲＭシステム３２から獲得する。
【０１８１】
次に、図１４を参照すると、第１のコード６０が、次のように動作するのが分かる。準備として、理解されるとおり、第１のコード６０が、アプリケーション１２のロードの最初の部分としてか、アプリケーション１２の動作中の何らかの所定の時点においてか、周期的にか、または別の仕方で、何らかの時点においてトリガされる（ステップ１４０１）。次に、第１のコード６０は、計算デバイス１４上のＤＲＭシステム３２が、自らが有効なＤＲＭシステム３２であることを証明するように要求する（ステップ１４０３）。本発明の一実施形態では、この証明は、前述した仕方で、すなわち、信頼される機関からの証明書やそれに類するもの、デジタル署名等を提示することによって行われる。特に、計算デバイス１４上のＤＲＭシステム３２が、自らを第１のコード６０に対して証明するようにさせることは、ＤＲＭシステム３２がどのようにか破壊され、対応するライセンス１６に関係なくアプリケーション１２を実行するが可能になるシナリオを防止しようとする試みである。想定上、ＤＲＭシステム３２は、破壊された場合、自らを第１のコード６０に対して証明することができない。というのは、破壊されたＤＲＭシステム３２により、証明書が損なわれるか、提示された署名が不合格になる等のことがもたらされるからである。さらに基本的なこととして、ＤＲＭシステム３２が自らを証明するようにさせることにより、アプリケーションが、実際に、ＤＲＭシステム３２と通信していること自体が確実になる。簡単に述べると、アプリケーション１２は、予期される要素、すなわち、ＤＲＭシステム３２とだけ通信していることを必要とする。
【０１８２】
したがって、第１のコード６０は、ＤＲＭシステム３２からの提示されたアイテムを受け取り、検査して（ステップ１４０５）、そのアイテムを検討し（ステップ１４０７）、ＤＲＭシステム３２が、有効なものであり、アプリケーション６０の所有者の権利を行使することができるかどうかの判断を行う（ステップ１４０９）。この判断は、本発明の趣旨および範囲を逸脱することなく、任意の適切な仕方で行うことが可能であることに留意されたい。例えば、提示されたアイテムが署名である場合、その署名が、適切なものとして確認され、また提示されたアイテムが証明書である場合、その証明書が適切なものとして検査される。
【０１８３】
ＤＲＭシステム３２が第１のコード６０によって認証される前、認証されている最中、および認証された後に、第１のコード６０は、有効なＤＲＭライセンス１６により、所与の条件下でアプリケーション１２が実行することが許されるかどうかをＤＲＭシステム３２が判定することを要求する（ステップ１４１１）。したがって、ＤＲＭシステム３２は、ライセンス１６の中のあらゆる条項を前述した仕方で検討して、その条項により、要求される仕方でアプリケーション１２の実行が許されるかどうかを判定する。もちろん、実行は、条項によって許可される場合にだけ許可される。
【０１８４】
本発明の一実施形態では、計算デバイス１４上に常駐するアプリケーション１２は、大域的に固有であることも、固有でないことも可能なＩＤ（図１３）を有し、アプリケーション１２に関してライセンサによって発行され、アプリケーション１２を有する計算デバイス１４上に常駐するあらゆるライセンス１６は、アプリケーション１２の識別情報６４の中にアプリケーション１２のＩＤを含む。したがって、ＤＲＭシステム３２、または第１のコード６０により、ライセンス１６の識別情報６４の中のＩＤが、アプリケーション１２のＩＤに一致するかどうかの判定が行われる（ステップ１４１３）。もちろん、先に進むには、一致を要する。ＤＲＭシステム３２がこの判定を行う場合、ＤＲＭシステム３２は、ライセンス１６の識別情報６４から、またアプリケーション１２からＩＤを獲得する（ステップ１４１３ａ）ことに留意されたい。同様に、アプリケーション１２の第１のコード６０がこの判定を行う場合、ＤＲＭシステム３２が、ライセンス１６の識別情報６４からＩＤを獲得して、そのＩＤを第１のコードに送る（ステップ１４１３ｂ）。
【０１８５】
ライセンス１６が、アプリケーション１２のＩＤを含む識別情報６４を有することで、アプリケーションが、ライセンス１６に結び付けられる。同様に、ライセンス１６が、前述したようなある結合情報を有することで、ライセンスは、ＤＲＭシステム３２、および計算デバイス１４に結び付けられる。ただし、それだけでは、アプリケーション１２は、ＤＲＭシステム、または計算デバイス１４に直接に結び付けられない。したがって、アプリケーション１２、および対応するライセンスが、別の計算デバイス１４上の別のＤＲＭシステム３２にコピーされることが可能であり、その別のＤＲＭシステム３２が、有効なライセンス１６かどうか調べないが、それでも、信頼される価値があると自らを第１のコード６０に対して提示することができる場合、第１のコード６０が、覆される。
【０１８６】
したがって、本発明の一実施形態では、アプリケーション１２が、ＤＲＭシステム３２、または計算デバイス１４に直接に結び付けられる。詳細には、この実施形態では、アプリケーション１２に関するライセンス１６をライセンサから獲得することに加えて、ユーザは、アプリケーション１２のＩＤ、およびＤＲＭシステム３２または計算デバイス１４のＩＤを含む証明書６６（図１３）も、ライセンサから獲得する。したがって、証明書６６は、アプリケーション１２をＤＲＭシステム３２、または計算デバイス１４に結び付けるか、バインドするか、または結合させる。証明書６６は、本発明の趣旨および範囲を逸脱することなく、獲得されたライセンス１６の中にあることも、ライセンス１６とは別個であることも可能であり、またライセンス１６とともに獲得することも、別の時点で獲得することも可能であることに留意されたい。また、ＤＲＭシステム３２のＩＤは、ＤＲＭシステム３２の所定の固有ＩＤであること、ブラックボックス鍵（ＰＵ−ＢＢ、ＰＲ−ＢＢ）に基づくこと、またはその他の鍵に基づくことが可能である。
【０１８７】
さらに、この実施形態では、アプリケーション１２は、ＤＲＭシステム３２または計算デバイス１４と協働して、第２のコード６８を有するアプリケーション１２が、実際に、ＤＲＭシステム３２または計算デバイス１４に結び付いている、または結合されていることを確実にする（すなわち、結合検査を行う）第２のセットのコード６８を備える。詳細には、第２のコード６８は、証明書６６を検査し、アプリケーション１２、およびＤＲＭシステム３２または計算デバイス１４から適切な識別情報を獲得し、その識別情報から、ＤＲＭシステム３２または計算デバイス１４、およびアプリケーション１２が、証明書６６の中で特定されているものであるかどうかを判定する。ＤＲＭシステム３２または計算デバイス１４の識別情報は、ＤＲＭシステム３２または計算デバイス１４のＩＤを含むその情報からの証明書または署名であることが可能であり、またアプリケーション１２の識別は、アプリケーション１２の前述したＩＤであることが可能である。
【０１８８】
特に、第２のコード６８は、第１のコード６０が実行されるたびに毎回、実行される、または第１のコード６０が実行されたとき、何らかの事前選択された時点にだけ実行されることが可能である。例えば、第２のコード６８は、アプリケーション１２の最初のロード時にだけ実行されることが可能である。
【０１８９】
本発明の一実施形態では、第１のコード６０の場合と同様に、第２のコード６８は、アプリケーション１２の開発中にアプリケーション１２に追加される。したがって、アプリケーション１２の開発者は、第２のコード６８をアプリケーション１２に追加することにより、また証明書６６が、ライセンシングプロセスの一環として、または別の時点でアプリケーション１２のユーザに提供されることを確実にすることにより、結合検査を組み込む。
【０１９０】
第１のコード６０の場合と同様に、不正なエンティティが、第２のコード６８の動作を迂回し、これにより、第２のコード６８が、結合検査を行うのを防止することを試みる可能性がある。この場合も、そのような迂回は、例えば、第２のコード６８を迂回するようにアプリケーション１２を書き換えることにより、またはアプリケーション１２から第２のコード６８を削除する、または別の仕方で除去することにより達することが可能である。ただし、第１のコード６０および第２のコード６８を含むアプリケーション１２が、開発中に完全性プロテクタ６２（図１３）により第１の保護されていない形態から第２の保護された形態に変換されるものと想定すると、アプリケーション１２の中の第２のコード６８の迂回は、容易に行うことができない。
【０１９１】
次に、図１５を参照すると、第２のコード６８が、次のように動作するのが分かる。準備として、理解されるとおり、第２のコード６８は、アプリケーション１２のロードの最初の部分として、またはアプリケーション１２の動作中、何らかの所定の時点で、何らかの時点でトリガされる（ステップ１５０１）。理解されるとおり、第２のコード６８は、第１のコード６０がトリガされるたびに毎回、トリガされることが可能であり、実際、第１のコード６０によってトリガされることが可能であり、あるいは場合により、第１のコード６０以外のコードによって他の時点でトリガされることが可能である。
【０１９２】
その後、第２のコード６８は、アプリケーション１２のＩＤ、およびＤＲＭシステム３２または計算デバイス１４のＩＤを含む証明書６６（図１３）をライセンサから取得し（ステップ１５０３）、ＤＲＭシステム３２または計算デバイス１４からＤＲＭシステム３２または計算デバイス１４のＩＤを取得し（ステップ１５０５）、またアプリケーション１２からアプリケーション１２のＩＤを取得する（ステップ１５０７）。したがって、アプリケーション１２から取得されたＩＤが、証明書６６からのアプリケーションＩＤに一致するかどうかの判定（ステップ１５０９）、およびＤＲＭシステム３２または計算デバイス１４から取得されたＩＤが、証明書６６からのＤＲＭシステム／計算デバイスＩＤに一致するかどうかの判定（ステップ１５１１）が、第２のコード６８によって行われる。もちろん、先に進むには、各判定により、一致がもたらされなければならない（ステップ１５１３）。そうでなく、結合検査が不合格であった場合、アプリケーション１２の実行は停止されるか、または別の仕方で切り上げられる。
【０１９３】
証明書６６および第２のコード６８を使用することの主要な態様は、アプリケーション１２が、直接に、またはＤＲＭシステム３２を介して間接的に、容易に複製して配布することができない要素に結び付けられることである。通常、この要素は、元来、ソフトウェアファイルより複製して配布するのに費用がかかるハードウェアである。通常、このハードウェアは、ライセンサが、アプリケーションが実行されるところとして意図する計算デバイス１４である。ただし、ハードウェアは、本発明の趣旨および範囲を逸脱することなく、任意の他の適切なアイテムであることが可能である。例えば、ハードウェアは、スマートカード、または認証することが可能な任意の他の物理的なトークンであることが可能である。また、ハードウェアは、３つの計算デバイス１４と５つのトークンのセットなどの、複数のアイテムとして指定されることも可能である。
【０１９４】
証明書６６を使用してアプリケーション１２を何らかのエンティティに結合させることができるが、本発明の趣旨および範囲を逸脱することなく、他のタイプの結合表現も使用できることにも留意されたい。例えば、結合先のエンティティ（ｍａｒｒｉｅｄ−ｔｏ  ｅｎｔｉｔｙ）のセットを符号化してアプリケーション１２の実行可能コードにすることが可能である。
【０１９５】
＜結論＞
本発明では、計算デバイス１４上のＤＲＭシステム３２が、対応するライセンス１６の条項に従って計算デバイス１４上のアプリケーション１２の実行を許す。重要なこととして、計算デバイス１４上のＤＲＭシステム３２は、ＤＲＭシステム３２が、対応するライセンス１６の欠如にも関わらず、またはライセンス１６の条項に基づく許可にも関わらず、アプリケーション１２の実行を許すように不正なエンティティによって破壊される可能性があるものと想定されている。
【０１９６】
したがって、アプリケーション１２は、基本的に、ＤＲＭシステム３２が、自らを信頼に値するものとしてアプリケーション１２に認証することを要求する第１のセットのコード６０を備える。さらに、アプリケーション１２は、基本的に、アプリケーション１２が、ＤＲＭシステム３２を有する計算デバイス１４を宛先とすることを確実にする第２のセットのコード６８を備える。最後に、第１のコード６０および第２のコード６８を有するアプリケーション１２が、完全性プロテクタ６２によって処理されて、第１のコード６０または第２のコード６８の機能を迂回しようとするあらゆる試みにより、アプリケーション１２が動作しないようになることが、そうした結果を回避しようとする相当な努力がなされない限り、もたらされることを確実にする。
【０１９７】
特に、ＤＲＭシステム３２が破壊される可能性があるという想定に基づき、アプリケーション１２の第１のコード６０および第２のコード６８が、それぞれのアクションを行うことが頼りにされる。さらに、第１のコード６０および第２のコード６８は、アプリケーション１２の一部であり、アプリケーション１２とともにロードされるので、計算デバイス１４上に常駐するオペレーティングシステムのローダは、第１のコード６０および第２のコード６８の機能を実施する際に課される特別の手続きに関与する必要がない。
【０１９８】
本発明は、１つまたは複数の構成ファイルが、計算デバイス１４上のＤＲＭシステム３２によって規制される対応するライセンス１６に従ってだけ実行されるアプリケーション１２に関連して特に有用である。ただし、重要なこととして、本発明は、本発明の趣旨および範囲を逸脱することなく、例えば、テキスト、オーディオ、ビデオ、および／またはマルチメディアのコンテンツ１２などの、計算デバイス１４上のＤＲＭシステム３２によって規制される対応するライセンス１６に従ってだけレンダリングされる任意の他のコンテンツ１２に関して実施することも可能である。
【０１９９】
本発明に関連して、ソフトウェアアプリケーション１２の保護をサポートする方法および機構が、必ずしも本明細書で開示するすべてのＤＲＭ機能は必要としないことに留意することが重要である。最も重要なこととして、存在しなければならないＤＲＭ機能には、ライセンス評価が含まれる。詳細には、各ライセンス１６を評価し、アプリケーション１２、またはアプリケーション１２の一部を実行することなどの特定のアクションが許可されているかどうかを判定することができるライセンスイバリュエータ３６が存在しなければならない。ライセンスイバリュエータ３６は、必ずしも計算デバイス１４上の完全なＤＲＭシステム３２に含まれる必要がない。例えば、ライセンスイバリュエータ３６は、アプリケーション１２内部に含まれることが可能であり、あるいは独立の要素であることが可能である。したがって、規制は、本発明の趣旨および範囲を逸脱することなく、基本的なＤＲＭタイプの機能によって行われ、ＤＲＭシステム３２自体によっては行われないことが可能である。
【０２００】
本発明に関連して行われるプロセスを実施するのに必要なプログラミングは、比較的簡単であり、該当のプログラミング分野の技術者一般（ｒｅｌｅｖａｎｔｐｒｏｇｒａｍｍｉｎｇ  ｐｕｂｌｉｃ）には明白であるはずである。したがって、そのプログラミングは、本明細書には添付しない。したがって、本発明の趣旨および範囲を逸脱することなく、任意の特定のプログラミングを使用して本発明を実施することができる。
【０２０１】
以上の説明では、ＤＲＭアーキテクチャ１０が、ソフトウェアアプリケーション１２が、アプリケーション１２の所有者等によって望まれない仕方で使用されるのを防止することにより、アプリケーション１２の保護をサポートすることを可能にする新しく有用な方法および機構を本発明が含むことを理解することができる。本発明の概念を逸脱することなく、前述した実施形態に変更を加えることができることを理解されたい。一例として、本発明の一実施形態では、ＤＲＭシステム３２が、アプリケーション１２の第１のコード６０および／または第２のコード６８を無しで済ませ、単に、特定のＩＤ、または他の識別情報、あるいはハードウェアまたはソフトウェアの存在などの計算デバイス１４に関する条件について試験を行う。別の例として、本発明の別の実施形態では、ＤＲＭシステム３２の機能が、アプリケーション１２内部に含まれ、したがって、ＤＲＭシステム３２が、アプリケーション１２に対して認証される必要がない。
【０２０２】
したがって、本発明は、開示した特定の実施形態には限定されず、頭記の特許請求の範囲によって定義される本発明の趣旨および範囲に含まれる変更形態を範囲に含むものとする。
【０２０３】
【発明の効果】
以上説明したように、本発明によれば、ある機能を行うために実行されるアプリケーションに関するＤＲＭデジタルライセンスがすべて計算デバイス上に存在する場合、該アプリケーションは、計算デバイスの１つの上で実行されるべきであることを判定するためのコード、または、ライセンスに基づき上記ある機能を行うように実行されることが許されているかどうかを判定するＤＲＭシステムに関連して実行されるべきであることを判定するためのコードを含んでいるので、例えば、デジタルコンテンツのユーザによって獲得されたライセンス権利によって指定されたパラメータに従ってのみ暗号化されたデジタルコンテンツへのアクセスを許すことができるようになり、特に、デジタルコンテンツのコンテンツ所有者によってそのデジタルコンテンツの再配布の防止に関する規制を任意に定義することができ、任意の形態のデジタルコンテンツの規制されたレンダリングまたは再生を行うことができ、これにより、デジタルコンテンツの再配布の防止に関する規制を柔軟に対応させることが可能な行使アーキテクチャおよび行使方法を作成することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態による行使アーキテクチャを示すブロック図である。
【図２】本発明の一実施形態による図１のアーキテクチャのオーサリングツールを示すブロック図である。
【図３】本発明の一実施形態による図１のアーキテクチャに関連して使用するためのデジタルコンテンツを有するデジタルコンテンツパッケージを示すブロック図である。
【図４】本発明の一実施形態による図１のユーザの計算デバイスを示すブロック図である。
【図５Ａ】本発明の一実施形態によるコンテンツをレンダリングする図４の計算デバイスのデジタル権利管理（ＤＲＭ）システムに関連して行われるステップを示す流れ図である。
【図５Ｂ】本発明の一実施形態によるコンテンツをレンダリングする図４の計算デバイスのデジタル権利管理（ＤＲＭ）システムに関連して行われるステップを示す流れ図である。
【図６】本発明の一実施形態による何らかの有効な、使用を可能にする（ｅｎａｂｌｉｎｇ）ライセンスが存在するかどうかを判定する図４のＤＲＭシステムに関連して行われるステップを示す流れ図である。
【図７】本発明の一実施形態によるライセンスを獲得する図４のＤＲＭシステムに関連して行われるステップを示す流れ図である。
【図８】本発明の一実施形態による図１のアーキテクチャに関連して使用されるデジタルライセンスを示すブロック図である。
【図９】本発明の一実施形態による新しいブラックボックスを獲得する図４のＤＲＭシステムに関連して行われるステップを示す流れ図である。
【図１０】本発明の一実施形態によるライセンスおよびデジタルコンテンツを検証し、そのコンテンツをレンダリングする図４のＤＲＭシステムに関連して行われる主要なトランザクションステップを示す流れ図である。
【図１１】本発明の一実施形態による図４のライセンスイバリュエータをライセンスのデジタル権利ライセンス（ＤＲＬ）およびＤＲＬを解釈するための言語エンジンとともに示すブロック図である。
【図１２】本発明の態様、および／または態様の部分を組み込むことができる汎用コンピュータシステムを示すブロック図である。
【図１３】本発明の実施形態によるＤＲＭ機能を行使するための第１のコードおよび第２のコードを有するアプリケーションを示すブロック図である。
【図１４】本発明の実施形態による第１のコードに対してＤＲＭシステムを検証する図１３の第１のコードに関連して行われる主要なステップを示す流れ図である。
【図１５】本発明の実施形態によるＤＲＭシステムにアプリケーションが「組み合わされる」ことを確実にする図１３の第２のコードに関連して行われる主要なステップを示す流れ図である。
【符号の説明】
１２  デジタルコンテンツ
１６  デジタルライセンス
３０  ブラックボックス
３２  ＤＲＭシステム
３４  レンダリングアプリケーション
３８  ライセンスストア
【図１】
0004486321.tif 000010
【図２】
0004486321.tif 000011
【図３】
0004486321.tif 000012
【図４】
0004486321.tif 000013
【図５Ａ】
0004486321.tif 000014
【図５Ｂ】
0004486321.tif 000015
【図６】
0004486321.tif 000016
【図７】
0004486321.tif 000017
【図８】
0004486321.tif 000018
【図９】
0004486321.tif 000019
【図１０】
0004486321.tif 000020
【図１１】
0004486321.tif 000021
【図１２】
0004486321.tif 000022
【図１３】
0004486321.tif 000023
【図１４】
0004486321.tif 000024
【図１５】
0004486321.tif 000025