DE60314062T2 - Schutz für Header-Objekte in Datenströmen - Google Patents

Schutz für Header-Objekte in Datenströmen Download PDF

Info

Publication number
DE60314062T2
DE60314062T2 DE60314062T DE60314062T DE60314062T2 DE 60314062 T2 DE60314062 T2 DE 60314062T2 DE 60314062 T DE60314062 T DE 60314062T DE 60314062 T DE60314062 T DE 60314062T DE 60314062 T2 DE60314062 T2 DE 60314062T2
Authority
DE
Germany
Prior art keywords
region
sub
digital
signature
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60314062T
Other languages
English (en)
Other versions
DE60314062D1 (de
Inventor
Daniel Adent
Cory West
Pratul Dublish
Clifford P. Strom
Brian D. Sammamish Crites
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60314062D1 publication Critical patent/DE60314062D1/de
Publication of DE60314062T2 publication Critical patent/DE60314062T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Circuits Of Receivers In General (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Datenverifizierung und im Speziellen auf ein Header-Objekt (Kopfobjekt) für eine Datendatei.
  • Hintergrund der Erfindung
  • Normalerweise schließen einige Datendateien und Datenstromformate Header-Objekte ein. Die Header-Objekte schließen "Meta-Inhalt"-Informationen (meta content information) ein, die zur Identifizierung und Verwendung der Inhaltsdaten, die in der Datendatei oder dem Datenstrom eingeschlossen sind, verwendet werden.
  • Zum Beispiel ist ein Datenstromformat das verbesserte Streaming-Format (Advanced Streaming Format – ASF), welches ein erweiterbares Dateiformat ist, das zum Speichern aufeinander abgestimmter Multimediadaten entwickelt wurde. Die derzeitige Spezifikation für dieses Format ist unter www.microsoft.com verfügbar. ASF unterstützt die Datenlieferung über eine breite Vielfalt an Netzwerken und Protokollen, während es ein lokales Abspielen erlaubt.
  • Jede ASF-Datei setzt sich aus einem oder mehreren Medienströmen zusammen. Das Header-Objekt bestimmt die Eigenschaften der gesamten Datei zusammen mit Datenstrom-spezifischen Eigenschaften. In ASF muss jede Datei ein Header-Objekt haben. Das Header-Objekt bietet am Anfang der ASF-Dateien eine wohl bekannte Byte-Sequenz (die Header-Objekt-GUID (globally unique identifier – globaler eindeutiger Indentifizierer)) und enthält alle Informationen, die benötigt werden, um die Multimediadaten richtig zu interpretieren. Das Header-Objekt kann als ein Container gedacht werden, der Header-Objektinformationen und eine Kombination von Header-Unterobjekten enthält. Die Header-Objektinformationen bestehen aus einem GUID für das Header-Objekt ("ASF_Header_Object"), der Größe des Header-Objekts und der Anzahl an Header-Unterobjekten, die in dem Header-Objekt enthalten sind. Jedes Header-Objekt fängt mit einer GUID an.
  • Header-Unterobjekte schließen ein:
    • • ein Dateieigenschaftsunterobjekt, welches die globalen Charakteristiken der Multimediadaten in der Datei definiert;
    • • ein Datenstromeigenschaftenunterobjekt, welches die bestimmten Eigenschaften und Charakteristiken eines Mediendatenstroms definiert;
    • • das Header-Erweiterungsunterobjekt, welches das Hinzuzufügen zusätzlicher Funktionalität zu einer ASF-Datei erlaubt, während eine Rückwärtskompatibilität aufrecht erhalten wird, und ein Container ist, der erweiterte Header-Unterobjekte enthält;
    • • das Codec-Listenunterobjekt, welches benutzerfreundliche Informationen über die Codecs und Formate bereitstellt, die zum Codieren des Inhalts, der in der ASF-Datei gefunden wird, verwendet werden;
    • • das Skript-Befehlsunterobjekt, welches eine Liste mit Typ-/Parameter-Paaren aus Unicode-Zeichenfolgen bereitstellt, die zu der Zeitachse der ASF-Datei synchronisiert sind;
    • • Das Markierungszeichenunterobjekt, welches einen kleinen spezialisierten Index enthält, der verwendet wird, um benannte Sprungpunkte (jump points) innerhalb einer Datei bereit zu stellen, um es einem Inhaltsautor zu erlauben, den Inhalt in logische Abschnitte zu unterteilen, wie zum Beispiel Liedabgrenzungen in einer gesamten CD oder Themenveränderungen während einer langen Präsentation, und um, für die Verwendung durch den Benutzer, jedem Abschnitt einer Datei einen vom Menschen lesbaren Namen zuzuweisen;
    • • das gegenseitige Bitratenausschlussunterobjekt (bitrate mutual exclusion subobject), welches Videodatenströme identifiziert, die eine gegenseitige Ausschlussbeziehung zueinander haben (mit anderen Worten, nur einer der Datenströme innerhalb solch einer Beziehung kann herunter geladen (streamed) werden und die Reste werden ignoriert);
    • • das Fehlerkorrekturunterobjekt, welches das Fehlerkorrekturverfahren definiert und Informationen bereit stellt, die durch die Fehlerkorrekturmaschine (engine) zur Wiederherstellung benötigt werden;
    • • das Inhaltbeschreibungsunterobjekt, welches Autoren erlaubt, gut bekannte Daten, die die Datei und ihre Inhalte beschreiben, aufzuzeichnen, einschließlich Titel, Autor, Copyright, Beschreibung und Bewertungsinformation;
    • • das erweiterte Inhaltsbeschreibungsunterobjekt, welches Autoren erlaubt, Daten, die die Datei und ihre Inhalte beschreiben, die über die normalen bibliographischen Informationen, wie zum Beispiel, Autor, Copyright, Beschreibung oder Bewertungsinformation hinaus gehen, aufzuzeichnen;
    • • das Inhalteverschlüsselungsunterobjekt, welches identifiziert, ob der Inhalt durch ein digitales Rechtemanagementsystem (DRM-System) geschützt ist. Dieses Unterobjekt schließt die DRM-Lizenzbeschaffungs-URL, die DRM-Schlüssel-ID und andere DRM-bezogene Meta-Daten ein.
    • • Das Datenstrom-Bitrateneigenschaftenunterobjekt, welches die durchschnittliche Bitrate von jedem Mediendatenstrom in den Multimediadaten definiert;
    • • ein Füllunterobjekt (padding subobject), welches ein Blind-Unterobjekt (dummy sub-object) ist, das verwendet wird, um die Größe des Header-Objekts auszufüllen.
  • Die Einheit, die die Datenstromdatei zuerst erzeugt, und irgendwelche nachfolgenden Einheiten, die darauf einwirken, können der Header-Datei Elemente hinzufügen oder sie verändern. Zum Beispiel kann eine inhalterzeugende Einheit eine Datenstromdatei erzeugen und Informationen in das Inhaltbeschreibungsobjekt bezüglich des Inhalts einschließen. Eine zweite Einheit kann Markierungsstellen innerhalb der Daten erzeugen und wünschen, ein Markierungsobjekt mit Spurinformationen (track information) hinzuzufügen. Und eine dritte Einheit, welche die Datenstromdatei vertreibt, kann ein Skript-Befehlsobjekt, das Vorgänge oder Daten für Skripte enthält, hinzufügen. Zum Beispiel kann ein Skript-Befehlsobjekt Informationen enthalten, die ein Webbrowserfenster zu einer bestimmten URL (uniform resource locator – Internetadresse) öffnet.
  • Weil eine Anzahl von Einheiten auf eine ASF-Datei einwirken kann, gibt es keine Möglichkeit zu ermitteln, welche Einheit welchen Teil des Header-Objekts erzeugt hat. Zusätzlich kann eine Veränderung der Information durch einen Angreifer (attacker) nicht identifiziert werden.
  • Eastlake D. et al., "(Extensible Markup Language) XML – Signature Syntax and Processing", RFC 3275, März 2003, spezifiziert digitale Signatur-Verarbeitungsregeln und eine -Syntax für XML (Extensible Markup Language). Digitale XML-Signaturen werden darin durch das Signaturelement dargestellt, dessen Struktur das erforderliche SignedInfo-Element und einen SignaturValue (Signaturwert) einschließt. Das SignedInfo-Element ist die Information, die tatsächlich signiert wird. Das SignedInfo-Element schließt mindestens ein Referenzelement ein, welches des Weiteren das Extrahierungsverfahren (digest method) und den resultierenden Extrahierungswert (digest value), der über ein identifiziertes Datenobjekt berechnet wird, einschließt. Ein anderes Element, das in dem SignedInfo-Element eingeschlossen ist, ist das SignaturMethod (Signaturverfahren), welches der Algorithmus ist, der verwendet wurde, um das kanonisierte (canonicalized) SignedInfo in das SignatureValue zu konvertieren. Deshalb wird eine XML-Signatur auf einen beliebigen digitalen Inhalt (Datenobjekte) über einen Umweg angewandt. Datenobjekte werden kurzgefasst (digested), der resultierende Wert wird in ein Element zusammen mit anderen Informationen platziert und das Element wird dann kurzgefasst (digested) und kryptographisch signiert. Die Kernvalidierung schließt deshalb eine Referenzvalidierung und die kryptographische Signaturvalidierung der Signatur, die über SignedInfo berechnet wurde, ein.
  • Kurzfassung der Erfindung
  • Es ist die Aufgabe der Erfindung Sicherheit und Flexibilität von Datenstromdateien bereitzustellen und das Entfernen oder Verändern von Daten zu vermeiden.
  • Diese Aufgabe wird durch die Erfindung wie in den unabhängigen Ansprüchen beansprucht gelöst.
  • Bevorzugte Ausführungsformen sind durch die abhängigen Ansprüche definiert.
  • Die vorliegende Erfindung ist auf ein System, Verfahren und Datenstruktur für die Verifizierung von Unterobjekten in einem Header-Objekt gerichtet. Die Erfindung gewährleistet durch eine Einheit eine Verifizierung von einem oder mehreren Unterobjekten in dem Header-Objekt, während sie weiterhin das Ändern der Reihenfolge der Unterobjekte erlaubt. Neue Unterobjekte können ebenso anschließend durch eine andere Einheit erzeugt und verifiziert werden. Die Verifizierung von zwei oder mehr Unterobjekten durch eine vertrauenswürdige Einheit kann kombiniert werden, so dass ein Angreifer Daten nicht entfernen oder verändern kann, wobei es ein Unterobjekt verifizierbar lässt, indem es durch die vertrauenswürdige Einheit signiert worden ist, während das andere Unterobjekt nicht verifizierbar ist.
  • Zusätzliche Merkmale und Vorteile der Erfindung werden in der unten liegenden Beschreibung dargelegt.
  • Kurze Beschreibung der Figuren
  • 1 ist ein Diagramm, das einen Überblick über ein Computersystem darstellt.
  • 2 ist ein Blockdiagramm, das eine Datei gemäß der Erfindung darstellt.
  • 3 stellt den Prozess des Erzeugens eines digitalen Signaturunterobjekts gemäß der Erfindung dar.
  • 4 stellt den Prozess des Verifizierens eines digitalen Signaturunterobjekts gemäß der Erfindung dar.
  • 5 stellt ein digitales Signaturunterobjekt gemäß der Erfindung dar.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen:
  • Überblick
  • Ein oder mehrere digitale Signaturunterobjekte können erzeugt werden und in das Header-Objekt einer Datendatei platziert werden, um Signaturinformation für Unterobjekte und Regionen von Unterobjekten in dem Header-Objekt vorzusehen. Wenn ein digitales Signaturunterobjekt vorhanden und gültig ist, kann jegliche Bearbeitung oder Verfälschung in den signierten Unterobjekten erkannt werden. Eine Reihenfolge der Unterobjekte braucht nicht bewahrt zu werden.
  • Das digitale Signaturunterobjekt enthält ein Array mit Regionsspezifizierern. Jeder Regionsspezifizierer identifiziert eine bestimmte Region innerhalb eines Unterobjekts. Ein Regionsspezifizierer kann ebenso ein gesamtes Unterobjekt identifizieren.
  • Das digitale Signaturunterobjekt enthält ebenfalls eine Signatur. Die Signatur ist eine digitale Signatur der Regionen, die in dem Array mit Regionsspezifizierern aufgelistet sind. Die Signatur kann verwendet werden, um zu verifizieren, dass die Regionen, die in dem Regionsspezifizierer-Array aufgelistet sind, nicht verfälscht worden sind.
  • Beispielhafte Computerumgebung
  • 1 stellt ein Beispiel einer geeigneten Computersystemumgebung 100 dar, in der die Erfindung implementiert werden kann. Die Computersystemumgebung 100 ist nur ein Beispiel einer geeigneten Computerumgebung, und ist nicht gedacht, irgendwelche Einschränkungen bezüglich des Umfangs der Verwendung oder Funktionalität der Erfindung vorzuschlagen. Noch sollte die Computerumgebung 100 interpretiert werden, als hätte sie irgendwelche Abhängigkeiten oder Erfordernisse mit Bezug auf irgendeine oder eine Kombinationen von Komponenten, die in der exemplarischen Arbeitsumgebung 100 dargestellt sind.
  • Der gewöhnliche Fachmann kann verstehen, dass ein Computer oder ein anderes Client- oder Server-Gerät als Teil eines Computernetzwerkes oder in einer verteilten Computerumgebung eingesetzt werden kann. In diesem Zusammenhang betrifft die vorliegende Erfindung irgendein Computersystem, das irgendeine Anzahl von Speicher- oder Datenspeichereinheiten und irgendeine Anzahl von Anbindungen und Prozessen, die über irgendeine Anzahl von Speichereinheiten oder Volumina, die in Verbindung mit der vorliegenden Erfindung verwendet werden können, aufweist. Die vorliegende Erfindung kann auf eine Umgebung mit Servercomputern und Clientcomputern angewandt werden, die in einer Netzwerkumgebung oder verteilten Computerumgebung, die Remote- oder lokalen Speicher aufweist, eingesetzt werden. Die vorliegende Erfindung kann ebenso auf allein stehende Computergeräte angewandt werden, die Programmiersprachenfunktionalität, -interpretation und Ausführungsfähigkeiten zum Erzeugen, Empfangen und Übermitteln von Informationen in Verbindung mit Remote- oder lokalen Services aufweisen.
  • Die Erfindung ist mit einer Vielzahl von Allzweck- oder Spezialzweckcomputersystemumgebungen oder -konfigurationen betriebsbereit. Beispiele von gut bekannten Computersystemen, Umgebungen und/oder Konfigurationen, die zur Verwendung mit der Erfindung geeignet sein können, schließen ein, sind aber nicht darauf begrenzt, Personalcomputer, Servercomputer, tragbare oder Laptop-Geräte, Multiprozessorsysteme, Mikroprozessor-basierte Systeme, Set Top Boxen, programmierbare Unterhaltungselektro niken, Netzwerk-PCs, Minicomputer, Mainframe-Computer, verteilte Computerumgebungen, die irgendeines der oben genannten Systeme oder Geräte einschließen, und ähnliches.
  • Die Erfindung kann im allgemeinen Kontext von computerausführbaren Instruktionen beschrieben werden, wie zum Beispiel Programmmodulen, die durch einen Computer ausgeführt werden. Im Allgemeinen schließen Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen, etc. ein, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Erfindung kann ebenso in verteilten Computerumgebungen praktiziert werden, wo Aufgaben durch remoteverarbeitende Geräte, die durch ein Kommunikationsnetzwerk oder anderes Datenübertragungsmedium miteinander verbunden sind, ausgeführt werden. In einer verteilten Computer-Umgebung können Programmmodule und andere Daten sowohl in lokalen als auch Remote-Computerspeicherdatenträgern, einschließlich Datenspeichergeräten, liegen. Verteilte Computer ermöglichen die Mitbenutzung von Computerressourcen und Services durch direkten Austausch zwischen den Computergeräten und Systemen. Diese Ressourcen und Services schließen den Austausch von Informationen, Cache-Speicher und Disk-Speicher für Dateien ein. Verteilte Computer ziehen den Vorteil aus Netzwerkkonnektivität, die es Clients erlaubt, ihre gemeinsame Stärke wirksam einzusetzen, um dem gesamten Unternehmen zu nutzen. Diesbezüglich kann eine Vielfalt von Geräten Anwendungen, Objekte oder Ressourcen aufweisen, die die Techniken der vorliegenden Erfindung benutzen.
  • Mit Bezug auf 1 schließt ein exemplarisches System zum Implementieren der Erfindung ein Allzweckcomputergerät in der Form eines Computers 110 ein. Komponenten des Computers 110 können einschließen, sind aber nicht darauf begrenzt, eine Prozessoreinheit 120, einen Systemspeicher 130 und einen Systembus 121, der verschiedene Systemkomponenten koppelt, einschließlich dem Systemspeicher mit der Prozessoreinheit 120. Der Systembus 121 kann irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem Speicherbus oder Speicherkontroller, einem Peripheriebus und einem lokalen Bus, der irgendeine von einer Vielfalt von Busarchitekturen verwendet. Als Beispiel, und nicht Einschränkung, schließen solche Architekturen Industry-Standard-Architecture-Bus (ISA-Bus), Micro-Channel-Architecture-Bus (MCA-Bus), Enhanced-ISA-Bus (EISA-Bus), Video-Electronics-Standards-Association-Local-Bus (VE-SA-local-Bus) und Peripheral-Component-Interconnect-Bus (PCI-Bus) (ebenso als Mezzanine-Bus bekannt) ein.
  • Der Computer 110 schließt üblicherweise eine Vielfalt von computerlesbaren Datenträgern ein. Die computerlesbaren Datenträger können irgendwelche von verfügbaren Datenträgern sein, auf die durch den Computer 110 zugegriffen werden kann, und die sowohl flüchtige als auch nicht-flüchtige Datenträger, entfernbare und nicht-entfernbare Datenträger einschließen. Als Beispiel, und nicht Einschränkung, können solche computerlesbaren Datenträger Computerspeicherdatenträger und Kommunikationsdatenträger umfassen. Computerspeicherdatenträger schließen sowohl flüchtige als auch nicht-flüchtige, entfernbare als auch nicht-entfernbare Datenträger ein, die in irgendeinem Verfahren oder einer Technologie zur Speicherung von Informationen implementiert sind, wie zum Beispiel computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten. Computerspeicherdatenträger schließen ein, sind aber nicht darauf begrenzt, RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, digital-versatile-disks (DVD) oder andere optische Disk-Speicher, magnetische Kassetten, magnetische Bänder, magnetisch Disk-Speicher oder andere magnetische Speichergeräte oder irgendeinen anderen Datenträger, der verwendet werden kann, um die gewünschten Informationen zu speichern und auf den durch Computer 110 zugegriffen werden kann. Kommunikationsdatenträger enthalten üblicherweise computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie zum Beispiel einer Trägerwelle oder anderem Transportmechanismus und schließen irgendwelche Informationslieferdatenträger ein. Der Begriff "moduliertes Datensignal" meint ein Signal, das eine oder mehrere seiner Charakteristiken gesetzt oder in solch einer Weise verändert hat, um Informationen in dem Signal zu kodieren. Als Beispiel und nicht Einschränkung, schließen Kommunikationsdatenträger verkabelte Datenträger, wie zum Beispiel ein verkabeltes Netzwerk oder eine direktverkabelte Verbindung, und kabellose Datenträger, wie zum Beispiel akustische, RF-, infrarote oder andere kabellose Datenträger ein. Kombinationen von irgendwelchen der oben genannten sollten ebenso in dem Umfang der computerlesbaren Datenträger eingeschlossen sein.
  • Der Systemspeicher 130 schließt Computerspeicherdatenträger in der Form von flüchtigem und/oder nicht-flüchtigem Speicher ein, wie zum Beispiel read only memory (ROM) 131 und random access memory (RAM) 132. Ein Basic-input/output-System 133 (BIOS) enthält die Basisroutinen, die helfen, Informationen zwischen Elementen innerhalb des Computers 110 zu übertragen, zum Beispiel während des Hochfahrens, und ist üblicherweise in dem ROM 131 gespeichert. RAM 132 enthält üblicherweise Daten und/oder Programmmodule, auf die sofort durch die Prozessoreinheit 120 zugegriffen werden kann und/oder auf denen die Prozessoreinheit 120 derzeit arbeitet. Als Beispiel, und nicht Einschränkung, stellt 1 ein Betriebssystem 134, Anwendungsprogramme 135, andere Programmmodule 136 und Programmdaten 137 dar.
  • Der Computer 110 kann ebenso andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeicherdatenträger einschließen. Nur als Beispiel stellt 1 ein Festplattenlaufwerk 140, das von oder zu nicht-entfernbaren, nicht-flüchtigen magnetischen Datenträgern liest oder schreibt, ein magnetisches Disk-Laufwerk 151, das von oder zu einer entfernbaren, nicht-flüchtigen magnetischen Disk 152 liest oder schreibt, und ein optisches Disk-Laufwerk 155, das von oder zu einer entfernbaren, nicht-flüchtigen optischen Disk 156, wie zum Beispiel einer CD-ROM oder einem anderen optischen Datenträger liest oder schreibt, dar. Andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeicherdatenträger, die in der exemplarischen Arbeitsumgebung verwendet werden können, schließen ein, sind aber nicht darauf begrenzt, magnetische Bandkassetten, Flash-Speicherkarten, digital-versatile-disks, digitale Videobänder, solid-state-RAM, solid-state-ROM und ähnliches. Das Festplattenlaufwerk 141 ist üblicherweise mit dem Systembus 121 durch eine Schnittstelle für nicht-entfernbaren Speicher, wie zum Beispiel Schnittstelle 140, verbunden, und das magnetische Disk-Laufwerk 151 und optische Disk-Laufwerk 155 sind üblicherweise mit dem Systembus 121 durch eine Schnittstelle für entfernbaren Speicher, wie zum Beispiel Schnittstelle 150, verbunden.
  • Die Laufwerke und ihre zugehörigen Computerspeicherdatenträger, die oberhalb diskutiert und in 1 dargestellt sind, bieten Speicher für computerlesbare Instruktionen, Datenstrukturen, Programmmodule und andere Daten für den Computer 110. In 1 zum Beispiel ist das Festplattenlaufwerk 140 so dargestellt, dass das Betriebssystem 144, Anwendungsprogramme 145, andere Programmmodule 146 und Programmdaten 147 speichert. Es wird angemerkt, dass diese Komponenten entweder die selben oder verschieden von dem Betriebssystem 134, Anwendungsprogrammen 135, anderen Programmmodulen 136 und Programmdaten 137 sein können. Dem Betriebssystem 144, Anwendungsprogrammen 145, anderen Programmmodulen 146 und Programmdaten 147 sind hier unterschiedliche Nummern gegeben worden, um darzustellen, dass sie mindestens unterschiedliche Kopien sind. Ein Benutzer kann Befehle und Informationen in den Computer 20 durch Eingabegeräte, wie zum Beispiel eine Tastatur 162 und Zeigergerät 161, allgemein als Mause, Trackball oder Touchpad bezeichnet, eingeben. An dere Eingabegeräte (nicht gezeigt) können ein Mikrophon, Joystick, Gamepad, Satellitenschüssel, Scanner oder ähnliches einschließen. Diese und andere Eingabegeräte sind oft mit der Prozessoreinheit 120 durch eine Benutzereingabeschnittstelle 160 verbunden, die mit dem Systembus gekoppelt ist, können aber durch andere Schnittstellen oder Busstrukturen, wie zum Beispiel einem Parallelanschluss, Gameport oder einem Universal Serial Bus (USB) verbunden sein. Ein Monitor 191 oder anderer Typ von Anzeigegerät kann ebenso mit dem Systembus 121 über eine Schnittstelle, wie zum Beispiel einer Videoschnittstelle 190, verbunden sein. Zusätzlich zu dem Monitor können Computer ebenso andere periphere Ausgabegeräte einschließen, wie zum Beispiel Lautsprecher 197 und Drucker 196, welche durch eine Ausgabeperipherieschnittstelle 190 verbunden sind.
  • Der Computer 110 kann in einer Netzwerkumgebung unter Verwendung logischer Verbindungen zu einem oder mehreren Remote-Computern, wie zum Beispiel einem Remote-Computer 180, arbeiten. Der Remote-Computer 180 kann ein Personal-Computer, Server, Router, Netzwerk-PC, ein Peer-Gerät oder anderer bekannter Netwerkknoten sein, und schließt üblicherweise viele oder alle der oben mit Bezug auf Computer 110 beschriebenen Elemente ein, obwohl nur ein Datenspeichergerät 181 in 1 dargestellt worden ist. Die logischen Verbindungen, die in 1 gezeigt sind, schließen ein Local-Area-Network (LAN) 171 und ein Wide-Area-Network (WAN) 173 ein, können aber auch andere Netzwerke einschließen. Solche Netzwerkumgebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn er in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 110 mit dem LAN 171 durch eine Netzschnittstelle oder -adapter 170 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Computer 110 üblicherweise ein Modem 172 oder andere Mittel zum Herstellen von Datenübertragungen über das WAN 173, wie zum Beispiel dem Internet, ein. Das Modem 172, welches intern oder extern sein kann, kann mit dem Systembus 121 über die Benutzereingabeschnittstelle 160 oder einen anderen passenden Mechanismus verbunden sein. In einer Netzwerkumgebung können Programmmodule, die mit Bezug auf Computer 110 gezeigt sind, oder Teile davon, in dem Remote-Datenspeichergerät gespeichert sein. Als Beispiel, und nicht Einschränkung, stellt 1 Remote-Anwendungsprogramme 185 so dar, dass sie auf dem Speichergerät 181 liegen. Es wird begrüßt, dass die gezeigten Netzwerkverbindungen exemplarisch sind und andere Mittel zum Herstellen einer Datenübertragungsverbindung zwischen den Computern verwendet werden können.
  • Digitale Signaturunterobjekte
  • Wo ein Header-Objekt Unterobjekte und Regionen von Unterobjekten, die, gemäß der Erfindung, geschützt werden müssen, einschließt, kann ein digitales Signaturunterobjekt zu dem Header hinzugefügt werden, um eine Verifizierung zu erlauben, dass die Unterobjekte und Regionen, die signiert sind, nicht verfälscht worden sind. Dieses digitale Signaturunterobjekt kann auf irgendeinem digitalen Signierungsalgorithmus basieren, der als Eingabe irgendwelche Daten nimmt und eine Signatur erzeugt, die später verifiziert werden kann. In einer Ausführungsform ist der verwendete Algorithmus der RSA-Algorithmus. In einer anderen Ausführungsform wird der elliptische Kurvenalgorithmus (elliptic curve algorithm) verwendet. Andere Ausführungsformen können andere Signaturalgorithmen verwenden.
  • Bezugnehmend auf 2 enthält die Datei 200 ein Header-Objekt 210. Zusätzlich zu den Header-Informationen 215 enthält das Header-Objekt 210 ein Dateieigenschaftsunterobjekt 220, ein Datenstromeigenschaftenunterobjekt 230, ein Skriptbefehlsunterobjekt 240 und Inhaltsbeschreibungsunterobjekt 250. Inhaltsbeschreibungsunterobjekt 250 enthält Informationen über den Titel 252, Autor 254, Copyright 256 und Beschreibung 258 des Inhalts. Das Skriptbefehlsunterobjekt 240 enthält eine URL 245. Die Datei 200 enthält ebenso ein Datenobjekt 290. Diese Figur ist exemplarisch und es wird erkannt werden, dass andere, als die gezeigten, Kombinationen von Unterobjekten in dem Header-Objekt vorhanden sein können.
  • Eine Einheit kann eine Verfälschung von Teilen des Header-Objekts 210 durch das Hinzufügen eines digitalen Signaturunterobjekts 260 verhindern. Das digitale Signaturunterobjekt 260 enthält ein Regionsspezifizierer-Array 264 und eine Signatur 266. In einer Ausführungsform enthält das digitale Signaturunterobjekt 260 auch Unterzeichnerinformationen 268. In einer Ausführungsform enthalten die Unterzeichnerinformationen 268 ein oder mehrere Zertifikate, welche verwendet werden können, um die Signatur 266 sicher zu verifizieren.
  • Der Prozess zum Erzeugen eines digitalen Signaturunterobjekts ist in 3 gezeigt. Wie es in Schritt 310 gezeigt ist, entscheidet die Einheit, welche der einen oder mehreren Regionen der Header-Unterobjekte es signieren wird, und ermittelt die Regionsspezifizierer für diese Regionen. Zum Beispiel, mit Bezug auf 2, können die zu signierenden Regionen das Skriptbefehlsunterobjekt 230 und die Titel-, Autor- und Copyright-Abschnitte des Inhaltbeschreibungsunterobjekts 250 einschließen. Wieder Bezug neh mend auf 3 wird in Schritt 320 das Regionsspezifizierer-Array 264 (aus 2) erzeugt. In Schritt 330 werden die Regionen, die in dem Regionsspezifizierer-Array 264 spezifiziert sind, zusammen mit dem Regionsspezifizierer-Array 264 verkettet (in der Reihenfolge, in der sie in dem Regionsspezifizierer-Array 264 spezifiziert sind). Diese Region wird anschließend signiert 340, um die Signatur 266 (aus 2) zu erzeugen.
  • Wenn eine Datei, die ein Header-Objekt einschließlich einem digitalen Signaturunterobjekt enthält, verändert wird, kann die Reihenfolge der Unterobjekte verändert werden und zusätzliche Unterobjekte können eingefügt werden. Wenn zusätzliche Regionen oder Unterobjekte verifiziert werden müssen, kann ein neues digitales Signaturunterobjekt hinzugefügt werden.
  • Mit Bezug auf 2 werden, um die Verifizierung des Header-Objekts 210 zu überprüfen, das digitale Signaturunterobjekt 260 und die Regionen, die in dem Regionsspezifizierer-Array 264 spezifiziert sind, verwendet. Wie es in 4 gezeigt ist, Schritt 410, werden die Header-Unterobjektsregionen, die in dem Regionsspezifizierer-Array 264 (aus 2) spezifiziert sind, identifiziert. In Schritt 42C werden diese Regionen zusammen mit dem Regionsspezifizierer-Array 264 verkettet (in der Reihenfolge, in der sie in dem Regionsspezifizierer-Array 264 spezifiziert sind). In Schritt 430 wird die Signatur 266 (aus 2) überprüft, um zu ermitteln, ob es eine gültige Signatur für die Verkettung ist.
  • In einer Ausführungsform der Erfindung können sowohl Regionen mit Unterobjekten und vollständige Unterobjekte unter Verwendung des digitalen Signaturunterobjekts signiert werden. In einer anderen Ausführungsform können nur vollständige Unterobjekte signiert werden. In einer Ausführungsform der Erfindung kann mehr als eine Region von einem einzelnen Unterobjekt in einem digitalen Signaturunterobjekt signiert werden. In einer Ausführungsform der Erfindung können die Regionen von einem Unterobjekt, das signiert ist, überlappen.
  • In einer Ausführungsform der Erfindung muss jedes Header-Objekt mindestens ein digitales Signaturunterobjekt enthalten. Wenn das Header-Objekt kein digitales Signaturunterobjekt enthält, wenn eines erwartet wird, dann kann davon ausgegangen werden, dass das Header-Objekt verfälscht worden ist. Wenn das Header-Objekt ein digitales Signaturunterobjekt enthält, das nicht korrekt verifiziert werden kann oder es nicht von einer vertrauenswürdigen Quelle stammt, kann die Einheit, die die Datei empfängt, die das Header-Objekt enthält, entsprechend verfahren, zum Beispiel, in einer Implementa tion, durch das Nichtverwenden der Datei. Gemäß dieser Ausführungsform wird eine Überprüfung durchgeführt, um zu sehen, ob irgendein digitales Signaturunterobjekt existiert. Wenn keines existiert, dann schlägt die Verifizierung fehl. Wenn Unterobjekte existieren, wird jedes überprüft, um zu einem Verifizierungsergebnis zu führen.
  • In einer Ausführungsform kann irgendeine Datei F, die eine Sammlung von Objekten O1, O2, ... On ist, gemäß der Erfindung signiert sein. Ein neues Objekt ODS wird erzeugt, welches ein Regionsspezifizierer-Array, das die Objekte oder Regionen von Objekten, die signiert sind, spezifiziert, und eine Signatur für jene Objekte und das Array einschließt.
  • Exemplarische ASF-Implementation
  • In einer Ausführungsform ist die Datei eine ASF-Datei. Die Komponenten eines digitalen Signaturunterobjekts für eine ASF-Datei sind in einer Ausführungsform in 5 gezeigt. Das digitale Signaturunterobjekt 500 schließt eine GUID 510 ein. Jedes Objekt und Unterobjekt in einer ASF-Datei beginnt mit einer GUID. GUIDs werden verwendet, um alle Objekttypen innerhalb von ASF-Dateien eindeutig zu identifizieren. Jeder ASF-Objekttyp hat seine eigene eindeutige GUID. Jedoch können im Allgemeinen GUIDs nicht verwendet werden, um Unterobjekte innerhalb eines ASF-Headerobjekts eindeutig zu identifizieren, weil mehrere Unterobjekte in einem ASF-Headerobjekt denselben Objekttyp haben können und deshalb die gleiche GUID haben.
  • Das nächste Element in dem exemplarischen digitalen Signaturunterobjekt 500 für ASF ist die Unterobjektsgröße 520. Wieder schließen im Allgemeinen alle ASF-Objekte und Unterobjekte die Größe des Objekts und Unterobjekts ein. Dem Regionsspezifizierer-Array 540, wie oberhalb beschrieben, geht eine Anzahl von signierten Regionen, die in dem Regionsspezifizierer-Array 530 enthalten sind, voraus. Der Prüfsummen-Algorithmus-Identifizierer 550 und der Signatur-Algorithmus-Identifzierer 560 identifizieren die Prüfsummen- und Signatur-Algorithmen, die in dem digitalen Signaturunterobjekt verwendet wurden. Der Signatur 580 der Regionen und des Regionsspezifizierer-Arrays geht die Länge der Signatur 570 voraus. Die Unterzeichnerinformationen 590 enthalten Informationen, die benötigt werden, um Informationen bezüglich des Unterzeichners zu verifizieren oder zu erhalten. Die Unterzeichnerinformationen 590 können die Identität des Unterzeichners einschließen. In einer Ausführungsform enthält die Unterzeichnerinformation 590 eine Zertifikatskette, die verwendet werden kann, um zu verifizieren, dass der öffentliche Schlüssel des Unterzeichners von einer vertrauenswürdigen Quelle stammt.
  • In der exemplarischen ASF-Implementation enthält jeder Regionsspezifizierer einen Unterobjektsregionsabstand (offset), eine Unterobjektsregionsgröße, eine Prüfsummenlänge und eine Objektprüfsumme. Der Regionsabstand identifiziert, wo die Region in dem Unterobjekt beginnt, und die Regionsgröße identifiziert die Größe der Region. Die Objektsprüfsumme entspricht der Prüfsumme der spezifizierten Region. Dieser Prüfsummen-Algorithmus ist in einer bevorzugten Ausführungsform der Secure-Hash-Algorithm (SHA-1). Dieser Algorithmus ist in der staatlichen Veröffentlichung von Informationsverarbeitungsstandards (Federal Information Processing Standards Publication) 180-1 verfügbar, welche im Internet unter http://www.itl.nist.aov/fipspubs/fip180-1.htm verfügbar ist. In alternativen Ausführungsformen kann irgendein Hash-Algorithmus mit einer geringen Kollisionswahrscheinlichkeit verwendet werden. In einer alternativen Ausführungsform entspricht die Objektprüfsumme der Prüfsumme des Unterobjekts, das die spezifizierte Region enthält.
  • Wenn die Signatur überprüft wird, um zu ermitteln, in welchem Unterobjekt die Region liegt (wie in Schritt 410 aus 4), werden die Header-Unterobjekte untersucht. Für jedes überprüfte Unterobjekt wird eine Prüfsumme gemäß dem in dem Prüfsummen-Algorithmus-Identifizierer 550 spezifizierten Algorithmus berechnet. In der Ausführungsform, wo die Prüfsumme über die Region berechnet wird, wird eine Prüfsumme für die Daten, die in diesem Unterobjekt enthalten sind, welches an dem gegebenen Unterobjekt-Regionsabstand beginnt und sich bis zu der gegebenen Unterobjektregionsgröße erstreckt, berechnet. In der Ausführungsform, wo die Prüfsumme über das gesamte Unterobjekt berechnet wird, wird eine Prüfsumme für das Unterobjekt berechnet. Wenn eine Prüfsumme berechnet wurde, die mit der Prüfsumme in dem Regionsspezifizierer übereinstimmt, ist das richtige Unterobjekt für den Regionsspezifizierer identifiziert worden. Wenn entsprechend jedem Regionsspezifizierer ein Unterobjekt identifiziert worden ist, kann die Signatur überprüft werden.
  • In dieser Implementation wird, um ein gesamtes zu signierendes Unterobjekt zu spezifizieren, der Abstand in dem Regionsspezifizierer Null sein, und die Regionsgröße wird gleich der Länge des Unterobjekts sein. In einer anderen Ausführungsform wird die Prüfsumme eher für das gesamte Unterobjekt sein, als für die spezifizierte Region.
  • In dieser Ausführungsform kann mehr als ein digitales Signaturunterobjekt in einem Objekt eingeschlossen sein, um die Flexibilität zu erlauben, verschiedene Gebiete von Unterobjekten, die zusammen verifiziert werden, zu haben, und unterschiedliche Einheiten, die Unterobjekte verifizieren, zu haben.
  • In anderen Ausführungsformen können andere Verfahren zum Identifizieren der Regionen verwendet werden. In einer Ausführungsform sind Daten, welche das Unterobjekt eindeutig identifizieren können, in dem Regionsspezifizierer zusammen mit Regionsabstands- und -größendaten enthalten.
  • In anderen Ausführungsformen können nur gesamte Unterobjekte signiert werden. In einer Ausführungsform schließt der Regionsspezifizierer eine Prüfsumme über das gesamte Unterobjekt ein. In einer anderen Ausführungsform ist ebenso die Länge der Prüfsumme eingeschlossen. In noch einer anderen Ausführungsform werden andere Daten, die das Unterobjekt identifizieren können, in dem Regionsspezifizierer verwendet.
  • Ergebnis
  • Hierin ist ein System und Verfahren zum Datenstrom-Header-Objektschutz. Wie oberhalb erwähnt, können die zugrunde liegenden Konzepte auf irgendwelche Computergeräte oder Systeme angewandt werden, in welchen es wünschenswert ist, Datenstrom-Header-Objekteschutz bereitzustellen, während exemplarische Ausführungsformen der vorliegenden Erfindung in Verbindung mit verschiedenen Computergeräten und Netzwerkarchitekturen beschrieben worden sind. Deshalb können die Techniken zum Bereitstellen von Datenstrom-Header-Objektschutz zugehörig zu der vorliegenden Erfindung auf eine Vielfalt von Anwendungen und Geräten angewandt werden. Zum Beispiel können die Techniken der Erfindung auf das Betriebssystem eines Computergerätes angewandt werden, das als ein getrenntes Objekt auf dem Gerät, als Teil eines anderen Objekts, als ein von einem Server herunterladbares Objekt, als ein "Mittelsmann" zwischen einem Gerät oder Objekt und dem Netzwerk, als ein verteiltes Objekt etc. bereitgestellt ist. Während hier exemplarische Namen und Beispiele repräsentativ für verschiedene Wahlmöglichkeiten gewählt worden sind, sind diese Namen und Beispiele nicht als einschränkend gedacht.
  • Die verschiedenen Techniken, die hier beschrieben sind, können in Verbindung mit Hardware oder Software, oder wo angebracht, mit einer Kombination von beidem, implementiert werden. Die Verfahren und die Vorrichtung der vorliegenden Erfindung oder bestimmte Aspekte oder Teile davon können deshalb die Form von Programmcode (das heißt Instruktionen), die in materiellen Datenträgern, wie zum Beispiel Floppy-Disks, CD-ROMs, Festplatten oder anderen maschinenlesbaren Speicherdatenträgern verkörpert sind, annehmen, wobei, wenn der Programmcode in eine Maschine, wie zum Beispiel einen Computer, geladen und ausgeführt wird, die Maschine eine Vorrichtung zum Praktizieren der Erfindung wird. In dem Fall von Programmcode-Ausführung auf programmierbaren Computern wird das Computergerät im Allgemeinen einen Prozessor, Speicherdatenträger, der durch den Prozessor lesbar ist, (einschließlich flüchtigem und nicht-flüchtigem Speicher und/oder Speicherelementen), mindestens ein Eingabegerät und mindestens ein Ausgabegerät einschließen. Ein oder mehrere Programme, die die Techniken der vorliegenden Erfindung nutzen können, zum Beispiel durch die Verwendung einer Datenverarbeitungs-API oder ähnlichem, werden vorzugsweise in einer Highlevel-Ablauf- oder objektorientierten Programmiersprache implementiert werden, um mit einem Computersystem zu kommunizieren. Jedoch kann/können das/die Programm(e) in Assembly- oder Maschinensprache, wenn gewünscht, implementiert werden. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein und mit Hardware-Implementationen kombiniert werden.
  • Die Verfahren und die Vorrichtung der vorliegenden Erfindung können ebenso über Datenübertragungen praktiziert werden, die in Form von Programmcode verkörpert werden, der über einige Übertragungsdatenträger übermittelt wird, wie zum Beispiel über elektrische Verkabelung oder Verdrahtung, durch Glasfaserkabel oder über irgendeine andere Form der Übertragung, wobei, wenn der Programmcode empfangen und in eine Maschine geladen und durch die Maschine ausgeführt wird, wie zum Beispiel ein EPROM, ein Gate-Array, ein programmierbares logisches Gerät (programmable logic device-PLD), ein Client-Computer, ein Videorekorder oder ähnliches oder eine empfangende Maschine, die die Signalverarbeitungsmöglichkeiten, wie in exemplarischen Ausführungsformen oberhalb beschrieben, aufweist, eine Vorrichtung zur Praktizierung der Erfindung wird. Wenn er auf einem Allzweckprozessor implementiert ist, vereinigt sich der Programmcode mit dem Prozessor, um eine einzigartige Vorrichtung bereitzustellen, die arbeitet, um die Funktionalität der vorliegenden Erfindung aufzurufen. Zusätzlich können jegliche Speichertechniken, die in Verbindung mit der vorliegenden Erfindung verwendet werden, unveränderlich eine Kombination von Hardware und Software sein.
  • Während die vorliegende Erfindung in Verbindung mit den bevorzugten Ausführungsformen der verschiedenen Figuren beschrieben worden ist, gilt es als verstanden, dass, ohne davon abzuweichen, andere ähnliche Ausführungsformen verwendet werden können, oder Modifikationen und Additionen zu der beschriebenen Ausführungsform zum Durchführen der selben Funktion der vorliegenden Erfindung gemacht werden können. Zum Beispiel, während exemplarische Netzwerkumgebungen der Erfindung in dem Kontext einer vernetzten Umgebung beschrieben worden sind, wie zum Beispiel einer Peer-zu-Peer-Netzwerkumgebung, wird ein Fachmann erkennen, dass die Verbindung nicht darauf begrenzt ist, und dass die Verfahren, wie sie in der vorliegenden Anmeldung beschrieben sind, auf irgendein(e) Computergerät oder -umgebung, wie zum Beispiel eine Spielekonsole, tragbaren Computer, portablen Computer, etc., ob verkabelt oder kabellos, angewandt werden können, und auf irgendeine Anzahl von solchen Computergeräten, die über ein Datenübertragungsnetzwerk verbunden sind, und über das Netzwerk interagieren, angewandt werden können. Des Weiteren sollte hervorgehoben werden, dass eine Vielzahl von Computerplattformen, einschließlich Betriebssystemen von tragbaren Geräten und anderen Anwendungsspezifischen Betriebssystemen in Betracht gezogen werden, speziell nachdem die Anzahl der kabellosen Netzwerkgeräte sich kontinuierlich vermehrt. Noch des Weiteren kann die vorliegende Erfindung in oder über eine Vielzahl von Prozessorchips oder -geräten implementiert werden und Speicherung kann ähnlich über eine Vielzahl von Geräten bewerkstelligt werden. Deshalb sollte die vorliegende Erfindung nicht auf eine einzelne Ausführungsform begrenzt sein, aber sollte eher in Breite und Umfang gemäß den anhängigen Ansprüchen ausgelegt werden.

Claims (56)

  1. Verfahren zum Erlauben von Datenverifizierung, wobei ein digitales Objekt (210) einer Datenstromdatei (200) mindestens ein Unterobjekt (220260) umfasst, wobei das Verfahren eine digitale Signatur für mindestens eine Region bereitstellt, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, und wobei die Unterobjekte innerhalb des Objekts neu arrangiert werden können, ohne die digitale Signatur ungültig zu machen, wobei das Verfahren umfasst: Erzeugen (320) eines Arrays (264, 540), das für jede der mindestens einen Region einen Regionsspezifizierer, der die Region identifiziert, umfasst; Verketten (330) jeder der mindestens einen Region, die in dem Array spezifiziert ist, mit dem Array; Erstellen (340) einer digitalen Signatur (580) basierend auf den verketteten Daten, die jede Region und das Array umfassen; und Hinzufügen, zu dem digitalen Objekt, eines Signaturunterobjekts (260, 500), das das Array und die digitale Signatur umfasst.
  2. Verfahren nach Anspruch 1, wobei jede der mindestens einen Region ein Unterobjekt aus dem mindestens einen Unterobjekt umfasst.
  3. Verfahren nach Anspruch 1, wobei jeder der Regionsspezifizierer eine Prüfsumme umfasst, die gemäß einem Prüfsummenalgorithmus berechnet ist.
  4. Verfahren nach Anspruch 3, wobei die Prüfsumme für die Region berechnet ist.
  5. Verfahren nach Anspruch 3, wobei die Prüfsumme für das Unterobjekt, das die Region enthält, berechnet ist.
  6. Verfahren nach Anspruch 3, wobei das Signaturunterobjekt einen Prüfsummenalgorithmusidentifizierer (550) umfasst, der den verwendeten Prüfsummenalgorithmus identifiziert.
  7. Verfahren nach Anspruch 3, wobei jeder der Regionsspezifizierer eine Prüfsummenlänge umfasst.
  8. Verfahren nach Anspruch 1, wobei das Signaturunterobjekt einen Signaturalgorithmusidentifizierer (560) umfasst, der einen Signaturalgorithmus identifiziert, der zum Erstellen einer digitalen Signatur verwendet wird.
  9. Verfahren nach Anspruch 1, wobei das Signaturunterobjekt einen Unterzeichneridentifizierer (268, 590) umfasst, der einen Unterzeichner zur Verifizierung der digitalen Signatur identifiziert.
  10. Verfahren nach Anspruch 9, wobei der Unterzeichneridentifizierer digitale Zertifikate zum sicheren Identifizieren und Verifizieren des öffentlichen Schlüssels des Unterzeichners umfasst.
  11. Verfahren nach Anspruch 1, wobei jeder der Regionsspezifizierer einen Regionsabstand (Offset) umfasst, der die Startstelle der entsprechenden Region in einem Unterobjekt identifiziert.
  12. Verfahren nach Anspruch 1, wobei jeder der Regionsspezifizierer eine Regionsgröße umfasst, die die Größe der entsprechenden Region in einem Unterobjekt identifiziert.
  13. Verfahren nach Anspruch 1, wobei das Objekt ein Header-Objekt für eine Advanced-Streaming-Format-Datei ist.
  14. Verfahren nach Anspruch 13, wobei das neue Objekt des Weiteren einen globalen eindeutigen Identifizierer (510) umfasst.
  15. Verfahren zum Validieren von Daten, wobei ein digitales Objekt (210) einer Datenstromdatei (220) mindestens ein Unterobjekt (220260) umfasst, wobei das Verfahren eine digitale Signatur (580) für mindestens eine Region validiert, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, wobei ein Array Regionsspezifizierer für jede der mindestens einen Region umfasst, wobei das Verfahren umfasst: Identifizieren (410) einer Region entsprechend jedem der Regionsspezifizierer; Erzeugen (420) eines Datenobjekts, das das Array und für jeden der Regionsspezifizierer die Region entsprechend des Regionsspezifizierer umfasst; und Validieren (430) der digitalen Signatur, die auf das Datenobjekt angewandt wird.
  16. Verfahren nach Anspruch 15, wobei das Objekt ein Header-Objekt für eine Advanced-Streaming-Format-Datei ist.
  17. Verfahren nach Anspruch 15, das umfasst: Ermitteln der Anzahl von digitalen Signaturen, die in dem digitalen Objekt vorhanden sind; Validieren jeder der digitalen Signaturen.
  18. Verfahren nach Anspruch 17, das des Weiteren umfasst: Zurückgeben eines Fehlerwertes, wenn die Anzahl der digitalen Signaturen, die in dem digitalen Objekt vorhanden sind, null ist.
  19. Vorrichtung, die ein digitales Objekt (210) einer Datenstromdatei (200) einschließt, wobei das digitale Objekt mindestens ein Unterobjekt (220260) umfasst, wobei das System eine digitale Signatur für mindestens eine Region bereitstellt, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, und wobei die Unterobjekte innerhalb des Objekts neu angeordnet werden können, ohne die digitale Signatur ungültig zu machen, wobei das System umfasst: Array-Erzeugungs-Mittel zum Erzeugen (320) eines Arrays (264), das für jede der mindestens einen Region einen Regionsspezifizierer umfasst, der die Region identifiziert; Verkettungsmittel zum Verketten (330) jeder der mindestens einen Region, die in dem Array spezifiziert ist, mit dem Array; Signierungsmittel zum Erstellen (340) einer digitalen Signatur (580) basierend auf den verketteten Daten, die jede Region und das Array umfassen; und Signaturunterobjekts-Hinzufügungsmittel zum Hinzufügen, zu dem digitalen Objekt, eines Signaturunterobjekts (260, 500), das das Array und die digitale Signatur umfasst.
  20. Vorrichtung nach Anspruch 19, wobei jede der mindestens einen Region ein Unterobjekt aus dem mindestens einen Unterobjekt umfasst.
  21. Vorrichtung nach Anspruch 19, wobei jeder der Regionsspezifizierer eine Prüfsumme umfasst, die gemäß einem Prüfsummenalgorithmus berechnet ist.
  22. Vorrichtung nach Anspruch 21, wobei die Prüfsumme für die Region berechnet ist.
  23. Vorrichtung nach Anspruch 21, wobei die Prüfsumme für das Unterobjekt, das die Region enthält, berechnet ist.
  24. Vorrichtung nach Anspruch 21, wobei das Signaturunterobjekt einen Prüfsummenalgorithmusidentifizierer (550) umfasst, der den verwendeten Prüfsummenalgorithmus identifiziert.
  25. Vorrichtung nach Anspruch 21, wobei jeder der Regionsspezifizierer eine Prüfsummenlänge umfasst.
  26. Vorrichtung nach Anspruch 19, wobei das Signaturunterobjekt einen Signaturalgorithmusidentifizierer (560) umfasst, der einen Signaturalgorithmus identifiziert, der zum Erstellen einer digitalen Signatur verwendet wird.
  27. Vorrichtung nach Anspruch 19, wobei das Signaturunterobjekt einen Unterzeichnetidentifizierer (268, 590) umfasst, der einen Unterzeichner zur Verifizierung der digitalen Signatur identifiziert.
  28. Vorrichtung nach Anspruch 27, wobei der Unterzeichneridentifizierer digitale Zertifikate zum sicheren Identifizieren und Verifizieren des öffentlichen Schlüssels des Unterzeichners umfasst.
  29. Vorrichtung nach Anspruch 19, wobei jeder der Regionsspezifizierer einen Regionsabstand (Offset) umfasst, der eine Startstelle der entsprechenden Region in einem Unterobjekt identifiziert.
  30. Vorrichtung nach Anspruch 19, wobei jeder der Regionsspezifizierer eine Regionsgröße umfasst, die die Größe der entsprechenden Region in einem Unterobjekt identifiziert.
  31. Vorrichtung nach Anspruch 19, wobei das Objekt ein Header-Objekt für eine Advanced-Streaming-Format-Datei ist.
  32. Vorrichtung nach Anspruch 31, wobei das neue Objekt des Weiteren einen globalen eindeutigen Identifizierer (510) umfasst.
  33. Vorrichtung, die ein digitales Objekt (210) einer Datenstromdatei (200) einschließt, wobei das digitale Objekt mindestens ein Unterobjekt (220260) umfasst, wobei das System eine digitale Signatur (580) für mindestens eine Region validiert, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, wobei ein Array Regionsspezifizierer für jede der mindestens einen Region umfasst, wobei die Vorrichtung umfasst: Regionsidentifizierungsmittel zum Identifizieren (410) einer Region entsprechend jedem der Regionsspezifizierer; Datenobjekterzeugungsmittel zum Erzeugen (420) eines Datenobjekts, das das Array und für jeden der Regionsspezifizierer die Region entsprechend des Regionsspezifizierers umfasst; und Validierungsmittel zum Validieren (430) der digitalen Signatur, die auf das Datenobjekt angewandt wird.
  34. Vorrichtung nach Anspruch 33, wobei das Objekt ein Header-Objekt einer Advanced-Streaming-Format-Datei ist.
  35. Vorrichtung nach Anspruch 33, umfassend: Zählungsmittel zum Ermitteln der Anzahl von digitalen Signaturen, die in dem digitalen Objekt vorhanden sind; Validierungsmittel zum Validieren jeder der digitalen Signaturen.
  36. Vorrichtung nach Anspruch 35, die des Weiteren umfasst: Fehlerzurückgabemittel, das einen Fehlerwert zurückgibt, wenn die Anzahl von digitalen Signaturen, die in dem digitalen Objekt vorhanden sind, null ist.
  37. Computerlesbarer Datenträger zum Erlauben von Datenverifizierung, wobei ein digitales Objekt (210) einer Datenstromdatei (200) mindestens ein Unterobjekt (220260) umfasst, wobei der computerlesbare Datenträger eine digitale Signatur für mindestens eine Region bereitstellt, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, und wobei die Unterobjekte innerhalb des Objekts neu angeordnet werden können, ohne die digitale Signatur ungültig zu machen, wobei der computerlesbare Datenträger Instruktionen zum Ausführen von Vorgängen aufweist, die umfassen: Erzeugen (320) eines Arrays (264), das für jede der mindestens einen Region einen Regionsspezifizierer umfasst, der die Region identifiziert; Verketten (330) jeder der mindestens einen Region, die in dem Array spezifiziert ist, mit dem Array; Erstellen (340) einer digitalen Signatur (580) basierend auf den verketteten Daten, die jede Region und das Array umfassen; und Hinzufügen, zu dem digitalen Objekt, eines Signaturunterobjekts (260, 500), das das Array und die digitale Signatur umfasst.
  38. Computerlesbarer Datenträger nach Anspruch 37, wobei jede der mindestens einen Region ein Unterobjekt aus dem mindestens einen Unterobjekt umfasst.
  39. Computerlesbarer Datenträger nach Anspruch 37, wobei jeder der Regionsspezifizierer eine Prüfsumme umfasst, die gemäß einem Prüfsummenalgorithmus berechnet ist.
  40. Computerlesbarer Datenträger nach Anspruch 39, wobei die Prüfsumme für die Region berechnet ist.
  41. Computerlesbarer Datenträger nach Anspruch 39, wobei die Prüfsumme für das Unterobjekt, das die Region enthält, berechnet ist.
  42. Computerlesbarer Datenträger nach Anspruch 39, wobei das Signaturunterobjekt einen Prüfsummenalgorithmusidentifizierer (550) umfasst, der den verwendeten Prüfsummenalgorithmus identifiziert.
  43. Computerlesbarer Datenträger nach Anspruch 39, wobei jeder der Regionsspezifizierer eine Prüfsummenlänge umfasst.
  44. Computerlesbarer Datenträger nach Anspruch 37, wobei das Signaturunterobjekt einen Signaturalgorithmusidentifizierer (560) umfasst, der einen Signaturalgorithmus identifiziert, der zum Erstellen einer digitalen Signatur verwendet wird.
  45. Computerlesbarer Datenträger nach Anspruch 37, wobei das Signaturunterobjekt einen Unterzeichneridentifizierer (268, 590) umfasst, der einen Unterzeichner zur Verifizierung der digitalen Signatur identifiziert.
  46. Computerlesbarer Datenträger nach Anspruch 45, wobei der Unterzeichneridentifizierer digitale Zertifikate zum sicheren Identifizieren und verifizieren des öffentlichen Schlüssels des Unterzeichners umfasst.
  47. Computerlesbarer Datenträger nach Anspruch 37, wobei jeder der Regionsspezifizierer einen Regionsabstand (Offset) umfasst, der die Startstelle der entsprechenden Region in einem Unterobjekt identifiziert.
  48. Computerlesbarer Datenträger nach Anspruch 37, wobei jeder der Regionsspezifizierer eine Regionsgröße umfasst, die die Größe der entsprechenden Region in einem Unterobjekt identifiziert.
  49. Computerlesbarer Datenträger nach Anspruch 37, wobei das Objekt ein Header-Objekt für eine Advanced-Streaming-Format-Datei ist.
  50. Computerlesbarer Datenträger nach Anspruch 49, wobei das neue Objekt des Weiteren einen globalen eindeutigen Identifizierer (510) umfasst.
  51. Computerlesbarer Datenträger zum Validieren von Daten, wobei ein digitales Objekt (210) einer Datenstromdatei (200) mindestens ein Unterobjekt (220260) umfasst, wobei der computerlesbare Datenträger eine digitale Signatur (580) für mindestens eine Region validiert, wobei jede der mindestens einen Region aus allem oder einem Teil (252258) von einem des mindestens einen Unterobjekts besteht, wobei ein Array Regionsspezifizierer für jede der mindestens einen Re gion umfasst, und wobei der computerlesbare Datenträger Instruktionen zum Ausführen von Vorgängen aufweist, die umfassen: Identifizieren (410) einer Region entsprechend jedem der Regionsspezifizierer; Erzeugen (420) eines Datenobjekts, das das Array und für jeden der Regionsspezifizierer die Region entsprechend des Regionsspezifizierers umfasst, und Validieren (430) der digitalen Signatur, die auf das Datenobjekt angewandt wird.
  52. Computerlesbarer Datenträger nach Anspruch 51, wobei das Objekt ein Header-Objekt für eine Advanced-Streaming-Format-Datei ist.
  53. Computerlesbarer Datenträger nach Anspruch 51, der Instruktionen zum Ausführen von Vorgängen umfasst, die umfassen: Ermitteln einer Anzahl von digitalen Signaturen, die in dem digitalen Objekt vorhanden sind; Validieren jeder der digitalen Signaturen.
  54. Computerlesbarer Datenträger nach Anspruch 53, wobei der computerlesbare Datenträger Instruktionen zum Ausführen von Vorgängen aufweist, die des Weiteren umfassen: Zurückgeben eines Fehlerwertes, wenn die Anzahl der digitalen Signaturen, die in dem digitalen Objekt vorhanden sind, null ist.
  55. Speicher zum Speichern von Daten zum Zugreifen durch ein Anwendungsprogramm, die eine Datenstruktur (500) umfassen, die in dem Speicher gespeichert ist, wobei die Datenstruktur angepasst ist zum Speichern von Verifizierungsinformationen für ein Objekt (210) einer Datenstromdatei (200), wobei das Objekt mindestens ein Unterobjekt (220260) umfasst, während Veränderungen in der Reihenfolge der Unterobjekte erlaubt werden, umfassend: ein Regionsspezifizierer-Array (264, 540) das mindestens einen Regionsspezifizierer umfasst, wobei jeder Regionsspezifizierer eine Region spezifiziert, die alles oder einen Teil (252258) von einem der Unterobjekte umfasst; und eine digitale Signatur (580), die basierend auf verketteten Daten erzeugt wurde, die jede der Regionen und das Regionsspezifizierer-Array umfassen, wobei das Erzeugen der verketteten Daten das Verketten (330) jeder der spezifizierten Regionen mit dem Regionsspezifizierer-Array umfasst.
  56. Speicher nach Anspruch 55, wobei die Datenstruktur des Weiteren eines oder mehrere der folgenden umfasst: einen globalen eindeutigen Identifizierer (globally unique identifier) (510) für die Datenstruktur; die Größe (520) der Datenstruktur; die Anzahl (530) der Regionen in dem Regionsspezifizierer-Array; einen Prüfsummenalgorithmusidentifizierer (550); einen Signaturalgorithmusidentifizierer (560), der den Algorithmus identifiziert, der verwendet wird, um die digitale Signatur zu erzeugen; eine Signaturlänge (570) für die digitale Signatur; und Unterzeichnerinformation (268, 590) zum Verifizieren der digitalen Signatur.
DE60314062T 2002-09-04 2003-09-04 Schutz für Header-Objekte in Datenströmen Expired - Lifetime DE60314062T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US235587 2002-09-04
US10/235,587 US7401221B2 (en) 2002-09-04 2002-09-04 Advanced stream format (ASF) data stream header object protection

Publications (2)

Publication Number Publication Date
DE60314062D1 DE60314062D1 (de) 2007-07-12
DE60314062T2 true DE60314062T2 (de) 2007-11-22

Family

ID=31715304

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60314062T Expired - Lifetime DE60314062T2 (de) 2002-09-04 2003-09-04 Schutz für Header-Objekte in Datenströmen

Country Status (13)

Country Link
US (2) US7401221B2 (de)
EP (1) EP1396978B1 (de)
JP (1) JP4864284B2 (de)
KR (1) KR100970830B1 (de)
CN (1) CN1490736B (de)
AT (1) ATE363801T1 (de)
AU (1) AU2003244037B2 (de)
BR (1) BR0303460A (de)
CA (1) CA2441620C (de)
DE (1) DE60314062T2 (de)
HK (1) HK1064235A1 (de)
MX (1) MXPA03007945A (de)
RU (1) RU2332703C2 (de)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185082B1 (en) * 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US7266613B1 (en) * 2000-08-09 2007-09-04 Microsoft Corporation Fast dynamic measurement of bandwidth in a TCP network environment
US6792449B2 (en) * 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US7093132B2 (en) * 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US7707066B2 (en) * 2002-05-15 2010-04-27 Navio Systems, Inc. Methods of facilitating merchant transactions using a computerized system including a set of titles
US7707121B1 (en) 2002-05-15 2010-04-27 Navio Systems, Inc. Methods and apparatus for title structure and management
US7814025B2 (en) * 2002-05-15 2010-10-12 Navio Systems, Inc. Methods and apparatus for title protocol, authentication, and sharing
US20060036447A1 (en) * 2002-05-15 2006-02-16 Stefan Roever Methods of facilitating contact management using a computerized system including a set of titles
US7725557B2 (en) 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
US20050038707A1 (en) * 2002-08-30 2005-02-17 Navio Systems, Inc. Methods and apparatus for enabling transactions in networks
JP3821086B2 (ja) * 2002-11-01 2006-09-13 ソニー株式会社 ストリーミングシステム及びストリーミング方法、クライアント端末及びデータ復号方法、並びにプログラム
US7650421B2 (en) * 2002-12-30 2010-01-19 Microsoft Corporation Adaptable accelerated content streaming
US7581255B2 (en) * 2003-01-21 2009-08-25 Microsoft Corporation Systems and methods for licensing one or more data streams from an encoded digital media file
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
KR20040092649A (ko) * 2003-04-24 2004-11-04 엘지전자 주식회사 광디스크의 복사 방지 정보 관리방법
KR100974449B1 (ko) * 2003-04-24 2010-08-10 엘지전자 주식회사 광디스크의 복사 방지 정보 관리방법
KR100972831B1 (ko) * 2003-04-24 2010-07-28 엘지전자 주식회사 엔크립트된 데이터의 보호방법 및 그 재생장치
KR100974448B1 (ko) * 2003-04-24 2010-08-10 엘지전자 주식회사 광디스크의 복사 방지 정보 관리방법
US20050021947A1 (en) * 2003-06-05 2005-01-27 International Business Machines Corporation Method, system and program product for limiting insertion of content between computer programs
EA015549B1 (ru) 2003-06-05 2011-08-30 Интертраст Текнолоджис Корпорейшн Переносимая система и способ для приложений одноранговой компоновки услуг
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US7054774B2 (en) * 2003-06-27 2006-05-30 Microsoft Corporation Midstream determination of varying bandwidth availability
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
JP2005025270A (ja) * 2003-06-30 2005-01-27 Toshiba Corp コンテンツ送信装置及びコンテンツ送信方法、コンテンツ受信装置及びコンテンツ受信方法
US20050010531A1 (en) * 2003-07-09 2005-01-13 Kushalnagar Nandakishore R. System and method for distributing digital rights management digital content in a controlled network ensuring digital rights
US7480382B2 (en) * 2003-09-30 2009-01-20 Microsoft Corporation Image file container
US7185195B2 (en) * 2003-12-14 2007-02-27 Realnetworks, Inc. Certificate based digital rights management
US7162533B2 (en) * 2004-04-30 2007-01-09 Microsoft Corporation Session description message extensions
US7559080B2 (en) * 2004-05-04 2009-07-07 Microsoft Corporation Automatically generating security policies for web services
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8484476B2 (en) * 2005-05-20 2013-07-09 Rovi Technologies Corporation Computer-implemented method and system for embedding and authenticating ancillary information in digitally signed content
US8397072B2 (en) * 2005-05-20 2013-03-12 Rovi Solutions Corporation Computer-implemented method and system for embedding ancillary information into the header of a digitally signed executable
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US20070028211A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Interpreter security mechanism
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US8560853B2 (en) * 2005-09-09 2013-10-15 Microsoft Corporation Digital signing policy
JP2009512096A (ja) 2005-10-18 2009-03-19 インタートラスト テクノロジーズ コーポレイション デジタル著作権管理エンジンのシステムおよび方法
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
US8055897B2 (en) * 2005-12-06 2011-11-08 Lippershy Celestial Llc Digital object title and transmission information
EP1977381A4 (de) 2005-12-29 2014-01-01 Oncircle Inc Software, systeme und verfahren zum verarbeiten von digitalen trägerinstrumenten
US9177338B2 (en) * 2005-12-29 2015-11-03 Oncircle, Inc. Software, systems, and methods for processing digital bearer instruments
WO2007130416A2 (en) 2006-04-29 2007-11-15 Navio Systems, Inc. Title-enabled networking
CN101473622B (zh) * 2006-05-15 2013-11-06 意大利电信股份公司 用于数据网络上的通信的带外鉴别方法和系统
DE602006001859D1 (de) * 2006-05-26 2008-08-28 Sap Ag Verfahren und Vorrichtung zum sicheren Nachrichtenverkehr in einem Netzwerk
US20080005558A1 (en) * 2006-06-29 2008-01-03 Battelle Memorial Institute Methods and apparatuses for authentication and validation of computer-processable communications
US10380621B2 (en) 2006-11-15 2019-08-13 Api Market, Inc. Title-acceptance and processing architecture
BRPI0803091A2 (pt) * 2007-01-19 2011-08-30 Lg Electronics Inc método para proteger conteúdo e método para processar informação
US8584206B2 (en) * 2007-02-16 2013-11-12 Lg Electronics Inc. Method for managing domain using multi domain manager and domain system
ATE429119T1 (de) * 2007-05-18 2009-05-15 Sap Ag Verfahren und system zum schutz einer nachricht vor einem xml-angriff beim austausch in einem verteilten und dezentralisierten netzwerksystem
EP2171970A1 (de) * 2007-07-31 2010-04-07 Macrovision Corporation Computerimplementiertes verfahren und system zur ermöglichung einer ausserbandverfolgung für digitale verteilung
CN101796837B (zh) * 2007-09-11 2012-12-19 Lg电子株式会社 安全签名方法、安全认证方法和iptv系统
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7860996B2 (en) 2008-05-30 2010-12-28 Microsoft Corporation Media streaming with seamless ad insertion
US8387150B2 (en) * 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US20100037062A1 (en) * 2008-08-11 2010-02-11 Mark Carney Signed digital documents
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
KR20100040545A (ko) * 2008-10-10 2010-04-20 삼성전자주식회사 구조화된 리치 미디어 데이터 기반의 사용자 인터페이스를 제공하기 위한 장치 및 방법
US8315994B2 (en) * 2008-10-31 2012-11-20 Disney Enterprises, Inc. System and method for updating digital media content
FR2938678B1 (fr) * 2008-11-20 2010-12-17 Viaccess Sa Procede et dispositif de diagnostic de la premiere reception d'un identifiant, procede de detection, support d'enregistrement et programme d'ordinateur pour ce procede
US20100166383A1 (en) * 2008-12-31 2010-07-01 Nxp B.V. System and method for providing trick modes
WO2012142178A2 (en) 2011-04-11 2012-10-18 Intertrust Technologies Corporation Information security systems and methods
WO2013019519A1 (en) 2011-08-02 2013-02-07 Rights Over Ip, Llc Rights-based system
US8898244B2 (en) 2011-10-20 2014-11-25 Allen Miglore System and method for transporting files between networked or connected systems and devices
WO2015152867A1 (en) * 2014-03-31 2015-10-08 Hewlett-Packard Development Company, L.P. Memory unit with data segment information in header
US9838494B1 (en) * 2014-06-24 2017-12-05 Amazon Technologies, Inc. Reducing retrieval times for compressed objects
US10102218B2 (en) 2014-09-30 2018-10-16 Microsoft Technology Licensing, Llc File system with per-extent checksums

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6135646A (en) * 1993-10-22 2000-10-24 Corporation For National Research Initiatives System for uniquely and persistently identifying, managing, and tracking digital objects
US6367013B1 (en) * 1995-01-17 2002-04-02 Eoriginal Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
JP3540511B2 (ja) * 1996-06-18 2004-07-07 株式会社東芝 電子署名検証装置
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6751623B1 (en) * 1998-01-26 2004-06-15 At&T Corp. Flexible interchange of coded multimedia facilitating access and streaming
JP2000004256A (ja) * 1998-04-17 2000-01-07 Toshiba Corp ストリ―ムデ―タ処理システムおよびストリ―ムデ―タの制限方法
US6415385B1 (en) * 1998-07-29 2002-07-02 Unisys Corporation Digital signaturing method and system for packaging specialized native files for open network transport and for burning onto CD-ROM
US7228437B2 (en) * 1998-08-13 2007-06-05 International Business Machines Corporation Method and system for securing local database file of local content stored on end-user system
US6085321A (en) * 1998-08-14 2000-07-04 Omnipoint Corporation Unique digital signature
US6917965B2 (en) * 1998-09-15 2005-07-12 Microsoft Corporation Facilitating annotation creation and notification via electronic mail
US6671805B1 (en) * 1999-06-17 2003-12-30 Ilumin Corporation System and method for document-driven processing of digitally-signed electronic documents
EP1267515A3 (de) * 2000-01-21 2004-04-07 Sony Computer Entertainment Inc. Verfahren und Vorrichtung zur symmetrischen Verschlüsselung/Entschlüsselung von aufgezeichneten Daten
US6985966B1 (en) * 2000-03-29 2006-01-10 Microsoft Corporation Resynchronizing globally unsynchronized multimedia streams
JP2001282619A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd コンテンツ改竄検知方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US7302490B1 (en) * 2000-05-03 2007-11-27 Microsoft Corporation Media file format to support switching between multiple timeline-altered media streams
WO2001095125A1 (en) * 2000-06-06 2001-12-13 Ingeo Systems, Inc. Processing electronic documents with embedded digital signatures
US7006099B2 (en) * 2000-08-15 2006-02-28 Aware, Inc. Cache system and method for generating uncached objects from cached and stored object components
JP2002091299A (ja) * 2000-08-31 2002-03-27 Internatl Business Mach Corp <Ibm> 電子署名システム、電子署名方法、電子署名の仲介方法、電子署名の仲介システム、情報端末および記録媒体
JP3730498B2 (ja) * 2000-09-19 2006-01-05 株式会社東芝 署名用記憶媒体
KR20020032803A (ko) * 2000-10-27 2002-05-04 구자홍 스트리밍 서비스를 위한 파일 구조
AU2002221006B2 (en) * 2000-11-27 2007-10-18 Rovi Europe Limited A copy protected DVD disc and method for producing and validating same
US20020131761A1 (en) * 2001-01-16 2002-09-19 Kojiro Kawasaki Information recording medium, apparatus and method for recording/reproducing information to/from the medium
US20020141568A1 (en) * 2001-04-02 2002-10-03 Acoustic Technologies, Inc. Dual threshold correlator
US7457312B2 (en) * 2002-06-19 2008-11-25 Microsoft Corporation Bandwidth sharing in advanced streaming format
US7451229B2 (en) * 2002-06-24 2008-11-11 Microsoft Corporation System and method for embedding a streaming media format header within a session description message
US7246318B2 (en) * 2002-06-28 2007-07-17 Microsoft Corporation Application programming interface for utilizing multimedia data
FR2848526B1 (fr) * 2002-12-17 2005-12-30 Tech D Etudes Realisations Et Dispositif d'amarrage d'un aeronef

Also Published As

Publication number Publication date
AU2003244037A1 (en) 2004-03-18
CN1490736A (zh) 2004-04-21
RU2003126950A (ru) 2005-03-10
US20080189552A1 (en) 2008-08-07
EP1396978B1 (de) 2007-05-30
CN1490736B (zh) 2010-09-08
KR100970830B1 (ko) 2010-07-16
EP1396978A3 (de) 2005-02-02
US20040054912A1 (en) 2004-03-18
US7747854B2 (en) 2010-06-29
DE60314062D1 (de) 2007-07-12
JP2004265380A (ja) 2004-09-24
MXPA03007945A (es) 2004-10-15
EP1396978A2 (de) 2004-03-10
AU2003244037B2 (en) 2008-12-11
CA2441620C (en) 2012-03-13
BR0303460A (pt) 2004-09-08
CA2441620A1 (en) 2004-03-04
ATE363801T1 (de) 2007-06-15
RU2332703C2 (ru) 2008-08-27
KR20040021553A (ko) 2004-03-10
US7401221B2 (en) 2008-07-15
EP1396978A8 (de) 2004-06-23
HK1064235A1 (en) 2005-01-21
JP4864284B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
DE60314062T2 (de) Schutz für Header-Objekte in Datenströmen
DE112004002470B4 (de) Zertifikat-Basiertes Digitales Rechte-Management
DE602004005117T2 (de) Unterschriftsvorrichtung, Anpassungsvorrichtung und Verifikationsvorrichtung für ein strukturiertes Dokument.
DE602004011282T2 (de) Versenden einer Herausgeber-Benutzungslizenz off-line in einem digitalen Rechtesystem
DE60200616T2 (de) Gesicherte Inhaltsobjekte
DE60304744T2 (de) Verfahren,vorrichtung und computerprogramme zur erzeugung und/oder verwendungkonditionaler elektronischer signaturen zur meldung von statusänderungen
DE69727198T2 (de) Durchführen digitaler Unterschriften für Datenströme und Archive
DE60307736T2 (de) Serverarchitektur für sichere Plug-ins in digitalen Rechteverwaltungsssystemen
DE69917434T2 (de) Vorrichtung für das Überprüfen von Dokumenten mit geschichtlicher Speicherung der Aktivitäten des Prüfers
DE60219706T2 (de) Verfahren und Vorrichtung zum Anfügen einer elektronischen Unterschrift an ein strukturiertes Dokument
DE102007020775B4 (de) Geräteunabhängige Verwaltung kryptografischer Information
DE102007012490A1 (de) Optimierte Integritätsverifikationsprozeduren
CN1516470A (zh) 数字电视应用的数字签名
WO2007053864A9 (de) Verfahren zur erzeugung einer fortgeschrittenen elektronischen signatur eines elektronischen dokuments
WO2007104691A2 (de) Verfahren und kommunikationssystem zum rechnergestützten auffinden und identifizieren von urheberrechtlich geschützten inhalten
DE60114069T3 (de) System und Verfahren für den Schutz von Digitalwerken
WO2019076574A1 (de) Bidirektionale verkettete blockchain-struktur
DE602004009639T2 (de) Verfahren oder Vorrichtung zur Authentifizierung digitaler Daten mittels eines Authentifizierungs-Plugins
EP1653701B1 (de) Verfahren, Vorrichtungen und Computerprogrammprodukt zur Überprüfung der Signaturen signierter Dateien und zur Konvertierung unsignierter Dateien
DE102013226780A1 (de) Verfahren und Vorrichtung zum digitalen Signieren einer Datei
EP3159824A1 (de) Verfahren zur verarbeitung eines verschlüsselten druckauftrags
DE602005006407T2 (de) Methode und System zur Signierung von physischen Dokumenten und zur Authentisierung von Signaturen auf physischen Dokumenten
DE102004052934B4 (de) Verfahren zur Eingabe einer Datei in ein Netzwerk
DE102005061999B4 (de) Online-Banking-Verfahren zum sicheren, elektronischen Übertragen von Daten von einer ersten Datenverarbeitungseinrichtung an eine zweite Datenverarbeitungseinrichtung
DE202004016878U1 (de) Netzwerkknoten und medizintechnisches Gerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition