-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein Computer und/oder elektronische
Sicherheit. Insbesondere betrifft die vorliegende Erfindung Systeme und
Verfahren zum Schutz von Informationen im gestreamten Format.
-
HINTERGRUND
-
Streaming
Digitalmedien bestehen im allgemeinen aus Sequenzen von digitalen
Informationen, die in einem "Strom" (Stream) von Paketen
empfangen werden und dazu bestimmt sind, angezeigt oder gerendert/wiedergegeben
(engl.: to render) zu werden. Beispiele umfassen gestreamte Audio-Inhalte, gestreamte
Videos, usw.
-
Digitale
Medienströme
werden zu einem zunehmend bedeutenderen Mittel der Inhaltsübermittlung
und bilden die Grundlage für
verschiedene angenommene, vorgeschlagene oder de-facto-Standards.
Die Akzeptanz dieses Formats ist bisher jedoch durch die Leichtigkeit
gehemmt worden, mit der digitale Medienströme kopiert und missbräuchlich verbreitet
werden können,
und durch die sich daraus ergebende Widewilligkeit der Inhaltseigentümer zu gestatten,
dass bedeutendes Eigentum durch Streaming Digitalmedien verbreitet
wird. Aus diesem Grunde besteht ein Bedarf an einer Methodik, mit
der digitale Medienströme
geschützt
werden können.
-
Die
EP-A-0714204 beschreibt ein digitales Videosystem mit Schutz vor
illegalem Sehen und Kopieren. Das System enthält einen Decoder zum Descrambeln
der Ausgabe eines Demodulators und einen Fehlerkorrektor, einen
Kopierschutzprozessor zum Splitten des gescrambelten Aufzeichnungssignals
in einen Bitstrom und einen Keystream und zum Verschlüsseln des
Keystreams sowie eine SmartCard zum Entschlüsseln des gesplitteten und
verschlüsselten
Keystreams des Kopierschutzprozessors. Die SmartCard führt so genannte
Pre-Rendering-Aspekte
der Entschlüsselung
durch, und das System hat keine Möglichkeiten zur Regelung der
Inhaltsinformationen.
-
Die
EP 0 763 936 beschreibt
ein Verfahren zum Verhindern von unerlaubtem Sehen und Kopieren
in einem digitalen Fernsehsystem. Das Verfahren umfasst das Übertragen
von Audio/Video-Daten gemeinsam mit Zugriffsinformationen sowie
Kopier- und Reproduktionskontrollinformationen an einen integrierten
Empfänger/Decoder.
Der Empfänger/Decoder
decodiert und descrambelt den empfangenen Bitstrom und gibt anzuzeigende
analoge Audio/Video-Daten aus, sowie verscrambelte digitale Audio/Video-Daten,
die auf einen Videokassettenrecorder aufzuzeichnen sind.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird ein Streaming-Media-Player zur Verwendung mit einem Paketvermittlungsnetz
und mit Bereitstellung eines Inhaltsschutzes sowie einer Verwaltung
der digitalen Rechte vorgeschlagen, wobei der Media-Player umfasst:
- (a) einen Anschluss (Port), der derart konfiguriert ist,
dass er einen digitalen Bitstrom empfängt, der Pakete von Informationen
aus einer Vielzahl von Teilströmen
umfasst, die miteinander vermischt worden sind, wobei die Vielzahl
von Teilströmen umfasst:
einen
Inhaltsstrom, der Inhaltspakete umfasst, die einen Inhalt enthalten,
der komprimiert und zumindest teilweise verschlüsselt ist,
einen Organisationsstrom,
der Organisationspakete enthält,
die Organisationsinformationen bezüglich des zu rendernden Werkes
enthält,
und
einen Kontrollstrom, der Kontrollpakete umfasst, die einen
sicheren Behälter
haben, der Kontrollinformationen zum Kontrollieren der Benutzung
des Inhalts enthält,
einschließlich
mindestens eines Schlüssels,
der sich zur Entschlüsselung
mindestens eines Teils des Inhalts eignet,
- (b) einen Demultiplexer, der dafür sorgt, dass die Pakete getrennt
und verteilt werden,
- (c) eine Kontrolleinheit, die dafür sorgt, dass sichere Behälter geöffnet und
kryptographische Schlüssel
herausgezogen werden,
- (d) eine Entschlüsselungseinheit,
die dafür
sorgt, dass die Inhaltspakete unter Verwendung eines kryptographischen
Schlüssels
entschlüsselt
werden,
- (e) eine Dekomprimierungseinheit, die dafür sorgt, dass die entschlüsselten
Inhaltspakete dekomprimiert und dekomprimierte Objekte zum Rendering
ausgegeben werden,
- (f) eine Organisationseinheit, die dafür sorgt, dass Organisationspakete
aus dem Demultiplexer empfangen und Organisationsinformationen,
die die Organisation und die Beziehung von Objekten zum Rendering
spezifiziert, ausgegeben werden,
- (g) einen Composite-Block, der dafür sorgt, dass dekomprimierte
Objekte, die aus der Dekomprimierungseinheit gemäß aus der Organisationseinheit
ausgegeben Organisationsinformationen ausgegeben werden, organisiert
werden, wobei die Informationen die Organisation und die Beziehung
gerenderter Objekte spezifizieren, und dadurch dafür sorgt,
dass die dekomprimierten Objekte zu einem Werk gerendert werden,
und
- (h) einen Rückkopplungspfad
von dem Composite-Block zur Kontrolleinheit, um der Kontrolleinheit zu
ermöglichen,
Informationen aus dem Composite-Block bezüglich der dekomprimierten Inhaltsinformationen
zu empfangen, was die Identifizierung von Objekten, die gerendert
werden sollen oder gerendert worden sind, einschließt.
-
Erfindungsgemäß beschreibt
die vorliegende Beschreibung eine neue Architektur zum Schutz von Informationen,
die im gestreamten Format vorliegen. Diese Architektur wird im Zusammenhang
mit einem allgemeinen System beschrieben, das einem System zum Rendern
von Inhalt ähnelt,
der gemäß der MPEG-4
Spezifikation (ISO/IEC 14496.1) kodiert wurde, obgleich mit gewissen
Modifizierungen und mit der Vorgabe, dass das beschriebene System
von dem MPEG-4 Standard in gewisser Hinsicht abweichen kann. Es
ist eine Vielzahl verschiedener Ausführungsbeispiele beschrieben,
einschließlich
eines MPEG-4 Ausführungsbeispiels
und eines Systems, das dazu bestimmt ist, einen Inhalt zu rendern,
der gemäß der MP3
Spezifikation (ISO/IEC TR 11172) kodiert wurde.
-
Gemäß Aspekten
der Erfindung umfasst diese Architektur Systemdesign-Aspekte und
Informationsformat-Aspekte. Systemdesign-Aspekte umfassen die Aufnahme der
Inhaltsschutz-Funktionalität, der
Kontroll-Funktionalität
sowie der Kontrollfunktionalität
mittels Rückkopplung
zur Überwachung
der Aktivitäten
des Systems. Die Informationsformat-Aspekte umfassen die Aufnahme
von Regel-/Kontroll-Informationen in Informationsströme und den Schutz
von Inhalt durch Mechanismen wie beispielsweise Verschlüsselung
und das so genannte Watermarking (einem Einfügen von digitalen Wasserzeichen).
-
Systeme
und Verfahren gemäß der vorliegenden
Erfindung bieten einen Inhaltsschutz sowie eine Verwaltung digitaler
Rechte. Ein Streaming-Media-Player gemäß der vorliegenden Erfindung
umfasst einen Port, der dafür
ausgelegt ist, einen digitalen Bitstrom zu empfangen. Der digitale
Bitstrom enthält
einen Inhalt, der zumindest teilweise verschlüsselt ist, sowie einen sicheren
Behälter,
der Kontrollinformationen enthält,
die dazu bestimmt sind, die Verwendung des Inhalts zu kontrollieren,
einschließlich mindestens
eines Schlüssels,
der sich zur Entschlüsselung
mindestens eines Teiles des Inhalts eignet. Der Media-Player enthält ferner
eine Kontrollanordnung, die Mittel zum Öffnen sicherer Behälter und zum
Extrahieren kryptographischer Schlüssel enthält, sowie Mittel zum Entschlüsseln des
verschlüsselten
Teils des Inhalts.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
beigefügten
Zeichnungen, die in die vorliegende Beschreibung aufgenommen sind
und einen Teil derselben bilden, zeigen ein Ausführungsbeispiel der Erfindung
und dienen zusammen mit der Beschreibung dazu, die Vorteile und
Grundprinzipien der Erfindung zu erläutern. In den Zeichnungen zeigen:
-
1 ein
allgemeines System gemäß der vorliegenden
Erfindung,
-
2 einen
beispielhaften Header 201 gemäß der vorliegenden Erfindung,
-
3 ein
allgemeines Kodierungsformat gemäß der vorliegenden
Erfindung,
-
4 eine
Art zum Speichern einer Darstellung eines Werkes gemäß der vorliegenden
Erfindung,
-
5 ein
Beispiel für
ein Kontrollnachricht-Format,
-
6 ein
Flussdiagramm, das ein Ausführungsbeispiel
der Schritte zeigt, die unter Verwendung der Funktionsblöcke der 1 ausgeführt werden,
-
7 eine
Form, in der die Kontrollnachrichten im Kontrollblock 13 gespeichert
werden können,
-
8 das
MPEG-4 System 801 gemäß der vorliegenden
Erfindung,
-
9 ein
Beispiel für
ein Nachrichten-Format,
-
10 eine IPMP-Tabelle gemäß der vorliegenden Erfindung,
-
11 ein System gemäß der vorliegenden Erfindung,
-
12 ein Ausführungsbeispiel
des DigiBox-Formats,
-
13 ein Beispiel für ein RealNetworks-Dateiformat
(RMFF),
-
14 zeigt ein RNPFF-Format gemäß der vorliegenden Erfindung,
-
15 den Fluss von Veränderungen an Daten in dem RealNetworks-Dateiformat
in einer Architektur gemäß der vorliegenden
Erfindung,
-
16 eine Standard-RealNetworks-Architektur,
-
17 eine beispielhafte Architektur, in der ein "Trust Plug-in" innerhalb der gesamten
RealNetworks-Architektur läuft,
-
18 ein Bitstrom-Format gemäß den Grundprinzipien der vorliegenden
Erfindung,
-
19 ein Ausführungsbeispiel
eines Schutzes, angewandt am MP3-Format,
-
20 ein Ausführungsbeispiel
eines MP3-Players, der dafür
entwickelt ist, einen geschützten
Inhalt zu verarbeiten und zu rendern,
-
21 den Datenfluss in einem Ausführungsbeispiel,
bei dem eine geschützte
MPEG-4 Datei gemäß der vorliegenden
Erfindung erstellt werden kann,
-
22 den Datenfluss in einem Ausführungsbeispiel,
bei dem die Kontrolle gemäß der vorliegenden
Erfindung in einen bestehenden MPEG-4-Strom aufgenommen werden kann,
-
23 ein System gemäß den Grundprinzipien der vorliegenden
Erfindung,
-
24 ein System gemäß den Grundprinzipien der vorliegenden
Erfindung,
-
25 ein Beispiel für einen Datenverbund-Strom
(engl.: aggregate stream) gemäß der vorliegenden
Erfindung,
-
26 ein Header CMPO 2601 gemäß der vorliegenden
Erfindung,
-
27 beispielhafte Inhaltsverwaltungs- und schutz-Objekte
(engl.: Content Management Protection Objects) gemäß den Grundprinzipien
der vorliegenden Erfindung, und
-
28 ein Beispiel für eine CMPO Datenstruktur 2801 gemäß der vorliegenden
Erfindung.
-
DETAILLIERTE
BESCHREIBUNG
-
Im
Folgenden wird auf Implementierungen gemäß den Grundprinzipien der vorliegenden
Erfindung, wie sie in den beigefügten
Zeichnungen dargestellt sind, im Detail Bezug genommen.
-
Die
folgenden US-Patente und US-Anmeldungen, die jeweils dem Anmelder
der vorliegenden Anmeldung übertragen
wurden, werden hiermit unter Bezugnahme in ihrer Gesamtheit in die
vorliegende Erfindung aufgenommen: Ginter, et al., "Systems and Methods
for Secure Transaction Management and Electronic Rights Protection," U.S. Patentanmeldung Aktenzeichen
08/964,333, eingereicht am 4. November, 1997 ("Ginter '333");
Ginter, et al., "Trusted
Infrastructure Support Systems, Methods and Techniques for Secure
electronic commerce, Electronic Transactions, Commerce Process Control
Automation, Distributed Computing, and Rights Management," U.S. Patentanmeldung
Aktenzeichen 08/699,712, eingereicht am 12. August 1996 ("Ginter '712"); Van Wie, et al, "Steganographic Techniques
for Securely Delivering Electronic Digital Rights Management Information
Over Insecure Communications Channels," U.S. Patentanmeldung Aktenzeichen 08/689,606, eingereicht
am 12. August 1996 ("Van
Wie"); Ginter, et.
al "Software Tamper
Resistance and Secure Communication," U.S. Patentanmeldung Aktenzeichen 08/706,206,
eingereicht am 30. August 1996 ("Ginter, '206"); Shear, et al, "Cryptographic Methods,
Apparatus & Systems
for Storage Media Electronic Rights Management in Closed & Connected Appliances," U.S. Patentanmeldung
Aktenzeichen 08/848,077, eingereicht am 15. Mai 1997 ("Shear"); Collberg et al, "Obfuscation Techniques
for Enhancing Software Security," U.S.
Patentanmeldung Aktenzeichen 09/095,346, eingereicht am 9. Juni
1998 ("Collberg"); Shear, "Database Usage Metering
and Protection System and Method," U.S. Patent Nr. 4,827,508, erteilt
am 2. Mai 1989 ("Shear
Patent").
-
Die 1 zeigt
ein Media-System 1, das in der Lage ist, gestreamten Multimedia-Inhalt
zu akzeptieren, zu decodieren und zu rendern. Es handelt sich um
ein allgemeines System, obgleich es Elemente basierend auf der MPEG-4
Spezifikation enthält.
Das Media-System 1 kann Software-Module, Hardware (einschließlich integrierter
Schaltkreise) oder eine Kombination hiervor enthalten. Bei einem Ausführungsbeispiel
kann das Media-System 1 eine sichere Verarbeitungsumgebung
(Protected Processing Environment: PPE) einschließen, wie
sie in der Anmeldung '333
von Ginter beschrieben ist.
-
In 1 stellt
ein Bitstrom 2 eingegebene Informationen dar, die von dem
System 1 empfangen werden. Der Bitstrom 2 kann über einen
Anschluss zu einem externen Netzwerk (z. B. ein Internetanschluss,
ein Kabelanschluss, eine Funkübertragung von
einem Satellitensender usw.) oder aus einer tragbaren Speichervorrichtung,
wie z. B. ein DVD-Player, empfangen werden.
-
Der
Bitstrom 2 besteht aus einer Gruppe zusammengehöriger Informationsströme, einschließlich eines
Organisations-Stroms 3, eines Audio-Stroms 4,
eines Video- Stroms 5,
eines Kontroll-Stroms 6 und eines Info-Stroms 31.
Jeder dieser Ströme
ist in den Gesamt-Bitstrom 2 hinein kodiert. Jeder von
ihnen stellt eine Kategorie von Strömen dar, so dass beispielsweise
der Video-Strom 5 aus einer Vielzahl separater Video-Ströme gebildet
sein kann.
-
Diese
Ströme
entsprechen im allgemeinen Strömen,
die im MPEG-4 Format wie folgt beschrieben sind:
Der Organisations-Strom 3 entspricht
im Allgemeinen dem BIFS-Strom und dem OD ("Objektdeskriptor" (engl.: Object Descriptor))-Strom.
-
Der
Audio-Strom 4 und der Video-Strom 5 entsprechen
im Allgemeinen den Audio- und Video-Strömen.
-
Der
Kontroll-Strom 6 entspricht im Allgemeinen dem IPMP-Strom.
-
Der
Audio-Strom 4 enthält
komprimierte (und möglicherweise
verschlüsselte)
digitale Audio-Informationen. Diese Informationen werden dazu verwendet,
den Ton zu erzeugen, der von dem Media-System 1 gerendert
und ausgegeben wird. Der Audio-Strom 1 kann mehrfache Audio-Ströme darstellen.
Diese Mehrfachströme
können
zusammen wirken, um die Audio-Ausgabe zu erzeugen, oder können alternative
Audio-Ausgaben darstellen.
-
Der
Video-Strom 5 enthält
komprimierte (und möglicherweise
verschlüsselte)
digitale Video-Informationen. Diese Informationen werden dazu verwendet,
die Bilder und Videos zu erzeugen, die von dem Media-System 1 gerendert
und ausgegeben werden. Der Video-Strom 5 kann mehrfache
Video-Ströme darstellen.
Diese Mehrfachströme
können
zusammen wirken, um die Video-Ausgabe zu erzeugen, oder können alternative
Video-Ausgaben darstellen.
-
Der
Organisations-Strom 3 enthält organisatorische Informationen
und Metadaten, die mit dem zu rendernden Werk in Beziehung stehen.
Diese Informationen können
einen Baum oder eine andere organisatorische Vorrichtung einschließen, die
Audio- und Video-Ströme
in Objekte gruppiert. Diese Informationen können auch Metadaten enthalten,
die dem gesamten Werk, den Objekten oder den einzelnen Strömen zugeordnet
sind.
-
Der
Kontroll-Strom 6 enthält
Kontrollinformationen, die im Allgemeinen in Header-Informationen und
Nachrichten unterteilt sind. Die Header-Informationen umfassen einen
Identifikator für
jede einzelne Nachricht. Der Inhalt der Nachrichten, der weiter
unten beschrieben werden wird, kann kryptographische Schlüssel und
Regeln enthalten, die die Inhaltsverwendung regeln.
-
Der
Info-Strom 31 führt
zusätzliche
Informationen mit sich, die dem Inhalt in anderen Komponenten des
Bitstroms 2 zugeordnet sind, einschließlich, obgleich nicht darauf
beschränkt,
Graphiken, die Kunstobjekte für
die Hülle
darstellen, Texte für
die Liedtexte, kodierte Notenblätter
oder andere Notenschriften, unabhängige Werbeinhalte, Konzertinformationen,
Fanclub-Informationen usw. Der Info-Strom 31 kann ferner
Systemverwaltungs- und -kontrollinformationen und/oder andere Komponenten
mit sich führen,
wie z. B. Updates für
Software oder Firmware im Media-System 1, Algorithmus-Implementierungen
für inhaltsspezifische
Funktionen, wie z. B. das so genannte Watermarking, etc.
-
Jeder
dieser Ströme
setzt sich aus Paketen mit Informationen zusammen. In einem Ausführungsbeispiel
hat jedes Paket eine Länge
von 32 Bytes. Da ein einziger Kommunikationskanal (z. B. ein Kabel, ein
Bus, eine Infrarot- oder Funkverbindung) Pakete aus jedem der Ströme enthält, müssen die
Pakete als zu einem bestimmten Strom gehörig identifiziert werden. In
einem bevorzugten Ausführungsbeispiel
erfolgt dies durch Aufnahme eines Headers, der einen bestimmten
Strom identifiziert und die Anzahl der folgenden Pakete angibt,
die Teil dieses Stroms sind. In einem anderen Ausführungsbeispiel
kann jedes Paket individuelle Strom-Informationen enthalten.
-
Ein
beispielhafter Header 201 ist in 2 gezeigt.
Dieser Header kann im allgemeinen für den Organisations-Strom,
den Audio-Strom und den Video-Strom verwendet werden. Ein Header
für den Kontroll-Strom
ist nachstehend beschrieben. Der Header 201 enthält ein Feld 202,
das ein Bitmuster enthält,
das den Header 201 als Header identifiziert. Das Feld 203 identifiziert
die besondere Art von Strom (z. B. Audio-Strom, Organisations-Strom,
Kontroll-Strom, usw.) Das Feld 204 enthält einen Elementary Stream-Identifikator
(ES_ID), der dazu verwendet wird, den besonderen Strom zu identifizieren,
und in solchen Fällen
eingesetzt werden kann, in denen Mehrfachströme eines besonderen Strom-Typs gleichzeitig
angetroffen werden können.
Das Feld 207 enthält
einen Zeitstempel, der von dem System dazu verwendet wird, die verschiedenen
Ströme
zu synchronisieren, ein schließlich
dem Rendering der Ströme.
Der Composite-Block 11 kann beispielsweise die verstrichene
Zeit ab Beginn des Rendering verfolgen. Der Zeitstempel 207 kann
von dem Composite-Block 11 verwendet werden, um zu bestimmen,
wann jedes Objekt gerendert werden soll. Der Zeitstempel 207 kann
deshalb eine ab Beginn des Renderings verstrichene Zeit spezifizieren,
und der Composite-Block 11 kann
diese verstrichene Zeit dazu nutzen zu bestimmen, wann das dazugehörige Objekt
zu rendern ist.
-
Das
Feld 205 enthält
einen Regelungs-Indikator (engl.: governance indicator). Das Feld 206 identifiziert
die Anzahl aufeinander folgender Pakete, die Teil des identifizierten
Stroms sind. Jedes Mal ist die relevante Information in ein binäres Format
kodiert. Beispielsweise kann das Feld 202 eine willkürliche Bitfolge
enthalten, die als einen Header anzeigend erkannt wird, und das
Feld 203 kann zwei Bits enthalten, wodurch ein Kodieren
von vier verschiedenen Strom-Typen ermöglicht wird.
-
Unter
erneuter Bezugnahme auf die 1 enthält das System 1 einen
Demux 7, der als Eingabe den Bitstrom 2 akzeptiert
und individuelle Ströme (gelegentlich
als Elementary Streams oder "ESs" bezeichnet) auf
geeignete Funktionsblöcke
des Systems verteilt.
-
Der
Bitstrom 2 kann in dem in 3 gezeigten
Format kodiert sein. In dieser Figur trifft man auf den Header 301 in
dem Bitstrom, auf den das Paket 302 folgt, und dies setzt
sich fort bis zum Paket 308.
-
Wenn
der Demux 7 auf den Header 301 trifft, identifiziert
der Demux 7 den Header 301 als Header und verwendet
die Header-Informationen, um die Pakete 302-305 als
Pakete des Organisations-Stroms zu identifizieren. Der Demux 7 verwendet
diese Informationen, um diese Pakete zum Organisations-Block 8 zu
leiten. Der Demux 7 verarbeitet den Header 306 auf ähnliche
Weise und verwendet die enthaltenen Informationen dazu, die Pakete 307 und 308 zum
AV ("Audio Video")-Block 9 zu leiten.
-
Der
AV-Block 9 enthält
einen Dekomprimierer 10, der Elementary Streams aus dem
Audio-Strom 4 und dem Video-Strom 5 akzeptiert
und diese Ströme
dekomprimiert. Im dekomprimierten Zustand wird die Strom-Information
in ein Format gebracht, die dessen Handhabung und Ausgabe (über eine
Video-Anzeige, Lautsprecher etc.) ermöglicht. Sind Mehrfachströme vorhanden
(z. B. zwei Videoströme,
die jeweils einen Aspekt einer Videosequenz beschreiben), verwendet
der AV-Block 9 den ES_ID, um jedes Paket dem entsprechenden
Strom zuzuordnen.
-
Der
Organisations-Block 8 speichert Pointer-Informationen,
die besondere Audio-Ströme und Video-Ströme, die
in einem besonderen Objekt enthalten sind, identifizieren, sowie
Metadaten-Informationen, die beispielsweise beschreiben, wo sich
das Objekt befindet, wann es angezeigt werden soll (z. B. der dem
Objekt zugeordnete Zeitstempel) und seine Beziehung zu anderen Objekten
(z. B. befindet sich ein Video-Objekt vor oder hinter einem anderen
Video-Objekt). Diese Organisation kann hierarchisch beibehalten
werden, wobei einzelne Ströme
auf der untersten Ebene, Gruppierungen von Strömen zu Objekten auf einer höheren Ebene,
komplette Szenen auf einer noch höheren Ebene und das gesamte Werk
auf der höchsten
Ebene dargestellt werden.
-
Die 4 zeigt
eine Art, auf die der Organisations-Block 8 eine Darstellung
eines Werks speichern kann. In dieser Figur stellt ein Baum 401 ein gesamtes
audiovisuelles Werk dar. Ein Zweig 402 stellt eine Organisation
des Werkes auf hoher Ebene dar. Dieser kann beispielsweise das gesamte
Video oder möglicherweise
das Audio und das Video, das einer besonderen Szene zugeordnet ist,
umfassen.
-
Der
Unterzweig 403 stellt eine Gruppe verwandter Video-Objekte
dar. Jedes dieser Objekte kann einen vollständigen Bildschirm oder ein
einzelnes Element innerhalb des Bildschirms enthalten. Beispielsweise
kann der Unterzweig 403 einen Hintergrund darstellen, der
sich von einer Aufnahme zur nächsten
nicht stark verändert.
Wenn sich das Video zwischen zwei Referenzpunkten bewegt (z. B.
eine Konversation, bei der der Kamera-Blickpunkt von einem Gesicht
zum anderen wechselt), könnte
der Unterzweig 404 einen zweiten Hintergrund darstellen, der
bei dem zweiten Blickpunkt verwendet wird.
-
Die
Knoten (engl.: nodes) 405 und 406 können besondere
Video-Objekte darstellen, die in der verwandten Gruppe enthalten
sind. Der Knoten 405 könnte
beispielsweise einen entfernten Gebirgszug darstellen, während der
Knoten 406 einen Baum darstellt, der sich unmittelbar hinter
einer der Personen befindet.
-
Jeder
der Knoten spezifiziert oder enthält einen besonderen ES_ID,
der den Strom darstellt, der die Informationen enthält, die
von diesem Knoten verwendet werden. Beispielsweise enthält der Knoten 405 den
ES_ID 407, der einen bestimmten Video-Strom identifiziert,
der komprimierte (und möglicherweise
verschlüsselte)
digitale Informationen enthält,
die den Gebirgszug darstellen.
-
Der
Composite-Block 11 akzeptiert Eingaben aus dem Organisations-Block 8 und
dem AV-Block 9. Der Composite-Block 11 verwendet
die Eingaben aus dem Organisations-Block 8, um zu bestimmen, welche
spezifischen audiovisuellen Elemente zu einer beliebigen vorgegebenen
Zeit gebraucht werden, und um die Organisation und die Beziehung
dieser Elemente zu bestimmen. Der Composite-Block 11 akzeptiert dekomprimierte
audiovisuelle Objekte aus dem AV-Block 9, und organisiert
diese Objekte, wie dies durch Informationen aus dem Organisations-Block 8 spezifiziert
ist. Dann leitet der Composite-Block 11 die organisierten
Informationen weiter zur Rendering-Vorrichtung 12 (Wiedergabevorrichtung, engl.:
rendering device) bei der es sich um einen Fernsehbildschirm, Stereo-Lautsprecher, etc.
handeln kann.
-
Der
Kontroll-Block 13 speichert Kontrollnachrichten, die durch
den Kontroll-Strom 6 empfangen werden können und/oder in andere Ströme mittels
Watermarking eingefügt
oder steganographisch kodiert werden können, einschließlich des
Audio-Stroms 4 und des Video-Stroms 5. Ein Kontrollnachricht-Format
ist in 5 dargestellt, das die Kontroll-Nachricht 501 zeigt.
Die Kontrollnachricht 501 besteht aus einem Header 502 und
einer Nachricht 503. Der Header 502 besteht aus
einem Feld 508, das ein Bitmuster enthält, das die folgenden Informationen
als Header identifiziert, einem Stromtyp-Feld 509, das
dieses als Header für
den Organisationsstrom identifiziert, einem ID-Feld 504,
das diese bestimmte Kontrollnachricht identifiziert, einem Pointer-Feld 505,
das diejenigen ESs identifiziert, die von dieser Nachricht kontrolliert
werden, einem Zeitstempel-Feld 507, das den bestimmten
Abschnitt des Stroms identifiziert, der von dieser Kontrollnachricht kontrolliert
wird (dies kann angeben, dass der gesamte Strom kontrolliert wird)
und einem Längen-Feld 506,
das die Länge
(in Bytes) der Nachricht 503 spezifiziert. Die Nachricht 503 kann
Pakete enthalten, die auf den Header 502 folgen, wobei
das allgemeine, in 3 gezeigte Format verwendet
wird. In dem gezeigten Beispiel trägt die Kontroll-Nachricht 501 die
eindeutige ID 111000, kodiert im ID-Feld 504. Diese Kontrollnachricht
kontrolliert die ESs 14 und 95, wie dies durch
das Pointer-Feld 505 angezeigt wird. Die dazugehörige Nachricht
umfasst 1024 Bytes, wie dies durch das Längen-Feld 506 angegeben
wird.
-
In
einem alternativen Ausführungsbeispiel kann
die Zuordnung von Kontrolle zum Inhalt im Organisations-Block 8 stattfinden,
der einen Pointer auf bestimmte Kontrollnachrichten speichern kann,
zusammen mit den Metadaten, die den Strömen, Objekten etc. zugeordnet
sind. Dies kann jedoch dahingehend nachteilig sein, dass es wünschenswert
sein mag, diese Zuordnung vor einer Entdeckung oder Sabotage durch
den Benutzer zu schützen.
Da der Kontroll-Block 13 im allgemeinen auf jeden Fall
geschützt
werden muss, kann ein Speichern dieser Zuordnung in diesem Block
die Sicherung des Organisationsblocks 8 weniger notwendig
machen.
-
Der
Kontroll-Block 13 übt
die Kontrolle über das
System 1 durch die Kontroll-Leitungen 14, 15 und 16 aus,
die Aspekte des Organisations-Blocks 8, des AV-Blocks 9 bzw.
des Composite-Blocks 11 kontrollieren. Jede dieser Kontroll-Leitungen
kann eine Zwei-Wege-Kommunikation gestatten.
-
Die
Kontroll-Leitungen 14 und 15 sind in Kommunikation
mit einem so genannten AV-Block Stream Flow Controller 18 (Strom-Fluss-Steuerung) und
einem so genannten Organisations-Block Stream Flow Controller 17 gezeigt.
Diese Stream Flow Controller zum Kontrollieren der Ströme enthalten
Funktionalitäten,
die von dem Kontroll-Block 13 kontrolliert werden. In dem
dargestellten Ausführungsbeispiel
sind die Stream Flow Controller als die erste Stufe in einer zweistufigen
Pipeline gezeigt, wobei die Informationen von dem Stream Flow Controller
verarbeitet und dann zu dem dazugehörigen Funktionsblock weitergeleitet
werden. Dies ermöglicht
eine Isolierung der Kontrollfunktionalität von der Inhaltsverarbeitungs-
und Anzeigefunktionalität
des Systems und ermöglicht
ein Zufügen
einer Kontrolle ohne ein Ändern
der den Blocks zugrunde liegenden Funktionalität. In einem alternativen Ausführungsbeispiel
können
die Stream Flow Controller direkt in die dazugehörigen Funktionsblöcke integriert
sein.
-
Die
Stream Flow Controller 17 und 18 enthalten kryptographische
Engines 19 bzw. 20. Diese kryptographischen Engines
arbeiten unter der Kontrolle des Kontroll-Blocks 13, um
die aus dem Demux 7 empfangenen verschlüsselten Paketströme zu entschlüsseln und/oder
kryptographisch zu validieren (z. B. eine sichere Hashwertbildung
durchzuführen,
ein Nachrichten-Authentifizierungscode, und/oder Digitalsignatur-Funktionen).
Die Entschlüsselung
und Validierung kann entsprechend den Schutzanforderungen des Stroms
selektiv oder optional sein.
-
Die
kryptographischen Engines 19 und 20 können relativ
komplex sein und beispielsweise einen Validierungsrechner enthalten,
der die kryptographische Hashwertbildung, die Nachrichten-Authentifizierungscode-Berechnung
und/oder andere kryptographische Validierungsverfahren durchführt. Wie dies
weiter unten beschrieben wird, können
darüber hinaus
auch zusätzliche
Arten einer regelungsspezifischen Verarbeitung verwendet werden.
In einem alternativen Ausführungsbeispiel
kann ein einziger Stream Flow Controller sowohl für den Organisations-Strom 3 als
auch für
die Audio/Video-Ströme 4-5 verwendet
werden. Dadurch können
die Kosten des Systems 1 sowie der von ihm eingenommene
Raumbedarf reduziert werden. Diese Reduzierungen können beträchtlich
sein, da das System 1 mehrfache AV-Blöcke enthalten kann, die jeweils
einen separaten Audio- oder Video-Strom parallel verarbeiten. Diese
Alternative kann jedoch zu einer zusätzlichen Latenz führen, die
in einem Echtzeit-System inakzeptabel ist.
-
Wenn
die Stream Flow Controller in einem einzigen Block konzentriert
sind, können
sie direkt in den Demux 7 aufgenommen werden, der eine
Regelungsverarbeitung (engl.: governance processing) durchführen kann,
ehe er die Ströme
zu den Funktionsblöcken
leitet. Ein derartiges Ausführungsbeispiel würde eine
geregelte Entschlüsselung
oder Validierung des gesamten Bitstroms 2 ermöglichen
und könnte
vor dem Verteilen der Ströme
auf die einzelnen Funktionsblöcke
erfolgen. Die Verschlüsselung des
gesamten Bitstroms 2 (im Gegensatz zur individuellen Entschlüsselung
einzelner ESs) kann ohne die Aufnahme der Stream-Controller-Funktionalität in den
Demux 7 schwierig oder unmöglich sein, da der Demux 7 andernfalls
möglicherweise
nicht in der Lage ist, die Header-Informationen zu erfassen oder zu
lesen, die erforderlich sind, um die Ströme auf die Funktionsblöcke zu verteilen
(wobei diese Header-Informationen wahrscheinlich verschlüsselt sind).
-
Wie
oben erwähnt,
kann jeder der einzelnen Ströme,
die in dem Bitstrom 2 enthalten sind, einzeln verschlüsselt werden.
Ein verschlüsselter
Strom kann von einem bestimmten Indikator in dem Header des Stroms
identifiziert werden, der in 2 als
Regelungs-Indikator (engl.: Governance Indicator) 205 gezeigt
ist.
-
Wenn
ein Header von dem Demux 7 zu dem geeigneten Funktionsblock
weitergeleitet wird, liest der diesem Block zugeordnete Stream Flow
Controller den Header und bestimmt, ob die folgenden Pakete verschlüsselt sind
oder anders geregelt werden müssen.
Wenn der Header anzeigt, dass keine Regelung ver wendet wird, leitet
der Stream Flow Controller den Header und die Pakete durch zu den
Funktionsblöcken
ohne irgendeine Veränderung.
Der Regelungs-Indikator 205 kann so entwickelt sein, dass herkömmlich kodierter
Inhalt (z. B. ungeschützter MPEG-4
Inhalt) als Inhalt erkannt wird, der keinen Regelungs-Indikator
hat und von daher zur normalen Verarbeitung durchgeleitet wird.
-
Wenn
ein Stream Flow Controller einen gesetzten Regelungs-Indikator erfasst,
leitet er den ES_ID, der diesem Strom zugeordnet ist, und den diesen
aktuellen Paketen zugeordneten Zeitstempel entlang der Kontrollleitungen 14 oder 15 zu
dem Kontroll-Block 13. Der Kontroll-Block 13 verwendet
dann den ES_ID und die Zeitstempel-Informationen dazu zu identifizieren,
welche Kontrollnachrichten) diesem ES zugeordnet ist bzw. sind.
Zugeordnete Nachrichten werden dann aufgerufen und möglicherweise
verarbeitet, wie sie für
Regelungszwecke verwendet werden können.
-
Ein
einfacher Regelungsfall ist in 6 gezeigt,
der Schritte zeigt, die unter Verwendung der Funktionsblöcke der 1 ausgeführt werden.
Im Schritt 601 trifft der Demux 7 auf einen Header
und bestimmt, dass der Header Teil des AV-Stroms ist. Im Schritt 602 leitet
der Demux 7 den Header an den AV-Stream Controller 18.
Im Schritt 603 liest der AV-Stream Controller 18 den
Header und bestimmt, dass der Regelungs-Indikator gesetzt ist, wodurch eine
weitere Verarbeitung entlang des Pfades 604 ausgelöst wird.
Im Schritt 605 erhält
der AV-Stream Controller 18 den
ES_ID und den Zeitstempel aus dem Header und überträgt diese an den Kontroll-Block 13 entlang
der Kontrollleitung 15. Im Schritt 606 sucht der
Kontroll-Block 13 den ES_ID und bestimmt, dass der ES_ID
einer bestimmten Kontrollnachricht zugeordnet ist. Im Schritt 611 verwendet
der Kontroll-Block 13 die
Zeitstempel-Information, um unter Kontrollnachrichten auszuwählen, für den Fall,
dass einem bestimmten ES mehr als eine Kontrollnachricht zugeordnet
ist. Im Schritt 607 greift der Kontroll-Block 13 auf
die entsprechende Kontrollnachricht zu und erhält einen oder mehrere kryptographische
Schlüssel
zur Entschlüsselung und/oder
Validierung. Im Schritt 608 leitet der Kontroll-Block 13 den
bzw. die kryptographischen Schlüssel
entlang der Kontrollleitung 15 zu dem AV-Stream Controller 18.
Im Schritt 609 verwendet der AV-Stream Controller 18 den
kryptographischen Schlüssel
als eine Eingabe in die kryptographische Engine 20, die
die auf den Header folgenden Pakete entschlüsselt und/oder validiert, wenn
diese Pakete vom Demux 7 empfangen werden. Im Schritt 610 werden dann
die entschlüsselten
Pakete zum AV-Block 9 weitergeleitet, der diese auf herkömmliche
Weise dekomprimiert und verarbeitet.
-
Die
Zeitstempel-Informationen können
sich als nützlich
erweisen, wenn man wünscht,
die Kontrollnachricht, die für
einen bestimmten ES anwendbar ist, zu ändern. Beispielsweise kann
es nützlich sein,
verschiedene Abschnitte eines Stroms mit verschiedenen Schlüsseln zu
kodieren, so dass ein Angreifer, der einen Schlüssel (oder auch eine Vielzahl von
Schlüsseln)
knackt, nicht in der Lage sein wird, den Inhalt zu verwenden. Dies
kann dadurch erfolgen, dass man dem gleichen Strom eine Vielzahl
von Kontrollnachrichten zuordnet, wobei jede Kontrollnachricht für einen
bestimmten Zeitraum gültig
ist. Die Zeitstempelinformationen würden dann dazu verwendet werden
um auszuwählen,
welche Kontrollnachrichten (und welcher Schlüssel) zu einer bestimmten Zeit
zu benützen
wäre. Alternativ
dazu kann eine Kontrollnachricht verwendet werden, wobei jedoch
aktualisierte Informationen durch den Kontrollstrom eingeführt werden,
wobei diese Updates aus einem neuen Zeitstempel und einem neuen
Schlüssel
bestehen.
-
In
einem alternativen Ausführungsbeispiel kann
der Kontroll-Block 13 die entsprechenden Schlüssel an
den entsprechenden Stream Flow Controller proaktiv senden, indem
die Zeitstempel-Informationen verwendet werden, um zu bestimmen, wann
ein Schlüssel
notwendig sein wird. Dies kann die gesamte Latenz verringern.
-
Die
Kontrollleitung 16 aus 1 kommt
ins Spiel, sobald die Informationen vom Organisations-Block 8 und
vom AV-Block 9 an den Composite-Block 11 gesendet
wurden, und das fertige Werk für
ein Rendering durch die Rendering-Vorrichtung 12 bereit
ist. Wenn der Composite-Block 11 ein Objekt an die Rendering-Vorrichtung 12 sendet,
sendet der Composite-Block 11 eine Start-Nachricht an den Kontroll-Block 13.
Diese Nachricht identifiziert das Objekt (einschließlich aller
zugehöriger
ES_IDs) und spezifiziert die Startzeit der Anzeige (oder einer anderen
Wiedergabe) dieses Objekts. Wird ein Objekt nicht mehr gerendert,
sendet der Composite-Block 11 eine End-Nachricht an den
Kontroll-Block 13 und spezifiziert, dass das Rendering
des Objekts beendet wurde, sowie den Zeitpunkt, zu dem die Beendigung eintrat.
Mehrfache Kopien eines bestimmten Objekts können gleichzeitig gerendert
werden. Aus diesem Grund können
die vom Composite-Block 11 gesendeten Start- und End-Nachrichten
eine zugehörige Instanz-ID
enthalten, die spezifiziert, welche Instanz gerendert wird.
-
Der
Kontroll-Block 13 kann Informationen speichern, die sich
auf Start- und End-Zeiten
bestimmter Objekte beziehen, und/oder kann diese Informationen durch
den Port 21 an externe Vorrichtungen (z. B. einen externen
Server 30) weiterleiten. Diese Informationen ermöglichen
dem Kontroll-Block 13 nicht nur zu verfolgen, welche Objekte
entschlüsselt
wurden, sondern welche Objekte tatsächlich verwendet wurden. Davon
wird eventuell Gebrauch gemacht, da das System 1 viel mehr
Objekte entschlüsseln,
validieren und/oder dekomprimieren kann als tatsächlich verwendet werden. Der
Kontroll-Block 13 kann auch die Verwendungsdauer der Objekte
bestimmen und er kann bestimmen, welche Objekte zusammen verwendet
wurden. Informationen dieser Art können für hochentwickelte Abrechnungs-
und Prüfungssysteme
verwendet werden, die weiter unten beschrieben werden.
-
Die
Kontrollleitung 16 kann auch dazu verwendet werden, den
Betrieb des Composite-Blocks 11 zu kontrollieren. Insbesondere
kann der Kontroll-Block 13 Informationen speichern, die
spezifizieren, wann das Rendering eines bestimmten Objekts gültig ist,
und er kann verfolgen, wie oft ein Objekt gerendert wurde. Wenn
der Kontroll-Block 13 bestimmt, dass ein Objekt illegal
gerendert wurde (d.h. durch einen Verstoß gegen Regeln, die das Rendering
kontrollieren), kann der Kontroll-Block 13 den Betrieb
des Composite-Blocks 11 beenden oder die Löschung des
illegalen Objekts erzwingen.
-
In
einem alternativen Ausführungsbeispiel kann
die Kontrollhöhe,
die von der Kontrollleitung 16 vorgesehen wird, zumindest
zum Teil bereitgestellt werden, ohne dass diese Leitung vorhanden
ist. Der Kontroll-Block 13 kann stattdessen einen Hashwert der
gegenwärtig
für den
Organisations-Block 8 gültigen
Organisationsinformationen speichern. Dieser Hashwert kann durch
den Kontroll-Strom 6 empfangen werden, oder alternativ
dazu von dem Kontroll-Block 13 basierend auf den im Organisations-Block 8 enthaltenen
Informationen erzeugt werden.
-
Der
Kontroll-Block 13 kann periodisch einen Hashwert der gegenwärtig im
Organisations-Block 8 vorhandenen Informationen erzeugen
und diesen mit dem gespeicherten Hashwert vergleichen. Ein Unterschied
kann anzeigen, dass eine unbefugte Änderung an den Informationen
im Organisations-Block 8 vorgenommen wurde, und dadurch
möglicherweise einem
Benutzer erlaubt wird, Informationen in einer Weise zu rendern,
die gegen die Regeln, die diesen Informationen zugeord net sind,
verstößt. In einem solchen
Fall kann der Kontroll-Block 13 entsprechende Schritte
unternehmen, einschließlich
eines Löschens
der Informationen, die gegenwärtig
im Organisations-Block 8 vorhanden sind.
-
Wenn
das System 1 so entwickelt ist, dass der Organisations-Block 8 die
Inhaltsverwendung durch den Composite-Block 11 kontrolliert,
so dass der Inhalt nicht gerendert werden kann, außer dies
ist durch die Organisationsinformationen spezifiziert, kann der
Kontroll-Block 13 in der Lage sein, das Rendering von Informationen
dadurch zu kontrollieren, dass er prüft, ob die gegenwärtigen Inhalte
des Organisations-Blocks mit dem Hashwert übereinstimmen, der von dem
Kontroll-Block 13 empfangen
wurde, wodurch mindestens ein Grund für das Vorhandensein der Kontrollleitung 16 eliminiert
wurde.
-
Der
Kontroll-Block 13 kann auch dafür verantwortlich sein, den
Ursprung, die Integrität,
die Echtheit oder andere Eigenschaften des empfangenen Inhalts mittels
kryptographischer Validierungsmittel, wie sichere Hashwertbildung,
Nachrichten-Authentifizierungscodes,
und oder Digitalsignatur-Funktionen sicher zu validieren.
-
Das
System 1 kann auch einen so genannten Inter-Rights-Point
umfassen, der als IRP 22 angegeben ist. Der IRP 22 ist
eine geschützte
Verarbeitungsumgebung (z. B. ein PPE), in der Regeln/Kontrollen
verarbeitet werden können
und die empfindliche Informationen speichern kann, wie z. B. kryptographische
Schlüssel.
Der IRP 22 kann im Kontroll-Block 13 aufgenommen
sein, oder es kann sich um ein separates Modul handeln. Wie dargestellt, kann
der IRP 22 eine CPU 23 (die jede Art von Verarbeitungseinheit
sein kann), eine kryptographische Engine 24, einen Zufallsgenerator 25,
eine Echtzeituhr 26 und einen Sicherheitsspeicher 27 umfassen. In
besonderen Ausführungsbeispielen
können
einige dieser Elemente weggelassen und zusätzliche Funktionalitäten aufgenommen
werden.
-
Regeln zur Regelung (engl.:
Governance Rules)
-
Die
vom Kontroll-Block 13 gespeicherten Kontrollnachrichten
können
sehr komplex sein. Die 7 zeigt die Form, in der die
Kontrollnachrichten im Kontroll-Block 13 gespeichert
werden können,
bestehend aus einem Array 717. Die Spalte 701 besteht aus
der Adresse, unter der die Kontrollnachrichten gespeichert sind.
Die Spalte 702 besteht aus dem Identifikator für jede Kontrollnachricht.
Diese Funktion kann mit der der Spalte 701 kombiniert werden,
indem die Ortsinfor mationen der Spalte 701 als Identifikator
verwendet werden oder indem die Nachricht an einer Stelle gespeichert
wird, die dem Identifikator entspricht. Die Spalte 703 besteht
aus den ES_IDs für
jeden Strom, der von der Kontrollnachricht kontrolliert wird. Die
Spalte 704 besteht aus der Nachricht selbst. Somit hat
die an der Stelle 1 gespeicherte Kontrollnachricht die ID 15 und
kontrolliert den Strom 903.
-
In
einem einfachen Fall kann die Nachricht einen kryptographischen
Schlüssel
enthalten, der dazu verwendet wird, den Inhalt zu entschlüsseln, der
dem bzw. den Strömen
zugeordnet ist, die von der Nachricht kontrolliert werden. Dies
ist durch den kryptographischen Schlüssel 705 aus 7 gezeigt. Kryptographische
Schlüssel
und/oder Validierungswerte können
auch enthalten sein, um eine kryptographische Validierung der Integrität oder des
Ursprungs des Stroms zu ermöglichen.
-
In
einem komplexeren Fall kann die Nachricht eine oder mehrere Regeln
enthalten, die dazu bestimmt sind, den Zugriff auf geregelten Inhalt
bzw. dessen Verwendung zu regeln. Die Regeln können in eine Vielzahl von Kategorien
fallen.
-
Die
Regeln können
erfordern, dass ein bestimmter Aspekt des Systems 1 oder
ein Benutzer des Systems 1 vor der Entschlüsselung
oder der Verwendung des geregelten Inhalts überprüft wird. Beispielsweise kann
das System 1 eine System ID 28 enthalten, die
einen einzigartigen Identifikator für das System speichert. Eine
besondere, in einer Kontrollnachricht enthaltene Regel kann spezifizieren,
dass ein bestimmter Strom nur auf einem System entschlüsselt werden
kann, bei dem die System ID 28 einen bestimmten Wert hat.
Dies ist in Zeile 2 der 7 gezeigt, in der die Nachricht
als aus einer Regel und aus Befehlen bestehend dargestellt ist.
Die Regel kann implizit und von daher nicht explizit in der Tabelle
gespeichert sein (z. B. kann die Tabelle nur die Regel speichern,
die regelspezifischen Funktionen (Befehle), die von der Regel aufgerufen
werden, oder nur die Funktionen).
-
Wenn
der Stream Controller 18 auf einen Header für den Strom 2031 trifft,
der einen gesetzten Regelungs-Indikator enthält, wird der Stream Controller 18 in
diesem Fall die dazugehörige
ES_ID (2031) an den Kontroll-Block 13 weiterleiten.
Der Kontroll-Block 13 verwendet dann die ES_ID, um die Kontroll-Nachricht 20 zu
identifizieren, die den Strom 2031 regelt. Die Kontroll-Nachricht 20 enthält die Regel 706,
die Befehle 707 enthält
(oder aufruft), sowie eine autorisierte System-ID 708.
Die autorisierte System ID 708 kann von dem System 1 entweder
als Teil der Kontroll-Nachricht 20 oder als Teil einer
anderen Kontroll-Nachricht (z. B. der Kontroll-Nachricht 9) empfangen
worden sein, wobei die Kontroll-Nachricht 20 dann verweisen
könnte,
um Zugriff auf die autorisierte System ID zu bekommen. Ein solcher
Fall kann beispielsweise vorliegen, wenn ein Kabelkunde sich für eine Premium-Show
hat vorregistrieren lassen. Das Kabelsystem kann diese Registrierung
erkennen und den Benutzer ermächtigen,
diese Show anzusehen, indem es dem Benutzer eine der System-ID entsprechende
ID sendet.
-
Wird
die Regel 706 aufgerufen, greifen entsprechende Befehle 707 auf
die System-ID 28 zu und erhalten die System-ID-Nummer.
Dann vergleichen die Befehle diese Nummer mit der autorisierten
System-ID 708, die von der Regel 706 spezifiziert
wird. Stimmen die beiden Nummern überein, geben die Befehle 707 den
kryptographischen Schlüssel 709 an den
Stream Controller 18 frei, der den kryptographischen Schlüssel 709 verwendet,
um den Strom, der der ES_ID 2031 entspricht, zu entschlüsseln. Stimmen
die beiden Nummern nicht überein,
werden die Befehle 707 den kryptographischen Schlüssel 709 nicht
freigeben, so dass der Stream Controller 18 nicht in der
Lage ist, den Strom zu entschlüsseln.
-
Um
diese Funktionen auszuführen,
enthält der
Kontroll-Block 13 in einem Ausführungsbeispiel eine Verarbeitungseinheit
und einen Speicher oder hat auf dieselben Zugriff. Die Verarbeitungseinheit
ist vorzugsweise in der Lage, irgendeinen der Befehle auszuführen, die
in einer der Regeln enthalten sein oder von denselben aufgerufen
werden können.
Der Speicher wird die Regeln und die dazugehörigen Informationen (ID der
Kontrollnachricht und IDs irgendwelcher geregelter ESs) speichern.
-
Da
die Funktionen, die vom Kontroll-Block 13 ausgeführt werden,
empfindliche Funktionen sind und eine Regelung eines Inhalts beinhalten,
der wertvoll sein kann, kann der Kontroll-Block 13 teilweise oder
vollständig
durch eine Barriere geschützt
sein, die sich einem unautorisierten Eingriff und einer Beobachtung
widersetzt. Wie oben beschrieben, können die Verarbeitungseinheit,
der Sicherheitsspeicher und verschiedene andere regelungspezifische
Elemente in dem IRP 22 enthalten sein, der entweder im Kontroll-Block 13 enthalten
oder von demselben getrennt ist.
-
Der
Kontroll-Block 13 kann auch etwas komplexere Operationen
durchführen.
In einem Beispiel kann eine Kontrollnachricht erfordern, dass auf
Informationen aus dem System 1 nicht nur zugegriffen wird
und dieselben mit erwarteten Informationen verglichen werden, sondern
diese auch für
eine zukünftige
Verwendung gespeichert werden. Beispielsweise kann eine Kontrollnachricht
die Entschlüsselung eines
Stroms gestatten, jedoch erst nachdem die System ID 28 in
den Kontroll-Block 13 geladen
und dort gespeichert wurde. Dies würde einer Kontrollnachricht
gestatten, die gespeicherte System ID mit der System ID 28 regelmäßig oder
möglicherweise bei
jedem versuchten erneuten Betrachten eines bestimmten Stroms zu
vergleichen, wodurch die Kontrollnachricht sicherstellen kann, dass
der Strom nur auf einem einzigen System gespielt wird.
-
Der
Kontroll-Block 13 kann Informationen auch dynamisch erhalten.
Das System 1 kann beispielsweise die Benutzerschnittstelle 29 enthalten, die
jede Art von Benutzereingabefunktionalität (z. B. Hardware-Knöpfe, Informationen,
die auf einem Video-Bildschirm angezeigt werden, usw.) umfassen kann.
Eine bestimmte Regel aus einer Kontrollnachricht kann erfordern,
dass der Benutzer vor der erlaubten Entschlüsselung oder Verwendung eines Stroms
Informationen eingibt. Diese Informationen können beispielsweise ein Passwort
sein, welches die Regel dann mit einem gespeicherten Passwort vergleichen
kann, um sicherzustellen, dass der bestimmte Benutzer dazu autorisiert
ist, den Strom zu rendern.
-
Die
von dem Benutzer erhaltenen Informationen können komplizierter sein. Beispielsweise könnte eine
Regel verlangen, dass der Benutzer Zahlungsinformationen oder persönliche Informationen eingibt,
ehe die Freigabe eines kryptographischen Schlüssels gestattet wird. Bei den
Zahlungsinformationen könnte
es sich beispielsweise um eine Kreditkarten- oder Geldkartennummer
handeln. Die persönlichen
Informationen können
den Namen, das Alter, die Adresse, die E-Mail-Adresse, die Telefonnummer
usw. des Benutzers umfassen. Die eingegebenen Informationen können dann über den
Port 21 an den externen Server 30 zur Überprüfung geschickt werden.
Nach Empfang einer Verifikationsnachricht aus dem externen Server 30 könnte dann
die Regel die Freigabe eines kryptographischen Schlüssels autorisieren.
Alternativ dazu kann der Kontroll-Block 13 dafür ausgelegt
sein, in einem "Off-line"-Modus zu arbeiten
und die Informationen bis zu einem späteren Anschluss an eine externe
Vorrichtung (oder ein Netzwerk) zu speichern. In einem solchen Fall
kann der Kontroll-Block 13 verlangen, dass in regelmäßigen Zeitabschnitten
eine Verbindung hergestellt wird, oder er kann die Anzahl der Autorisierungen
beschränken,
die bis zur Herstellung einer externen Verbindung erhalten werden.
-
In
einem etwas komplexeren Szenario kann eine Kontrollnachricht konditionale
Regeln enthalten. Ein besonderes Beispiel ist durch die Reihe 4
der in 7 gezeigten Tabelle dargestellt,
in der die Kontroll-Nachricht 700 als die Ströme 49-53 kontrollierend
gezeigt ist. Die Kontroll-Nachricht 700 besteht ferner
aus der Regel 710, den Befehlen 711 und den kryptographischen
Schlüsseln 712-716.
Selbstverständlich
könnte
eine Vielzahl zusätzlicher
kryptographischer Schlüssel
mit der Nachricht gespeichert sein.
-
Im
vorliegenden Fall spezifiziert die Regel 710, dass ein
Benutzer, der der Bezahlung eines bestimmten Betrages (oder der
Bereitstellung einer bestimmten Informationsmenge) zustimmt, den
Strom 49 sehen darf, jedoch alle anderen Benutzer den Strom 50 oder
eine Kombination aus den Strömen 49 und 50 sehen
müssen.
In diesem Fall kann der Strom 49 einen Film oder ein Fernsehprogramm
darstellen, während
der Strom 50 Werbespots darstellt. In einem Ausführungsbeispiel
können
verschiedene Abschnitte des Stroms 49 mit verschiedenen
Schlüssel
entschlüsselt
werden, so dass beispielsweise ein erster Abschnitt mit dem Schlüssel 712 entschlüsselt wird, ein
zweiter Abschnitt mit dem Schlüssel 713 entschlüsselt wird,
ein vierter Abschnitt mit dem Schlüssel 714 entschlüsselt wird,
usw. Die Regel 710 kann alle Schlüssel enthalten, die zum Entschlüsseln des gesamten
Stroms 49 verwendet werden. Wenn der Benutzer anfänglich versucht,
auf das im Strom 49 kodierte Video zuzugreifen, könnte die
Regel 710 eine Nachricht vorbringen, in der gefragt wird,
ob der Benutzer lieber den Pay-for-view-Modus (Gebührenfernseh-Modus) oder den
Werbe-Modus benutzen möchte.
Wenn der Benutzer den Pay-for-view-Modus auswählt, könnte die Regel 710 die
Zahlungsinformationen speichern (oder übertragen) und den kryptographischen
Schlüssel 712 an
den Stream Controller 18 weiterleiten. Der Stream Controller 18 könnte den kryptographischen
Schlüssel 712 verwenden,
um den ersten Strom zu entschlüsseln,
bis ein Header empfangen wird, der anzeigt, dass ein anderer Schlüssel notwendig
ist, um den folgenden Paketsatz zu entschlüsseln. Auf Anfrage des Stream-Controllers 18 hin
würde dann
der Kontroll-Block 13 eine Prüfung durchführen, um festzustellen, ob
die Zahlung erfolgte, und dann den kryptographischen Schlüssel 713 freigeben,
der zum Entschlüsseln
der folgenden Pakete verwendet werden würde, usw. Die Regel 710 könnte zusätzlich den
kryp tographischen Schlüssel 716 freigeben,
der dem Organisations-Strom 52 entspricht, der einem Video
ohne Werbespots entspricht.
-
Wenn
der Benutzer andererseits den Werbe-Modus gewählt hätte, könnte die Regel 710 den kryptographischen
Schlüssel 712 an
den Stream Controller 18 freigeben, um die Entschlüsselung
des Stroms 49 zu gestatten. Die Regel 710 könnte auch die
Entschlüsselung
des Stroms 50 autorisieren, der die Werbespots enthält. Außerdem könnte die
Regel 710 ferner den kryptographischen Schlüssel 715 an den
Organisations-Block 8 freigeben. Der kryptographische Schlüssel 715 passt
zum Organisations-Strom 51. Der Organisations-Strom 51 verweist auf
das Video aus dem Strom 49, aber gleichzeitig verweist
er auch auf Werbespots aus dem Strom 50. Die Regel 710 würde die
Freigabe des kryptographischen Schlüssels 716 verweigern,
der dem Organisations-Strom 52 entspricht, der wiederum
dem Video ohne Werbespots entspricht.
-
Im
Betrieb könnte
der Kontroll-Block 13 Informationen aus dem Composite-Block 11 über die
Kontrollleitung 16 überwachen.
Diese Informationen könnten
die Identität
jedes tatsächlich
gerenderten Objekts umfassen, sowie einen Start- und einen End-Zeitpunkt
für das
Rendering. Der Kontroll-Block 13 könnte diese Informationen verwenden,
um zu bestimmen, dass ein Werbespot tatsächlich gerendert wurde, vor
der Freigabe des kryptographischen Schlüssels 713 zur Entschlüsselung
des zweiten Abschnittes des Videos aus dem Strom 49. Durch
diese Rückkopplungsschleife
kann der Kontroll-Block 13 sicher sein, dass die Werbespots
nicht nur entschlüsselt,
sondern auch angezeigt wurden. Dies kann erforderlich sein, da der
Composite-Block 11 relativ ungesichert sein kann, wodurch
es einem skrupellosen Benutzer möglich
sein kann, die Werbespots vor dem Sehen zu entfernen.
-
Es
sind eine Vielzahl zusätzlicher
relativ komplexer Szenarien möglich.
Beispielsweise könnten
Regeln aus dem Kontroll-Block 13 die Programmgestaltung
an einen bestimmten geographischen Ort oder eine bestimmte Art von
Zuschauer anpassen, indem Informationen über den Ort oder den Zuschauer
verwendet werden, um eine konditionale Entschlüsselung oder Verwendung zu
kontrollieren. Diese Informationen könnten im System 1 gespeichert sein
oder von dem Benutzer eingegeben werden.
-
In
einem weiteren Beispiel, das in Reihe 5 des Arrays 717 gezeigt
ist, kann die Regel 719 das Budget 718 spezifizieren,
das Informationen über
die Anzahl der dem Benutzer zur Verfügung stehenden Verwendungen,
den Geldbetrag, den der Benutzer ausgeben muss, etc. enthalten kann.
Im Betrieb kann die Regel 719 verlangen, dass das Budget 718 sicher gespeichert
und dekrementiert wird, wann immer eine budgetierte Aktivität auftritt
(z. B. jedes Mal, wenn das dazugehörige Werk gespielt wird). Sobald das
Budget Null erreicht, kann die Regel 719 spezifizieren,
dass das Werk nicht mehr gespielt wird, oder sie kann dem Benutzer
eine Nachricht anzeigen, die angibt, dass der Benutzer zusätzliches
Budget erhalten kann, indem er beispielsweise eine Kreditkartennummer
oder ein Passwort eingibt oder einen externen Server kontaktiert.
-
In
einem weiteren Beispiel kann eine Regel die Fähigkeit eines Benutzers, ein
Werk an eine andere Vorrichtung zu kopieren, kontrollieren. Die
Regel kann beispielsweise spezifizieren, dass der Benutzer autorisiert
ist, das geregelte Werk auf mehr als einer Vorrichtung zu verwenden,
wobei aber gleichzeitig jeweils nur eine Verwendung gültig ist.
Die Regel kann spezifizieren, dass eine Anzeige darüber, ob der
Benutzer das Werk "ausgelesen" (engl.: check out)
hat, sicher gespeichert wird. Wenn der Benutzer das Werk (z. B. über den
Port 21) an eine andere Vorrichtung kopiert hat, kann die
Regel fordern, dass das Werk nur in verschlüsselter Form übertragen
wird und dass die relevanten Kontrollnachrichten zusammen mit ihm übertragen
werden. Ferner kann die Regel fordern, dass ein Indikator sicher
gesetzt wird und dass der Indikator jedes Mal geprüft wird,
wenn der Benutzer versucht, das Werk zu benutzen oder zu kopieren.
Wenn der Indikator gesetzt ist, kann die Regel fordern, dass das
Werk nicht entschlüsselt oder
verwendet wird, da der Benutzer nur das Recht hat, das Werk gleichzeitig
auf nur einer Vorrichtung zu verwenden, und der Indikator festsetzt,
dass das Werk derzeit an eine andere Vorrichtung "ausgelesen" wurde und nicht
wieder zurückgegeben
wurde (engl.: checked back in).
-
Die
empfangende Vorrichtung kann die gleiche Art von Indikator enthalten
und dem Benutzer ermöglichen,
das Werk nur solange zu benutzen, solange der Indikator nicht gesetzt
ist. Wenn der Benutzer das Werk auf der ursprünglichen Vorrichtung nutzen
will, können
die beiden Vorrichtungen miteinander kommunizieren, wobei der Indikator
in der zweiten Vorrichtung gesetzt und in der ersten zurückgesetzt
wird. Dies ermöglicht,
dass das Werk an zwei Orten gespeichert, aber nur an einem genutzt
wird.
-
In
einem anderen Ausführungsbeispiel
kann das gleiche Ergebnis erzielt werden, indem man die relevante
Kontrollnachricht von einer Vorrichtung in die andere kopiert und
sie dann von der ursprünglichen
Vorrichtung löscht.
Da die Kontrollnachricht zur Entschlüsselung verwendete Schlüssel enthält, würde dies
sicherstellen, dass das Werk gleichzeitig in nur einer Vorrichtung
verwendet werden kann.
-
In
einem Ausführungsbeispiel
kann diese Technik dazu verwendet werden, um digitale Mediendateien
(z. B. Musik, Videos, etc.) von einem PC auf eine Unterhaltungselektronikvorrichtung
zu übertragen,
ohne dem Benutzer zu gestatten, eine mehrfache Auswahl für eine gleichzeitige
Benutzung zu treffen. So könnte
eine größere, höherentwickelte
Vorrichtung (z. B. ein PC) eine Datei herunterladen, dann die Datei
an eine tragbare Vorrichtung "auslesen", der bestimmte Funktionen,
die im PC vorhanden sind, fehlen (z. B. ein Musikabspielgerät für die Hand).
-
Regeln
können
auch eingesetzt werden, um zu spezifizieren, dass ein ursprünglicher
Benutzer die Datei an einen anderen Benutzer übertragen kann, jedoch nur,
wenn er die Kontrolle über
die Datei aufgibt. Solche Regeln könnten ähnlich zu der oben beschriebenen
Technik zur Übertragung
einer Datei von einer Vorrichtung zur nächsten arbeiten oder könnten fordern,
dass die ursprüngliche
Datei nach der Übertragung
vollständig
von der ursprünglichen Vorrichtung
gelöscht
wird.
-
Die
Regeln im Kontroll-Block 13 können über mindestens zwei Kanäle ergänzt oder
aktualisiert werden. Neue Regeln können durch den Kontroll-Strom 6 erhalten
werden. Wenn eine Kontrollnachricht einen Identifikator enthält, der
einer Kontrollnachricht entspricht, die bereits im Kontroll-Block 13 vorhanden
ist, kann diese Kontrollnachricht (einschließlich enthaltener Regeln) die
ursprüngliche Kontrollnachricht überschreiben.
Eine neue Regel kann beispielsweise identisch zu einer bestehenden Regel
sein, jedoch einen neuen Zeitstempel und neue Schlüssel enthalten
und dadurch die Entschlüsselung
eines Stroms gestatten, der mit Mehrfachschlüsseln verschlüsselt wurde.
Das System 1 kann so entwickelt sein, dass bestimmte Regeln
nicht überschreibbar
sind. Dies kann umgesetzt werden, indem bestimmte Positionen im
Array 717 als nicht überschreibbar
gekennzeichnet werden oder indem eine Flag oder ein anderer Indikator
gesetzt wird, um zu zeigen, dass eine bestimmte Regel nicht geändert oder überschrieben
werden kann. Dies würde
bestimmte Arten von Überdistributionsmodellen
gestatten, einschließlich
des Gestattens eines stromabwärtigen
Verteilers Regeln zuzufügen,
ohne dass man diesem stromabwärtigen
Verteiler gestattet, die von stromaufwärtigen Verteilern zugefügten Regeln
zu entfernen oder zu verändern.
-
Zusätzlich können neue
Regeln in den Organisations-Strom 3, den Audio-Strom 4 oder
den Video-Strom 5 in Form eines Wasserzeichens oder einer
steganographischen Kodierung kodiert werden.
-
Neue
Regeln können
auch durch den Port 21 erhalten werden. Der Port 21 kann
sich an eine externe Vorrichtung (z. B. eine Smartcard, einen tragbaren Speicher
etc.) oder an ein externes Netzwerk (z. B. den externen Server 30)
anschließen.
Die Regeln können
durch den Port 21 entweder ad hoc oder als Ergebnis von
Anfragen erhalten werden, die vom Kontroll-Block 13 gesendet
werden. Beispielsweise kann die Kontroll-Nachricht 14 (7,
Reihe 6) eine Regel enthalten, die spezifiziert, dass eine
neue Regel aus einer bestimmten URL herunter geladen und zum Regeln
des Stroms 1201 verwendet wird.
-
Die
Kontrollnachrichten, einschließlich
der Regeln, können
unter Verwendung sicherer Übertragungsformate,
wie z. B. DigiBoxen, kodiert werden. Eine DigiBox ist ein sicheres
Behältermittel
zum Liefern eines Satzes von Geschäftsregeln, Inhaltsbeschreibungsinformationen,
Inhaltsentschlüsselungsinformationen
und/oder Inhaltsvalidierungsinformationen. Eine oder mehrere DigiBoxen
können
in den Headern des Medieninhalts oder in den Datenströmen innerhalb
der Medien angeordnet werden.
-
Die 12 zeigt ein Ausführungsbeispiel des DigiBox-Formats
und der Art, in der das Format in eine Kontrollnachricht aufgenommen
ist. Die Kontroll-Nachricht 1201 besteht aus dem Kontrollnachricht-Header 1202 und
den Kontrollnachricht-Inhalten 1203.
Wie an anderer Stelle beschrieben, kann der Kontrollnachricht-Header 1202 Informationen
enthalten, die vom Demux 7 (1) verwendet
werden, um die Nachricht richtig an den Kontroll-Block 13 zu
leiten.
-
Die
Kontrollnachricht-Inhalte 1203 der Kontroll-Nachricht 1201 bestehen
aus der DigiBox 1204 und können ferner zusätzliche
Informationen enthalten. Die DigiBox 1204 besteht aus einem
DigiBox Header 1205, Regeln 1206 und Daten 1207.
Die Regeln 1206 können
eine oder mehrere Regeln enthalten. Die Daten 1207 können verschiedene
Arten von Daten enthalten, einschließlich der ES_ID 1208,
des kryptographischen Schlüssels 1209 und
der Validierungsdaten 1210. Die Daten 1207 können auch
kryptographische Informationen enthalten, wie z. B. eine Spezifikation
des Verschlüsselungsalgorithmus,
Verknüpfungsmoden,
die mit dem Algorithmus verwendet werden, Schlüssel und Initialisierungsvektoren, die
von der Verschlüsselung
und der Verknüpfung verwendet
werden.
-
Die
Initialisierungsvektoren, die in den Daten 1207 enthalten
sind, sind dahingehend ähnlich
zu kryptographischen Schlüsseln,
dass sie eine Eingabe an den ursprünglichen Verschlüsselungsprozess darstellen
und von daher für
die Entschlüsselung
erforderlich sind. In einem allgemein bekannten Ausführungsbeispiel
gemäß dem Stand
der Technik können
die Initialisierungsvektoren dadurch erzeugt werden, dass man mit
einem Basis-Initialisierungsvektor (einer 64 Bit-Zufallszahl) startet
und man eine XOR-Funktion in der Rahmennummer oder der Startzeit
für den
Inhaltsposten durchführt.
-
Die
in den Daten 1207 enthaltenen Validierungsdaten 1210 können kryptographische
Hash- oder Authentifizierungswerte, kryptrographische Schlüssel zum
Berechnen von mit Schlüsseln
versehenen Authentifizierungswerten (z. B. Nachrichten-Authentifizierungs-Codes),
Digitalsignaturen und/oder Dechiffrierschlüssel-Zertifikate, die zum Validieren digitaler
Zertifikate verwendet werden, umfassen.
-
So
kann die DigiBox die oben beschriebenen Informationen als Teil der
Kontrollnachricht aufnehmen, einschließlich der Regeln, der Strom-ID
und der kryptographischen Schlüssel
und Werte.
-
In
einem alternativen Ausführungsbeispiel kann
der DigiBox Header 1205 so entwickelt sein, dass er von
dem Demux 7 gelesen und zum Kontroll-Block 13 geleitet
werden kann. In einem solchen Ausführungsbeispiel würde die
DigiBox 1204 selbst die gesamte Kontrollnachricht darstellen,
wodurch sich ein Verschachteln der DigiBox 1204 in der
Kontrollnachricht 1201 erübrigen würde.
-
Ein
Teil oder der gesamte Inhalt der DigiBox 1204 wird im Allgemeinen
verschlüsselt
werden. Dies kann die Regeln 1206, die Daten 1207 und
möglicherweise
einen Teil oder den gesamten Header 1205 einschließen. Das
System 1 kann so ausgelegt sein, dass eine DigiBox nur
in einer gesicherten Umgebung, wie z. B. dem IRP 22, entschlüsselt (geöffnet) wird.
In einem alternativen Ausführungsbeispiel kann
der Kontroll-Block 13 die Funktionalität des IRP 22 direkt
in sich tragen, so dass die DigiBox im Kontroll-Block 13 geöffnet werden
kann, ohne dass es notwendig ist, die DigiBox zur Verarbeitung zum
IRP 22 zu leiten. In einem Ausführungsbeispiel kann der zum
Entschlüsseln
der DigiBox 1204 verwendete Schlüssel in dem IRP 22 (oder
Kontroll-Block 13) gespeichert sein, so dass die DigiBox
nur in dieser gesicherten Umgebung geöffnet werden kann.
-
Die
Regeln 1206 sind Regeln, die den Zugriff auf bzw. die Verwendung
der Digi-Box-Daten 1207 regeln.
In einem Ausführungsbeispiel
kontrollieren diese Regeln die geregelten Ströme nicht direkt. Da auf den
kryptographischen Schlüssel 1209 nur
zugegriffen bzw. derselbe nur eingesetzt werden kann, wenn die Regeln 1206 eingehalten
werden, kontrollieren jedoch die Regeln 1206 in der Tat
die geregelten Ströme
indirekt, da diese Ströme
nur unter Verwendung des Schlüssels
entschlüsselt
werden können,
der nur unter Einhaltung der Regeln erhalten werden kann. In einem
anderen Ausführungsbeispiel können die
Daten 1207 zusätzliche
Regeln enthalten, die aus der DigiBox gewonnen und in einer Tabelle,
wie z. B. dem Array 717 der 7, gespeichert werden
können.
-
Die
Regeln, die den Zugriff auf bzw. die Verwendung einer DigiBox regeln,
können
die DigiBox begleiten (wie in 12 gezeigt)
oder getrennt übertragen
werden, wobei in diesem Falle die Regeln 1206 einen Pointer
oder einen Verweis auf die Regeln, die zum Zugriff auf die Daten 1207 verwendet werden,
enthalten würden.
Bei Empfang einer DigiBox kann der Kontroll-Block 13 Regeln
getrennt durch den Kontroll-Strom 6 empfangen oder kann Regeln
durch den Port 21 anfordern und empfangen.
-
Implementierung mit Pipeline-Struktur
(engl.: Pipelined Implementation)
-
Ein
möglicher
Nachteil des in 1 gezeigten Systems besteht
in der Tatsache, dass das System sowohl Komplexität als auch
Rückkopplung
in ein System mit Pipeline-Struktur einführt, das dazu ausgelegt ist,
Inhalte in Echtzeit zu rendern. Die Rendering-Pipeline besteht im
Allgemeinen aus dem Demux 7, dem Organisations-Block 8 und
dem AV-Block 9, dem Composite-Block 11 und der
Rendering-Vorrichtung 12. Da der Inhalt gestreamt empfangen
wird und in Echtzeit gerendert werden muss, muss die zeitverschachtelte
Verarbeitung auf hocheffiziente Weise unter strikten Zeitzwängen erfolgen.
Erfolgt die Verarbeitung nicht innerhalb der zur Verfügung stehenden
Zeit, bedeutet dies, dass die Ausgabe an die Rendering-Vorrichtung 12 unterbrochen
sein kann oder dass der ankommende Bitstrom 2 einen Überlauf
der zur Verfügung
stehenden Puffer verursachen kann, wodurch es zu einem Verlust eines Teils
der ankommenden Daten kommen kann.
-
Ein
alternatives Ausführungsbeispiel
des Systems 1 ist darauf ausgerichtet, diese Probleme zu lösen, obgleich
auf mögliche
Kosten der Fähigkeit, Standard-Systemkomponenten
zu verwenden und gegebenenfalls auf Kosten der Sicherheit des gesamten
Systems. Dieses alternative Ausführungsbeispiel
ist in 11 dargestellt, die das System 1101 zeigt.
-
Das
System 1101 ist in vielerlei Hinsicht ähnlich dem System 1 der 1.
Es empfängt
einen Bitstrom 1102, der aus einem Organisations-Strom 1103,
einem Audio-Strom 1104, einem Video-Strom 1105 und
einem Kontroll-Strom 1106 besteht. Diese Ströme werden
von einem Demux 1107 empfangen, der den Organisations-Strom 1103 an
den Organisations-Block und den Audio-Strom 1104 und den
Video-Strom 1105 an einen AV-Block 1109 weiterleitet. Der
Organisations-Block 1108 und
der AV-Block 1109 arbeiten ähnlich zu ihren Gegenstücken in 1 und leiten
Informationen an einen Composite-Block 1110, der die Informationen
zu einem kohärenten
Ganzen organisiert und sie an die Rendering-Vorrichtung 1111 weiterleitet.
Die an den Organisations-Block 1108 gesendeten Ströme werden
von einem Stream Flow Controller 1112 entschlüsselt und/oder
validiert, und die an den AV-Block 1109 gesendeten Ströme werden
von einem Stream Flow Controller 1113 entschlüsselt oder
validiert.
-
Das
System 1101 unterscheidet sich jedoch von dem System 1 dadurch,
dass die Kontrolle und die Rückkopplung
verteilt und direkt in die Verarbeitungs- und Rendering-Pipeline
integriert sind. So fehlen dem System 1101 ein separater
Kontroll-Block wie
auch ein Rückkopplungspfad
zurück
vom Composite-Block 1110. Das Ausführungsbeispiel ohne Rückkopplungspfad
ist nicht Teil der vorliegend beanspruchten Erfindung.
-
Im
System 1101 erfolgt die Kontrolle direkt am Organisations-Block 1108 und
am AV-Block 1109. Wie im System 1 werden die kryptographischen Schlüssel durch
den Kontroll-Strom 1106 empfangen (in einem alternativen
Ausführungsbeispiel
könnten die
Schlüssel
direkt in den Header oder in andere Informationen im Or ganisations-Strom 1103 oder
den Audio/Video-Strömen 1104 und 1105 aufgenommen werden).
Derartige Schlüssel
sind in einem Datenformat enthalten, das Informationen über den
Stromtyp des verschlüsselten
Inhalts und, für
den Fall, dass mehrere Stromtypen möglich sind, einen Identifikator für den bestimmten
kontrollierten Strom enthält.
-
Wenn
der Demux 1107 im Kontroll-Strom 1106 auf einen
Schlüssel
trifft, liest er die Informationen hinsichtlich des Stromtyps und
leitet den Schlüssel
zu dem entsprechenden Stream Flow Controller. Wenn der Demux 1107 auf
einen Schlüssel
trifft, der zur Entschlüsselung
oder Validierung beispielsweise des Organisations-Stroms 1103 bestimmt
ist, leitet er diesen Schlüssel
an den Stream Flow Controller 1112.
-
Der
Stream Flow Controller 1112 speichert empfangene Schlüssel an
einer Speicherstelle 1114. Die Speicherstelle 1114 speichert
die Schlüssel
sowie einen Indikator der kontrollierten Strom-ID.
-
Der
Stream Flow Controller 1112 enthält die kryptographische Engine 1115,
die die empfangenen Schlüssel
dazu verwendet, verschlüsselte
und/oder gesicherte Teile des Organisations-Stroms 1103 zu entschlüsseln und/oder
zu validieren. Die Schlüssel selbst
können
verschlüsselt
empfangen werden, um einen gewissen Grad an Sicherheit zu bieten.
In einem solchen Fall kann der Stream Flow Controller eine Vielzahl
von Verfahren verwenden, um den Schlüssel zu entschlüsseln, einschließlich der
Verwendung von gespeicherten Informationen als Schlüssel oder
als Schlüsselmaterial.
Diese gespeicherten Informationen könnten beispielsweise einen "Meta-Schlüssel" darstellen, der
zu einem früheren Zeitpunkt
durch den Bitstrom 1102 oder durch einen getrennten Port
zugeführt
wurde.
-
Der
Stream Flow Controller 1113, der dem AV-Block 1109 zugeordnet
ist, enthält
eine entsprechende Speicherstelle 1116 und eine kryptographische
Engine 1117 und arbeitet auf ähnliche Weise, wie für den Stream
Flow Controller 1112 beschrieben.
-
Diese
Implementierung vermeidet den Nachteil der Latenz, der der Notwendigkeit
einer Kommunikation zwischen Stream Flow Controllern und einem getrennten
Kontroll-Block anhaften kann.
-
Diese
alternative Implementierung kann ebenso den aus dem Composite-Block
kommenden Rückkopplungskanal
entbehrlich machen (1, Kontrollleitung 16).
Dieser Rückkopplungskanal
kann verwendet werden um sicherzustellen, dass der Inhalt, der vom
Composite-Block 11 zur Rendering-Vorrichtung 12 geleitet
wird, ein Inhalt ist, der zum Rendern autorisiert wurde. In dem
in 11 gezeigten alternativen Ausführungsbeispiel ist dieser Rückkopplungskanal
nicht vorhanden. Stattdessen beruht diese Implementierung auf der
Tatsache, dass der Composite-Block 1110 von Informationen
aus dem Organisations-Block 1108 abhängig ist, um die exakte Struktur
der an die Rendering-Vorrichtung 1111 gesendeten Informationen
zu bestimmen. Der Composite-Block 1110 kann die Informationen
nicht auf eine Weise zusammensetzen, die im Gegensatz zur Organisation
steht, die vom Organisations-Block 1108 vorgegeben wird.
-
In
einem Ausführungsbeispiel
kann diese Kontrolle durch den Organisations-Block 1108 ausreichen,
um die Anforderung an irgendeine Art von Rückkopplung entbehrlich zu machen,
da der Organisations-Block 1108 so ausgelegt sein kann,
dass er Informationen nur durch den Stream Controller 1112 akzeptiert,
und der Stream Controller 1112 so ausgelegt sein kann,
dass er Informationen nur unter der Kontrolle von Regeln entschlüsselt oder
validiert, die in der Speicherstelle 1114 gespeichert sind.
-
In
einem solchen Ausführungsbeispiel
kann die Sicherheit weiter erhöht
werden, indem man einen Sicherheitsspeicher 1118 (engl.:
secure memory) in den Organisations-Block 1108 aufnimmt.
Der Sicherheitsspeicher 1118 kann eine Kopie oder einen Hashwert
des Organisationsbaumes speichern, der von dem Stream Controller
gültig
entschlüsselt
wurde und derzeit im Hauptorganisationsblockspeicher 1119 verwendet
wird. Der Organisations-Block 1108 kann dazu verwendet
werden, den im Hauptorganisationsblockspeicher 1119 gespeicherten
Organisationsbaum mit dem im Sicherheitsspeicher 1118 gespeicherten
Baum zu vergleichen. Stößt man auf eine
Diskrepanz, kann dies anzeigen, dass ein Angreifer den im Hauptorganisationsblockspeicher 1119 gespeicherten
Organisationsbaum verändert
hat, wodurch möglicherweise
ein Rendering des Inhalts unter Verstoß gegen die anwendbaren Regeln
ermöglicht
wird. Unter solchen Umständen
kann der Organisations-Block 1108 dazu verwendet werden, schützende Maßnahmen
zu ergreifen, einschließlich eines
Ersetzens des Inhalts des Hauptorganisationsblockspeichers 1119 durch
den Inhalt des Sicherheitsspeichers 1118.
-
MPEG-4 Implementierung
-
Das
oben beschriebene allgemeine System kann in ein MPEG-4 System aufgenommen
werden, wie es in 8 dargestellt ist, in dem das
MPEG-4 System 801 gezeigt ist.
-
Das
MPEG-4 System 801 akzeptiert einen MPEG-4 Bitstrom 802 als
Eingabe. Der MPEG-4 Bitstrom 802 enthält einen BIFS-Strom 803,
einen OD-Strom 804, einen Audio-Strom 805, einen
Video-Strom 806 und einen IPMP-Strom 807. Diese Ströme werden
an einen Demux 808 geleitet, der die Header-Informationen
untersucht und Pakete entsprechend an BIFS 809, AVO 810,
OD 811 bzw. das IPMP System 812 leitet.
-
Das
IPMP System 812 empfängt IPMP-Nachrichten
durch den IPMP-Strom 807. Diese Nachrichten können Header-Informationen
enthalten, die die spezielle Nachricht identifizieren, sowie eine
dazugehörige
IPMP-Nachricht. Die IPMP-Nachricht
kann Kontrollinformationen enthalten, die einen kryptographischen
Schlüssel,
Validierungsinformationen und/oder komplexe Regelungsregeln enthalten
können,
wie sie oben beschrieben wurden.
-
Stream
Controller 813, 814 und 815 dienen dazu,
die Ströme,
die an das BIFS 809, das AVO 810 bzw. den OD geleitet
werden, zu entschlüsseln,
zu validieren und/oder zu regeln.
-
Der
OD 811 enthält
Objektdeskriptoren, die Metadaten enthalten, die bestimmte Objekte
beschreiben. Diese Metadaten umfassen einen Identifikator des bestimmten
Elementary Streams oder von Strömen,
die das Objekt enthalten, und können
auch einen Pointer auf eine bestimmte IPMP-Nachricht enthalten,
die das Objekt regelt. Alternativ dazu kann die Beziehung zwischen
den IPMP-Nachrichten und bestimmten Objekten oder Strömen in einer
Tabelle oder einer anderen Form innerhalb des IPMP-Systems 812 gespeichert
sein.
-
Das
IPMP-System 812 kann eine Kontrolle über andere Funktionsblöcke über Kontrollleitungen 816, 817, 818 und 819 ausüben, die
jeweils Kontroll/Regelungssignale aus dem IPMP-System 812 und
Informationen oder Anfragen aus anderen Funktionsblöcken zum
IPMP-System 812 übertragen
können.
Die Informationsanfragen können
eine ES_ID und einen Zeitstempel enthalten, die das IPMP-System 812 verwenden
kann, um zu bestimmen, welche bestimmte Nachricht (z. B. Schlüssel) verwendet werden
sollte und wann.
-
In
einem alternativen Ausführungsbeispiel kann
das IPMP-System 812 eine Kontrolle über den "Composite und Render" 821 ausüben, indem er einen Hashwert
des gegenwärtig
gültigen
BIFS-Baums (möglicherweise
durch den IPMP Strom 807) empfängt und den Hashwert regelmäßig mit
dem im BIFS 809 gespeicherten BIFS-Baum vergleicht. Da
das BISF 809 die Art kontrolliert, in der der "Composite und Render" 821 die
Informationen rendert, kann das IPMP-System 812, wenn das
IPMP-System 812 bestätigt,
dass der aktuelle BIFS Baum der gleiche ist, wie der autorisierte
Baum, der durch den BIFS-Strom 803 empfangen wurde, bestätigen, dass
der korrekte Inhalt gerendert wird, selbst wenn aus dem "Composite und Render" 821 direkt
keine Rückkopplung empfangen
wird. Dies kann notwendig sein, da das BIFS 809 mit dem
Port 822 kommunizieren kann, was einem Benutzer gestatten
kann, Informationen in das BIFS 809 einzugeben, wodurch
eine Möglichkeit geschaffen
wird, dass ein Benutzer einen unautorisierten BIFS-Baum eingeben
und dadurch unautorisierten Zugriff auf den Inhalt erlangen könnte.
-
Wenn
ein Stream Controller verschlüsselte oder
anderweitig geregelte Informationen empfängt, kann er die ES_ID und
den Zeitstempel direkt an das IPMP-System 812 senden. Alternativ
dazu kann er diese Informationen an den OD 811 senden,
der mit der ID der IPMP-Nachricht antworten kann, die dieses Objekt
oder diesen Strom regelt. Der Stream Controller kann dann diese
ID der IPMP-Nachricht verwenden,
um die Entschlüsselung,
die Validierung und/oder die Regelung aus dem IPMP-System 812 anzufordern.
Alternativ dazu kann der OD 811 die IPMP-ID an das IPMP-System 812 weiterleiten,
das den Kontakt mit dem entsprechenden Stream Controller einleiten
kann.
-
Das
IPMP-System 812 kann IPMP-Informationen über zwei
andere Kanäle
als den IPMP-Strom 807 erhalten. Der erste dieser Kanäle ist der
Port 820, der direkt an eine Vorrichtung oder einen Speicher
(z. B. eine Smartcard, eine DVD-Disk, usw.) oder an ein externes
Netzwerk (z. B. das Internet) angeschlossen sein kann. Eine IPMP-Nachricht
kann einen Pointer auf Informationen enthalten, die durch den Port 812 erhalten
werden können,
wie z. B. eine URL, eine Adresse auf einer DVD-Disk, usw. Diese URL
kann spezifische Kontrollen enthalten, die von der IPMP-Nachricht
benötigt
werden, oder sie kann untergeordnete erforderliche Informationen
enthalten, wie z. B. Informationen über das Budget eines bestimmten
Benutzers.
-
Das
IPMP-System 812 kann auch IPMP-Informationen über OD-Updates
erhalten, die in dem OD-Strom 804 enthalten sind. Der OD-Strom 804 enthält Metadaten,
die bestimmte Objekte identifizieren. Eine bestimmte OD-Nachricht
kann das in 9 gezeigte Format haben. In
dieser Figur enthält
die OD-Nachricht 901 einen Header 902, der die
folgenden Pakete als Teil des OD-Stroms identifiziert und die Anzahl
der Pakete angibt. Die OD-Nachricht 901 besteht ferner
aus der Nachricht 903, die eine Reihe von Pointern 904 und
zugehörigen
Metadaten 905 enthält.
Jeder Pointer 904 identifiziert einen besonderen Elementary
Stream und die dazugehörigen Metadaten
sind auf diesen Strom anwendbar. Schließlich kann die OD-Nachricht 901 einen IPMP-Pointer 906 enthalten,
der eine bestimmte IPMP-Nachricht
identifiziert.
-
Insgesamt
stellen die in der OD-Nachricht 901 enthaltenen Informationen
einen Objektdeskriptor dar, da er jeden elementaren Strom, aus dem
sich das Objekt zusammensetzt, identifiziert und beschreibt, und
die IPMP-Nachricht identifiziert, die das Objekt regelt. Die OD-Nachricht 901 kann
in dem OD 811 gespeichert sein, zusammen mit anderen Nachrichten,
die jeweils einen Objektdeskriptor darstellen.
-
Die
im OD 811 gespeicherten Objektdeskriptoren können durch
den OD-Strom 804 aktualisiert werden, der einen neuen Objektdeskriptor
weiterleiten kann, der dem gleichen Objekt entspricht. Der neue
Objektdeskriptor überschreibt
dann den vorhandenen Objektdeskriptor. Dieser Mechanismus kann verwendet
werden, um die IPMP-Nachricht zu ändern, die ein bestimmtes Objekt
kontrolliert, indem ein neuer Objektdeskriptor verwendet wird, der
identisch zu dem vorhandenen Objekt-Deskriptor ist, mit Ausnahme des IPMP-Pointers.
-
Der
OD-Strom 804 kann auch IPMP_DesciptorUpdate-Nachrichten
mit sich führen. Jede
solche Nachricht kann das gleiche Format wie die IPMP-Nachrichten
haben, die der IPMP-Strom mit sich führt, einschließlich einer
IPMP-ID und einer IPMP-Nachricht.
-
Die
IPMP DescriptorUpdate-Nachrichten können in einer Tabelle oder
einem Array in dem OD 811 gespeichert oder an das IPMP-System 812 weitergeleitet
werden, wo sie vorhandene gespeicherte IPMP-Nachrichten überschreiben
oder zu den gespeicherten Nachrichten hinzugefügt werden können.
-
Da
die IPMP-Informationen getrennt durch den OD-Strom oder den IPMP-Strom
geleitet werden können,
kann das MPEG-4 System 801 so ausgelegt sein, dass es nur
Informationen aus dem einen oder dem anderen dieser Kanäle akzeptiert.
-
In
einem anderen Ausführungsbeispiel
kann das Vorhandensein der beiden Kanäle dazu verwendet werden, eine
mehrstufige Verteilung zu ermöglichen,
wobei eine Regelung in späteren
Stufen zugefügt
wird, jedoch ohne das Risiko, dass spätere Änderungen eine in einer früheren Stufe
zugefügte
Regelung übersteuern
können.
-
Ein
derartiges System ist in 10 gezeigt. In
dieser Figur enthält
das IPMP-System 812 eine IPMP-Tabelle 1002,
die Aufnahmen für 256 IPMP-Nachrichten
hat. Diese Tabelle speichert die IPMP_ID implizit, als die Stelle,
an der die Informationen gespeichert sind, gezeigt in Spalte 1003.
Die der IPMP_ID 4 zugeordnete IPMP-Nachricht ist beispielsweise
in der Aufnahme 4 der IPMP-Tabelle 1002 gespeichert.
-
Jede
Stelle in der IPMP-Tabelle 1002 enthält einen Gültigkeitsindikator 1004 (engl.:
Valid Indicator) und einen Quellen-Indikator 1005 (engl.:
source indicator). Der Gültigkeitsindikator 1004 wird
für eine
bestimmte Stelle gesetzt, wenn eine IPMP Nachricht an dieser Stelle
gespeichert ist. Dies ermöglicht
dem IPMP-System 812,
Aufnahmen zu identifizieren, die nicht gefüllt sind, was ansonsten schwierig
sein könnte,
da die Aufnahmen beim Start mit Zufallsinformationen gefüllt werden
können.
Ferner ermöglicht
dies dem IPMP-System 812, Nachrichten zu identifizieren,
die nicht mehr gültig
sind und ersetzt werden können.
Der Gültigkeitsindikator 1004 kann
Zeitstempel-Informationen für
die Zeitdauer speichern, für
die die Nachricht gültig
ist, wobei das IPMP-System 812 die Gültigkeit bestimmt, indem sie
die gespeicherten Zeitstempel-Informationen mit der aktuell gültigen Zeit
vergleicht.
-
Der
Quellen-Indikator 1005 wird auf der Basis gesetzt, ob die
dazugehörige
IPMP-Nachricht aus dem
IPMP-Strom 807 oder dem OD-Strom 804 empfangen
wurde.
-
Diese
Indikatoren ermöglichen
dem IPMP-System 812, eine Hierarchie von Nachrichten aufzubauen
und die Art und Weise zu kontrollieren, in der die Nachrichten zugefügt und aktualisiert
werden. Das IPMP-System 812 kann so ausgelegt sein, dass es
die Indikatoren auf eine bestimmte Stelle hin auswertet, sobald
eine Nachricht empfangen wurde, die dieser Stelle entspricht. Wird
der Gültigkeitsindikator auf
ungültig
gesetzt, kann das IPMP-System 812 so ausgelegt sein, dass
es die IPMP-Nachricht automatisch in die Aufnahme schreibt. Wird
der Gültigkeitsindikator
auf gültig
gesetzt, dann kann das IPMP-System 812 so ausgelegt sein,
dass es den Quellen-Indikator prüft.
Wenn der Quellen-Indikator anzeigt, dass die dazugehörige Nachricht
durch den OD-Strom 804 empfangen wurde, kann das IPMP-System 1812 so ausgelegt
sein, dass es die vorhandene Nachricht mit der neuen Nachricht überschreibt.
Wenn jedoch der Quellen-Indikator anzeigt, dass die dazugehörige Nachricht über den
IPMP-Strom 807 empfangen wurde, kann das IPMP-System 812 so
ausgelegt sein, dass es die Quelle der neuen Nachricht prüft. Diese Prüfung kann
dadurch erfolgen, dass man den Header, der dieser neuen Nachricht
zugeordnet ist, untersucht, um zu bestimmen, ob die neue Nachricht
Teil des OD-Stroms 804 oder Teil des IPMP-Stroms 807 war.
Alternativ dazu kann das IPMP-System 812 diese Informationen
herleiten, indem es bestimmt, ob die Nachricht direkt aus dem Demux 808 oder über den
OD 811 empfangen wurde.
-
Wenn
die neue Nachricht über
den IPMP-Strom 807 ankam, kann das IPMP-System so ausgelegt sein, dass es die
neue Nachricht in der Tabelle 1002 speichert und die vorhandene
Nachricht überschreibt.
Wenn die neue Nachricht im Gegensatz dazu über den OD-Strom 804 ankam,
kann das IPMP-System 812 so ausgelegt sein, dass es die neue
Nachricht zurückweist.
-
Diese
Nachrichten-Hierarchie kann verwendet werden, um eine Hierarchie
der Kontrolle zu ermöglichen.
Ein Studio kann beispielsweise einen Film im MPEG-4 Format kodieren.
Das Studio kann die IPMP-Nachrichten im IPMP-Strom speichern. Diese
Nachrichten können
eine Anforderung enthalten, dass das IPMP-System 812 verlangt, dass ein Trailer
für einen
anderen Film aus dem gleichen Studio vor der Anzeige des Hauptfilms
gezeigt wird. Das IPMP-System 812 könnte verwendet werden, den Beginn
und das Ende des Renderings des Trailers zu überwachen (unter Verwendung
einer Rückkopplung über die
Kontrollleitung 819), um sicherzustellen, dass der gesamte
Trailer abgespielt wird und dass der Benutzer diesen nicht vorspielt.
-
Das
Filmstudio könnte
die verschiedenen elementaren Ströme, einschließlich des IPMP-Stroms
verschlüsseln.
Das Filmstudio könnte dann
den Film einem Verteiler, wie z. B. einem Kabelkanal, bereitstellen.
Das Filmstudio könnte
den Verteiler mit einem Schlüssel
versorgen, der es dem Verteiler ermöglicht, den OD-Strom zu entschlüsseln (oder
es könnte
den OD-Strom unverschlüsselt
lassen), und mit der Möglichkeit,
neue Nachrichten in diesen Strom einzufügen. Der Kabelkanal könnte beispielsweise
eine Regel in den OD-Strom einfügen,
die spezifiziert, dass das IPMP-System eine Prüfung durchführt, um zu bestimmen, ob ein
Benutzer für
das Premiumfernsehen bezahlt hat, den Film entschlüsseln, wenn
das Premiumfernsehen bezahlt wurde, jedoch Werbespots einfügen (und
fordern, dass diese gerendert werden), wenn für das Premiumfernsehen nicht
bezahlt wurde.
-
Der
Kabelkanal würde
daher die Möglichkeit haben,
seine eigenen Regeln in den MPEG-4 Bitstrom einzufügen, jedoch
ohne ein Risiko, dass der Kabelkanal die von dem Filmstudio verwendeten
Regeln entfernt oder ändert
(z. B. durch Abändern
des Trailers von einem Film, der von dem Studio gefördert wird,
zu einem Konkurrenzfilm, der von dem Kabelkanal gefördert wird).
Die Regeln des Studios könnten
die Arten der neuen Regeln spezifizieren, die durch den OD-Strom
zugelassen würden,
wodurch dem Studio ein hoher Grad an Kontrolle zukommt.
-
Dieser
gleiche Mechanismus könnte
verwendet werden, um eine Überverteilung
des Inhalts zu ermöglichen,
möglicherweise
von einem Benutzer zu einem anderen. Ein Benutzer könnte mit
einer Programmierschnittstelle ausgestattet werden, die das Einfügen von
Nachrichten in den OD-Strom ermöglicht.
Ein Benutzer könnte
beispielsweise eine Nachricht einfügen, die verlangt, dass eine
Zahlung von $ 1,00 auf das Konto des Benutzers erfolgt, ehe der Film
gesehen werden kann. Der Benutzer könnte dann den Film einem anderen
Benutzer anbieten (oder ihn durch ein Medium verteilen, wodurch
das Kopieren unkontrolliert ist, wie z. B. das Internet) und immer
noch eine Zahlung erhalten. Da aber die Regeln des Benutzers die
Regeln des Studios nicht übersteuern
können,
kann das Studio sicher sein, dass seine Regeln eingehalten werden.
Darunter könnten
Regeln sein, die die Arten von Regeln spezifizieren, die ein Benutzer
hinzufügen
darf (z. B. Beschränken
des Preises für
die Weiterverteilung).
-
Das
MPEG-4 System 801 kann auch dafür ausgelegt sein, eine bestimmte
Art von IPMP-System zu enthalten, das mit den IPMP-Systemen, die
in anderen MPEG-4 Systemen ausgestaltet sind, inkompatibel sein
kann. Dies kann möglich
sein, da der MPEG-4 Standard das Format der in dem IPMP-Strom enthaltenen
Informationen nicht spezifiziert, wodurch verschiedenen Inhaltsanbietern
gestattet wird, Informationen unterschiedlich zu kodieren.
-
Das
IPMP-System 812 im MPEG-4 System 801 kann für eine Umgebung
ausgelegt sein, in der unterschiedliche IPMP-Formate existieren.
Dieses System kann den IPMP-Strom auf Header hin abtasten, die mit
dem IPMP-System 812 kompatibel sind. Alle anderen Header
(und dazugehörigen
Pakete) können
aussortiert werden. Ein derartiger Mechanismus würde Inhaltsanbietern ermöglichen,
dieselbe IPMP-Nachricht in mehreren Formaten aufzunehmen, ohne Sorge
darüber,
dass ein Antreffen eines unbekannten Formats zu einem Versagen des IPMP-Systems führen würde. Insbesondere
können die
IPMP-Header einen IPMP-Systemtyp-Identifikator
aufnehmen. Diese Identifikatoren könnten von einer zentralen Behörde zugewiesen
werden, um die Möglichkeit
zu vermeiden, dass zwei inkompatible Systeme den gleichen Identifikator
wählen.
-
Das
IPMP-System 801 kann so ausgelegt sein, dass es mit mehreren
Formaten kompatibel ist. In einem solchen Fall kann das IPMP-System 801 Header
abtasten, um den ersten Header ausfindig zu machen, der einen IPMP-System-Identifikator enthält, der
mit dem IPMP-System 801 kompatibel ist. Das IPMP-System 801 könnte dann
nur solche Header auswählen,
die diesem IPMP-System-Identifikator
entsprechen, und alle anderen Header aussortieren, einschließlich Header,
die alternative IPMP-System-Identifikatoren enthalten, die ebenfalls
von dem IPMP-System erkannt wurden.
-
Eine
derartige Ausgestaltung würde
es einem Inhaltsanbieter ermöglichen,
mehrere Formate bereitzustellen und sie von am meisten bis am wenigsten
bevorzugt zu sortieren, indem das bevorzugteste Format an erster
Stelle, das zweitbevorzugteste Format an zweiter Stelle usw. aufgenommen
wird. Da sich das IPMP-System 801 an das erste kompatible Format
hängt (engl.:
lock onto), das es findet, würde diese
Klassierung sicherstellen, dass das IPMP-System das vom Inhaltsanbieter
am meisten gewünschte Format
wählt.
-
Selbst
wenn verschiedene IPMP-Formate verwendet werden, wird der Inhalt
wahrscheinlich unter Verwendung eines einzigen Algorithmus kodiert (und
verschlüsselt)
werden, da das Senden mehrfacher Inhaltsversionen eine beträchtliche
Bandbreitenlast darstellen würde.
So wird es für
gewöhnlich notwendig
sein, dass der Inhalt unter Verwendung eines anerkannten und üblichen
Verschlüsselungsschemas
verschlüsselt
wird. Ein derartiges Schema könnte
den DES-Algorithmus im OFB-Modus (Output Feedback Mode) verwenden.
-
Dieses
Verfahren zum Screenen von IPMP-Headern und zum Anhängen an
ein bestimmtes Format kann auch dazu verwendet werden, einen MPEG-4
Bitstrom spezifisch an die Funktionskapazitäten eines bestimmten MPEG-4
Systems anzupassen. Systeme, die in der Lage sind, MPEG-4 Inhalte zu
rendern, können
einen beträchtlichen
Funktionalitätsbereich
abdecken, von Spitzenheimkinos bis hin zu Handgeräten. Regelungsoptionen,
die sich für eine
Art von System eignen, können
im Falle anderer Systeme irrelevant sein.
-
Beispielsweise
kann das MPEG-4 System 801 einen Anschluss ans Internet über den
Port 820 enthalten, während
bei einem zweiten MPEG-4 System (beispielsweise ein in der Hand
zu haltendes Gerät,
das einem Walkman ähnelt)
ein solcher Anschluss nicht vorhanden ist. Ein Inhaltsanbieter möchte vielleicht
einem Zuschauer eine Möglichkeit bieten,
die es dem Zuschauer gestattet, einen Inhalt kostenfrei zu sehen,
wenn er als Gegenleistung dafür Informationen über sich
bereitstellt. Der Inhaltsanbieter könnte eine Regel einfügen, die
den Benutzer fragt, ob er den Inhalt gegen Bezahlung sehen oder Identifizierungsinformationen
eingeben möchte.
Die Regel könnte
dann die Informationen über
einen Port ans Internet senden, an eine in der Regel spezifizierte
URL. Eine Stelle an dieser URL könnte
dann die Benutzerinformationen auswerten und Werbespots herunterladen,
die an diesen bestimmten Benutzer gerichtet sind.
-
Obgleich
dies für
einen Inhaltsanbieter eine wertvolle Möglichkeit sein kann, macht
sie im Falle einer Vorrichtung, die nicht zwangsweise ans Internet angeschlossen
ist, eindeutig keinen Sinn. Es würde keinen
Sinn machen, diese Möglichkeit
einem Benutzer einer nicht-angeschlossenen Vorrichtung anzubieten,
da selbst wenn dieser Benutzer die Informationen eingibt, die Regel
keine Möglichkeit
hätte,
diese Informationen einer externen URL zuzuführen oder die Werbespots herunterzuladen.
In einem solchen Fall wird es der Inhaltsanbieter mög licherweise
vorziehen zu verlangen, dass der Benutzer vorausgewählte Werbeanzeigen
sieht, die in dem ursprünglichen
MPEG-4 Bitstrom enthalten sind.
-
Die
Header-Informationen in dem IPMP-Strom könnten dazu verwendet werden,
einen MPEG-4 Bitstrom an bestimmte Vorrichtungen anzupassen. Wie
im Falle der IPMP-Systemtyp-Informationen könnten die IPMP-Header-Informationen MPEG-4
Systemtypen enthalten. Diese könnten
8 oder 16-Bit-Werte enthalten, wobei bestimmte Features durch Bitmaps
dargestellt werden. Das Vorhandensein eines Bits an einer Stelle
2 könnte
somit beispielsweise anzeigen, dass eine Vorrichtung einen ständigen Anschluss
ans Internet hat.
-
Ein
IPMP-System könnte
dann die Header auswerten und sich an den ersten Header hängen, der
eine Funktionalität
beschreibt, die unter oder gleich der Funktionalität ist, die
in der MPEG-4 Vorrichtung enthalten ist, in der das IPMP-System eingebettet
ist. Wenn der Header eine vollständige Übereinstimmung
mit der Funktionalität
der MPEG-4 Vorrichtung darstellte, könnte dann das IPMP-System die Suche
einstellen. Wenn der Header weniger als eine vollständige Übereinstimmung
darstellt (z. B. ein Header für
ein System, das einen Internetanschluss hat, dem aber ein digitaler
Ausgabekanal fehlt, wenn das System beide enthält), kann sich das IPMP-System
zwar an den Header hängen,
jedoch nach höheren Übereinstimmungen
suchen und sich an eine höhere Übereinstimmung
hängen,
wenn eine solche gefunden wird.
-
Die
IPMP-Nachrichten, die von einem bestimmten Header identifiziert
werden, wären
solche, die sich für
die bestimmte Funktionalität
der MPEG-4 Vorrichtung eignen und eine Anpassung des MPEG-4 Bitstroms
an diese Funktionalität
gestatten würden.
Im Zusammenhang mit dem oben angegebenen Beispiel würde sich
das IPMP-System für
eine MPEG-4 Vorrichtung mit einem Internetanschluss an einen bestimmten
Header hängen
und die IPMP-Nachrichten, die durch diesen Header gekennzeichnet
sind, herunterladen. Diese Nachrichten würden den Benutzer um Informationen
bitten, diese Informationen der URL bereitstellen und die Entschlüsselung
und das Rendering des Films gestatten, wobei die Werbespots an der
entsprechenden Stelle eingefügt
werden würden.
-
Im
Falle einer MPEG-4 Vorrichtung ohne Internetanschluss würde sich
andererseits das IPMP-System an einen Satz Header hängen, denen das
Bit fehlt, das den Internetanschluss anzeigt, und würde die
diesem Header zugeordneten Re geln herunterladen. Diese Regeln geben
dem Benutzer möglicherweise
keine Optionen. Die Regeln könnten
eine Entschlüsselung
des Inhalts gestatten, würden
aber ebenso die Entschlüsselung
eines zusätzlichen
ES aus dem MPEG-4 Strom bestimmen. Dieser zusätzliche ES würde die
Werbespots enthalten, und das IPMP-System würde die Entschlüsselung
und das Rendering der Werbespots fordern, wobei die Kontrollleitung 819 überprüft werden
würde um
sicherzustellen, dass dies erfolgte. Im Falle des Systems mit Internetanschluss
würden
jedoch die Regeln, die die Entschlüsselung gestatten und das Rendering
des ES, der die Werbespots enthält,
fordern, niemals geladen werden, da diese Regeln in Nachrichten
enthalten wären,
die von der falschen Art von Header identifiziert würden. Der
Werbespot-ES würde
von daher nie entschlüsselt
werden und von der MPEG-4 Vorrichtung
ignoriert werden.
-
Die 21 zeigt eine Art, in der eine gesicherte MPEG-4
Datei erzeugt werden kann. In dieser Figur stellt eine so genannte
CreateBox 2101 ein DigiBox-Erzeugungswerkzeug dar, das
Schlüssel
und Regeln akzeptiert. In einem Ausführungsbeispiel kann die CreateBox 2101 diese
Schlüssel
und Regeln an den IRP 2102 weiterleiten und die DigiBox 2103 von
dem IRP 2102 empfangen. In einem weiteren Ausführungsbeispiel
kann der IRP 2102 in der CreateBox 2101 enthalten
sein, die Schlüssel
und Regeln akzeptiert und die DigiBox 2103 ausgibt.
-
Die
DigiBox 2103 enthält
Regelungsregeln (engl.: governance rules), Initialisierungsvektoren und
Schlüssel.
Die DigiBox 2103 wird von der CreateBox 2101 an
den Bif-Kodierer 2104 weitergeleitet. Der Bif-Kodierer 2104 kann
herkömmlicher
Art sein, mit der Ausnahme, dass er dafür entwickelt ist, DigiBoxen,
wie z. B. die DigiBox 2103, zu akzeptieren und zu verarbeiten.
Der Bif-Kodierer 2104 akzeptiert auch eine .txt Datei,
die einen Szenegraphen enthält, sowie
ursprüngliche
Objektdeskriptor-Befehle.
-
Der
Bif-Kodierer 2104 gibt eine .bif-Datei aus, die den Szenegraphen-Strom
(im komprimierten binären
Format) enthält,
und eine .od-Datei, die die ursprünglichen Objektdeskriptor-Befehle,
den Objektdeskriptor-Strom und die DigiBox 2103 enthält.
-
Der
Bif-Kodierer 2104 leitet die .bif-Datei und die .od-Datei
an den Mux 2105. Der Mux 2105 akzeptiert auch
komprimierte Audio- und Videodateien, sowie eine .scr-Datei, die die Strombeschreibung
enthält.
Der Mux 2105 erzeugt IPMP-Ströme, Deskriptoren und Nachrichten,
verschlüsselt
die Inhaltsströme, verschachtelt
die empfangenen Ströme
und gibt die gesicherte MPEG-4 Inhalts-Datei 2106 aus,
die aus dem so genannten Initial Object Descriptor 2107 (initialer
Objektdeskriptor) und dem verschlüsselten Inhalt 2108 besteht.
Der Initial Object Descriptor 2107 enthält die DigiBox 2103 sowie
andere Informationen. Der verschlüsselte Inhalt 2108 kann
einen Szenegraphen-Strom (d.h. einen BIFS-Strom), einen Objektdeskriptor-Strom,
IPMP-Ströme
und verschlüsselte
Inhaltsströme
enthalten.
-
Wenn
die DigiBox 2103 alle Schlüssel und Regeln enthält, die
erforderlich sind, um den gesamten Inhalt zu rendern, kann es für den Mux 2105 unnötig sein,
irgendwelche IPMP-Ströme
zu erzeugen. Wenn zusätzliche
Schlüssel
oder Regeln für
wenigstens einen Teil des Inhalts erforderlich sind, kann der Mux 2105 diese
Regeln und Schlüssel
in eine oder mehrere zusätzliche
DigiBoxen aufnehmen und diese DigiBoxen entweder in den IPMP-Strom
oder in den OD-Update-Strom aufnehmen.
-
Die 22 zeigt eine Art, auf die die Kontrolle in einen
bestehenden MPEG-4 Strom aufgenommen werden kann. In dieser Figur
enthält
die ungesicherte MPEG-4 Inhalts-Datei 2201 einen Initial
Object Descriptor 2202 und den Inhalt 2203. Der
Inhalt kann einen Szenenbeschreibungs-Strom (oder BIF-Strom), einen
Objektdeskriptor-Strom, einen Video-Strom, einen Audio-Strom und
möglicherweise zusätzliche
Inhaltsströme
enthalten.
-
Die
ungesicherte MPEG-4 Inhalts-Datei 2201 wird an den so genannten
Repackager 2204 weitergeleitet, der auch Schlüssel und
Regeln akzeptiert. Der Repackager 2204 leitet die Schlüssel und Regeln
an den IRP 2205 und empfängt dafür die DigiBox 2206,
die Schlüssel,
Regeln und Initialisierungsvektoren enthält. In einem alternativen Ausführungsbeispiel
kann der IRP 2205 direkt im Repackager 2204 enthalten
sein.
-
Der
Repackager 2204 demultiplext die ungesicherte MPEG-4 Inhalts-Datei 2201.
Er setzt die DigiBox 2206 in den Initial Object Descriptor
ein und verschüsselt
die verschiedenen Inhaltsströme.
Der Repackager 2204 fügt
auch den IPMP-Strom hinzu, falls dies erforderlich ist (einschließlich falls
zusätzliche
DigiBoxen erforderlich sind).
-
Der
Repackager 2204 gibt die gesicherte MPEG-4 Inhalts-Datei 2207 aus,
die aus dem Initial Object Descriptor 2208 (einschließlich der
DigiBox 2206) und dem verschlüsselten Inhalt 2209 (bestehend
aus verschiedenen Strömen,
einschließlich
der IPMP-Ströme,
falls erforderlich) besteht.
-
Real Networks-Implementierung
-
In
einem Ausführungsbeispiel
können
die oben beschriebenen Elemente im Zusammenhang mit Informationen
verwendet werden, die gemäß Formaten
kodiert wurden, die von Real Networks, Inc. entwickelt wurden.
-
Das
Real Networks-Dateiformat (RMFF) ist in 13 gezeigt.
Dieses Format enthält
einen Block von Headern am Anfang (Header 1301), gefolgt
von einer Sammlung aus Inhaltspaketen (Inhalt 1302), gefolgt
von einem Index, der für
so genannte "suche und
gehe nach"-Operationen
(engl.: seek and go to) verwendet wird (Index 1303). Jede
Datei kann mehrere Ströme
verschiedener Typen enthalten. Für
jeden Strom gibt es einen so genannten "Media Properties Header" (1304),
der verwendet wird, um das Format des Medieninhalts (z. B. Komprimierungs-Format)
zu beschreiben und stromspezifische Informationen (z. B. Parameter
für den
Dekomprimierer) bereitzustellen.
-
Die
Real Networks-Ströme
können
dadurch geschützt
werden, dass eine DigiBox in den Header 1301 eingefügt wird
und die in dem Inhalt 1302 enthaltenen Datenpakete verschlüsselt werden.
Das geänderte
Format ist in 14 gezeigt, das einen Header 1401,
einschließlich
der Media Properties Header 1402 und 1403, die
wiederum die DigiBoxen 1404 bzw. 1405 enthalten,
zeigt. Das Format enthält
ebenso verschlüsselten
Inhalt 1406 und einen Index 1407.
-
In
einem Ausführungsbeispiel
wird der ausgewiesene Typ der Daten vom Standardformat von Real
Networks auf einen neuen Typ umgeändert (z. B. RNWK_Protected).
Der alte Typ wird dann gespeichert. Diese Veränderung des Typs zwingt den
Real Networks Player dazu, ein "Trust
Plug-in" zu laden, da
dieses Plug-in als einziges Decoder-Modul registriert ist, das Ströme vom Typ "RNWK-Protected" verarbeiten kann.
Das Trust Plug-in öffnet
die DigiBox, erhält
eine Zustimmung vom Benutzer, falls erforderlich, bestimmt den ursprünglichen
Inhaltstyp, lädt
ein Decoder-Plug-in für
den ursprünglichen
Inhalt und entschlüsselt
und/oder validiert dann den Inhalt, indem es ihn an den Inhalts-De coder-Plug-in
weiterleitet, um dekomprimiert und dem Benutzer vorgelegt zu werden.
-
In
einem Ausführungsbeispiel
sind die spezifischen Änderungen,
die am Real Networks Dateiformat vorgenommen werden, wie folgt:
- • Erhöhen der
Vorlaufzeit, um größere Puffer
auf Playback zu zwingen. In einem aktuellen Ausführungsbeispiel wird eine Erhöhung von
drei Sekunden verwendet. Größere Puffer
sind aufgrund der zusätzlichen
Schritte erforderlich, die zum Entschlüsseln des Inhalts notwendig
sind.
- • Modifizieren
jedes stromspezifischen Headers durch Ändern des MIME-Typs auf "RNWK-Protected", wobei der alte
MIME-Typ in den decoderspezifischen Informationen gespeichert wird
und ein Inhaltsidentifikator und eine DigiBox den decoderspezifischen
Informationen zugefügt
werden. Die DigiBox enthält
den Schlüssel,
den Initialisierungsvektor (IV), Versionsinformationen und Watermarking-Instruktionen.
Der Schlüssel,
der IV und der Inhaltsidentifikator werden automatisch erzeugt oder
können
als Befehlszeilen-Parameter vorgesehen werden. Für jeden Strom werden der gleiche
Schlüssel,
der gleiche IV und der gleiche Inhaltsidentifikator verwendet.
- • Inhaltspakete
werden selektiv verschlüsselt.
In einem Ausführungsbeispiel
werden Inhaltspakete, deren Startzeit in Millisekunden in der ersten Halbsekunde
von jeweils fünf
Sekunden liegt (d.h. Startzeit % 5000 < 500), verschlüsselt. Dies verschlüsselt ungefähr ein Zehntel
des Inhalts, wodurch Ver- und Entschlüsselungskosten gesenkt werden,
und beschädigt
den Inhalt, ausreichend genug, um den Wiederverkauf zu verhindern.
Der Verschlüsselungsalgorithmus
kann DES unter Verwendung des Output-Feedback-Modus oder irgendein ähnlicher
Algorithmus sein. Der Initialisierungsvektor wird für jedes
Paket durch eine XOR-Funktion des IVs des Stroms mit der Startzeit
des Pakets in Millisekunden berechnet. Einige Informationen, die
einzigartig für
den Strom sind, sollten ebenfalls durch eine XOR-Funktion in den IV
aufgenommen werden. In einem Ausführungsbeispiel wird der gleiche
IV für
mehrfache Pakete verwendet, jedes Mal wenn zwei oder mehr Ströme Pakete
mit gleicher Startzeit haben. Dies geschieht üblicherweise für das erste
Paket in jedem Strom, da sie für
gewöhnlich
die Startzeit 0 haben. Außer
dem ersten Paket findet man selten zwei Pakete, die die gleiche
Startzeit haben.
-
In
einem Ausführungsbeispiel
werden diese Änderungen
am Real Networks Dateiformat auf die Weise erreicht, wie sie in 15 gezeigt ist. Wie dargestellt, wird die RMFF-Datei 1501 in
das Standard Real Networks RMFF-Format formatiert. Diese Datei wird
an den Packager 1502 weitergeleitet. Ebenso an den Packager 1502 wird
die Rechte-Datei 1503 (engl.: Rights File) geleitet. Der
Packager 1503 erzeugt die gesicherte RMFF-Datei 1504,
die verschiedene Änderungen
enthält,
wie sie oben beschrieben und in 15 aufgelistet
sind, einschließlich
der Aufnahme einer oder mehrerer DigiBoxen in den Header, der Verschlüsselung
des Inhalts, der Modifizierung des MIME-Typs, usw.
-
In
einem Ausführungsbeispiel
ist der oben beschriebene Trust Plug-in in den 16 und 17 gezeigt.
Die 16 zeigt die Standard-Real-Networks-Architektur.
Die Datei 1601 (z. B. eine Streaming Audio-Datei im Real
Networks-Format) wird dem Real Networks G2 Client Core 1602 bereitgestellt.
Die Datei 1601 kann dem Real Networks G2 Client Core 1602 aus
dem Server 1603 oder durch die direkte Verbindung 1604 bereitgestellt
werden.
-
Bei
Empfang der Datei 1601 greift der Real Networks G2 Client
Core 1602 auf ein Rendering-Plug-in zu, das für die Datei 1601 geeignet
ist, basierend auf Informationen, die aus dem Header erhalten werden,
der der Datei 1601 zugeordnet ist. Die Rendering-Plug-ins 1605 und 1606 sind
gezeigt. Wenn die Datei 1601 von einem Typ ist, der weder durch
das Rendering Plug-in 1605 noch durch das Rendering Plug-in 1606 gerendert
werden kann, kann der Real Networks G2 Client Core 1602 versuchen,
auf ein geeignetes Plug-in zuzugreifen, indem er z. B. um die Unterstützung des
Benutzers bittet oder indem er auf eine Stelle zugreift, die dem
besonderen Dateityp zugeordnet ist.
-
Das
Rendering Plug-in 1605 oder 1606 verarbeitet die
Datei 1601 auf herkömmliche
Weise. Diese Verarbeitung umfasst höchstwahrscheinlich die Dekomprimierung
der Datei 1601 und kann andere Arten der Verarbeitung umfassen,
die für
das Rendering des Inhalts nützlich
sind. Sobald diese Verarbeitung abgeschlossen ist (berücksichtigt
man, dass der Inhalt gestreamt ist, so dass die Verarbeitung an
einem Satz von Paketen erfolgen kann, während gleichzeitig ein weiterer
Satz Pakete gerendert wird), wird die Datei 1601 zurück an den
Real Networks G2 Client Core 1602 geleitet, der dann die
Informationen an die Ren dering-Vorrichtung 1607 weiterleitet.
Die Rendering-Vorrichtung 1607 kann beispielsweise ein Satz
Stereolautsprecher, ein Fernsehempfänger usw. sein.
-
Die 17 zeigt die Art, auf die ein Trust Plug-in innerhalb
der gesamten Real Networks Architektur arbeitet. Ein großer Teil
der in 17 gezeigten Architektur ist
gleich der, die in 16 gezeigt ist. So wird die
Datei 1701 über
den Server 1703 oder die direkte Verbindung 1704 dem
Real Networks G2 Client Core 1702 zugeführt. Die Datei wird unter Verwendung
von Plug-ins, einschließlich
der Rendering Plug-ins 1705 und 1706, von dem
Real Networks G2 Client Core 1702 verarbeitet und dann
an die Rendering-Vorrichtung 1707 geleitet.
-
Die 17 unterscheidet sich von 16 in ihrer
Aufnahme der Trust Plug-ins 1708 und 1709 und
des IRP 1710. Wenn sie zum ersten Mal bei Real Networks
G2 Client Core 1702 registriert werden, informieren die
Trust Plug-ins 1708 und 1709 den Real Networks
G2 Client Core 1702 darüber,
dass sie Inhalt vom Typ RNWK-Protected verarbeiten können. Jedes
Mal, wenn der Real Networks G2 Client Core 1702 auf einen
Strom dieses Typs trifft, wird er dann ermächtigt, eine Instanz des Trust
Plug-ins zu erzeugen, um den Strom zu verarbeiten, z. B. das Trust Plug-in 1708.
Dann leitet er den Strom an das Trust Plug-in.
-
Der
an das Trust Plug-in 1708 geleitete Strom kann in dem in 14 gezeigten Format vorliegen. In einem solchen
Fall extrahiert das Trust Plug-in 1708 die DigiBox 1404 aus
dem Media Properties Header 1402. Ferner extrahiert es
die Inhalts-ID und den ursprünglichen
MIME-Typ aus dem Media Properties Header 1402. Zunächst prüft das Trust
Plug-in, ob irgendein anderer Strom mit dem gleichen Inhaltsidentifikator
geöffnet
wurde. Ist dies der Fall, wird die DigiBox 1404 nicht weiter
verarbeitet. Stattdessen werden der Schlüssel und der IV aus der Box
für diesen
anderen Strom verwendet. Dies erspart den Zeitaufwand für das Öffnen einer
zweiten Box. Ferner stellt dies sicher, dass ein Benutzer nur einmal
aufgefordert wird zu zahlen, selbst wenn mehrfache geschützte Ströme vorhanden
sind. Durch ein Teilen von Inhalts-IDs, Schlüsseln und IVs können mehrere
Dateien gespielt werden, während der
Benutzer nur einmal bezahlt. Dies ist nützlich, wenn SMIL verwendet
wird, um mehrere RMFF-Dateien als eine einzige Darstellung zu spielen.
-
In
einem alternativen und möglicherweise
sichereren Ausführungsbeispiel
wird diese Prüfung nicht
durchgeführt
und der Schlüssel
und die IV aus der aktuellen DigiBox werden selbst dann verwendet, wenn
ein anderer Strom mit diesem Inhaltsidentifikator bereits geöffnet wurde.
-
Wenn
kein anderer Strom mit dem gleichen Inhaltsidentifikator identifiziert
wurde, leitet das Trust Plug-in 1708 die DigiBox 1404 an
den IRP 1710. Der IRP 1710 kann ein Software-Prozess
sein, der auf dem gleichen Computer läuft wie der Real Networks G2
Client Core und das Trust Plug-in 1708. Der IRP 1710 kann
in einer gesicherten Umgebung laufen oder Manipulationsschutzverfahren
enthalten, die den IRP 1710 gegenüber einem Angriff widerstandsfähig machen
sollen.
-
Der
IRP 1710 kann die DigiBox 1404 verarbeiten und
einen kryptographischen Schlüssel
und einen IV extrahieren, die dann an das Trust Plug-in 1708 geleitet
werden. Das Trust Plug-in 1708 kann dann diese Informationen
verwenden, um die verschlüsselten
Inhalte 1406 zu entschlüsseln.
-
Das
Trust Plug-in 1708 verwendet die originalen MIME-Typ Informationen,
die aus dem Media Properties Header 1402 extrahiert wurden,
um eine Instanz des Rendering Plug-in, der für diesen Inhalt verwendet werden
soll, zu erzeugen (z. B. das Rendering Plug-in 1705). Sobald
dies erfolgte, verhält sich
das Trust Plug-in 1708 gegenüber dem Real Networks G2 Client
Core 1702 wie ein gewöhnliches Rendering
Plug-in, indem der Real Networks G2 Client Core 1702 gestreamte
Informationen an das Trust Plug-in 1708 leitet, das diese
Informationen entschlüsselt
und sie an das Rendering Plug-in 1705 weiterleitet. Aus
Sicht des Real Networks G2 Client Cores 1702 stellt das
Trust Plug-in 1708 das geeignete Rendering Plug-in dar, und der Core
weiß nicht, dass
die Informationen von dem Trust Plug-in 1708 an ein zweites
Plug-in geleitet werden (z. B. das Rendering Plug-in 1705).
-
Ähnlich dazu
verhält
sich aus Sicht des Rendering Plug-ins 1705 das Trust Plug-in 1708 wie
der Real Networks G2 Client Core 1702. Obgleich auch das
Rendering Plug-in 1705 verschlüsselte Strom-Informationen
aus dem Trust Plug-in 1708 empfängt, arbeitet das Rendering
Plug-in 1705 genau so, wie wenn die Informationen direkt
aus dem Real Networks G2 Client Core 1702 empfangen worden
wären.
Auf diese Weise kann für
den Rendering Plug-in 1705 formatierter Inhalt stattdessen
zuerst von dem Trust Plug-in 1708 verarbeitet werden, ohne
dass irgendeine Änderung
am Real Networks G2 Client Core 1702 oder dem Rendering
Plug-in 1705 erforderlich wäre.
-
Das
Trust Plug-in 1708 kann auch weitere Verarbeitungen durchführen, die
für Sicherheitszwecke
hilfreich sind. Beispielsweise kann das Trust Plug-in 1708 die
entschlüsselte
Datei vor deren Weiterleiten an das Rendering Plug-in 1705 mit
einem Watermarking versehen, wobei zu berücksichtigen ist, dass der Watermark-Algorithmus
derart sein muss, dass er die Dekomprimierung der Datei durch das
Rendering Plug-in 1705 übersteht.
-
MP3-Ausführungsbeispiel
-
Die
oben beschriebenen Verfahren können auch
bei einem MP3 Streaming Inhalt angewandt werden.
-
Die
MP3-Spezifikation definiert kein Standard-Dateiformat, sonder einen
Bitstrom, der in 18 gezeigt ist. In 18 enthält
der MP-3 Bitstrom 1801 einen Inhalt 1802. Der
Inhalt 1802 ist in Rahmen unterteilt, die als Rahmen 1803,
Rahmen 1804 und Rahmen 1805 gezeigt sind. Die
Punkte zwischen den Rahmen 1804 und 1805 symbolisieren die
Tatsache, dass der Inhalt 1802 eine große Anzahl von Rahmen enthalten
kann.
-
Jeder
Rahmen enthält
seinen eigenen kleinen Header, die in 18 als
Header 1806, 1807 und 1808 gezeigt sind.
-
Viele
MP3-Player unterstützen
einen kleinen Trailer, der von der ID3 V1 Spezifikation definiert
und als Trailer 1809 gezeigt ist. Dies ist ein 128-Byte-Trailer
zum Mitführen
von Feldern wie Künstler,
Titel und Jahr, die als Felder 1810, 1811 und 1812 gezeigt sind.
Der ID3 V1 Trailer wird von solchen Playern ignoriert, die nicht
zum Lesen solcher Trailer ausgelegt sind, es keine gültigen MP3-Daten
zu sein scheinen.
-
Die 19 zeigt ein Ausführungsbeispiel eines Schutzes,
angewendet am MP3-Format.
Dieses geschützte
Format bildet die Datei 1908 und enthält die folgenden Posten:
- • Unverschlüsselter
MP3-Inhalt 1912. Dies sind die ersten Informationen, auf
die ein Player stößt, und
sie werden von jedem Standard-MP3-Player gerendert werden. Sie können eine
Nachricht für den
Benutzer enthalten, die angibt, dass der Inhalt geschützt ist,
und Instruktionen bereitstellen, wie auf den Inhalt zugegriffen
werden kann (z. B. eine URL für
ein Trust Plug-in, Instruktionen zu Zahlungsmechanismen, etc.).
Unverschlüsselter MP3-Inhalt 1912 kann
einen so genannten "Teaser" enthalten, der aus
einem Anfangsabschnitt des Inhalts (z. B. 30 Sekunden) besteht und
kostenfrei gerendert wird, wodurch einem Benutzer ermöglicht wird,
den Inhalt vor dem Treffen einer Kaufentscheidung zur Probe zu sehen.
- • Verschlüsselter
MP3-Inhalt 1901, der Tausende von MP3-Rahmen enthalten
kann. In einem Ausführungsbeispiel
sind die ersten acht Rahmen von jeweils 32 Rahmen verschlüsselt. Somit
sind ein Viertel der Rahmen nicht nutzbar, bis ein Player in der
Lage ist, sie zu entschlüsseln.
In der Praxis kann dies den Inhalt unverkäuflich oder unbrauchbar machen,
ohne dass übermäßige Ver- oder Entschlüsselungskosten
entstehen. Um die Ver- und Entschlüsselungskosten weiter zu senken, werden
nur 32 Bytes in jedem Rahmen verschlüsselt. In einem derzeitigen
Ausführungsbeispiel sind
dies die ersten 32 Bytes nach dem Header und den CRC-Informationen.
In einem anderen Ausführungsbeispiel
können
andere 32 Bytes in jedem Rahmen verschlüsselt werden. In einem aktuellen
Ausführungsbeispiel
wird der Inhalt mit dem DES-Algorithmus
unter Verwendung des Output-Feedback-Modus verschlüsselt. Der
Ausgangs-IV für
die Datei wird zufällig
erzeugt und dann mit der Rahmennummer einer XOR-Funktion unterzogen,
um einen einzigartigen IV für
jeden Rahmen zu erzeugen.
-
Es
können
viele alternative Ausführungsbeispiele
existieren, einschließlich
einer Verschlüsselung
von mehr oder weniger Informationen und der Verwendung anderer Verschlüsselungsalgorithmen.
- • ID3
V 1 Trailer 1902, mit 128 Bytes,
- • Inhalts-ID 1903,
mit 16 Bytes. Diese wird von der Player-Anwendung verwendet, um
ein Öffnen
einer DigiBox zu vermeiden, die sie bereits geöffnet hat.
- • DigiBox 1904,
die ungefähr
18K Bytes enthalten kann. Sie enthält einen Schlüssel 1909,
einen IV 1910 und Watermarking-Instruktionen 1911.
Die Watermarking-Instruktionen 1911 können in einem Prozess für ein Watermarking
des dazugehörigen
Inhalts verwendet werden.
- • Adresse 1905,
die die Adresse in der Datei der Inhalts-ID 1903 enthält und aus
4 Bytes besteht.
- • Trust-ID 1906,
welche diese vertrauenswürdige MP-3
Datei identifiziert und aus 16 Bytes besteht.
- • ID3
V 1 Trailer 1907, der eine Kopie des Trailers 1902 ist.
-
Ein
herkömmlicher
MP3-Player, der auf die Datei 1908 trifft, wäre nicht
in der Lage, den Inhalt 1901 zu rendern, da zumindest ein
Teil dieses Inhalts verschlüsselt
ist. Ein derartiger Player würde
sich höchstwahrscheinlich
bis zum Trailer 1902 durchlesen und an dieser Stelle mit
der Verarbeitung aufhören.
Ein herkömmlicher
Player, der nach der ID3 Trailer-Information sucht, wird bis zum
Ende suchen und sie finden.
-
Die 20 zeigt ein Ausführungsbeispiel eines MP3-Players,
der dafür
ausgelegt ist, geschützten
Inhalt zu verarbeiten und zu rendern. Diese Figur zeigt den MP3-Player 2001,
der einen Puffer 2006 und einen Dekomprimierer 2007 enthält, und
Inhalt an die Rendering-Vorrichtung 2008 rendert. In einem Ausführungsbeispiel
ist dies eine modifizierte Version eines von Sonique vertriebenen
Players.
-
Der
Player 2001 erhält
die geschützte MP3-Datei 2002 über irgendeine
Standardschnittstelle. Die geschützte
MP3-Datei 2002 kann das in 19 gezeigte
Format haben.
-
Wird
der Player 2001 aufgefordert, die geschützte MP3-Datei 2002 zu
spielen, ruft der Player 2001 zunächst das Trust Plug-in 2003 auf,
der die Freigabe-Funktion 2009 (engl.: Approval Function) und
die Entschlüsselungsfunktion 2005 enthält. Das Trust
Plug-in 2003 ruft die Freigabe-Funktion 2009 auf,
um zu bestimmen, ob die geschützte
MP3-Datei 2002 geschützt
ist und ob eine Berechtigung vorliegt, die Datei zu spielen. Der
Freigabe-Funktion 2009 wird zunächst ein Pointer auf die geschützte MP3-Datei 2002 gegeben.
Daraufhin überprüft sie die
geschützte
MP3-Datei 2002 auf das Vorhandensein der Trust-ID 1906.
Wird die Trust-ID 1906 nicht gefunden, gibt die Freigabe-Funktion 2009 einen
Indikator zurück,
dass die Datei nicht geschützt ist.
Der Player 2001 fährt
dann fort, die Datei als normale MP3-Datei zu rendern.
-
Wird
die Trust-ID 1906 gefunden, überprüft die Freigabe-Funktion 2009 die
Inhalts-ID 1903, um zu sehen, ob sie der Inhalts-ID einer
Datei entspricht, die bereits geöffnet
wurde.
-
Wenn
die geschützte
MP3-Datei 2002 nicht zuvor geöffnet worden ist, wird die
DigiBox 1904 von der Freigabe-Funktion 2009 aufgerufen
und an den IRP 2004 weitergeleitet, der Software enthalten kann,
die in einer gesicherten Umgebung läuft oder Manipulationsschutz
enthält.
Der IRP 2004 versucht die DigiBox 1904 gemäß den Regeln
zu öffnen,
die dieser DigiBox zugeordnet sind. Eine solche Regel kann beispielsweise
erfordern, dass der Benutzer seine Zustimmung zur Bezahlung für die Benutzung des
Inhalts gibt. Wenn die DigiBox 1904 nicht geöffnet werden
kann (z. B. der Benutzer verweigert die Bezahlung), wird ein Wert
an die Freigabe-Funktion 2009 zurückgesendet, der anzeigt, dass
die Datei geschützt
ist und nicht gespielt werden darf.
-
Wenn
die DigiBox 1904 gemäß den anwendbaren
Regeln geöffnet
wird, werden der Schlüssel und
der IV aufgerufen und an die Entschlüsselungsfunktion 2005 geleitet.
Der Schlüssel
und der IV werden zusammen mit der Inhalts-ID zur späteren Wiederbenutzung
gespeichert, und die Entschlüsselungsfunktion 2005 wird
initialisiert. Dies kann das gesamte Systemverhalten verbessern,
da dadurch die Anzahl der Öffnungen
einer DigiBox verringert werden kann. Jede solche Handlung kann
eine beträchtliche
Latenz einbringen.
-
Andererseits
kann das Speichern dieser Informationen in einem ungeschützten Speicher
die gesamte Systemsicherheit reduzieren. Die Sicherheit kann verbessert
werden, indem man entweder diese Informationen nicht speichert (wodurch
es erforderlich wird, dass jede DigiBox geöffnet wird, selbst wenn die
entsprechende Datei bereits durch eine andere DigiBox geöffnet wurde),
oder indem man diese Informationen in geschützter Form oder an einer sicheren
Stelle speichert.
-
Auf
den Schlüssel,
die IV und die Inhalts-ID, die gespeichert sind, wird Bezug genommen,
wenn die Freigabe-Funktion 2009 zunächst die Inhalts-ID 1903 prüft, um zu
bestimmen, ob sie der Inhalts-ID einer bereits geöffneten
Datei entspricht. Wenn die neue Inhalts-ID mit einer gespeicherten
Inhalts-ID übereinstimmt,
wird die Entschlüsselungsfunktion 2005 erneut
initialisiert, wobei der Schlüssel
und der IV, die gespeichert sind und dieser übereinstimmenden Inhalts-ID
entsprechen, verwendet werden, wobei ein Wert, der anzeigt, dass
dies eine geschützte Datei
ist, deren Wiedergabe autorisiert ist, an die Freigabe-Funktion 2009 zurückgesendet
wird.
-
Sobald
die geschützte
MP3-Datei 2002 geöffnet
worden ist, liest der Player 2001, jedes Mal wenn er ein
Paket benötigt,
dieses in den Puffer 2006, zieht den Header und den CRC
ab und leitet die verbleibenden Daten und eine Rahmennummer an die
Entschlüsselungsfunktion 2005,
die den Rahmen falls erforderlich entschlüsselt und ihn an den Player 2001 zurücksendet.
-
In
einem derzeitigen Ausführungsbeispiel sind
die Header oder Trailer nicht verschlüsselt, obgleich der Audio-Inhalt
verschlüsselt
ist. Dies ermöglicht
dem Player 2001, ohne ein Eingreifen der Freigabe-Funktion 2009 oder
der Entschlüsselungsfunktion 2005 Informationen
in Headern oder Trailern zu verarbeiten. Dies ermöglicht dem
Player 2001, Informationen wie z. B. Spielzeit, Künstler und
Titel in eine Anzeige einer Playliste aufzunehmen und den Dekomprimierer 2007 zu
initialisieren, ohne dass irgendein Eingriff vom Trust Plug-in 2003 erforderlich wäre.
-
Handelsgerät-Ausführungsbeispiel
(engl.: Commerce Appliance Embodiment)
-
Dieser
Abschnitt beschreibt ein Ausführungsbeispiel,
das eine Handelsgerät-Architektur umfasst,
die dafür
ausgelegt ist, eine ständige
Kontrolle digitaler Werke in Unterhaltungselektronikgeräten zu ermöglichen.
Obgleich es als selbständiges Ausführungsbeispiel
beschrieben wird, wird darauf hingewiesen, dass die Merkmale dieses
Ausführungsbeispiels
mit den Merkmalen irgendeines der an anderer Stelle in dieser Beschreibung
angegebenen Ausführungsbeispiele
kombiniert oder ausgetauscht werden kann.
-
In
einem Ausführungsbeispiel
wird dieser Abschnitt Modifizierungen am MPEG-4 Standard beschreiben,
die dafür
bestimmt sind, die Zuordnung persistenter Regeln und Kontrollen
zu dem MPEG-4 Inhalt zu stützen,
sowie Elemente, die für
ein Handelsgerät
zur Nutzung eines solchen Inhalts erforderlich sind. Dies ist jedoch
rein beispielhaft anzusehen.
-
In
einem Ausführungsbeispiel,
das in 23 gezeigt ist, enthält jedes
Handelsgerät 2301 ein CMPS
("Content Management
and Protection System" Inhaltsverwaltungs-
und schutzsystem) 2302. Jedes CMPS ist dafür verantwortlich,
die Benutzung kontrollierten Inhalts zu regeln, einschließlich der Entschlüsselung
des Inhalts und des Sicherstellens, dass der Inhalt nur so verwendet
wird, wie dies von dazugehörigen
Regeln gestattet wird.
-
Jedem
geregelten digitalen Werk sind ein oder mehrere CMPOs (Content Management
Protection Object) (Inhaltsverwaltungs- und -schutzobjekt) zugeordnet,
z. B. die CMPOs 2303. Jedes CMPO kann Regeln spezifizieren,
die die Benutzung des digitalen Werks regeln, und kann Schlüssel enthalten, die
zum Entschlüsseln
des Werks verwendet werden.
-
Die
CMPOs können
hierarchisch organisiert sein. In einem Ausführungsbeispiel kann ein Inhalts-Aggregator
(z. B. ein Kabelkanal, eine Webseite, etc.) ein Kanal-CMPO (Channel CMPO "CCMPO") spezifizieren,
das dazu verwendet wird, bestimmte globale Regeln dem gesamten,
auf diesem Kanal vorhandenen Inhalt zuzuordnen. Jedes unabhängige Werk
kann wiederum ein zugeordnetes MasterCMPO ("MCMPO") haben, das dazu verwendet wird, Regeln
zuzuordnen, die auf das Werk als Ganzes anwendbar sind. Jedem Objekt
(oder jedem Elementary Stream, im MPEG-4) kann ein CMPO zugeordnet
sein, das Regeln enthält,
die dieses bestimmte Objekt regeln.
-
Bei
einer beispielhaften Anwendung kann das Handelsgerät 2301 ein
MPEG-4 Player sein, der ein CMPS 2302 enthält. Bei
Empfang eines Benutzerbefehls zum Spielen eines bestimmten Werkes, kann
das CMPS 2302 ein MCMPO herunterladen, das dem Werk zugeordnet
ist, und Regeln erhalten, die Bedingungen einschließen können, die
zum Entschlüsseln
und Betrachten des Werks erforderlich sind. Werden die Regeln erfüllt, kann
das CMPS 2302 Schlüssel
aus dem MCMPO verwenden, um jegliche Elementary Streams ("ES") zu entschlüsseln, und
kann die entschlüsselten
ESs in die Puffer weiterleiten. Composition (Zusammensetzung) und Rendering
des MPEG-4 Werkes können
anschließend
gemäß dem MPEG-4
Standard erfolgen, mit der Ausnahme, dass jeder Speicherplatz oder
Bus, der das Werk im Klartext enthalten kann, sicher sein muss,
und das CMPS 2302 kann die Fähigkeit haben, eine stromabwärtige Verarbeitung
zu regeln, sowie Informationen darüber zu erhalten, welche AVOs tatsächlich zum
Sehen freigegeben wurden.
-
In
einer Ausführungsvariante
kann der Prozess des Erhaltens und Regelns des Werkes das Herunterladen
eines CCMPO einschließen,
das Regeln anwendet, die dieses und andere Werke regeln. Wenn in
dem CCMPO enthaltene Regeln erfüllt
werden, kann das CMPS 2302 einen Schlüssel erhalten, der dazu verwendet
wird, das diesem bestimmten, zu sehenden Werk zugeordnete MCMPO
zu entschlüsseln.
-
In
einer weiteren Ausführungsvariante
kann jedem ES ein CMPO zugeordnet sein. Bei dieser Variante liefert
das MCMPO einen oder mehrere Schlüssel zur Entschlüsselung
jedes CMPO, und jedes CMPO kann wiederum einen Schlüssel zur
Entschlüsselung
des dazugehörigen
ES liefern.
-
Das
Handelsgerät 2301 ist
eine Inhaltsrendering-Vorrichtung, die die Fähigkeit hat, verteiltes Peer-Management
von inhaltsspezifischen Rechten zu stützen, indem auf sichere Weise
Regeln und Kontrollen angewendet werden, um die Inhaltsbenutzung
zu regeln. Das Handelsgerät 2301 kann
Universalfunktionen umfassen, die der Akquisition und dem gesteuerten
Rendering des Inhalts gewidmet sind (z. B. ist ein DVD (und/oder
jedes andere Bildplattenformat)-Player in der Lage, eine DVD (und/oder
jedes andere Bildplattenformat)-Disk zu spielen und Inhalt an einen
Fernseher auszugeben). Das Handelsgerät 2301 kann von irgendwelchen
Mitteln zum Schutz und zur Verwendung digitalen Inhalts auf einer
Bildplatte hoher Kapazität
Gebrauch machen, in einem nicht ausschließlichen Beispiel einer DVD-Disk,
wie in der vorgenannten Patentanmeldung von Shear beschrieben.
-
Das
Handelsgerät 2301 enthält ferner
Sonderfunktionen, die andere Inhaltsverwaltungs- und schutzfunktionen
betreffen. Diese Sonderfunktionen können von einem oder mehreren
eingebetteten oder anderweitig aufgenommenen CMPS 2302 in
Form eines einzelnen CMPS oder einer kooperativen CMPS-Anordnung
gestützt
werden und eine Benutzerschnittstelle (z. B. die Benutzerschnittstelle 2304) umfassen,
die dafür
ausgelegt ist, dem Benutzer die kontrollspezifischen Informationen
anzuzeigen und/oder die kontrollspezifischen Informationen und Anweisungen
von dem Benutzer zu empfangen. Das Handelsgerät 2301 kann ferner
so ausgelegt sein, dass es mit anderen Handelsgeräten (z.
B. einer Set-Top-Box,
die an einen DVD-Player und an einen digitalen Fernseher angeschlossen
ist) und/oder mit anderen Vorrichtungen, wie z. B. eine Computer anordnung,
die ebenfalls ein oder mehrere CMPSs enthalten kann, netzwerkfähig ist.
-
Eine
wichtige Form von Handelsgerät
sieht speziell die sichere Kopplung auf regelmäßige oder kontinuierliche Weise
mit einer von einem Computer verwalteten Docking-Umgebung voraus
(z. B. ein Einzelrechner oder eine andere von einem Computer verwaltete
Vorrichtung, die selbst ein Handelsgerät sein kann), bei der das eine
oder die mehreren CMPSs des Handelsgeräts mit der Docking-Umgebung
zusammenarbeiten, um eine einzige Benutzeranordnung zu bilden, deren
Durchführung
bestimmter Funktionen und/oder bestimmter Inhaltsnutzungsvorgänge durch
eine solche Zusammenarbeit über zumindest
teilweise die Zusammenarbeit zwischen den CMPSs und den Inhaltsnutzungsmanagementinformationen
des Handelsgerätes
und den Fähigkeiten
einer vertrauenswürdigen
Umgebung der Docking-Umgebung ermöglicht wird (z. B. ein oder
mehrere weitere CMPSs und Inhaltsnutzungsmanagementinformationen,
wie z. B. die Informationen, die durch die Benutzung von CI bereitgestellt
werden).
-
Ein
beispielhaftes Handelsgerät
kann dafür ausgelegt
sein, dem neueren MPEG-4 Standard zur Formatierung, zum Multiplexen,
zur Übertragung,
zur Zusammensetzung und zum Rendern von Videos und anderen Arten
von Informationen zu entsprechen.
-
Das
Handelsgerät 2301 kann
jedes Rechengerät
sein und ein die Erfindung nicht einschränkendes Beispiel ist ein Personal
Computer (PC), der eine MPEG-4 Software (und/oder Hardware) zum
Rendern von Inhalt enthält.
Gemäß der vorliegenden
Erfindung kann der PC auch ein oder mehrere CMPSs, wie sie hier
beschrieben sind, verwenden.
-
Die
Handelsgerät-Funktion
ist nicht auf gestreamten Kanalinhalt beschränkt, sondern kann verschiedene
Browser-Typ-Anwendungen umfassen, die aus aggregiertem Composite-Inhalt
bestehen, wie z. B. Standbilder, Text, synthetische und natürliche Video-
und Audioinhalte und funktionelle Inhalte, wie z. B. Applets, Animationsmodelle
usw., und diese Vorrichtungen umfassen Browser, Set-Top-Boxen, etc.
-
Inhaltsverwaltungs- und
-schutzsystem (engl.: Content Management and Protection System (CMPS))
-
Jedes
Handelsgerät
umfasst ein oder mehrere CMPS (z. B. ein CMPS 2302). Das
CMPS ist verantwortlich für
den Aufruf und die Anwendung der Regeln und Kontrollen, einschließlich der
Verwendung der Regeln und Kontrollen zur Regelung der Art und Weise,
in der kontrollierter Inhalt verwendet wird.
-
Besondere
Funktionen des CMPS 2302 schließen folgende ein:
- (a) Identifizierung und Interpretation von Regeln.
Das
CMPS 2302 muss bestimmen, welche Regeln anzuwenden und
wie diese Regeln angesichts vorhandener Zustandsinformationen zu
interpretieren sind. In einem Ausführungsbeispiel erfordert dies,
dass das CMPS 2302 ein oder mehrere CMPOs 2303,
die einem Werk zugeordnet sind, erhält und entschlüsselt.
- (b) Identifizierung von Inhalt, der bestimmten Regeln zugeordnet
ist.
Das CMPS 2302 muss bestimmen, welcher Inhalt von
einer oder mehreren bestimmten Regeln kontrolliert wird. Dies kann
dadurch erreicht werden, dass man Informationen aus einem oder mehreren
CMPOs 2303 und/oder anderen CI erhält. In einem Ausführungsbeispiel
kann ein CCMPO einen Satz Werke identifizieren, ein MCMPO kann ein
bestimmtes Werk identifizieren und ein CMPO kann einen bestimmten
ES oder ein audiovisuelles Objekt ("AVO")
identifizieren.
- (c) Entschlüsselung
des Inhalts, wie durch die Regeln gestattet.
Das CMPS 2302 kann
so ausgelegt sein, dass der gesamte Inhalt durch das CMPS 2302 zur
Entschlüsselung
geleitet wird, ehe er in den Datenfluss, der von dem relevanten
Standard gefordert wird, wieder eingesetzt wird. Im Falle von MPEG-4
kann beispielsweise die Ausgabe aus dem Demux 2305 in das
CMPS 2302 eingegeben werden. Das CMPS 2302 kann
dann den Inhalt entschlüsseln
und, wenn relevante Regeln und Kontrollen erfüllt sind, den Inhalt in die
MPEG-4 Puffer eingeben. Ab diesem Punkt kann der dem Inhalt zugeordnete
Datenfluss so sein wie durch MPEG-4 beschrieben.
- (d) Inhaltskontrolle auf Regelbasis.
Das CMPS 2302 kann
dazu verwendet werden, die Nutzung von Inhalt nach der ersten Entschlüsselung
zu kontrollieren, beispielsweise durch die Nutzung sicherer Eventverwaltung,
wie dies in der aufgenommenen Patentanmeldung '333 von Ginter beschrieben ist. Im Falle
von MPEG-4 Systemen kann dies erfordern, dass das CMPS 2302 eine
Kontrolle über
die Hardware und/oder die Software ausübt, die die folgenden Funktionen
erfüllt:
Demultiplexen (ausgeführt
durch den Demux 2305), Dekomprimierung/Puffern/Decodieren
in AVOs (ausgeführt
durch den Szenenbeschreibungsgraphen 2306, den AVO-Decode 2307 und die
Objektdeskriptoren 2308), Szenen-Rendering (ausgeführt im Composite
und Render 2309).
Das CMPS 2302 kann auch
dazu verwendet werden, die Nutzung und die Folgen zu kontrollieren gemäß: (1) allgemeinen
Kopierschutzregeln, wie z. B. das CGMS und/oder die SGMS-Standards; (2)
verschiedenen Kontrollmethoden zum Kontrollieren eines bedingten
Zugriffs ("Conditional
Access"), wie z.
B. diejenigen, die von NDS vorgeschlagen und/oder implementiert
wurden, wie im MPEG-4 Dokument M2959, DAVIC "Copyright Control Famework"-Dokument, und in
anderen Publikationen beschrieben; (3) einer Sprache der Rechteverwaltung
(engl.. Rights Management Language), wie diejenigen, die in der
Patentanmeldung '333
von Ginter vorgeschlagen wurden und/oder wie sie im US-Patent Nr.
5,638,443 von Stefik, et al. beschrieben sind; (4) Nutzungsrichtlinien,
die gemäß dem At&T's Policy Maker beschrieben
wurden, wie von Blaze, Feigenbaum und Lacy beschrieben; (5) die
CCI-Schicht Bits für die
IEEE 1394 Serial-Bus-Übertragung,
wie von der DTDG-Untergruppe der DVD Copy Protection Technical Working
Group spezifiziert und/oder von dem von Hitachi, Intel, Matsushita,
Sony und Toshiba vorgeschlagenen Standard implementiert (nachstehend "der "Fünf-Firmen-Vorschlag"); (6) Kontrollen,
die unter Verwendung irgendeiner Technologie mit sicheren Behältern übertragen werden,
wie z. B. der IBM Cryptolope; (7) irgendwelchen anderen Mittel zum
Spezifizieren von Nutzungsregeln und -folgen.
- (e) Überwachen
der Inhaltsnutzung
Das CMPS 2302 kann dazu verwendet
werden, den Inhalt zu überwachen,
um:
(i) sicherzustellen, dass die Regeln eingehalten werden,
(ii) sicherzustellen, dass keine Versuche unternommen werden, das
System oder geschützten
Inhalt zu manipulieren, und (iii) Informationen aufzuzeichnen, die
von den Regeln verwendet werden, einschließlich Nutzungsinformationen,
die für
Zahlungszwecke erforderlich sind.
- (f) Aktualisieren von Benutzer-Budgets
Das CMPS 2302 kann
dazu verwendet werden, Benutzer-Budgets oder andere Budgets zu aktualisieren,
um die Nutzung zu reflektieren.
- (g) So genannte "Exhaust
Informationen"
Das
CMPS 2302 kann dazu verwendet werden, Zahlungs- und Nutzungsinformationen
(engl.: "exhaust
information") an
externe Prozesse auszugeben, einschließlich eines oder mehrerer Handelsgebrauchssysteme
(engl.: Commerce Utility Systems).
- (h) Identifizierung und Konfigurierung der Hardware
- (i) Erhalten neuer, zusätzlicher
und/oder erweiterter Regeln aus einem externen Prozess, wobei ein
nicht einschränkendes
Beispiel hierfür
ein so genanntes "Rights
and Permission Clearinghouse" ist,
wie es in der aufgenommenen Patentanmeldung von Shear beschrieben
ist.
- (j) Empfangen von Schlüsseln,
digitalen Passwörtern,
wie z. B. Zertifikate, und/oder administrative Informationen von
zertifizierenden Behörden,
Einsatzmanagern, Clearinghäusern,
und/oder anderen vertrauenswürdigen
Infrastrukturdiensten.
- (k) Sicheres Senden und/oder Empfangen von Benutzer- und/oder
Geräteprofilen
und/oder Attributinformationen.
- (l) Sicheres Identifizieren eines Benutzers oder eines Mitglieds
einer Klasse von Benutzern, der/das eine Inhalts- und/oder CMPO-
und/oder CMPS-Nutzung anfordert.
- (m) Sicheres Zertifizieren oder anderweitiges Garantieren der
Authenzität
des Anwendungscodes, beispielsweise wird innerhalb des CMPO 2301 und/oder
des CMPS 2302 zertifiziert, dass der Anwendungscode, der
Regeln und/oder andere Anwendungsinformationen enthält, wie
beispielsweise Informationen, die im Java Code für eine bedingte Ausführung innerhalb
eines Handelsgeräts geschrieben
wurden, und/oder zumindest teilweise außerhalb des CMPO 2301 und/oder
des CMPS 2302 ausgeführt
wird, nicht geändert
wurde und/oder von einer garantierten (z. B. vertrauenswürdigen)
Partei geliefert wurde.
- (n) Sicheres Verarbeiten unabhängig gelieferter CI, wie dies
in der aufgenommenen Patentanmeldung '333 von Ginter beschrieben wurde, um
eine Inhaltsnutzungskontrolle durchzuführen, die die Rechte mehrerer,
unabhängiger
Parteien in einer Handelswertkette schützt.
- (o) Sicheres Durchführen
von Watermarking-Funktionen (einschließlich beispielsweise das Fingerprinting),
wie sie beispielsweise in der Patentanmeldung '333 von Ginter beschrieben wurden und
hier aufgenommen sind, z.B. einschließlich der Interpretation von
Watermarking-Informationen zur Kontrolle der Inhaltsnutzung und/oder
zur Ausgabe einer Eventnachricht, wobei eine solche Eventnachricht
an eine entfernte Behörde,
wie z. B. eine MCMPO-Rights-Clearinghouse-Verwaltungsstelle,
berichtet werden kann.
-
Das
CMPS 2302 kann dazu verwendet werden, die aktuelle Hardware-Konfiguration
des Handelsgeräts
und beliebiger angeschlossener Vorrichtungen zu identifizieren und
aufzuzeichnen (z. B. welche Lautsprecher zur Verfügung stehen,
die Identifizierung angeschlossener Monitore, einschließlich, ob bestimmte
Monitore digitale Ausgabekanäle
haben, etc.). Wenn angeschlossene Vorrichtungen (wie z. B. Lautsprecher)
ebenfalls CMPSs enthalten, können die
CMPSs zur Kommunikation für
Zwecke der Koordinierung verwendet werden (z. B. kann ein CMPS in einer
Set-Top-Box und/oder Lautsprecheranordnung mit einem CMPS in einem
stromabwärtigen
digitalen Fernseher oder einer anderen Anzeigevorrichtung kommunizieren,
um festzustellen, welches CMPS für die
Regelung oder die Art der kooperativen Regelung durch einen Prozess
virtueller Rechte verantwortlich sein wird, wobei dieser Prozess
optional einen sogenannten Rights Authority Server einschließt, der
Prozesse über
Rechte (engl.: rights processes) finden, lokalisieren, bereitstellen,
aggregieren, verteilen und/oder verwalten kann, wie dies in der
vorgenannten Patentanmeldung von Shear beschrieben ist, um beispielsweise
mehrere CMPSs für
eine einzige Nutzerinhaltsverarbeitung und Nutzungsanordnung zu verwenden).
-
Die
vorliegende Erfindung umfasst Anordnungen, die mehrfache Handelsgeräte und/oder CMPSs
an einer oder mehreren Benutzerorten umfassen, wobei nicht einschränkende Beispiele
hierfür ein
Haus, eine Wohnung, ein Loft, ein Büro und/oder ein Fahrzeug, wie
z. B. ein Auto, ein Lastwagen, ein SUV, ein Boot, ein Schiff oder
Flugzeug sind, die wenigstens gelegentlich miteinander kommunizieren und
ein virtuelles Netzwerk umfassen können, das wenigstens durch
die teilweise Verwendung von solchen CMPSs logisch arbeitet, um
eine optimale kommerzielle Flexibilität und einen optimalen kommerziellen
Wirkungsgrad und die Durchsetzung von Rechten der Handelswertkettenteilnehmer
sicherzustellen, einschließlich
finanzieller Rechte sowie Urheberrechte von Anbietern, Infrastrukturrechten
von Geräteanbietern,
sozialer Rechte von Regierungs- und/oder Gesellschaftskörpern und
Privatrechte aller Parteien, einschließlich der Verbraucher. Informationen
bezüglich
der Wechselwirkung innerhalb eines solchen Netzwerks von Wertkettenteilnehmern,
einschließlich
der Inhaltsnutzungsprüfung,
Inhaltsnutzungfolge und der CI-Spezifikation, können sicher und variabel an
Parteien berichtet werden, die ein Recht auf solche Informationen
haben, durch zumindest teilweise die Verwendung solcher CMPSs, wie dies
beispielsweise in der vorgenannten Patentanmeldung '712 von Ginter hinsichtlich
der Informationsberichtserstattungsfunktionen der VDE-Knoten beschrieben
wurde.
-
In
einem in 24 gezeigten Ausführungsbeispiel
besteht das CMPS 2401 aus einer speziellen Hardware und
einer residenten Software oder Firmware. Diese enthalten folgendes:
- (a) Einen oder mehrere Prozessoren oder Mikrokontroller,
z. B. eine CPU 2402. Die CPU 2402 kontrolliert
die gesamte Verarbeitung des CMPS 2401, einschließlich der
Ausführung
jeglicher erforderlicher Software.
- (b) Einen oder mehrere externe Kommunikationsports, z. B. der
Port 2403. Der Port 2403 kommuniziert mit einem
externen Netzwerk 2404, das LANs, WANs oder verteilte Netzwerke,
wie das Internet, enthalten kann. Externe Kommunikationsports können auch
einen oder mehrere IEEE 1394 serielle Busschnittstellen
enthalten.
- (c) Einen Speicher 2405. Arten von Speichern, die im
Speicher 2405 aufgenommen werden können – und Beispiele für die Informationen,
die sie speichern können – sind folgende:
i.
ROM 2406. Das ROM 2406 kann jegliche Informationen
enthalten, die permanent im CMPS 2401 gespeichert sind,
wie z. B. (1) ein CMPS Betriebssystem 2407 und/oder CMPS
BIOS 2408, (2) Regeln/Kontrollen 2409, die permanent
im CMPS gespeichert sind; (3) Kontrollgrundelemente 2410,
die verwendet werden können,
um Regeln oder Kontrollen zu erstellen; (4) Schlüssel 2411, die dem
CMPS zugeordnet sind, einschließlich
eines Öffentlichen/Privaten
Schlüsselpaares; (5)
ein oder mehrere Zertifikate 2412, die dafür ausgelegt
sind, das CMPS 2401 und/oder die Vorrichtung zu identifizieren,
einschließlich
Versionsinformationen; (6) Hardware-Signatur-Informationen 2413,
die zum Prüfen
auf Manipulation verwendet werden (z. B. eine gehashte Signatur,
die den erwarteten Hardware-Zustand der Vorrichtung reflektiert).
ii.
RAM 2414. Das RAM 2414 kann Informationen über den
aktuellen Zustand enthalten, die von dem CMPS 2401 benötigt werden,
sowie Informationen, die von dem CMPS 2401 zur späteren Verwendung
temporär
gespeichert werden. Informationen, die im RAM 2414 gespeichert
sind, können
folgende enthalten: (1) Software 2415, die aktuell in der
CPU 2402 ausgeführt
wird; (2) CMPOs 2416, die aktuell aktiv sind; (3) eine
Inhaltsobjektidentifikation 2417 solcher Inhaltsobjekte,
die aktuell aktiv sind (in einem MPEG-4 System würde dies beispielsweise eine
Identifizierung aktiver AVOs darstellen); (4) Regeln 2418,
die aktuell aktiv sind; (5) Zustandsinformationen 2419 über den aktuellen
Inhaltsnutzungszustand, einschließlich einer Identifizierung
irgendeiner Organisation höherer
Ordnung (in einem MPEG-4 System würde dies eine Identifizierung
des Szenenbeschreibungsbaums und des aktuellen Zustands von Composition
und Rendering darstellen); (6) gespeicherte "Exhaust Informationen" 2420 über die Verwendung
und/oder den Benutzer, ausgelegt für eine externe Übertragung;
(7) Aktualisierte Budget-Informationen 2421;
(8) Inhalt 2422; (9) Informationen über aktive Inhalts kassen 2423; und
(10) Identifizierung aktiver Benutzer 2424, einschließlich identifizierungscharakteristische
Informationen.
iii. NVRAM 2425 (z. B. Flash-Speicher).
Dieser Speichertyp kann Informationen aufnehmen, die zwar persistent,
aber änderbar
sind, einschließlich
wenigstens einiger der folgenden: (1) Budget-Informationen 2426;
(2) Benutzerinformationen 2427, wie z. B. Identifizierung,
Kreditkartennummern; bevorzugte Clearinghäuser und andere Handelsgebrauchssysteme;
(3) Benutzerpräferenzen 2428,
wie z. B. Präferenzen,
Profile und/oder Attributinformationen; und (4) Geräteinformationen 2429,
wie z. B. Attributions- und/oder Zustandsinformationen.
-
Die
oben beschriebenen und im CMPS-Speicher 2405 gespeicherten
Arten von Informationen können
in Alternativen zu den obigen Speicherarten gespeichert werden,
beispielsweise können
bestimmte Budget-Informationen im ROM untergebracht werden, Informationen über ein
oder mehrere spezielle Clearinghäuser
können
im ROM gespeichert werden, bestimmte aktive Informationen können in
das NVRAM bewegt werden, etc.
-
Budget-Informationen
können
gespeicherte Budgets enthalten, die beispielsweise bestehen aus:
- (1) Electronic Cash
- (2) vorautorisierte Benutzungen (z. B. basierend auf einer Vorauszahlung,
hat der Benutzer das Recht, 12 Stunden Programm zu sehen).
- (3) Sicherheitsbudgets, die mit Mustern in Bezug stehen, die
eine unnormale und/oder unberechtigte Nutzung wie sie beispielsweise
in dem aufgenommenen Shear-Patent beschrieben ist, wiederspiegeln,
wobei solche Budgets ein bestimmtes kumulatives Nutzungsverhalten
einschränken und/oder
darüber
Bericht erstatten.
- (4) elektronischen Kredit, einschließlich eines Kredits, der sich
aus Nutzungsevents ergibt, wie z. B. die Beachtung von Werbematerialien und/oder
das Abspielen mehrerer Werke von einer oder mehreren Klassen von
Werken (z. B. die Werke eines bestimmten Herausgebers) führen zu
einem Kredit oder einer Rückerstattung und/oder
einem Rabatt beim zukünftigen
Abspielen eines oder mehrerer solcher Werke eines Herausgebers,
wie z. B. andere von diesem Herausgeber angebotene Werke.
-
Benutzerinformationen
können
die folgenden Arten von Informationen für einen oder mehrere autorisierte
Benutzer des Handelsgeräts
umfassen:
- (1) Name, Adresse, Telefonnummer,
Sozialversicherungsnummer oder eine andere Identifikation
- (2) Informationen, die zum Authentifizieren des Benutzers verwendet
werden und ein vom Benutzer gewähltes
Passwort und/oder biometrische Daten, wie z. B. Fingerabdrücke, Netzhautdaten, etc.,
enthalten können.
- (3) Öffentliches/Privates
Schlüsselpaar
des Benutzers
- (4) Benutzerattribut- und/oder Profilinformationen.
iv.
ein entfernbarer Speicher 2430. Darunter können alle
Arten von Speichervorrichtungen mit entfernbaren Speichern fallen,
wie z. B. Smartcards, Floppydisks oder DVD-Disks. Wenn das Handelsgerät dazu bestimmt
ist, einen Inhalt abzuspielen, der auf Vorrichtungen mit entfernbaren
Speichern empfangen wird (z. B. ein DVD-Player), kann diese Fähigkeit
für Zwecke
des CMPS verwendet werden.
-
Der
Speicher 2405 kann eine geschützte Datenbank enthalten, in
der bestimmte Kontroll-, Budget-, Prüfungs-, Sicherheits- und/oder
kryptographische Informationen in einem Sicherheitsspeicher gespeichert
sind, wobei die vollständigen
Informationen auf verschlüsselte
Weise in einem ungesicherten Speicher gespeichert sind.
- (d) Verschlüsselungs-/Entschlüsselungsengine 2431.
Das CMPS 2401 muss eine Möglichkeit zum Entschlüsseln empfangener
Informationen enthalten, einschließlich Inhalt und CMPOs und/oder
andere. Das CMPS 2401 kann ferner eine Möglichkeit
zum Entschlüsseln
von Informationen enthalten, wenn diese Informationen außerhalb
der sicheren Grenzen des CMPS 2401 übertragen werden sollen. Dies
kann so genannten Exhaust umfassen, der an Clearinghäuser oder
andere externe Repositorien gesendet wird, und Inhalt, der über ungesicherte
Busse zur Nutzung gesendet wird, wie z. B. ein Inhalt, der über den
IEEE 1394 seriellen Bus 2432 an eine Zentralverarbeitungseinheit
eines Computers oder an eine Sichtvorrichtung, wie z. B. einen Monitor,
gesendet wird, wobei ein empfangendes CMPS verwendet werden kann,
um die Nutzung dieses Inhalts zu kontrollieren, einschließlich beispielsweise
der Ent schlüsselung
dieses Inhalts je nach Eignung. Die Verschlüsselungs/Entschlüsselungsengine 2431 kann
einen Zufallszahlgenerator 2433 enthalten, der zur Erzeugung
von Schlüsseln
oder Schlüsselpaaren
verwendet wird, die zum Identifizieren und Sicherstellen der Einzigartigkeit
der CMPSs verwendet werden können
und die Öffnung
sicherer Kommunikationskanäle
zwischen solchen Anordnungen aus sicherer Inhaltskontrolle und sicherer
Verschlüsselung/Entschlüsselung stützen.
- (e) Sichere Uhr/sicherer Kalender (engl.: Secure Clock/Calendar) 2434.
Das CMPS 2401 kann eine sichere Uhr/sicheren Kalender enthalten,
die dafür
ausgelegt sind, absolute Informationen über das Datum und die Tageszeit,
Informationen über die
verstrichene absolute Zeit und/oder relative Zeitgebungsinformationen
zu liefern, die dazu verwendet werden, die verstrichene Zeit von
Operationen zu bestimmen, die von dem System ausgeführt wurden.
Das Element sichere Uhr/sicherer Kalender 2434 kann eine
Stützbatterie 2435 enthalten.
Ferner kann ein Synchronisationsmechanismus 2436 zur Synchronisation
mit äußeren Zeitgebungsinformationen
vorhanden sein, der dazu verwendet wird, im Falle eines Stromausfalls die
korrekte Zeit wiederherzustellen und/oder auf einen unbefugten Eingriff
hin zu überprüfen.
- (f) eine Schnittstelle 2437 zu Blöcken, die zum Inhaltsrendering
und zur Inhaltsanzeige verwendet werden. Diese Schnittstelle wird
zur Kontrolle von Rendering und Anzeige auf der Basis von Regeln verwendet
und zum Erhalten von Feedback-Informationen, die für Budgetierungszwecke
oder zur Informationsbereitstellung an externe Server verwendet
werden können
(z. B. Informationen darüber,
welcher Inhalt tatsächlich
angezeigt wurde, welche Auswahl der Benutzer getroffen hat, etc.) Im
Falle eines MPEG-4 Players, wie er in 23 gezeigt
ist, kann diese eine Kontrolle über
eine Handelsgerät-Schaltung
umfassen, die beispielsweise die Pufferung, den Szenenbeschreibungsgraphen,
den AVO-Decode, Objektdeskriptoren und Composite und Rendering steuert
(z. B. Kontrollleitungen 2310, 2311 und 2312).
-
Der
Rückkopplungspfad 2313 aus
dem Composite-und-Render-Block 2309 kann dem CMPS 2302 ermöglichen,
zu bestimmen, ob und wann der Inhalt tatsächlich für den Zuschauer freigegeben
wurde. Beispielsweise kann der Composite-und-Render-Block 2309 ein Startevent
an das CMPS 2302 ausgeben, wenn ein AVO- Objekt zum Sehen freigegeben wird, und
kann ein Stoppevent an das CMPS 2302 ausgeben, wenn das
AVO-Objekt nicht mehr gesehen wird.
-
Die
Rückkopplung
aus dem Composite-und-Render-Block 2309 kann auch dazu
verwendet werden, um einen unbefugten Eingriff zu erfassen, indem
man dem CMPS 2302 ermöglicht,
die Identifizierung der Objekte, die tatsächlich zum Sehen freigegeben
werden, mit der Identifizierung der Objekte, die zur Freigabe autorisiert
sind, abzugleichen. Die Start- und die Endzeit können auch mit der erwarteten
verstrichenen Zeit verglichen werden, wobei eine Nichtübereinstimmung
möglicherweise
das Auftreten eines nicht autorisierten Events anzeigt.
-
In
einem Ausführungsbeispiel
kann das folgende Protokoll für
Rückkopplungsdaten
verwendet werden:
start <id>, T, <instance number><clock time><rendering
options>
-
Wird
gesendet, wenn der elementare Strom <id> in
dem SD-Graphen zur Zeit T erreichbar ist, aber nicht zur Zeit T-1.
end <id>, T, <instance number><clock time><rendering
options>
-
"T" stellt die Präsentationszeit dar, "clock time" stellt die Echtzeit
dar, einschließlich
Informationen über
Tag und Datum, und "rendering
options" können solche
Informationen wie QoS und Spielrate (z. B. schneller Vorlauf) enthalten.
-
Wird
gesendet, wenn der elementare Strom <id> in
dem SD-Graph zur Zeit T-1 erreichbar ist, aber nicht zur Zeit T.
Ein SD-Graphen-Stream ist erreichbar, wenn während des Durchlaufens des SD-Graphen
zwecks Display-Update der Renderer auf einen Knoten trifft, den
der SD-Graph update stream <id> erzeugt oder modifiziert
hat. Dies bedeutet, dass alle Knoten im Baum eine Update-History-Liste
benötigen.
Diese Liste muss nicht so groß wie
die Anzahl der Ströme
sein. Außerdem
kann sie markiert sein, um anzuzeigen, ob das CMPS nach einem Strom
sucht, ist sie nicht markiert, wird sie sie nicht aufzeichnen. Ein
AV Elementary Stream ist erreichbar, wenn der Inhalt des Stroms
gerendert wurde.
-
Bei
SD-Graphen-Update Streams wird die Objekt-Instanz-Nummer ignoriert.
Bei AV-Strömen kann
die Instanznummer verwendet werden, um den Fall zu disam biguieren,
bei dem die Anzeige gleichzeitig zwei oder mehr Instanzen des gleichen
Datenstroms zeigt. Die Instanz-Nummern müssen nicht hochzählen. In
diesem Fall sind sie eine einzigartige id, die dem CMPS ermöglicht,
ein Startevent mit einem Endevent abzugleichen.
-
In
einem zweiten Ausführungsbeispiel
kann das CMPS 2302 spezielle Hardware in Kombination mit
Universalhardware enthalten, die auch für andere Funktionen der Vorrichtung
eingesetzt wird. In diesem Ausführungsbeispiel
muss darauf geachtet werden, dass gewährleistet wird, dass kommerziell
vertrauenswürdige
CMPS-Funktionen trotz der Verwendung von Universalhardware sicher
und manipulationsgeschützt
ausgeführt
werden. Jedes der oben genannten Elemente kann speziell zugeschnittene CMPS-Funktionen
und Universalvorrichtungsfunktionen enthalten:
- (a)
CPU/Mikrokontroller. Dieser kann ein oder mehrere Vorrichtungen
enthalten. Wenn mehr als eine Vorrichtung enthalten ist (z. B. eine
CPU und eine DSP, ein mathematischer Koprozessor oder ein Handelskoprozessor),
können
diese Vorrichtungen innerhalb der gleichen Baugruppe enthalten sein,
die manipulationssicher gemacht werden kann, oder die Vorrichtungen
können
auf einem sicheren Bus kommunizieren. Die CPU kann zwei Moden umfassen:
einen sicheren CMPS-Modus und einen nicht sicheren Universalmodus.
Der sichere CMPS-Modus kann die Adressierung sicherer Speicherstellen
ermöglichen,
die dem Prozessor im Universalmodus nicht zur Verfügung stehen.
Dies kann beispielsweise durch eine Schaltung erreicht werden, die
einen Teil des zur Verfügung
stehenden Speicherplatzes neu zuordnet (engl.: remap), so dass die
CPU im nicht sicheren Modus keine sicheren Speicherstellen adressieren
kann.
- (b) Externe Kommunikationsports. Wenn die Vorrichtung, beispielsweise
ein Handelsgerät,
in der Lage ist, Inhalt oder andere Informationen über einen
Kommunikationsport zu empfangen (z. B. ein Kabelanschluss, ein Internetanschluss),
kann dieser Kommunikationsport für
CMPS-Zwecke verwendet werden. In einem solchen Fall ist der CMPS-Zugriff
auf den externen Kommunikationsport vorzugsweise dafür ausgelegt,
eine Interferenz mit der Nutzung eines solchen Ports für den Empfang
von Inhalt zu vermeiden oder auf ein Minimum herabzusetzen.
- (c) Speicher. Bei einigen Anwendungen und Ausführungsbeispielen
ist es möglich,
ein Handelsgerät
ohne NVRAM zu betreiben, wobei Informationen, die für die CMPS-Operation
erforderlich wären
und das NVRAM verwenden würden,
je nach Bedarf in das RAM geladen würden. Das ROM, das RAM und
das NVRAM können
zwischen CMPS-Nutzungen und allgemeinen Nutzungen aufgeteilt werden.
Dies kann auf eine der folgenden Arten oder in einer Kombination
dieser Arten erfolgen: (1) ein Teil des Speicherplatzes kann für allgemeine
Nutzungszwecke gesperrt werden, beispielsweise durch neue Zuordnung
(remapping); (2) der gesamte Speicher wird sicher gemacht, so dass
selbst Teile des Speichers, die für nicht sichere Zwecke verwendet
werden, nur auf sichere und autorisierte Weise beobachtet oder verändert werden
können;
(3) CMPS-Informationen
können
verschlüsselt
gespeichert werden, obgleich dies erfordert, dass zumindest ein
Teil des RAMs sicher ist, da das CMPS einen direkten Zugriff auf
nicht verschlüsselte
Informationen, die im RAM gespeichert sind, fordern wird.
- (d) Verschlüsselungs-/Entschlüsselungsengine. Verschlüsselungs-
und Entschlüsselungsfunktionen,
einschließlich
der Schlüsselerzeugung
können
durch Spezialsoftware gehandhabt werden, die auf einer Universalprozessoranordnung
läuft, insbesondere
beispielsweise ein Fließkommaprozessor
oder eine DSP-Anordnung. Diese Prozessoranordnung kann auch für Zwecke
der Dekomprimierung und der Anzeige von Inhalt und/oder zur Bearbeitung
beim Einfügen
und/oder Lesen von Watermarking/Fingerprinting verwendet werden.
Alternativ dazu kann die Vorrichtung systemeigene Verschlüsselungs-
und Entschlüsselungsfunktionen
enthalten. Beispielsweise können
verschiedene neuere Standards zumindest einen gewissen Grad an Verschlüsselung
und Entschlüsselung
des Inhalts erfordern, der dazu bestimmt ist, über nicht sichere Busse innerhalb der
und zwischen den Vorrichtungen, wie z. B. DVD-Playern, geleitet
zu werden, wie beispielsweise der "Fünf-Firmen-Vorschlag" und andere IEEE 1394 verwandte
Initiativen. Schaltungen, die zum Durchführen solcher Ver- und Entschlüsselungen
entworfen wurden, können
auch für CMPS-Anwendungen
nutzbar sein.
- (e) Sichere Uhr/sicherer Kalender. Die zugrunde liegende Vorrichtung
kann bereits zumindest einige Uhrzeit-Informationen erfordern. MPEG-4
erfordert beispielsweise die Nutzung von Uhrzeit-Informationen zur
Synchronisierung der Elementary Streams. Eine sichere CMPS-Uhr kann
ebenfalls für
solche Zwecke verwendet werden.
-
In
einem dritten Ausführungsbeispiel
kann das CMPS 2302 hauptsächlich Software sein, die dafür entwickelt
wurde, auf einer Universalvorrichtung zu laufen, die bestimmte minimale
sicherheitsspezifische Merkmale enthalten kann. In einem solchen
Fall kann das CMPS 2302 auf dem gleichen Kanal wie der
Inhalt oder in einem Seitenband-Kanal empfangen werden. Ein I-CMPO
und/oder andere CI können eine
bestimmte Art von CMPS spezifizieren, das das Handelsgerät 2301 entweder
haben oder erwerben muss (z. B. von einer Stelle herunterladen,
die von dem I-CMPO spezifiziert wurde), oder das CMPS 2302 kann
beispielsweise in einem I-CMPO enthalten sein.
-
Ein
Software-CMPS läuft
auf der CPU des Handelsgerätes.
Dieser Ansatz kann von Natur aus weniger sicher sein als die Verwendung
speziell zugeschnittener Hardware. Wenn das Handelsgerät sichere
Hardware enthält,
kann das Software-CMPS ein
herunterladbares OS und/oder BIOS darstellen, das die Hardware an
eine bestimmte Art von Handelsgerät anpasst.
-
In
einem Ausführungsbeispiel
kann ein Software-CMPS ein oder mehrere Software-Manipulationsschutzmittel
verwenden, die die Software materiell "hart machen" (engl.: to harden) werden. Diese Mittel
enthalten Software-Obfuskationsverfahren,
die Algorithmusmittel verwenden, um es sehr schwer zu machen, mittels
Reverse-Engineering-Methoden einen Teil oder das gesamte CMPS zu
analysieren, und es ferner schwierig machen, aus einem oder mehreren
CMPSs, an denen Reverse-Engineering-Methoden anwendet wurden, allgemeine Schlüsse zu ziehen.
Eine solche Obfuskation ist vorzugsweise unabhängig vom Quellencode, und der Objektcode
kann für
verschiedene CMPSs und verschiedene Plattformen unterschiedlich
sein, wodurch weitere Komplexitäten
und eine Trennung der Rollen hinzukommen. Eine solche Obfuskation
kann "unabhängig" sowohl bei CI, wie
z. B. ein CMPO, als auch bei einigen oder allen der CMPSs selbst
angewandt werden, wodurch sowohl die Verarbeitungsumgebung als auch
der ausführbare
Code für
einen Prozess unverständlich
gemacht werden. Der Ansatz kann auch bei den oben beschriebenen
integrierten Software- und Hardware-Implementations-CMPS-Implementierungen
angewendet werden. Andere Manipulationsschutzmittel können ebenso verwendet
werden, einschließlich
der Verwendung von so genannten "Hiding
places" zum Speichern
bestimmter Zustandsinformationen an obskuren und unerwarteten Stellen,
wie z. B. Stellen im NV-Speicher, die für andere Zwecke verwendet werden,
sowie andere Verfahren zum Verbergen von Daten, wie beispielsweise
Watermarking/Fingerprinting.
-
Zuordnung
eines CMPS zu einem Handelsgerät
-
Ein
CMPS kann an eine bestimmte Vorrichtung permanent angehängt oder
teilweise oder vollständig
entfernbar sein. Ein entfernbares CMPS kann eine Software enthalten,
die sicher in ein Handelsgerät
geladen wird, und/oder entfernbare Hardware. Ein entfernbares CMPS
kann für
einen oder mehrere bestimmte Benutzer benutzerspezifisch ausgelegt
sein, einschließlich
Benutzerschlüssel, Budget-Informationen,
Präferenzen,
etc., und dadurch verschiedenen Benutzern ermöglichen, das gleiche Handelsgerät zu verwenden,
ohne Budgets und/oder andere Rechte zu vermischen, etc.
-
Ein
CMPS kann für
den Betrieb mit bestimmten Arten von Inhalt und/oder für den Betrieb
mit bestimmten Arten von Geschäftsmodellen
ausgerichtet sein. Ein Handelsgerät kann mehr als eine Art von CMPS
enthalten. Beispielsweise kann ein Handelsgerät, das dafür ausgelegt ist, Inhalt gemäß verschiedenen
Standards zu akzeptieren und anzuzeigen, ein CMPS für jede Art
von Format enthalten. Darüber
hinaus kann ein Handelsgerät
ein CMPS enthalten, das von einem bestimmter Anbieter bereitgestellt wird
und dafür
ausgelegt ist, vorzugsweise bestimmte Arten von Inhalt anzuzeigen
und vorzugsweise für solchen
Inhalt über
einen bestimmten Kanal abzurechnen (z. B. Abrechnung auf eine oder
mehrere bestimmte Kreditkarten und/oder die Verwendung eines oder
mehrerer bestimmter Clearinghäuser).
-
Quelle der
Regeln
-
Das
CMPS muss diejenigen Regeln erkennen, die auf einen bestimmten Inhalt
anzuwenden sind. Solche Regeln können
von dem CMPS aus einer Vielzahl von Quellen empfangen werden, je
nach dem besonderen Ausführungsbeispiel,
das verwendet wird:
- (a) CMPO. Die Regeln können in
einem CMPO (z. B. dem CMPO 2303) und/oder anderen CI enthalten
sein. Das CMPO und/oder andere CI können in einem Inhaltsobjekt
oder -strom enthalten sein (wie beispielsweise ein Header auf einem MPEG-4
ES), und/oder können
in einem speziellen Inhaltsobjekt oder -strom enthalten sein, der gemäß dem zugrunde
liegenden Standard kodiert und empfangen wird (z. B. ein MPEG-4
CMPO ES), und/oder können
außerhalb
des normalen Inhaltsstroms empfangen werden, in welchem Fall sie
nicht gemäß dem zugrunde
liegenden Standard kodiert sein müssen (z. B. ein CMPS, das als
verschlüsseltes
Objekt über
einen Seitenband-Kanal empfangen wurde).
- (b) CMPS. Die Regeln können
permanent und/oder persistent in einem CMPS gespeichert sein, z.
B. die Regeln 2409. Ein CMPS kann Default-Regeln enthalten,
die dafür
ausgelegt sind, bestimmte Situationen handzuhaben, beispielsweise,
wenn kein CMPO und/oder andere notwendige CI empfangen wird (z.
B. Inhalt, der unter einer früheren
Version des Standards kodiert wurde, der keine CMPOs enthielt, einschließlich MPEG-4
Version 1). Die kompletten Regeln, die im CMPS gespeichert sind,
können
direkt oder indirekt von einem CMPO und/oder anderen CI aufgerufen
werden. Dies kann durch die CI erfolgen, die bestimmte Regeln durch
einen Pointer identifizieren und/oder es kann durch die CI erfolgen, die
sich selbst und die allgemeine Klasse der Kontrolle, die sie benötigt, identifiziert,
wobei das CMPS dann besondere Regeln anwendet, die für dieses
CMPS spezifisch sind.
Regel-"Grundelemente" können
ebenfalls in dem CMPS gespeichert werden (z. B. Kontrollgrundelemente 2410).
Das CMPO und/oder andere CI können
diese Grundelemente aufrufen, indem eine Sequenz aus makroartigen
Befehlen aufgenommen wird, von denen jeder eine Sequenz von CMPS-Grundelementen
auslöst.
- (c) Benutzer. Der Benutzer kann die Möglichkeit erhalten, Regel zu
erstellen, die sich auf die Präferenzen
eines bestimmten Benutzers beziehen. Solche Regeln werden im allgemeinen
zugelassen, um die Nutzung des Inhalts weiter zu beschränken, jedoch
die Nutzung des Inhalts nicht über
das hinaus, was andernfalls erlaubt wäre, auszudehnen. Beispiele
umfassen: (a) Regeln, die dafür
ausgelegt sind zu fordern, dass auf bestimmte Arten von Inhalt (z.
B. Filme für
Erwachsene) nur nach Eingabe eines Passwortes und/oder nur von bestimmten
CMPS-Benutzer zugegriffen werden kann (z. B. Erwachsene, keine Kinder,
wie beispielsweise von Eltern und/oder einer öffentlichen Anstalt, wie z. B.
einer Behörde, spezifiziert);
(b) Regeln, die dafür
ausgelegt sind zu fordern, dass es nur bestimmten Benutzern gestattet
ist, Operationen aufzurufen, die eine Zahlung über ein bestimmtes Limit hinaus
und/oder eine Sammelzahlung über
einen bestimmten Betrag erfordern.
Dem Benutzer kann es erlaubt
sein, Regelmuster zu erzeugen, wie dies in der vorgenannten Patentanmeldung '333 von Ginter beschrieben
ist (und hier aufgenommen ist). Darüber hinaus kann eine CMPS-Anordnung
und/oder ein bestimmtes CMPO und/oder andere CI die Regeln einschränken, die
ein Benutzer spezifizieren darf. Beispielsweise kann ein CI spezifizieren,
dass ein Benutzer zwar ein Werk kopieren, aber dem Werk keine Regeln
hinzufügen
kann, die die Möglichkeit
eines Empfängers
beschränken,
zusätzliche
Kopien herzustellen (oder sehen zu dürfen, aber erst nach erfolgter
Zahlung an den ersten Benutzer). Eine oder mehrere vom Benutzer
zugeführte
Regeln können
die Verwendung – einschließlich damit
verbundener Datenschutzbeschränkungen – von Zahlungs-,
Prüfungs-,
Profilerstellungs-, Präferenz-
und anderen Arten von Informationen steuern (z. B. Informationen,
die sich als Konsequenz der Nutzung einer CMPS-Anordnung ergeben,
einschließlich
beispielsweise der Nutzung eines gesicherten Inhalts). Eine oder
mehrere solche vom Benutzer zugeführte Regeln können dem
Benutzer und/oder einem oder mehreren Handelsgeräten in einer Benutzeranordnung
zugeordnet werden, ganz gleich ob die Informationen gemäß einem
oder mehreren Kriterien aggregriert wurden oder nicht und ob die
Benutzer- und/oder die Geräteidentifikationsinformationen während der
Aggregation und/oder dem anschließenden Berichten, Verteilen
oder irgendeiner anderen Art der Nutzung entfernt wurden oder nicht.
Die
Möglichkeit,
dem Benutzer zu gestatten, Regeln zu spezifizieren, ermöglicht dem
CMPS V-Chips einzuordnen (und dadurch zu ersetzen), da ein Elternteil
Inhaltsbewertungsinformationen verwenden kann, um genau zu spezifizieren,
welche Arten von Informationen jeder Zuschauer sehen darf (z. B.
kann gewaltsamer Inhalt nur nach Eingabe eines bestimmten Passwortes
und/oder eines anderen Identifikators angezeigt werden, einschließlich beispielsweise
dem Einfügen
einer entfernbaren Hardware-Karte (Smartcard oder Rechtekarte),
die ein Benutzer besitzt).
- (d) Externe Netzwerkquelle. Die Regeln können auf einem externen Server
gespeichert werden. Die Regeln können
bei Bedarf von dem CMPS adressiert und herunter geladen werden (z.
B. enthält
entweder das CMPO und/oder andere CI und/oder das CUTS einen Pointer
auf eine bestimmte oder mehrere Regelorte, wie z. B. eine oder mehrere
URLs). Darüber
hinaus können
Inhaltsanbieter und/oder Clearinghäuser Regeln übermitteln,
die für
eine allgemeine Anwendbarkeit ausgelegt sind. Beispielsweise kann
ein Inhaltsanbieter einen Satz Regeln übermitteln, der jedem Benutzer
einen Rabatt bietet, der an einem Werbeevent teilnimmt (z. B. durch
Bereitstellen bestimmter Benutzerinformationen). Derartige Regeln
könnten
von allen angeschlossenen Vorrichtungen empfangen werden, könnten von
bestimmten Vorrichtungen empfangen werden, die von dem Inhaltsanbieter
als interessant identifiziert wurden (z. B. die letzten Zuschauer
eines bestimmten Programms, wie dies durch Exhaust-Informationen,
die von dem CMPS an ein Clearinghaus geliefert wurden, identifiziert
wurde, und/oder alle Mitglieder, die bestimmte Identitätsmerkmale
haben, wie die Mitglieder einer oder mehrerer Klassen) und/oder
an zentralen Stellen bekannt gegeben werden.
-
Beispielhafte
Ausführungsform
-
In
einem Ausführungsbeispiel
kann ein Werk aus einem Satz von MPEG-4 Elementary Streams bestehen.
Die Elementary Streams können
verschlüsselt
und gemultiplext sein, um einen so genannten Datenverbund-Strom
(engl.: Aggregate Stream) zu bilden. Ein oder mehrere CMPOs können in
einem solchen Strom vorhanden oder diesem Strom anderweitig zugeordnet
sein. Die Möglichkeiten
sind wie folgt:
- 1. Der Inhalt kann gestreamt
sein oder kann in Form statischer Datenstrukturen empfangen werden.
- 2. Ein Werk kann aus einem einzigen Strom oder einer einzigen
Datenstruktur oder aus vielen einzeln adressierbaren Strömen oder
Datenstrukturen, die jeweils ein Objekt darstellen können, bestehen.
- 3. Wenn ein Werk aus einzeln adressierbaren Strömen oder
Datenstrukturen besteht, können diese
Ströme
oder Datenströmen
zu einem Datenverbund-Strom
gemultiplext oder einzeln empfangen werden.
- 4. Wenn Ströme
oder Datenstrukturen zu einem Datenverbund-Strom gemultiplext werden,
können
die Ströme
oder Datenstrukturen vor einem solchen Multiplexen verschlüsselt werden.
Der Datenverbund-Strom selbst kann verschlüsselt werden, ganz gleich ob
die zugrunde liegenden Ströme
oder Datenstrukturen verschlüsselt
werden. Es gibt daher folgende Möglichkeiten:
(a) einzelne Ströme/Datenstrukturen
sind nicht verschlüsselt
(im Klartext), der Datenverbund-Strom ist unverschlüsselt; (b)
einzelne Ströme/Datenstrukturen
sind vor dem Multiplexen nicht verschlüsselt, der Datenverbund-Strom
wird nach dem Multiplexen verschlüsselt, (c) einzelne Ströme/Datenstrukturen
sind vor dem Multiplexen verschlüsselt,
der Datenverbund-Strom wird nach dem Multiplexen nicht verschlüsselt, oder
(d) einzelne Ströme/Datenstrukturen
werden vor dem Multiplexen verschlüsselt, der Datenverbund-Strom
wird nach dem Multiplexen verschlüsselt.
- 5. Ein CMPO kann einem Kanal (CCMPO), einem Werk (MCMPO) oder
einem einzelnen Objekt (CMPO) zugeordnet sein.
- 6. Ein CMPO kann vor den kontrollierten Daten, gleichzeitig
mit den Daten oder nach den Daten empfangen werden (wobei dann die
Verwendung der Daten warten muss, bis das CMPO empfangen wurde).
- 7. Ein CMPO kann als Teil eines Datenverbund-Stroms oder getrennt
empfangen werden.
- 8. Wird ein CMPO als Teil des Datenverbund-Stroms empfangen,
kann er zusammen mit den einzelnen Strömen oder Datenstrukturen gemultiplext
werden oder einen getrennten Strom bzw. eine getrennte Datenstruktur
darstellen.
- 9. Wenn ein CMPO innerhalb des Datenverbund-Stroms gemultiplext
ist, kann es verschlüsselt
oder nicht verschlüsselt
werden. Falls es verschlüsselt
wird, kann es vor dem Multiplexen verschlüsselt werden und/oder es kann
nach dem Multiplexen verschlüsselt
werden, wenn der gesamte Datenverbund-Strom verschlüsselt wird.
- 10. Wenn ein CMPO als Teil des Datenverbund-Stroms empfangen
wird, kann es (a) ein Teil des Stroms oder der Datenstruktur sein,
die den Inhalt enthält
(z. B. ein Header); (b) ein getrennter Strom bzw. eine getrennte
Datenstruktur, die gemäß dem gleichen
Format wie die Ströme
oder Datenstrukturen, die den Inhalt enthalten, kodiert werden (z.
B, ein MPEG-4 ES) oder (c) ein getrennter Strom bzw. eine getrennte
Datenstruktur, die unter einem anderen Format, das für CMPOs entwickelt
wurde, kodiert wurde.
- 11. Wenn ein CMPO ein Teil des Stroms oder der Datenstruktur
ist, die den Inhalt enthält,
kann es (a) ein Header sein, der einmal empfangen wird und dann
persistent zur Kontrolle des Inhalts gehalten wird, (b) ein Header,
der in regelmäßigen Abständen innerhalb
des Stroms oder der Datenstruktur empfangen wird, oder (c) Daten,
die über den
Strom oder die Datenstruktur verteilt sind.
-
Diese
unterschiedlichen Szenarien führen
zu verschiedenen Anforderungen an ein Demultiplexen und Entschlüsseln der
CMPOs. Die 25 zeigt das folgende Ausführungsbeispiel:
- 1. Der Datenverbund-Strom 2501 besteht
aus gemultiplexten Elementary Streams (z. B. ES 2502 und 2503).
Eine Kombination solcher ESs bildet ein einzelnes Werk. Der Datenverbund-Strom 2501 wird
von einem Kabel-Aggregator erzeugt und von einer Set-Top-Box eines
Benutzers als einer von vielen Kanälen empfangen.
- 2. CCMPOs 2504, die jedem Kanal entsprechen, werden
entlang des Kabels im Header 2505 in regelmäßigen Abständen (z.
B. einmal pro Sekunde) gesendet. Wenn die Set-Top-Box eingeschaltet
wird, ruft sie jeden Kanal auf und lädt alle aktuellen CCMPOs herunter.
Diese werden persistent gespeichert und nur geändert, wenn ein neues CCMPO
empfangen wird, das sich von den früheren CCMPOs unterscheidet.
- 3. Wenn der Benutzer einen Kanal auswählt, adressiert die Set-Top-Box
das dazugehörige CCMPO.
Das CCMPO kann beispielsweise spezifizieren, dass auf einen Inhalt
in diesem bestimmten Kanal nur von Teilnehmern dieses Kanals zugegriffen
werden darf. Ein CMPS innerhalb der Set-Top-Box greift auf ein Benutzerprofil
zu, das persistent im NVRAM gespeichert ist, und bestimmt, dass
der Benutzer ein Teilnehmer ist. Das CMPS erachtet die CCMPO-Regel
als erfüllt.
- 4. Das CMPS erhält
einen Identifikator für
das MCMPO, das dem Werk (Video), das derzeit auf dem Kanal gestreamt
wird, zugeordnet ist und einen Schlüssel für das MCMPO. Wenn Werke seriell
auf dem Kanal empfangen werden (z. B. ein Fernsehkanal, in dem gleichzeitig
immer ein Werk bereitgestellt wird), kann der empfangene MCMPO-Identifikator
so genannte "Don't-Care-Bits" enthalten, so dass
er jedes MCMPO adressieren kann, das derzeit auf dem Kanal ist.
- 5. Das CMPS beginnt mit dem Demultiplexen des Datenverbund-Stroms 2501 (dies
kann parallel zum vorherigen Schritt erfolgen) und erhält das MCMPO,
das in einen ES kodiert ist, der in den Datenverbund-Strom gemultiplext
ist (z. B. MCMPO 2506). Obgleich jeder ES innerhalb des
Datenverbund-Stroms 2501 verschlüsselt wurde, wurde der Datenverbund-Strom 2501 nach
dem Multiplexen nicht verschlüsselt.
Dies ermöglicht dem
CMPS, den Datenverbund-Strom 2501 zu demultiplexen, ohne
dabei den gesamten Datenverbund-Strom zu entschlüsseln.
- 6. Das CMPS identifiziert den ES, der das MCMPO darstellt (z.
B. ES 2503). Das CMPS lädt
eine komplette Instanz des MCMPO 2506 in einen internen
Puffer und verwendet den aus dem CCMPO 2504 empfangenen
Schlüssel
zum Entschlüsseln
des MCMPOs 2506.
- 7. Das CMPS bestimmt, welche Regeln von dem MCMPO 2506 angewendet
werden. Das MCMPO 2506 kann beispielsweise eine Regel enthalten, die
angibt, dass der Benutzer das dazugehörige Werk mit Werbespots zu
niedrigen Gebühren
sehen darf, jedoch eine höhere
Gebühr
zahlen muss, um das Werk ohne Werbespots zu sehen.
- 8. Das CMPS erzeugt ein Optionen-Menu und zeigt dieses Menu
für den
Benutzer auf dem Bildschirm an. Das Menu spezifiziert die Optionen, einschließlich der
Gebühren
für jede
Option. Zusätzliche
Optionen können
spezifiziert werden, einschließlich
Zahlungsarten.
- 9. Der Benutzer verwendet ein ferngesteuertes Zeigegerät, um auszuwählen, dass
er das Werk zu einer niedrigeren Gebühr jedoch mit Werbespots sehen
möchte.
Der Benutzer spezifiziert, dass die Zahlung von einem Electronic-Cash-Budget erfolgen
kann, das in dem CMPS gespeichert ist.
- 10. Das CMPS zieht den spezifizierten Betrag von dem persistent
im NVRAM gespeicherten Budget ab und erzeugt und verschlüsselt eine
Nachricht an einen Server, der dem Kabel zugeordnet ist. Die Nachricht überträgt das erforderliche
Budget an den Server, entweder durch ein Übertragen von Electronic Cash
oder durch Autorisieren eines Finanz-Clearinghauses, den Betrag
vom Konto des Benutzers auf das Konto des Kabelanbieters zu übertragen.
Diese Nachricht kann unmittelbar gesendet oder gepuffert werden,
um später
gesendet zu werden (z. B. wenn der Benutzer die Vorrichtung ans
Internet anschließt).
Dieser Schritt kann parallel zur Entschlüsselung des Inhalts erfolgen.
- 11. Das CMPS erhält
von dem MCMPO 2506 einen Satz Schlüssel, der zum Entschlüsseln der dem
Werk zugeordneten Elementary Streams (z. B. ES 2502) verwendet
wird. Das CMPS erhält ferner
Identifikatoren für
die spezifischen, zu verwendenden ESs. Da der Benutzer angegeben hat,
dass Werbespots aufgenommen werden sollen, identifiziert das MCMPO
ESs, die Werbespots zugeordnet sind, und identifiziert einen Szenenbeschreibungs-Graphen
der Werbespots enthält.
Ein Szenenbeschreibungs-Graph, der keine Werbespots enthält, wird
nicht identifiziert und wird von dem CMPS nicht weitergeleitet.
- 12. Das CMPS verteilt die entschlüsselten ESs an die MPEG-4 Puffer.
Der normale Prozess von MPEG-4 Decodierung, Compositing und Rendering
findet statt. Der Composite und Render-Block gibt Start- und Stoppevents
für jedes
Objekt aus, das zum Sehen freigegeben wurde. Das CMPS überwacht
diese Informationen und vergleicht sie mit erwarteten Events. Insbesondere
bestätigt das
CMPS, dass die Werbespots zum Sehen freigegeben wurden und dass
jede Operation ungefähr
die erwarte Zeit in Anspruch genommen hat.
-
In
einem anderen Ausführungsbeispiel
kann eine Set-Top-Box, die ein CMPS (z. B. das CMPS 2302 aus 23) enthält,
einen Kabeleingang haben (der z. B. M4 Bitströme 2314 und CMPOs
mit sich führt).
Das Kabel kann mehrfache Kanäle
mit sich führen,
die jeweils aus zwei Unterkanälen
bestehen, wobei ein Unterkanal MPEG-4 ESs (z. B. die M4 Bitströme 2314)
mit sich führt
und der andere Unterkanal die CMPOs (z. B. die CMPOs 2303)
trägt.
Der die CMPOs 2303 mit sich führende Unterkanal kann direkt
zum CMPS 2302 geleitet werden, wobei der ES-Kanal zu einem Enschlüsselungsblock
geleitet wird (der unter der Kontrolle des CMPSs arbeitet, z. B.
CR&D 2315)
und dann zu den MPEG-4 Puffern (z. B. Puf fer, die dem Szenenbeschreibungs-Graphen 2306,
dem AVO-Decode 2307 und den Objektdeskriptoren 2308 zugeordnet
sind). Wenn die ESs nicht verschlüsselt sind, gelangen sie in
diesem Fall unverändert
durch den Entschlüsselungsblock
und in die Puffer. Dies kann beispielsweise erfolgen, wenn die ESs
kostenfrei übermittelt
werden, ohne Beschränkungen,
und/oder wenn es sich um öffentlich
nutzbare Informationen handelt und/oder wenn sie vor der Aufnahme
von CMPOs in den MPEG-4 Standard erzeugt wurden.
-
Ein
solches Ausführungsbeispiel
kann Synchronisierungsinformationen in dem CMPO-Unterkanal enthalten,
so dass die CMPOs mit den zugehörigen
ES synchronisiert werden können.
-
Das
Konzept der Aufnahme von zwei getrennten Strömen, von denen einer aus Kontrollinformationen
besteht und direkt an das CMPS angeschlossen ist, und der andere
aus ESs besteht, kann einen hohen Grad an Modularisierung unterstützen, so
dass die Formate der CMPOs und bestimmte Arten von CMPSs geändert werden
können,
ohne dass das zugrunde liegende ES-Format geändert wird. Es kann beispielsweise
möglich
sein, das CMPO-Format zu ändern,
ohne dass es erforderlich wäre,
die Inhalts-ESs neu zu formatieren. Als weiteres Beispiel kann es
möglich
sein, ein Handelsgerät
aufzurüsten, indem
man ein neues oder anderes CMPS aufnimmt, ohne dass es erforderlich
wäre, irgendetwas
an den Schaltungen zum Demultiplexen, Composition und Rendern der
Inhalts-ESs zu ändern.
Ein Benutzer kann ein CMPS auf einer Smartcard oder einer anderen
entfernbaren Vorrichtung erhalten und diese Vorrichtung in ein Handelsgerät hineinstecken.
Dies kann gemacht werden, um ein Handelsgerät an eine bestimmte Anwendung
oder an einen bestimmten Inhalt anzupassen.
-
Eine CMPS-Schnittstelle
zu einer Unterhaltungselektronik-Vorrichtung
-
Ein
CMPS kann so entwickelt sein, dass es eine standardisierte Schnittstelle
zwischen der Universalfunktionalität eines Unterhaltungselektronikgerätes und
irgendwelchen relevanten CMPOs und/oder anderen CI und gesichertem
Inhalt aufweist. Beispielsweise könnte ein CMPS so entwickelt sein,
dass es CI und verschlüsselte
ESs akzeptiert und entschlüsselte
ESs in die Puffer der Vorrichtung ausgibt. In einem solchen Fall
wäre der
Hersteller des Gerätes
in der Lage, das Gerät
gemäß der Spezifikation
(z. B. MPEG-4) zu entwickeln, ohne sich über handelsspezifische Erweiterungen
gegenüber dem
Standard zu sorgen, wobei sich diese Erweiterungen von Anbieter
zu Anbieter unterscheiden können.
Alle diese Erweiterungen würden
von dem CMPS verarbeitet werden.
-
Initialisierung
-
1. Initialisierung des
CMPS.
-
Ein
CMPS kann verwendet werden, um die Leistungsfähigkeiten des Handelsgerätes, in
dem ein CMPS installiert ist, zu identifizieren. Ein CMPS, das einem
bestimmten Handelsgerät
permanent zugeordnet ist, kann solche Informationen installiert
bekommen, wenn das CMPS erstmalig installiert wird (z. B. gespeichert
in einem ROM 2406, das in 24 gezeigt
ist). Ein entfernbares CMPS kann verwendet werden, um eine Initialisierungsoperation
zu durchlaufen, um so Informationen über die Leistungsfähigkeiten
der Vorrichtung zu erhalten. Solche Informationen können in
einer Datenstruktur gespeichert werden, die im NVRAM 2425 gespeichert
ist. Alternativ dazu können
einige oder alle dieser Informationen jedes Mal gesammelt werden,
wenn das Gerät
eingeschaltet wird, und im RAM 2414 gespeichert werden.
-
Beispielsweise
kann ein DVD-Player einen Anschluss an einen externen Server und/oder
Prozess enthalten oder nicht. Ein CMPO und/oder andere CI, die auf
einer DVD (und/oder einer Bildplatte eines anderen Formats) gespeichert
sind, die in einen DVD (oder irgendeine Bildplatte anderen Formats)-Player
eingefügt
wird, können
Regeln enthalten, die auf der Möglichkeit
der Ausgabe von Informationen an einen Server basieren (z. B. Inhalt
ist kostenfrei, wenn Benutzeridentifizierungsinformationen ausgegeben
werden), oder können
einen direkten Anschluss erfordern, um beispielsweise Schlüssel herunter
zu laden, die zum Entschlüsseln
von Inhalt verwendet werden. In einem solchen Fall kann die CMPS-Anordnung
die Hardware-Funktionalität
bestimmen, die von dem CMPO erwartet oder gefordert wird, und diese
mit der tatsächlich
vorhandenen Hardware vergleichen. Wenn das CMPS bestimmt, dass das
CMPO und/oder andere CI einen Netzwerkanschluss benötigen und
dass der DVD-Player diesen Anschluss nicht hat, kann das CMPS eine
Vielzahl von Schritten unternehmen, einschließlich: (1) wenn der Netzwerkanschluss
für einige
Optionen zwar erforderlich ist, für andere jedoch nicht, werden nur
solche Optionen veranlassen, die dem Benutzer angezeigt werden können, (2)
Informieren des Benutzers, dass notwendige Hard ware fehlt, oder
(3) Verursachen einer taktvollen Zurückweisung der Disk, einschließlich eines
Informierens des Benutzers über
die Gründe
der Zurückweisung.
-
Als
weiteres Beispiel kann ein CMPO und/oder andere CI ein Geschäftsmodell
enthalten, das es dem Benutzer ermöglicht, unter Qualitätsstufen
(oder anderen Formen von Variationen eines gegebenen Werkes, wie
beispielsweise längere
Länge und/oder
höhere
Optionen) zu wählen,
wobei ein höherer
Preis berechnet wird, wenn der Benutzer eine höhere Qualitätsstufe auswählt (z.
B. Musik wird bei niedriger Auflösung
kostenfrei gespielt, um jedoch bei einer höheren Auflösung gespielt zu werden, ist eine
Bezahlung erforderlich). In einem solchen Fall kann es sein, dass
das Handelsgerät
keine Lautsprecher enthält,
die in der Lage sind, Ton mit der höheren Auflösung auszugeben. Die CMPS-Anordnung identifiziert
vorzugsweise diese Situation und eliminiert entweder die Ausgabe
mit höherer
Auflösung als
Option für
den Benutzer oder informiert den Benutzer darüber, dass diese Option mehr
kostet, aber keinen zusätzlichen
Nutzen bei der derzeitigen Funktionalität des Handelsgeräts vorsieht
bzw. wenn das Handelsgerät
nicht in einer Benutzeranordnung angedockt wird, die Lautsprecher
höherer
Qualität
vorsieht.
-
Wenn
das Handelsgerät
an externe Vorrichtungen angeschlossen werden kann (z. B. Lautsprecher,
Anzeige, etc.), wird das CMPS irgendeinen Mechanismus erfordern,
um solche Vorrichtungen zu identifizieren oder zu registrieren.
Jede Vorrichtung kann dazu verwendet werden, jederzeit Standard-ID-Informationen
und Leistungsfähigkeitsinformationen
zur Verfügung
zu stellen und dadurch dem CMPS zu ermöglichen, alle angeschlossenen
Vorrichtungen in regelmäßigen Zeitabständen abzurufen,
einschließlich
beispielsweise dem Authentifizieren von CMPS-Anordnungen in einer
oder in mehreren dieser angeschlossenen Vorrichtungen. Bei Anwendung
eines anderen Ansatzes könnten
alle Vorrichtungen dazu verwendet werden, CMPS-Identifizierungsinformationen
beim Einschalten auszugeben, wobei später angeschlossene Vorrichtungen dazu
verwendet werden, solche Informationen beim Herstellen der Verbindung
auszugeben. Solche Identifizierungsinformationen können beispielsweise
die Form von Authentifizierungsinformationen haben, die unter der "Fünf-Firmen-Anordnung" bereitgestellt werden,
wobei solche Authentifizierungsmethoden hiermit durch Bezugnahme
in die vorliegende Beschreibung aufgenommen werden.
-
Wie
weiter oben erläutert,
kann ein Handelsgerät
an mehrere Vorrichtungen angeschlossen werden, die jeweils ihre
eigene CMPS-Anordnung enthalten (z. B. kann ein DVD-Player an einen
Digitalfernseher angeschlossen werden). In solchen Fällen müssen die
CMPSs in der Lage sein, eine sichere Kommunikation einzuleiten (z.
B. unter Verwendung eines Schemas wie beispielsweise den "Fünf-Firmen-Vorschlag" für
IEEE 1394 serieller Bus) und bestimmen, wie die CMPSs in Bezug auf
Inhaltskommunikation zwischen den CMPSs interagieren werden und
in bestimmten Ausführungsbeispielen
hinsichtlich einer kooperativen Regelung eines solchen Inhalts,
wie dies in der aufgenommenen Patentanmeldung von Shear beschrieben
ist. In einem Ausführungsbeispiel
kann die erste, Inhalt empfangende CMPS-Anordnung den Kontrollprozess
durch Herunterladen eines ersten CMPO und/oder andere CI regeln
und dem Benutzer eine oder mehrere der Regeln anzeigen, etc. Die
zweite CMPS-Anordnung kann erkennen, dass sie keine weitere Rolle
spielt, entweder als Ergebnis einer Kommunikation zwischen zwei
CMPS-Anordnungen oder als Ergebnis von Veränderungen am Inhaltsstrom,
die von der ersten CMPS-Anordnung erzeugt wurden (die den Inhalt entschlüsselte und
möglicherweise
das Demultiplexen, die Composition und das Rendering, etc. ermöglichte).
-
Die
Beziehung zwischen stromaufwärtigen und
stromabwärtigen
CMPS-Anordnungen kann kompliziert sein, wenn eine Vorrichtung bestimmte Aspekte
des MPEG-4 Rendering vornimmt und die andere andere Aspekte verarbeitet.
Beispielsweise könnte
ein DVD-Player das Demulitplexen und das Puffern und das Übertragen
von rohen ESs an einen Digitalfernseher übernehmen, der dann die Composition
und das Rendering sowie die Anzeige übernimmt. In einem solchen
Fall kann es sein, dass kein Rückkanal
von dem Composition-und-Render-Block zu der stromaufwärtigen CMPS-Anordnung
vorhanden ist. Die CMPS-Anordnungen sind vorzugsweise dafür ausgelegt,
selbständige
Fälle (ein
DVD (oder jede andere Bildplatte)-Player mit einer CMPS-Anordnung,
die an einen "dummen" Fernseher ohne CMPS
angeschlossen ist), Fälle
mit mehreren CMPS-Anordnungen, in der eine CMPS-Anordnung die gesamte
Verarbeitung übernimmt
(ein DVD (oder eine andere Bildplatte)-Player, der alles bis hin
zum Composition und Rendering übernimmt,
mit einer Videostrom-Ausgabe an den Digitalfernseher (in einem nicht
einschränkenden
Beispiel über
einen IEEE 1349 seriellen Bus) (wobei dieser Ausgabestrom gemäß dem "Fünf-Firmen-Vorschlag" zum Kopierschutz
unter Verwendung einer 1394 serielle Busübertragung verschlüsselt wäre)) und/oder
eine zwischen zwei oder mehr CMPS-Anordnungen aufgeteilte Verar beitung
hinsichtlich eines Teils oder in bestimmten Fällen der gesamten Verarbeitung.
-
2. Initialisierung eines
bestimmten Inhaltsstroms.
-
Das
CMPS kann so entwickelt sein, dass es Initialisierungsinformationen
akzeptieren kann, die das CMPS für
einen bestimmten Inhaltsstrom oder -kanal initialisieren. Dieser
Header, der ein CMPO und/oder andere CI sein können, kann Informationen enthalten,
die vom CMPS verwendet werden, um einen bestimmten Inhaltstrom sowie
diesem Strom zugeordnete CI auszumachen und/oder zu interpretieren.
Dieser erste Header kann über
einen Seitenband-Kanal oder als CI ES, wie z. B. ein CMPO ES, empfangen
werden.
-
In
einem in 26 gezeigten Ausführungsbeispiel
kann der Header CMPO 2601 die folgenden Informationen enthalten:
- (a) Strom/Objekt/CMPO ID 2602, die
die Inhaltsströme/-objekte
identifiziert, die von dem Header CMPO 2601 geregelt werden,
und/oder Identifizierung von CMPOs, die jedem derartigen Inhaltsstrom
oder -objekt zugeordnet sind.
In einem Ausführungsbeispiel identifiziert
das Header CMPO 2601 andere CMPOs, die Regeln und Schlüssel enthalten,
die besonderen Inhaltsströmen
zugeordnet sind. In einem anderen Ausführungsbeispiel kontrolliert
das Header CMPO 2601 direkt alle Inhaltsströme, indem
es die Schlüssel
und Regeln, die diesen Strömen
zugeordnet sind, aufnimmt. Im letzteren Fall werden keine weiteren
CMPOs verwendet.
In einem Ausführungsbeispiel kann das Header CMPO 2601 ein
oder mehrere CMPOs, CCMPOs, MCMPOs und/oder andere CI sein.
- (b) Einen oder mehrere CMPO-Schlüssel 2603 zum Entschlüsseln jedes
identifizierten CMPOs.
- (c) Werk-Stufen-Kontrolle 2604, die aus grundlegenden
Kontrollinformationen besteht, die dem Werk als Ganzen zugeordnet
sind und daher möglicherweise
auf alle Inhaltsströme
anwendbar sind, aus denen das Werk besteht. Diese grundlegenden
Kontrollinformationen können
Regeln enthalten, die das Werk als Ganzes regeln, einschließlich Optionen,
die dem Benutzer geboten werden.
- (d) In einer Ausführungsform
dieses Ausführungsbeispiels
kann ein Header CMPO aktualisierbar sein, um Benutzer/Orts-Informationen 2605 über einen
bestimmten Benutzer oder einen Ort, der derzeit autorisiert ist,
einen bestimmten Inhalt zu benutzen, sowie einen oder mehrere Regelsätze zu enthalten,
unter denen der Benutzer diese Autorisierung erhalten hat. Ein Header
CMPO, das einem aktuell betrachteten Werk zugeordnet ist, kann im
RAM oder NVRAM gespeichert werden. Dies kann aktualisierte Informationen
umfassen. In einer Ausführungsform
kann das CMPO auch Header CMPOs für bestimmte Werke speichern, die
in der Vergangenheit gesehen wurden. In einer Ausführungsform
können
die Header CMPOs in einem nicht sicheren Speicher gespeichert werden,
wobei die Informationen ausreichen, um zu identifizieren und zu
authentifizieren, dass keines der Header CMPOs geändert wurde.
-
Bei
einer solchen Ausführungsform
eines Header CMPO dieses Ausführungsbeispiels
arbeitet das Header CMPO wie folgt:
- (a) Das
Header CMPO wird von einer CMPS-Anordnung empfangen. Im Falle eines
zuvor nicht empfangenen Inhalts, der nunmehr zur Verfügung steht,
kann das Header CMPO an einem Eingabeport empfangen werden. Im Falle
eines bereits zur Verfügung
stehenden Inhalts, der aber derzeit nicht benutzt wird (z. B. eine
Set-Top-Box mit 500 Kanälen,
von denen entweder keiner oder einer zu einer bestimmten Zeit angezeigt
wird) können die
CCMPOs für
jeden Kanal durch die CMPS-Anordnung für eine mögliche Verwendung gepuffert werden,
wenn der Benutzer einen bestimmten Inhalt aufruft (z. B. auf einen
bestimmten Kanal umschaltet).
In beiden Fällen muss das Header CMPO Informationen
enthalten, die es einer CMPS-Anordnung gestatten, sie als ein Header
CMPO zu identifizieren.
- (b) Die CMPS-Anordnung erhält
Geschäftsmodell-Informationen,
die im Klartext im Header CMPO aufgenommen werden. Die Geschäftsmodell-Informationen
können
beispielsweise eine Aussage enthalten, dass ein Inhalt kostenfrei
gesehen werden darf, wenn Werbespots aufgenommen werden, oder, wenn
der Benutzer Informationen vom Nielsontyp, beispielsweise Benutzer- und/oder
Zu schauermessinformationen, autorisiert, kann Inhalt an einen Server
ausgegeben oder andernfalls einmalig kopiert werden, jedoch nur
gegen Gebühr.
- (c) Die CMPS-Anordnung akzeptiert entweder das Geschäftsmodell,
wenn der Benutzer sie berechtigt hat, bestimmte Arten von Modellen
zu akzeptieren (wenn z. B. der Benutzer die CMPS-Anordnung so programmiert
hat, dass sie Gratisabspielungen mit Werbespots immer akzeptiert),
sie weist das Geschäftsmodell
zurück,
wenn der Benutzer angewiesen hat, dass das bestimmte Modell immer
zurückgewiesen
wird, oder sie zeigt dem Benutzer das Geschäftsmodell an (z. B. indem sie
Optionen auf dem Bildschirm anbietet).
- (d) Wenn ein Geschäftsmodell
akzeptiert wurde, entschlüsselt
die CMPS-Anordnung dann den restlichen Teil des Header CMPO. Wenn
das Handelsgerät
einen direkten Ausgabeanschluss an einen externen Server hat (z.
B. einen Internetanschluss, einen Rückkanal an einer Set-Top-Box, etc)
und wenn Latenzprobleme behandelt werden, kann die Entschlüsselung
dieser Schlüssel durch
Kommunikation mit dem externen Server vorgenommen werden, wobei
jede Seite die andere authentifiziert, ein sicherer Kanal hergestellt wird
und ein Schlüssel
aus dem Server empfangen wird. Wenn das Handelsgerät nicht
wenigstens gelegentlich an einen externen Server angeschlossen wird,
muss die Entschlüsselung
eventuell auf einen oder mehreren Schlüsseln basiert werden, die sicher
in dem Handelsgerät
gespeichert sind.
- (e) Sobald ein Header CMPO entschlüsselt wurde, erlangt die CMPS-Anordnung
Informationen, die zum Identifizieren und Lokalisieren der den Inhalt
enthaltenden Ströme
verwendet werden, sowie Schlüssel,
die verwendet werden, um entweder die diesem Inhalt zugeordneten
CMPOs oder direkt den Inhalt selbst zu entschlüsseln.
- (f) Bei einer Ausführungsform
dieses Header-Ausführungsbeispiels
kann das Header CMPO eine Datenstruktur zur Speicherung von Informationen enthalten,
die von der CMPS-Anordnung zugefügt wurden.
Solche Informationen können
die folgenden umfassen:
(1) Identifizierung des Benutzers und/oder
des Handelsgeräts
und/oder der CMPS-Anordnung. Bei dieser Ausführungsform können solche
Informationen in einem Header CMPO gespeichert werden, um einen
Prüfpfad
für den
Fall vorzusehen, dass das Werk (einschließlich des Header CMPO) übertragen
wird (dies funktioniert nur, wenn das Header CMPO in schreibbarer
Form übertragen
wird). Solche Informationen können verwendet
werden, um einen Benutzer zu gestatten, das Werk auf ein anderes
Handelsgerät,
das dem Benutzer gehört,
zu übertragen,
ohne Zahlung zusätzlicher
Gebühren,
wenn solche Übertragungen
von den Regel-Informationen, die dem Header CMPO zugeordnet sind,
zugelassen werden. Beispielsweise kann ein Benutzer ein Abonnement
für einen
bestimmten Kabelservice haben, für
das der Benutzer im voraus bezahlt hat. Wenn eine CMPS-Anordnung
ein Header CMPO von diesem Kabelservice herunterlädt, kann
die CMPS-Anordnung die Identifizierung des Benutzers in dem Header
CMPO speichern. Die CMPS-Anordnung kann dann fordern, dass das aktualisierte
Header CMPO aufgenommen wird, wenn der Inhalt kopiert oder übertragen
wird. Das Header CMPO könnte
eine Regel enthalten, die besagt, dass, sobald die Benutzerinformationen ausgefüllt wurden,
der dazugehörige
Inhalt nur von diesem Benutzer und/oder von diesem Benutzer zugeordneten
Handelsgeräten
gesehen werden kann. Dies würde
dem Benutzer gestatten, mehrfache Kopien des Werks anzufertigen
und das Werk auf mehreren Handelsgeräten anzuzeigen, jedoch könnten diese
Kopien nicht von nicht autorisierten Benutzern und/oder auf nicht
autorisierten Handelsgeräten
angezeigt oder verwendet werden. Das Header CMPO kann ferner eine Regel
enthalten, die angibt, dass die Benutzerinformationen nur von einem
autorisierten Benutzer geändert
werden können
(z. B. wenn der Benutzer 1 das Werk an den Benutzer 2 überträgt, kann die
CMPS-Anordnung des Benutzers 2 die Benutzerinformationen in dem
Header CMPO aktualisieren, und dadurch dem Benutzer 2 erlauben, das
Werk zu sehen, jedoch nur, wenn der Benutzer 2 ebenfalls ein Teilnehmer
des Kabelkanals ist).
(2) Die Identifizierung von bestimmten
Regeloptionen, die die Nutzung regeln. Regelsätze, die in den Header CMPOs
enthalten sind, können
Optionen enthalten. In bestimmten Fällen kann das Ausüben einer
bestimmten Option die spätere Ausübung einer
anderen Option ausschließen. Beispielsweise
kann einem Benutzer die Wahl gegeben werden, ein unverändertes
Werk gegen eine bestimmte Gebühr
zu sehen oder ein Werk zu verändern
und das veränderte
Werk gegen eine höhere
Gebühr
zu sehen. Sobald der Benutzer entscheidet, das Werk zu ändern und
das geänderte
Werk zu sehen, wird diese Wahl vorzugsweise in dem Header CPMO gespeichert,
da die Option auf ein Sehen des nicht geänderten Originalwerks zum niedrigeren
Preis nicht mehr zur Verfügung
steht. Der Benutzer kann ferner das Recht erworben haben oder ihm
wird jetzt die Option auf dieses Recht angeboten, das geänderte Werk
mit einem Gewinnaufschlag weiter zu verteilen, was zu einem abgeleiteten
Einkommen für Dritte
führt und
die Nutzungsinformationen fließen sowohl
zum Benutzer als auch zu dem bzw. den Stakeholdern des ursprünglichen
Werks.
(3) Nutzungsinformationen aus der Vergangenheit. Das
Header CMPO kann Informationen über die
Anzahl und die Arten der Nutzungen enthalten. Wenn beispielsweise
das zugrunde liegende Werk kopiert wird, kann das Header CMPO aktualisiert
werden, um die Tatsache wiederzuspiegeln, dass eine Kopie erstellt
wurde, da eine diesem Werk zugeordnete Regel eventuell nur eine einzige
Kopie erlaubt (z. B. zur Datensicherung und/oder für ein zeitversetztes
Fernsehen). Bei einem anderen Beispiel kann ein Benutzer das Recht
erhalten, ein Werk einmal oder für
eine bestimmte Anzahl zu sehen. Das Header CMPO würde dann
aktualisiert werden, um jede derartige Benutzung wiederzuspiegeln.
-
Nutzungsinformationen
können
verwendet werden, um zu bestimmen, ob zusätzliche Nutzungen durch Regeln
autorisiert sind, die dem Header CMPO zugeordnet sind. Solche Informationen
können
auch für
Prüfzwecke
verwendet werden. Solche Informationen können auch als Nutzungsinformations-Exhaust
vorgesehen werden, der an einen externen Server berichtet wird.
Beispielsweise kann eine Regel spezifizieren, dass ein Werk kostenfrei
gesehen werden kann, jedoch nur wenn Nutzungsinformationen aus der
Vergangenheit auf einen Server geladen werden.
-
Inhaltsverwaltungs-und
-schutzobjekte (CMPO)
-
Das
Inhaltsverwaltungs- und Schutzobjekt ("CMPO")
ist eine Datenstruktur, die Informationen enthält, die von dem CMPS verwendet
werden, um die Nutzung eines bestimmten Inhalts zu regeln. Ein CMPO
kann als eine von einem bestimmten Standard (z. B. einem MPEG-4
ES) spezifizierte Datenstruktur oder als eine Datenstruktur formatiert
sein, die nicht vom Standard definiert ist. Wenn das CMPO als eine
vom Standard spezifizierte Datenstruktur formatiert ist, kann sie
in dem vom Standard verwendeten Kanal empfangen werden (z. B. als
Teil eines Composite-MPEG-4 Stroms) oder kann über ein anderes Seitenbandverfahren
empfangen werden. Wenn das CMPO als eine Datenstruktur formatiert ist,
die nicht von dem relevanten Standard spezifiziert ist, wird sie
unter Verwendung irgendeines Seitenbandverfahrens bereitgestellt
und decodiert, was den Empfang durch den gleichen Port wie formatierter
Inhalt und/oder einen Empfang durch einen getrennten Port umfassen
kann.
-
Der
Inhalt kann auf nahezu jeder Stufe der Granularität kontrolliert
werden. Drei beispielhafte Stufen werden hier erörtert werden: "Kanal", "Werk" und "Objekt".
-
Ein "Kanal" stellt eine Aggregation
von Werken dar. Die Werke können
zur Auswahl durch den Benutzer bereitstehen (z. B. eine Website
oder eine Videothek) oder können
seriell empfangen werden (z. B. ein Kabelfernsehkanal).
-
Ein "Werk" stellt ein einzelnes
audiovisuelles Werk, ein Textwerk oder ein anderes Werk dar, das von
einem Benutzer als ein integriertes Ganzes konsumiert (gesehen,
gelesen, etc.) werden soll. Ein Werk kann beispielsweise ein Film,
ein Lied, ein Zeitschriftenartikel, ein Multimedia-Produkt, wie
beispielsweise ein hoch entwickeltes Videospiel, sein. Ein Werk
kann andere Werke aufnehmen, wie beispielsweise bei einem Multimedia-Werk,
das Lieder, Videos, Texte, etc. enthält. In einem solchen Fall können Rechte
zugeordnet sein.
-
Ein "Objekt" stellt einen getrennt
adressierbaren Abschnitt eines Werkes dar. Ein Objekt kann beispielsweise
ein einzelner MPEG-4 AVO, ein Szenenbeschreibungs-Graph, ein Objektdeskriptor,
der Soundtrack für
einen Film, eine Waffe in einem Videospiel oder irgendein anderer
logisch definierbarer Abschnitt sein.
-
Der
Inhalt kann auf jeder dieser Stufen (ebenso wie auf hier nicht erörterten
Zwischenstufen) kontrolliert werden. Der bevorzugte Ausführungsmechanismus
für eine
solche Kontrolle ist ein CMPO oder eine CMPO-Anordnung (die ein
oder mehrere CMPOs umfasst, und im Falle mehrerer, dann mehrere
zusammenarbeitende CMPOs). CMPOs und CMPO-Anordnungen können hierarchisch
organisiert sein, wobei eine Kanal-CMPO-Anordnung Regeln aufstellt,
die für
alle enthaltenen Werke gelten, ein MCMPO oder ein SGCMPO Regeln
aufstellt, die für
alle Objekte innerhalb eines Werkes gelten, und eine CMPO-Anordnung
Regeln aufstellt, die für
ein bestimmtes Objekt gelten.
-
In
einem in 27 gezeigten Ausführungsbeispiel
kann ein CMPS ein CCMPO 2701 herunterladen. Das CCMPO 2701 kann
eine oder mehrere Regeln 2702 enthalten, die für den gesamten
Inhalt in dem Kanal gelten, sowie einen oder mehrere Schlüssel 2703,
die zur Entschlüsselung
eines oder mehrerer MCMPOs und/oder SGCMPOs verwendet werden. Das
MCMPO 2704 kann die Regeln 2705 enthalten, die
für ein
einziges Werk und/oder Werke gelten, eine oder mehrere Klassen und/oder
mehrere Benutzer und/oder Benutzerklassen, und kann auch die Schlüssel 2706 enthalten,
die zum Entschlüsseln der
CMPOs verwendet werden. Das CMPO 2707 kann die Regeln 2708 enthalten,
die für
ein einzelnes Objekt gelten, sowie den Schlüssel 2709, der zum Entschlüsseln des
Objekts verwendet wird.
-
Solange
alle Objekte auf irgendeiner Stufe einer Kontrolle unterliegen,
besteht kein Bedarf, dass jedes Objekt einzeln kontrolliert wird.
Beispielsweise kann das CCMPO 2701 eine einzelne Regel
zum Sehen von Inhalt spezifizieren, der in seinem Kanal enthalten
ist (z. B. kann der Inhalt nur von einem Teilnehmer gesehen werden,
dem es dann eventuell freisteht, den Inhalt weiter zu verteilen,
ohne weitere Verpflichtung gegenüber
dem Inhaltsanbieter). In einem solchen Fall würden nicht zwangsweise Regeln für die MCMPOs
(z. B. Regeln 2705), SGCMPOs oder CMPOs (z. B. Regeln 2708)
verwendet werden. Bei einer Ausführungsform
könnte
man auf die MCMPOs, die SGCMPOs und die CMPOs verzichten, und das
CCMPO 2701 könnte
alle Schlüssel
enthalten, die zum Entschlüsseln
des gesamten Inhalts verwendet werden, oder es könnte eine Stelle spezifizieren, an
der diese Schlüssel
untergebracht sein könnten. In
einer anderen Ausführungsform
würde das
CCMPO 2701 den Schlüssel 2703 liefern,
der zum Entschlüsseln
des MCMPO 2704 verwendet wird. Das MCMPO 2704 kann
Schlüssel
enthalten, die zum Entschlüsseln
von CMPOs verwendet werden (z. B. Schlüssel 2706), enthält aber
vielleicht keine zusätzlichen
Regeln 2705. Das CMPO 2707 kann den Schlüssel 2709 enthalten,
der zum Entschlüsseln
eines Objektes verwendet wird, enthält aber vielleicht keine zusätzlichen
Regeln 2708. Bei bestimmten Ausführungsformen sind keine SGCMPOs
vorhanden.
-
Ein
CMPO kann innerhalb einer Inhalts-Datenstruktur enthalten sein,
die von einem relevanten Standard spezifiziert wird (beispielsweise
kann das CMPO Teil eines Headers in einem MPEG-4 ES sein). Ein CMPO
kann innerhalb seiner eigenen, speziell zugeschnittenen Datenstruktur
enthalten sein, die von einem rele vanten Standard spezifiziert wird (z.
B. ein CMPO ES). Ein CMPO kann in einer Datenstruktur enthalten
sein, die nicht von irgendeinem Inhaltsstandard spezifiziert wird
(z. B. ein in einer DigiBox enthaltenes CMPO).
-
Ein
CCMPO kann die folgenden Elemente enthalten:
- (a)
ID 2710. Diese kann die folgende Form haben: <channel ID>< CMPO type><CMPO
ID><version number>. Im Falle einer hierarchischen
CMPO-Organisation (z. B. CCMPOs, die MCMPOs kontrollieren, die CMPOs
kontrollieren), kann die CMPO ID 2711 ein Feld für jede Stufe
der Hierarchie enthalten, und dadurch der CMPO ID 2711 ermöglichen,
die Stelle irgendeines bestimmten CMPO in der Organisation zu spezifizieren.
Die ID 2710 für
ein CCMPO kann beispielsweise 123-000-000 sein. Die ID 2712 für ein MCMPO
eines Werks innerhalb des Kanals kann beispielsweise 123-456-000
sein, und dadurch die Spezifikation von 1.000 MCMPOs gestatten,
wie sie von dem CCMPO, identifiziert als "123",
kontrolliert werden. Die CMPO ID 2711 für ein CMPO, das einem Objekt
innerhalb eines bestimmten Werks zugeordnet ist, kann beispielsweise
123-456-789 sein, und dadurch die Spezifikation von 1000 CMPOs ermöglichen,
wie sie jedem MCMPO zugeordnet sind. Dieses Verfahren des Spezifizierens von
CMPO IDs übermittelt
dadurch die exakte Stelle eines beliebigen CMPO innerhalb einer Hierarchie
von CMPOs. Für
Fälle,
in denen keine höheren
Stufen der Hierarchie vorhanden sind (z. B. ein MCMPO ohne zugeordnetes
CCMPO), können
die dieser Stufe der Hierarchie zugeordneten Zahlen als Nullen spezifiziert
werden.
- (b) Regeln 2702, die für den gesamten Inhalt in dem
Kanal gelten. Diese können
selbständige
Regeln sein, oder können
Pointer auf Regeln sein, die an anderer Stelle erhalten werden.
Auf dieser Stufe sind die Regeln optional.
- (c) Informationen 2713, die für eine Anzeige in dem Fall
entwickelt wurden, in dem der Benutzer nicht in der Lage ist, die
Regeln einzuhalten (z. B. eine Werbeanzeige, die den Benutzer informiert, dass
ein Abonnement gegen eine bestimmte Gebühr erhältlich ist, und eine Liste
mit Inhalt enthält, der
auf dem Kanal zur Verfügung
steht).
- (d) Schlüssel 2703 zum
Entschlüsseln
jedes MCMPO, das von diesem CCMPO kontrolliert wird. Bei einer Ausführungsform
enthält
das CCMPO einen oder mehrere Schlüssel, die alle MCMPOs entschlüsseln. Bei
einer alternativen Ausführungsform
enthält
das CCMPO einen oder mehrere spezifische Schlüssel für jedes MCMPO.
- (e) Eine Spezifikation eines CMPS-Typs (2714) oder
von Hardware/Software, die erforderlich oder wünschenswert für die Verwendung
des diesem Kanal zugeordneten Inhalts ist.
-
Die
Inhalte eines MCMPO können ähnlich den
Inhalten eines CCMPO sein, außer
dass das MCMPO Regeln enthalten kann, die für ein einzelnes Werk gelten,
und CMPOs identifizieren kann, die jedem Objekt zugeordnet sind.
-
Die
Inhalte jedes CMPO können ähnlich den Inhalten
des MCMPO sein, außer
dass das CMPO Regeln und Schlüssel
enthalten kann, die für
ein einzelnes Objekt gelten.
-
Die
Inhalte eines SGCMPO können ähnlich den
Inhalten des CCMPO sein, außer
dass das MCMPO Regeln enthalten kann, die nur für eine bestimmte oder mehrere
bestimmte Klassen von Rechten, eine bestimmte Klasse von Werken
oder mehrere bestimmte Klassen von Werken und/oder eine oder mehrere
bestimmte Klassen von Benutzern und/oder Benutzeranordnungen gelten
(z. B. CMPO Anordnungen und/oder deren Vorrichtungen).
-
Bei
einem anderen in 28 gezeigten Ausführungsbeispiel
kann die CMPO Datenstruktur 2801 wie folgt definiert werden:
Die
CMPO Datenstruktur 2801 besteht aus Elementen. Jedes Element
enthält
eine selbständige
Informationseinheit. Das CMPS zergliedert die CMPO Datenstruktur,
in jeweils ein Element.
Das Typ-Element 2802 identifiziert
die Datenstruktur als CMPO, wodurch dem CMPS ermöglicht wird, es von einem Inhalts-ES
zu unterscheiden. Bei einer beispielhaften Ausführungsform kann dieses Element
4 Bit enthalten, die jeweils auf "1" gesetzt
sein können,
um anzuzeigen, dass die Datenstruktur ein CMPO ist.
Das zweite
Element ist ein CMPO-Identifikator 2803, der dazu verwendet
wird, dieses bestimmte CMPO zu identifizieren und mitzuteilen, ob
das CMPO Teil einer hierarchischen Organisation von CMPOs ist, und
falls ja, wo dieses CMPO in die Organisation passt.
Der CMPO-Identifikator 2803 ist
in vier Unterelemente von jeweils drei Bit unterteilt. Diese sind
als Unterelemente A, B, C und D gezeigt. Das erste Unterelement
(2803A) identifiziert den CMPO-Typ und gibt an, ob das
CMPO von irgendeinem anderen CMPO geregelt oder kontrolliert wird:
100:
die ist ein CMPO oberer Stufe (einem Kanal oder einer Aggregation
von Werken zugeordnet) und wird nicht von irgendeinem anderen CMPO
kontrolliert.
010: dies ist ein CMPO mittlerer Stufe (einem
bestimmten Werk zugeordnet) und wird nicht von irgendeinem anderen
CMPO kontrolliert.
110: dies ist ein CMPO mittlerer Stufe und
wird von einem CMPO oberer Stufe kontrolliert.
001: dies ist
ein CMPO niedriger Stufe (einem Objekt innerhalb eines Werks zugeordnet)
und wird nicht von irgendeinem anderen CMPO kontrolliert. Dieser Fall
wird selten sein, da ein CMPO niedriger Stufe für gewöhnlich von wenigstens einem
CMPO einer nächst
höheren
Stufe kontrolliert wird.
011: dies ist ein CMPO niedriger Stufe
und wird zwar von einem CMPO mittlerer Stufe, jedoch nicht von einem
CMPO oberer Stufe kontrolliert.
111: dies ist ein CMPO niedriger
Stufe und wird von einem CMPO oberer Stufe und einem CMPO mittlerer
Stufe kontrolliert.
-
Das
zweite Unterelement der CMPO ID 2803 (Unterelement B) identifiziert
ein CMPO oberer Stufe. Im Falle eines CMPO oberer Stufe wird dieser
Identifikator vom Creator des CMPO zugeordnet. Im Falle eines CMPO
mittlerer oder niedriger Stufe, das von einem CMPO oberer Stufe
kontrolliert wird, enthält dieses
Unterelement die Identifizierung des CMPO oberer Stufe, das diese
Kontrolle durchführt.
Im Falle eines CMPO mittlerer oder niedriger Stufe, das nicht von
einem CMPO oberer Stufe kontrolliert wird, enthält dieses Unterelement Nullen.
-
Das
dritte Unterelement der CMPO ID 2803 (Unterelement C) identifiziert
ein CMPO mittlerer Stufe. Im Falle eines CMPO oberer Stufe enthält diese Unterele ment
Nullen. Im Falle eines CMPO mittlerer Stufe enthält dieses Unterelement die
Identifizierung des bestimmten CMPO. Im Falle eines CMPO niedriger
Stufe, das von einem CMPO mittlerer Stufe kontrolliert wird, enthält dieses
Unterelement die Identifizierung des CMPO mittlerer Stufe, das diese
Kontrolle ausführt.
Im Falle eines CMPO niedriger Stufe, das nicht von einem CMPO mittlerer
Stufe kontrolliert wird, enthält
dieses Unterelement Nullen.
-
Das
vierte Unterelement einer CMPO ID 2803 (Unterelement D)
identifiziert ein CMPO niedriger Stufe. Im Falle eines CMPO oberer
oder mittlerer Stufe enthält
dieses Unterelement Nullen. Im Falle eines CMPO niedriger Stufe
enthält
dieses Unterelement die Identifizierung eines bestimmten CMPO.
-
Auf
das Identifizierungselement folgt das Größenelement 2804, das
die Größe der CMPO-Datenstruktur
angibt. Dieses Element enthält
die Anzahl der Elemente (oder Bytes) bis zum letzten Element in der
Datenstruktur. Dieses Element kann überschrieben werden, wenn Änderungen
am CMPO gemacht werden. Das CMPS kann diese Größeninformationen nutzen, um
zu bestimmen, ob das Element ohne Erlaubnis geändert wurde, da eine solche Änderung zu
einer anderen Größe führen könnte. Für diese Zwecke
kann das CMPS die in diesem Element enthaltenen Informationen in
einer geschützten
Datenbank speichern. Diese Informationen können auch verwendet werden,
um festzustellen, dass das gesamte CMPO empfangen worden ist und
stehen zur Verfügung,
ehe ein Versuch unternommen wird, mit der Verarbeitung fortzufahren.
-
Auf
das Größenelement 2804 folgen
ein oder mehrere Eigentümer/Kontroll-Elemente,
die Eigentümer-
und Kontrollketteninformationen enthalten (z. B. Eigentümer/Kontrollelemente 2805, 2806 und 2807). In
dem ersten dieser Elemente (2805) kann der Creator des
CMPO einen spezifischen Identifikator enthalten, der diesem Creator
zugeordnet ist. Zusätzliche
Teilnehmer können
ebenfalls in den folgenden Elementen (z. B. 2806, 2807)
identifiziert werden. Beispielsweise könnte das Element 2805 den
Creator des CMPO identifizieren, das Element 2806 den Herausgeber
des dazugehörigen
Werks und das Element 2807 den Autor des Werks identifizieren.
-
Eine
spezifische End-Element 2808-Folge (z. B. 0000) zeigt das
Ende der Kette von Eigentümer-Elementen
an. Wenn man auf diese Folge in dem ersten Element trifft, zeigt
dies an, dass keine Kette von Eigentümer-Informationen vorhanden
ist.
-
Eine
Kette von Eigentümer-Informationen kann
zugefügt
werden, wenn dem CMPO 2801 zugeordnete Regeln solche Zufügungen gestatten.
Wenn beispielsweise ein Benutzer das dem CMPO 2801 zugeordnete
Werk kauft, kann die Identifizierung des Benutzers als neues Element
in der Kette von Eigentümer-Informationen
zugefügt
werden (z. B. ein neues Element, das auf 2807 folgt, jedoch
vor 2808). Dies kann an der Verkaufsstelle erfolgen oder
von dem CMPS gemacht werden, sobald das CMPO 2801 angetroffen
wurde, and das CMPS bestimmt, dass der Benutzer das dazugehörige Werk
gekauft hat. In einem solchen Fall kann das CMPS den Benutzer-Identifikator
aus einer Datenstruktur erhalten, die von dem CMPS im NVRAM gespeichert
ist.
-
Auf
die Eigentümerelement-Kette
folgen ein oder mehrere Handhabungs-Elemente (engl.: handling elements)
(z. B. 2809, 2810), die die Handhabungskette anzeigen.
Diese Elemente können
die Identifizierung irgendeines CMPS enthalten, das das CMPO 2801 herunter
geladen und decodiert hat, und/oder können die Identifikation jedes
Benutzers enthalten, der irgendeinem solchen CMPS zugeordnet ist.
Solche Informationen können
für Prüf-Zwecke verwendet
werden, um ein Nachverfolgen der Handhabung zu ermöglichen,
für den
Fall, dass festgestellt wurde, dass sich ein Werk unsachgemäß im Umlauf befand.
Solche Informationen können
auch als Exhaust an ein Clearinghaus oder einen zentralen Server
berichtet werden. Handhabungsketten-Informationen bleiben vorzugsweise
solange persistent, bis sie berichtet werden. Wenn die Anzahl der
Elemente, die für
solche Informationen erforderlich ist, eine festgelegte Anzahl übersteigt
(z. B. zwanzig getrennte Benutzeridentifikatoren), kann ein CMPS
verweigern, jede weitere Verarbeitung des CMPO 2801 oder
des dazugehörigen
Werks zu gestatten, bis das CMPS an einen externen Server angeschlossen
wurde und die Kette aus Handhabungsinformationen berichtet hat.
-
Das
letzte Element in der Kette aus Handhabungselementen (z. B. 2811)
zeigt das Ende dieser Gruppe von Elementen an. Die Inhalte dieses
Elements können
beispielsweise alle Nullen sein.
-
Auf
die Kette aus Handhabungselementen können ein oder mehrere Zertifizierungselemente
(z. B. 2812, 2813) folgen, die ein diesem CMPO
zugeordnetes digitales Zertifikat enthalten oder darauf verweisen.
Ein solches digitales Zertifikat kann von dem CMPS verwendet werden,
um das CMPO zu authentifizieren. Das letzte Element in der Kette
digitales Zertifikat besteht aus lauter Nullen (2814).
Wenn kein digitales Zertifikat vorhanden ist, ist ein einziges Element
aus lauter Nullen an dieser Stelle vorhanden.
-
Auf
die Zertifikatselemente kann ein Satz Objektregelungs-Elemente (engl.:
Governed Object Elements) (z. B. 2815, 2816, 2817, 2818)
folgen, die ein oder mehrere Inhaltsobjekte und/oder CMPOs spezifizieren,
die von dem CMPO 2801 geregelt oder diesem zugeordnet sein
können.
Jedes dieser geregelten Objekte oder CMPO wird von einem spezifischen
Identifikator und/oder einer Stelle identifiziert, an der ein solches
Objekt oder CMPO gefunden werden kann (z. B. können diese an den Stellen 2815 und 2817 gespeichert
werden). Auf jeden solchen Identifikator können ein oder mehrere Schlüssel folgen,
die zum Entschlüsseln
eines solchen CMPO oder Objektes verwendet werden (z. B. gespeichert an
den Stellen 2816 und 2818). Der Satz aus Identifikatoren/Schlüsseln endet
mit einem Abschlusselement, das aus lauter Nullen besteht (2819).
-
Auf
den Satz aus Elementen, die Identifikatoren und/oder Schlüssel spezifizieren,
kann ein Satz aus Regel-Elementen (z. B. 2820, 2821, 2822)
folgen, die Regeln/Kontrollen und Bedingungen spezifizieren, die
der Benutzung der Inhaltsobjekte und/oder den CMPOs, die in der
Kette aus geregelten Objekten identifiziert sind, zugeordnet sind
(z. B. die Stellen 2815 und 2817). Beispielhafte
Regeln sind nachstehend beschrieben. Elemente können explizite Regeln oder
Verweise auf Regeln enthalten, die an anderer Stelle gespeichert
sind. Bedingungen können
bestimmte Hardware-Ressourcen enthalten, die notwendig sind, um
dazugehörige
Inhaltsobjekte zu nutzen oder um bestimmte Regeln zu erfüllen, oder
bestimmte Arten von CMPS, die zur Benutzung der dazugehörigen Inhaltsobjekte
erforderlich sind oder dafür
bevorzugt werden.
-
Auf
die Regel-/Kontroll- und Bedingungs-Elemente kann ein Satz von Informations-Elementen 2823 folgen,
der Informationen enthält,
die von dem Creator des CMPO spezifiziert werden. Neben anderen
Inhalten können
solche Informationen Inhalt oder Pointer auf Inhalte, Programmierungen oder
Pointer auf Programmierungen enthalten.
-
Das
CMPO endet mit dem Endabschluss-Element 2824.
-
In
einem Ausführungsbeispiel
können
die in den Regel-Elementen 2820-2822 des CMPO 2801 enthaltenen
Regeln beispielsweise die folgenden Operationen enthalten:
- (1) Abspielen (Play). Diese Operation gestattet
es dem Benutzer, den Inhalt ohne Beschränkung abzuspielen (obgleich
er ihn nicht kopieren darf).
- (2) Navigieren. Dies gestattet es dem Benutzer, bestimmte Arten
von Navigationsfunktionen auszuführen,
einschließlich
schneller Vorlauf/Rücklauf,
Stopp und Suche. Die Suche kann indexiert oder nicht indexiert sein.
- (3) Kopieren. Kopieren kann einmalig erlaubt sein (z. B. zeitversetztes
Sehen, Archivieren), kann für eine
bestimmte Anzahl erlaubt sein und/oder für eine begrenzte Zeitspanne
erlaubt sein, oder auch für
eine unbegrenzte Zeitspanne erlaubt sein, solange andere Regeln,
einschließlich
relevanter Budgets, nicht verletzt oder überschritten werden. Eine CMPS-Anordnung
kann so ausgelegt sein, dass eine Kopieroperation eine Aktualisierung
an einem dazugehörigen
CMPO verursachen kann (z. B. einschließlich einer Anzeige, dass der
dazugehörige
Inhalt kopiert wurde, wobei das Kopierdatum und die Stelle, die
für das
Erstellen der Kopie verantwortlich war, identifiziert werden), ohne
dass irgendeine Veränderung
an irgendeinem anwendbaren Inhaltsobjekt verursacht wird, und insbesondere
ohne die Erfordernis, dass dazugehörige Inhaltsobjekte gedemultiplext,
entschlüsselt
oder dekomprimiert werden. Im Falle von MPEG-4 kann dies beispielsweise den
folgenden mehrstufigen Dumultiplex-Prozess erfordern:
(i) die
CMPS-Anordnung empfängt
eine Kopieranweisung von dem Benutzer oder von einem Header CMPO.
(ii)
die diesem MPEG-4 Strom, der kopiert werden soll, zugeordneten CMPO
ESs werden von dem Inhaltsstrom in einer ersten Demultiplex-Stufe
getrennt.
(iii) die CMPOs werden von der CMPS-Anordnung entschlüsselt und
aktualisiert.
-
Die
CMPOs werden dann erneut mit den Inhalts-ESs gemultiplext (die niemals
voneinander demultiplext wurden) und der gesamte Strom wird ohne weitere Änderung
zum Ausgabeport geleitet.
-
Dieser
Prozess gestattet das Stattfinden einer Kopieroperation, ohne ein
Demultiplexen und Entschlüsseln
der Inhaltsströme
zu erfordern. Er erfordert, dass die CMPS-Anordnung zwei Ausgänge enthält: einen
Ausgang, der an den digitalen Ausgangsport anschließt (z. B. 23, Leitung 2316, die sich an den digitalen
Ausgangsport 2317 anschließt), und einen Ausgang, der
an die MPEG-4 Puffer angeschlossen ist (z. B. 23, Leitungen 2310, 2311, 2312),
wobei ein Schalter dafür
ausgelegt ist, den Inhalt zu dem einen oder dem anderen Ausgang
(oder zu beiden, wenn der Inhalt gleichzeitig gesehen und kopiert
werden soll) zu senden (z. B. Schalter 2319). Der Schalter 2319 kann
der einzige Pfad zum digitalen Ausgangsport 2317 sein,
wodurch dem CMPS 2302 ermöglicht wird, eine direkte Kontrolle über diesen
Port auszuüben
und sicherzustellen, dass Inhalt niemals zu diesem Port gesendet
wird, wenn er nicht durch eine Kontrolle autorisiert wurde. Wenn
der digitale Ausgangsport 2317 auch das Verbindungselement
zu einer digitalen Anzeigevorrichtung ist, wird das CMPS 2302 auch
an diesen Port zu sendenden Inhalt autorisieren müssen, selbst
wenn keine Kopieroperation autorisiert wurde.
-
Bei
einer beispielhaften Ausführungsform kann
die Empfangsvorrichtung, die die Informationen durch den digitalen
Ausgangsport 2317 empfängt, eine
Authentifizierung mit der Sendevorrichtung (z. B. CMPS 2302)
vornehmen müssen.
Eine Authentifizierung kann für
jede Eigenschaft der Vorrichtung und/oder ein oder mehrere im Zusammenhang
mit dieser Vorrichtung verwendete CMPS erfolgen. So wird beispielsweise
eine Sendevorrichtung keinen Inhalt an eine Speichervorrichtung übertragen,
der ein kompatibles CMPS fehlt.
-
In
einem weiteren, nicht einschränkenden Beispiel
kann das CMPS 2302 eine Session-Verschlüsselungs-Funktionalität haben
(z. B. die "Fünf-Firmen-Anordnung"), die einen sicheren
Kanal von einer Sende-Schnittstelle zu einer oder mehreren Schnittstellen
externer Vorrichtungen (z. B. einem digitalen Monitor) herstellt,
und vorausgesetzt, dass die empfangende Schnittstelle mit der sendenden
Schnittstelle authentifiziert ist, den Inhalt verschlüsselt, so
dass er nur von einem oder mehreren authentifizierten 1394 Vorrichtungsschnittstellen
entschlüsselt
werden kann. In diesem Fall würde
das CMPS 2302 nach einer geeigneten IEEE 1394 seriellen
Busschnittstelle suchen und nur dann ein Fließen des Inhalts vom digitalen
Ausgangsport 2317 gestatten, wenn (a) eine autorisierte
Abspiel-Operation aufgerufen wurde, ein sicherer Kanal mit der Vorrich tung hergestellt
und der Inhalt einer Session-Verschlüsselung unterzogen wurde, oder
(b) eine autorisierte Kopier- oder Rückübertragungs-Operation aufgerufen und
der Inhalt gemäß der obigen
Beschreibung behandelt wurde (d.h. das CMPO gedemultiplext, geändert und
erneut gemultiplext wurde, der Inhalt niemals entschlüsselt oder
gedemultiplext wurde).
-
Dies
ist nur dann möglich,
wenn die CMPOs getrennt in einer frühen Demultiplex-Stufe identifiziert werden
können,
was höchstwahrscheinlich
erfordert, dass sie in getrennten CMPO ESs gespeichert werden. Wenn
die CMPOs als Header in Inhalts-ESs gespeichert sind, kann es sein,
dass es nicht möglich ist,
die CMPOs vor einer vollständigen
Demulitplex- und Entschlüsselungs-Operation
des gesamten Stroms zu identifizieren.
- (4) Ändern. Der
Benutzer kann dazu autorisiert sein, den Inhalt zu ändern.
- (5) Löschen.
Dieser Befehl ermöglicht
dem Benutzer, Inhalte zu löschen,
die im Speicher des Handelsgeräts
gespeichert sind. Diese Operation bearbeitet das gesamte Werk. Wenn
der Benutzer einen Teil eines Werks löschen will, muss die Änderungs-Operation
verwendet werden.
- (6) Übertragen.
Ein Benutzer kann dazu autorisiert sein, ein Werk an einen Dritten
zu übertragen.
-
Dies
unterscheidet sich von der Kopier-Operation dahingehend, dass der
Benutzer keinen Inhalt oder irgendwelche Rechte am Inhalt zurückbehält. Die Übertragungs-Operation
kann ausgeführt
werden, indem man eine Kopier-Operation und eine Lösch-Operation
kombiniert. Die Übertragung
kann die Veränderung
des Header CMPOs erfordern, das dem Werk zugeordnet ist (z. B. Zufügen oder
Verändern
eines Eigentümer/Kontroll-Elements,
wie z. B. die Elemente 2805-2807 von 28), so dass dem Dritten Rechte am Werk zugeordnet
werden.
-
Diese
grundlegenden Operationen können Modifizierungen
unterliegen, die umfassen können:
- i. Bezahlung. Die Operationen können von
einer bestimmten Art von Benutzer-Bezahlung abhängig gemacht werden. Die Bezahlung
kann in Form einer Cash-Bezahlung an einen Anbieter erfolgen (z.
B. Kreditkarte, Abzug von einem Budget), oder durch Senden spezifizierter
Informationen an eine externe Stelle (z. B. Informationen vom Nielson-Typ).
- ii. Qualität
des Service (engl.: Quality of Service). Operationen können bestimmte
Servicequalitätsparameter
spezifizieren (z. B. durch Spezifizieren einer angeforderten QoS
im MPEG-4), einschließlich:
angeforderte Stufe der Dekomprimierung, angeforderte/benötigte Anzeigearten,
Rendering-Vorrichtungen (z. B. Lautsprecher höherer Qualität, eine
bestimmte Art von Spielekontroller).
- iii. Zeit. Operationen können
so bedingt sein, dass die Operation erst nach einer gewissen Zeit
gestattet wird, oder derart, dass der Preis für die Operation an die Zeit
gebunden ist (z. B. Echtzeit-Informationen zu einem Preis, verzögerte Informationen
zu einem niedrigeren Preis oder kostenfrei, z. B. das Gestatten
kontrollierter Kopien, aber erst nach einem bestimmten Datum).
- iv. Anzeige bestimmter Arten von Inhalt. Operationen können davon
abhängen,
dass der Benutzer die Anzeige eines bestimmten Inhalts autorisiert (z.
B. kann die Abspiel-Operation kostenfrei sein, wenn der Benutzer
der Anzeige von Werbespots zustimmt).
-
In
allen diesen Fällen
kann eine Regel von einer oder mehreren anderen Regeln modifiziert
werden. Eine Regel kann spezifizieren, dass sie von anderen Regeln
modifiziert werden kann, oder aber spezifizieren, das sie unmodifizierbar
ist. Wenn eine Regel modifizierbar ist, kann sie von Regeln modifiziert
werden, die von anderen Quellen gesendet werden. Solche Regeln können vom
Benutzer einzeln empfangen werden oder können aggregiert und vom Benutzer
gemeinsam empfangen werden.
-
Datentypen,
die in einer beispielhaften MPEG-4 Ausführungsform verwendet werden
können,
können
folgendes enthalten:.
-
a. CMP-Datenstrom
-
Der
CMP-ds ist ein neuer Typ eines elementarem Stroms, der alle Eigenschaften
eines elementaren Stroms einschließlich seines eigenen CMPO und
eines Verweises in den Objektdeskriptoren hat. Jeder CMP-ds-Strom
hat eine Reihe von einer oder mehreren CMP-Nachrichten. Eine CMP
Nachricht umfasst vier Teile:
- 1. Count: [1...n]
CMPS-Typen, die von diesem IP ES unterstützt werden. Es können mehrfache CMPS-Systeme
unterstützt
werden, die jeweils von einem einzigartigen Typ identifiziert werden. (Eventuell
muss ein zentrales Typenregister vorhanden sein.)
- 2. CMPS_type_identifiers: [1...n] Identifikatoren, jeder mit
einem Versatz im Strom und einer Länge. Der Versatz verweist auf
das Byte in dem CMPO, an dem die Daten für diesen CMPS-Typ gefunden
werden. Die Länge
ist die Länge
dieser Daten in Byte.
- 3. Data segments: Ein Segment für jeden der n CMPS-Typen, die
in einem Format kodiert sind, das dem CMPS-Lieferer gehört.
- 4. CMP_Message_URL: Dies verweist auf eine weitere CMP Nachricht.
(Dies steht im Einklang mit dem Standard des Verwendens von URLs,
um auf Ströme
zu verweisen.)
-
b. CMPO.
-
Das
CMPO ist eine Datenstruktur, die verwendet wird, um eine detaillierte
CMP-Kontrolle an einzelne elementare Ströme anzuhängen. Jedes CMPO enthält:
- 1. CMPO_ID: Ein Identifikator für den zu
kontrollierenden Inhalt. Dieser Identifikator muss einen elementaren
Strom einzigartig identifizieren.
- 2. CMPO_count: [1...n] CMPS-Typen, die von diesem CMPO unterstützt werden.
- 3. CMPS_type_identifiers: [1...n] Identifikatoren, jeder mit
einem Versatz im Strom und mit einer Länge. Der Versatz verweist auf
das Byte in dem CMPO, an dem die Daten für diesen CMPS-Typ gefunden
werden. Die Länge
ist die Länge
dieser Daten in Byte.
- 4. Data segments: n Datensegmente. Jedes Datensegment hat ein
Format, das dem CMPS-Lieferer gehört.
- 5. CMPO_URL: Eine optionale URL, die auf ein zusätzliches
CMPO verweist, das Informationen zu den Informationen in diesem
CMPO zufügt. (Dies
ist ein Weg zum dynamischen Hinzufügen einer Unterstützung für neue CMPSs.)
-
c. Rückkopplungs-Event
-
Die
Rückkopplungs-Events
liegen in zwei Formen vor: Start und Ende. Jeder Rückkopplungs-Event
enthält
drei Informationseinheiten:
- 1. Elementary_stream_ID
- 2. Time: in Darstellungszeit
- 3. Object_instance_number
-
Benutzerschnittstelle
-
Das
Handelsgerät 2301 kann
die Benutzerschnittstelle 2304 enthalten, die dafür ausgelegt
ist, kontrollspezifische Informationen an den Benutzer mitzuteilen
und vom Benutzer Befehle und Informationen zu empfangen. Diese Schnittstelle
kann Spezialanzeigen enthalten (z. B. ein Licht, das aufleuchtet, wenn
eine aktuelle Handlung eine Bezahlung erfordert), Spezialknöpfe (z.
B. ein Knopf, der die Zahlung akzeptiert, oder andere Bedingungen,
die für
die Anzeige des Inhalts erforderlich sind) und/oder visuelle Informationen,
die auf dem Bildschirm angezeigt werden.
-
Beispiel einer Operation
in einem MPEG-4 Kontext
-
- 1. Der Benutzer wählt ein bestimmtes Werk bzw. einen
bestimmten Kanal aus. Beispielsweise verwendet der Benutzer eine
Fernbedienung, um einen digitalen Fernseher auf einen bestimmten
Kanal einzustellen.
- 2. Die Wahl des Kanals wird an eine CMPS-Anordnung kommuniziert,
welche die Informationen entweder zum Herunterladen eines CCMPO
oder zum Identifizieren eines zuvor heruntergeladenen CCMPO verwendet
(wenn die CMPS-Anordnung beispielsweise
in einer Set-Top-Box enthalten ist, kann die Set-Top-Box CCMPOs für jeden
Kanal, der möglicherweise
von der Box erreichbar ist, automatisch herunterladen).
- 3. Die CMPS-Anordnung verwendet das CCMPO, um Regeln zu identifizieren,
die dem gesamten Inhalt zugeordnet sind, der auf dem Kanal gefunden wird.
Beispielsweise kann das CCMPO spezifizieren, dass der Inhalt nur
von Teilnehmern gesehen werden darf und dass, für den Fall, dass der Benutzer
kein Teilnehmer ist, ein Werbebild angezeigt werden soll, auf dem
der Benutzer zur Teilnahme aufgefordert wird.
- 4. Sobald die von dem CCMPO spezifizierten Regeln erfüllt worden
sind, spezifiziert das CCMPO die Stelle eines einem bestimmten Werk
zugeordneten MCMPO, das auf dem Kanal zur Verfügung steht. Das Kanal-CMPO
kann auch einen oder mehrere Schlüssel liefern, die zur Entschlüsselung
des MCMPO verwendet werden.
- 5. Die CMPS-Anordnung lädt
das MCMPO herunter. Im Falle eines MPEG-4 Ausführungsbeispiels kann das MCMPO
ein Elementary Stream sein. Dieser Elementary Stream muss in einer
relativ frühen
Stufe während
des MPEG-4 Decoding-Prozesses identifiziert werden können.
- 6. Die CMPS-Anordnung entschlüsselt das MCMPO und legt die
Regeln fest, die für
einen Zugriff auf bzw. die Verwendung des Inhalts verwendet werden.
Die CMPS-Anordnung bietet dem Benutzer einen Satz von Optionen,
einschließlich
der Möglichkeit
eines gebührenfreien
Sehens mit Werbespots oder eines Sehens gegen Gebühr ohne
Werbespots.
- 7. Der Benutzer wählt
gebührenfreies
Sehen mit Werbespots, beispielsweise indem er unter Verwendung einer
Fernbedienung eine Option auf dem Schirm hervorhebt und auswählt.
- 8. Die CMPS-Anordnung erwirbt einen oder mehrere Schlüssel von
dem MCMPO und verwendet diese Schlüssel, um die Elementary Streams,
die diesem Video zugeordnet sind, zu entschlüsseln. Die CMPS-Anordnung identifiziert
zwei mögliche Szenenbeschreibungs-Graphen,
einen mit Werbespots und einen ohne Werbespots. Die CMPS-Anordnung
gibt den Szenebeschreibungs-Graphen
mit Werbespots weiter und blockiert den anderen Szenebeschreibungs-Graphen.
- 9. Die CMPS-Anordnung überwacht
den Composite- und Render-Block und prüft, um festzustellen, ob die
Werbe-AVOs tatsächlich
zum Sehen freigegeben wurden. Wenn die CMPS-Anordnung feststellt,
dass diese AVOs nicht zum Sehen freigegeben worden sind, zeigt sie
eine Fehler- oder Warnmeldung an und beendet die weitere Entschlüsselung.
-
CMPS Rechteverwaltung
in Anbieter- und Verteilerketten
-
Zusätzlich zu
Verbraucher-Anordnungen können
in anderen Ausführungsbeispielen
ein oder mehrere CMPSs zur Erzeugung, Erfassung, Modifizierung,
Vergrößerung,
Animierung, Aufbereitung, Exzerpierung, Extrahierung, Einbettung,
Verbesserung, Korrektur, Fingerprinting, Watermarking und/oder Rendering
von digitalen Informationen verwendet werden, um digitalen Informationen
Regeln zuzuordnen und diese Regeln während der Erzeugungs-, Herstellungs-,
Verteilungs-Anzeige- und/oder
Performance-Prozesse anzuwenden.
-
In
einem nicht einschränkenden
Beispiel ist ein CMPS, von dem ein nicht erschöpfendes Beispiel mindestens
einen sicheren Abschnitt eines VDE-Knotens enthalten kann, wie in
der zuvor erwähnten
Patentbeschreibung von Ginter et al. beschrieben, in Video- und
Digitalkameras, Audiomikrophonen, Aufzeichnungs-, Wiedergabe-, Aufbereitungs-
und/oder Rauschminderungsgeräten und/oder
anderen digitalen Vorrichtungen aufgenommen. Bilder, Video und/oder
Audio oder irgendwelche andere relevanten digitalen Informationen
können unter
Verwendung mindestens eines CMPS und/oder mindestens eines CMPO
erfasst, aufgezeichnet und persistent geschützt werden. Die CMPSs können mit der
Komprimierung/Dekomprimierung, Verschlüsselung/Entschlüsselung,
DSP, Digital-Analog-Wandlern,
Analog-Digital-Wandlern wie auch Kommunikationshardware- und/oder
Softwarekomponenten dieser Vorrichtungen interagieren.
-
In
einem weiteren nicht-erschöpfenden
Beispiel können
Computeranimationen, Spezialeffekte, Digitalaufbereitung, Farbkorrektur,
Rauschminderung und jegliche andere Anwendungen, die digitale Informationen
erzeugen und/oder verwenden, Rechte schützen und/oder verwalten, die
digitalen Informationen zugeordnet sind, unter Verwendung mindestens
eines CMPS und/oder eines CMPO.
-
Ein
weiteres Beispiel umfasst die Verwendung von CMPSs und/oder CMPOs,
um digitale Assets in mindestens einer digitalen Bibliothek, einem Asset-Store,
Film- und/oder Audio-Bibliotheken,
digitalen Tresoren und/oder irgendwelchen anderen Speicher- und
Verwaltungsmitteln für
digitalen Inhalt zu verwalten.
-
Gemäß den vorliegenden
Anwendungen können
CMPSs und/oder CMPOs verwendet werden, um Rechte im Zusammenhang
mit der öffentlichen
Anzeige und/oder Performance digitaler Werke zu verwalten. In einem
nicht erschöpfenden
Beispiel können
Flachbildschirme, Anzeigen, Monitore, TV-Projektoren, LCD-Projektoren und/oder
beliebige andere Mittel zur Anzeige digitaler Informationen mindestens
eine Hardware und/oder Software CMPS-Instanz umfassen, die die Verwendung
digitaler Werke kontrolliert. Ein CMPS wird die Verwendung möglicherweise
nur in Verbindung mit einem oder mehreren digitalen Passwörtern gestatten,
wobei ein Beispiel hierfür
ein digitales Zertifikat ist, die garantieren, dass die Verwendung
der digitalen Informationen nur in Umgebungen, an Orten und/oder
anderen Kontexten zur öffentlichen
Anzeige und/oder Performance stattfindet. Nicht einschränkende Beispiele
für die
Kontexte umfassen Theater, Bars, Clubs, elektronische Billboards,
elektronische Anzeigen an öffentlichen
Orten oder Fernseher in Flugzeugen, auf Schiffen, in Zügen und/oder
anderen öffentlichen
Transportmitteln. Diese Passwörter
können von
vertrauenswürdigen
Dritten, wie z. B. Zertifizierungsbehörden, ausgegeben werden, wobei
nicht erschöpfende
Beispiele in der vorgenannten Patentanmeldung '712 von Ginter offenbart sind.
-
Zusätzliche MPEG-4 Ausführungsbeispiel-Informationen
-
Dieses
Werk basiert auf der MPEG-4 Beschreibung in der Version 1 Systems
Committee Draft (CD), die derzeit die vollständigste Beschreibung des sich
entwickelnden MPEG-4 Standards ist.
-
Dieser
Abschnitt stellt die strukturelle Modifizierungen an der MPEG-4
Player-Architektur dar und erörtert
die Datenleitungen und die damit verbundenen funktionellen Änderungen.
Die 23 zeigt die funktionellen
Komponenten des originalen MPEG-4 Players. Der Inhalt kommt am Player 2301 gepackt
in einen seriellen Strom an (z. B. der MPEG-4 Bitstrom 2314).
Es wird über
eine Sequenz aus drei Demultiplexing-Stufen (z. B. Demux 2305)
in elementare Ströme
gedemultiplext. Es gibt drei prinzipielle Arten von elementaren
Strömen:
AV Objekte (AVO), Szenebeschreibungs-Graph (SDG) und Objektdeskriptor (OD).
Diese Ströme
werden in entsprechende Verarbeitungselemente eingegeben (z. B.
AVO-Decode 2307,
Szenebeschreibungs-Graph 2306, Objektdeskriptoren 2308).
Die AVOs sind die Multimedia-Inhaltsströme, wie z. B. Audio, Video,
synthetische Graphen usw. Sie werden von den Komprimierungs-/Codierungs-Untersystemen
des Players verarbeitet. Der Szenebeschreibungs-Graphen-Strom wird
zum Aufbauen des Szenebeschreibungs-Graphen verwendet. Dies teilt
dem Composite- und-Render 2309 mit,
wie die Szene aufzubauen ist und kann als "Skript" angesehen werden. Die Objektdeskriptoren
enthalten Deskriptionsinformationen über die AVOs und die SD-Graphen-Updates.
-
Um
ein CMPS (z. B. CMPS 2302) aufzunehmen und den Inhalt effektiv
zu schützen,
muss die Player-Struktur auf mehrere Arten modifiziert werden:
- • Bestimmte
Datenwege müssen
zu bzw. von den CMPS umgeleitet werden.
- • Bestimmte
Puffer in den SDG-, AVO-Decode- und Objektdeskriptor-Modulen müssen gesichert werden.
- • Rückkopplungspfade
von dem Benutzer und den Composite-und-Render-Einheiten zu dem CMPS müssen zugefügt werden.
-
Damit
das CMPS 2302 mit der MPEG-4 Einheit kommunizieren und
diese den Inhalt effektiv verwalten kann, müssen wir die CMPO-Struktur
und Zuordnungsprotokolle spezifizieren und wir müssen die Kommunikationsprotokolle über die
Rückkopplungssysteme
definieren (von dem Kompositor und dem Benutzer).
-
Die
strukturellen Modifizierungen am Player sind in 23 gezeigt. Die prinzipiellen Änderungen sind:
- • Alle
elementaren Ströme
werden nunmehr durch das CMPS 2302 geleitet.
- • direkter
Kommunikationspfad zwischen Demux 2305 und CMPS 2302.
- • ein
erforderliches "Inhaltsfreigabe-
und Entschlüsselungs"-Modul 2315 im
CMPS 2302.
- • Das
Zufügen
einer Rückkopplungsschleife
(z. B. Leitung 2313) vom Composite und Render 2309 zum
CMPS 2302.
- • Bidirektionale
Benutzerinteraktion direkt mit dem CMPS 2302 über die
Leitung 2316.
-
Für M4v2P
werden darüber
hinaus CMP-Objekte vorzugsweise allen elementaren Strömen zugeordnet.
Elementare Ströme,
die der Autor als nicht zu schützen
auswählt,
sind immer noch von einem "ungeschützter Inhalt"-CMPO gekennzeichnet.
Die CMPOs sind die primären
Mittel, um an den Inhalt Regelinformationen anzuhängen. Inhalt
bezieht sich hier nicht nur auf AVOs, sondern auch auf den Szenebeschreibungs-Graphen.
Der Szenebeschreibungs-Graph kann einen großen Wert haben und wird von
daher von dem CMPS 2302 geschützt und verwaltet werden müssen.
-
Der
direkte Pfad vom Demux 2305 zum CMPS 2302 wird
dazu verwendet, einen CUTS spezifischen Header weiterzuleiten, der
möglicherweise Geschäftsmodellinformationen
enthält,
der Geschäftsmodellinformationen
am Beginn einer Benutzersitzung kommuniziert. Dieser Header kann
verwendet werden, um Benutzeridentifizierung und -authentifizierung
einzuleiten, Regeln und Konsequenzen mitzuteilen, und eine Vorabinteraktion
mit den Regeln einzuleiten (Auswahl von Qualität des Service (QoS), Abrechnung
etc.) Die Kommunikation des Benutzers mit dem CMPS 2302 wird über einen nicht-standardisierten
Kanal durchgeführt
(z. B. Leitung 2316). Der CMPS Designer kann eine unabhängige API
zum Framing dieser Interaktionen vorsehen.
-
Der
Rückkopplungspfad 2313 aus
dem Composite-und-Render-Block 2309 hat einen wichtigen
Zweck. Der Pfad wird dazu verwendet, um zu überprüfen, dass das System dem Benutzer
tatsächlich
eine gegebene Szene dargestellt hat. Elementare Ströme, die
von ihren entsprechenden Modulen verarbeitet werden, müssen dem
Benutzer nicht zwangsweise gezeigt werden. Darüber hinaus gibt es mehrere
Betrugsszenarien, bei denen ein Angreifer einmal bezahlen und mehrfach
sehen könnte.
Der Rückkopplungspfad
ermöglicht
hier dem CMPS 2302 das Rendering zu überprüfen und von daher eine genauere
Abrechnung durchzuführen.
Diese Rückkopplung
wird ausgeführt,
indem der Composite-und-Render-Block 2309 gezwungen wird,
einen Start-Event auszugeben, der die Einleitung des Rendering eines
gegebenen Objekts signalisiert, das von einem Stopp-Event bei Beendigung
abgeschlossen wird. Die Rückkopplungs-Signalgebungs-Prozess kann
optional erfolgen, indem ein CMP-Benachrichtigungsflag vorgesehen
wird, das gekippt werden kann, um anzuzeigen, ob das CMPS 2302 benachrichtigt
werden soll oder nicht. Alle CMPOs müssten diese Flag tragen.
-
Die
letzte Modifizierung an der Struktur ist die Erfordernis, dass die
Klartext-Puffer in den AVO-, SDG- und Objektdeskriptor-Prozessoren
und in dem Composite-und-Render-Block
gesichert werden. Dies soll verhindern, dass ein Raubkopierer in
diesen Puffern vorhandenen Inhalt stiehlt. Praktisch gesehen kann
dies schwierig sein, da ein Manipulieren an diesen Strukturen leicht
die Synchronisation der Ströme
zerstören
kann. Ein höherer
Sicherheitszustand würde
sich jedoch aus einem Anordnen dieser Puffer in einer geschützten Verarbeitungsumgebung
ergeben.
-
Das
CMPS 2302 regelt das Funktionieren des Players 2301,
im Einklang mit folgendem:
- • Kommunikationsmechanismus
zwischen CMPS 2302 und dem MPEG-4 Player (über CMPOs)
- • ein
Inhaltsfreigabe- und -entschlüsselungs-Untersystem
- • ein
Versionsauthentifizierungsuntersystem
- • ausreichend
Performance, um nicht mit der Stromverarbeitung in den MPEG-4 Komponenten zu
interterieren
-
Das
CMPS 2302 kann einen bidirektionalen Seitenkanal haben,
der extern zum MPEG-4 Player ist und auch zum Austausch von CMP-Informationen genutzt
werden kann. Darüber
hinaus kann der CMPS-Designer wählen,
eine Benutzerschnittstelle API vorzusehen, die dem Benutzer die
Möglichkeit bietet,
mit der Inhalts- und Rechteverwaltungsseite der Stromverwaltung
zu kommunizieren (z. B. durch die Leitung 2316).
-
Verschlüsselter
Inhalt wird von dem CMPS 2302 entschlüsselt und freigegeben als Funktion
der Regeln, die dem geschützten
Inhalt zugeordnet sind, und den Ergebnissen der Benutzerinteraktion
mit dem CMPS 2302. Unverschlüsselter Inhalt wird durch das
CMPS 2302 geleitet und von dazugehörigen Regeln und der Benutzerinteraktion
mit dem CMPS 2302 geregelt. Als Folge dieser Regeln und der
Benutzerinteraktion muss das CMPS 2302 mit den SDG und
AVO Kodier-Modulen (z. B. 2310, 2311) handeln,
um die Szenenstruktur und/oder den QoS-Grad zu ändern.
-
Schließlich kann
der CMPS-Designer wählen,
dass das CMPS 2302 Prüfweg-Informationen
erzeugt, die an eine Clearinghaus-Behörde über einen CMPS-Seitenkanalport 2318 oder
als verschlüsselter Inhalt,
der in den MPEG-4 Bitstrom gepackt wurde, gesendet werden können.
-
Die
MPEG-4 v1 Systems CD verwendet den Begriff "Objekt" locker. In diesem Dokument wird "Objekt" verwendet, um speziell
eine Datenstruktur zu bezeichnen, die aus einem oder mehreren der
Datenpfade in 23 fließt.
-
Die
Verwendung mehrfacher SD-Graphen-Aktualisierungsströme, jeweils
mit ihrem eigenen CMPO, ermöglicht
dem Autor, an dem SD-Graphen willkürlich spezifische Kontrollen
anzuwenden. Beispielsweise kann jeder Knoten in dem SD-Graphen von
einem separaten SD-Graphen-Aktualisierungsstrom erzeugt oder modifiziert
werden. Jeder dieser Ströme
wird ein eigenes CMPO und eine eigene ID haben. So kann das CMPS
die Erzeugung und Modifizierung jedes Knoten freigeben und entschlüsseln und
Rückkopplungsinformationen
für jeden
Knoten einzeln empfangen. Die praktischen Implikationen zur Kontrolle
der Freigabe und zum Implementieren von Konsequenzen sollten damit
vergleichbar sein, auf jedem Knoten des SD-Graphen ein CMPO zu haben,
ohne die Kosten für
ein Vorhandensein eines CMPO auf jedem SD-Graphen-Knoten.
-
Grundprinzipien
gemäß der vorliegenden
Erfindung können
anhand der folgenden Beispiele aufgezeigt werden:
Im ersten
Beispiel handelt es sich um ein zweisprachiges Video mit englischem
oder französischem Soundtrack.
Der Benutzer kann während
der Wiedergabe auswählen,
ob er Englisch oder Französisch hören möchte. Die
Basisdarstellung kostet $1. Wenn der französische Soundtrack wiedergegeben
wird, gibt es einen Aufschlag von $ 0,50. Wenn der Benutzer zwischen
Französisch
und Englisch hin- und herschaltet, während eines einzigen Sehens
der Präsentation,
wird der Aufschlag von $ 0.50 nur einmal berechnet.
-
In
diesem Beispiel wird es vier elementare Ströme geben:
Der Szenebeschreibungs-Graphen-Aktualisierungsstrom
wird ein CMPO haben. Das CMPO bedeutet ein Gebühr von $ 1.00, die der Benutzung
des Inhalts zugeordnet ist. Der Szene-Beschreibungs-Graph zeigt
das Video, englisches Audio und sieht einen Knopf vor, der dem Benutzer
ermöglicht,
auf Französisch
umzuschalten. Wenn der Benutzer auf diesen Knopf drückt, stoppt
das Englisch, das Französisch fährt ab dieser
Stelle fort, und der Knopf ändert
sich zu einem Knopf zum Umschalten auf Englisch. (Optional kann
ein kleiner Dialog am Beginn vorhanden sein, um den Benutzer zu
gestatten, die ursprüngliche
Sprache auszuwählen.
Dies kann alles einfach im SD-Graphen gemacht werden.)
-
Der
Video-Strom mit dem CMPO wird sagen, dass er nur freigegeben werden
kann, wenn der obige Szene-Beschreibungs-Graphen-Aktualisierungsstrom
freigegeben wird.
-
Der
englische Audio-Strom wird ähnlich
dem Video-Strom sein.
-
Der
französische
Audio-Strom wird ähnlich dem
Video-Strom sein, aber es kommt zu einer Gebühr von $ 0.50, wenn er im Rückkopplungskanal
gesehen wird. (Das CMPS darf nicht zweimal zählen, wenn der Benutzer zwischen
den beiden in einer einzigen Wiedergabe der Darstellung hin- und
herschaltet.)
-
Eine
wichtige Voraussetzung ist, dass die ID für den SD-Graphen-Aktualisierungsstrom
in dem Rückkopplungspfad
auftaucht (z. B. Rückkopplungspfad 2313).
Dadurch weiß das
CMPS 2302, wann die Darstellung stoppt und endet, so dass
das CMPS 2302 für
das französische
Audio korrekt abrechnen kann.
-
Die
Regeln, die die Freigabe der Video- und Audio-Ströme regeln,
können
einige Variationen enthalten. Die Regeln für diese Ströme können beispielsweise etwas angeben
wie "wenn sie nicht
die ID für
den Szene-Beschreibungs-Graphen-Aktualisierungsstrom X im Rückkopplungskanal
sehen, stoppen sie die Freigabe dieses Stroms". Wenn die Hauptdarstellung nicht auf
der Anzeige ist, dann sollte es das Video nicht sein. Dies bindet
das Video an diese eine Darstellung. Die Verwendung des Videos in
einer anderen Darstellung würde
den Zugriff auf das originale Video und nicht nur auf diese geschützte Version
desselben erfordern.
-
In
einem zweiten Beispiel möchte
ein Autor eine Darstellung mit einer gebührenfreien Eröffnungssequenz
oder "Trailer". Wenn der Benutzer
den richtigen Knopf drückt,
bewegt sich das System in eine gebührenpflichtige Darstellung,
die als ein Satz aus "Akten" organisiert ist.
-
Mehrfache
SD-Graphen-Aktualisierungsströme
können
einen Szenengraphen aktualisieren. Mehrere SD-Graphen-Aktualisierungsströme können parallel
geöffnet
sein. Die Zeitstempel auf den ALUs in den Strömen werden zum Synchronisieren
und Koordinieren verwendet.
-
Der
Trailer und jeder Akt werden von einem separaten SD-Graphen-Aktualisierungsstrom
mit einem separaten CMPO dargestellt. Wahrscheinlich ist ein zusätz licher
SD-Graphen-Aktualisierungsstrom vorhanden, der einen einfachen Wurzelknoten
erzeugt, der unsichtbar und leise ist. Dieser Knoten bringt je nach
Bedarf die anderen Komponenten der Darstellung ein.
-
Die
vorstehende Beschreibung von Ausführungen der Erfindung wurde
zur Veranschaulichung und Beschreibung dargelegt. Sie ist nicht
erschöpfend
und schränkt
die Erfindung nicht auf die genau offenbarte Form ein. Modifizierungen
und Variationen sind angesichts der obigen Lehren möglich oder
können
sich aus der Umsetzung der Erfindung ergeben. Beispielsweise umfasst
die beschriebene Ausführung
Software, jedoch kann die vorliegende Erfindung als Kombination
aus Hardware und Software und in Hardware allein umgesetzt werden.
Die Erfindung kann mit objekt-orientierten und nicht-objekt-orientierten
Programmiersystemen umgesetzt werden. Der Schutzumfang der Erfindung
wird durch die Ansprüche
und deren Äquivalente
definiert.