JP3943090B2 - コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討 - Google Patents

コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討 Download PDF

Info

Publication number
JP3943090B2
JP3943090B2 JP2004052374A JP2004052374A JP3943090B2 JP 3943090 B2 JP3943090 B2 JP 3943090B2 JP 2004052374 A JP2004052374 A JP 2004052374A JP 2004052374 A JP2004052374 A JP 2004052374A JP 3943090 B2 JP3943090 B2 JP 3943090B2
Authority
JP
Japan
Prior art keywords
group
level
item
target
found
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004052374A
Other languages
English (en)
Other versions
JP2004259284A (ja
JP2004259284A5 (ja
Inventor
ラーソン デビッド
デビッド ワックスマン ピーター
ベンカテシュ チャンドラモウリ
(ユージン) ローゼンフェルド エフゲニー
ナリン アチッラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004259284A publication Critical patent/JP2004259284A/ja
Publication of JP2004259284A5 publication Critical patent/JP2004259284A5/ja
Application granted granted Critical
Publication of JP3943090B2 publication Critical patent/JP3943090B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B1/00Compression machines, plants or systems with non-reversible cycle
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B41/00Fluid-circulation arrangements
    • F25B41/30Expansion means; Dispositions thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B2400/00General features or devices for refrigeration machines, plants or systems, combined heating and refrigeration systems or heat-pump systems, i.e. not limited to a particular subgroup of F25B
    • F25B2400/07Details of compressors or related parts
    • F25B2400/075Details of compressors or related parts with parallel compressors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Mechanical Engineering (AREA)
  • Thermal Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ディジタル権利管理(digital rights management、DRM)システムに関する。具体的には、本発明は、オフィスまたは会社または類似物などの組織内のコンテンツのレンダリングおよび使用を、対応する使用条件またはライセンス条件に従って制約できるようにする、組織内のディジタルコンテンツのパブリッシュ(publish)へのDRMシステムの使用に関する。さらに具体的には、本発明は、キャッシングされたグループ情報に少なくとも部分的に基づく、対応するディジタルコンテンツのディジタルライセンスの発行に関する。
ディジタル権利管理およびディジタル権利実施は、ディジタルオーディオ、ディジタルビデオ、ディジタルテキスト、ディジタルデータ、ディジタルマルチメディアなどのディジタルコンテンツに関連して、そのようなディジタルコンテンツが1つまたは複数のユーザに配布される場合に非常に望ましい。ディジタルコンテンツは、たとえばテキストドキュメントなどの静的なディジタルコンテンツ、または生イベントのストリーミングオーディオ/ビデオなどのストリーミングされるディジタルコンテンツとすることができる。配布の通常の態様には、磁気(フロッピー(登録商標))ディスク、磁気テープ、光学(コンパクト)ディスク(CD)などの有形のデバイス、および電子掲示板、電子ネットワーク、インターネットなどの無形メディアが含まれる。ユーザによる受信の際に、そのようなユーザは、パーソナルコンピュータ上のメディアプレイヤまたは類似物などの適当なレンダリングデバイスの助けを得てディジタルコンテンツをレンダリングまたは「プレイ」する。
1つのシナリオでは、著作者、出版社、放送会社などのコンテンツオーナーまたは権利オーナーが、ライセンス料またはなんらかの他の報酬と交換で多数のユーザまたは受取人のそれぞれにそのようなディジタルコンテンツを配布することを望む。そのようなシナリオでは、コンテンツが、曲、曲のアルバム、ムービーなどである可能性があり、配布の目的が、ライセンス料を生成するためである。そのようなコンテンツオーナーは、選択肢を与えられた場合に、そのような配布されるディジタルコンテンツに関してユーザが行うことができることを制限することを望みたがる。たとえば、コンテンツオーナーは、少なくともコンテンツオーナーが第2ユーザからのライセンス料を拒否する形で、ユーザが第2ユーザへのそのようなコンテンツのコピーおよび再配布を行うことを制限したがる。
さらに、コンテンツオーナーは、異なるライセンス料で異なるタイプの使用ライセンスを購入する柔軟性をユーザに提供すると同時に、実際にどのタイプのライセンスが購入されたかに関してユーザを拘束することを望む可能性がある。たとえば、コンテンツオーナーは、配布されるディジタルコンテンツを、限られた回数だけ、あるトータル時間だけ、あるタイプのマシンでのみ、あるタイプのメディアプレイヤでのみ、あるタイプのユーザによってのみ、などでプレイできるようにすることを望む可能性がある。
もう1つのシナリオでは、組織の従業員またはメンバなどのコンテンツデベロッパが、そのようなディジタルコンテンツを、組織内の1つまたは複数の他の従業員またはメンバ、あるいは組織外の他の個人に配布することを望むが、他者がそのコンテンツをレンダリングできなくすることを望む。この場合に、そのコンテンツの配布は、ライセンス料またはなんらかの他の報酬と交換のブロードベースの配布ではなく、秘密の形または制限された形での組織ベースのコンテンツ共有により類似する。
したがって、そのようなシナリオにおいて、コンテンツを、オフィスセッティング内で交換することができるドキュメントプレゼンテーション、スプレッドシート、データベース、電子メール、または類似物などのドキュメントプレゼンテーション、スプレッドシート、データベース、電子メール、または類似物とすることができ、コンテンツデベロッパは、コンテンツが、組織またはオフィスセッティング内に留まり、たとえば競争者または反対者など、許可されない個人によってレンダリングされないことを保証することを望む可能性がある。やはり、そのようなコンテンツデベロッパは、受取人がそのように配布されるディジタルコンテンツに関して行うことができることを制限することを望む。たとえば、コンテンツオーナーは、少なくともコンテンツをレンダリングすることを許可されなければならない個人の範囲の外にコンテンツが露出される形で、ユーザがそのようなコンテンツをコピーし、第2ユーザに再配布することを制限したがる。
さらに、コンテンツデベロッパは、さまざまな受取人に異なるレベルのレンダリング権利を与えることを望む可能性がある。たとえば、コンテンツデベロッパは、あるクラスの個人に関してプロテクトされたディジタルコンテンツを表示可能にするが、印刷可能にせず、別のクラスの個人に関して表示可能であり印刷可能にできるようにすることを望む可能性がある。
しかし、どちらのシナリオにおいても、配布が行われた後に、そのようなコンテンツのオーナー/デベロッパは、ディジタルコンテンツに対する制御を、あるとしてもごくわずかだけ有する。これは、実用上すべてのパーソナルコンピュータに、そのようなディジタルコンテンツの正確なディジタルコピーを行い、そのような正確なディジタルコピーを書き込み可能磁気ディスクまたは書き込み可能光学ディスクにダウンロードし、またはインターネットなどのネットワークを介して任意の宛先へそのような正確なディジタルコピーを送信するのに必要なソフトウェアおよびハードウェアが含まれるという事実に鑑みて、特に問題である。
もちろん、コンテンツが配布されるトランザクションの一部として、コンテンツのオーナー/デベロッパは、ディジタルコンテンツのユーザ/受取人が、歓迎されない形でそのようなディジタルコンテンツを再配布しないことを約束することを要求することができる。しかし、そのような約束は、簡単になされ、簡単に破られる。コンテンツのオーナー/デベロッパは、通常は暗号化および暗号化解除が用いられる、複数の既知のセキュリティデバイスのいずれかを介してそのような再配布を防ぐことを試みることができる。しかし、穏やかに決心したユーザが、暗号化されたディジタルコンテンツを暗号解除し、そのようなディジタルコンテンツを暗号化されない形態で保存し、その後、これを再配布することを防ぐことの可能性は非常に低い。
任意の形態のディジタルコンテンツの制御されたレンダリングまたはプレイを可能にし、そのような制御が、柔軟であり、そのようなディジタルコンテンツのコンテンツオーナー/デベロッパによって定義可能である、ディジタル権利管理(DRM)およびディジタル権利実施アーキテクチャならびにディジタル権利管理(DRM)およびディジタル権利実施方法の必要性が存在する。具体的に言うと、特に、ドキュメントが個人または個人のクラスの定義されたグループの間で共有される、オフィスまたは組織の環境または類似物での、そのような制御されたレンダリングを可能にし、促進するアーキテクチャの必要が存在する。さらに具体的に言うと、ユーザがグループのメンバであることに基づいてコンテンツをユーザにライセンスできるようにする(グループメンバシップが少なくとも部分的にキャッシングされたグループ情報に基づいて決定される)アーキテクチャの必要性が存在する。
前述の必要性は、組織内のエレメントが組織内の事前定義の1つまたは複数のターゲットグループのメンバであるかどうかを判定する、本発明によって少なくとも部分的に満足される。組織によって、X個のレベルに編成され、エレメント−グループ情報が保管される複数のストレージデバイスを含むコンピュータネットワークが維持される。ストレージデバイスには、上位のより高コストなレベルXのディレクトリおよび少なくとも1つのキャッシュが含まれる。各キャッシュは、X未満のより下位のより低コストなレベルであり、各キャッシュには、ディレクトリ内のエレメント−グループ情報の少なくとも一部が含まれる。1からXまでのレベルは、最も低コストから最も高コストに対応する。
この方法では、各ターゲットグループが、ターゲットグループに関するアイテムを見つけるためにストレージデバイスの諸レベルを検索することと、ターゲットグループが見つかる場合に、ターゲットグループを検証済みターゲット(validated target)ビン(V)に置くことによって検証される。さらに、エレメントは、エレメントに関するアイテムを見つけるためにストレージデバイスの諸レベルを検索することと、エレメントのアイテムが見つかる場合に、エレメントがそのメンバとしてリストされるすべてのグループをそのアイテムから判定し、そのようなmember−ofグループを検索ビン(S)に置くことによって検証される。
その後、第1に、(S)のいずれかのグループが、(V)のグループと一致するかどうかを判定する。そうである場合には、そのエレメントが、ターゲットグループのメンバであると結論される。そうでない場合には、この方法は、(S)のすべてのグループを、レベル1のストレージデバイスに対応するキュー(Q1)に移動することと、そのエレメントからすべてのターゲットグループへのメンバシップパスに関する検索の反復プロセスを実行することによって継続される。
反復プロセスには、1からXまでのレベルごとに、第2に、そのレベルに対応するキュー(Qx)が空であるかどうかを判定することが含まれる。空である場合には、レベルを増分し、プロセスは、x<Xの場合に第2に判定するステップに戻り、x=Xの場合には、エレメントがどのターゲットグループのメンバでもないと結論する。空でない場合には、グループが、(Qx)から除去され、除去されたグループが、既に廃棄ビン(D)にあるかどうかを判定する。
(D)にある場合には、このプロセスは、第2に判定するステップに戻る。(D)にない場合には、このプロセスによって、そのレベルに対応するストレージデバイス内に除去されたグループに対応するアイテムが検索される。そのようなアイテムが検索から見つかる場合には、x<Xであれば、除去されたグループが(Q(x+1))に移動され、x=Xであれば(D)に移動され、プロセスは、第2に判定するステップに戻る。そのようなアイテムが検索から見つからない場合には、見つかったアイテムから判定される、除去されたグループがそのメンバである各新たに発見されたグループが、(S)に置かれ、除去されたグループは、(D)に移動され、プロセスは、第1に判定するステップに戻る。
この反復プロセスによって、エレメントから検証済みターゲットグループのいずれかへのすべての可能なパスが展開される。それを行う際に、上位レベルのストレージデバイスでのより高コストの動作は、下位レベルのストレージデバイスでのすべての可能なより低コストの動作が使い果たされるまで、行われない。
前述の要約ならびに以下の本発明の実施形態の詳細な説明は、添付図面と共に読まれる場合によりよく理解される。本発明の例示において、図面に、現在好ましい実施形態を示す。しかし、理解されるように、本発明は、図示の正確な配置および手段に限定されない。
コンピュータ環境
図1および以下の説明は、本発明を実施することができる適切なコンピューティング環境の短い全般的な説明を提供することを意図されている。しかし、ハンドヘルドコンピューティングデバイス、ポータブルコンピューティングデバイス、およびすべての種類の他のコンピューティングデバイスが、本発明と共に使用されることを企図されていることを理解されたい。汎用コンピュータを下で説明するが、これは、1つの例にすぎず、本発明は、ネットワークサーバインターオペラビリティおよびネットワークサーバインタアクションを有するシンクライアントだけを必要とする。したがって、本発明は、非常に少ないクライアントリソースまたは最小限のクライアントリソースが関係するネットワークホステッドサービスの環境、たとえば、クライアントデバイスがワールドワイドウェブへのブラウザまたはインターフェースとしてのみ働くネットワーク化された環境で、実施することができる。
必要ではないが、本発明を、デベロッパによる使用のためのアプリケーションプログラミングインターフェース(API)を介して実施するか、クライアントワークステーション、サーバ、または他のデバイスなどの1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の全般的な文脈で説明されるネットワークブラウジングソフトウェアに含めるか、その両方を行うことができる。一般に、プログラムモジュールには、特定のタスクを実行するか、特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および類似物が含まれる。通常、プログラムモジュールの機能性は、さまざまな実施形態での望みに応じて、組み合わせるか分散することができる。さらに、当業者は、本発明を他のコンピュータシステム構成で実践することができることを諒解するであろう。本発明と共に使用するのに適する可能性がある他の周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成には、パーソナルコンピュータ(PC)、自動預金払戻機、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブル消費者電子製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、および類似物が含まれるが、これに限定はされない。本発明は、通信ネットワークまたは他のデータ伝送メディアを介してリンクされるリモートプロセッシングデバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含む、ローカルコンピュータストレージメディアおよびリモートコンピュータストレージメディアの両方に配置することができる。
したがって、図1に、本発明を実施することができる適切なコンピューティングシステム環境100の例を示すが、上で明らかにしたように、コンピューティングシステム環境100は、適切なコンピューティング環境の1つの例に過ぎず、本発明の使用の範囲または機能性に関する限定を提案することを意図されてはいない。コンピューティング環境100を、例示的なオペレーティング環境100に示されたコンポーネントのいずれかまたはその組合せに関する依存性または要件を有するものと解釈してもならない。
図1に関して、本発明を実施する例示的なシステムに、コンピュータ110の形態の汎用コンピューティングデバイスが含まれる。コンピュータ110のコンポーネントには、処理ユニット120、システムメモリ130、およびシステムバス121が含まれるがこれに限定はされず、システムバス121によって、システムメモリを含むさまざまなシステムコンポーネントが、処理ユニット120に結合される。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。制限ではなく例として、そのようなアーキテクチャに、Industry Standard Architecture(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、およびPeripheral Component Interconnect(PCI)バス(メザニンバスとも称する)が含まれる。
コンピュータ110には、通常は、さまざまなコンピュータ可読メディアが含まれる。コンピュータ可読メディアは、コンピュータ110によってアクセスすることができるすべての使用可能なメディアとすることができ、コンピュータ可読メディアには、揮発性メディアおよび不揮発性メディアと、取り外し可能メディアおよび取り外し不能メディアの両方が含まれる。制限ではなく例として、コンピュータ可読メディアに、コンピュータストレージメディアおよび通信メディアを含めることができる。コンピュータストレージメディアには、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージに関する任意の方法またはテクノロジで実施される、揮発性および不揮発性の両方の、取り外し可能メディアおよび取り外し不能メディアが含まれる。コンピュータストレージメディアには、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリテクノロジ、CDROM、ディジタル多用途ディスク(DVD)、または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報を保管するのに使用することができ、コンピュータ110によってアクセスすることができる他のあらゆるメディアが含まれるが、これに制限はされない。通信メディアによって、通常は、搬送波または他のトランスポートメカニズムなどの変調されたデータ信号でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが実施され、通信メディアには、すべての情報配信メディアが含まれる。用語「変調されたデータ信号」は、信号内で情報を符号化する形でその特性の1つまたは複数を設定または変更された信号を意味する。制限ではなく例として、通信メディアには、ワイヤードネットワークまたは直接配線接続などのワイヤードメディアと、音響、RF、赤外線、および他のワイヤレスメディアなどのワイヤレスメディアが含まれる。上記のいずれかの組合せも、コンピュータ可読メディアの範囲に含まれなければならない。
システムメモリ130には、読取専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性のメモリの形態のコンピュータストレージメディアが含まれる。起動中などにコンピュータ110内のエレメントの間での情報の転送を助ける基本ルーチンを含む基本入出力システム133(BIOS)が、通常はROM131に保管される。RAM132には、通常は、即座にアクセス可能であるおよび/または処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールが含まれる。制限ではなく例として、図1に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137が図示されている。
コンピュータ110には、他の取り外し可能/取り外し不能の揮発性/不揮発性コンピュータストレージメディアを含めることもできる。例としてのみ、図1に、取り外し不能不揮発性磁気メディアから読み取り、これに書き込むハードディスクドライブ141、取り外し可能不揮発性磁気ディスク152から読み取り、これに書き込む磁気ディスクドライブ151、およびCD ROMまたは他の光学メディアなどの取り外し可能不揮発性光ディスク156から読み取り、これに書き込む光学ディスクドライブ155が図示されている。この例示的オペレーティング環境で使用することができる他の取り外し可能/取り外し不能の揮発性/不揮発性コンピュータストレージメディアには、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、および類似物が含まれるが、これに限定はされない。ハードディスクドライブ141は、通常は、インターフェース140などの取り外し不能メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光学ディスクドライブ155は、通常は、インターフェース150などの取り外し可能メモリインターフェースによってシステムバス121に接続される。
上で説明した、図1に図示されたドライブおよびそれに関連するコンピュータストレージメディアによって、コンピュータ110のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージが提供される。図1では、たとえば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を保管する状態で図示されている。これらのコンポーネントを、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同一または異なるのいずれかとすることができる。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、最低限、これらが異なるコピーであることを示すために、本明細書では異なる符号を与えられている。ユーザは、キーボード162およびポインティングデバイス161(通常は、マウス、トラックボール、またはタッチパッドと称する)などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信用パラボラアンテナ、スキャナ、または類似物を含めることができる。上記および他の入力デバイスは、しばしば、システムバス121に結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはuniversal serial bus(USB)などの、他のインターフェースおよびバス構造によって接続されることが可能である。
モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。ノースブリッジなどのグラフィックスインターフェース182も、システムバス121に接続することができる。ノースブリッジは、CPUまたはホスト処理ユニット120と通信するチップセットであり、accelerated graphics port(AGP)通信の責任を負う。1つまたは複数のグラフィックス処理ユニット(GPU)184によって、グラフィックスインターフェース182と通信することができる。これに関して、GPU184には、一般に、レジスタストレージなどのオンチップメモリストレージが含まれ、GPU184によって、ビデオメモリ186との通信が行われる。しかし、GPU184は、コプロセッサの1つの例にすぎず、したがって、さまざまなコプロセッシングデバイスを、コンピュータ110に含めることができる。モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続され、このビデオインターフェース190によって、ビデオメモリ186と通信することができる。モニタ191の他に、コンピュータに、スピーカ197およびプリンタ196など、出力周辺インターフェース195を介して接続することができる他の周辺出力デバイスも含めることができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ180には、通常は、コンピュータ110に関して上述したエレメントの多数またはすべてが含まれるが、図1にはメモリストレージデバイス181だけが図示されている。図1に示された論理接続には、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173が含まれるが、他のネットワークも含めることができる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれている。
LANネットワーキング環境で使用される場合に、コンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合に、コンピュータ110には、通常は、インターネットなどのWAN173を介する通信を確立する、モデム172または他の手段が含まれる。モデム172は、内蔵または外付けとすることができるが、ユーザ入力インターフェース160または他の適当なメカニズムを介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示されたプログラムモジュールまたはその諸部分を、リモートメモリストレージデバイスに保管することができる。制限ではなく例として、図1に、メモリデバイス181に常駐するリモートアプリケーションプログラム185を図示する。図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用することができることを諒解されたい。
当業者は、コンピュータ110または他のクライアントデバイスを、コンピュータネットワークの一部として展開することができることを諒解することができる。これに関して、本発明は、任意の個数のメモリまたはストレージユニット、および任意の数のストレージユニットまたはボリュームにまたがって発生する任意の数のアプリケーションおよびプロセスを有するあらゆるコンピュータシステムに関係する。本発明は、リモートストレージまたはローカルストレージを有する、ネットワーク環境内で展開されたサーバコンピュータおよびクライアントコンピュータを伴う環境に適用することができる。本発明は、プログラミング言語機能性、解釈機能、および実行機能を有する独立型コンピューティングデバイスにも適用することができる。
分散コンピューティングによって、コンピューティングデバイスとシステムとの間の直接交換によるコンピュータリソースおよびサービスの共有が容易になる。これらのリソースおよびサービスには、情報の交換、キャッシュストレージ、およびファイル用のディスクストレージが含まれる。分散コンピューティングでは、ネットワーク接続性が利用され、クライアントが、集合的な威力を活用して企業全体に利益をもたらすことができるようになる。これに関して、さまざまなデバイスが、信頼されるグラフィックスパイプラインに関する本発明の認証テクニックを含めるために相互作用することができるアプリケーション、オブジェクト、またはリソースを有する。
図2に、例示的なネットワーク化されたコンピューティング環境または分散コンピューティング環境の概略図を示す。分散コンピューティング環境には、コンピューティングオブジェクト10a、10bなどおよびコンピューティングオブジェクトまたはコンピューティングデバイス110a、110b、110cが含まれる。これらのオブジェクトに、プログラム、メソッド、データストア、プログラマブルロジックなどを含めることができる。オブジェクトに、PDA、テレビジョン、MP3プレイヤ、テレビジョン、パーソナルコンピュータなどの同一のデバイスまたは異なるデバイスの一部を含めることができる。各オブジェクトは、通信ネットワーク14によって別のオブジェクトと通信することができる。このネットワーク自体に、図2のシステムにサービスを提供する、他のコンピューティングオブジェクトおよびコンピューティングデバイスを含めることができる。本発明の態様によれば、各オブジェクト10または110に、信頼されるグラフィックスパイプラインに関する本発明の認証テクニックを要求する可能性があるアプリケーションを含めることができる。
110cなどのオブジェクトを、別のコンピューティングデバイス10または110上でホスティングすることができることも諒解することができる。したがって、図示の物理的環境では、接続されたデバイスがコンピュータとして図示されているが、そのような図示は、単に例示的であり、代わりに、PDA、テレビジョン、MP3プレイヤなどのさまざまなディジタルデバイス、またはインターフェース、COMオブジェクト、および類似物などのソフトウェアオブジェクトを含む物理的環境を図示するか説明することができる。
分散コンピューティング環境をサポートするさまざまなシステム、コンポーネント、およびネットワーク構成がある。たとえば、コンピューティングシステムを、ワイヤラインシステムまたはワイヤレスシステムによって、ローカルネットワークまたは広い範囲に分散したネットワークによって、一緒に接続することができる。現在、ネットワークの多くが、インターネットに結合され、このインターネットによって、広範囲に分散したコンピューティングネットワークのインフラストラクチャが提供され、このインターネットに、多数の異なるネットワークが含まれる。
ホームネットワーキング環境には、電力線、データ(ワイヤレスおよびワイヤードの両方)、音声(たとえば電話)、およびエンターテイメントメディアなどの独自のプロトコルをそれぞれがサポートすることができる少なくとも4つの異なるネットワークトランスポートメディアがある。照明スイッチおよび照明器具などのホームコントロールデバイスのほとんどによって、接続に電力線を使用することができる。データサービスは、ブロードバンド(たとえば、DSLモデムまたはケーブルモデムのいずれか)として家庭に入ることができ、家庭内でワイヤレス接続性(たとえば、HomeRFまたは802.11b)またはワイヤード接続性(たとえば、Home PNA、Cat 5、even power line)のいずれかを使用してアクセス可能である。音声トラフィックは、ワイヤード(たとえば、Cat 3)またはワイヤレス(たとえば、セル電話)のいずれかとして家庭に入ることができ、家庭内でCat 3配線を使用して配布することができる。エンターテイメントメディアは、衛星またはケーブルのいずれかを介して家庭に入ることができ、通常は、家庭内で同軸ケーブルを使用して配布される。IEEE 1394およびDVIも、メディアデバイスのクラスタのディジタル相互接続として現れつつある。これらのネットワーク環境およびプロトコル標準規格として現れる可能性がある他の環境のすべてを、インターネットによって外部の世界に接続することができるイントラネットを形成するように相互接続することができる。短く言うと、データのストレージおよび伝送のためのさまざまな異なるソースが存在し、その結果、前に進むと、コンピューティングデバイスは、そのデータ処理パイプラインのすべての部分で、コンテンツを保護する形を必要とするようになる。
「インターネット」は、一般に、コンピュータネットワーキングの技術で周知の、TCP/IPプロトコルスイートを使用するネットワークおよびゲートウェイの集合を指す。TCP/IPは、「Transport Control Protocol/Interface Program(転送制御プロトコル/インターフェースプログラム)」の頭字語である。インターネットは、ユーザがネットワークを介して相互作用でき、情報を共有できるようにする、ネットワーキングプロトコルを実行するコンピュータによって相互接続された、地理的に分散したリモートコンピュータネットワークのシステムとして説明することができる。そのような広範囲に広がった情報共有のゆえに、インターネットなどのリモートネットワークは、これまで、全般的に、デベロッパが、本質的に制限なしで特殊化されたオペレーションまたはサービスを実行するソフトウェアアプリケーションを設計することができるオープンシステムに進化してきた。
したがって、ネットワークインフラストラクチャによって、クライアント/サーバアーキテクチャ、ピアツーピアアーキテクチャ、またはハイブリッドアーキテクチャなどのネットワークトポロジのホストが可能になる。「クライアント」は、それが関係しない別のクラスまたはグループのサービスを使用する、あるクラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセスすなわち、おおまかには命令の組またはタスクである。クライアントプロセスによって、他のプログラムまたはサービス自体に関する機能の詳細を一切「知る」必要なしに、要求されたサービスが使用される。クライアント/サーバアーキテクチャ、特にネットワークシステムにおいて、クライアントは、通常は、たとえばサーバなどの別のコンピュータによって提供される共有ネットワークリソースにアクセスするコンピュータである。図2の例において、コンピュータ110a、110bなどを、クライアントと考えることができ、コンピュータ10a、10bなどを、サーバと考えることができ、ここで、サーバ10a、10bなどによって、クライアントコンピュータ110a、110bなどに複製されるデータが維持される。
サーバは、通常は、インターネットなどのリモートネットワークを介してアクセス可能なリモートコンピュータシステムである。クライアントプロセスは、第1コンピュータシステム内でアクティブとすることができ、サーバプロセスは、第2コンピュータシステム内でアクティブとすることができ、これらが通信メディアを介して互いに通信し、したがって、分散機能性がもたらされ、複数のクライアントがサーバの情報収集機能を利用できるようになる。
クライアントおよびサーバは、プロトコルレイヤによって提供される機能性を使用して互いに通信する。たとえば、ハイパーテキスト転送プロトコル(HTTP)は、ワールドワイドウェブ(WWW)と共に使用される一般的なプロトコルである。通常、Universal Resource Locator(URL)またはインターネットプロトコル(IP)アドレスなどのコンピュータネットワークアドレスが、サーバコンピュータまたはクライアントコンピュータがお互いを識別するのに使用される。ネットワークアドレスを、Universal Resource Locatorアドレスと呼ぶことができる。たとえば、通信を、通信メディアを介して提供することができる。具体的に言うと、クライアントおよびサーバを、大容量通信に関するTCP/IP接続を介して互いに結合することができる。
したがって、図2に、サーバがネットワーク/バスを介してクライアントコンピュータと通信する、本発明を実施することができる、例示的なネットワーク化された環境または分散環境が示されている。さらに詳細に言うと、本発明にしたがって、複数のサーバ10a、10bなどが、LAN、WAN、イントラネット、インターネットなどとすることができる通信ネットワーク/バス14を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク化された機器、またはVCR、TV、オーブン、照明、ヒータ、および類似物などの他のデバイスなどの複数のクライアントコンピューティングデバイスまたはリモートコンピューティングデバイス110a、110b、110c、110d、110eなど相互接続される。したがって、本発明を、それに関して信頼されるソースからのセキュアコンテンツを処理し、保管し、またはレンダリングすることが望ましいあらゆるコンピューティングデバイスに適用することができることが企図されている。
通信ネットワーク/バス14がインターネットであるネットワーク化された環境では、たとえば、サーバ10を、ウェブサーバとすることができ、このウェブサーバに、クライアント110a、110b、110c、110d、110eなどが、HTTPなどの複数の既知のプロトコルのいずれかを介して通信する。サーバ10は、クライアント110として働くこともでき、これは、分散コンピューティング環境の特性とすることができる。通信は、適当な場合に、ワイヤードまたはワイヤレスとすることができる。クライアントデバイス110は、通信ネットワーク/バス14を介して通信してもしなくてもよく、独立の通信を関連付けられることができる。たとえば、TVまたはVCRの場合に、その制御に対するネットワーク化された態様がある場合もそうでない場合もある。各クライアントコンピュータ110およびサーバコンピュータ10は、さまざまなアプリケーションプログラムモジュールまたはオブジェクト135を備えることができ、さまざまなタイプのストレージエレメントまたはオブジェクトへの接続またはアクセスを備えることができ、この接続またはアクセスを介して、ファイルを保管するか、ファイルの一部をダウンロードまたは移植することができる。したがって、本発明を、通信ネットワーク/バス14にアクセスし、これと相互作用することができるクライアントコンピュータ110a、110bなどと、コンピュータ110a、110bなどおよび他のデバイス111およびデータベース20と相互作用することができるサーバコンピュータ10a、10bとを有するコンピュータネットワーク環境で使用することができる。
ディジタル権利管理(DRM)の概要
既知のように、図11を参照すると、ディジタル権利管理(DRM)およびディジタル権利実施は、ディジタルオーディオ、ディジタルビデオ、ディジタルテキスト、ディジタルデータ、ディジタルマルチメディアなどのディジタルコンテンツ12に関して、そのようなディジタルコンテンツ12がユーザに配布される場合に、非常に望ましい。ユーザによって受け取られる際に、そのようなユーザは、パーソナルコンピュータ14のメディアプレイヤまたは類似物などの適当なレンダリングデバイスの助けを得てディジタルコンテンツをレンダリングまたは「プレイ」する。
通常、そのようなディジタルコンテンツ12を配布するコンテンツオーナーまたはコンテンツデベロッパ(以下では「オーナー」と称する)は、ユーザがそのように配布されるディジタルコンテンツ12に関して行うことができることを制限することを望む。たとえば、コンテンツオーナーは、ユーザが、そのようなコンテンツ12をコピーし、第2のユーザに再配布することを制限することを望む可能性があり、あるいは、配布されたディジタルコンテンツ12を、限られた回数だけ、あるトータル時間だけ、あるタイプのマシンでのみ、あるタイプのメディアプレイヤでのみ、あるタイプのユーザによってのみ、などでプレイできるようにすることを望む可能性がある。
しかし、配布が行われた後には、そのようなコンテンツオーナーは、ディジタルコンテンツ12に対する制御を、あるとしてもごくわずかだけ有する。DRMシステム10を用いると、ディジタルコンテンツ12の任意の形での制御されたレンダリングまたはプレイが可能になり、そのような制御は、柔軟であり、そのようなディジタルコンテンツのコンテンツオーナーによって定義可能である。通常、コンテンツ12は、適当な配布チャネルによってパッケージ13の形でユーザに配布される。配布されるディジタルコンテンツパッケージ13に、対称暗号化/暗号化解除キー(KD)(すなわち(KD(CONTENT)))を用いて暗号化されたディジタルコンテンツならびに、コンテンツを識別する情報、そのようなコンテンツのライセンスを獲得する方法などの他の情報を含めることができる。
信頼ベースのDRMシステム10を用いると、ディジタルコンテンツ12のオーナーが、そのようなディジタルコンテンツ12がユーザのコンピューティングデバイス14でのレンダリングを許可される前に満足されなければならないライセンスルールを指定できるようになる。そのようなライセンスルールに、前述の時間的要件を含めることができ、そのようなライセンスルールは、ユーザ/ユーザのコンピューティングデバイス14(以下、このような用語は、状況が他の形を必要としない限り、交換可能である)がコンテンツオーナーまたはそのエージェントから入手しなければならないディジタルライセンスまたは使用ドキュメント(以下では「ライセンス」と称する)16内で実施することができる。そのようなライセンス16に、おそらくはユーザのコンピューティングデバイスによって暗号化解除可能なキーによって暗号化されたディジタルコンテンツを暗号化解除する暗号化解除キー(KD)も含まれる。
ディジタルコンテンツ12の1つのコンテンツオーナーは、ユーザのコンピューティングデバイス14が、そのようなコンテンツオーナーによってライセンス16内で指定されたルールおよび要件を守ることすなわち、ディジタルコンテンツ12が、ライセンス16内のルールおよび要件が満足されない限りレンダリングされないことを信頼しなければならない。ユーザのコンピューティングデバイス14が、ディジタルコンテンツ12に関連し、ユーザによって入手されるライセンス16で実施されるライセンスルールに従う場合を除いてディジタルコンテンツ12がレンダリングされない、信頼されるコンポーネントまたは信頼されるメカニズム18を備えることが好ましい。
信頼されるコンポーネント18は、通常は、ライセンスエバリュエータ20を有し、このライセンスエバリュエータ20によって、とりわけ、ライセンス16が有効であるかどうかが判定され、そのような有効なライセンス16のライセンスルールおよびライセンス要件が再検討され、再検討されたライセンスルールおよびライセンス要件に基づいて、要求元のユーザが、要求されたディジタルコンテンツ12を求められる形でレンダリングする権利を有するかどうかが判定される。理解されるように、ライセンスエバリュエータ20は、DRMシステム10内で信頼されて、ライセンス16のルールおよび要件に従ってディジタルコンテンツ12のオーナーの望みを実行し、ユーザは、極悪なまたは他の形のすべての目的のためにそのような信頼されるエレメントを簡単に変更することができてはならない。
理解されなければならないように、ライセンス16のルールおよび要件によって、ユーザが、そのユーザが誰であるか、そのユーザがどこに位置するか、そのユーザが使用しているコンピューティングデバイスのタイプが何であるか、どのレンダリングアプリケーションによってDRMシステムが呼び出されているか、日付、時刻などを含む複数の要因に基づいて、ディジタルコンテンツ12をレンダリングする権利を有するかどうかを指定することができる。さらに、ライセンス16のルールおよび要件によって、たとえば事前に決定されるプレイ回数または事前に決定されるプレイ時間にライセンス16を制限することができる。
ルールおよび要件は、任意の適当な言語および構文に従ってライセンス16内で指定することができる。たとえば、この言語によって、満足されなければならない属性および値を単純に指定することができ(たとえば、DATE must be later than X)、あるいは、指定されたスクリプトによる関数の実行を要求することができる(たとえば、IF DATE greater than X,THEN DO ...)。
ライセンスエバリュエータ20が、ライセンス16が有効であり、ユーザがそのライセンスのルールおよび要件を満足すると判定する際に、ディジタルコンテンツ12をレンダリングすることができる。具体的に言うと、コンテンツ12をレンダリングするために、暗号化解除キー(KD)が、ライセンス16から入手され、コンテンツパッケージ13からの(KD(CONTENT))に適用されて、実際のコンテンツ12がもたらされ、実際のコンテンツ12が、実際にレンダリングされる。
ディジタルコンテンツのパブリッシュ
図3は、ディジタルコンテンツをパブリッシュするシステムおよび方法の機能ブロック図である。本明細書で使用される用語としての「パブリッシュ」は、アプリケーションまたはサービスが、信頼されるエンティティと共に、そのエンティティがそのコンテンツを発行できる権利および条件の組ならびにその権利および条件を発行できる相手を確立するために従うプロセスである。本発明によれば、パブリッシュプロセスに、ディジタルコンテンツを暗号化することと、コンテンツの作者がコンテンツのすべての可能なユーザについて企図した永続的で実施可能な権利のリストを関連付けることが含まれる。このプロセスをセキュアな形で実行して、コンテンツの作者によって意図されないすべての権利またはコンテンツへのアクセスを禁止することができる。
具体的には、3つのエンティティが、セキュアディジタルコンテンツのパブリッシュに使用される。すなわち、クライアント300で実行され、パブリッシュのためにコンテンツを準備するコンテンツ準備アプリケーション302、やはりクライアントデバイス300に常駐するディジタル権利管理(DRM)アプリケーションプログラムインターフェース(API)306、および、インターネット、ローカルエリアネットワーク、広域ネットワーク、またはこれらの組合せなどの通信ネットワーク330を介してクライアント300に通信的に結合されるDRMサーバ320である。
コンテンツ準備アプリケーション302は、ディジタルコンテンツを作る任意のアプリケーションとすることができる。たとえば、アプリケーション302は、ディジタルテキストファイル、ディジタルミュージック、ビデオ、または他のそのようなコンテンツを作る、ワードプロセッサまたは他のパブリッシャとすることができる。コンテンツに、ライブイベントまたはテープに記録されたイベントまたは例のストリーミングされたオーディオ/ビデオなどの、ストリーミングされたコンテンツを含めることもできる。アプリケーション302は、ディジタルコンテンツを暗号化し、したがって、暗号化されたディジタルコンテンツファイル304を形成する暗号キーを備え、ユーザは、ディジタルコンテンツファイル304の暗号化されたコンテンツに緊密に関連付けられる権利データを提供する。権利データには、ディジタルコンテンツの権利を有するエンティティごとの識別ならびに各識別されたエンティティの権利および条件の組が含まれる。
そのようなエンティティは、たとえば、個人、個人のクラス、またはデバイスとすることができる。そのような権利に、ディジタルコンテンツを読み取る権利、ディジタルコンテンツを編集する権利、ディジタルコンテンツをコピーする権利、ディジタルコンテンツを印刷する権利などを含めることができる。条件に、最小システム要件、日付制限、回数制限、プレイカウント、および類似物を含めることができる。
クライアントAPI306によって、暗号化されたディジタルコンテンツデータおよび権利データが、DRMサーバ320に渡される。下で詳細に説明するプロセスを使用して、DRMサーバ320によって、そのDRMサーバ320によって権利データを実施できるかどうかが判定され、そうである場合には、DRMサーバ320によって、権利データに署名して、署名付き権利ラベル(SRL)308が形成される。しかし、一般に、信頼されるエンティティであればどれであっても、好ましくはDRMサーバ320によって信頼されるキーを使用して、権利データに署名することができる。たとえば、クライアントが、DRMサーバ320によってクライアントに供給されるキーを使用して権利データに署名することができる。
権利ラベル308に、権利記述、暗号化されたコンテンツキー、ならびに権利記述および暗号化されたコンテンツキーに対するディジタル署名を表すデータを含めることができる。DRMサーバ320によって権利ラベルに署名される場合には、DRMサーバ320によって、署名付き権利ラベル308が、クライアントAPI306を介してクライアントに渡され、このクライアントによって、署名付き権利ラベル308が、クライアントデバイス300で保管される。コンテンツ準備アプリケーション302によって署名付き権利ラベル308が、たとえば権利管理されたコンテンツファイル310を形成するための連結によるなど、暗号化されたディジタルコンテンツファイル304に関連付けられる。しかし、コンテンツファイル310を形成するためにコンテンツファイル304に連結されたSRL308への参照を用いて、SRL308を、コンテンツファイル304と別々に既知の位置に保管することができることに留意されたい。
図4を参照すると、権利管理されたディジタルコンテンツをパブリッシュする方法の1つが示されている。ステップ402で、アプリケーション302によって、ディジタルコンテンツを暗号化するのに使用されるコンテンツキー(CK)が生成される。コンテンツキー(CK)は、通常は、対称キーであるが、ディジタルコンテンツの暗号化に任意のキーを使用することができる。既知のように、対称キーは、対称キーアルゴリズムによって、暗号化および暗号化解除の両方に使用される。したがって、(CK)は、送信側と受信側の間で共有される場合に、きちんと隠蔽されなければならない。
ステップ404で、アプリケーション302によって、(CK)を用いてディジタルコンテンツを暗号化して、暗号化されたコンテンツファイル304(すなわち(CK(content)))を形成する。さらに、(CK(content))に対応する権利データが、コンテンツのパブリッシャまたは別のエンティティのいずれかによって生成される。そのような権利データを、カスタム権利データまたは、事前に定義されたテンプレートから入手される権利データとすることができることに留意されたい。上で説明したように、権利データに、コンテンツを消費する権利を与えられるエンティティのリスト、コンテンツに関してエンティティのそれぞれが所有する特定の権利、およびこれらの権利に押し付けることができるすべての条件を含めることができる。
ステップ406で、API306によって、第2の暗号化キー(DES1)が生成され、このキーはコンテンツキー(CK)を暗号化するのに使用される。(DES1)も、対称鍵であることが好ましい。ステップ408で、API306によって、(DES1)を用いて(CK)を暗号化して、(DES1(CK))をもたらす。ステップ410で、API306によって、(CK)を破棄し、その結果、(CK)は、(DES1(CK))を暗号化解除することによってのみ入手できるようになる。(CK(content))が中央DRMサーバ320に保護されることと、コンテンツに関するすべての「ライセンス要求」が権利データに従って集中して行われることを保証するために、ステップ412で、API306によって、提供されるDRMサーバ320に連絡し、その公開キー(PU−DRM)を検索する。ステップ414で、API306によって、(PU−DRM)を用いて(DES1)を暗号化して、(PU−DRM(DES1))をもたらす。したがって、(CK)を(PU−DRM))に保護して、DRMサーバ320が、(CK(content))の暗号化解除に必要な(CK)へのアクセスを得ることができる唯一のエンティティであることを保証する。ステップ416で、API306によって、(DES1)を用いて権利データ(すなわち、許可されるエンティティのリストならびにリスト内の許可されるエンティティのそれぞれに関連するめいめいの権利および条件)を暗号化して、(DES1(rightsdata))をもたらす。
代替実施形態では、(CK)を使用して、権利データを直接に暗号化して、(CK(rightsdata))をもたらすことができ、(PU−DRM)を使用して、(CK)を直接に暗号化して、(PU−DRM(CK))をもたらすことができ、これによって、(DES1)の使用を完全になしで済ませることができる。しかし、(DES1)を使用して権利データおよび(CK)を暗号化することによって、そのような(DES1)を、DRMサーバに従うようにすることができる任意の特定のアルゴリズムに従わせることができ、(CK)を、DRMサーバから独立のエンティティによって指定することができ、DRMサーバに従う(CK)としなくてよい。
ステップ418で、コンテンツ保護アプリケーション302によって、署名用の権利ラベルとしてDRMサーバ320に(PU−DRM(DES1))および(DES1(rightsdata))がサブミットされる。代わりに、クライアント自体が、下で示す形で権利データに署名することができる。権利データが、署名のためにサーバにサブミットされている場合には、ステップ420で、DRMサーバ320によって、権利データがアクセスされ、サブミットされた権利ラベルの権利および条件をDRMサーバ320によって実施できることが検証される。DRMサーバ320によって権利を実施できることを検証するために、DRMサーバ320によって、(PU−DRM)に対応する秘密キー(PR−DRM)を(PU−DRM(DES1))に適用して、(DES1)をもたらし、次に、(DES1)を(DES1(rightsdata))に適用して、平文の権利データをもたらす。次に、サーバ320によって、ポリシ検査を実行して、権利データで指定されたユーザ、権利、および条件が、サーバ320によって実施されるすべてのポリシに含まれることを検証する。サーバ320によって、最初にサブミットされた、(PU−DRM(DES1))および(DES1(rightsdata))を含む権利ラベルに署名して、署名付き権利ラベル(SRL)308をもたらし(この署名は、DRMサーバ320の秘密キー(PR−DRM)に基づく)、SRL308がAPI306に返され、API306によって、返されたSRL308が、クライアントアプリケーション302に提示される。
SRL308は、ディジタル署名されたドキュメントであり、このディジタル署名によって、SRL308が耐タンパにされる。さらに、SRL308は、コンテンツを暗号化するのに使用された実際のキーのタイプおよびアルゴリズムと独立であるが、それが保護するコンテンツに対する強い1対1関係が維持される。図4Aを参照すると、本発明の一実施形態で、SRL308に、とりわけ、おそらくはコンテンツのID;(PU−DRM(DES1))と、ネットワークでDRMサーバを突き止めるためのURLおよびURLに障害が発生する場合のフォールバック情報などの参照情報とを含む、SRL308に署名するDRMサーバに関する情報;SRL308自体を説明する情報;(DES1(rightsdata));(DES1(CK));およびディジタル署名(S(PR−DRM))を含むSRL308の基礎であるコンテンツに関する情報を含めることができる。
署名付き権利ラベル308を作るために、信頼されるエンティティが権利データに署名することを保証することによって、DRMサーバ320によって、権利ラベル308の権利データで説明されるパブリッシャによって示される条件に従ってコンテンツに関するライセンスが発行されることが、DRMサーバ320によって主張されつつある。諒解されなければならないように、ユーザは、特にライセンスにコンテンツキー(CK)が含まれる限り、コンテンツをレンダリングするためにライセンスを入手することを要求される。ユーザが、暗号化されたコンテンツに関するライセンスを入手することを求める場合には、ユーザは、コンテンツのSRL308およびDRMサーバ320または他のライセンスを発行するエンティティへのユーザの信任状を検証する証明書を含むライセンス要求を提示することができる。ライセンスを発行するエンティティは、(PU−DRM(DES1))および(DES1(rightsdata))を暗号化解除して、権利データを作ることができ、ライセンスを要求するエンティティに対して作者(存在する場合に)によって許可されるすべての権利をリストすることができ、これらの特定の権利だけを有するライセンスを構築することができる。
上で示したように、アプリケーション302がSRL308を受け取る際に、そのようなアプリケーション302によって、署名付き権利ラベル308に、対応する(CK(content))304が連結されて、権利管理されたディジタルコンテンツが形成される。代わりに、権利データが、既知の位置に保管され、その位置への参照が、暗号化されたディジタルコンテンツと共に提供される。したがって、DRM対応であるレンダリングアプリケーションによって、そのレンダリングアプリケーションによってレンダリングが試みられつつあるコンテンツの部分を介して、署名付き権利ラベル308を発見することができる。このディスカバリによって、レンダリングアプリケーションによる、DRMライセンシングサーバ320に対するライセンス要求の開始がトリガされる。パブリッシュするアプリケーション302によって、たとえば、URLをDRMライセンシングサーバ320に保管することができ、あるいは、DRMライセンシングサーバ320によって、権利ラベルにディジタル署名する前に、それ自体のURLをメタデータの一部として権利ラベルに組み込むことができ、その結果、レンダリングアプリケーションによって呼び出されるDRMクライアントAPI306によって、正しいDRMライセンシングサーバ320を識別できるようになる。
パブリッシュされたコンテンツに関するライセンスの入手
図5を参照すると、権利管理されたディジタルコンテンツをライセンシングするシステムおよび方法が示されている。本明細書で使用される用語としての「ライセンシング」は、ライセンスで指定される条件に従って、ライセンスで名前を指定されるエンティティがコンテンツを消費できるようにするライセンスを要求し、受け取るためにアプリケーションまたはサービスが従うプロセスを指す。ライセンシングプロセスへの入力に、ライセンスが要求されているコンテンツに関連する署名付き権利ラベル308およびそれに対するライセンスが要求されているエンティティの公開キー証明書を含めることができる。ライセンスを要求するエンティティが、必ずしもそれに関するライセンスが要求されているエンティティでないことに留意されたい。通常、ライセンスには、SRL308からの権利記述、暗号化されたコンテンツを暗号化解除することができる暗号化されたキー、ならびに、合法性を主張し、タンパリングを防ぐための、権利記述および暗号化されたキーに対するディジタル署名が含まれる。
予備的に、クライアントAPI306によって、権利管理されたコンテンツ310の署名付き権利ラベル308が、通信ネットワーク330を介してDRMサーバ320に転送される。上述したように、権利ラベル308には、DRMサーバ320の公開キー(PU−DRM)に従って暗号化されたコンテンツキー(CK)(すなわち(PU−DRM(CK)))が含まれる。ライセンス発行のプロセスで、DRMサーバ320によって、(PR−DRM)が(PU−DRM(CK))に適用されて、(CK)が入手される。DRMサーバ320によって、ライセンス要求で渡される公開キー証明書の公開キー(PU−ENTITY)が使用されて、(CK)が再暗号化される(すなわち(PU−ENTITY(CK)))。新たに暗号化された(PU−ENTITY(CK))が、ライセンスに置かれる。したがって、ライセンスを、(CK)を露出する危険性なしに呼出し側に返すことができる。というのは、(PU−ENTITY)に対応する秘密キー(PR−ENTITY)の所有者だけが、(PU−ENTITY(CK))から(CK)を回復できるからである。クライアントAPI306によって、(CK)が使用されて、暗号化されたコンテンツが暗号化解除されて、暗号化解除されたディジタルコンテンツ312が形成される。クライアントアプリケーション302によって、ライセンス内で供給される権利に従って、暗号化解除されたディジタルコンテンツ312を使用することができる。
代わりに、下で詳細に示すように、パブリッシュするクライアントなどのクライアントによって、たとえば、コンテンツを消費するための使用ライセンスをそれ自体に発行することができる。
図6Aおよび6Bに移ると、権利管理されたディジタルコンテンツをライセンシングする方法が示されている。ステップ602で、DRMサーバ320などのライセンスを発行するエンティティによって、公開キー証明書あるいは1つまたは複数の要求されるライセンシーのそれぞれの識別のいずれかを含むライセンス要求が受け取られる。おそらく、識別が指定される場合に、DRMサーバ320によって、ディレクトリ、データベース、または類似物から対応する公開キー証明書を獲得することができる。1つのライセンシーだけに関してライセンスが要求された場合には、1つの証明書だけまたは1つの識別だけが、名前を指定される。ライセンスが、複数のライセンシーについて要求された場合には、証明書または識別を、潜在的なライセンシーごとに名前を指定することができる。ステップ604で、望まれる場合に、要求するエンティティ(すなわち、ライセンス要求を行うエンティティ)が認証される。ステップ606で、やはり望まれる場合に、エンティティがライセンスを要求することを許可されるかどうかを判定する。
ステップ608で、発行するエンティティによって、公開キー証明書がライセンス要求に含まれていないかどうかが判定され、そうである場合に、発行するエンティティによって、指定された識別を使用して、適当な公開キー証明書についてディレクトリサービスまたはデータベースのルックアップが実行される。ステップ610で、発行するエンティティによって、証明書がディレクトリ内にあると判定される場合に、ステップ612で、その証明書を検索する。証明書を、要求内またはディレクトリ内のいずれでも所与の潜在的なライセンシーについて見つけることができない場合には、ライセンスサーバは、その潜在的なライセンシーに関するライセンスを生成せず、ステップ614で、要求元エンティティにエラーを返す。
DRMサーバ320が、少なくとも1つの潜在的なライセンシーの公開キー証明書を有すると仮定すると、ステップ616で、そのようなDRMサーバ320によって、各ライセンシー証明書の信頼が検証される。検証されない場合に、DRMサーバ320によって、ライセンシー証明書の発行者が信頼される発行者のリストにないことが判定され、その後、要求がそのライセンシーについて失敗し、ステップ614でエラーが生成される。したがって、信頼される発行者によって発行された証明書を有しないすべての潜在的なライセンシーが、ライセンスを受け取らない。
さらに、DRMサーバ320によって、信頼される発行者証明書から個々のライセンシー公開キー証明書に進む証明書チェーン内のすべてのエンティティに関するディジタル証明書検証が実行されることが好ましい。チェーン内のディジタル証明書を検証するプロセスは、周知のアルゴリズムである。所与の潜在的なライセンシーの公開キー証明書が検証されない場合、またはチェーン内の証明書が検証されない場合に、その潜在的なライセンシーが信頼されず、したがって、ライセンスは、その潜在的なライセンシーに発行されない。そうでない場合には、ステップ618で、ライセンスを発行することができる。このプロセスは、それに関してライセンスが要求されたすべてのエンティティが処理されるまで、ステップ620で繰り返される。
図6Bからわかるように、DRMサーバ320は、ライセンス要求で受け取った署名付き権利ラベル308の検証に進む。一実施形態では、DRMサーバ320は、それによって署名されるすべての権利ラベルのマスタコピーを有する。ライセンスの際に(ステップ622で)、DRMサーバ320によって、マスタ権利ラベルのコピーを検索することができる。マスタ権利ラベルは、ライセンス要求で送られる権利ラベルのコピーより新しい可能性があり、したがって、要求されたライセンスを作るのに使用される権利ラベルになる。マスタ権利レベルが見つからない場合には、DRMサーバ320によって、ステップ624で、事前に定義されたポリシに従って、要求の権利ラベルに基づいてライセンスを発行するかどうかが判定される。ポリシによって許可されない場合には、ステップ626で、ライセンス要求が失敗し、ステップ628で、エラーがAPI306に返される。
ステップ630で、DRMサーバ320によって、SRL308、特にそのディジタル署名が検証される。SRL308が検証されない場合には、ステップ626でライセンス要求が失敗し、ステップ628でエラーがAPI306に返される。
すべての検証が行われた後に、DRMサーバによって、SRL308に基づいて承認されたライセンスごとにライセンスが構築される。ステップ632で、DRMサーバ320によって、各ライセンシーに発行されるライセンスのめいめいの権利記述が生成される。ライセンシーごとに、DRMサーバ320によって、そのライセンシーの公開キー証明書で名前を指定された識別が、権利ラベルの権利記述で名前を指定された識別に対して評価される。ステップ636で、DRMサーバ320によって、SRL308から(PU−DRM(DES1))および(DES1(CK))が入手され、(PR−DRM)が適用されて、(CK)が入手される。発行するエンティティによって、次に、ライセンシーの公開キー証明書からの(PU−ENTITY)を使用して(CK)が再暗号化されて、(PU−ENTITY(CK))がもたらされる。ステップ638で、DRMサーバ320によって、生成された権利記述と(PU−ENTITY(CK))が連結され、結果のデータ構造が、(PR−DRM)を使用してディジタル署名される(すなわち、S(PR−DRM))。したがって、この署名されたデータ構造が、この特定のライセンシーのライセンスである。
ステップ640で、DRMサーバ320によって、特定の要求に関して生成されるライセンスがまだあるかどうかが判定される。生成されるラインセスは、その後、ステップ642で、ライセンスを信頼されるオーソリティに結び付ける適当な証明書チェーンと一緒に、要求元のエンティティに返される。
ディレクトリによるライセンシング
保護されたコンテンツのライセンスを発行する場合に、ラインセスを発行するエンティティ(以下では「ライセンサ」と称する)は、コンテンツからの送られたSRL308を調べて、どのユーザ/グループ/クラスタ/ディビジョン/プラットフォーム/など(以下では「エンティティ」と称する)に権利を与えるかを判定し、送られた証明書を調べて、ライセンスリクエスタを識別する。それに基づいて、ライセンサによって、SRL308にリストされた権利のどれをリクエスタに発行しなければならないかが判定される。概念上、ライセンサによって、SRL308にリストされたエンティティが検査され、そのようなエンティティが、リクエスタと比較される。したがって、SRL308によって、特定のグループがライセンスを受け取ることが指定されり、リクエスタが、そのようなグループのメンバである場合に、リクエスタは、SRL308のグループについて示された権利を伴うラインセスを許可される。同様に、SRL308によって、特定のユーザが、ライセンスを受け取ることが指定され、リクエスタが、そのようなユーザである場合には、リクエスタは、SRL308でそのようなユーザについて示された権利を伴うライセンスを許可される。諒解できるように、特定のSRL308によって、複数のエンティティおよびそれに対する権利をリストすることができ、特定のリクエスタに、1つまたは複数のエンティティのメンバであることに基づいてライセンスを許可することができる。
本発明の一実施形態では、図7に示されているように、リクエスタが、送られた証明書1202内で、識別子1204によって識別され、識別子1204は、たとえば、それを介してリクエスタが組織のディレクトリ1206内で識別されるエイリアスとすることができる。それに対応して、SRL308によって、各権利を与えられるエンティティが、そのような識別子1204に従ってリストされる。したがって、ライセンス1208に関する要求の処理の一部として、ライセンサ1210(通常はDRMサーバ320である)によって、証明書1202からリクエスタの識別子1204が入手され、入手された識別子1204が、送られたSRL308にリストされたすべての識別子1204と比較される。一致が見つかる場合には、ライセンサ1210によって、リクエスタの識別子1204についてSRL308で指定される権利を用いて、リクエスタにライセンス1208が発行される。
さらに、ディレクトリ1206の利用可能性を用いて、ディレクトリ1206に他のエンティティ内のリクエスタのメンバシップ状況を反映する適当な相互参照情報が含まれると仮定して、ライセンサ1210によって、リクエスタがSRL308にリストされた他のそのようなエンティティのメンバであるかどうかを判定することもできる。通常、ディレクトリ1206には、リクエスタごとに、その識別子1204だけではなく、リクエスタがそのメンバである各グループ/クラスタ/ディビジョン/プラットフォーム/他のエンティティ/などの識別子1208もリストされる。ディレクトリ1206に、メールアドレス、代替メールアドレス、ID、代替ID、グループメンバシップ、ヒストリック識別子、および/または類似物などの識別子1208を含めることができることに留意されたい。
証明書1202がその識別子1204と共にリクエスタから受け取られ、SRL308からの権利データがリクエスタから受け取られた状態で、一般的に言って、とりわけ、リクエスタがSRL308にリストされたエンティティのメンバであることをディレクトリ1206から判定できる場合に、ライセンサ1210によって、リクエスタにライセンス1208が発行される。そうである場合に、ライセンシングに関するすべての他の条件が満足されると仮定して、ライセンサ1210によって、SRL308から入手されたリストされたエンティティに関して指定された権利および条件を用いてリクエスタにライセンス1208が発行される。
本発明の一実施形態では、SRL308にリストされたエンティティによって、個人のグループまたはクラスタあるいは他の集合(以下では「グループ」と称する)が表され、そのようなグループは、ディレクトリ1206を用いて適当に表現される。そのようなグループに、配布リストまたはメールエイリアスなどのメール対応グループ、あるいはネットワークオペレーティングシステムまたは類似物に関して定義することができるセキュリティグループを含めることができる。
特筆すべきことに、グループに従ってSRL308で権利を指定し、リクエスタのグループメンバシップに従ってリクエスタにライセンス1208を発行することによって、企業セッティングまたは組織セッティングでのディジタル権利管理が実現される。たとえば、ドキュメントまたは電子メールをDRM保護し、その結果、所与の部署のすべてのメンバが、ドキュメントまたは電子メールを読む権利を有するようにすることができる。そのような部署のグループ(たとえば電子メールエイリアス)が、組織のディレクトリ1206に存在すると仮定すると(ほとんどの場合にそうである)、ドキュメントまたは電子メールの作者は、個人ではなくグループに基づいて権利を与える。諒解できるように、そのようなグループ単位の権利付与の長所に、作者が権利を有する個人のクラスを指定する際に使用することの容易さが含まれる。さらに、グループに従って権利を指定することによって、指定された権利が、新しい個人がグループに参加し、古い個人がグループから離脱する際に、指定された権利が「古く」ならない。その代わりに、グループのすべての現在のメンバが、そのようなグループのメンバシップが組織ディレクトリ1206で最新状態に保たれる限り、権利を行使することができる。
リクエスタがグループのメンバであるかどうかの判定
通常、ディレクトリ1206は、組織にとって重要である有用な情報のリポジトリまたはその一部である。具体的に言うと、ディレクトリ1206によって、ユーザがメンバシップを有するすべてのグループを含む、組織内の各ユーザに関する複数の重要な情報が保持される。実際、ユーザのそのようなメンバシップを、少なくとも部分的にユーザに従ってディレクトリ1206にリストすることによって、定義することができる。
組織が特に大きいか、他の理由で必要である情況では、その中でのコンピューティングを、ある論理的な形で複数のディビジョンまたは「フォレスト」に分割することができることに留意されたい。たとえば、各フォレストは、組織が、たとえばペンシルバニア州ウィルクスバリに1つのオフィスを有し、フロリダ州ボイントンビーチに別のオフィスを有する場合に、地理に基づくものとすることができ、この場合には、各そのようなオフィスに、別々のフォレストが与えられる。その代わりに、たとえば、各フォレストを、たとえば組織が会計課および生産課を有する場合に、機能に基づくものとすることができ、この場合には、各そのような部署に、別々のフォレストが与えられる。もちろん、フォレストは、本発明の趣旨および範囲から逸脱せずに、他の判断基準に従って定義することができる。
重要なことに、各フォレストがそれ自体のディレクトリ1206またはディレクトリ1206のグループ(以下では「ディレクトリ1206」と称する)を有する場合に、各フォレストが、少なくとも1つのDRMサーバ320を有すると仮定する。図8を参照すると、2つのフォレスト、フォレストAおよびフォレストBが、組織について示されており、フォレストAは、ディレクトリAおよびDRMサーバAを有し、フォレストBは、ディレクトリBおよびDRMサーバBを有する。諒解されるように、各フォレストは、保護エンクレーブ(protective enclave)として働き、この保護エンクレーブ内で、対応するディレクトリおよびDRMサーバが展開される。したがって、フォレストA内のDRMサーバAは、少なくともセキュリティの観点から、比較的容易にディレクトリA内の情報にアクセスすることができなければならず、フォレストB内のDRMサーバBは、やはり少なくともセキュリティの観点から、ほぼ、そのように比較的容易に、フォレストA内のディレクトリA内の情報にアクセスすることができる。しかし、相互動作する必要を有する複数のフォレストでは、通常は、その間で情報が複製され、任意選択として、その間の明示的な信頼感形をセットアップすることができることに留意されたい。
フォレスト内のグループメンバシップ判定
さしあたり、組織の全体が図8のフォレストAによって表されることと、図8のフォレストBが存在しないことを仮定し、フォレストAのディレクトリAによって、すべてのユーザおよびこれらのユーザが属するすべてのグループを含む、組織に関係するすべてのディレクトリ情報が維持されることを諒解されたい。ここで、そのようなグループに、実際にはグループの複数のレイヤを含めることができることに留意されたい。したがって、図9からわかるように、グループ1が、直接のメンバとしてグループ2およびグループ3を有し、グループ3が、直接のメンバとしてユーザ1を有する場合がある。そのような場合には、ユーザ1が、グループ3の直接のメンバであり、グループ1の間接のメンバであり、グループ2のメンバでない。諒解できるように、SRL308に、グループ1または3のメンバに関する権利がリストされる場合に、ユーザ1は、他のすべての条件が満たされると仮定して、ユーザ1が、そのような権利に基づいてライセンス1208を入手することができるが、SRL308に、グループ2のメンバに関する権利だけがリストされている場合には、ユーザ1は、そのようなライセンス1208を入手することができない。一般的に言って、SRL308で名前を指定されるメンバの直接のメンバまたは間接のメンバであるユーザは、どのような権利および条件がそのようなグループに許可される場合であっても、ライセンス1208を入手することができる。
図10からわかるように、グループ1から3およびユーザ1のそれぞれに関するディレクトリA内のレコードオブジェクト/レコードが示されている。通常はそうであるが、各レコードは、エンティティがグループであると仮定して、エンティティのすべての直接のメンバおよび、エンティティがユーザまたは別のグループのサブグループのいずれであれ、エンティティが所有するすべての直接のメンバシップの両方を含む、めいめいのエンティティに関するリスティングの形態である。したがって、グループ1は、直接のメンバとしてグループ2および3を有し、他のグループの直接のメンバではなく、グループ2は、メンバを持たず、グループ1の直接のメンバであり、グループ3は、直接のメンバとしてユーザ1を有し、グループ1の直接のメンバであり、ユーザとしてのユーザ1は、メンバを持たないが、グループ3の直接のメンバである。もちろん、図9および10に示されたディレクトリAは、全体に過剰に単純化されており、したがって、実際には、より多数のユーザおよびグループを有するはるかに大きいディレクトリである可能性が非常に高い。それでも、図示のディレクトリなどのディレクトリAは、本発明を説明するのに適する。
ユーザ1がDRMサーバAにSRL308をサブミットする過程で(サブミットされるSRL308に1つまたは複数のグループおよびそれに関する権利がリストされる)、DRMサーバAによって、少なくとも部分的に、ディレクトリAを参照して、ユーザ1がSRL308にリストされたグループのいずれかの直接のメンバまたは間接のメンバであるかどうかを判定することによって、ライセンス1208をユーザ1に発行するかどうかが決定される。諒解されるように、そのような判定は、2つの一般的な形すなわち、リストされたグループからユーザへ、またはユーザからリストされたグループへ、実行することができる。
グループからユーザへの判定を実行することは、通常はより単純なプロセスであるが、グループが多数のメンバを有することができるので、見つかったすべてのユーザを調べて一致が存在するかどうかを判定することに、比較的長い時間が費やされる可能性が高い。ユーザからグループへの判定を実行することは、通常はより単純ではないプロセスであるが、ユーザが、通常は多数のグループのメンバではないので、見つかったすべてのグループを調べて一致が存在するかどうかを判定することに、比較的短い時間が費やされる可能性が高い。どの場合でも、ユーザからグループへの判定が、より経済的であり、総合的に望ましいことが、少なくとも経験的にわかっている。
図9および10を参照しながら、図12も参照すると、ユーザ1がグループ1のメンバであるかどうかに関するグループメンバシップ判定を行うために、DRMサーバAは、下記のように進行する。準備として、DRMサーバAによって、グループ1が存在するかどうかについてディレクトリAが調べられる(ステップ1201)。諒解されるように、そのような照会に対する応答によって、グループ1が存在しないことが示される場合には、このプロセスは、ユーザ1が存在しないグループのメンバであることが不可能なので、終了する(ステップ1203)。したがって、判定がユーザからグループへ実行されるという事実にもかかわらず、グループが存在するかどうかを調べる準備ステップが、不要な場合の追加ステップの実行を避けるために実行される。
もちろん、図からわかるように、グループ1が実際に存在し、したがって、応答は、実際には肯定になる。したがって、DRMサーバAによって、ユーザ1がメンバであるすべてのグループについてディレクトリAが調べられ、ディレクトリAによって、ユーザ1がグループ3のメンバであることの情報が返される(ステップ1205、1207)。もちろん、グループ3は、グループ1ではなく、したがって、DRMサーバAは、ユーザ1がグループ1のメンバであるかどうかをまだ判定していない(ステップ1209)。それでも、グループ3の直接のメンバであることと、グループ3がグループ1の直接のメンバまたは間接のメンバであることとによって、ユーザ1がグループ1の間接のメンバであることが後にわかる可能性がある場合に、DRMサーバAは継続しなければならない。
したがって、DRMサーバAは、グループ3がメンバであるすべてのグループについてディレクトリAに尋ねることによって継続し、ディレクトリAによって、グループ3がグループ1のメンバであるという情報が返される(ステップ1211、1313)。その結果、DRMサーバAは、グループ3のメンバであることによって、ユーザ1が実際にグループ1の間接のメンバであると判定する(ステップ1215)。
ここで諒解されるように、DRMサーバAは、より多数のグループおよびより多数の反復を介して再帰的に照会して、最終的にユーザ1が実際にグループ1のメンバであることを判定しなければならない場合がある。代わりに、ユーザ1が、実際にはグループ1のメンバでない場合には、DRMサーバAは、ユーザ1がグループ1のメンバでないと最終的に判定する前に、直接および間接の、ユーザ1に関するすべての可能なグループメンバシップの全体を介して照会しなければならない。下で詳細に説明するように、そのような照会は、高価になる可能性があり、連続的な基礎で実行される可能性があるので、そのような探査の結果を、1つまたは複数のキャッシュに保管することができる。
フォレストにまたがるグループメンバシップ判定
組織が、展開された複数のフォレストならびにフォレスト境界にまたがって使用可能にする必要があるユーザおよびグループメンバシップ情報を有する場合に、特に、照会するDRMサーバ320が、そのディレクトリ内に必要な情報をネイティブに保持しないフォレストにある場合に、特定のグループに関するユーザのグループメンバシップを判定する単純な形はない。その代わりに、DRMサーバ320によって、そのような情報が実際にネイティブに保持される別のフォレストを調べなければならない。
具体的に言うと、特に重要なのは、図8のDRMサーバAなどのDRMサーバ320が、グループをリストするSRM308に基づいてユーザにラインセンスを発行することを求められるが、グループが、DRMサーバAが存在するフォレストAにネイティブでない場合である。その代わりに、そのようなグループが、フォレストBにネイティブであり、したがって、フォレストBのディレクトリB内にレコードを有する。その結果、問題のユーザが問題のグループのメンバであるかどうかに関するグループメンバシップ判定を、そのディレクトリBがそのグループのグループ情報を有する問題のグループのレコードを有する限り、フォレストBのディレクトリBに関して行わなければならない。
しかし、重要なことに、フォレストAのDRMサーバは、通常は、本質的なディレクトリ情報を得るためにフォレストBのディレクトリBに直接に照会することができない。というのは、そのようなクロスフォレスト照会が、通常は、セキュリティの懸念から制限されるか妨げられるからである。その代わりに、本発明の一実施形態では、DRMサーバAは、フォレストBのDRMサーバBに、フェレストBのディレクトリBを照会し、照会の結果をDRMサーバAに報告するように求める。ディレクトリBへのDRMサーバBの照会が、クロスフォレスト照会ではなく、したがって、その制限をこうむらないことに留意されたい。
しかし、DRMサーバAが、照会を実行するようにDRMサーバBに求めるのに先立って、問題のグループがフォレストBにネイティブである限り、DRMサーバBが、実際に、照会を実行するのに正しいDRMサーバ320であることを実際に知らなければならないことを諒解しなければならない。簡単に言うと、DRMサーバAは、ディレクトリBに照会するようにDRMサーバBに求めるのに先立って、問題のグループがフォレストBにネイティブであることを知らなければならない。しかし、DRMサーバAは、ディレクトリAに照会することだけができ、したがって、そのようなディレクトリAが問題のグループのネイティブフォレストに関する情報を有しない限り、問題のグループのネイティブフォレストについて知らない。
したがって、本発明の一実施形態では、ディレクトリAが、図8に示されているように、実際にそのような情報を有する。具体的に言うと、ディレクトリAは、問題のグループに関するポインタオブジェクトを有し、このポインタオブジェクトによって、問題のグループに関して照会するすべてのエンティティが、フォレストBに向けられる。そのようなポインタオブジェクトに、たとえば、DRMサーバAが問題のグループに関する情報を要求する際に、照会するDRMサーバAに返されるフォレストBのアドレスを含めることができる。おそらく、フォレストBのディレクトリBが、問題のグループに関するレコードオブジェクトを有する。したがって、DRMサーバAは、そのようなアドレスを使用して、フォレストBを見つけ、そこから進行することができる。
本発明の一実施形態では、フォレストBのアドレスが、具体的には、フォレストB内のディレクトリBのアドレスである。そのようなアドレスを有するDRMサーバAは、それに基づいてディレクトリBに連絡する。しかし、DRMサーバAは、フォレストA内にあり、ディレクトリBは、フォレストB内にあるので、上でほのめかしたように、ディレクトリBは、通常は、フォレストにまたがってDRMサーバAに本質的な情報を提供しない。それでも、ディレクトリBは、DRMサーバAにDRMサーバBのアドレスを提供することができる。
したがって、本発明の一実施形態では、DRMサーバAが、ディレクトリBからDRMサーバBのアドレスを受け取り、それに基づいて、DRMサーバAの代わりにディレクトリBに照会するようにDRMサーバBに求める。具体的にいうと、DRMサーバAは、問題のユーザが問題のグループのメンバであるかどうかについてディレクトリBを照会し、その回答をDRMサーバAに返すように、DRMサーバBに要求する。おそらく、そのような要求には、たとえばDRMサーバBによって認識されるオーソリティの信頼されるルートにつながる証明書チェーンを有する識別する証明書など、DRMユニバース内のDRMサーバ320としてのDRMサーバAのある種類の識別が含まれる。したがって、DRMサーバBは、識別する証明書が検証される場合に限って、DRMサーバAの代わりにディレクトリBの照会を実行する。
DRMサーバBが、図12に関して上で示した形などで、DRMサーバAの代わりにディレクトリBの照会を実際に実行すると仮定すると、DRMサーバBは、最終的に、問題のユーザが問題のグループのメンバであるかどうかを判定し、その情報を、DRMサーバAからの要求に対する応答としてDRMサーバAに返す。
DRMサーバBが、問題のユーザが問題のグループのユーザであるかどうかをディレクトリBに尋ねる場合に、その問題のユーザが、レコードオブジェクトによらない場合には少なくともポインタオブジェクトによって、ディレクトリB内で表現されていなければならない。さらに、特に、上で説明したように、グループメンバシップがユーザからグループへ判定される場合にmember−of情報が参照される限り、そのようなポインタオブジェクトに、問題のユーザがそのメンバであるグループのそれぞれに関する情報が含まれなければならない。
図13に移り、要約すると、DRMサーバAおよびDRMサーバAの代わりのDRMサーバBは、フォレストにまたがってグループメンバシップを判定するために、下記のステップを実行する。
予備的に、DRMサーバAによって、あるコンテンツに対応する使用ライセンス1208に関するユーザからの要求が受け取られる(ステップ1301)。この要求には、ユーザを識別する証明書およびコンテンツに関連するSRL308が含まれる。これに応答して、SRL308によってその中のグループが識別されると仮定し、適当なキャッシングされた情報が存在しないことも仮定すると、DRMサーバAによって、ディレクトリAが照会されて、識別されたグループのオブジェクトが返される(ステップ1303)。現在のシナリオでは、グループがフォレストBにネイティブであり、したがって、グループが実際にフォレストBをポイントするポインタオブジェクトとしてディレクトリA内で表され、DRMサーバAが、ディレクトリAからフォレストBをポイントするポインタオブジェクトを受け取ると仮定され、したがって、このポインタによって、グループがフォレストBにネイティブであることが示され(ステップ1304)、受け取られたポインタオブジェクトからフォレストBのアドレスが検索される(ステップ1305)。
その後、DRMサーバAによって、検索されたアドレスが使用されて、DRMサーバBのアドレスについてフォレストB内のディレクトリBが照会され、ディレクトリBによって、そのようなアドレスが、それに応答してDRMサーバAに返される(ステップ1307、1309)。DRMサーバBのアドレスを得る特定のメカニズムは、既知であるか、当業者に明白であり、したがって、本明細書で詳細に説明する必要はない。したがって、本発明の趣旨および範囲から逸脱せずに、任意の適当なメカニズムを使用することができる。
DRMサーバBのアドレスを用いて、DRMサーバAによって、DRMサーバBに、そのユーザがそのグループのメンバであるかどうかをディレクトリBに照会するように要求する(ステップ1311)。やはり、要求をDRMサーバBに配信するのにDRMサーバAによって使用される特定のメカニズムは、既知であるか、当業者に明白であり、したがって、本明細書で詳細に説明する必要はない。したがって、本発明の趣旨および範囲から逸脱せずに、任意の適当なメカニズムを使用することができる。
DRMサーバAに関して、やはり適当なキャッシングされた情報が存在しないと仮定すると、DRMサーバBは、ディレクトリBに照会して、識別されたグループのすべてのオブジェクトを返す(ステップ1313)。このシナリオでは、グループが、フォレストBのネイティブであり、したがって、そのようなグループは、実際に、レコードオブジェクトとしてディレクトリB内で表され、DRMサーバBは、ディレクトリBからそのレコードオブジェクトを受け取ると仮定され、したがって、グループがフォレストBのネイティブであることが示される(ステップ1315)。DRMサーバBによって、この点で、受け取られたオブジェクトで示されるグループのメンバを再検討して、ユーザがそのグループの直接のメンバであるかどうかを判定する(ステップ1317)ことができることに留意されたい。そうである場合には、判定は肯定であり、DRMサーバBによって、それがDRMサーバAに報告される(ステップ1319)。そうでない場合には、DRMサーバBは、ディレクトリBに照会してユーザに関するすべてのオブジェクトを返し、したがって、図12に関して示した形に似た形で、ディレクトリB内でユーザからグループへトラバースすることを試みることによる、ユーザがグループのメンバであるかどうかの判定に進む(ステップ1323)。試みられたトラバーサルを終了した際に、DRMサーバBは、ユーザとグループの間にメンバシップ関係が存在するかどうかを判定しており、これをDRMサーバAに報告する(ステップ1325)。
もちろん、そのような判定に基づいて、DRMサーバAによって、ステップ1301で受け取られたユーザからの要求を尊重するかどうかが判断される(ステップ1327)。諒解されるように、ユーザがグループのメンバでない場合には、もちろん、ユーザが受け取られたSRL308で識別される別のグループのメンバであることがわかった場合を除いて、要求が拒否される。同様に、ユーザがメンバのグループである場合には、要求を尊重するための他のすべての条件が満たされると仮定して、要求が尊重される。
キャッシングされた情報によるユーザグループメンバシップの判定
これまでに上述したように、DRMサーバは、SRL308に基づいてユーザにライセンス1208を発行する過程で、DRMサーバ320のフォレストまたは別のフォレスト内のディレクトリ1206を参照することによって、ユーザがSRL308で識別されるグループのメンバであるかどうかを判定することができる。しかし、諒解されるように、判定を行うたびにディレクトリ1206を参照することは、特に追加のネットワークトラフィックおよび、特に行われる判定の数が比較的多い場合のディレクトリ1206によって実行される必要がある作業に関して、かなり高価であり、面倒である。
したがって、本発明の一実施形態では、1つまたは複数のディレクトリ1206から導出されるユーザ−グループ情報が、DRMサーバ320からアクセス可能な1つまたは複数の位置でキャッシングされる。さらに、本発明の一実施形態では、DRMサーバ320は、ユーザ−グループ判定を行う場合に、lowest−cost−firstアルゴリズムを使用して、ディレクトリ1206への参照に先立って、最低コストから最高コストへの順で複数のキャッシュ位置を再検討する。したがって、より高いコストの動作が、できる限り延期され、判定速度が高まり、ネットワークトラフィックが減る。
ユーザ−グループ情報のキャッシング
図12に関して開示した判定など、ユーザがグループのメンバであるかどうかをディレクトリ1206から判定する過程で、DRMサーバ320は、潜在的に、ユーザが直接のメンバまたは間接のメンバである少なくともいくつかの他のグループを突き止める。メンバシップパスが実際に見つかったならばトラバーサルが停止する限り、ユーザのすべてのグループが見つからない可能性が高いことに留意されたい。たとえば、問題のグループのレコードオブジェクトの検査で、ユーザがそのグループの直接のメンバであることがわかった場合に、そのユーザが直接のメンバまたは間接のメンバである他のグループは、見つけられない。同様に、ユーザとグループの間のメンバシップパスを見つける試みでユーザからグループにトラバースする必要がある場合に、少なくとも、ユーザが直接のメンバであるグループが見つかるが、いくつかの間接グループは、事前にメンバシップパスが見つかったので見つけられない場合がある。それでも、本発明の一実施形態では、DRMサーバ320によって、ユーザならびにその直接のグループメンバシップおよび間接のグループメンバシップに関してDRMサーバが有するすべての知識が、将来に必要になった場合に備えて1つまたは複数のキャッシュに保管される。
図14を参照すると、キャッシュ1404の複数のエントリ1402が示されている。具体的に言うと、キャッシュ1404の1つのエントリ1402から、ユーザ3について、間接的にまたは直接にのいずれかで、そのようなユーザ3がグループ4、6、および7のメンバであり、グループ4が、グループ6および7のメンバであることが見つかっていることがわかる。同様に、キャッシュ1404の別のエントリ1402から、ユーザ4について、そのユーザ4がグループ8のみのメンバであることが見つかっていることがわかる。そのようなユーザ3および4ならびにグループ4がそのグループの直接のメンバまたは間接のメンバであるかどうかは、重要でなく、したがって、詳細に叙述されないが、必要または有用であることがわかった場合には、そのような情報をそのように詳細に叙述することができる。重要なのは、ユーザ/グループのすべてのグループメンバシップが、キャッシングされることである。というのは、特定のユーザ−グループ関係が、後の時点で、同一のユーザ/グループまたは異なるユーザ/グループについてユーザ−グループ関係を確立するのに有用になる可能性があるからである。
諒解されるように、ディレクトリ1206から入手されるキャッシュ1404内の情報は、ある期間の時間の後に「古く」なる可能性がある。すなわち、経時的に、ユーザが、ディレクトリ1206から削除される可能性があり、追加のグループおよび追加のグループメンバシップが、定義される可能性があり、同様の可能性があり、それでも、キャッシュ1404は、そのように変更された情報を反映するように自動的には更新されない。したがって、図14からわかるように、キャッシュ1404の各エントリ1402には、作成の時刻が含まれる。そのような作成時刻に基づいて、キャッシュ1404を照会する照会するエンティティは、エントリ1404が、頼るには古すぎるかどうかを判断することができる。それに加えてまたは代わりに、キャッシュ1404が、それ自体で、作成時刻に基づいて古すぎると思われる、そのキャッシュ内の各エントリ1404を削除することができる。
図15および16に移ると、図14のキャッシュ1404を、複数の構成で実施することができる。1つの構成では、あるフォレスト内のライセンスを発行するDRMサーバ320のそれぞれが、比較的基本的な軽量インメモリキャッシュであるキャッシュ1404を有し、フォレストも、比較的拡張されたより重いインメモリキャッシュであるキャッシュ1404を有する専用キャッシュサーバ1502(図15)を有する。さらに、専用キャッシュサーバ1502によって、データベースキャッシュ1404を使用すること、および/またはライセンスを発行するDRMサーバ320の代わりにディレクトリ1206に対する照会を実行することを行うことができる。
もう1つの構成では、あるフォレストのライセンスを発行するDRMサーバ320のそれぞれが、比較的拡張された重量インメモリキャッシュ(図16)を有し、ディレクトリ1206に対する照会を実行する。専用キャッシュサーバ1502は存在しないが、データベースキャッシュ1404を、そのフォレスト内のすべてのライセンスを発行するDRMサーバ320の間で共有することができる。どの構成でも、各基本キャッシュ1404は、ユーザ情報だけを有するが、各拡張キャッシュ1404は、ユーザ情報およびグループ情報を有する。
lowest−cost−firstアルゴリズム
キャッシュ1404の構成にかかわらず、ユーザがグループのメンバであるかどうかを判定しようとするDRMサーバ320は、本発明のlowest−cost−firstアルゴリズムを使用して、最低コストから最高コストの順でキャッシュ1404およびディレクトリ1206を検索する。仮定として、DRMサーバ320に関連するキャッシュ1404は、最低のコストを関連付けられ、専用サーバ1502に関連するキャッシュ1404およびデータベースキャッシュ1404は、より高いコストを関連付けられ、ディレクトリ1206は、最高のコストを関連付けられる。もちろん、コストを主観的とすることができ、いずれにしても、特定のエンティティが、本発明の趣旨および範囲から逸脱せずに、特定のコストを有することができる。
図17Aおよび17Bに移ると、このアルゴリズムの主要な特性は、より高いコストを有すると思われる動作が、より低いコストを有すると思われるすべての動作が使い尽くされる前には試行されないことであることがわかる。一般に、コストの昇順の動作が、ライセンシングDRMサーバ320のインメモリキャッシュ1404内でルックアップされ、データベースキャッシュ1404または専用キャッシュサーバ1502のキャッシュ1404内でルックアップされ、AD内でルックアップされる。このアルゴリズムを実行する際に、ユーザおよび1つまたは複数のターゲットグループが、サブミットされ、ユーザが、直接にまたは間接的にのいずれかで、ターゲットグループのいずれかのメンバであるかどうかの判定が行われる。本質的に、このアルゴリズムでは、やはり高コスト動作を実行する前に必ず低コスト動作を実行して、キャッシュ1404およびディレクトリ1206からのすべての使用可能なメンバシップ情報によってユーザからターゲットグループのいずれかへトラバースする。このアルゴリズムでは、ユーザがターゲットグループの1つのメンバである場合に「yes」が結果として返され、ユーザがすべてのターゲットグループのメンバでない場合に「no」が返され、ユーザがディレクトリ1206内にない場合に「user not found」が返され、ターゲットグループのどれもが、ディレクトリ1206内で見つからない場合に「no target groups are found」が返される。
図17Aからわかるように、このプロセスは、問題のユーザおよび1つまたは複数のターゲットグループを定義することによって開始される(ステップ1701)。とりあえず、DRMサーバ320が、ローカルキャッシュ1404を有し、リモートキャッシュ1404(専用キャッシュサーバ1502またはデータベースキャッシュ1404とすることができる)およびディレクトリ1206へのアクセスを有すると仮定すると、ライセンスを発行するDRMサーバ320によって使用されるアルゴリズムでは、下記の複数のビンおよびキューが使用される。
・1つまたは複数のターゲットグループがその中に常駐するターゲットビン(T)
・検証される1つまたは複数のターゲットグループがその中に常駐する検証済みターゲットビン(V)
・検索を待っているグループがその中に常駐する検索ビン(S)
・ローカルキャッシュ1404内で検索されるグループがその中に常駐するローカルキュー(Q1)
・リモートキャッシュ1404内で検索されるグループがその中に常駐するリモートキュー(Q2)
・ディレクトリ1206内で検索されるグループがその中に常駐するディレクトリキュー(Q3)
・既に処理されたグループがその中に常駐する破棄ビン(D)。
したがって、このアルゴリズムは、ターゲットビン内のターゲットグループごとに、そのターゲットグループのレコードまたはエントリ1402を見つけるための検索することによって、1つまたは複数のターゲットグループを検証することによって進行する。本質的に、同一のプロセスが、各ストレージデバイス(ローカルキャッシュ1404に対応するS1、リモートキャッシュ1404に対応するS2、ディレクトリ1206に対応するS3)に関して実行されるので、そのようなプロセスは、包括的なストレージSxに関して説明されることだけを必要とする。
具体的に言うと、このアルゴリズムでは、まず、S1すなわちローカルキャッシュ1404を調べ、ターゲットビン(T)内のターゲットグループごとに、そのようなターゲットグループがローカルキャッシュ1404内のエントリ1402として見つかる場合に、そのターゲットグループが(T)から除去され、そのターゲットグループが、検証済みターゲットビン(V)に置かれ、そのターゲットグループのエントリ1402が、下位レベルキャッシュ1404に置かれるが、下位レベルキャッシュは、この例では存在しない(ステップ1703)。その後、このアルゴリズムでは、S2すなわちリモートキャッシュ1404に関してステップ1703を繰り返し、(T)に残っているターゲットグループごとに、そのようなターゲットグループがリモートキャッシュ1404内のエントリ1402として見つかる場合に、ターゲットグループを(T)から除去し、そのターゲットグループを(V)に置き、そのターゲットグループのエントリ1402を下位レベルキャッシュ1404に置くが、この下位レベルキャッシュは、この場合にはローカルキャッシュ1404である。最後に、このアルゴリズムは、S3すなわちディレクトリ1206に関してステップ1703をもう一度繰り返し、(T)にまだ残っているターゲットグループごとに、そのようなターゲットグループがディレクトリ1206内のレコードとして見つかる場合に、そのターゲットレコードを(T)から除去し、そのターゲットレコードを(V)に置き、そのターゲットグループのエントリ1402を下位レベルキャッシュ1404に置くが、この下位レベルキャッシュは、この場合にはローカルキャッシュおよびリモートキャッシュ1404である。
ストレージデバイスごとにステップ1703を実行した際に、検証済みターゲットビン(V)に、キャッシュ1404またはディレクトリ1206のいずれかに存在することがわかったすべてのターゲットグループが含まれなければならない。ターゲットビンに残っているすべてのターゲットグループは、不良またはもはや存在しなと仮定することができ、したがって、無視することができる。(V)が空である場合には、検証済みターゲットグループが存在しないので、このアルゴリズムは終了し、このアルゴリズムによって、「no target groups are found」が返される(ステップ1705)。注記すべきこととして、レコードまたはエントリ1402をディレクトリ1206またはリモートキャッシュ1404からすべての下位レベルキャッシュ1404にコピーすることによって、そのような下位レベルキャッシュ1404が、ユーザがグループのメンバであるかどうかの将来の判定に使用することができるキャッシュ情報で満たされる。
その後、少なくとも1つの検証済みターゲットが(V)に存在すると仮定すると、このアルゴリズムによって、ユーザが検証される。具体的に言うと、このアルゴリズムでは、まずS1すなわちローカルキャッシュ1404、次にS2すなわちリモートキャッシュ1404、次にS3すなわちディレクトリを調べることによって、問題のユーザに関するレコードまたはエントリ1402を検索する(ステップ1709)。ステップ1709の反復のいずれかでユーザに関するレコードまたはエントリ1402(以下では「アイテム」と称する)が見つかる際に、このアルゴリズムでは、ユーザがそのメンバであるグループのそれぞれが、検索ビン(S)に置かれ(ステップ1711)、さらに、ユーザのエントリ1402が、すべての下位レベルキャッシュ1404に移植される(ステップ1713)。ユーザに関するアイテムが、ステップ1709のすべての反復から見つからない場合には、検証されたユーザが存在しないので、このアルゴリズムは終了し、このアルゴリズムによって、「user not found」が返される(ステップ1715)ことに留意されたい。
諒解されるように、ステップ1709は、最低コスト動作から最高コスト動作に対応すると知覚される順序で反復され、この順序は、この例ではS1、次にS2、次にS3に関する。したがって、ユーザが検証されたならば、より高いコストの動作が回避される。本発明の趣旨および範囲から逸脱せずに、1つまたは複数のターゲットグループに先立ってユーザを検証することができることに留意されたい。
(S)にあるグループによって表される少なくとも1つのグループのメンバである、検証されたユーザが見つかり、少なくとも1つの検証済みターゲットグループが、(V)の対応するアイテムによって表されるターゲットグループとして見つかると仮定し、図17Bに移ると、このアルゴリズムは、(S)および(V)から、(S)のグループが(V)のグループ(すなわち、1つまたは複数の検証済みターゲットグループ)と一致するかどうかを判定することによって継続される(ステップ1723)。実際に、(S)のグループが(V)のアイテムと一致することがわかった場合には、このアルゴリズムは、一致と共に終了し、このアルゴリズムによって、「yes」が返される(ステップ1725)。そうでない場合には、このアルゴリズムは、(S)のすべてのグループをローカルキュー(Q1)に移動することによって継続される(ステップ1727)。
その後、このアルゴリズムでは、反復プロセスを実行して、ユーザからすべてのターゲットグループへのメンバシップパスについて検索する。この反復プロセスでは、グループメンバシップを判定するために、ローカルキャッシュおよびリモートキャッシュ1404ならびにディレクトリ1206での複数の検索が必要である。本質的に同一のプロセスが、キュー(ローカルキャッシュ1404に対応するQ1、リモートキャッシュ1404に対応するQ2、ディレクトリ1206に対応するQ3)のそれぞれに関して実行されるので、そのようなプロセスは、図17Bに示されているように、包括的な(Qx)および包括的なストレージSxに関して説明することだけが必要であり、ここで、S1はローカルキャッシュ1404、S2はリモートキャッシュ1404、S3はディレクトリ1206である。
具体的に言うと、さしあたり図17Bの(Qx)およびSxが(Q1)およびS1すなわちローカルキャッシュ1404であると仮定すると、(Q1)が空であるかどうかの判定が、まず行われる(ステップ1729)。もちろん、(Q1)は、当初は空であってはならないが、このプロセスは反復的なので、(Q1)が実際に空になる点が来る可能性がある。(Q1)が、当初は空でなく、1グループを有すると仮定すると、そのようなグループが、選択され、(Q1)から除去され、そのグループが既に破棄ビン(D)にあるかどうかが判定される(ステップ1731)。当初は、もちろん、選択され(Q1)から除去されるグループは、そのグループがまだ処理されていない限りは(D)に含まれないが、このプロセスが反復される際に、おそらくは前に処理されていないグループを含む他のグループが(Q1)に置かれる可能性があり、各グループが処理される際に、そのグループが実際に(D)に移動される。
選択され(Q1)から除去されるグループが、既に処理されており、したがって(D)に含まれる場合には、このアルゴリズムは、ステップ(1729)に戻り、もう一度(Q1)が空であるかどうかを判定する。しかし、選択され(Q1)から除去されるグループが、まだ処理されておらず、したがって(D)に含まれない場合には、このアルゴリズムは、選択されたグループのエントリ1402を、(Q1)に対応するキャッシュ1404またはディレクトリ1206内で検索することによって継続され、このキャッシュまたはディレクトリは、この例ではローカルキャッシュ1404である(ステップ1733)。
選択されたグループに関するそのようなエントリ1402がローカルキャッシュ1404で見つからない場合には、このプロセスは、そのグループを(Q1)からリモートキュー(Q2)に移動することと(ステップ1735)、ステップ(1729)に戻ることによって継続され、このステップ(1729)では、もう一度(Q1)が空であるかどうかを判定する。しかし、選択されたグループに関するそのようなエントリ1402がローカルキャッシュ1404内で見つかる場合に、このアルゴリズムでは、選択されたグループがそのメンバである新たに発見されたグループのそれぞれを、検索ビン(S)に置き、選択されたグループを廃棄ビン(D)に移動し(ステップ1739)、さらに、すべての下位レベルキャッシュ1404に、選択されたグループに対応するエントリ1402を移植する(ステップ1737)。もちろん、(Q1)およびローカルキャッシュ1404に関して、そのような下位レベルキャッシュ1404が存在しないことに留意されたい。その後、このアルゴリズムは、ステップ1723に戻ることによって継続され、このステップ1723では、(S)のグループのいずれか(すなわち、新たに発見されたグループ)が(V)のグループ(すなわち、1つまたは複数の検証済みターゲットグループ)と一致するかどうかが判定される。もちろん、実際に(S)のグループが(V)のアイテムと一致することがわかった場合には、このアルゴリズムは、一致で終了し、このアルゴリズムによって、ステップ1725で「yes」が返される。そうでない場合には、このアルゴリズムは、ステップ1727でSのすべてのグループを(Q1)に移動することによって継続され、このアルゴリズムは、継続される。
それを行う際に、このアルゴリズムでは、(Q1)によって、ユーザから検証済みターゲットグループのいずれかへ、ローカルキャッシュ1404内で可能な範囲まで、すべての可能なパスを展開する。諒解されるように、一致が見つからないと仮定すると、(Q1)は、プロセスが反復される際により新たに発見されたグループで満たされ、リモートキャッシュ1404によって処理される破棄ビン(D)または(Q2)のいずれかへローカルキャッシュ1404によって(Q1)のすべてのグループが処理されるまで、空にされる。したがって、より高コストと仮定されるリモートキャッシュ1404での動作は、ローカルキャッシュ1404でのすべての可能な動作が使い果たされる(ステップ1729で(Q1)が空であることがわかる場合に発生する)までは行われない。
実際に、ステップ1729で(Q1)が空であることがわかる場合に、処理は、(Q1)に関して行われる形に似た形で、リモートキュー(Q2)に向かう。具体的に言うと、(Qx)が図17BのSxであり、(Q2)がS2すなわちリモートキャッシュ1404であると仮定すると、まず、(Q2)が空であるかどうかの判定が行われる(ステップ1729)。ここで、(Q2)は、当初は空でない可能性が高いが、このような事象は、ローカルキュー1404自体が(Q1)からのすべてのグループを処理できる場合に発生する可能性がある。(Q2)が、当初は空ではなく、1グループを有すると仮定すると、そのようなグループが、選択され、(Q2)から除去され、そのグループが、既に処理されたので破棄ビン(D)に既にあるかどうかを判定する(ステップ1731)。
選択され(Q2)から除去されたグループが、既に処理されており、したがって(D)にある場合には、このアルゴリズムは、ステップ(1729)に戻り、ここで、(Q2)が空であるかどうかをもう一度判定する。しかし、選択され(Q2)から除去されたグループが、まだ処理されておらず、したがって(D)にない場合には、このアルゴリズムは、(Q2)に対応するキャッシュ1404またはディレクトリ1206(この例ではリモートキャッシュ1404)の選択されたグループに関するエントリ1402を検索することによって継続される(ステップ1733)。
選択されたグループに関するそのようなエントリ1402がリモートキャッシュ1404で見つからない場合には、このプロセスは、グループを(Q2)からディレクトリキュー(Q3)に移動することによって継続され(ステップ1735)、その後、ステップ(1729)に戻って、(Q2)が空であるかどうかをもう一度判定する。しかし、選択されたグループに関するそのようなエントリ1402がリモートキャッシュ1404で見つかる場合には、このアルゴリズムでは、選択されたグループがそのメンバである新たに発見されたグループのそれぞれを検索ビン(S)に置き、選択されたグループを破棄ビン(D)に移動し(ステップ1739)、さらに、選択されたグループに対応するエントリ1402をすべての下位レベルキャッシュ1404に移植する(ステップ1737)。もちろん、(Q2)およびリモートキャッシュ1404に関して、ローカルキャッシュ1404だけがそのように移植される必要があることに留意されたい。その後、このアルゴリズムは、ステップ1723に戻ることによって継続され、そのステップで、(S)のグループ(すなわち新たに発見されたグループ)が、(V)のグループ(すなわち、1つまたは複数の検証済みターゲットグループ)と一致するかどうかが判定される。もちろん、(S)のグループが、実際に(V)のアイテムと一致することがわかった場合には、このアルゴリズムは、一致で終了し、このアルゴリズムによって、ステップ1725で「yes」が返される。そうでない場合には、このアルゴリズムは、ステップ1727でSのすべてのグループを(Q1)に移動することによって継続され、このアルゴリズムは、継続され、(Q1)が処理される。
それを行う際に、このアルゴリズムでは、(Q2)によって、ユーザから検証済みターゲットグループのいずれかへ、リモートキャッシュ1404内で可能な範囲まで、すべての可能なパスを展開する。諒解されるように、一致が見つからないと仮定すると、(Q2)は、プロセスが反復される際により新たに発見されたグループで満たされ、ディレクトリ1404によって処理される破棄ビン(D)または(Q3)のいずれかへリモートキャッシュ1404によって(Q2)のすべてのグループが処理されるまで、空にされる。したがって、より高コストと仮定されるディレクトリ1206での動作は、リモートキャッシュ1404でのすべての可能な動作が使い果たされる((Q2)が空である場合に発生する)までは行われない。
重要なことに、(Q2)およびリモートキャッシュ1404によって新たに発見されるすべてのグループが、まず、(Q1)およびローカルキャッシュ1404によって処理される。したがって、やはり、より高コストと仮定されるリモートキャッシュ1404での動作は、ローカルキャッシュ1404での可能なすべての動作が使い果たされる((Q1)が空の場合に発生する)までは、新たに発見されたグループに関して行われない。
実際に、ステップ1729で(Q2)が空であることがわかる場合に、処理は、(Q1)および(Q2)に関して行われる形に似た形で、ディレクトリキュー(Q3)に向かう。具体的に言うと、(Qx)が図17BのSxであり、(Q3)がS3すなわちディレクトリ1206であると仮定すると、まず、(Q3)が空であるかどうかの判定が行われる(ステップ1729)。ここで、やはり、(Q3)は、当初は空でない可能性が高いが、このような事象は、ローカルキューおよびリモートキュー1404自体が(Q1)および(Q2)からのすべてのグループを処理できる場合に発生する可能性がある。(Q3)が、当初は空ではなく、1グループを有すると仮定すると、そのようなグループが、選択され、(Q3)から除去され、そのグループが、既に処理されたので破棄ビン(D)に既にあるかどうかが判定される(ステップ1731)。
選択され(Q3)から除去されたグループが、既に処理されており、したがって(D)にある場合には、このアルゴリズムは、ステップ(1729)に戻り、ここで、(Q3)が空であるかどうかをもう一度判定する。しかし、選択され(Q3)から除去されたグループが、まだ処理されておらず、したがって(D)にない場合には、このアルゴリズムは、(Q3)に対応するキャッシュ1404またはディレクトリ1206(この例ではディレクトリ1206)の選択されたグループに関するエントリ1402を検索することによって継続される(ステップ1733)。
選択されたグループに関するそのようなエントリ1402がディレクトリ1206で見つからない場合には、このプロセスは、グループを(Q3)から(D)に移動することによって継続され(ステップ1735)、その後、ステップ(1729)に戻って、(Q3)が空であるかどうかをもう一度判定する。(Q3)の後には次のキューがないので、選択されたグループをさらに処理することができないことに留意されたい。しかし、選択されたグループに関するそのようなエントリ1402がリモートキャッシュ1404で見つかる場合には、このアルゴリズムでは、選択されたグループがそのメンバである新たに発見されたグループのそれぞれを検索ビン(S)に置き、選択されたグループを破棄ビン(D)に移動し(ステップ1739)、さらに、選択されたグループに対応するエントリ1402をすべての下位レベルキャッシュ1404に移植する(ステップ1737)。もちろん、(Q3)およびディレクトリ1206に関して、ローカルキャッシュおよびリモートキャッシュ1404だけがそのように移植される必要があることに留意されたい。その後、このアルゴリズムは、ステップ1723に戻ることによって継続され、そのステップで、(S)のグループ(すなわち新たに発見されたグループ)が、(V)のグループ(すなわち、1つまたは複数の検証済みターゲットグループ)と一致するかどうかが判定される。もちろん、(S)のグループが、実際に(V)のアイテムと一致することがわかった場合には、このアルゴリズムは、一致で終了し、このアルゴリズムによって、ステップ1725で「yes」が返される。そうでない場合には、このアルゴリズムは、ステップ1727でSのすべてのグループをローカルキュー(Q1)に移動することによって継続され、このアルゴリズムは、継続され、(Q1)が処理される。
それを行う際に、このアルゴリズムでは、(Q3)によって、ユーザから検証済みターゲットグループのいずれかへ、ディレクトリ1206で可能な範囲まで、すべての可能なパスを展開する。諒解されるように、一致が見つからないと仮定すると、(Q3)は、プロセスが反復される際により新たに発見されたグループで満たされ、破棄ビン(D)へディレクトリ1206によって(Q3)のすべてのグループが処理されるまで、空にされる。
重要なことに、(Q3)およびディレクトリ1206によって新たに発見されるすべてのグループが、まず、(Q1)およびローカルキャッシュ1404によって処理される。したがって、やはり、より高コストと仮定されるディレクトリ1206での動作は、ローカルキャッシュおよびリモートキャッシュ1404での可能なすべての動作が使い果たされる((Q1)および(Q2)が空の場合に発生する)までは、新たに発見されたグループに関して行われない。
実際に、ステップ1729で、(Q3)が空であることがわかった場合には、処理は、この特定のシナリオで(Q4)がない限り、これ以上進行することはできず、したがって、完了する。具体的に言うと、このアルゴリズムは、一致なしで終了し、このアルゴリズムによって、「no」が返される(ステップ1741)。
本発明のアルゴリズムが、より高コストの動作を実行する前に、まずより低コストの動作を実行するように設計されていることを諒解されたい。諒解されねばならぬように、このアルゴリズムは、3レベルのストレージ(すなわち、ローカルキャッシュおよびリモートキャッシュ1404ならびにディレクトリ1206)に関して開示されたが、その代わりに、2、4、5、6、7、および類似する数を含む任意の他のレベル数のストレージに、同様の数のキューを定義することによって適用することができる。したがって、本発明のアルゴリズムは、本発明の趣旨および範囲から逸脱せずに、キャッシングされたユーザ−グループ情報のすべての複数レベルストレージ配置に適用することができる。
結論
本発明に関連して実行されるプロセスを実現するのに必要なプログラミングは、比較的単純であり、当業者に明白である。したがって、そのようなプログラミングは、本明細書に添付しない。任意の特定のプログラミングを使用して、本発明の趣旨および範囲から逸脱せずに本発明を実現することができる。
本発明では、ディジタル権利管理(DRM)およびディジタル権利実施のアーキテクチャおよび方法によって、任意の形態のディジタルコンテンツの制御されたレンダリングまたは制御されたプレイが可能になり、そのような制御は、柔軟であり、そのようなディジタルコンテンツのコンテンツオーナー/デベロッパによって定義可能である。このアーキテクチャによって、そのような制御されたレンダリングが、特にオフィスまたは組織環境あるいは、ドキュメントが個人の異なるグループまたは個人のクラスの間で共有される場合に、可能になり、促進される。そのようなアーキテクチャによって、グループのメンバであるユーザに基づいてコンテンツをユーザにライセンシングできるようになり、そのグループメンバシップは、少なくとも部分的に、キャッシングされたグループ情報に基づいて判定される。
本発明の概念から逸脱せずに、上述の実施形態に対して変更を行うことができることを諒解されたい。たとえば、本開示では、ユーザからグループへのグループメンバシップ判定を説明したが、代わりに、そのような判定を、本発明の趣旨および範囲から逸脱せずに、グループからユーザへ行うことができる。したがって、本発明が開示された特定の実施形態に限定されるのではなく、請求項によって定義される本発明の趣旨および範囲に含まれる修正形態を含むことが意図されていることを理解されたい。
本発明を実施することができる例示的であり非制限的なコンピューティング環境を表すブロック図である。 本発明を実施することができるさまざまなコンピューティングデバイスを有する例示的なネットワーク環境を表すブロック図である。 ディジタルコンテンツをパブリッシュする、本発明によるシステムおよび方法の好ましい実施形態を示す機能ブロック図である。 権利管理されたディジタルコンテンツをパブリッシュする、本発明による方法の好ましい実施形態を示す流れ図である。 図4の方法によって作られる署名付き権利ラベルの構造を示すブロック図である。 権利管理されたディジタルコンテンツをライセンシングする、本発明によるシステムおよび方法の好ましい実施形態を示すブロック図である。 権利管理されたディジタルコンテンツをライセンシングする、本発明による方法の好ましい実施形態を示す流れ図である。 権利管理されたディジタルコンテンツをライセンシングする、本発明による方法の好ましい実施形態を示す流れ図である。 本発明の一実施形態による、リクエスタによってライセンサに送られる証明書および権利ラベルと、組織ディレクトリを参照するライセンサを示すブロック図である。 複数のディビジョンまたはフォレストに編成された組織であって、各フォレストが、本発明の一実施形態による、少なくとも1つのDRMサーバおよびディレクトリを有する、組織を示すブロック図である。 定義されたグループメンバシップによって関連するさまざまなエンティティを示すブロック図である。 図9に示されたエンティティに関する、図8のディレクトリ内のディレクトリエントリを示すブロック図である。 信頼ベースシステムの例の実施アーキテクチャを示すブロック図である。 ユーザがDRMサーバのフォレストにネイティブであるグループのメンバであるかどうかを判定する場合に図8のDRMサーバによって実行されるキーステップを示す流れ図である。 本発明の一実施形態による、ユーザがDRMサーバのフォレストにネイティブでないグループのメンバであるかどうかを判定する場合に図8のDRMサーバによって実行されるキーステップを示す流れ図である。 本発明の一実施形態によるキャッシュ内のエントリを示すブロック図である。 本発明の一実施形態による、図14のキャッシュを使用するキャッシュアーキテクチャの変形形態を示すブロック図である。 本発明の一実施形態による、図14のキャッシュを使用するキャッシュアーキテクチャの変形形態を示すブロック図である。 ユーザが本発明の一実施形態によるグループのメンバであるかどうかを判定するために図15および16のキャッシュアーキテクチャと共に図8のライセンシングDRMサーバによって使用されるアルゴリズムによって実行されるキーステップを示す流れ図である。 ユーザが本発明の一実施形態によるグループのメンバであるかどうかを判定するために図15および16のキャッシュアーキテクチャと共に図8のライセンシングDRMサーバによって使用されるアルゴリズムによって実行されるキーステップを示す流れ図である。
符号の説明
300 クライアント
302 コンテンツ準備アプリケーション
304 暗号化されたディジタルコンテンツファイル
306 ディジタル権利管理(DRM)アプリケーションプログラムインターフェース(API)
308 署名付き権利ラベル(SRL)
310 権利管理されたコンテンツファイル
320 DRMサーバ
330 通信ネットワーク

Claims (16)

  1. 組織内のエレメントが前記組織内で事前に定義される1つまたは複数のターゲットグループのメンバであるかどうかを判定する方法であって、前記組織は、X個のレベルに編成さエレメント−グループ情報を保管する複数のストレージデバイスを含むコンピュータネットワークを維持し、前記ストレージデバイスは、より上位でより高コストのレベルXでディレクトリを含みおよび少なくとも1つのキャッシュを含み、各キャッシュは、より下位のより低コストの、X未満のレベルであり、前記ディレクトリ内の前記エレメント−グループ情報の少なくとも一部を含み、前記レベル1からXは、最低コストから最高コストに対応し、前記方法は
    ターゲットグループのアイテムを見つけるためにストレージデバイスの前記レベルを検索し、前記ターゲットグループが見つかる場合に、前記ターゲットグループを検証済みターゲットビン(V)に置くことによって、各ターゲットグループを検証するステップと、
    前記エレメントのアイテムを見つけるためにストレージデバイスの前記レベルを検索し、前記エレメントの前記アイテムが見つかる場合に、前記エレメントがそのメンバであるとしてリストされるすべてのグループを前記アイテムから判定し、そのようなmember−ofグループを検索ビン(S)に置くことによって前記エレメントを検証するステップと、
    (S)内のあらゆるグループが(V)のいずれかのグループと一致するかどうかを第1に判定するステップと、
    そうである場合に、前記エレメントがターゲットグループのメンバであると結論するステップと、
    そうでない場合に、(S)のすべてのグループを、レベル1の前記ストレージデバイスに対応するキュー(Q1)に移動することと、前記エレメントからいずれかのターゲットグループへメンバシップパスについて検索するために反復プロセスを実行することとによって継続するステップと、
    を含み、前記反復プロセスは、1からXまでのレベルxごとに、
    前記レベルに対応するキュー(Qx)が空であるかどうかを第2に判定するステップと、
    空である場合に、前記レベルを増分し、x<Xの場合に前記第2に判定するステップに戻り、x=Xの場合に前記エレメントがすべてのターゲットグループのメンバでないと結論するステップと、
    空でない場合に、(Qx)からグループを除去し、前記除去されたグループは、既に破棄ビン(D)にあるかどうかを判定するステップと、
    (D)にある場合に、前記第2に判定するステップに戻るステップと、
    (D)にない場合に、前記レベルに対応する前記ストレージデバイス内で前記除去されたグループに対応するアイテムを検索するステップと、
    そのようなアイテムが前記検索から見つからない場合に、x<Xの場合に前記除去されたグループを(Q(x+1))に移動し、x=Xの場合に前記除去されたグループを (D)に移動し、前記第2に判定するステップに戻るステップと、
    そのようなアイテムが前記検索から見つかる場合に、前記見つかったアイテムからの判定によって前記除去されたグループがそのメンバである各新たに発見されたグループを(S)に置き、前記除去されたグループを(D)に置き、前記第1に判定するステップに戻るステップと
    を含み、前記反復プロセスは、前記エレメントから前記検証済みターゲットグループのいずれかへのすべての可能なパスを展開し、上位レベルのストレージデバイスでのより高コストの動作が、すべての下位レベルのストレージデバイスでのすべての可能なより低コストの動作が使い果たされるまで行われない
    そして、前記各ターゲットグループを検証するステップは、
    各ターゲットグループをターゲットビン(T)に置くステップと、
    1からXまでの各レベルごとに、前記ストレージデバイス内の前記レベルで、(T)内の各ターゲットグループに対応するアイテムを検索し、そのようなアイテムが突き止められる場合に、前記ターゲットグループを(T)から除去し、そのようなターゲットグループを前記検証済みターゲットビン(V)に置くステップと
    を含むことを特徴とする方法。
  2. 前記ターゲットグループ、前記エレメント及び前記除去されたグループの少なくとも1つに対応するような前記アイテムが見つかる場合に、前記対応するアイテムをすべての下位レベルストレージデバイスに移植するステップをさらに含むことを特徴とする請求項に記載の方法。
  3. 前記各ターゲットグループについてストレージデバイスの前記レベルを検索した後に、(V)が空であるかどうかを判定し、そうである場合に有効なターゲットグループが見つからないと結論するステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記エレメントの検証は、1からXまでのレベルごとに、前記ストレージデバイス内の前記レベルで、前記エレメントに対応するアイテムが見つかるまで、そのようなアイテムを検索するステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記エレメントに対応するそのようなアイテムが見つかる場合に、対応するアイテムをすべての下位レベルストレージデバイスに移植するステップをさらに含むことを特徴とする請求項に記載の方法。
  6. 前記エレメントについてストレージデバイスの前記レベルを検索した後に、前記エレメントに関するアイテムが見つかったかどうかを判定し、そうでない場合に、有効なエレメントが見つからないと結論するステップを含むことを特徴とする請求項1に記載の方法。
  7. X=3であり、ローカルキャッシュがレベル1であり、リモートキャッシュがレベル2であり、前記ディレクトリがレベル3であることを特徴とする請求項1に記載の方法。
  8. 組織からのユーザが、前記組織内で事前に定義される1つまたは複数のターゲットグループのメンバであるかどうかを判定する方法であって、前記組織は、X個のレベルに編成され、ユーザ−グループ情報を保管する前記複数のストレージデバイスを含む前記コンピュータネットワークを維持することを特徴とする請求項1に記載の方法。
  9. 組織内のエレメントが前記組織内で事前に定義される1つまたは複数のターゲットグループのメンバであるかどうかを判定する方法を実行するコンピュータ実行可能命令をその上に記憶されたコンピュータ可読ストレージであって、前記組織は、X個のレベルに編成さエレメント−グループ情報を保管する複数のストレージデバイスを含むコンピュータネットワークを維持し、前記ストレージデバイスは、より上位でより高コストのレベルXでディレクトリを含みおよび少なくとも1つのキャッシュを含み、各キャッシュは、より下位のより低コストの、X未満のレベルであり、前記ディレクトリ内の前記エレメント−グループ情報の少なくとも一部を含み、前記レベル1からXは、最低コストから最高コストに対応し、前記方法は、
    ターゲットグループのアイテムを見つけるためにストレージデバイスの前記レベルを検索し、前記ターゲットグループが見つかる場合に、前記ターゲットグループを検証済みターゲットビン(V)に置くことによって、各ターゲットグループを検証するステップと、
    前記エレメントのアイテムを見つけるためにストレージデバイスの前記レベルを検索し、前記エレメントの前記アイテムが見つかる場合に、前記エレメントがそのメンバであるとしてリストされるすべてのグループを前記アイテムから判定し、そのようなmember−ofグループを検索ビン(S)に置くことによって前記エレメントを検証するステップと、
    (S)内のあらゆるグループが(V)のいずれかのグループと一致するかどうかを第1に判定するステップと、
    そうである場合に、前記エレメントがターゲットグループのメンバであると結論するステップと、
    そうでない場合に、(S)のすべてのグループを、レベル1の前記ストレージデバイスに対応するキュー(Q1)に移動することと、前記エレメントからいずれかのターゲットグループへメンバシップパスについて検索するために反復プロセスを実行することとによって継続するステップと、
    を含み、前記反復プロセスは、1からXまでのレベルxごとに、
    前記レベルに対応するキュー(Qx)が空であるかどうかを第2に判定するステップと、
    空である場合に、前記レベルを増分し、x<Xの場合に前記第2に判定するステップに戻り、x=Xの場合に前記エレメントがすべてのターゲットグループのメンバでないと結論するステップと、
    空でない場合に、(Qx)からグループを除去し、前記除去されたグループは、既に破棄ビン(D)にあるかどうかを判定するステップと、
    (D)にある場合に、前記第2に判定するステップに戻るステップと、
    (D)にない場合に、前記レベルに対応する前記ストレージデバイス内で前記除去されたグループに対応するアイテムを検索するステップと、
    そのようなアイテムが前記検索から見つからない場合に、x<Xの場合に前記除去されたグループを(Q(x+1))に移動し、x=Xの場合に前記除去されたグループを (D)に移動し、前記第2に判定するステップに戻るステップと、
    そのようなアイテムが前記検索から見つかる場合に、前記見つかったアイテムからの判定によって前記除去されたグループがそのメンバである各新たに発見されたグループを(S)に置き、前記除去されたグループを(D)に置き、前記第1に判定するステップに戻るステップと
    を含み、前記反復プロセスは、前記エレメントから前記検証済みターゲットグループのいずれかへのすべての可能なパスを展開し、上位レベルのストレージデバイスでのより高コストの動作が、すべての下位レベルのストレージデバイスでのすべての可能なより低コストの動作が使い果たされるまで行われない
    そして、前記各ターゲットグループを検証するステップは、
    各ターゲットグループをターゲットビン(T)に置くステップと、
    1からXまでの各レベルごとに、前記ストレージデバイス内の前記レベルで、(T)内の各ターゲットグループに対応するアイテムを検索し、そのようなアイテムが突き止められる場合に、前記ターゲットグループを(T)から除去し、そのようなターゲットグループを前記検証済みターゲットビン(V)に置くステップと
    を含むことを特徴とするストレージ
  10. 前記方法は、前記ターゲットグループ、前記エレメント及び前記除去されたグループの少なくとも1つに対応するようなアイテムが見つかる場合に、前記対応するアイテムをすべての下位レベルストレージデバイスに移植するステップをさらに含むことを特徴とする請求項に記載のストレージ
  11. 前記方法は、各ターゲットグループについてストレージデバイスの前記レベルを検索した後に、(V)が空であるかどうかを判定し、そうである場合に有効なターゲットグループが見つからないと結論するステップを含むことを特徴とする請求項に記載のストレージ
  12. 前記エレメントの検証は、1からXまでのレベルごとに、前記ストレージデバイス内の前記レベルで、前記エレメントに対応するアイテムが見つかるまで、そのようなアイテムを検索するステップを含むことを特徴とする請求項に記載のストレージ
  13. 前記方法は、前記エレメントに対応するそのようなアイテムが見つかる場合に、対応するアイテムをすべての下位レベルストレージデバイスに移植するステップをさらに含むことを特徴とする請求項12に記載のストレージ
  14. 前記方法は、前記エレメントについてストレージデバイスの前記レベルを検索した後に、前記エレメントに関するアイテムが見つかったかどうかを判定し、そうでない場合に、有効なエレメントが見つからないと結論するステップを含むことを特徴とする請求項に記載のストレージ
  15. X=3であり、ローカルキャッシュがレベル1であり、リモートキャッシュがレベル2であり、前記ディレクトリがレベル3であることを特徴とする請求項に記載のストレージ
  16. 前記方法が、組織からのユーザが、前記組織内で事前に定義される1つまたは複数のターゲットグループのメンバであるかどうかを判定する方法であり、前記組織は、X個のレベルに編成され、ユーザ−グループ情報を保管する前記複数のストレージデバイスを含む前記コンピュータネットワークを維持することを特徴とする請求項に記載のストレージ
JP2004052374A 2003-02-26 2004-02-26 コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討 Expired - Fee Related JP3943090B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/374,324 US6990502B2 (en) 2003-02-26 2003-02-26 Reviewing cached user-group information in connection with issuing a digital rights management (DRM) license for content

Publications (3)

Publication Number Publication Date
JP2004259284A JP2004259284A (ja) 2004-09-16
JP2004259284A5 JP2004259284A5 (ja) 2007-01-25
JP3943090B2 true JP3943090B2 (ja) 2007-07-11

Family

ID=32824722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004052374A Expired - Fee Related JP3943090B2 (ja) 2003-02-26 2004-02-26 コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討

Country Status (5)

Country Link
US (1) US6990502B2 (ja)
EP (1) EP1460511B1 (ja)
JP (1) JP3943090B2 (ja)
KR (1) KR100846290B1 (ja)
CN (1) CN1525373B (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US7181488B2 (en) 2001-06-29 2007-02-20 Claria Corporation System, method and computer program product for presenting information to a user utilizing historical information about the user
EP1282258A1 (en) * 2001-08-02 2003-02-05 Mitsubishi Electric Information Technology Centre Europe B.V. Method and apparatus for synchronising receivers
US7827156B2 (en) * 2003-02-26 2010-11-02 Microsoft Corporation Issuing a digital rights management (DRM) license for content based on cross-forest directory information
US7310729B2 (en) * 2003-03-12 2007-12-18 Limelight Networks, Inc. Digital rights management license delivery system and method
US8170912B2 (en) 2003-11-25 2012-05-01 Carhamm Ltd., Llc Database structure and front end
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US8229858B1 (en) * 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7693863B2 (en) 2004-12-20 2010-04-06 Claria Corporation Method and device for publishing cross-network user behavioral data
US8645941B2 (en) 2005-03-07 2014-02-04 Carhamm Ltd., Llc Method for attributing and allocating revenue related to embedded software
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US7832635B2 (en) * 2005-05-31 2010-11-16 Sharp Kabushiki Kaisha Controller, information storage device, control method, information storage method, control program, and computer-readable storage medium
GB2430771A (en) * 2005-09-30 2007-04-04 Motorola Inc Content access rights management
US8620952B2 (en) 2007-01-03 2013-12-31 Carhamm Ltd., Llc System for database reporting
US20080235141A1 (en) * 2007-03-21 2008-09-25 Microsoft Corporation License manager and schema
US8566695B2 (en) 2007-03-30 2013-10-22 Sandisk Technologies Inc. Controlling access to digital content
US8539543B2 (en) * 2007-04-12 2013-09-17 Microsoft Corporation Managing digital rights for multiple assets in an envelope
US20080256646A1 (en) * 2007-04-12 2008-10-16 Microsoft Corporation Managing Digital Rights in a Member-Based Domain Architecture
US9805374B2 (en) 2007-04-12 2017-10-31 Microsoft Technology Licensing, Llc Content preview
KR100971139B1 (ko) 2008-04-25 2010-07-20 주식회사 비즈모델라인 문서 저작권 관리 방법 및 시스템과 이를 위한 기록매체
US8150876B2 (en) * 2009-02-11 2012-04-03 Oracle International Corporation Simplifying determination of the groups to which users belong when using dynamic groups
US9117058B1 (en) * 2010-12-23 2015-08-25 Oracle International Corporation Monitoring services and platform for multiple outlets
US10339541B2 (en) 2009-08-19 2019-07-02 Oracle International Corporation Systems and methods for creating and inserting application media content into social media system displays
US20120011432A1 (en) 2009-08-19 2012-01-12 Vitrue, Inc. Systems and methods for associating social media systems and web pages
US11620660B2 (en) 2009-08-19 2023-04-04 Oracle International Corporation Systems and methods for creating and inserting application media content into social media system displays
US20130124546A1 (en) * 2010-02-26 2013-05-16 Adobe Systems, Inc. Group access control for a distributed system
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US9990114B1 (en) 2010-12-23 2018-06-05 Oracle International Corporation Customizable publication via multiple outlets
EP2807800B1 (en) * 2012-01-27 2018-10-17 Hewlett-Packard Development Company, L.P. Permissions for exploitable content
US10140429B2 (en) * 2015-06-17 2018-11-27 Adobe Systems Incorporated Unified digital rights management for heterogenous computing platforms
US20170255569A1 (en) * 2016-03-01 2017-09-07 Qualcomm Incorporated Write-allocation for a cache based on execute permissions
US20180121465A1 (en) * 2016-11-01 2018-05-03 Microsoft Technology Licensing, Llc Network-based communication and file sharing system
JP6843653B2 (ja) * 2017-03-06 2021-03-17 キヤノン株式会社 サーバ装置、情報処理方法及びプログラム
CN109117606B (zh) * 2018-08-08 2020-10-09 瑞芯微电子股份有限公司 设备客户端的drm标准适配方法、装置及硬件保护中间件
CN112235116A (zh) * 2020-10-14 2021-01-15 北京金山云网络技术有限公司 业务处理方法、装置和电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5742759A (en) 1995-08-18 1998-04-21 Sun Microsystems, Inc. Method and system for facilitating access control to system resources in a distributed computer system
US5699431A (en) * 1995-11-13 1997-12-16 Northern Telecom Limited Method for efficient management of certificate revocation lists and update information
US7103574B1 (en) 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7024393B1 (en) 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US6263434B1 (en) 1999-09-21 2001-07-17 Sun Microsystems, Inc. Signed group criteria
CA2306990A1 (en) 1999-12-18 2001-06-18 Fredrik Carl Stormer A multi affiliation-group validation system and method
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
US7065507B2 (en) 2001-03-26 2006-06-20 Microsoft Corporation Supervised license acquisition in a digital rights management system on a computing device
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US6824051B2 (en) * 2001-06-07 2004-11-30 Contentguard Holdings, Inc. Protected content distribution system

Also Published As

Publication number Publication date
US6990502B2 (en) 2006-01-24
CN1525373B (zh) 2010-12-15
JP2004259284A (ja) 2004-09-16
CN1525373A (zh) 2004-09-01
EP1460511A3 (en) 2010-05-19
US20040167926A1 (en) 2004-08-26
KR20040076828A (ko) 2004-09-03
KR100846290B1 (ko) 2008-07-16
EP1460511A2 (en) 2004-09-22
EP1460511B1 (en) 2012-07-04

Similar Documents

Publication Publication Date Title
JP3943090B2 (ja) コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討
JP4486380B2 (ja) クロスフォレストディレクトリ情報に基づくコンテンツのディジタル権利管理(drm)ライセンスの発行
JP4418648B2 (ja) デジタルコンテンツとサービスの使用ライセンスを発行するためのシステムおよびその方法
JP4750352B2 (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
JP4847701B2 (ja) 著作権管理システムにおける柔軟性のある権利テンプレートを使用したデジタルコンテンツの署名済み権利ラベル(srl)の取得
JP4524124B2 (ja) ディジタル権利管理(drm)サーバのdrmアーキテクチャへのエンロール/サブエンロール
JP4619665B2 (ja) ディジタル権利管理(drm)システムでのパブリッシャ使用ライセンスのオフラインでの発行
JP4724360B2 (ja) ディジタル権利管理システムにおいて権利テンプレートを使用してディジタルコンテンツのための署名権利ラベル(srl)を取得する方法
KR100971854B1 (ko) 보안 서버 키 동작을 제공하기 위한 시스템 및 방법
JP4489382B2 (ja) デジタル権利管理サービスを提供するシステムおよび方法
US20040158731A1 (en) Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061129

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20061129

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20061222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120413

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120413

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140413

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees