DE60307736T2 - Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen - Google Patents

Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen Download PDF

Info

Publication number
DE60307736T2
DE60307736T2 DE60307736T DE60307736T DE60307736T2 DE 60307736 T2 DE60307736 T2 DE 60307736T2 DE 60307736 T DE60307736 T DE 60307736T DE 60307736 T DE60307736 T DE 60307736T DE 60307736 T2 DE60307736 T2 DE 60307736T2
Authority
DE
Germany
Prior art keywords
plug
rights
drm
service
content
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 - Lifetime
Application number
DE60307736T
Other languages
English (en)
Other versions
DE60307736D1 (de
Inventor
Scott C. Sammamish Cottrille
Peter David Bellevue Waxman
Vinay Woodinville Krishnaswamy
Chandramouli Sammamish Venkatesh
Attila Bothell Narin
Gregory Kirkland Kostal
Prashant Sammamish Malik
Vladimir Duvall Yarmolenko
Frank Seattle Byrum
Thomas K. Redmond Lindeman
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 DE60307736D1 publication Critical patent/DE60307736D1/de
Application granted granted Critical
Publication of DE60307736T2 publication Critical patent/DE60307736T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • 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

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft digitale Rechteverwaltungssysteme. Insbesondere betrifft die Erfindung Plug-in-Architekturen für Pipelines in DRM-Systemen (digital rights management systems).
  • ALLGEMEINER STAND DER TECHNIK
  • Digitale Rechteverwaltung und -durchsetzung ist in hohem Maße wünschenswert im Zusammenhang mit digitalem Inhalt, wie beispielsweise digitalen Audiodaten, digitalen Videodaten, digitalem Text, digitalen Daten, digitalen Multimedia usw., bei denen solcher digitaler Inhalt an einen oder mehrere Benutzer verteilt werden soll. Typische Distributionsmodi umfassen konkrete Vorrichtungen, wie beispielsweise eine Magnetplatte (Floppy-Disk), ein Magnetband, eine optische (Kompakt-) Platte (CD), usw. und nicht greifbare Medien, wie beispielsweise ein elektronisches schwarzes Brett, ein elektronisches Netzwerk, das Internet usw. Nach dem Empfang durch den Benutzer gibt ein solcher Benutzer den digitalen Inhalt mit Hilfe einer geeigneten Wiedergabevorrichtung, wie beispielsweise einer Medienwiedergabe-Einrichtung auf einem Arbeitsplatzrechner oder dergleichen wieder oder spielt ihn ab.
  • In einem Szenario möchte ein Inhalt-Besitzer oder Rechte-Besitzer, wie beispielsweise ein Autor, ein Verleger, ein Rundfunksprecher usw. solchen digitalen Inhalt an jeden von vielen Benutzern oder Empfängern gegen eine Lizenzgebühr oder irgendein anderes Entgelt verteilen. In einem solchen Szenario kann der Inhalt dann ein Lied, eine Sammlung von Liedern, ein Film usw. sein, und der Zweck der Distribution besteht darin, Lizenzgebühren zu generieren. Ein solcher Inhalt-Besitzer würde, wenn er die Wahl hätte, wahrscheinlich wünschen, dass er einschränken kann, was der Benutzer mit einem solchen verteilten digitalen Inhalt tun kann. Zum Beispiel würde der Inhalt-Besitzer wünschen, den Benutzer in Bezug darauf einzuschränken, einen solchen Inhalt zu kopieren und an einen zweiten Benutzer erneut zu verteilen, zumindest auf eine Weise, die dem Inhalt-Besitzer eine Lizenzgebühr von einem solchen zweiten Benutzer vorenthält.
  • Außerdem kann der Inhalt-Besitzer dem Benutzer die Flexibilität bieten wollen, verschiedene Typen von Nutzungslizenzen zu verschiedenen Lizenzgebühren zu erwerben, wobei der Benutzer gleichzeitig an die Bedingungen des jeweiligen Lizenztyps gebunden wird, den er tatsächlich erworben hat. Zum Beispiel kann der Lizenz-Besitzer wünschen, dass verteilter digitaler Inhalt nur begrenzt oft, nur für eine gewisse Gesamtzeit, nur auf einem bestimmten Maschinentyp, nur auf einem bestimmten Medienabspielgerät, nur von einem bestimmten Typ von Benutzer usw. abgespielt werden kann.
  • In einem anderen Szenario möchte ein Inhalt-Entwickler, wie beispielsweise ein Mitarbeiter in einer Organisation, solchen digitalen Inhalt an einen oder mehrere Mitarbeiter in der Organisation oder andere Einzelpersonen außerhalb der Organisation verteilen, andere aber daran hindern können, den Inhalt wiederzugeben. Hier ist die Distribution des Inhalts der organisationsbasierten gemeinsamen Inhalt-Nutzung in einer vertraulichen oder eingeschränkten Weise ähnlicher als der Distribution auf breiter Basis gegen eine Lizenzgebühr oder irgendeine andere Gegenleistung. In einem solchen Szenario kann der Inhalt dann eine Dokumentpräsentation, eine Kalkulationstabelle, eine Datenbank, eine E-Mail oder dergleichen sein, wie er in einer Büro-Umgebung ausgetauscht werden kann, und der Inhalt-Entwickler kann sicherstellen wollen, dass der Inhalt innerhalb der Büro-Umgebung bleibt und nicht von unberechtigten Einzelpersonen wiedergegeben wird, wie beispielsweise von Konkurrenten oder Kontrahenten. Wiederum möchte ein solcher Inhalt-Entwickler einschränken können, was ein Empfänger mit einem solchen verteilten digitalen Inhalt tun kann. Zum Beispiel würde der Inhalt-Besitzer einschränken wollen, dass der Benutzer solchen Inhalt kopiert oder an einen zweiten Benutzer weiterverteilt, zumindest in einer Weise, die den Inhalt außerhalb eines Kreises von Personen offenlegt, denen die Wiedergabe des Inhalts gestattet sein sollte.
  • Des Weiteren kann der Inhalt-Entwickler verschiedene Empfänger mit unterschiedlichen Ebenen von Wiedergaberechten ausstatten wollen. Zum Beispiel kann der Inhalt-Entwickler gestatten wollen, dass geschützter digitaler Inhalt in Bezug auf eine Klasse von Personen anzeigbar und nicht druckbar ist, und in Bezug auf eine andere Klasse von Personen anzeigbar und druckbar ist.
  • Allerdings, und zwar in jedem Szenario, hat ein solcher Inhalt-Besitzer/-Entwickler nach erfolgter Distribution sehr wenig Kontrolle über den digitalen Inhalt, wenn überhaupt. Dies ist besonders problematisch im Hinblick auf die Tatsache, dass praktisch jeder Arbeitsplatzrechner über die erforderliche Software und Hardware verfügt, um eine exakte digitale Kopie eines solchen digitalen Inhalts zu erstellen und eine solche exakte digitale Kopie auf eine beschreibbare Magnet- oder Bildplatte herunter zu laden, oder eine solche exakte digitale Kopie über ein Netzwerk, wie beispielsweise das Internet, an jedes beliebige Ziel zu senden.
  • Natürlich kann der Inhalt-Besitzer/-Entwickler von dem Benutzer/Empfänger des digitalen Inhalts als Bestandteil einer Transaktion, in welcher der Inhalt verteilt wird, die Zusage verlangen, solchen digitalen Inhalt nicht in einer unwillkommenen Weise weiterzuverteilen. Ein solches Versprechen wird jedoch leicht gegeben und leicht gebrochen. Ein Inhalt-Besitzer/-Entwickler kann versuchen, eine solche weitere Distribution über irgendwelche von mehreren bekannten Sicherheitsvorrichtungen zu verhindern, die normalerweise Verschlüsselung und Entschlüsselung umfassen, siehe zum Beispiel KONSTANTAS D ET AL: "Agent-based commercial dissemination of electronic information", COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V. AMSTERDAM, NL, Band 32, Nr. 6, 30. Mai 2000 (30.05.2000), Seite 753–765, ISSN: 1389-1286. Allerdings gibt es wahrscheinlich sehr wenig, das einen auch nur etwas entschlossenen Benutzer daran hindert, verschlüsselten digitalen Inhalt zu entschlüsseln, solchen digitalen Inhalt in einer entschlüsselten Form zu speichern und denselben dann zu verteilen.
  • Aus vielen Gründen ist die DRM-Servertechnologie dynamisch. Das heißt, wenn sich die Technologie mit der Zeit weiter entwickelt, oder wenn neue Bedrohungen für die Sicherheit des digitalen Inhalts auftreten, werden normalerweise verschiedene Ansätze verwendet, um gewisse Aufgaben für die Bereitstellung von bestimmten Diensten durchzuführen. Häufig umfasst die Bereitstellung eines bestimmten DRM-Dienstes die Durchführung einer Reihe von separaten Aufgaben. Allerdings kann ein Anbieter von Zeit zu Zeit den Wunsch haben, nur eine oder einige Aufgaben auf unterschiedliche Weise auszuführen. Der Anbieter und der Benutzer würden typischerweise bevorzugen, dass das System als Ganzes so wenig wie möglich unterbrochen wird. Zusätzlich möchten Benutzer von solchen DRM-Servern wegen der Kosten und anderen Einschränkungen Systeme haben oder verlangen solche, die unterschiedlich arbeiten. Demzufolge wäre es von Vorteil, wenn Systeme und Verfahren verfügbar wären, mit denen nur ausgewählte Aufgaben innerhalb der Bereitstellung eines digitalen Rechteverwaltungsdienstes auf modulare Weise geändert werden könnten, ohne dazu das gesamte Dienst-Bereitstellungsprogramm modifizieren zu müssen.
  • Weil eine typische DRM-Installation des Weiteren eine Reihe von digitalen Rechteverwaltungs-Diensten, wie beispielsweise Veröffentlichung, Lizenzierung, Föderierungs-Dienste, Registrierungs-Dienste usw. bereitstellen kann, ist es wünschenswert, dass diese Dienste auf eine Weise bereitgestellt werden, die den Anbieter/Administrator der Installation in die Lage versetzen, das System so effizient wie möglich zu verwalten. Zum Beispiel kann es nicht im Interesse des Administrators sein, den Veröffentlichungs-Dienst jedes Mal aktualisieren zu müssen, wenn an der Lizenzierungskomponente eine Änderung vorgenommen wird und umgekehrt. Demzufolge wäre es von Vorteil, wenn Systeme verfügbar wären, die diese Dienste unabhängig voneinander bereitstellten. Daher besteht in dem Fachgebiet ein Bedarf an einem modularen Ansatz für die voneinander unabhängige Bereitstellung einer Vielzahl von DRM-Diensten. Solche Ansätze wären insbesondere von Vorteil, wenn sie eine Aufgliederung der Schlüssel-Geschäftslogik in Komponenten ermöglichen würden, so dass Dritte DRM-Funktionalität und Geschäftslogik der Plattform erweitern und modifizieren könnten.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß den Ansprüchen 1 und 21 stellt die Erfindung sichere Server-Plug-In-Architekturen für digitale Rechteverwaltungssysteme bereit. Ein Server für digitale Rechteverwaltung gemäß der Erfindung basiert auf einer Pipeline-Architektur, in der jeder von einer Vielzahl von digitalen Rechteverwaltungs-Diensten in einer entsprechenden Pipeline durchgeführt wird, und die jeweiligen Pipelines unabhängig voneinander sind. Solche Dienste können Veröffentlichung und Lizenzierung von rechteverwaltetem digitalem Inhalt umfassen. Jede Pipeline umfasst ein Dienst-Programm, das einen Verarbeitungsrahmen zum Durchführen eines digitalen Rechteverwaltungs-Diensts und eine Vielzahl von Plug-In-Komponenten bereitstellt, von denen jede eine entsprechende Aufgabe durchführt, die mit dem digitalen Rechtverwaltungs-Dienst verknüpft ist.
  • Ein DRM-System-Anbieter kann die Dienst-Programme und eine Vielzahl von Plug-In-Optionen für digitale Rechteverwaltung bereitstellen, von denen jede mit einer entsprechenden Plug-In-Komponente verknüpft ist. Basierend auf den Auswahlen, die von dem Empfänger der Installation getroffen werden, können gewünschte Plug-In-Komponenten in den Verarbeitungsrahmen gemäß einem entsprechenden vordefinierten Satz von Schnittstellenregeln integriert werden.
  • Die Vielzahl von Plug-In-Komponenten kann eine oder mehrere Erweiterungs-Plug-In-Komponenten umfassen, die ihre jeweiligen Aufgaben basierend auf dem Auftreten von gewissen vorgeschriebenen Ereignissen durchführen. Eine Erweiterungs-Plug-In-Komponente kann angepasst werden, um die Abarbeitung des Dienst-Programms anzuhalten. Die Vielzahl von Plug-In-Komponenten kann auch eine oder mehrere asynchrone Plug-In-Komponenten umfassen, die ihre jeweiligen Aufgaben durchführen, nachdem die Haupt-Pipeline-Abarbeitung für die Anforderung abgeschlossen ist.
  • KURZE BESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNG
  • Andere Merkmale der Erfindung gehen des Weiteren aus der folgenden ausführlichen Beschreibung der Ausführungsformen der vorliegenden Erfindung im Zusammenhang mit der begleitenden Zeichnung hervor.
  • 1 ist ein Blockschaltbild, das eine beispielhafte, nicht-einschränkende Rechenumgebung darstellt, in der die vorliegende Erfindung implementiert werden kann.
  • 2 ist ein Blockschaltbild, das eine beispielhafte Netzwerkumgebung mit einer Reihe von Rechenvorrichtungen darstellt, in welchen die vorliegende Erfindung implementiert werden kann.
  • 3 ist ein Funktions-Blockschaltbild einer bevorzugten Ausführungsform eines Systems und Verfahrens gemäß der Erfindung zum Veröffentlichen von digitalem Inhalt.
  • 4 stellt ein Ablaufdiagramm einer bevorzugten Ausführungsform eines Verfahrens gemäß der Erfindung zum Veröffentlichen von rechteverwaltetem digitalem Inhalt bereit.
  • 4A ist ein Blockschaltbild, das die Struktur einer signierten Rechte-Kennzeichnung zeigt, wie sie durch das Verfahren von 4 erzeugt wird.
  • 5 ist ein Funktions-Blockschaltbild einer bevorzugten Ausführungsform eines Systems und Verfahrens gemäß der Erfindung zur Lizenzierung von rechteverwaltetem digitalem Inhalt.
  • 6A und 6B stellen ein Ablaufdiagramm einer bevorzugten Ausführungsform eines Verfahrens gemäß der Erfindung zur Lizenzierung von rechteverwaltetem digitalem Inhalt bereit
  • 7 ist ein Ablaufdiagramm, das die Schlüsselschritte zeigt, die beim erneuten Veröffentlichen einer Rechte-Kennzeichnung in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung durchgeführt werden.
  • 8 ist ein Blockschaltbild, das ein Zertifikat zeigt, das von einem DRM-Server an einer Benutzer ausgegeben wird, um es dem Benutzer zu gestatten, eine Offline-Veröffentlichung in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung auszuführen.
  • 9 ist ein Blockschaltbild, das eine Rechte-Vorlage zeigt, die Informationen angibt, die in eine Rechte-Kennzeichnung in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung aufgenommen werden sollen.
  • 10 ist ein Ablaufdiagramm, das Schlüsselschritte zeigt, die beim Erstellen der Rechte-Vorlage von 9 und Erstellen der signierten Rechte-Kennzeichnung von 4A basierend auf der Rechte-Vorlage in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung ausgeführt werden.
  • 11 veranschaulicht eine generische Pipeline-Architektur gemäß der Erfindung.
  • 12 veranschaulicht eine bevorzugte Ausführungsform eine Veröffentlichungs-Pipeline gemäß der Erfindung.
  • 13 veranschaulicht eine bevorzugte Ausführungsform einer Lizenzierungs-Pipeline gemäß der Erfindung.
  • 14 stellt ein Ablaufdiagram einer bevorzugten Ausführungsform eines Verfahrens gemäß der Erfindung zum Bereitstellen einer sicheren Server-Plug-In-Architektur für digitale Rechteverwaltungssysteme bereit.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Beispielhafte Rechenvorrichtung
  • 1 und die folgende Erörterung sollen eine kurze allgemeine Beschreibung einer geeigneten Rechenumgebung bereitstellen, in welcher die Erfindung implementiert werden kann. Es sollte jedoch klar sein, dass in der Hand gehaltene, tragbare und andere Rechenvorrichtungen aller Arten für die Verwendung in Verbindung mit der vorliegenden Erfindung in Betracht gezogen werden. Zwar wird im Folgenden ein Mehrzweckrechner beschrieben, doch dient er nur als Beispiel, und die vorliegende Erfindung erfordert nur einen dünnen Client mit Netzwerk-Interoperabilität und -Zusammenwirkung. Somit kann die vorliegende Erfindung in einer Umgebung von vernetzten, hostverbundenen (hosted) Servern implementiert werden, in welche sehr wenige oder minimale Client-Ressourcen einbezogen sind, z.B. eine vernetzte Umgebung, in welcher die Client-Vorrichtung nur als ein Browser oder eine Schnittstelle für das World Wide Web dient.
  • Obwohl nicht erforderlich, kann die Erfindung über eine Anwenderprogrammschnittstelle (API) zur Nutzung durch einen Entwickler und/oder in die Browser-Software des Netzwerks integriert implementiert werden, die im allgemeinen Kontext von rechnerausführbaren Anweisungen, wie beispielsweise Programm-Modulen, beschrieben wird, die von einem oder mehreren Rechnern ausgeführt werden, wie zum Beispiel Client-Workstations, Servern oder anderen Vorrichtungen. Im Allgemeinen enthalten Programm-Module Routinen, Programme, Objekte, Komponenten, Datenstrukturen und derglei chen, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Typischerweise kann die Funktionalität der Programm-Module kombiniert oder verteilt werden, wie in verschiedenen Ausführungsformen gewünscht. Des Weiteren ist dem Fachmann klar, dass die Erfindung mit anderen Computersystemkonfigurationen ausgeübt werden kann. Andere bekannte Rechensysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit der Erfindung geeignet sind, umfassen Einzelplatzrechner (PCs), Geldausgabeautomaten, Server-Rechner, in der Hand gehaltene oder tragbare Vorrichtungen, Multiprozessorsysteme, mikroprozessorbasierte Systeme, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputer, Großrechner und dergleichen, sind aber nicht darauf beschränkt. Die Erfindung kann auch in verteilten Rechenumgebungen ausgeübt werden, in denen Aufgaben von entfernten Verarbeitungsvorrichtungen durchgeführt werden, die über ein Kommunikationsnetzwerk oder ein anderes Datenübertragungsmedium verbunden sind. In einer verteilten Rechenumgebung können sich Programm-Module sowohl in lokalen als auch entfernten Rechner-Speichermedien befinden, einschließlich Speichervorrichtungen.
  • 1 veranschaulicht somit ein Beispiel einer geeigneten Rechensystemumgebung 100, in welcher die Erfindung implementiert werden kann, obwohl, wie oben verdeutlicht, die Rechensystemumgebung 100 nur ein Beispiel einer geeigneten Rechenumgebung ist und keine Einschränkung hinsichtlich des Umfangs von Verwendung oder Funktionalität der Erfindung andeuten soll. Die Rechenumgebung 100 sollte auch nicht so interpretiert werden, als würde sie irgendeine Abhängigkeit oder Anforderung in Bezug auf irgendeine Komponente oder eine Kombination von Komponenten aufweisen, die in der beispielhaften Betriebsumgebung 100 veranschaulicht sind.
  • Unter Bezugnahme auf 1 umfasst ein beispielhaftes System zum Implementieren der Erfindung eine Mehrzweck-Rechenvorrichtung in der Form eines Rechners 110. Komponenten des Rechners 100 können eine Verarbeitungseinheit 120, einen Systemspeicher 130 und einen Systembus 121, der verschiedene Systemkomponenten einschließlich des Systemspeichers an die Verarbeitungseinheit 120 koppelt, umfassen, sind aber nicht darauf beschränkt. Der Systembus 121 kann irgendeiner von mehreren Typen von Busstrukturen sein, einschließlich eines Speicherbusses oder einer Speichersteuereinrichtung, eines Peripheriebusses und eines Internbusses, die irgendeine von einer Reihe von Busarchitekturen verwenden. Als Beispiel, und nicht als Einschrän kung, umfassen solche Architekturen Industry Standard Architecture- (ISA) Bus, Micro Channel Architecture- (MCA) Bus, Enhanced ISA- (EISA) Bus, Video Electronics Standards Association- (VESA) Internbus und Peripheral Component Interconnect- (PCI) Bus (auch bekannt als Mezzanine-Bus).
  • Der Rechner 110 umfasst typischerweise eine Reihe von computerlesbaren Medien. Computerlesbare Medien können irgendwelche verfügbaren Medien sein, auf die vom Rechner 110 zugegriffen werden kann, und umfassen sowohl flüchtige als auch nichtflüchtige Medien, entfernbare und nicht entfernbare Medien. Als Beispiel, und nicht als Einschränkung, können computerlesbare Medien Computerspeichermedien und Kommunikationsmedien umfassen. Zu Computerspeichermedien gehören sowohl flüchtige als auch nicht-flüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder mit einer beliebigen Technologie zum Speichern von Informationen implementiert sind, wie beispielsweise computerlesbaren Anweisungen, Datenstrukturen, Programm-Modulen oder anderen Daten. Computerspeichermedien umfassen RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CDROM, DVD (digital versatile disk) oder einen anderen Bildplattenspeicher, Magnetbandkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder irgendein anderes Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das vom Rechner 110 zugegriffen werden kann, sind aber nicht darauf beschränkt. Kommunikationsmedien verkörpern typischerweise computerlesbare Anweisungen, Datenstrukturen, Programm-Module oder andere Daten in einem modulierten Datensignal, wie beispielsweise eine Trägerwelle oder einen anderen Transportmechanismus, und enthalten beliebige Informationsabgabemedien. Der Begriff "moduliertes Datensignal" bedeutet ein Signal, für das eine oder mehrere seiner Kennlinien eingestellt oder so geändert wurden, dass Informationen in dem Signal verschlüsselt werden. Als Beispiel, und nicht als Einschränkung, umfassen Kommunikationsmedien verkabelte Medien, wie beispielsweise ein verkabeltes Netzwerk oder eine Direktleitungsverbindung, und drahtlose Medien, wie beispielsweise akustische, HF-, Infrarot- und andere drahtlose Medien. Kombinationen von irgendwelchen der oben genannten sollten ebenfalls in den Umfang von computerlesbaren Medien aufgenommen werden.
  • Der Systemspeicher 130 umfasst Computerspeichermedien in der Form von flüchtigem und/oder nicht-flüchtigem Speicher, wie beispielsweise Festwertspeicher (ROM) 131 und Direktzugriffsspeicher (RAM) 132. Ein grundlegendes Eingabe/Ausgabe-System 133 (BIOS), das die fundamentalen Routinen enthält, welche die Übertragung von Informationen zwischen Elementen in dem Rechner 110 unterstützen, wie beispielsweise beim Hochfahren, ist typischerweise im ROM 131 gespeichert. Der RAM 132 enthält typischerweise Daten und/oder Programm-Module, auf die unmittelbar zugegriffen werden kann und/oder mit denen gegenwärtig von der Verarbeitungseinheit 120 gearbeitet wird. Als Beispiel, und nicht als Einschränkung, veranschaulicht 1 Betriebssystem 134, Anwendungsprogramme 135, andere Programm-Module 136 und Programmdaten 137.
  • Der Computer 110 kann auch andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeichermedien enthalten. Nur als Beispiel veranschaulicht 1 ein Festplattenlaufwerk 141, das von nicht-entfernbaren, nicht-flüchtigen Magnetmedien liest oder diese beschreibt, ein Magnetplattenlaufwerk 151, das von einer entfernbaren, nicht-flüchtigen Magnetplatte 152 liest oder diese beschreibt, und ein Bildplattenlaufwerk 155, das von einer entfernbaren, nicht-flüchtigen Bildplatte 156, wie beispielsweise einer CDROM, oder einem anderen optischen Medium liest oder dieses beschreibt. Andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeichermedien, die in der beispielhaften Betriebsumgebung verwendet werden können, umfassen Magnetbandkassetten, Flash-Speicherkarten, DVDs, Digitalvideoband, Halbleiter-RAM, Halbleiter-ROM und dergleichen, sind aber nicht darauf beschränkt. Das Festplattenlaufwerk 141 ist typischerweise über eine nicht-entfernbare Speicherschnittstelle, wie beispielsweise die Schnittstelle 140, an den Systembus 121 angeschlossen, und das Magnetplattenlaufwerk 151 und das Bildplattenlaufwerk 155 sind typischerweise über eine entfernbare Speicherschnittstelle, wie beispielsweise die Schnittstelle 150, an den Systembus 121 angeschlossen.
  • Die Laufwerke und ihre oben erläuterten und in 1 veranschaulichten zugehörigen Computerspeichermedien sorgen für die Speicherung von computerlesbaren Anweisungen, Datenstrukturen, Programm-Modulen und anderen Daten für den Rechner 110. In 1 wird das Festplattenlaufwerk 141 zum Beispiel so dargestellt, dass es Betriebssystem 144, Anwendungsprogramme 145, andere Programm-Module 146 und Programmdaten 147 speichert. Es ist zu beachten, dass diese Komponenten entweder dieselben oder verschieden von Betriebssystem 134, Anwendungsprogrammen 135, anderen Programm-Modulen 136 und Programmdaten 137 sein können. Betriebssystem 144, Anwendungsprogramme 145, andere Programm-Module 146 und Programmdaten 147 wurden hier mit anderen Bezugszeichen versehen, um zu veranschaulichen, dass sie zumindest unterschiedliche Kopien sind. Ein Benutzer kann Befehle und Informationen über Eingabevorrichtungen, wie beispielsweise eine Tastatur 162 und ein Zeigegerät 161, die im Allgemeinen als Maus, Rollkugel oder integriertes Berührungsfeld bezeichnet werden, in den Rechner 110 eingeben. Andere (nicht gezeigte) Eingabevorrichtungen können ein Mikrofon, einen Joystick, ein Spiele-Pad, eine Satellitenschüssel, einen Scanner oder dergleichen umfassen. Diese und andere Eingabevorrichtungen sind oft über eine Benutzer-Eingabeschnittstelle 160, die an den Systembus 121 angekoppelt ist, mit der Verarbeitungseinheit 210 verbunden, sie können aber auch über eine andere Schnittstelle und andere Busstrukturen, wie beispielsweise einen Parallel-Port, Spiele-Port oder einen Universal Serial Bus (USB), angeschlossen werden.
  • Ein Monitor 191 oder ein anderer Typ von Anzeigevorrichtung ist ebenfalls an den Systembus 121 über eine Schnittstelle angeschlossen, wie beispielsweise eine Videoschnittstelle 190. Ein Grafikschnittstelle 182, wie beispielsweise Northbridge, kann ebenfalls an den Systembus 121 angeschlossen sein. Northbridge ist ein Chipsatz, der mit der CPU oder Host-Verarbeitungseinheit 120 in Verbindung steht und für Datenübertragungen des Accelerated Graphics Port (AGP) zuständig ist. Eine oder mehrere Grafik-Verarbeitungseinheiten (GPUs) 184 können mit der Grafikschnittstelle 182 in Verbindung stehen. Diesbezüglich umfassen die GPUs im Allgemeinen einen auf dem Chip ausgeführten Speicher, wie beispielsweise einen Registerspeicher, und die GPUs 184 stehen mit einem Videospeicher 186 in Verbindung. Die GPUs 184 sind jedoch nur ein Beispiel für einen Koprozessor, und damit kann eine Reihe von Koprozessor-Vorrichtungen in dem Rechner 110 enthalten sein. Ein Monitor 191 oder eine anderer Typ von Anzeigevorrichtung ist ebenfalls an den Systembus 121 über eine Schnittstelle angeschlossen, wie beispielsweise eine Videoschnittstelle 190, die wiederum mit dem Videospeicher 186 in Verbindung stehen kann. Zusätzlich zum Monitor 191 können Rechner auch andere Peripherie-Ausgabevorrichtungen umfassen, wie beispielsweise Lautsprecher 197 und einen Drucker 196, die über eine Ausgabe-Peripherieschnittstelle 195 angeschlossen werden können.
  • Der Rechner 110 kann in einer vernetzten Umgebung unter Verwendung von logischen Verbindungen zu einem oder mehreren entfernten Rechnern arbeiten, wie beispielswei se einem entfernten Rechner 180. Der entfernte Rechner 180 kann ein Arbeitsplatzrechner, ein Server, ein Router, ein Netzwerk-PC, eine gleichberechtigte Vorrichtung oder ein anderer gemeinsamer Netzwerkknoten sein und umfasst typischerweise viele oder alle der oben in Bezug auf den Rechner 100 beschriebenen Elemente, obwohl in 1 nur eine Speichervorrichtung 181 veranschaulicht worden ist. Die in 1 dargestellten logischen Verbindungen umfassen ein lokales Netzwerk (LAN) 171 und ein Weitverkehrsnetz (WAN) 173, können aber andere Netzwerke umfassen. Solche vernetzten Umgebungen sind in Büros, unternehmensübergreifenden Computer-Netzwerken, Intranets und dem Internet allgemein üblich.
  • Wenn er in einer vernetzten LAN-Umgebung eingesetzt wird, ist der Rechner 110 über eine Netzwerkschnittstelle oder einen Adapater 170 an das LAN 171 angeschlossen. Wenn er in einer vernetzten WAN-Umgebung eingesetzt wird, umfasst der Rechner 110 typischerweise ein Modem 172 oder andere Mittel zum Herstellen von Datenübertragungen über das WAN 173, wie beispielsweise das Internet. Das Modem 172, das intern oder extern sein kann, kann über die Benutzer-Eingabeschnittstelle 160 oder einen anderen zweckdienlichen Mechanismus an den Systembus 121 angeschlossen werden. In einer vernetzten Umgebung können Programm-Module, die in Bezug auf den Rechner 110 dargestellt sind, oder Teile von diesen in der entfernten Speichervorrichtung gespeichert werden. Als Beispiel, und nicht als Einschränkung, veranschaulicht 1 entfernte Anwendungsprogramme 185 als auf der Speichervorrichtung 181 resident. Es ist klar, dass die gezeigten Netzwerkverbindungen beispielhaft sind und andere Einrichtungen zum Herstellen einer Datenübertragungsverbindung zwischen den Rechnern verwendet werden können.
  • Dem durchschnittlichen Fachmann ist klar, dass ein Rechner 110 oder eine andere Client-Vorrichtung als Teil eines Computernetzwerks verwendet werden können. Diesbezüglich betrifft die vorliegende Erfindung jedes Computersystem mit einer beliebigen Anzahl von Speichereinheiten und einer beliebigen Anzahl von Anwendungen und Prozessen, die übergreifend auf einer beliebigen Anzahl von Speichereinheiten oder Speichervolumen auftreten können. Die vorliegende Erfindung lässt sich auf eine Umgebung mit Server-Computern und Client-Computern anwenden, die in einer vernetzten Umgebung eingesetzt werden und einen entfernten oder lokalen Speicher aufweisen. Die vorliegende Erfindung kann auch auf eine eigenständige Rechenvorrichtung angewendet werden, die eine Programmiersprachen-Funktionalität sowie Interpretations- und Ausführungsfähigkeiten aufweist.
  • Verteiltes Rechnen erleichtert die gemeinsame Nutzung von Rechner-Ressourcen und Diensten durch direkten Austausch zwischen Rechenvorrichtungen und -systemen. Diese Ressourcen und Dienste umfassen den Austausch von Informationen, Cache-Speicherung und Plattenspeicherung für Dateien. Verteiltes Rechnen zieht Vorteil aus der Netzwerk-Konnektivität, wobei es Clients ermöglicht wird, ihre kollektive Leistung zum Wohl des gesamten Unternehmens wirksam einzusetzen. Diesbezüglich kann eine Reihe von Vorrichtungen Anwendungen, Objekte oder Ressourcen aufweisen, die zusammenwirken können, um Authentifizierungstechniken der vorliegenden Erfindung für eine bzw. mehrere verlässliche Grafik-Pipelines einzubeziehen.
  • 2 stellt eine schematische Darstellung einer beispielhaften vernetzten oder verteilten Rechenumgebung bereit. Die verteilte Rechenumgebung umfasst Rechenobjekte 10a, 10b usw. und Rechenobjekte oder -vorrichtungen 110a, 110b, 110c usw. Diese Objekte können Programme, Verfahren, Datenspeicher, programmierbare Logik usw. umfassen. Die Objekte können Teile der gleichen oder verschiedene Vorrichtungen umfassen, wie beispielsweise PDAs, Fernsehgeräte, MP3-Spieler, Arbeitsplatzrechner usw. Jedes Objekt kann mit einem anderen Objekt über das Kommunikationsnetzwerk 14 kommunizieren. Dieses Netzwerk selbst kann andere Rechenobjekte und Rechenvorrichtungen umfassen, die für das System von 2 Dienste bereitstellen. In Übereinstimmung mit einem Aspekt der Erfindung kann jedes Objekt 10 oder 110 eine Anwendung enthalten, welche die Authentifizierungs-Techniken der vorliegenden Erfindung für eine bzw. mehrere verlässliche Grafik-Pipelines anfordern könnte.
  • Es lässt sich ebenso verstehen, dass ein Objekt, wie beispielsweise 110c, eine andere Rechenvorrichtung 10 oder 110 als Hostrechner aufweisen kann. Somit, obwohl die dargestellte physikalische Umgebung die verbundenen Vorrichtungen als Rechner zeigen kann, ist eine solche Darstellung nur veranschaulichend, und die physikalische Umgebung kann alternativ so dargestellt oder beschrieben werden, dass sie verschiedene digitale Vorrichtungen umfasst, wie beispielsweise PDAs, Fernsehgeräte, MP3-Spieler usw., Software-Objekte wie beispielsweise Schnittstellen, COM-Objekte und dergleichen.
  • Es gibt eine Reihe von Systemen, Komponenten und Netzwerk-Konfigurationen, die verteilte Rechenumgebungen unterstützen. Zum Beispiel können Rechensysteme durch drahtgebundene oder drahtlose Systeme, durch lokale Netzwerke oder weit verteilte Netzwerke verbunden sein. Derzeit sind viele der Netzwerke an das Internet gekoppelt, was die Infrastruktur für weit verteiltes Rechnen bereitstellt und viele verschiedene Netzwerke umfasst.
  • In Hausnetz-Umgebungen sind wenigstens vier verschiedene Netzwerk-Transportmedien vorhanden, von denen jedes ein eindeutiges Protokoll unterstützen kann, wie beispielsweise Stromleitung, Daten (sowohl drahtlos als auch drahtgebunden), Sprache (z.B. Telefon) und Unterhaltungsmedien. Die meisten Haus-Steuervorrichtungen, wie beispielsweise Lichtschalter und Haushaltsgeräte können zur Anschlussfähigkeit die Stromleitung verwenden. Datendienste können als Breitband in das Haus gelangen, (z.B. entweder DSL oder Kabelmodem), und der Zugriff auf sie kann im Haus unter Verwendung von entweder drahtloser (z. B. HomeRF oder 802.11b) oder drahtgebundener (z.B. Home-PNA, Cat 5, sogar Stromleitung) Anschlussfähigkeit erfolgen. Sprachverkehr kann entweder als drahtgebunden (z.B. Cat 3) oder drahtlos (z.B. Mobiltelefon) in das Haus gelangen und kann im Haus unter Verwendung von Cat-3-Verkabelung verteilt werden. Unterhaltungsmedien können über Satellit oder Kabel in das Haus gelangen und werden typischerweise im Haus unter Verwendung von Koaxialkabeln verteilt. IEEE 1394 und DVI treten ebenfalls als digitale Verbindungen für Gruppen von Medien-Vorrichtungen in Erscheinung. Alle diese Netzwerkumgebungen und andere, die als Protokoll-Standards in Erscheinung treten können, können miteinander verbunden werden, um ein Intranet auszubilden, das mit der Außenwelt über das Internet verbunden werden kann. Kurz, es ist eine Reihe verschiedener Quellen für die Speicherung und Übertragung von Daten vorhanden, und demzufolge erfordern sich weiterentwickelnde Rechenvorrichtungen Möglichkeiten zum Schützen von Inhalt in allen Abschnitten der Datenverarbeitungs-Pipeline.
  • Das Internet bezieht sich im Allgemeinen auf die Sammlung von Netzwerken und Netzübergängen, welche die TCP-/IP-Suite von Protokollen verwenden, die im Fachgebiet von Rechnervernetzungen bekannt sind. TCP/IP ist eine Abkürzung für "Transport Control Protocol/Internet Protocol". Das Internet kann als ein System von geografisch verteilten entfernten Computer-Netzwerken beschrieben werden, die über Rechner verbunden sind, die Vernetzungsprotokolle ausführen, mit denen es Benutzern gestattet wird, zu interagieren und Informationen über die Netzwerke gemeinsam zu nutzen. Wegen einer solchen weit verbreiteten gemeinsamen Informationsnutzung haben sich entfernte Netzwerke, wie beispielsweise das Internet, bisher im Allgemeinen zu einem offenen System entwickelt, für das Entwickler Software-Anwendungen konzipieren können, um spezielle Operationen oder Dienste im Wesentlichen ohne Einschränkungen durchzuführen.
  • Somit ermöglicht die Netzwerk-Infrastruktur eine Menge von Netzwerk-Topologien, wie zum Beispiel Client/Server-, Peer-to-Peer- oder Hybrid-Architekturen. Der "Client" ist ein Mitglied einer Klasse oder Gruppe, der die Dienste einer anderen Klasse oder Gruppe verwendet, mit welcher er in keiner Beziehung steht. Daher ist ein Client in der EDV ein Prozess, d.h. grob gesagt ein Satz von Anweisungen oder Aufgaben, der einen Dienst anfordert, der von einem anderen Programm bereitgestellt wird. Der Client-Prozess verwendet den angeforderten Dienst, ohne irgendwelche Arbeitsdetails über das andere Programm oder den Dienst selbst "kennen" zu müssen. In einer Client/Server-Architektur, insbesondere einem vernetzten System, ist ein Client normalerweise ein Rechner, der auf gemeinsam genutzte Netzwerk-Ressourcen zugreift, die von einem anderen Rechner bereitgestellt werden, z.B. einem Server. In dem Beispiel von 2 kann man sich die Rechner 110a, 110b usw. als Clients vorstellen, und die Rechner 10a, 10b usw. kann man sich als den Server vorstellen, wobei der Server 10a, 10b usw. die Daten verwaltet, die dann in den Client-Computern 110a, 110b usw. reproduziert werden.
  • Ein Server ist typischerweise ein entferntes Computersystem, auf das über ein entferntes Netzwerk, wie zum Beispiel das Internet, zugegriffen werden kann. Der Client-Prozess kann in einem ersten Computersystem aktiv sein, und der Server-Prozess kann in einem zweiten Computersystem aktiv sein, die miteinander über ein Kommunikationsmedium in Verbindung stehen, wodurch eine verteilte Funktionalität bereitgestellt wird und es mehreren Clients gestattet wird, die Informationssammlungs-Fähigkeiten des Servers zu nutzen.
  • Client und Server kommunizieren miteinander unter Verwendung der Funktionalität, die von einer Protokollschicht bereitgestellt wird. Zum Beispiel ist das Hypertext Transfer Protocol (HTTP) eine übliches Protokoll, das in Verbindung mit dem World Wide Web (WWW) verwendet wird. Typischerweise wird eine Computer-Netzwerkadresse, wie zum Beispiel eine Internetadresse (URL) oder eine Internet-Protokoll- (IP) Adresse verwendet, um die Server- oder Client-Computer gegenseitig zu identifizieren. Die Netzwerkadresse kann als eine Internetadresse (Universal Resource Locator) bezeichnet werden. Zum Beispiel kann Kommunikation über ein Kommunikationsmedium bereitgestellt werden. Insbesondere können Client und Server über TCP/IP-Verbindungen für Hochleistungskommunikationen aneinander gekoppelt werden.
  • Somit veranschaulicht 2 eine beispielhafte vernetzte oder verteilte Umgebung mit einem Server, der mit Client-Computern über ein Netzwerk/einen Bus in Verbindung steht, in welcher die vorliegende Erfindung eingesetzt werden kann. Im Detail ist eine Reihe von Servern 10a, 10b usw. über ein Kommunikations-Netzwerk/einen Bus 14, der ein LAN, WAN, Intranet, das Internet usw. sein kann, in Übereinstimmung mit der vorliegenden Erfindung mit einer Reihe von Client- oder entfernten Rechenvorrichtungen 110a, 110b, 110c, 110d, 110e usw. verbunden, wie beispielsweise einem tragbaren Rechner, einem in der Hand gehaltenen Rechner, einem dünnen Client, einem vernetzten Gerät oder einer anderen Vorrichtungen, wie beispielsweise Videorekorder, Fernsehgerät, Ofen, Beleuchtung, Heizung und dergleichen. Somit wird in Betracht gezogen, dass die vorliegende Erfindung auf jede beliebige Rechenvorrichtung angewendet werden kann, in Verbindung mit der es wünschenswert ist, Inhalt aus einer verlässlichen Quelle zu verarbeiten, zu speichern oder wiederzugeben.
  • In einer Netzwerkumgebung, in welcher das Kommunikations-Netzwerk/der Bus 14 zum Beispiel das Internet ist, können die Server 10 Web-Server sein, mit denen die Clients 110a, 110b, 110c, 110d, 110e usw. über irgendeines von einer Reihe von bekannten Protokollen kommunizieren, wie beispielsweise HTTP. Die Server 10 können auch als Clients 110 dienen, was für eine verteilte Rechenumgebung charakteristisch sein kann. Kommunikationen können drahtgebunden oder drahtlos sein, wo sachdienlich. Client-Vorrichtungen 110 können über das Kommunikations-Netzwerk/den Bus 14 kommunizieren oder nicht, und können damit verbundene unabhängige Kommunikationen aufweisen. Zum Beispiel kann in dem Fall eines Fernsehgeräts oder Videorekorders zu deren Steuerung ein Vernetzungsaspekt vorhanden sein oder nicht. Jeder Client-Computer 110 und Server-Computer 10 kann mit verschiedenen Anwendungsprogramm-Modulen oder Objekten 135 und mit Verbindungen zu oder Zugriff auf verschiedene Typen von Speicherelementen oder Objekten ausgestattet sein, über die Dateien gespeichert werden können, oder auf die ein Teil bzw. Teile von Dateien heruntergeladen oder migriert werden können. Somit kann die vorliegende Erfindung in einer Computer-Netzwerkumgebung verwendet werden, die Client-Computer 110a, 110b usw., die auf ein Computer-Netzwerk/einen Bus 14 zugreifen und mit diesen interagieren können, und Server-Computer 10a, 10b usw. die mit Client-Computern 110a, 110b usw. interagieren können, und andere Vorrichtungen 111 und Datenbanken 20 aufweist.
  • Digitalen Inhalt veröffentlichen
  • 3 ist ein Funktions-Blockschaltbild einer bevorzugten Ausführungsform eines Systems und Verfahrens gemäß der Erfindung zum Veröffentlichen von digitalem Inhalt. So, wie der Begriff "Veröffentlichen" hierin verwendet wird, bezieht er sich auf einen Prozess, dem eine Anwendung oder ein Dienst folgt, um mit einer verlässlichen Entität einen Satz von Rechten und Bedingungen herzustellen, welche die Entität für den Inhalt ausgeben kann, sowie auf denjenigen, an den diese Rechte und Bedingungen ausgegeben werden können. Gemäß der Erfindung umfasst der Veröffentlichungsprozess Verschlüsseln des digitalen Inhalts und Verknüpfen einer Liste von durchsetzbaren Dauer-Rechten, die der Autor des Inhalts für alle möglichen Benutzer des Inhalts beabsichtigt hat. Dieser Prozess kann auf eine sichere Weise ausgeführt werden, um Zugriff auf die Rechte oder den Inhalt zu unterbinden, es sei denn, er ist vom Autor des Inhalts beabsichtigt.
  • In einer bevorzugten Ausführungsform der Erfindung können insbesondere drei Entitäten verwendet werden, um sicheren digitalen Inhalt zu veröffentlichen: eine Inhalts-Vorbereitungsanwendung 302, die auf dem Client 300 ausgeführt wird und den Inhalt zur Veröffentlichung vorbereitet, eine digitale Rechteverwaltungs- (DRM) Anwenderprogrammschnittstelle (API) 306, die ebenfalls auf der Client-Vorrichtung 300 resident ist, und ein DRM-Server 320, der kommunikativ über ein Kommunikations-Netzwerk 330 an den Client 300 gekoppelt ist. In einer bevorzugten Ausführungsform der Erfindung umfasst das Kommunikations-Netzwerk 330 das Internet, obwohl klar sein sollte, dass das Kommunikations-Netzwerk 330 jedes lokale oder Weitverkehrsnetz sein könnte, wie beispielsweise ein proprietäres Intranet.
  • Die Inhalts-Vorbereitungsanwendung 302 kann jede Anwendung sein, die digitalen Inhalt erzeugt. Zum Beispiel kann die Anwendung 302 ein Textverarbeitungsprogramm oder ein anderes Veröffentlichungsprogramm (publisher) sein, das digitale Textdateien, digitale Musik, Video oder anderen solchen Inhalt erzeugt. Der Inhalt könnte zum Beispiel auch Streaming-Inhalt enthalten, wie beispielsweise Streaming-Audio-/Video-Daten eines Live- oder aufgezeichneten Ereignisses. Gemäß der Erfindung fordert die Inhalts-Vorbereitungsanwendung ihren Benutzer auf, den Inhalt unter Verwendung eines Schlüssels zu verschlüsseln, den der Benutzer bereitstellt. Die Anwendung 302 verwendet den Schlüssel zum Verschlüsseln des digitalen Inhalts und bildet damit eine verschlüsselte digitale Inhaltsdatei 304. Die Client-Anwendung fordert den Benutzer auch auf, Rechte-Daten für die digitale Inhaltsdatei 304 bereitzustellen. Die Rechte-Daten enthalten eine entsprechende Identität für jede Entität, die Rechte in dem digitalen Inhalt hat. Eine solche Entität kann zum Beispiel eine Einzelperson, eine Klasse von Einzelpersonen oder eine Vorrichtung sein. Für jede solche Entität enthalten die Rechte-Daten auch eine Liste von Rechten, welche die Entität in dem Inhalt hat, und alle Bedingungen, die irgendeinem oder allen diesen Rechten zur Auflage gemacht werden können. Solche Rechte können das Recht zum Lesen, Bearbeiten, Kopieren, Drucken usw. des digitalen Inhalts umfassen. Außerdem können Rechte inklusiv oder exklusiv sein. Inklusive Rechte geben an, dass ein bestimmter Benutzer ein bestimmtes Recht in dem Inhalt hat, (z.B. der Benutzer kann den digitalen Inhalt bearbeiten). Exklusive Rechte geben an, dass ein bestimmter Benutzer alle Rechte in dem Inhalt hat, ausgenommen diejenigen, die angegeben sind, (z.B. der Benutzer kann mit den digitalen Text tun, was er möchte, außer ihn kopieren).
  • Gemäß einer Ausführungsform der Erfindung kann die Client-API 306 den verschlüsselten digitalen Inhalt und die Rechte-Daten an den DRM-Server 320 übergeben. Unter Verwendung eines Prozesses, der im Folgenden im Detail beschrieben wird, bestimmt der DRM-Server 320, ob er die Rechte, die der Benutzer zugewiesen hat, durchsetzen kann, und falls ja, signiert der DRM-Server 320 die Rechte-Daten, um eine signierte Rechte-Kennzeichnung (SRL) 308 zu bilden. Im Allgemeinen kann jedoch jede verlässliche Entität die Rechte-Daten signieren, vorzugsweise unter Verwendung eines Schlüssels, der für den DRM-Server 320 verlässlich ist. Zum Beispiel kann ein Client die Rech te-Daten unter Verwendung eines Schlüssels signieren, der für ihn durch den DRM-Server 320 bereitgestellt wird.
  • Die Rechte-Kennzeichnung 308 kann Daten enthalten, welche die Rechte-Beschreibung, den verschlüsselten Inhalts-Schlüssel und die digitale Signatur über der Rechte-Beschreibung und dem verschlüsselten Inhalts-Schlüssel darstellen. Wenn der DRM-Server die Rechte-Kennzeichnung signiert, übergibt er die signierte Rechte-Kennzeichnung 308 an den Client über die Client API 306 zurück, welche die signierte Rechte-Kennzeichnung 308 auf der Client-Vorrichtung 300 speichert. Die Inhalts-Vorbereitungsanwendung 302 verknüpft dann die signierte Rechte-Kennzeichnung 308 mit der verschlüsselten digitalen Inhaltsdatei 304. Zum Beispiel kann die SRL 308 mit der verschlüsselten digitalen Inhaltsdatei verkettet werden, um eine rechteverwaltete Inhaltsdatei 310 zu bilden. Im Allgemeinen müssen die Rechte-Daten jedoch nicht mit dem digitalen Inhalt kombiniert werden. Zum Beispiel könnten die Rechte-Daten in einem bekannten Speicherplatz gespeichert werden, und ein Verweis auf die gespeicherten Rechte-Daten könnte mit dem verschlüsselten digitalen Inhalt kombiniert werden. Der Verweis könnte eine Kennung enthalten, die angibt, wo die Rechte-Daten gespeichert sind (z.B. den Datenspeicher, der die Rechte-Daten enthält), und eine Kennung, die den bestimmten Rechte-Daten auf dem bestimmten Speicherplatz entspricht (von der die Datei z.B. identifiziert wird, welche die bestimmten Rechte-Daten von Interesse enthält). Der rechteverwaltete Inhalt 310 kann dann zu irgendjemand irgendwohin übergeben werden, und nur diejenigen Entitäten, die Rechte zum Abnehmen (consume) des Inhalts haben, können den Inhalt abnehmen, und zwar nur in Übereinstimmung mit den Rechten, die ihnen zugewiesen worden sind.
  • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 400 gemäß der Erfindung zum Veröffentlichen von rechteverwaltetem digitalem Inhalt, wobei die Rechte-Kennzeichnung von einem DRM-Server signiert ist. Es sollte jedoch klar sein, dass diese Ausführungsform nur beispielhaft ist, und dass die Rechte-Kennzeichnung im Allgemeinen von jeder verlässlichen Entität signiert werden kann. Im Allgemeinen kann ein Verfahren gemäß der Erfindung zum Veröffentlichen von digitalem Inhalt umfassen: Verschlüsseln des digitalen Inhalts unter Verwendung eines Inhalts-Schlüssels (CK), Generieren einer Rechte-Beschreibung, die mit dem digitalen Inhalt verknüpft ist, Verschlüsseln des Inhalts-Schlüssels (CK) gemäß einem öffentlichen Schlüssel für einen DRM- Server (PU-DRM), damit sich (PU-DRM(CK)) ergibt, und Erstellen einer digitalen Signatur auf Basis eines privaten Schlüssels (PR-DRM), der (PU-DRM) entspricht, über die Kombination der Rechte-Beschreibung und von (PU-DRM(CK)).
  • In Schritt 402 generiert die Anwendung 302 einen Inhalts-Schlüssel (CK), der zum Verschlüsseln des digitalen Inhalts verwendet wird. Vorzugsweise ist der Inhalts-Schlüssel (CK) ein symmetrischer Schlüssel, obwohl im Allgemeinen jeder Schlüssel zum Verschlüsseln des digitalen Inhalts verwendet werden kann. Symmetrische Schlüssel-Algorithmen, die manchmal als "Geheimschlüssel"-Algorithmen bezeichnet werden, verwenden den gleichen Schlüssel zum Entschlüsseln einer Nachricht, den sie zum Verschlüsseln der Nachricht verwendet haben. Aus diesem Grund wird bevorzugt, dass (CK) geheim gehalten wird. Die gemeinsame Nutzung von (CK) zwischen Absender und Empfänger sollte mit großer Vorsicht erfolgen, um das unberechtigte Abfangen eines solchen (CK) zu vermeiden. Da (CK) von Verschlüsseler und Entschlüsseler gemeinsam genutzt wird, wird (CK) vorzugsweise übermittelt, bevor irgendwelche verschlüsselten Nachrichten übertragen werden.
  • Mehrere Generierungsalgorithmen für symmetrische Schlüssel sind im Fachgebiet bekannt. In einer bevorzugten Ausführungsform wird der Data Encryption Standard (DES) verwendet, obwohl klar sein sollte, dass jeder symmetrische Algorithmus verwendet werden könnte. Beispiele für solche Algorithmen für symmetrische Schlüssel umfassen ohne Einschränkung Triple-DES, den International Data Encryption Algorithm (IDEA), Cast, Cast-128, RC4, RC5 und SkipJack.
  • In Schritt 404 verschlüsselt die Anwendung 302 den digitalen Inhalt mit dem symmetrischen Inhalts-Schlüssel (CK), um verschlüsselten digitalen Inhalt 304 zu bilden, der unter Verwendung der Anmerkung (CK(content)) geschrieben werden kann. Der Autor, der die Anwendung 302 verwendet, kann auch Rechte-Daten generieren, die mit dem digitalen Inhalt verknüpft sind. Die Rechte-Daten können eine Liste von Entitäten, die berechtigt sein werden, den Inhalt abzunehmen, und die spezifischen Rechte, die jede der Entitäten in Bezug auf den Inhalt besitzt, zusammen mit allen Bedingungen enthalten, die für diese Rechte zur Auflage gemacht werden können. Solche Rechte können zum Beispiel das Ansehen des Inhalts, das Drucken des Inhalts usw. umfassen. Die Anwendung 302 stellt die Rechte-Daten für die API 306 bereit. Ein Beispiel von Rechte-Daten im XML/XrML-Format befindet sind im Anhang hierzu als Anhang 1.
  • In Schritt 406 generiert die API 306 einen zweiten Verschlüsselungsschlüssel (DES1), der zum Verschlüsseln des Inhalts-Schlüssels (CK) verwendet wird. Vorzugsweise ist (DES1) ebenfalls ein symmetrischer Schlüssel. In Schritt 408 verschlüsselt die API 306 (CK) mit (DES1), damit sich (DES1(CK)) ergibt. In Schritt 410 verwirft die API 306 (CK) mit dem Ergebnis, dass (CK) jetzt nur noch durch Entschlüsseln von (DES1(CK)) erhalten werden kann. Um sicherzustellen, dass (CK(content)) für einen zentralen DRM-Server 320 geschützt ist, und dass alle "Lizenzanforderungen" für den Inhalt tatsächlich zentral in Übereinstimmung mit den Rechte-Daten erfolgen, kontaktiert die API 306 in Schritt 4112 den bereitgestellten DRM-Server 320 und ruft den öffentlichen Schlüssel (PU-DRM) von diesem ab. In Schritt 414 verschlüsselt die API 306 (DES1) mit (PU-DRM), damit sich (PU-DRM(DES1)) ergibt. Somit kann (CK) für (PU-DRM) geschützt werden, um sicherzustellen, dass der DRM-Server 320 die einzige Entität ist, die in der Lage sein wird, auf (CK) Zugriff zu erhalten, wie zum Entschlüsseln von (CK(content)) erforderlich ist. In Schritt 416 verschlüsselt die API 306 die Rechte-Daten, (d.h. die Liste von berechtigten Entitäten und die entsprechenden Rechte und Bedingungen, die mit jeder berechtigten Entität in der Liste verknüpft sind), mit (DES1), damit sich (DES1(rtghtsdata)) ergibt.
  • In einer alternativen Ausführungsform kann (CK) verwendet werden, um die Rechte-Daten direkt zu verschlüsseln, damit sich (CK(rigsdata)) ergibt, und damit die Verwendung von (DES1) vollständig umgangen wird. Allerdings gestattet die Verwendung von (DES1) zum Verschlüsseln der Rechte-Daten, einen solchen (DES1) jedem bestimmten Algorithmus anzupassen, der an den DRM-Server angepasst werden könnte, wogegen (CK) von einer vom DRM-Server unabhängigen Entität spezifiziert werden und nicht an diesen angepasst werden könnte.
  • In Schritt 418 kann die Inhalts-Schutzanwendung 302 (PU-DRM(DES1)) und (DES1(rightsdata)) als Rechte-Kennzeichnung dem DRM-Server 320 zum Signieren übermitteln. Alternativ kann der Client selbst die Rechte-Daten signieren. Wenn die Rechte-Daten dem Server zum Signieren übermittelt werden, dann greift der DRM-Server 320 in Schritt 420 auf die Rechte-Daten zu und verifiziert, dass er die Rechte und Be dingungen in der übermittelten Rechte-Kennzeichnung durchsetzen kann. Zum Verifizieren, dass er die Rechte-Daten durchsetzen kann, wendet der DRM-Server 320 (PR-DRM) auf (PU-DRM(DES1)) an, damit sich (DES1) ergibt, und wendet dann (DES1) auf (DES1(rightsdata)) an, damit sich die Rechte-Daten im Klartext ergeben. Der Server 320 kann dann beliebige Richtlinienprüfungen durchführen, um zu verifizieren, dass die Benutzer, Rechte und Bedingungen, die in den Rechte-Daten spezifiziert wurden, innerhalb einer Richtlinie liegen, die von dem Server 320 durchgesetzt wird. Der Server 320 signiert die ursprünglich übermittelte Rechte-Kennzeichnung, die (PU-DRM(DES1)) und (DES1(rightsdata)) enthält, damit sich die signierte Rechte-Kennzeichnung (SRL) 308 ergibt, wobei die Signatur auf dem privaten Schlüssel des DRM-Servers 320 (PR-DRM) basiert, und gibt die SRL 308 an die API 306 zurück, die dann die zurückgegebene SRL 308 an die Client-Anwendung 302 übergibt.
  • Die SRL 308 ist ein digital signiertes Dokument, was es manipulationssicher macht. Des Weiteren ist die SRL 308 unabhängig vom tatsächlichen Schlüssel-Typ und dem Algorithmus, der zum Verschlüsseln des Inhalts verwendet wird, und behält die starke 1-1-Beziehung zu dem Inhalt bei, den sie schützt. Unter folgender Bezugnahme auf 4A kann die SRL 308 in einer Ausführungsform der vorliegenden Erfindung unter anderem Folgendes enthalten: Informationen über den Inhalt, der die Basis der SRL 308 ist, einschließlich vielleicht einer Kennung des Inhalts; Informationen über den DRM-Server, der die SRL 308 signiert, einschließlich (PU-DRM(DES1)) und Verweis-Informationen, wie beispielsweise eine URL zum Lokalisieren des DRM-Servers auf einem Netzwerk, und Rückverweis-Informationen, wenn die URL fehlschlägt; Informationen, welche die SRL 308 selbst beschreiben; (DES1(rightsdata)); (DES1(CK)); und S(PR-DRM). Eine Beispiel-SRL 308 in XML/XrML befindet sich im Anhang hierzu als Anhang 2.
  • Indem sichergestellt wird, dass eine verlässliche Entität die Rechte-Daten signiert, um eine signierte Rechte-Kennzeichnung 308 zu erstellen, bestätigt der DRM-Server, dass er Lizenzen für den Inhalt in Übereinstimmung mit den durch das Veröffentlichungsprogramm vorgegebenen Bedingungen ausgibt, wie sie in den Rechte-Daten der Rechte-Kennzeichnung 308 beschrieben sind. Wie klar sein sollte, muss ein Benutzer eine Lizenz erlangen, um den Inhalt wiederzugeben, insbesondere deswegen, weil die Lizenz den Inhalts-Schlüssel (CK) enthält. Wenn ein Benutzer eine Lizenz für einen verschlüsselten Inhalt erhalten möchte, kann der Benutzer eine Lizenzanforderung mit der SRL 308 für den Inhalt und einem Zertifikat, das die Berechtigungsnachweise des Benutzers verifiziert, an den DRM-Server 320 oder eine andere lizenzausgebende Entität übergeben. Die lizenzausgebende Entität kann dann, um die Rechte-Daten zu erzeugen, (PU-DRM(DES1) und (DES1(rightsdata)) verschlüsseln, alle Rechte (sofern vorhanden), die der lizenzanfordernden Entität von dem Autor gewährt wurden, auflisten, und eine Lizenz nur mit diesen spezifischen Rechten erstellen.
  • Vorzugsweise nachdem die Anwendung 302 die SRL 308 empfangen hat, verkettet eine solche Anwendung 302 die signierte Rechte-Kennzeichnung 308 mit dem entsprechenden (CK(content)) 304, um rechteverwalteten digitalen Inhalt zu bilden. Alternativ können die Rechte-Daten in einem bekannten Speicherplatz gespeichert werden, wobei ein Verweis auf den Speicherplatz mit dem verschlüsselten digitalen Inhalt bereitgestellt wird. Somit kann eine Wiedergabe-Anwendung, die DRM-aktiviert ist, die signierte Rechte-Kennzeichnung 308 über den Teil des Inhalts erfassen, den die Wiedergabe-Anwendung versucht, wiederzugeben. Diese Erfassung steuert die Wiedergabe-Anwendung an, eine Lizenzanforderung zum DRM-Lizenzierungs-Server 320 zu initiieren. Die Veröffentlichungsanwendung 302 kann zum Beispiel eine URL für den DRM-Lizenzierungs-Server 320 speichern, oder der DRM-Lizenzierungs-Server 320 kann seine eigene URL als einen Teil von Metadaten in die Rechte-Kennzeichnung einbetten, bevor er sie digital signiert, so dass die DRM-Client-API 306, die von der Wiedergabe-Anwendung aufgerufen wird, den richtigen DRM-Lizenzierungs-Server 320 identifizieren kann. Vorzugsweise wird eine eindeutige Kennung, wie beispielsweise eine global eindeutige Kennung (GUID), in die Rechte-Kennzeichnung eingesetzt, bevor sie signiert wird.
  • In einer bevorzugten Ausführungsform der Erfindung kann ein einfaches Objektzugriffsprotokoll (SOAP) für die Kommunikation zwischen der Inhalts-Schutzanwendung 302 oder der Wiedergabe-Anwendung und dem DRM-Server 320 verwendet werden. Des Weiteren können API-Bibliotheken, wie beispielsweise API 306, bereitgestellt werden, so dass Anwendungen, wie beispielsweise die Anwendung 302, nicht erforderlich sind, um die Client-Seite des DRM-Protokolls zu implementieren, sondern einfach lokale API-Aufrufe getätigt werden. Vorzugsweise wird XrML, eine XML-Sprache, zum Beschreiben von Rechte-Beschreibungen, Lizenzen und Rechte-Kennzeichnungen für digitalen Inhalt verwendet, obwohl klar sein sollte, dass für die Rechte-Beschreibung und andere Daten jedes geeignete Format verwendet werden kann.
  • Erlangen einer Lizenz für den veröffentlichten Inhalt
  • 5 ist ein Funktions-Blockschaltbild einer bevorzugten Ausführungsform eines Systems und Verfahrens gemäß der Erfindung zum Lizenzieren von rechteverwaltetem digitalem Inhalt. So, wie der Begriff "Lizenzierung" hierin verwendet wird, bezieht er sich auf einen Prozess, dem eine Anwendung oder ein Dienst folgt, um eine Lizenz anzufordern und zu erhalten, der eine in der Lizenz benannte Entität in die Lage versetzt, den Inhalt in Übereinstimmung mit den in der Lizenz spezifizierten Bedingungen abzunehmen. Eingaben in den Lizenzierungsprozess können signierte Rechte-Kennzeichnungen (SRL) 308, die mit dem Inhalt verknüpft sind, für den eine Lizenz angefordert worden ist, und das bzw. die öffentlichen Schlüssel-Zertifikate der Entität oder Entitäten umfassen, für welche die Lizenz angefordert wird. Es ist zu beachten, dass die Entität, die eine Lizenz anfordert, nicht notwendigerweise die Entität sein muss, für welche die Lizenz angefordert wird. Typischerweise enthält eine Lizenz die Rechte-Beschreibung von der SRL 308, einen verschlüsselten Schlüssel, der den verschlüsselten Inhalt entschlüsseln kann, und eine digitale Signatur über der Rechte-Beschreibung und den verschlüsselten Schlüssel. Die digitale Signatur stellt sicher, dass die Entitäten und benannten Rechte berechtigt sind.
  • Eine Möglichkeit für die Anwendung 302, den rechteverwalteten Inhalt 310 abzunehmen, besteht darin, dass die Client-API 306 die signierte Rechte-Kennzeichnung 308 des rechteverwalteten Inhalts 310 über das Kommunikationsnetzwerk 330 an den DRM-Server 320 weiterleitet. Der Speicherplatz des DRM-Servers 320 lässt sich zum Beispiel in den Verweis-Informationen in der SRL 308 finden. In einer solchen Ausführungsform kann der DRM-Lizenzierungs-Server 320 über einen Prozess, der im Folgenden ausführlich beschrieben wird, die Rechte-Beschreibung in der Rechte-Kennzeichnung verwenden, um zu bestimmen, ob er eine Lizenz ausgeben kann, und falls ja, die Rechte-Beschreibung ableiten, um sie in die Lizenz zu integrieren. Wie oben beschrieben, enthält die Rechte-Kennzeichnung 308 den Inhalts-Schlüssel (CK), der gemäß dem öffentlichen Schlüssel des DRM-Servers 320 (PU-DRM), (d.h. (PU-DRM(CK))), verschlüsselt ist. In dem Prozess zur Lizenzausgabe nimmt der DRM-Server 320 eine sichere Entschlüsselung dieses Werts vor, um (CK) zu erhalten. Danach verwendet er den öffentli chen Schlüssel (PU-ENTITY) in dem öffentlichen Schlüssel-Zertifikat, das an die Lizenzanforderung übergeben worden ist, um eine erneute Verschlüsselung von (CK), (d.h. PU-ENTITY(CK))), vorzunehmen. Der erneut verschlüsselte (PU-ENTITY(CK)) ist das, was der Server 320 in die Lizenz stellt. Somit kann die Lizenz zum Anrufer zurückgegeben werden, ohne Gefahr zu laufen, (CK) preiszugeben, da der einzige Inhaber des zugehörigen privaten Schlüssels (PR-ENTITY) (CK) aus (PU-ENTITY(CK)) wiedererlangen kann. Die Client-API 306 verwendet dann (CK), um den verschlüsselten Inhalt zu entschlüsseln, um einen entschlüsselten digitalen Inhalt 312 zu bilden. Die Client-API 302 kann dann den entschlüsselten digitalen Inhalt 312 gemäß den in der Lizenz bereitgestellten Rechten verwenden.
  • Alternativ kann ein Client, wie zum Beispiel der veröffentlichende Client, seine eigene Lizenz ausgeben, um den Inhalt abzunehmen. In einer solchen Ausführungsform kann ein geschützter Prozess auf dem Client-Computer ausgeführt werden, der für den Client den bzw. die Schlüssel bereitstellt, die zum Entschlüsseln des digitalen Inhalts unter entsprechenden Umständen erforderlich sind.
  • 6A und 6B stellen ein Ablaufdiagramm einer bevorzugten Ausführungsform eines Verfahrens 600 gemäß der Erfindung zum Lizenzieren von rechteverwaltetem digitalem Inhalt bereit. Gemäß der Erfindung kann eine anfordernde Entität eine Lizenzanforderung für einen oder mehrere potenzielle Lizenznehmer übermitteln. Die anfordernde Entität kann einer der potenziellen Lizenznehmer sein oder nicht. Ein potenzieller Lizenznehmer kann eine Person, eine Gruppe, eine Vorrichtung oder irgendeine andere solche Entität sein, die den Inhalt in irgendeiner Weise abnehmen kann. Das Verfahren 600 wird im Folgenden unter Bezugnahme auf eine Ausführungsform beschrieben, in der ein DRM-Prozessor die Lizenzanforderung verarbeitet, obwohl klar sein sollte, dass die Lizenzanforderungs-Verarbeitung auch auf dem Client durchgeführt und Lizenzen direkt von diesem ausgegeben werden könnten.
  • In Schritt 602 empfängt eine lizenzausgebende Entität, wie beispielsweise ein DRM-Server, zum Beispiel eine Lizenzanforderung. Vorzugsweise enthält eine Lizenzanforderung entweder ein Öffentliches Schlüssel-Zertifikat oder eine Identität für jeden von einem oder mehreren angeforderten Lizenznehmern. Das SOAP-Protokoll für eine bevorzugte Ausführungsform einer Lizenzanforderung lautet:
    Figure 00260001
  • In Schritt 604 wird die anfordernde Entität, (d.h. die Entität, welche die Lizenzanforderung vornimmt), authentifiziert. Gemäß einer Ausführungsform der Erfindung kann die lizenzausgebende Entität so konfiguriert werden, dass sie eine Protokoll- (z.B. Challenge-Response) Authentifizierung verwendet, um die Identität der anfordernden Entität zu bestimmen, oder sie kann so konfiguriert werden, dass die keine Authentifizierung der anfordernen Entität erfordert, (auch bekannt als "anonyme Authentifizierung zulässig"). Wenn eine Authentifizierung erforderlich ist, kann jeder Typ von Authentifizierungssche ma verwendet werden, (z.B. das oben genannte Challenge-Response-Schema, ein Benutzerkennungs- und Passwort-Schema, wie beispielsweise MICROSOFT.NET, PASSPORT, WINDOWS-Berechtigung, x509 usw.). Vorzugsweise wird die anonyme Authentifizierung gestattet sowie die Unterstützung jedes Protokoll-Authentifizierungsschemas, das von integrierten Datensystemen unterstützt wird. Das Ergebnis des Authentifizierungsschritts ist eine Identität, wie beispielsweise eine "anonyme" Identität (zur anonymen Authentifizierung), oder zum Beispiel eine persönliche Account-Identität. Wenn die Lizenzanforderung aus irgendeinem Grund nicht authentifiziert werden kann, wird ein Fehler zurückgegeben, und es wird keine Lizenz gewährt.
  • In Schritt 606 wird die authentifizierte Entität berechtigt – d.h. es wird bestimmt, ob es der in Schritt 608 authentifizierten Entität gestattet ist, eine Lizenz anzufordern, (entweder für sich selbst oder für eine andere Entität). Vorzugsweise speichert die lizenzausgebende Entität eine Liste von Entitäten, denen es gestattet (oder nicht gestattet) ist, eine Lizenz anzufordern. In einer bevorzugten Ausführungsform ist eine Identität in dieser Liste von Identitäten die Identität der Entität, welche die Anforderung vornimmt, und nicht die Identität der Entität, für die eine Lizenz angefordert wird, obwohl beides der Fall sein könnte. Zum Beispiel kann es einer persönlichen Account-Identität nicht gestattet sein, eine Lizenzanforderung direkt zu tätigen, aber ein verlässlicher Server-Prozess kann eine Lizenzanforderung für eine solche Entität vornehmen.
  • Gemäß der Erfindung kann die Lizenzanforderung entweder ein öffentliches Schlüssel-Zertifikat oder eine Identität für jeden potenziellen Lizenznehmer aufnehmen. Wenn eine Lizenz nur für einen Lizenznehmer angefordert wird, wird nur ein Zertifikat bzw. eine Identität genannt. Wenn eine Lizenz für eine Vielzahl von Lizenznehmern angefordert wird, kann ein Zertifikat oder eine Identität für jeden potenziellen Lizenznehmer genannt werden.
  • Vorzugsweise weist die lizenzausgebende Entität ein öffentliches Schlüssel-Zertifikat für jeden gültigen Lizenznehmer auf. Eine Anwendung 302 möchte aber eine Lizenz für einen vorgegebenen Benutzer generieren, doch kann die Anwendung 320 unter Umständen nicht auf das öffentliche Schlüssel-Zertifikat für diesen Benutzer zugreifen. In einer solchen Situation kann die Anwendung 302 die Identität des Benutzers in der Lizenzanforderung spezifizieren, und als Ergebnis dessen kann die lizenzausgebende Entität ei ne registrierte Zertifikats-Plug-In-Komponente aufrufen, die eine Suche in einem Verzeichnisdienst durchführt und das öffentliche Schlüssel-Zertifikat des entsprechenden Benutzers zurückgibt.
  • Wenn in Schritt 608 die ausgebende Entität bestimmt, dass das öffentliche Schlüssel-Zertifikat nicht in der Lizenzanforderung enthalten ist, verwendet die ausgebende Entität die spezifizierte Identität zum Durchführen einer Suche in einem Verzeichnisdienst oder einer Datenbank nach dem entsprechenden öffentlichen Schlüssel-Zertifikat. Wenn in Schritt 610 die ausgebende Entität bestimmt, dass das Zertifikat sich in dem Verzeichnis befindet, wird das Verzeichnis anschließend in Schritt 612 abgerufen. In einer bevorzugten Ausführungsform wird ein Zertifikats-Plug-In verwendet, um öffentliche Schlüssel-Zertifikate aus einem Verzeichnisdienst mittels eines Verzeichniszugangsprotokolls abzurufen. Wenn ein Zertifikat für einen vorgegebenen potenziellen Lizenznehmer weder in der Anforderung noch in dem Verzeichnis gefunden werden kann, generiert der Lizenz-Server keine Lizenz für diesen potenziellen Lizenznehmer, und in Schritt 614 wird ein Fehler an die anfordernde Entität zurückgegeben.
  • Angenommen, die lizenzausgebende Entität weist ein öffentliches Schlüssel-Zertifikat für wenigstens einen potenziellen Lizenznehmer auf, dann validiert die ausgebende Entität in Schritt 616 die Verlässlichkeit der Lizenznehmer-Zertifikate. Vorzugsweise wird die ausgebende Entität mit einem Satz von verlässlichen Ausgeber-Zertifikaten konfiguriert, und sie bestimmt, ob der Ausgeber des Lizenznehmer-Zertifikats sich in der Liste von verlässlichen Ausgebern befindet. Wenn die ausgebende Entität in Schritt 616 bestimmt, dass der Ausgeber des Lizenznehmer-Zertifikats sich nicht in der Liste von verlässlichen Ausgebern befindet, dann schlägt die Anforderung für diesen Lizenznehmer fehl, und in Schritt 614 wird ein Fehler generiert. Somit würde jeder potenzielle Lizenznehmer, dessen Zertifikat nicht von einem verlässlichen Ausgeber ausgegeben wird, keine Lizenz erhalten.
  • Zusätzlich führt die ausgebende Entität vorzugsweise eine Validierung der digitalen Signatur für alle Entitäten in der Zertifikatskette durch, von den verlässlichen Ausgeber-Zertifikaten bis hin zu den einzelnen öffentlichen Schlüssel-Zertifikaten von Lizenznehmern. Der Prozess des Validierens der digitalen Signaturen in einer Kette ist ein bekannter Algorithmus. Wenn das öffentliche Schlüssel-Zertifikat für einen vorgegebenen potenziellen Lizenznehmer nicht validiert wird, oder ein Zertifikat in der Kette nicht validiert wird, ist der potenzielle Lizenznehmer nicht verlässlich, und daher wird an den potenziellen Lizenznehmer keine Lizenz ausgegeben. Andernfalls kann in Schritt 618 eine Lizenz ausgegeben werden. Der Prozess wird bei Schritt 620 wiederholt, bis alle Entitäten, für die eine Lizenz angefordert worden ist, verarbeitet worden sind.
  • Wie in 6B gezeigt, fährt die lizenzausgebende Entität damit fort, die signierte Rechte-Kennzeichnung 308 zu validieren, die in der Lizenzanforderung empfangen worden ist. In einer bevorzugten Ausführungsform kann die ausgebende Entität ein Rechte-Kennzeichnungs-Plug-In und eine nachgestellte Datenbank verwenden, um auf dem Server eine Vorlage jeder Rechte-Kennzeichnung, die von der ausgebenden Entität signiert worden ist, zu speichern. Die Rechte-Kennzeichnungen werden von der in ihnen bei der Veröffentlichung platzierten GUID identifiziert. Zum Lizenz-Zeitpunkt (in Schritt 622) analysiert die ausgebende Entität die Rechte-Kennzeichnung, die in die Lizenzanforderung eingegeben ist, und ruft ihre GUID ab. Dann übergibt sie diese GUID an das Rechte-Kennzeichnungs-Plug-In, das eine Abfrage der Datenbank ausgibt, um eine Kopie der Vorlagen-Rechte-Kennzeichnung abzurufen. Die Vorlagen-Rechte-Kennzeichnung könnte aktueller sein als die Kopie der Rechte-Kennzeichnung, die in der Lizenzanforderung gesendet wurde, und sie wird die Rechte-Kennzeichnung sein, die in der Anforderung in den folgenden Schritten verwendet wird. Wenn keine Rechte-Kennzeichnung in der Datenbank auf Basis der GUID gefunden wird, prüft die ausgebende Entität ihre Richtlinie in Schritt 624, um zu bestimmen, ob sie eine Lizenz auf Basis der Rechte-Kennzeichnung in der Anforderung immer noch ausgeben darf. Wenn die Richtlinie dies nicht gestattet, schlägt die Lizenzanforderung in Schritt 626 fehl, und in Schritt 628 wird ein Fehler an die API 306 zurückgegeben.
  • In Schritt 630 validiert die lizenzausgebende Entität die Rechte-Kennzeichnung 308. Die digitale Signatur auf der Rechte-Kennzeichnung wird validiert, und wenn die lizenzausgebende Entität nicht der Ausgeber der Rechte-Kennzeichnung, (die Entität, die sie signiert hat), ist, dann bestimmt die lizenzausgebende Entität, ob der Ausgeber der Rechte-Kennzeichnung eine andere verlässliche Entität ist, (z.B. eine Entität, mit der die lizenzausgebende Entität Schlüssel-Material gemeinsam nutzen kann). Wenn die Rechte-Kennzeichnung nicht validiert wird oder nicht von einer verlässlichen Entität ausgegeben wird, dann schlägt die Lizenzanforderung in Schritt 626 fehl, und in Schritt 628 wird ein Fehler an die API 306 zurückgegeben.
  • Nachdem alle Validierungen durchgeführt worden sind, übersetzt die lizenzausgebende Entität die Rechte-Kennzeichnung 308 in eine Lizenz für jeden der genehmigten Lizenznehmer. In Schritt 632 generiert die lizenzausgebende Entität eine entsprechende Rechte-Beschreibung für die Lizenz, die an jeden Lizenznehmer ausgegeben werden soll. Für jede Lizenz wertet die ausgebende Entität die Identität, die in dem öffentlichen Schlüssel-Zertifikat dieses Lizenznehmers genannt ist, im Vergleich mit den Identitäten aus, die in der Rechte-Beschreibung in der Rechte-Kennzeichnung genannt sind. Die Rechte-Beschreibung weist jedem Recht bzw. jedem Satz von Rechten einen Satz von Identitäten zu, die das Recht bzw. den Satz von Rechten in einer Lizenz ausüben können. Für jedes Recht bzw. jeden Satz von Rechten, mit denen die Identität dieses Lizenznehmers verknüpft ist, wird dieses Recht bzw. der Satz von Rechten in eine neue Datenstruktur für die Lizenz kopiert. Die sich daraus ergebende Datenstruktur ist die Rechte-Beschreibung in der Lizenz für den bestimmten Lizenznehmer. Als Bestandteil dieses Prozesses wertet die lizenzausgebende Entität alle Vorbedingungen aus, die mit jedem Recht bzw. dem Satz von Rechten in der Rechte-Beschreibung der Rechte-Kennzeichnung verknüpft sein könnten. Zum Beispiel kann mit einem Recht eine Zeit-Vorbedingung verknüpft sein, welche die lizenzausgebende Entität einschränkt, eine Lizenz nach einem spezifizierten Zeitpunkt auszugeben. In diesem Fall müsste die ausgebende Entität den aktuellen Zeitpunkt prüfen, und falls dieser nach dem in der Vorbedingung spezifizierten Zeitpunkt liegt, wäre die ausgebende Entität nicht mehr in der Lage, das Recht an den Lizenznehmer auszugeben, selbst wenn die Identität dieses Lizenznehmers mit diesem Recht verknüpft wäre.
  • In Schritt 636 nimmt die ausgebende Entität (PU-DRM(DES1)) und (DES1(CK)) aus der Rechte-Kennzeichnung 308 und wendet (PR-DRM) an, um (CK) zu erhalten. Dann verschlüsselt die ausgebende Entität (CK) erneut unter Verwendung von (PU-ENTITY), dem öffentlichen Schlüssel-Zertifikat des Lizenznehmers, damit sich (PU-ENTITY(CK)) ergibt. In Schritt 638 verkettet die ausgebende Entität die generierte Rechte-Beschreibung mit (PU-ENTITY(CK)) und signiert die sich daraus ergebende Datenstruktur digital unter Verwendung von (PR-DRM). Diese signierte Datenstruktur ist die Lizenz für diesen bestimmten Lizenznehmer.
  • Wenn die ausgebende Entität in Schritt 640 bestimmt, dass keine weiteren Lizenzen für die bestimmte Anforderung zu generieren ist, hat sie keine oder mehrere Lizenzen generiert. Die generierten Lizenzen werden in Schritt 642 an die anfordernde Entität zurückgegeben, zusammen mit der Zertifikatkette, die mit diesen Lizenzen verknüpft ist, (z.B. das eigene öffentliche Schlüssel-Zertifikat des Servers sowie das Zertifikat, das als sein Zertifikat ausgegeben worden ist, und so weiter).
  • Das SOAP-Protokoll für eine bevorzugte Ausführungsform einer Lizenzantwort lautet wie folgt:
    Figure 00310001
  • In einer bevorzugten Ausführungsform eines Systems gemäß der Erfindung kann eine Vielzahl von Lizenzgeber-Schlüsseln verwendet werden. In einer solchen Ausführungsform kann der Inhalts-Schlüssel (CK), der verschlüsselt durch die Rechte-Kennzeichnung 308 und in die Lizenz weitergegeben wird, irgendwelche beliebigen Daten sein. Eine besondere nützliche Variante besteht dann, eine Vielzahl von getrennten, verschlüsselten Inhalts-Schlüsseln (CK) zu verwenden, die jeweils mit verschiedenen Rechten oder verschiedenen Principals in der Rechte-Beschreibung verknüpft sind. Zum Beispiel könnten die digitalen Versionen von Liedern in einer Sammlung von Liedern alle mit verschiedenen Schlüsseln (CK) verschlüsselt sein. Diese Schlüssel (CK) wären in der gleichen Rechte-Kennzeichnung enthalten, aber ein Principal kann das Recht haben, eines der Lieder zu spielen, (z.B. er hat eventuell nur Rechte, den einen Schlüssel in seiner Lizenz zu erhalten), während ein zweiter Principal eventuell Rechte haben könnte, alle Lieder zu spielen, (er hätte Rechte, alle Schlüssel in seiner Lizenz zu erhalten).
  • Vorzugsweise gestattet ein System gemäß der Erfindung das Veröffentlichen von Anwendungen/Benutzern, um Gruppen oder Klassen von Lizenznehmern in einer Rechte-Kennzeichnung 308 zu benennen. In einer solchen Ausführungsform wertet die lizenzausgebende Entität alle Gruppen/Klassen aus, die in der Rechte-Kennzeichnung benannt sind, um zu bestimmen, ob die aktuelle Lizenznehmer-Identität ein Mitglied dieser Gruppen/Klassen ist. Wenn eine Mitgliedschaft in einer benannten Gruppe/Klasse gefunden wird, könnte die ausgebende Entität die Rechte bzw. den Satz von Rechten, der mit der Gruppe/Klasse verknüpft ist, zu der Rechte-Beschreibungs-Datenstruktur hinzufügen, die für die Lizenz verwendet wird.
  • In einer bevorzugten Ausführungsform der Erfindung unterstützen die Veröffentlichungs- und Lizenz-Protokoll-Schnittstellen in dem DRM-Server Authentifizierung und Autorisierung der rufenden Anwendung bzw. des Benutzers, und die Administrationskonsole für den DRM-Server gestattet es einem Administrator, eine Zugangskontrollliste sowohl für die Lizenzierungs- als auch die Veröffentlichungs-Schnittstelle zu generieren. Dies ermöglicht es dem Kunden des Servers, eine Richtlinie anzuwenden, über die es Benutzern/Anwendungen gestattet wird, entweder zu veröffentlichen, Lizenzen auszugeben oder beides.
  • Modifizieren oder erneutes Veröffentlichen der signierten Rechte-Kennzeichnung 308
  • In einer Ausführungsform der vorliegenden Erfindung kann die SRL 308 "erneut veröffentlicht" werden, wenn dem Benutzer des Inhalts ausreichende Erlaubnis gewährt wurde, dies zu tun. Das heißt, der Benutzer kann, falls zulässig, Rechte-Daten in der SRL 308 ändern. Insbesondere sollte mit einer solchen Erlaubnis zum Ändern der Rechte-Daten sparsam und vernünftig umgegangen werden, vor allem insofern, als ein Benutzer mit der Erlaubnis zum Ändern der Rechte-Daten sich im Wesentlichen selbst umfangreiche Rechte in Bezug auf den verknüpften Inhalt erteilen kann. Es ist vorstellbar, dass ein solcher Benutzer sich sogar das Recht erteilen könnte, den Inhalt preiszugeben und denselben an die Außenwelt weiterzuleiten.
  • Hier wird die Erlaubnis zur Änderung dadurch gekennzeichnet, dass in die Rechte-Daten in der SRL 308 eine Angabe aufgenommen wird, dass ein bestimmter Benutzer bzw. eine Klasse von Benutzern tatsächlich die Rechte-Daten und die Rechte-Kennzeichnung 308 ändern oder "erneut veröffentlichen" kann. Wenn der DRM-Server 320 eine solche SRL 308 mit einer solchen Erlaubnis im Zusammenhang mit einer Anforderung einer Lizenz empfängt, nimmt der DRM-Server 320 in die angeforderte Lizenz für den Benutzer den symmetrischen Schlüssel (DES1) auf, der gemäß dem öffentlichen Schlüssel des Benutzers, (d.h. PU-ENTITY) verschlüsselt ist, damit sich (PU-ENTITY(DES1)) ergibt.
  • Somit, zum Bearbeiten der Rechte-Daten in der SRL 308 und unter folgender Bezugnahme auf 7, ruft der Benutzer (PU-ENTITY(DES1)) aus der Lizenz ab (Schritt 701), wendet (PR-ENTITY) an, damit sich (DES1) ergibt (Schritt 703), ruft (DES1(rightsdata)) aus der SRL 308 ab (Schritt 705) und wendet (DES1) darauf an, damit sich die Rechte-Daten ergeben (Schritt 707). Danach ändert der Benutzer die Rechte-Daten wunschgemäß (Schritt 709) und übergibt die geänderten Rechte-Daten an den DRM-Server 320 in der Weise, die in Verbindung mit 4 dargelegt wurde, um eine signierte Rechte-Kennzeichnung zu erhalten (Schritt 711). Natürlich ist die signierte Rechte-Kennzeichnung 308 hier tatsächlich eine erneut veröffentlichte SRL 308, und dementsprechend, sobald die SRL 308 empfangen wird (Schritt 713), entfernt der Benutzer die ursprüngliche SRL 308, die mit dem verknüpften Inhalt verkettet ist (Schritt 715) und verkettet dann die erneut veröffentlichte SRL 308 mit solchem Inhalt (Schritt 717).
  • Somit, und wie klar sein dürfte, ermöglicht es die erneute Veröffentlichung einer SRL 308 einem Benutzer, die Rechte-Daten in der SRL 308 zu aktualisieren, einschließlich Rechten, Bedingungen und Benutzern, ohne den damit verknüpften Inhalt ändern zu müssen. Insbesondere erfordert das erneute Veröffentlichen kein Verschlüsseln des damit verknüpften Inhalts mit einem neuen (CK). Das erneute Verschlüsseln erfordert des Weiteren kein Generieren einer vollständig neuen SRL, insbesondere insofern, als die ursprüngliche SRL 308 viele Elemente darin enthält, die in die neue SRL 308 kopiert werden können.
  • Selbst-Veröffentlichen der signierten Rechte-Kennzeichnung 308
  • In einer Ausführungsform der vorliegenden Erfindung kann die SRL 308 vom anfordernden Benutzer selbst signiert werden. Dementsprechend muss der Benutzer keinen Kontakt mit dem DRM-Server 320 aufnehmen, um eine SRL 308 für einen verknüpften Teil des Inhalts zu erhalten. Als Ergebnis dessen kann Selbst-Veröffentlichen auch als Offline-Veröffentlichen bezeichnet werden. In einer solchen Ausführungsform kann der Benutzer aufgefordert werden, mit einem DRM-Server 320 Kontakt aufzunehmen, um eine Lizenz auf Basis einer solchen selbst-veröffentlichten SRL 308 anzufordern. Es sollte auch klar sein, dass eine veröffentlichende Entität in die Lage versetzt werden kann, ihre eigenen Lizenzen auszugeben.
  • Insbesondere und unter folgender Bezugnahme auf 8 wird ein Benutzer in der Ausführungsform zunächst für Selbst-Veröffentlichung festgelegt (provisioned), indem er von einem DRM-Server 320 ein DRM-Zertifikat 810 mit einem öffentlichen Schlüssel (PU-CERT) und einem entsprechenden privaten Schlüssel (PR-CERT) empfängt, der gemäß dem öffentlichen Schlüssel des Benutzers (PU-ENTITY) verschlüsselt ist, damit sich (PU-ENTITY(PR-CERT)) ergibt. Das Zertifikat sollte durch den öffentlichen Schlüssel des DRM-Servers 320 (PR-DRM) signiert sein, so dass ein solcher DRM-Server 320 dasselbe verifizieren kann, wie im Folgenden ausführlicher erläutert. Wie klar sein dürfte, berechtigt das DRM-Zertifikat 810 den Benutzer zur Selbst-Veröffentlichung. Wie ebenfalls klar sein dürfte, ist das Schlüssel-Paar (PU-CERT, PR-CERT) von (PU-ENTITY, PR-ENTITY) getrennt und wird speziell für Selbst-Veröffentlichung verwendet.
  • PR-ENTITY) getrennt und wird speziell für Selbst-Veröffentlichung verwendet. Es ist zu beachten, dass auf das Schlüssel-Paar (PU-CERT, PR-CERT) verzichtet werden kann, in welchem Fall das DRM-Zertifikat 810 nur den öffentlichen Schlüssel des Benutzers (PU-ENTITY) enthält und durch den privaten Schlüssel des DRM-Servers 320 (PR-DRM) signiert ist, so dass ein solcher DRM-Server 320 dasselbe verifizieren kann.
  • Selbst-Veröffentlichung unterscheidet sich von Veröffentlichung, wie in 4 gezeigt, dadurch, dass der Benutzer im Wesentlichen den Platz des DRM-Servers 320 in Bezug auf Schritte einnimmt, die von diesem durchgeführt werden. Bezeichnenderweise signiert der Benutzer die übermittelte Rechte-Kennzeichnung, die (PU-DRM(DES1)) und (DES1(rightsdata)) enthält, mit (PR-CERT), wie aus dem DRM-Zertifikat 810 erhalten, (d.h. S (PR-CERT)), damit sich die signierte Rechte-Kennzeichnung (SRL) 308 ergibt. Wie klar sein sollte, erhält der Benutzer (PR-CERT) aus dem DRM-Zertifikat 810 durch Erhalten von (PU-ENTITY(PR-CERT)) aus einem solchen DRM-Zertifikat 810 und indem (PR-ENTITY) darauf angewendet wird. Es ist jedoch zu beachten, dass der Benutzer nicht verifizieren kann, dass der DRM-Server 320 die Rechte in der übermittelten Rechte-Kennzeichnung durchsetzen kann, insbesondere insofern, als der Benutzer nicht über (PR-DRM) zum Anwenden auf (PU-DRM(DES1)) verfügt. Demzufolge sollte der DRM-Server 320 selbst die Verifizierung zu dem Zeitpunkt durchführen, zu dem eine Lizenz auf Basis der selbst-veröffentlichten SRL 308 angefordert wird.
  • Sobald der Benutzer die SRL 308 selbst-veröffentlicht, verkettet der Benutzer eine solche selbst-veröffentlichte SRL 308 und das DRM-Zertifikat 810, das verwendet wird, um dieselbe zu erzeugen, mit dem Inhalt, und solcher Inhalt mit SRL 308 und DRM-Zertifikat 810 wird an einen anderen Benutzer verteilt. Danach fordert der andere Benutzer eine Lizenz für den Inhalt von dem DRM-Server 320 in der im Wesentlichen gleichen Weise an, wie in 6A und 6B gezeigt, und erhält sie. Hier übermittelt der lizenzanfordernde Benutzer dem DRM-Server 320 jedoch sowohl die selbst-veröffentlichte SRL 308 als auch das DRM-Zertifikat als mit dem Inhalt verkettet. Der DRM-Server 320 verifiziert dann S (PR-DRM) in dem DRM-Zertifikat 810 auf Basis des entsprechenden (PU-DRM) und erhält (PU-CERT) aus dem DRM-Zertifikat 810. Der DRM-Server 320 verifiziert dann S (PR-CERT) in der SRL 308 auf Basis des erhaltenen (PU-CERT) und fährt wie vorher fort. Es ist jedoch zu beachten, dass, da der Benutzer nicht verifiziert hat, dass der DRM-Server 320 die Rechte in der SRL 308 durchsetzen kann, wie oben dar gelegt wurde, der DRM-Server 320 selbst die Verifizierung zu diesem Zeitpunkt durchführen sollte.
  • Rechte-Vorlage
  • Wie oben dargelegt, erhält der Benutzer die Freiheit, die meisten irgendeiner Vielfalt oder Art von Rechte-Daten in einer Rechte-Kennzeichnung zu erstellen durch Definieren von Benutzern oder Klassen von Benutzern, Definieren von Rechten für jeden definierten Benutzer bzw. Klasse von Benutzern und anschließendes Definieren irgendwelcher Verwendungsbedingungen. Allerdings kann es erheblich mühselig und monoton sein, die Rechte-Daten wiederholt für mehrere Rechte-Kennzeichnungen zu definieren, insbesondere, wenn die gleichen Benutzer bzw. Klassen von Benutzern, Rechte und Bedingungen wiederholt für verschiedene Teile des Inhalts definiert werden. Eine solche Situation kann zum Beispiel in einer Unternehmens- oder Büro-Umgebung eintreten, in der ein Benutzer wiederholt verschiedene Teile von Inhalt veröffentlicht, die von einem bestimmten definierten Team von Benutzern gemeinsam genutzt werden sollen. In einer solchen Situation und in einer Ausführungsform der vorliegenden Erfindung wird dann eine Rechte-Vorlage erstellt, die der Benutzer wiederholt in Verbindung mit der Erstellung von Rechte-Kennzeichnungen verwenden kann, wobei die Rechte-Vorlage bereits einen vordefinierten Satz von Benutzern oder Klassen von Benutzern, vordefinierte Rechte für jeden definierten Benutzer bzw. Klasse von Benutzern und vordefinierte Verwendungsbedingungen enthält.
  • In einer Ausführungsform der vorliegenden Erfindung und unter folgender Bezugnahme auf 9 weist eine Rechte-Vorlage 900 im Wesentlichen die gleichen Rechte-Daten auf, wie sie in einer Rechte-Kennzeichnung vorhanden wären. Da (DES1) jedoch erst bekannt ist, wenn der Inhalt veröffentlicht ist, können die Rechte-Daten gemäß einem solchen (DES1) nicht verschlüsselt werden, wie dies in einer Rechte-Kennzeichnung der Fall ist. In einer Ausführungsform der vorliegenden Erfindung wird die Rechte-Vorlage 900 anschließend mit den nicht-verschlüsselten Rechte-Daten im Verlauf der Verschlüsselung der Rechte-Daten mit (DES1) in Schritt 416 von 4 zum Erzeugen von (DES1(rightsdata)) übermittelt. Natürlich werden die Rechte-Daten von der übermittelten Rechte-Vorlage 900 abgerufen, bevor sie so verschlüsselt werden.
  • Es kann der Fall sein, oder auch nicht, dass der DRM-Server 320 und dessen öffentlicher Schlüssel (PU-DRM) zu dem Zeitpunkt bekannt sind, zu dem die Rechte-Vorlage erstellt wird. Des Weiteren, selbst wenn sie bekannt sind, kann es sein, oder auch nicht, dass mehr als ein DRM-Server 320 vorhanden ist, von denen jeder seinen eigenen (PU-DRM) hat. Gleichwohl kann in dem Fall, in dem der DRM-Server 320 und dessen öffentlicher Schlüssel (PU-DRM) zu dem Zeitpunkt bekannt sind, zu dem die Rechte-Vorlage erstellt wird, und in dem Fall, in dem nur ein DRM-Server 320 verwendet wird, oder nur ein DRM-Server 320 in Verbindung mit der Rechte-Vorlage 900 verwendet werden soll, eine solche Rechte-Vorlage darin auch Informationen über den DRM-Server enthalten, der eine Rechte-Kennzeichnung signieren soll, die sich aus der Rechte-Vorlage 900 ergibt, einschließlich des öffentlichen Schlüssels (PU-DRM) davon. Obwohl ein solcher (PU-DRM) in der SRL 308 zum Verschlüsseln von (DES1) auftritt, damit sich (PU-DRM(DES1)) ergibt, ist wiederum klar, dass (DES1) erst bekannt ist, wenn der Inhalt veröffentlicht ist, und daher kann (PU-DRM) in der Rechte-Vorlage 900 einen solchen (DES1) nicht verschlüsseln, wie dies in einer Rechte-Kennzeichnung der Fall ist. In einer Ausführungsform der vorliegenden Erfindung wird die Rechte-Vorlage 900 dann mit dem unverschlüsselten (PU-DRM) im Verlauf der Verschlüsselung von (DES1) mit (PU-DRM) in Schritt 414 von 4 übermittelt, um (PU-DRM(DES1)) zu erzeugen. Natürlich wird (PU-DRM) aus der übermittelten Rechte-Vorlage 900 vor der Verwendung abgerufen.
  • Ebenfalls in dem vorgenannten Fall können andere Informationen über den DRM-Server, die in der Rechte-Vorlage enthalten sein können, Verweis-Informationen enthalten, wie beispielsweise eine URL zum Lokalisieren des DRM-Servers auf einem Netzwerk, und Rückverweis-Informationen, wenn die URL fehlschlägt. In jedem Fall kann die Rechte-Vorlage auch Informationen enthalten, welche unter anderem die Rechte-Vorlage 900 selbst beschreiben. Es ist zu beachten, dass die Rechte-Vorlage 900 auch Platz für Informationen bereitstellen kann, die für den Inhalt relevant sind, der veröffentlicht werden soll, wie beispielsweise Informationen, die in einer Rechte-Kennzeichnung erscheinen, die für den Inhalt und/oder die Verschlüsselungs-Schlüssel (CK) und (DES1) relevant ist, obwohl solcher Platz nicht notwendig ist, wenn eine Instantiierung der Rechte-Vorlage nicht tatsächlich in eine Rechte-Kennzeichnung umgewandelt wird.
  • Obwohl die Rechte-Vorlage 900, wie bisher offenbart, primär der Annehmlichkeit eines Benutzers dient, sollte auch klar sein, dass unter einigen Umständen ein Benutzer keine uneingeschränkte Freiheit haben sollte, Rechte-Daten in einer Rechte-Kennzeichnung zu definieren, und eine Rechte-Vorlage 900 verwendet werden kann, um den Umfang oder den Typ von Rechte-Kennzeichnungen einzuschränken, die erstellt werden können. Zum Beispiel, und insbesondere in dem Fall einer Unternehmens- oder Büro-Umgebung kann als Richtlinie vordefiniert werden, dass ein bestimmter Benutzer Inhalt immer nur für eine bestimmte Klasse von Benutzern veröffentlichen soll, oder dass der Benutzer Inhalt niemals für eine bestimmte Klasse von Benutzern veröffentlichen soll. In jedem Fall, und in einer Ausführungsform der vorliegenden Erfindung, ist eine solche Richtlinie als vordefinierte Rechte-Daten in einer oder mehreren Rechte-Vorlagen 900 eingebettet, und der Benutzer kann darauf beschränkt werden, solche Rechte-Vorlagen zum Erstellen von Rechte-Kennzeichnungen zu verwenden, wenn Inhalt veröffentlicht wird. Insbesondere kann eine Rechte-Vorlage oder eine Gruppe von Rechte-Vorlagen, die einem Benutzer zur Verfügung gestellt wird, um eine Veröffentlichungs-Richtlinie für den Benutzer zu spezifizieren, jeden bestimmten Typ von Veröffentlichungs-Richtlinie spezifizieren, ohne von dem Gedanken und Umfang der vorliegenden Erfindung abzuweichen.
  • Zum Spezifizieren einer Rechte-Vorlage 900 für einen eingeschränkten Benutzer oder dergleichen und unter folgender Bezugnahme auf 10 erstellt ein Administrator oder dergleichen tatsächlich die Rechte-Vorlage 900 durch Definieren der vordefinierten Rechte-Daten (Schritt 1001) und Definieren irgendwelcher anderen Daten, die notwendig und sachdienlich sein können, wie beispielsweise Informationen, die für einen bestimmten DRM-Server 320 (Schritt 1003) relevant sein können. Bezeichnenderweise muss die Rechte-Vorlage 900, um die Rechte-Vorlage für die Verwendung durch den eingeschränkten Benutzer oder dergleichen auszuführen, offiziell gemacht werden. Das heißt, die Rechte-Vorlage 900 muss als eine Rechte-Vorlage erkennbar sein, die der eingeschränkte Benutzer oder dergleichen verwenden kann. Dementsprechend wird in einer Ausführungsform der vorliegenden Erfindung die Rechte-Vorlage, wie sie durch den Administrator oder dergleichen erstellt worden ist, dem DRM-Server 320 zum Signieren übermittelt, wobei ein solches Signieren die Rechte-Vorlage offiziell macht (Schritt 1005).
  • Es ist zu beachten, dass der signierende DRM-Server 320 der DRM-Server 320 ist, dessen Informationen sich in der Rechte-Vorlage 900 befinden, sofern solche Informationen tatsächlich in der Rechte-Vorlage 900 vorhanden sind. Es ist auch zu beachten, dass der DRM-Server 320 die Rechte-Vorlage nur nach Durchführung aller notwendigen Prüfungen signieren kann oder sie ohne irgendwelchen Prüfungen signieren kann. Schließlich ist zu beachten, dass die Vorlagen-Signatur S (PR-DRM-T), (wobei das -T bedeutet, dass die Signatur für die ORT 900 ist), von dem DRM-Server wenigstens auf den vordefinierten Rechte-Daten in der Rechte-Vorlage 900 basieren sollte, aber auch auf anderen Informationen basieren kann, ohne von dem Gedanken und Umfang der vorliegenden Erfindung abzuweichen. Wie im Folgenden dargelegt, wird die Signatur S (PR-DRM-T) in eine Rechte-Kennzeichnung integriert und in Verbindung mit dieser verifiziert, und dementsprechend sollte, worauf auch immer die Signatur basiert, ebenfalls in die Rechte-Kennzeichnung in einer unveränderten Form integriert werden.
  • Nachdem der DRM-Server 320 die Rechte-Vorlage 900 signiert hat und dieselbe an den Administrator oder dergleichen zurückgegeben hat, empfängt der Administrator die signierte und jetzt offizielle Rechte-Vorlage 900 mit S (PR-DRM-T) (Schritt 1007) und leitet die offizielle Rechte-Vorlage (ORT) 900 an einen oder mehrere Benutzer zu ihrer Verwendung weiter (Schritt 1009). Dementsprechend ruft für einen Benutzer, der Inhalt auf Basis einer ORT 900 veröffentlichen soll, der Benutzer die ORT 900 ab (Schritt 1011) und erstellt eine Rechte-Kennzeichnung auf Basis der ORT 900 (Schritt 1013), indem alle notwendigen Informationen bereitgestellt werden, wie beispielsweise Informationen über den Inhalt, zweckdienliche Schlüssel-Informationen, die Rechte-Daten aus der mit (DES1) verschlüsselten ORT 900, damit sich (DES1(rightsdata)) ergibt, und andere Informationen aus der ORT 900. Bezeichnenderweise nimmt der Benutzer mit der Rechte-Kennzeichnung auch die Signatur S (PR-DRM-T) aus der ORT 900 auf.
  • Danach, und wie vorher, übermittelt der Benutzer die Rechte-Kennzeichnung dem DRM-Server 320 zum Signieren (Schritt 1015). Hier signiert der DRM-Server 320 die übermittelte Rechte-Kennzeichnung jedoch erst, wenn S (PR-DRM-T) verifiziert ist. Das heißt, der DRM-Server 320 setzt durch, dass der Benutzer die übermittelte Rechte-Kennzeichnung auf eine ORT 900 basieren muss, indem er es ablehnt, die übermittelte Rechte-Kennzeichnung zu signieren, wenn eine solche übermittelte Rechte-Kennzeichnung keine Signatur S (PR-DRM-T) von einer ORT 900 enthält. Insbesondere ruft der DRM-Server 320 eine solche S (PR-DRM-T) und welche Informationen auch immer, auf denen eine solche Signatur basiert, aus der übermittelten Rechte-Kennzeichnung ab und verifiziert eine solche Signatur dann auf Basis des (PU-DRM). Es ist zu beachten, dass die Rechte-Daten in der übermittelten Rechte-Kennzeichnung gemäß (DES1) verschlüsselt sind, (d.h. (DES1(rightsdata))). Dementsprechend muss der DRM-Server 320 zuerst (DES1) erhalten und (DES1(rightsdata)) damit entschlüsseln, wie oben in Verbindung mit 7 dargelegt, um in der Lage zu sein, die Signatur auf Basis der Rechte-Daten in der übermittelten Rechte-Kennzeichnung zu verifizieren.
  • Sobald sie verifiziert ist, signiert der DRM-Server 320 die übermittelte Rechte-Kennzeichnung mit S (PR-DR;-L), um wie vorher eine SRL 308 zu erzeugen. (wobei das -L bedeutet, dass die Signatur für die SRL 308 ist). Hier kann S (PR-DRM-L) die S (PR-DRM-T) ersetzen oder zusätzlich zu einer solchen S (PR-DRM-T) vorhanden sein. Falls zusätzlich, kann S (PR-DRM-L) teilweise auf S (PR-DRM-T) basieren. Es ist zu beachten, dass (PR-DRM) verwendet werden kann, um sowohl S (PR-DRM-T) als auch S (PR-DRM-L) zu erzeugen, oder dass verschiedene (PR-DRM)s für jede S (PR-DRM-T) und S (PR-DRM-L) verwendet werden können. Nachdem der DRM-Server 320 die Rechte-Kennzeichnung signiert und die SRL 308 an den Benutzer zurückgegeben hat, empfängt der Benutzer die SRL 308 mit S (PR-DRM-L) (Schritt 1017) und fährt damit fort, dieselbe wie vorher mit dem Inhalt zu verketten, der veröffentlicht wird.
  • Wenn die Signatur S (PR-DRM-T) der ORT 900 wenigstens teilweise auf den vordefinierten Rechte-Daten in der ORT 900 basiert, dann können solche Rechte-Daten, wie sie in der SRL 308 in (DES1(rightsdata)) erscheinen, weder modifiziert noch geändert werden. Andernfalls wird S (PR-DRM-T) nicht verifiziert. Allerdings können die Rechte-Daten in der ORT 900 in einer Ausführungsform der vorliegenden Erfindung innerhalb vorgeschriebener Regeln variieren, die auch in der ORT 900 enthalten sind. Zum Beispiel können die Regeln spezifizieren, dass einer von zwei Sätzen von Rechte-Daten in eine SRL 308 aufgenommen werden soll, oder sie können eine Auswahl aus einem Satz von Alternativen gestatten. Wie klar sein dürfte, können die Regeln jeder bestimmte Regel-Satz sein, der in jeder zweckdienlichen Syntax dargelegt ist, ohne vom Gedanken und Umfang der vorliegenden Erfindung abzuweichen. Hier werden die Regeln von einem entsprechenden Regel-Interpretierer für den Benutzer zu dem Zeitpunkt interpretiert, zu dem die Rechte-Kennzeichnung erstellt wird. Obwohl die Rechte-Daten variieren können, variieren die Regeln nicht gleichermaßen, und dementsprechend basiert die Vorlagen-Signatur S (PR-DRM-T) für die ORT 900 wenigstens teilweise auf den Regeln und nicht auf den Rechte-Daten selbst. Als Ergebnis dessen müssen die in der ORT 900 enthaltenen Regeln auch in der SRL 308 enthalten sein.
  • In einer Ausführungsform der vorliegenden Erfindung sind die vordefinierten Rechte-Daten in der ORT 900 teilweise festgelegt und unveränderlich und teilweise veränderlich und regelgesteuert, wie oben dargelegt. Hier basiert die Vorlagen-Signatur S (PR-DRM-T) für die ORT 900 wenigstens teilweise auf dem festgelegten Teil der Regeln und auf den Regeln für den veränderlichen Teil der Rechte-Daten.
  • Wie klar sein dürfte, kann eine ORT 900, wenn sie im Besitz eines Benutzers ist, veralten oder ablaufen. Das heißt, die ORT 900 kann durch die Rechte-Daten darin eine Richtlinie wiedergeben, die veraltet, irrelevant oder einfach nicht mehr anwendbar ist. Zum Beispiel kann es sein, dass einer oder mehrere Benutzer oder Klassen von Benutzern, die in den Rechte-Daten der ORT 900 spezifiziert sind, nicht mehr in der Richtlinien-Umgebung vorhanden sind, oder dass ein bestimmter Benutzer oder eine Klasse von Benutzern, die in den Rechte-Daten der ORT 900 spezifiziert sind, nicht mehr die gleichen Rechte innerhalb der Richtlinien-Umgebung besitzen. In einem solchen Fall kann es sein, dass der Administrator eine überarbeitete ORT 900 ausgegeben hat, der Benutzer aber immer noch eine vorherige, abgelaufene Version der ORT 900 verwendet.
  • In einer solchen Situation und in einer Ausführungsform der vorliegenden Erfindung behält der DRM-Server 320 nach dem Signieren einer übermittelten Rechte-Vorlage 900 zum Erstellen einer ORT 900 dann eine Kopie der ORT 900 zurück, jede ORT 900 weist eindeutige Identifizierungs-Daten auf, und jede Rechte-Kennzeichnung, die auf Basis einer ORT 900 erstellt worden ist, enthält darin die Identifizierungs-Daten einer solchen ORT 900. Dementsprechend findet der DRM-Server nach Empfang einer übermittelten Rechte-Kennzeichnung, wie beispielsweise in Verbindung mit 10, die Identifizierung-Daten der OR T900 in der Rechte-Kennzeichnung, ruft die aktuelle Kopie einer solchen ORT 900 auf Basis der gefundenen Identifizierungs-Daten ab, entfernt die Rechte-Daten aus der übermittelten Rechte-Kennzeichnung, fügt die Rechte-Daten aus der abgerufenen ORT 900 ein und signiert dann die Rechte-Kennzeichnung, die wenigstens teilweise auf den eingefügten Rechte-Daten basiert. Natürlich führt der DRM-Server auch alle Verschlüsselungs- und Entschlüsselungs-Schritte durch, die notwendig sind und in dem dargelegten Prozess anfallen, einschließlich Entschlüsseln und erneutes Verschlüsseln von (DES1(rightsdata)). Es ist zu beachten, dass, wenn der DRM-Server so ausgelegt ist, dass er die Rechte-Daten in einer übermittelten Rechte-Kennzeichnung ersetzt, eine solche Rechte-Kennzeichnung und die ORT 900, aus welcher eine solche Rechte-Kennzeichnung erstellt wird, die Rechte-Daten nicht unbedingt darin enthalten muss. Stattdessen müssen die Rechte-Daten nur auf dem DRM-Server 320 resident sein. Allerdings könnte das Aufnehmen der Rechte-Daten in die Rechte-Kennzeichnung und die ORT 900, aus der eine solche Rechte-Kennzeichnung erstellt wird, für den Benutzer wertvoll und daher in einigen Situationen von Nutzen sein.
  • Plug-in-Architektur für DRM-Pipelines.
  • Ein typischer DRM-Server und eine Dienst-Plattform gemäß der Erfindung können einen oder mehrere DRM-Dienste höherer Ebene umfassen, wie beispielsweise Lizenzierung, Veröffentlichung, Registrierung, Aktivierung, Zertifizierung, Föderierung und dergleichen. Gemäß der Erfindung können die entsprechenden Software-Systeme, die jeden dieser Dienst bereitstellen, als "Pipelines" bereitgestellt werden, die modular aufgebaut sind, so dass sie individuell in jeder Kombination installiert werden können und dann verwaltet, aktiviert oder deaktiviert, authentifiziert werden können oder ihre Authentifizierung aufgehoben werden kann usw. Jeder der DRM-Dienste kann als eine Pipeline bezeichnet werden wegen der Art, wie sie Anforderungen von Anfang bis Ende mit verschiedenen Verarbeitungsstufen während des Verlaufs verarbeiten.
  • Die Pipelines arbeiten zusammen, um eine umfangreiche DRM-Plattform zu bieten, und jede stellt für sich einen wichtigen DRM-Dienst bereit. Zusätzlich werden bestimmte Komponenten der DRM-Plattform, welche die Geschäftslogik einkapseln, (was für einen erfolgreichen DRM-Server und eine erfolgreiche Dienst-Implementierung wichtig sein kann), über die DRM-Suite übergreifend genutzt und sind von Dritten "steckbar". Eine solche Implementierung weist die Flexibilität auf, dass sowohl Dienst-Lösungen schnell entwickelt werden können als auch Kunden die Möglichkeit geboten werden kann, Software für ihre DRM-Bedürfnisse spezifisch zu gestalten.
  • Vorzugsweise werden der Microsoft Internet Information Server ("IIS") und das ASP.net-Modell für Schreibdienste verwendet. IIS ist dafür ausgelegt, Sicherheit für Unterneh mens-Intranets und das Internet zu bieten. Außerdem stellt IIS eine Implementierung des Secure Sockets Layer- (SSL) Protokolls für sichere Kommunikation und Authentifizierung mit X.509-Zertifikaten, RSA Public Key Cipher und eine umfangreiche Bandbreite von zusätzlichen Sicherheitsmerkmalen bereit. ASP.net ist ein Programmier-Rahmen, der die schnelle Entwicklung von leistungsstarken Web-Anwendungen und Diensten ermöglicht. Es ist Teil der .NET-Plattform von Microsoft und ist eine leichte, skalierbare Möglichkeit zum Aufbauen, Einsetzen und Ausführen von Web-Anwendungen, die jeden Browser bzw. jede Vorrichtung ansteuern können.
  • In einer bevorzugten Ausführungsform der Erfindung wird eine HTTP-Anforderung mit starrer Typenhandhabung (strong typing) an einen Web-Server gesendet, der IIS, ASP.net und einen oder mehrere DRM-Dienste ausführt. Die HTTP-Anforderung wird dann von IIS und ASP.net vorverarbeitet und zu dem entsprechenden DRM-Dienst geleitet. Sobald die Anforderung an dem DRM-Dienstcode ankommt, gelangt sie in eine der Verarbeitungs-Pipelines. Jede Pipeline wird auf der höchsten Ebene durch eine ASP.net-Datei (eine ASMX-Datei) definiert, die selbst den Eingangspunkt des Diensts und den Code, der Anforderungen an diesen Eingangspunkt bearbeitet, beschreibt. Für jede Pipeline befindet sich der DRM-Dienstcode hinter dem Eingangspunkt, und die Kombination aus der ASMX-Datei und dem Code dahinter bilden die Pipeline.
  • Der Code hinter dem Eingangspunkt ist modular und kann Code gemeinsam mit anderen Pipelines nutzen. Er kann umfassen: 1) anforderungsspezifischen Startcode, der die Anforderungsparameter vorverarbeitet, wobei jede erforderliche Normalisierung der Daten durchgeführt wird, und allgemeine Pipeline-Anforderungsstart-Operationen durchgeführt werden; 2) Code, der Aktionen durchführt, die für die Verarbeitung der Anforderung spezifisch sind, (und für die Pipeline spezifisch sind); 3) Code, der gemeinsam genutzte interne Komponenten aufruft, (die Pipeline-übergreifend gemeinsam genutzt werden und nur für die DRM-Plattform zugänglich sind), und gemeinsam genutzte öffentliche Komponenten, (die Pipeline-übergreifend gemeinsam genutzt werden und von Dritten steckbar sind); und 4) Anforderungs-Abschlusscode, der die Ergebnisse aufnimmt, die von der Pipeline generiert werden, und eine für die Anforderung geeignete Antwort formuliert.
  • Als ein Ergebnis dieser Pipeline-Auslegung können DRM-Dienste leicht in jeder Permutation eingesetzt werden. Zum Beispiel können Lizenzierungs- und Föderations-Dienste in einer bestimmten Installation installiert werden, und die Veröffentlichungs- und Informations-Dienste können deaktiviert werden. In einem anderen Beispiel kann nur die Lizenzierung oder nur Veröffentlichungs-Dienste mit der Durchsetzung strikter Authentifizierungsanforderungen an den Veröffentlichungs-Dienst installiert werden, indem sie auf die Eingangspunkt-ASMX-Datei angewendet werden. Eine solche Pipeline-Auslegung berücksichtigt auch die effiziente Einführung neuer künftiger Dienste, ohne die bestehenden DRM-Dienste zu beeinträchtigen, jedoch unter Nutzung von bestehender Infrastruktur.
  • Innerhalb jeder Pipeline wird eine Reihe von Pipeline-Stufen ausgeführt, von denen einige nur interne DRM-Komponenten aufrufen und einige von ihnen öffentliche, steckbare DRM-Komponenten ("Plug-Ins") aufrufen. Als ein Ergebnis dieser DRM-Plug-In-Auslegung können Dritte kundenspezifische Komponenten schreiben oder erhalten, die einen Teil des gesamten DRM-Pipeline-Prozesses durchführen. Vorzugsweise werden Maßnahmen ergriffen, um sicherzustellen, dass jeder solche Dritte ein verlässlicher Dritter ist, bevor die Plug-Ins des Dritten in den Pipeline-Rahmen integriert werden. Standardmäßige öffentliche Techniken, die vom .NET-Rahmen bereitgestellt werden, können zur Sicherstellung dessen verwendet werden, dass das Plug-In von Dritten verlässlich ist. Plug-Ins von Dritten können dynamisch installiert werden. Solche Plug-Ins von Dritten können zum Beispiel in den Konfigurationsdaten des DRM-Systems identifiziert und zur Laufzeit geladen werden. Eine solche Auslegung sorgt für einfache Verwendung und Administration des DRM-Systems.
  • Im Allgemeinen führt ein Plug-In eine diskrete Aufgabe durch, wie beispielsweise Abrufen einer Rechte-Kennzeichnung aus dem Speicher, Generieren eines Distributionspunkt-XML-Knotens auf Basis von Konfigurationsdaten, Durchführen von Operationen mit privaten Schlüsseln unter Verwendung von kundenspezifischer Verschlüsselungs-/Entschlüsselungs-Hardware usw. Gewisse spezialisierte Plug-Ins werden hierin als "Erweiterungen" bezeichnet. Erweiterungen werden aufgerufen, wenn allgemeine Ereignisse eintreten, wie beispielsweise, wann es Zeit ist, eine Anforderung zu genehmigen, wenn eine Lizenz generiert worden ist usw. Plug-Ins sind in der Pipeline-Verarbeitung aktiver, indem sie eine wesentliche, erforderliche Aufgabe in der Pipeline durchführen.
  • Erweiterungen sind passiver, indem sie auf Ereignisse reagieren und eventuell Arbeit durchführen oder möglicherweise nichts tun.
  • 11 stellt eine generische Pipeline 1100 gemäß der Erfindung dar. Die Pipeline 1100 enthält ein Dienstprogramm 1102, das einen Verarbeitungsrahmen zum Durchführen eines digitalen Rechteverwaltungs-Diensts bereitstellt, wie beispielsweise Veröffentlichung, Lizenzierung usw. Die Pipeline 1100 enthält eine Vielzahl von Plug-In-Komponenten 1120a, 1120b. Jede Plug-In-Komponente 1120a, 1120b führt eine entsprechende Aufgabe durch, die mit dem digitalen Rechteverwaltungs-Dienst verknüpft ist. Die Typen von Aufgaben, die eine Plug-In-Komponente in einer digitalen Rechteverwaltungs-Pipeline durchführen kann, werden ausführlich durchgehend in dieser Spezifikation beschrieben. Jede der Vielzahl von Plug-In-Komponenten 1120a, 1120b ist in den Verarbeitungsrahmen 1102 gemäß einem entsprechenden vordefinierten Satz von Schnittstellen-Regeln integriert. Typischerweise werden diese Schnittstellen-Regeln zwischen dem Anbieter des Dienstprogramm-Verarbeitungsrahmens und dem Anbieter des Plug-In verhandelt, (welcher, wie oben beschrieben, die gleiche Entität sein kann oder nicht). Eine Pipeline 1100 kann auch eine oder mehrere Erweiterungen 1130 enthalten.
  • An einem Punkt 1140 entlang der Pipeline sind alle die Aufgaben abgeschlossen, die notwendig sind, um den Dienst durchzuführen, (z.B. die Anforderung verarbeiten). Nach dem Punkt 1140 können asynchrone Komponenten in den Verarbeitungsrahmen 1110 integriert werden. Primär können asynchrone Komponenten für Aufgaben verwendet werden, die für die Durchführung des Diensts nicht notwendig sind. Somit stellen die asynchronen Komponenten ein bandexternes Erweiterbarkeitsmodell für Aufgaben bereit, die während der Verarbeitung der Pipeline nicht durchgeführt werden müssen. Da sie verarbeitet werden, nachdem die erforderlichen Dienst-Aufgaben abgeschlossen worden sind, behindern asynchrone Komponenten die Verarbeitung einer Anforderung nicht. Vorzugsweise besitzen asynchrone Komponenten kein Vetorecht. Jede Anzahl von asynchronen Komponenten kann parallel verarbeitet werden.
  • Wegen dieser offenen Plattform ist es wünschenswert, Maßnahmen zum Schutz von Daten und Schnittstellen zu ergreifen. Zum Beispiel könnte es erforderlich sein, dass die Plug-Ins, die innerhalb der Umgebung der Pipeline arbeiten, verlässlich sind. Dies kann auf vielerlei Arten erfolgen. Zum Beispiel können starre Benennung und nachweisbasier te Code-Techniken mit verwalteter Sicherheit (evidence-based security managed code techniques) zwischen dem Dienstprogramm und seinen Plug-In-Komponenten verwendet werden, um die Komponente zu validieren und sicherzustellen, dass das Plug-In für das Dienst-Programm verlässlich ist, und dass das Dienst-Programm für das Plug-In verlässlich ist. Des Weiteren können Daten, die das Dienst-Programm für die Plug-Ins bereitstellt, und Daten, die das Dienst-Programm von diesen zurück akzeptiert, sorgfältig kontrolliert werden. Zum Beispiel wird in einer bevorzugten Ausführungsform den Plug-Ins ein direkter Zugang zu den Datenstrukturen des Dienst-Programms verweigert. Stattdessen werden in die Plug-Ins eingehende und von diesen ausgehende Daten repliziert.
  • 12 stellt eine bevorzugte Ausführungsform einer Veröffentlichungs-Pipeline 1200 gemäß der Erfindung dar. Wie gezeigt, kann die Veröffentlichungs-Pipeline 1200 ein Dienst-Programm enthalten, wie beispielsweise ein Veröffentlichungs-Anforderungsprogramm, das einen Verarbeitungsrahmen zum Verarbeiten einer Anforderung bereitstellt, rechteverwalteten digitalen Inhalt zu veröffentlichen. Die Veröffentlichungs-Pipeline 1200 kann auch eine Vielzahl von Plug-In-Komponenten enthalten, von denen jede eine entsprechende Aufgabe durchführt, die mit der Verarbeitung der Veröffentlichungs-Anforderung verknüpft ist. Jede der Vielzahl von Plug-In-Komponenten ist in den Verarbeitungsrahmen gemäß einem entsprechenden vordefinierten Satz von Schnittstellen-Regeln integriert. Jede der beispielhaften Plug-In-Komponenten wird im Folgenden im Detail beschrieben.
  • Ein "Authentifizierungs"-Plug-In 1220a kann bereitgestellt werden, um die Identität der Entität zu bestimmen, welche die Lizenz anfordert. Somit kann der Anbieter des Authentifizierungs-Plug-In 1220a kontrollieren, ob eine Authentifizierung erforderlich ist, und falls ja, kann der Anbieter den Typ der Authentifizierung, das Authentifizierungsschema, ob eine anonyme Authentifizierung zulässig ist, und den Fehlertyp kontrollieren, der gemeldet wird, wenn die Anforderung aus irgendeinem Grund nicht authentifiziert werden kann.
  • Ein "Authentifizierungs"-Plug-In 1220b kann bereitgestellt werden, um die authentifizierte Identität zu genehmigen. Im Allgemeinen kann ein Authentifizierungs-Plug-In verwendet werden, um zu bestimmen, ob es einer anfordernden Entität gestattet ist, das auszu führen, was immer die anfordernde Entität angefordert hat. Zum Beispiel kann ein Authentifizierungs-Plug-In in einer Veröffentlichungs-Pipeline verwendet werden, um zu bestimmen, ob es der authentifizierten Identität gestattet ist, rechteverwalteten Inhalt unter Verwendung des DRM-Systems zu veröffentlichen. Somit kann der Anbieter des Authentifizierungs-Plug-In kontrollieren, welche Entitäten welche Aktionen anfordern können, welche Liste von Entitäten gespeichert ist, wie und wo eine solche Liste gespeichert ist, wie genehmigte Entitäten in die Liste und aus der Liste gelangen und dergleichen.
  • Eine "Rechte-Kennzeichnungs-Speicher"-Plug-In 1220c kann verwendet werden, um eine Haupt-Rechte-Kennzeichnung zu speichern, die in Übereinstimmung mit der Erfindung generiert worden ist. Wie vorher ausführlich beschrieben, kann eine Haupt-Rechte-Kennzeichnung mit einer Kennung verknüpft sein, wie beispielsweise einer GUID. Zum Lizenzierungs-Zeitpunkt ruft der Server eine Kopie der Haupt-Rechte-Kennzeichnung aus dem Speicher auf Basis der GUID ab. Der Anbieter eines "Rechte-Kennzeichnungs-Speicher"-Plug-In 1220c kann die Speicherstellen, an denen die Haupt-Rechte-Kennzeichnung gespeichert werden soll, und die zum Speichern der Rechte-Kennzeichnung verwendeten Speichertechniken definieren.
  • Ein "Privat-Schlüssel"-Plug-In 1220d kann verwendet werden, um den privaten Haupt-Schlüssel zu schützen. Somit kann der Anbieter eines Privat-Schlüssel-Plug-In 1220d den Schutzalgorithmus für den privaten Schlüssel spezifizieren, den das System verwenden wird. Eine Anzahl von Schutzalgorithmen für den privaten Schlüssel, die zur Verwendung in einem DRM-System gemäß der Erfindung geeignet sind, sind in der U.S.-Patentanmeldung Nr. (Aktenzeichen MSFT-1334) beschrieben.
  • Am Abschlusspunkt 1240, wie in 12 gezeigt, wird die Veröffentlichungs-Anforderung abgeschlossen, und die asynchronen Komponenten 1250 beginnen, ihre jeweiligen Aufgaben durchzuführen. Wie gezeigt, kann die Veröffentlichungs-Pipeline 1200 auch eine "Property Bag"-Komponente 1250a, eine "Protokollierungs"-Anwendung 1250b und ein Zertifikatmaschinen-Plug-In 1250c enthalten. Es sollte jedoch klar sein, dass eine Veröffentlichungs-Pipeline gemäß der Erfindung jede Anzahl von Plug-Ins enthalten kann, einschließlich jeder Anzahl von Erweiterungen oder asynchronen Komponenten.
  • Ein "Property Bag" 1250a ist eine Ressource, die Plug-Ins während der Ausführungszeit zur Verfügung steht und Anforderungskontext-Informationen aufweist. Der Anbieter der Property Bag kann damit kontrollieren, welche Daten in die Property Bag eingegeben werden, für wen die Property Bag verfügbar gemacht wird, und unter welchen Umständen die Property Bag verfügbar gemacht werden kann.
  • Eine "Protokollierungs"-Anwendung 1250b kann verwendet werden, um Daten zu archivieren, die mit der Veröffentlichungs-Anforderung in Verbindung stehen. Der Anbieter der Protokollierungs-Komponente kann damit kontrollieren, welche Daten archiviert werden, wo die Daten archiviert werden, und in welchem Format die Daten archiviert werden.
  • Ein "Zertifikatmaschinen"-Plug-In 1250c ist ein asynchrones Plug-In, das Zertifikate, (z.B. ein Lizenz-Zertifikat), schreibt. Die Zertifikatmaschine weiß, wie die Grammatik der verwendeten Rechte-Sprache, (z.B. XrML), zu handhaben ist. Der Anbieter des Zertifikatmaschinen-Plug-In kann damit das Format und den Inhalt der Zertifikate, die verwendete Rechte-Sprache usw. kontrollieren.
  • 13 stellt eine bevorzugte Ausführungsform einer Lizenzierungs-Pipeline 1300 gemäß der Erfindung dar. Wie gezeigt, kann die Lizenzierungs-Pipeline 1300 ein Dienst-Programm, wie beispielsweise ein Lizenz-Anforderungsprogramm umfassen, das einen Verarbeitungsrahmen zum Verarbeiten einer Lizenzanforderung bereitstellt. Die Lizenzierungs-Pipeline 1300 kann auch eine Vielzahl von Plug-In-Komponenten enthalten, von denen jede eine entsprechende Aufgabe durchführt, die mit der Verarbeitung der Lizenzanforderung verknüpft ist. Jede der Vielzahl von Plug-In-Komponenten ist in den Verarbeitungsrahmen des Lizenzierungs-Anforderungsprogramms gemäß einem entsprechenden vordefinierten Satz von Schnittstellen-Regeln integriert. Jede der beispielhaften Plug-In-Komponenten wird im Folgenden im Detail beschrieben. Es ist zu beachten, dass in einer bevorzugten Ausführungsform eines DRM-Systems gemäß der Erfindung Plug-Ins zwischen verschiedenen Pipelines/Web-Diensten gemeinsam genutzt werden können, und dass viele der Plug-Ins, die in einer Lizenzierungs-Pipeline enthalten sein können, mit denjenigen identisch sein können, die in der oben beschriebenen Veröffentlichungs-Pipeline enthalten sind.
  • Ein "Authentifizierungs"-Plug-In 1320a, wie oben in Verbindung mit der Veröffentlichungs-Pipeline beschreiben, kann bereitgestellt werden, um die Identität der Entität zu bestimmen, welche die Lizenz anfordert.
  • Ein "Genehmigungs"-Plug-In 1320b, wie oben in Verbindung mit der Veröffentlichungs-Pipeline beschrieben, kann bereitgestellt werden, um die authentifizierte Identität zu genehmigen. In einer Lizenzierungs-Pipeline kann ein Genehmigungs-Plug-In verwendet werden, um zu bestimmen, ob es der anfordernden Entität gestattet ist, eine Lizenz anzufordern. Somit kann der Anbieter des Genehmigungs-Plug-In kontrollieren, es ob einer persönlichen Account-Identität gestattet ist, eine direkte Lizenzanforderung vorzunehmen, ob ein verlässlicher Server-Prozess eine Lizenzanforderung für eine solche Entität vornehmen kann und dergleichen.
  • Ein "Gruppenerweiterungs"-Plug-In 1320c kann verwendet werden, um eine individuelle Benutzerliste aus einer Gruppenkennung abzurufen. Im Allgemeinen geht man davon aus, dass sich die Mitgliedschaft in einer vordefinierten Gruppe mit der Zeit ändert. Demzufolge kann ein DRM-System gemäß der Erfindung ein Gruppen-Repository umfassen, das entsprechende Benutzerlisten für jede von einer Anzahl von Gruppen enthält. Jede Gruppe weist eine damit verknüpfte Gruppenkennung auf. Sobald daher eine Gruppenkennung während der Verarbeitung eines digitalen Rechteverwaltungs-Diensts, (z.B. Veröffentlichung), empfangen wird, kann das Gruppenerweiterungs-Plug-In aufgerufen werden, um die aktuelle Gruppenliste abzurufen, die der empfangenen Gruppenkennung entspricht.
  • Ein "Rechte-Kennzeichnungs-Abruf"-Plug-In 1320d kann verwendet werden, um eine Rechte-Kennzeichnung abzurufen, die einer empfangenen Kennung entspricht. Wie vorher im Detail beschrieben, analysiert der Server die Rechte-Kennzeichnung, die in der Lizenzanforderung eingegeben ist, um ihre GUID abzurufen. Dann übergibt er diese GUID an das Rechte-Kennzeichnungs-Abruf-Plug-In 1320d, welches eine Abfrage über die Datenbank ausgibt, um eine Kopie der Haupt-Rechte-Kennzeichnung abzurufen.
  • Ein "Zertifikat-Abruf"-Plug-In kann verwendet werden, um ein Zertifikat von einem Server abzurufen, auf welchem solche Zertifikate gespeichert sind. Zum Beispiel kann eine anfordernde Entität eine Vor-Lizenzierung für eine Anzahl von potenziellen Lizenznehmern anfordern, doch hat die anfordernde Entität nicht die Zertifikate für die potenziellen Lizenznehmer. Die Zertifikate werden jedoch benötigt, um die Lizenz auszugeben, weshalb das Zertifikat-Abruf-Plug-In verwendet werden kann, um Zertifikate von dem Server abzurufen, auf dem sie gespeichert sind.
  • Ein "Speicher"-Plug-In kann verwendet werden, um jeden beliebigen bereitgestellten Speicherzugang einzukapseln. Somit kann der Anbieter eines Speicher-Plug-In die Speicher spezifizieren, in denen Daten gespeichert werden können oder aus denen Daten abgerufen werden können sowie die "Sprache", welche die Pipeline benötigt, um mit dem bzw. den Datenspeichern zu kommunizieren. Zum Beispiel wäre es möglich, dass eine Pipeline auf einen bestimmten Datenspeicher über SQL zugreifen muss.
  • Ein "Distributionspunkt"-Plug-In 1320g kann in Verbindung mit Superdistribution der Verweis-URL verwendet werden. Das Distributionspunkt-Plug-In 1320g liest Verweis-URLs aus einem Speicherplatz aus und integriert sie auf Anfrage in XrML-Dokumente. Die Ausgabe von diesem Plug-In ist ein gut definierter XML-Teil, der die Verweis-URL definiert, mit der ein Client Kontakt aufnehmen kann, um eine DRM-Operation vorzunehmen, wie beispielsweise Lizenzierung, Rechte-Erwerb usw.
  • Ein "Privat-Schlüssel"-Plug-In 1320h, wie vorher in Verbindung mit der Veröffentlichungs-Pipeline beschrieben, kann zum Schutz des Haupt-Privat-Schlüssels verwendet werden.
  • Am Abschlusspunkt 1340, wie in 13 gezeigt, wird die Lizenzanforderungs-Verarbeitung abgeschlossen, und die asynchronen Plug-Ins 1350 beginnen, ihre jeweiligen Aufgaben durchzuführen. Wie gezeigt, kann die Lizenzierungs-Pipeline 1300 auch eine "Property Bag"-Komponente 1350a, eine "Protokollierungs"-Anwendung 1350b und ein Zertifikatmaschinen-Plug-In 1350c enthalten, wie vorher in Verbindung mit der Veröffentlichungs-Pipeline beschrieben. Es sollte jedoch klar sein, dass eine Lizenzierungs-Pipeline gemäß der Erfindung jede Anzahl von Plug-Ins enthalten kann, einschließlich jeder Anzahl von Erweiterungen oder asynchronen Komponenten.
  • 14 stellt ein Ablaufprogramm einer bevorzugten Ausführungsform eines Verfahrens 1400 gemäß der Erfindung zum Bereitstellen einer sicheren Server-Plug-In-Architektur für digitale Rechteverwaltungssysteme bereit. In Schritt 1402 stellt der Systemanbieter ein Dienst-Programm bereit, das einen Verarbeitungsrahmen zum Durchführen eines digitalen Rechteverwaltungs-Diensts bereitstellt, wie beispielsweise Veröffentlichung, Lizenzierung usw. In einer bevorzugten Ausführungsform umfasst das Dienst-Programm Code zum Durchführen des verknüpften DRM-Diensts.
  • In Schritt 1404 stellt der Systemanbieter eine Vielzahl von DRM-Plug-In-Optionen bereit, von denen jede mit einer entsprechenden Plug-In-Komponente verknüpft ist, die eine entsprechende Aufgabe durchführt, die mit dem digitalen Rechteverwaltungs-Dienst verknüpft ist. Der Installierer, Käufer, Systemadministrator oder sonstige Benutzer des Systems kann dann aus der Vielzahl von Plug-In-Optionen auswählen, um diejenigen Plug-Ins auszuwählen, welche die spezifische Funktionalität bereitstellen, die der Verbraucher für diese Pipeline für diese Installation wünscht.
  • In Schritt 1406 empfängt der Systemanbieter die Plug-In-Auswahlen und integriert in Schritt 1408 die Plug-In-Komponenten in den Verarbeitungsrahmen, die den ausgewählten Plug-In-Optionen entsprechen. Somit kann ein Benutzer eines DRM-Systems gemäß der Erfindung das System nach den Bedürfnissen oder Wünschen des Benutzers gestalten und das System wirtschaftlich, einfach und effizient aufrüsten, indem Plug-Ins gewechselt werden.
  • Schlussfolgerung
  • Die Programmierung, die notwendig ist, um die Prozesse auszuführen, die in Verbindung mit der vorliegenden Erfindung durchgeführt werden, ist relativ unkompliziert und sollte für die relevanten Programmierer offenkundig sein. Demzufolge befindet sich eine solche Programmierung nicht im Anhang hierzu. Jede bestimmte Programmierung kann dann verwendet werden, um die vorliegende Erfindung auszuführen, ohne von ihrem Gedanken und Umfang abzuweichen.
  • Somit wurden sichere Server-Plug-In-Architekturen für digitale Rechteverwaltungssysteme beschrieben. Dem Fachmann wird klar sein, dass zahlreiche Änderungen und Modifizierungen an den bevorzugten Ausführungsformen der Erfindung vorgenommen werden können, und dass solche Änderungen und Modifizierungen vorgenommen werden können, ohne von dem Gedanken der Erfindung abzuweichen. Obwohl die Erfindung zum Beispiel im Detail in Verbindung mit Veröffentlichungs- und Lizenzierungs-Pipelines beschrieben worden ist, sollte klar sein, dass die Erfindung in anderen digitalen Rechteverwaltungs-Pipelines verwendet werden kann, die andere digitale Rechteverwaltungs-Dienste durchführen, wie beispielsweise Registrierung, Aktivierung, Zertifizierung, Föderierung und dergleichen. Daher sollen die Ansprüche im Anhang alle solchen äquivalenten Variationen abdecken, die in den Umfang der Erfindung fallen.
  • ANHANG 1 Beispiel Rechte-Daten
    Figure 00530001
  • Figure 00540001
  • ANHANG 2 Beispiel Signierte Rechte-Kennzeichnung (SRL) 308
    Figure 00550001
  • Figure 00560001

Claims (28)

  1. System (300) zum Bereitstellen von DRM (digital rights management)-Diensten, wobei das System (300) umfasst: ein Dienstprogramm, das einen Verarbeitungsrahmen zum Durchführen eines DRM-Dienstes (306) schafft; und eine Vielzahl von Plug-In-Komponenten, von denen jede eine jeweilige Aufgabe erfüllt, die mit dem DRM-Dienst verbunden ist, wobei jede der Vielzahl von Plug-In-Komponenten entsprechend einem jeweiligen vordefinierten Satz von Schnittstellen-Regeln in den Verarbeitungsrahmen integriert wird.
  2. System nach Anspruch 1, wobei der DRM-Dienst eine Veröffentlichungsanforderung zum Veröffentlichen von digitalem Inhalt mit verwalteten Rechten einschließt.
  3. System nach Anspruch 2, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Speichern einer Rechte-Kennzeichnung einschließt, die eine Rechte-Beschreibung, einen verschlüsselten Inhaltsschlüssel und eine digitale Signatur sowohl der Rechte-Beschreibung als auch des verschlüsselten Inhaltsschlüssels enthält.
  4. System nach Anspruch 2, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Schützen eines privaten Schlüssels einschließt, der im Zusammenhang mit Verschlüsseln und Entschlüsseln von digitalem Inhalt mit verwalteten Rechten verwendet wird.
  5. System nach Anspruch 2, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Erzeugen eines Zertifikats enthält.
  6. System nach Anspruch 2, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Authentifizieren einer Einheit enthält, die die Veröffentlichungsanforderung unterbreitet.
  7. System nach Anspruch 2, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente enthält, mit der festgestellt wird, ob eine Einheit, die die Veröffentlichungsanforderung unterbreitet, autorisiert ist, den digitalen Inhalt mit verwalteten Rechten entsprechend der Anforderung zu veröffentlichen.
  8. System nach Anspruch 1, wobei der DRM-Dienst Verarbeiten einer Lizenz-Anforderung zum Lizenzieren von digitalem Inhalt mit verwalteten Rechten enthält.
  9. System nach Anspruch 8, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente eine Gruppenerweiterungs-Plug-In-Komponente zum Abrufen einer Benutzerliste auf Basis einer Gruppen-Kennung enthält, die in der Lizenzanforderung bereitgestellt wird.
  10. System nach Anspruch 8, wobei die Vielzahl von Plug-In-Komponenten zum Abrufen einer Rechte-Kennzeichnung enthält, die eine Rechte-Beschreibung, einen verschlüsselten Inhaltsschlüssel und eine digitale Signatur sowohl der Rechte-Beschreibung als auch des verschlüsselten Rechte-Schlüssels enthält.
  11. System nach Anspruch 8, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Abrufen eines Zertifikats enthält.
  12. System nach Anspruch 8, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente zum Authentifizieren einer Einheit enthält, die die Lizenzanforderung unterbreitet.
  13. System nach Anspruch 8, wobei die Vielzahl von Plug-In-Komponenten eine Plug-In-Komponente enthält, mit der festgestellt wird, ob eine Einheit, die die Linzenz-Anforderung unterbreitet, autorisiert ist, den digitalen Inhalt mit verwalteten Rechten entsprechend der Anforderung zu nutzen.
  14. System nach Anspruch 1, wobei die Vielzahl von Plug-In-Komponenten wenigstens eine Erweiterungs-Plug-In-Komponente enthält, die ihre jeweilige Aufgabe auf Basis des Auftretens eines vorgeschriebenen Ereignisses erfüllt.
  15. System nach Anspruch 14, wobei die Erweiterungs-Plug-In-Komponente so eingerichtet ist, dass sie Abarbeitung des Dienst-Programms anhält.
  16. System nach Anspruch 1, wobei die Vielzahl von Plug-In-Komponenten wenigstens eine asynchrone Komponente enthält.
  17. System nach Anspruch 1, wobei der DRM-Dienst einen Registrierungsdienst einschließt.
  18. System nach Anspruch 1, wobei der DRM-Dienst einen Aktivierungsdienst einschließt.
  19. System nach Anspruch 1, wobei der DRM-Dienst einen Zertifizierungsdienst einschließt.
  20. System nach Anspruch 1, wobei der DRM-Dienst einen Föderierungs-Dienst einschließt.
  21. Verfahren zum Bereitstellen von DRM-Diensten, wobei das Verfahren umfasst: Bereitstellen eines Dienst-Programms, das einen Verarbeitungsrahmen zum Durchführen eines DRM-Dienstes schafft; Bereitstellen einer Vielzahl von DRM-Plug-In-Optionen, wobei jede der Plug-In-Optionen mit einer jeweiligen Plug-In-Komponente verbunden ist, die eine jeweilige Aufgabe erfüllt, die mit dem DRM-Dienst verbunden ist; und Integrieren einer ausgewählten Plug-In-Komponente in den Verarbeitungsrahmen, wobei die ausgewählte Plug-In-Komponente einer ausgewählten Plug-In-Option entspricht, die aus der Vielzahl von Plug-In-Optionen ausgewählt wird.
  22. Verfahren nach Anspruch 21, das des Weiteren umfasst: Empfangen einer Plug-In-Auswahl, die der ausgewählten Plug-In-Komponente entspricht.
  23. Verfahren nach Anspruch 21, wobei die gewünschte Plug-In-Komponente entsprechend einem vordefinierten Satz von Schnittstellen-Regeln in den Verarbeitungsrahmen integriert wird.
  24. Verfahren nach Anspruch 21, wobei das Dienst-Programm einen Verarbeitungsrahmen zum Durchführen eines Lizenzierungsdienstes bereitstellt.
  25. Verfahren nach Anspruch 21, wobei das Dienst-Programm einen Verarbeitungsrahmen zum Durchführen eines Veröffentlichungsdienstes bereitstellt.
  26. DRM-System, das umfasst: einen DRM-Server (320), der ein computerlesbares Medium enthält, auf dem durch Computer ausführbare Befehle zum Durchführen einer Vielzahl von DRM-Diensten (306) gespeichert sind, wobei jeder der Vielzahl von DRM-Diensten in einer jeweiligen Pipeline durchgeführt wird und die jeweiligen Pipelines unabhängig voneinander (1110, 1210, 1310) sind.
  27. DRM-System nach Anspruch 26, wobei jede der Pipelines umfasst: ein Dienstprogramm, das einen Verarbeitungsrahmen zum Durchführen des zugehörigen DRM-Dienstes schafft; und eine Vielzahl von Plug-In-Komponenten, von denen jede eine jeweilige Aufgabe erfüllt, die mit dem DRM-Dienst verbunden ist.
  28. DRM-System nach Anspruch 27, wobei jede der Vielzahl von Plug-In-Komponenten entsprechend einem jeweiligen vordefinierten Satz von Schnittstellen-Regeln in den Vearbeitungsrahmen integriert wird.
DE60307736T 2002-06-28 2003-06-13 Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen Expired - Lifetime DE60307736T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US185906 2002-06-28
US10/185,906 US7631318B2 (en) 2002-06-28 2002-06-28 Secure server plug-in architecture for digital rights management systems

Publications (2)

Publication Number Publication Date
DE60307736D1 DE60307736D1 (de) 2006-10-05
DE60307736T2 true DE60307736T2 (de) 2006-12-28

Family

ID=27612990

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60307736T Expired - Lifetime DE60307736T2 (de) 2002-06-28 2003-06-13 Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen

Country Status (7)

Country Link
US (1) US7631318B2 (de)
EP (1) EP1376980B1 (de)
JP (1) JP4489382B2 (de)
AT (1) ATE337671T1 (de)
DE (1) DE60307736T2 (de)
ES (1) ES2271427T3 (de)
NO (1) NO333104B1 (de)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606659B1 (en) 2000-01-28 2003-08-12 Websense, Inc. System and method for controlling access to internet sites
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US7428725B2 (en) * 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US7194464B2 (en) 2001-12-07 2007-03-20 Websense, Inc. System and method for adapting an internet filter
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US7502945B2 (en) * 2002-06-28 2009-03-10 Microsoft Corporation Using a flexible rights template to obtain a signed rights label (SRL) for digital content in a rights management system
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US20040122772A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Method, system and program product for protecting privacy
US7370017B1 (en) * 2002-12-20 2008-05-06 Microsoft Corporation Redistribution of rights-managed content and technique for encouraging same
JP4175118B2 (ja) * 2003-01-14 2008-11-05 ヤマハ株式会社 コンテンツ処理装置及びプログラム
JP3823925B2 (ja) * 2003-02-05 2006-09-20 ソニー株式会社 情報処理装置、ライセンス情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7136945B2 (en) * 2003-03-31 2006-11-14 Sony Corporation Method and apparatus for extending protected content access with peer to peer applications
US7353397B1 (en) * 2003-04-30 2008-04-01 Adobe Systems Incorporated Repurposing digitally signed information
EP2270622B1 (de) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systeme und verfahren für die peer-to-peer-dienstorchestrierung
KR100953160B1 (ko) * 2003-06-26 2010-04-20 삼성전자주식회사 네트워크 장치 및 이를 이용하는 상이한 저작권 관리방식을 갖는 네트워크 장치간의 컨텐츠 호환성 제공 방법
US7506162B1 (en) 2003-07-14 2009-03-17 Sun Microsystems, Inc. Methods for more flexible SAML session
US7237256B2 (en) 2003-07-14 2007-06-26 Sun Microsystems, Inc. Method and system for providing an open and interoperable system
US20050021556A1 (en) * 2003-07-25 2005-01-27 Matsushita Electric Industrial Co., Ltd. Data processing apparatus
KR100493904B1 (ko) * 2003-09-18 2005-06-10 삼성전자주식회사 다수의 기기를 지원하는 drm 라이센스 방법
US8103004B2 (en) * 2003-10-03 2012-01-24 Sony Corporation Method, apparatus and system for use in distributed and parallel decryption
US7801819B2 (en) * 2003-10-03 2010-09-21 Sony Corporation Rendering rights delegation system and method
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
FR2865051B1 (fr) * 2004-01-14 2006-03-03 Stg Interactive Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu
US9003548B2 (en) 2004-04-13 2015-04-07 Nl Systems, Llc Method and system for digital rights management of documents
US7836510B1 (en) 2004-04-30 2010-11-16 Oracle America, Inc. Fine-grained attribute access control
US7565356B1 (en) 2004-04-30 2009-07-21 Sun Microsystems, Inc. Liberty discovery service enhancements
US7890604B2 (en) * 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US20050251380A1 (en) * 2004-05-10 2005-11-10 Simon Calvert Designer regions and Interactive control designers
US9026578B2 (en) * 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
GB2415065B (en) * 2004-06-09 2009-01-21 Symbian Software Ltd A computing device having a multiple process architecture for running plug-in code modules
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7437358B2 (en) 2004-06-25 2008-10-14 Apple Inc. Methods and systems for managing data
WO2006017493A2 (en) * 2004-08-02 2006-02-16 Justsystems Corporation Approach for creating a tag or attribute in a markup language document
JP4728610B2 (ja) * 2004-08-04 2011-07-20 株式会社リコー アクセス制御リスト添付システム、オリジナルコンテンツ作成者端末、ポリシーサーバ、オリジナルコンテンツデータ管理サーバ、プログラム及び記録媒体
GB2416879B (en) 2004-08-07 2007-04-04 Surfcontrol Plc Device resource access filtering system and method
JP4748762B2 (ja) * 2004-08-24 2011-08-17 キヤノン株式会社 署名生成方法及び情報処理装置
US20060048224A1 (en) * 2004-08-30 2006-03-02 Encryptx Corporation Method and apparatus for automatically detecting sensitive information, applying policies based on a structured taxonomy and dynamically enforcing and reporting on the protection of sensitive data through a software permission wrapper
GB2418108B (en) * 2004-09-09 2007-06-27 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
GB2418999A (en) 2004-09-09 2006-04-12 Surfcontrol Plc Categorizing uniform resource locators
GB2418037B (en) * 2004-09-09 2007-02-28 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
JP4722052B2 (ja) * 2004-10-15 2011-07-13 ソフトバンクモバイル株式会社 連係動作方法及び通信端末装置
US7882236B2 (en) * 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model
US7500097B2 (en) * 2005-02-28 2009-03-03 Microsoft Corporation Extendable data-driven system and method for issuing certificates
US7509489B2 (en) * 2005-03-11 2009-03-24 Microsoft Corporation Format-agnostic system and method for issuing certificates
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8261356B2 (en) 2005-04-08 2012-09-04 Electronics And Telecommunications Research Institute Tool pack structure and contents execution device
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8429755B2 (en) * 2005-05-26 2013-04-23 Sandisk Technologies Inc. System and method for receiving digital content
GB0512744D0 (en) * 2005-06-22 2005-07-27 Blackspider Technologies Method and system for filtering electronic messages
KR100728928B1 (ko) * 2005-07-01 2007-06-15 삼성전자주식회사 기록매체를 통해 오프라인된 영상기기에 컨텐츠 재생권한부여방법
US8239682B2 (en) 2005-09-28 2012-08-07 Nl Systems, Llc Method and system for digital rights management of documents
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
CA2626244A1 (en) * 2005-10-18 2007-04-26 Intertrust Technologies Corporation Methods for evaluating licenses containing control programs by a drm engine
US20070156601A1 (en) * 2006-01-03 2007-07-05 International Business Machines Corporation Method and system for providing interoperability between digital rights management systems
KR101314751B1 (ko) * 2006-01-26 2013-10-02 삼성전자주식회사 디알엠 설치 관리 방법 및 장치
US8103590B2 (en) * 2006-02-17 2012-01-24 Yahoo! Inc. Method and system for managing multiple catalogs of files on a network
US8615800B2 (en) 2006-07-10 2013-12-24 Websense, Inc. System and method for analyzing web content
US8020206B2 (en) 2006-07-10 2011-09-13 Websense, Inc. System and method of analyzing web content
US8020149B2 (en) 2006-08-04 2011-09-13 Apple Inc. System and method for mitigating repeated crashes of an application resulting from supplemental code
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
GB2458094A (en) * 2007-01-09 2009-09-09 Surfcontrol On Demand Ltd URL interception and categorization in firewalls
GB2445764A (en) * 2007-01-22 2008-07-23 Surfcontrol Plc Resource access filtering system and database structure for use therewith
CN101622849B (zh) * 2007-02-02 2014-06-11 网圣公司 添加上下文以防止经由计算机网络的数据泄漏的系统和方法
US8015174B2 (en) 2007-02-28 2011-09-06 Websense, Inc. System and method of controlling access to the internet
US8276167B2 (en) * 2007-03-21 2012-09-25 International Business Machines Corporation Distributed pluggable middleware services
US8892471B2 (en) * 2007-04-04 2014-11-18 International Business Machines Corporation Modifying a digital media product
US20080249943A1 (en) * 2007-04-04 2008-10-09 Barrs John W Modifying A Digital Media Product
US7693871B2 (en) * 2007-04-04 2010-04-06 International Business Machines Corporation Modifying a digital media product
US11153656B2 (en) 2020-01-08 2021-10-19 Tailstream Technologies, Llc Authenticated stream manipulation
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
US20090006624A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Entertainment Access Service
WO2009032548A2 (en) * 2007-09-06 2009-03-12 Microsoft Corporation Session broker extensibility application program iinterface
US8732236B2 (en) * 2008-12-05 2014-05-20 Social Communications Company Managing network communications between network nodes and stream transport protocol
US8601482B2 (en) * 2007-11-02 2013-12-03 Microsoft Corporation Delegation metasystem for composite services
US10013536B2 (en) * 2007-11-06 2018-07-03 The Mathworks, Inc. License activation and management
US20090157841A1 (en) * 2007-12-14 2009-06-18 Microsoft Corporation Encapsulation of online storage providers
US20090171762A1 (en) * 2008-01-02 2009-07-02 Microsoft Corporation Advertising in an Entertainment Access Service
US10475010B2 (en) * 2008-01-10 2019-11-12 Microsoft Technology Licensing, Llc Federated entertainment access service
US9130986B2 (en) 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US9015842B2 (en) 2008-03-19 2015-04-21 Websense, Inc. Method and system for protection against information stealing software
US8370948B2 (en) * 2008-03-19 2013-02-05 Websense, Inc. System and method for analysis of electronic information dissemination events
US8407784B2 (en) 2008-03-19 2013-03-26 Websense, Inc. Method and system for protection against information stealing software
US8769640B2 (en) * 2008-05-29 2014-07-01 Microsoft Corporation Remote publishing and server administration
US8141129B2 (en) * 2008-05-29 2012-03-20 Microsoft Corporation Centrally accessible policy repository
US8387152B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Attested content protection
EP2318955A1 (de) * 2008-06-30 2011-05-11 Websense, Inc. System und verfahren zur dynamischen und echtzeit-kategorisierung von webseiten
CN102362269B (zh) * 2008-12-05 2016-08-17 社会传播公司 实时内核
US20100208082A1 (en) * 2008-12-18 2010-08-19 Band Crashers, Llc Media systems and methods for providing synchronized multiple streaming camera signals of an event
KR20100108970A (ko) * 2009-03-31 2010-10-08 삼성전자주식회사 디지털 저작권 관리 컨텐츠의 보호 방법 및 장치
US20130132733A1 (en) * 2009-05-26 2013-05-23 Sunil C. Agrawal System And Method For Digital Rights Management With System Individualization
WO2010138466A1 (en) 2009-05-26 2010-12-02 Wabsense, Inc. Systems and methods for efficeint detection of fingerprinted data and information
CN102474412A (zh) * 2009-07-17 2012-05-23 上海贝尔股份有限公司 Sem内的drm方法和设备以及提供drm服务的方法
US9015493B2 (en) 2010-09-16 2015-04-21 Microsoft Technology Licensing, Llc Multitenant-aware protection service
WO2012118917A2 (en) 2011-03-03 2012-09-07 Social Communications Company Realtime communications and network browsing client
WO2012142178A2 (en) 2011-04-11 2012-10-18 Intertrust Technologies Corporation Information security systems and methods
US8516273B2 (en) 2011-05-31 2013-08-20 Asobe Systems Incorporated Porting digital rights management service to multiple computing platforms
US8082486B1 (en) 2011-06-09 2011-12-20 Storify, Inc. Source attribution of embedded content
US8769059B1 (en) * 2012-05-23 2014-07-01 Amazon Technologies, Inc. Best practice analysis, third-party plug-ins
US9626710B1 (en) 2012-05-23 2017-04-18 Amazon Technologies, Inc. Best practice analysis, optimized resource use
US10740765B1 (en) 2012-05-23 2020-08-11 Amazon Technologies, Inc. Best practice analysis as a service
US8954574B1 (en) 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
US9117054B2 (en) 2012-12-21 2015-08-25 Websense, Inc. Method and aparatus for presence based resource management
US8888005B2 (en) 2013-04-12 2014-11-18 David Prokop Uniquely identifiable drug dosage form units
BR112016001598A2 (pt) 2013-07-23 2017-10-31 Ericsson Ab sistema de distribuição de mídia com aplicação de autorização baseada em manifesto
IN2014CH01484A (de) 2014-03-20 2015-09-25 Infosys Ltd
GB2530245A (en) * 2014-07-15 2016-03-23 Piksel Inc Controlling delivery of encrypted media assets
CN105871577A (zh) 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 资源权限管理方法及装置
WO2016172474A1 (en) 2015-04-24 2016-10-27 Encryptics, Llc System and method for enhanced data protection
EP3255597A1 (de) * 2016-06-12 2017-12-13 Apple Inc. Verwaltung sicherer transaktionen zwischen elektronischen vorrichtungen und dienstanbietern
US10645066B2 (en) 2016-11-19 2020-05-05 Alan Earl Swahn Rights controlled communication
CN112565236B (zh) * 2020-11-30 2023-08-01 广州酷狗计算机科技有限公司 信息鉴权方法、装置、计算机设备及存储介质
CN115408047B (zh) * 2022-08-11 2023-07-25 北京大氪信息科技有限公司 一种版本发布方法、装置及电子设备

Family Cites Families (56)

* 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
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US6006279A (en) * 1997-01-21 1999-12-21 Canon Information Systems, Inc. Plug-in module host framework
CA2228185C (en) * 1997-01-31 2007-11-06 Certicom Corp. Verification protocol
US6389535B1 (en) * 1997-06-30 2002-05-14 Microsoft Corporation Cryptographic protection of core data secrets
JP2001517822A (ja) * 1997-09-19 2001-10-09 パク,ヒョ,ジョーン 独立的ソフトウェア登録サーバを利用したソフトウェア使用権管理システム
US6122741A (en) * 1997-09-19 2000-09-19 Patterson; David M. Distributed method of and system for maintaining application program security
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6701433B1 (en) * 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US7024393B1 (en) 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US7073063B2 (en) * 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US6973444B1 (en) * 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US7103574B1 (en) 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
JP2000293587A (ja) * 1999-04-09 2000-10-20 Sony Corp 情報処理装置および方法、管理装置および方法、並びに提供媒体
US6557105B1 (en) * 1999-04-14 2003-04-29 Tut Systems, Inc. Apparatus and method for cryptographic-based license management
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
US6449720B1 (en) * 1999-05-17 2002-09-10 Wave Systems Corp. Public cryptographic control unit and system therefor
US6405366B1 (en) * 1999-05-28 2002-06-11 Electronic Data Systems Corporation Multi-layered software application interface architecture
US6385719B1 (en) * 1999-06-30 2002-05-07 International Business Machines Corporation Method and apparatus for synchronizing parallel pipelines in a superscalar microprocessor
JP2001118332A (ja) * 1999-10-20 2001-04-27 Sony Corp データ配信システムとその方法、データ処理装置、データ使用制御装置および配信用データが記録された機械読み取り可能な記録媒体
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
JP3614061B2 (ja) * 1999-12-06 2005-01-26 ヤマハ株式会社 自動演奏装置及び自動演奏プログラムを記録したコンピュータ読取り可能な記録媒体
GB2357229B (en) * 1999-12-08 2004-03-17 Hewlett Packard Co Security protocol
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6996720B1 (en) 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
JP2001175605A (ja) 1999-12-17 2001-06-29 Sony Corp データ処理装置
US7047411B1 (en) 1999-12-17 2006-05-16 Microsoft Corporation Server for an electronic distribution system and method of operating same
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
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
JP2001256318A (ja) * 2000-03-14 2001-09-21 Sony Corp コンテンツ取り引きシステムおよびコンテンツ取り引き方法、並びにプログラム提供媒体
US6386894B2 (en) * 2000-04-28 2002-05-14 Texas Instruments Incorporated Versatile interconnection scheme for beverage quality and control sensors
US6961858B2 (en) * 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US6891953B1 (en) * 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US7073199B1 (en) * 2000-08-28 2006-07-04 Contentguard Holdings, Inc. Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine
WO2002023315A2 (en) 2000-09-12 2002-03-21 Aladdin Knowledge Systems, Ltd. System for managing rights and permitting on-line playback of digital content
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
CA2430062A1 (en) * 2000-12-08 2002-07-18 Matsushita Electric Industrial Co., Ltd. Distribution device, terminal device, and program and method for use therein
US6978376B2 (en) * 2000-12-15 2005-12-20 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
CN1714356B (zh) * 2001-01-17 2010-04-07 康坦夹德控股股份有限公司 使用标准演示引擎作数字权限管理的系统及方法
JP4191902B2 (ja) * 2001-02-28 2008-12-03 株式会社日立製作所 コンテンツ配信装置
AU2002259229A1 (en) * 2001-05-18 2002-12-03 Imprivata, Inc. Authentication with variable biometric templates
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8275716B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
CN1539117A (zh) * 2001-06-07 2004-10-20 ��̹�е¿عɹɷ����޹�˾ 在数字权利管理系统中支持多个委托区域的方法和装置
US20030046274A1 (en) * 2001-08-30 2003-03-06 Erickson John S. Software media container
WO2003034313A2 (en) * 2001-10-18 2003-04-24 Macrovision Corporation Systems and methods for providing digital rights management compatibility
US7840488B2 (en) * 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
WO2003057533A1 (en) * 2001-12-28 2003-07-17 Brackmann Rogers F Private pallet-box cargo shipping system
US7747531B2 (en) * 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7092527B2 (en) * 2002-04-18 2006-08-15 International Business Machines Corporation Method, system and program product for managing a size of a key management block during content distribution
US7174021B2 (en) * 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations

Also Published As

Publication number Publication date
ES2271427T3 (es) 2007-04-16
DE60307736D1 (de) 2006-10-05
US7631318B2 (en) 2009-12-08
NO20032749L (no) 2003-12-29
NO20032749D0 (no) 2003-06-17
JP4489382B2 (ja) 2010-06-23
JP2004062890A (ja) 2004-02-26
NO333104B1 (no) 2013-03-04
EP1376980B1 (de) 2006-08-23
US20040003139A1 (en) 2004-01-01
EP1376980A1 (de) 2004-01-02
ATE337671T1 (de) 2006-09-15

Similar Documents

Publication Publication Date Title
DE60307736T2 (de) Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen
DE602004011282T2 (de) Versenden einer Herausgeber-Benutzungslizenz off-line in einem digitalen Rechtesystem
US6006332A (en) Rights management system for digital media
JP4750352B2 (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
US7891007B2 (en) Systems and methods for issuing usage licenses for digital content and services
KR100949657B1 (ko) 유연한 권리 템플릿을 이용하여 권리 관리 시스템에서디지털 컨텐츠에 대한 서명된 권리 라벨(srl)을 얻기
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
US8458273B2 (en) Content rights management for document contents and systems, structures, and methods therefor
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
US7512798B2 (en) Organization-based content rights management and systems, structures, and methods therefor
US7392547B2 (en) Organization-based content rights management and systems, structures, and methods therefor
US20040003268A1 (en) Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
US20040158731A1 (en) Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
US20040001594A1 (en) Systems and methods for providing secure server key operations
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
US7549062B2 (en) Organization-based content rights management and systems, structures, and methods therefor
DE10051571A1 (de) Selektive Datenverschlüsselung unter Verwendung von Stylesheet-Verarbeitung
JP2004259281A (ja) ディジタル権利管理(drm)サーバのdrmアーキテクチャへのエンロール/サブエンロール
DE60114069T3 (de) System und Verfahren für den Schutz von Digitalwerken
JP2004528661A (ja) 使用権をディジタル作品へダイナミックに割り当てる方法および装置
DE112007002566T5 (de) Übertragen eines Datenobjekts zwischen Vorrichtungen
DE10251408A1 (de) Sicherer und vermittelter Zugriff für E-Dienste
CH720073A1 (de) Vorrichtung und verfahren zur bearbeitung eines sicheren elektronischen dokuments
EP1469658A2 (de) Verfahren zum Schutz von Daten gegen unberechtigte Benutzung auf einem Mobilfunkgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition