-
GEBIET DER
ERFINDUNG
-
Das
Verfahren und die Vorrichtung der vorliegenden Erfindung betreffen
allgemein Umcodierungssysteme und insbesondere ein System, in welchem
Umcodierungs-Proxyserver verschlüsselte Multimediainhalte
(Content) auf eine Weise sicher umcodieren, welche die Entschlüsselung
der Inhalte vermeidet.
-
HINTERGRUND
DER ERFINDUNG
-
Unter
dem Umcodieren ist in der Technik ein Verfahren zum Umwandeln von
Multimediainhalten (z.B. Text, Bilder, Audiodateien, Videos und Ähnliches)
von einem ersten ursprünglichen
Format, in welchem die Multimediainhalte codiert waren, in ein zweites
Format zu verstehen. Ein Umcodierer (Transcoder) ist eine technische
Einrichtung zum Ausführen
der Umcodierungsfunktion für
eine bestimmte Aufgabe. Das Umcodierungsverfahren ist dann von Bedeutung,
wenn Inhalte in Client-Einheiten dargestellt werden sollen, welche
die Darstellung oder Wiedergabe der Inhalte in ihrem ursprünglichen Format
kaum oder überhaupt
nicht unterstützen. Zum
Beispiel können
Webseiten, die ursprünglich nicht
zur Darstellung in Mobiltelefonen und Funk-PDAs (personal digital
assistent, persönlicher digitaler
Assistent) entworfen wurden, zur Darstellung/Wiedergabe in solchen
Geräten
umcodiert werden. Außerdem
können
Webinhalte umcodiert werden, um Multimediainhalte in komprimierter
Form über
langsame Internetanschlüsse
zu übertragen und
so den Zugang zu diesen Inhalten zu beschleunigen.
-
Die
Umcodierung erfolgt oft durch eine Zwischeneinheit oder einen Proxyserver,
der zwischen den Webserver der Anbieter von Inhalten (Anbieter von
Inhalten) und den Webbrowser in der Client-Einheit geschaltet ist.
Beim herkömmlichen
Ansatz zur Umcodierung in einem Proxyserver müssen die Daten in unverschlüsselter
Form vorliegen, damit sie umcodiert werden können. Wenn die Multimediadaten
bereits verschlüsselt
sind, muss der Umcodierungs-Proxyserver die Daten zuerst entschlüsseln, bevor
sie umcodiert werden können.
Durch die Entschlüsselung
der Multimediadaten wird jedoch die Sicherheitsgarantie für die Endpunkt-zu-Endpunkt-Übertragung
verletzt, da außer
dem Anbieter von Inhalten und dem Client auch Dritte (z.B. ein Proxyserver)
den entschlüsselten
Datenstrom abhören können.
-
Die
Umcodierung von Multimediainhalten verfolgt zwei Hauptziele. Das
erste Ziel besteht in der Verkürzung
der Zeiten zum Herunterladen von Webseiten über Zugangsverbindungen mit
geringer Bandbreite, zum Beispiel über Modemverbindungen und Funkverbindungen.
Die Umcodierungsfunktion befindet sich normalerweise in der Zwischeneinheit
bzw. dem Proxyserver. Der Umcodierungs-Proxyserver besteht üblicherweise aus einem Umcodierer,
der sich zur Verringerung der in Byte ausgedrückten Größe der Multimediainhalte verlustfreier
oder verlustbehafteter Komprimierungsverfahren bedient (z.B. werden
Bilder noch stärker
komprimiert, Texte zusammengefasst usw.). Durch die Verringerung
der Anzahl der über
die Zugangsverbindung übertragenen Bytes
kann der Umcodierungs-Proxyserver dem Empfänger den Inhalt schneller zur
Verfügung
stellen und so die wahrgenommene Reaktionszeit deutlich verringern.
Die Umcodierung ist auch auf die Übertragung von Videos angewendet
worden, um die erforderliche Bitrate zu verringern, sodass Clients
den verringerten Videodatenstrom über Verbindungen mit geringer
Bandbreite empfangen können.
Oft werden die Begriffe Destillation, Zusammenfassung, dynamische
Ratenanpassung und Filterung als Synonyme für die Umcodierung verwendet,
wenn die Verkürzung
der Latenzzeit (z.B. durch Komprimierung über Verbindungen mit geringer
Bandbreite) den Hauptzweck der Umcodierung darstellt.
-
Ein
zweites Ziel der Umcodierung von Multimediainhalten besteht darin,
die Unstimmigkeiten zwischen dem durch die Client-Einheit unterstützten Decodierungsformat
und dem vom Anbieter von Inhalten verwendeten Codierungsformat für die Multimediainhalte
zu beseitigen. Um Multimediainhalte in einer Client-Einheit abspielen
oder darstellen zu können,
welche das Format dieser Multimediainhalte nicht verarbeiten kann,
wandelt ein Umcodierer im Allgemeinen die Multimediainhalte vom
ursprünglichen
Codierungsformat in das Decodierungsformat um, welches die Client-Einheit
versteht. Codierer-/Decodierer-(Codec)Unstimmigkeiten
können
infolge Beschränkungen
der Hardware, der Software, der Peripherie sowie menschlicher Verhaltensweisen auf
Seiten der Client-Einheiten und/oder der Anbieter von Inhalten auftreten.
Die Spracherkennung (d.h. die Umcodierung von Sprache in Text) und
die Sprachsynthese (d.h. die Umcodierung von Text in Sprache) stellen
zwei Beispiele von Umcodierungsverfahren dar, bei denen Multimediainhalte
zur Auflösung
von Codec-Unstimmigkeiten zwischen dem Anbieter von Inhalten und
der Client-Einheit als Nutzer der Inhalte umgewandelt werden.
-
Die
Umcodierung wird heutzutage auch zur Umwandlung von Webseiten (z.B.
von Bildern und HTML-Text) eingesetzt, damit tragbare PDAs das Internet
durchsuchen können.
PDA-Client-Einheiten unterliegen
wegen ihres relativ kleinen Bildschirms, der begrenzten Anzeigetiefe,
des begrenzten Speichers, des langsamen Prozessors und der mangelnden
Unterstützung
bestimmter Medien oft Einschränkungen.
Bei solchen Geräten
wird eine Umcodierungs-Proxyeinheit eingesetzt, um zum Beispiel Farbbilder
im GIF- bzw. JPEG-Format in Graustufenbitmaps im 2-Bit-Format umzusetzen,
um sie an die beschränkten
Softwarefunktionen des PDA anzupassen bzw. in kleine Piktogramme
umzusetzen, um sie an die beschränkten
Hardwarefunktionen eines kleinen Bildschirms des PDA anzupassen.
Die Begriffe Umsetzung, Umsetzung des Inhalts, Anpassung des Inhalts,
Umformatierung, Datenumwandlung, Medienumsetzung, Beschneidung,
Universalzugriff, Formatumwandlung und Filterung werden oft gleichbedeutend
für die
Umcodierung verwendet, wenn sie zur Anpassung an eine Vielzahl verschiedenartiger Clients
eingesetzt wird.
-
Die
Einbeziehung der Umcodierungsfunktion in einen Proxyserver bringt
ein Sicherheitsproblem mit sich. Beim herkömmlichen Ansatz der Umcodierung
in einem Proxyserver ist es erforderlich, dass die Daten zur Umcodierung
in unverschlüsselter Form
vorliegen. Wenn die Multimediadaten vorher verschlüsselt waren,
muss der Umcodierungs-Proxyserver sie vor der Umcodierung zuerst
decodieren. zur Entschlüsselung
muss der Proxyserver über
den zur Verschlüsselung
der Daten verwendeten Schlüssel
verfügen.
Diese Art von Proxyserver wird im Allgemeinen als sicherer Proxyserver
bezeichnet. Dieses Szenario weist jedoch Schwierigkeiten praktischer
Art auf, da entweder die Quelle oder das Ziel den Schlüssel zum
Proxyserver übermitteln
muss, der möglicherweise
keinerlei Beziehung zur Quellen- bzw. Zieleinheit hat. Durch dieses
Schema wird die Sicherheitsgarantie für die Endpunkt-zu-Endpunkt-Verbindung
verletzt, da außer
dem Anbieter von Inhalten und dem Client ein Dritter (Proxyserver) die
entschlüsselten
Daten abhören
kann.
-
Frühere Versuche,
ein sicheres Umcodierungssystem bereitzustellen, konnten das dringende Problem
der sicheren Umcodierung von Daten durch einen Proxyserver weder
beheben noch lösen.
Ansätze
nach dem Stand der Technik, bei denen die Multimediainhalte in mehrere
Komponenten aufgeteilt werden, beruhen auf der progressiven Bildübertragung
(Progressive Image Transmission, PIT) und des schichtweisen Video-Multicast
(selektives Rundsenden). Bei der PIT wird jedes Bild in mehrere
Komponenten aufgeteilt, die entsprechend ihrer Wahrnehmbarkeit der
Wichtigkeit nach geordnet werden. Der Anbieter von Inhalten sendet
zuerst die bezüglich ihrer
Wahrnehmbarkeit wichtigsten und anschließend die weniger wichtigen
Komponenten zur Client-Einheit. Obwohl sich gezeigt hat, dass die
PIT die wahrgenommene Verzögerung
der Bildübertragung
verringert (da die wichtigsten Komponenten zuerst ankommen und angezeigt
werden), wird zwischen dem Anbieter von Inhalten und der Client-Einheit
keine Umcodierung durchgeführt.
-
Beim
geschichteten Video-Multicast wird ein Videodatenstrom in mehrere
Komponenten aufgeteilt. Empfänger
der Videositzung bezahlen nur für
einige der Komponenten. Wenn die Zugangsverbindung des Empfängers nur
eine geringe Bandbreite aufweist, beansprucht die Client-Einheit
auf der Empfängerseite
nur die wesentlichen Komponenten des Videodatenstroms. Leitwegrechner
(Router), welche das Multicastprotokoll unterstützen, berücksichtigen die Empfangswünsche des
Empfängers
und filtern die nicht erwünschten
Multicast-Komponenten aus bzw. löschen
sie. Der Ansatz der schichtweisen Video-Multicast (oder allgemein:
der schichtweisen Codierung) befasst sich jedoch nicht damit, wie
man die übertragenen
Daten schützt
und gleichzeitig eine sichere selektive Filterung/Umcodierung gewährleistet.
Außerdem
stellt dieser Ansatz kein Mittel zum Erkennen von unerlaubten Manipulationen
zur Verfügung.
-
Das
Projekt SERVANT von IBM Zurich Research hat einen Mechanismus vorgeschlagen,
mittels dessen ein Client und ein Server eine sichere Sitzung absolvieren
können,
während
gleichzeitig ein unsicherer Umcodierer auf Inhaltsfelder zugreifen kann,
die möglicherweise
umcodiert werden sollen. Dies braucht kein sicherer Umcodierer zu
sein, da der Server sicherheitsrelevante Inhaltsfelder selektiv verschlüsseln und
ein signiertes Übersichtsdokument
des Inhalts enthalten kann, in welchem vermerkt ist, wie jedes Inhaltsfeld
umcodiert werden kann. Dadurch sind die sicherheitsrelevanten Inhalte gegenüber dem
Umcodierer geschützt,
und der Client kann überprüfen, ob
die für
den Client durchgeführte
Umcodierung in Übereinstimmung
mit den Vorgaben des Servers erfolgt ist. SERVANT teilt den Inhalt
in zwei Bereiche auf: sicher und nicht sicher. Der Umcodierungs-Proxyserver
ist damit jedoch immer noch nicht in der Lage, den „sicheren" Teil des Inhalts umzucodieren
und löst
somit nicht das vorliegende Problem.
-
Bei
herkömmlichen
Manipulationserkennungsmechanismen nach dem Stand der Technik werden
entweder sichtbare oder unsichtbare Wasserzeichen verwendet. Sichtbare
sowie unsichtbare Wasserzeichen fügen in die Daten bestimmte
Muster, Strichcodes, digitale Signaturen usw. ein. Datenmanipulationen
können
durch Abweichungen der Wasserzeichen oder durch deren Fehlen erkannt
werden. Der Stand der Technik unterscheidet sich jedoch insofern
von der vorliegenden Erfindung, als beim Stand der Technik alle
Daten als Klartext (unverschlüsselt)
vorliegen.
-
Die
vorhandenen Verfahren und Vorrichtungen lösen nicht das Problem, wie
ein Umcodierungs-Proxyserver Daten von einem Anbieter von Inhalten
oder einer ähnlichen
Quelle zur Verwendung in einer Client-Einheit umcodieren kann, während gleichzeitig
die Sicherheit der Endpunkt-zu-Endpunkt-Übertragung
im gesamten Umcodierungssystem gewährleistet bleibt. Deshalb bleibt
bei der Umcodierung die Notwendigkeit bestehen, eine sichere Umcodierung
von Multimediainhalten durch eine Zwischeneinheit oder einen Proxyserver
bereitzustellen.
-
BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt ein Verfahren zur sicheren Umcodierung
von Daten von einem Anbieter von Inhalten zur Verwendung durch eine
Client-Einheit bereit, wobei das Verfahren die folgenden Schritte
umfasst: Erzeugen einer Vielzahl von Datenkomponenten beim Anbieter
von Inhalten, wobei die Komponenten durch Zerlegung der Daten entstehen; Verschlüsseln (904)
jeder der Datenkomponenten; Übertragen
der verschlüsselten
Datenkomponenten vom Anbieter von Inhalten zu einem Umcodierungs-Proxyserver;
Umcodieren der verschlüsselten Datenkomponenten
im Proxyserver; selektives Bearbeiten der umcodierten verschlüsselten
Datenkomponenten; und Übertragen
der bearbeiteten umcodierten Datenkomponenten, die durch den Umcodierungs-Proxyserver
erzeugt wurden, zur Client-Einheit.
-
Die
vorliegende Erfindung stellt auch ein System nach Anspruch 18 und
einen Proxyserver nach Anspruch 18 bereit.
-
Die
vorliegende Erfindung stellt ein Computerprogrammprodukt bereit,
welches einen in einem computerlesbaren Speichermedium gespeicherten Computerprogrammcode
umfasst, der bei Ausführung
in einem Computer das oben beschriebene Verfahren realisiert.
-
Ein
Vorteil der vorliegenden Erfindung besteht darin, dass ein Verfahren
und eine Vorrichtung zur sicheren Umcodierung von Multimediainhalten durch
eine Zwischeneinheit bzw. einen Proxyserver zur bereitgestellt werden.
-
Ein
weiterer Vorteil der vorliegende Erfindung besteht darin, dass ein
Verfahren und eine Vorrichtung zur Umcodierung von Daten durch einen Proxyserver
bereitgestellt werden, ohne dass der Umcodierer die Daten entschlüsselt oder
die Sicherheitsgarantie der Endpunkt-zu-Endpunkt-Verbindung auf
andere Weise verletzt.
-
Die
vorliegende Erfindung stellt eine Lösung des durch einen Umcodierungs-Proxyserver
erzeugten Problems bereit, wobei der Proxyserver gemäß einer
Ausführungsart
vorzugsweise vom Anbieter von Inhalten verlangt, die Daten (z.B.
die Multimediainhalte) zuerst in mehrere Komponenten aufzuteilen oder
zu zergliedern. Jede dieser Komponenten kann dann einzeln entschlüsselt werden.
Ein dem Anbieter von Inhalten nachgeschalteter Umcodierungs-Proxyserver
filtert vorzugsweise bestimmte verschlüsselte Komponenten selektiv
aus bzw. löscht
sie. Durch diese selektive Filterung ist es möglich, komprimierte Inhalte
umzucodieren, wodurch die Übertragung
der Inhalte über
langsame Zugriffsverbindungen beschleunigt wird, ohne dass Komponenten
der Inhalte entschlüsselt
werden müssen.
-
Bei
einer Ausführungsart
enthält
die vorliegende Erfindung drei verteilte Einheiten bzw. Funktionseinheiten,
welche die Multimediainhalte codieren, sicher umcodieren sowie decodieren.
Die erste Einheit (z.B. ein Anbieter von Inhalten) teilt vorzugsweise
die Quellendaten eines vorhandenen Multimediaobjekts in mehrere
Datenkomponenten auf. Jede dieser Komponenten wird ferner vorzugsweise
durch einen Metadatenvorsatz gekennzeichnet, welcher Kennzeichnungsfelder
und Informationen zur relativen Wichtigkeit/Priorität der jeweiligen
Komponente oder andere Informationen enthält. Für jede Komponente codiert oder
erstellt der Anbieter von Inhalten vorzugsweise eine Nachricht,
welche einen Metadatenvorsatz in Klartext (unverschlüsselt),
eine verschlüsselte
Version des Metadatenvorsatzes und die verschlüsselte Komponente umfasst.
Dann sendet der Anbieter von Inhalten für jede Komponente die entsprechende
erstellte Nachricht zu zweiten Einheit, einem Umcodierungs-Proxyserver
oder einer Zwischeneinheit.
-
Der
Umcodierungs-Proxyserver empfängt die
diversen, jeder Komponente entsprechenden Nachrichten und untersucht
den Metadatenvorsatz jeder Nachricht, um zu ermitteln, welche verschlüsselten
Komponenten selektiv gefiltert werden sollen. Die restlichen Nachrichten
umfassen eine sicher umcodierte Version des ursprünglichen
Multimediaobjekts und werden dann zur dritten Einheit, einer Client-Einheit, übertragen.
-
Die
Client-Einheit empfängt
die restlichen Nachrichten. Die Client-Einheit entschlüsselt jede übertragene
Nachricht und vergleicht die entschlüsselte Version des Metadatenvorsatzes
mit dem in Klartext übertragenen
Metadatenvorsatz, welche beide der Nachricht entnommen werden. Wenn
die beiden Vorsätze
bis zu einem vorherbestimmten, annehmbaren Grad nicht übereinstimmen,
hat wahrscheinlich eine Manipulation stattgefunden. Wenn die beiden
Vorsätze übereinstimmen,
schlussfolgert die Client-Einheit daraus, dass keine Manipulation stattgefunden
hat, und decodiert nun die entschlüsselte Komponente der Nachricht.
-
Vorzugsweise
umfasst das Verfahren ferner das Komprimieren mindestens einer Datenkomponente
vor der Verschlüsselung
der Komponente.
-
Vorzugsweise
umfasst das Verfahren ferner das Dekomprimieren der mindestens einen
Datenkomponente nach der Entschlüsselung
der Komponente in der Client-Einheit.
-
Bei
den Daten handelt es sich vorzugsweise um ein Multimediaobjekt.
-
Das
Multimediaobjekt wird vorzugsweise aus der Gruppe ausgewählt, welche
eine Textseite, ein Bild, eine Audiodatei, ein Video, relationale
Daten, ein XML-Dokument und ein kombiniertes Objekt umfasst, wobei
Letzteres eine Kombination von Multimediaobjekten darstellt.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Im
Folgenden wird die vorliegende Erfindung beispielhaft unter Bezug
auf deren bevorzugte Ausführungsarten
beschrieben, die in den folgenden Zeichnungen dargestellt sind:
-
1 ist
ein Blockschaltbild, welches ein herkömmliches Datenübertragungssystem
zur Kanalcodierung und -decodierung von Daten darstellt.
-
2 ist
ein Blockschaltbild, welches ein Beispiel eines herkömmlichen
Systems darstellt, bei dem zur Kanalcodierung und -decodierung die
Quellencodierung und -decodierung verwendet wird.
-
3 ist
ein Blockschaltbild, welches ein herkömmliches System darstellt,
bei dem zusätzlich zur
Quellenumcodierung die Quellen- und Kanalcodierung/-decodierung
verwendet wird.
-
4 ist
ein Blockschaltbild, welches ein herkömmliches System zur Umcodierung
von Daten in einer Netzwerkumgebung darstellt, die zwischen dem
Server und dem Client einen Proxyserver enthält.
-
5 ist
ein Blockschaltbild, welches ein Beispiel zeigt, bei welchem ein
von einem Webserver übertragenes
Bild im GIF-Format
durch einen Umcodierungs-Proxyserver in das JPEG-Format umgewandelt
und im Browser angezeigt wird.
-
6 ist
ein Blockschaltbild, welches ein Beispiel eines Datenübertragungssystems
in einer Netzwerkumgebung zeigt, die zur sicheren Datenübertragung
zwischen einem Webserver und einem Browser eine SSL (Secure Socket
Layer, Sicherheitsschicht des Socket) verwendet.
-
7 ist
Prinzipschaltbild, das ein herkömmliches
System zur Datenübertragung
zwischen einem Anbieter von Inhalten und einem Client darstellt,
bei dem die Sicherheit der Endpunkt-zu-Endpunkt-Übertragung von verschlüsselten
Daten gewährleistet
ist.
-
8 ist
ein Prinzipschaltbild, welches das durch einen Umcodierungs-Proxyserver
in einem herkömmlichen
System zur Datenübertragung
zwischen einem Anbieter von Inhalten und einem Client hervorgerufene
Problem darstellt.
-
9 ist
ein Logikflussdiagramm eines Verfahrens zur Codierung/Verschlüsselung
von Daten gemäß einer
Ausführungsart
der vorliegenden Erfindung.
-
10 ist
ein Logikflussdiagramm eines Verfahrens zur Umcodierung von codierten/verschlüsselten
Daten mittels eines in 9 dargestellten Systems der
vorliegenden Erfindung.
-
11 ist
ein Logikflussdiagramm, welches ein Verfahren zur Codierung/Verschlüsselung
von empfangenen umcodierten Daten in einer Client-Einheit gemäß einer
Ausführungsart
der vorliegenden Erfindung darstellt.
-
12 ist
ein Prinzipschaltbild, welches drei Komponenten eines sicheren Umcodierungssystems gemäß einer
Ausführungsart
der vorliegenden Erfindung darstellt.
-
13 ist
ein Blockschaltbild, welches ein System gemäß einer anderen Ausführungsart
der vorliegenden Erfindung zur Umcodierung von Daten in einer Netzwerkumgebung
darstellt, die einen Proxyserver umfasst und eine Secure Socket
Layer (SSL) verwendet.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt
ein Datenübertragungssystem zum
Codieren und Decodieren von über
einen Kanal übertragenen
Daten. Dem Fachmann ist klar, dass der Kanal auf eine beliebige
in der Technik bekannte Art realisiert werden kann, zum Beispiel
in Form einer oder mehrerer reservierter Datenleitungen oder Datenübertragungsverbindungen
per Funk, zum Beispiel Mobilfunk-, Satelliten-, Mikrowellen- oder
Urspannungsnetzen (electromotive force, EMF). Bei einem typischen
Datenübertragungsprozess
werden die von einer Datenquelle oder einem Anbieter von Inhalten
gesendeten Daten üblicherweise
an der Quelle bzw. im Kanal codiert und decodiert, bevor sie ihr
Ziel (z.B. einen Benutzer) erreichen.
-
Die
Codierung 101 und die Decodierung 104 an der Quelle
in 1 betreffen allgemein Verfahren und Vorrichtungen
zur Verringerung bzw. Komprimierung der Gesamtmenge an Quellendaten
durch Beseitigung von Redundanzen in den Daten. In der Technik sind
verschiedene Komprimierungsverfahren bekannt, die zum Beispiel verlustfrei
(z.B. Codierung nach Ausführungshäufigkeit,
Huffman-Codierung, arithmetische Codierung und das im Befehl GZIP
unter UNIX durchgeführte
LZ-Verfahren), verlustbehaftet
(z.B. diskrete Kosinustransformation (Discrete Cosine Transformation,
DCT) und Wavelets) oder nach einer Kombination der beiden (z.B. JPEG)
arbeiten.
-
Nach
dem Komprimieren der Daten muss unter Umständen eine Kanalcodierung 102 erfolgen, zum
Beispiel mit der 8B/10B-Codierung
für das
Fiber-Channel- und Gigabit-Ethernet, um die Gleichspannungskomponente
der Daten zu beseitigen, die durch wechselspannungsgekoppelte Sender/Empfänger geschickt
werden. Die Kanalcodierung gewährleistet
durch ausreichend viele Datenübergänge eine
schnelle Datensynchronisierung. Zum Entfernen der zusätzlichen
Daten und/oder Übergänge ist
eine entsprechende Kanaldecodierung 103 erforderlich.
-
Wenn
das Kanalcodierungsverfahren des Senders vom Kanaldecodierungsverfahren
des Empfängers
verschieden ist, kann eine in 2 gezeigte Kanalumcodierung
der durch den Kanal übertragenen
Daten durchgeführt
werden. Bei diesem Schaltschema wird der Kanalumcodierer 203 normalerweise
zwischen den Kanalcodierer 202 und den Kanaldecodierer 203 geschaltet.
Der Quellencodierer 201 und der Decodierer 205 sind
davon nicht betroffen.
-
3 zeigt
ein herkömmliches
Szenario, bei welchem sich das Umcodierungsverfahren der Quelle
von dem des Empfängers
unterscheidet. Wenn sich das vom Quellencodierer 301 verwendete
Verfahren vom dem des Quellendecodierers 307 unterscheidet,
ist ein Quellenumcodierer 304 erforderlich. Außerdem muss
vor den Quellenumcodierer 304 ein Kanaldecodierer 303 gesetzt
werden, um den durch den Kanalcodierer 302 codierten Datenkanal
zu decodieren. Danach müssen
die durch den Quellenumcodierer 304 umcodierten Daten einer
Kanalcodierung durch den Kanalcodierer 305 unterzogen und beim
Empfänger
durch den Empfängerkanaldecodierer 306 wieder
decodiert werden.
-
Von
einer Netzwerkumgebung (z.B. beim Internet), die zum Beispiel unter
einem Datenübertragungsprotokoll
TCP/IP läuft,
ist bekannt, dass zwischen den Client und den Server ein Proxyserver oder
SOCK-Server geschaltet wird. Auf diese Weise führt der Proxyserver diverse
Netzwerkoperationen für
den Client aus. 4 veranschaulicht eine herkömmliche
Architektur mit einem solchen Proxyserver. In 4 können ein
Browser 409 (z.B. der Netscape Navigator {Netscape Navigator
ist eingetragenes Warenzeichen von Netscape Communications Corporation}
und der Internet Explorer {Internet Explorer ist ein eingetragenes
Warenzeichen von Microsoft Corporation}) und ein Webserver 401 (z.B.
der Apache-Server oder der Lotus-Domino-Server) unter einem statusfreien
Datenübertragungsprotokoll
wie beispielsweise dem Übertragungsprotokoll
für Hypertext
(Hypertext Transport Protocol, HTTP) laufen. Das HTTP-Protokoll
ruft das statusgebundene TCP-Protokoll und dieses wiederum das statusfreie Internetprotokoll
IP (402, 405, 407, 410) auf.
Bei dem in 4 gezeigten Beispiel wird das
IP-Paket dann zerlegt und durch einen zusätzlichen Datenvorsatz eingekapselt,
der vom Medienzugriffsprotokoll (Media Access Protocol, MAC) 403, 404, 408 und 411 (z.B.
Ethernet, Fiber Channel, asynchroner Übertragungsmodus (Asynchronous
Transfer Mode, ATM)) gefordert wird. Im Allgemeinen stellt der Browser 409 zuerst
eine Verbindung zu Proxyserver 406 her. Dann besteht die
Aufgabe des Proxyservers 406 darin, eine Verbindung zum
Webserver 401 herzustellen und die vom Browser 409 zum
Webserver 401 gesendeten Daten weiterzuleiten. Dem Fachmann
ist bekannt, dass Proxyserver beispielsweise oft für Firewalls
verwendet werden, sodass jede vom Browser ankommende Verbindung überprüft und die
Zieladresse kontrolliert werden kann.
-
5 zeigt
als Beispiel ein Szenario, bei dem ein in einem Webserver 502 gespeichertes GIF-Bild 501 durch
einen Browser 513 abgerufen wird. Bei diesem Beispiel kann
der Proxyserver 507 das GIF-Bildformat 501 mittels
eines Umcodierungsmoduls 508, das für eine solche Umcodierung eingerichtet
ist, in ein JPEG-Format 514 umgewandelt oder umcodiert
werden. Gemäß mindestens
einem Aspekt kann dies wünschenswert
sein, da hierdurch das Datenvolumen des Quellenbildes verringert
wird. Das in 5 gezeigte Beispiel zeigt deutlich,
dass der Browser 513, der Proxyserver 507 und
der Webserver 502 über
die Protokolle TCP/IP (503, 506, 509, 512)
und das MAC (504, 505, 510, 511)
miteinander kommunizieren.
-
Um
die Datenübertragung
sicher zu gestalten, können
der Browser und der Webserver Daten über eine SSL austauschen, in
der die Daten aus Sicherheitsgründen
mittels bekannter Verschlüsselungsschemata,
zum Beispiel DES und Public-Key (öffentlicher Schlüssel), verschlüsselt werden
können. 6 zeigt
ein Beispiel einer herkömmlichen Topologie
für sichere
Datenübertragung.
Eine sichere Schicht (z.B. SSL) 607, 602 in 6 befindet
sich auf der Seite des Clients normalerweise zwischen dem Browser 608 und
dem TCP/IP 606 und auf der Seite des Servers zwischen dem
Webserver 601 und dem TCP/IP 603. Die Sicherheit
wird immer für
eine bestimmte Sitzung gewährleistet.
Dem Fachmann ist bekannt, dass die SSL 607 auf der Seite
des Browser zuerst die Einrichtung einer Verbindung zur SSL 602 auf
der Seite des Webserver anfordert. Die SSL 602 beim Server
genehmigt diese Verbindung und sendet einen öffentlichen Schlüssel zum
Browser 608. Dann verschlüsselt die SSL 607 beim
Browser mittels des vom Server 601 empfangenen öffentlichen
Schlüssels
einen Sitzungsschlüssel
und sendet diesen zum Server. Danach entschlüsselt die SSL 602 des
Servers diesen Sitzungsschlüssel
mittels ihres eigenen privaten Schlüssels. Ab diesem Zeitpunkt
tauschen der Browser 608 und der Server 601 ihre
Daten mittels desselben Sitzungsschlüssels aus. Alle vom Browser
und vom Server gesendeten Daten werden mittels desselben Sitzungsschlüssels verschlüsselt.
-
Es
ist klar, dass die SSL-Schicht für
die Schichten TCP/IP 603, 605 und MAC 604, 605 beim Server
bzw. beim Browser transparent sind. Wenn ein TCP/IP-Protokoll verwendet
wird, kann darüber hinaus
ein proxyähnlicher
Dienst (z.B. eine Firewall) zwischen einen Browser und einen Server
geschaltet werden, wobei die Proxyeinheit weiterhin in der Lage ist,
den Anfordernden (Browser) und das Ziel (Server) anhand der IP-Adresse zu überprüfen. Der
Proxyserver ist dann jedoch nicht in der Lage, die Daten einzusehen,
die sie vollständig
verschlüsselt
sind. Ein Beispiel eines typischen Verschlüsselungsverfahren ist in 7 dargestellt.
Ein Anbieter von Inhalten gemäß 7 kann
eine Datenkomprimierung 702 durchführen (z.B. mittels eines bekannten
Quellencodierungsverfahrens wie beispielsweise JPEG) und die Daten,
im vorliegenden Falle ein Bild, verschlüsseln. Diese verschlüsselten
Daten 705 können dann über einen
Kanal eines Datenübertragungsnetzes
zu der Client-Einheit gesendet werden, welche die Daten anfordert.
Wenn die Client-Einheit sicher ist, verfügt sie über den Algorithmus zur Entschlüsselung 704 und
Dekomprimierung 703 der Daten, sodass sie das Originalbild
im Wesentlichen wiederherstellen kann.
-
Wenn
ein Außenstehender
die verschlüsselten
Daten an einem beliebigen Punkt des Netzwerks zwischen dem Anbieter
von Inhalten und der Client-Einheit betrachtet, kann er die Daten
nicht abhören,
denn er erkennt nur ein undefinierbares Datengewirr 705,
das er ohne den Entschlüsselungsalgorithmus
nicht entziffern kann.
-
Es
ist klar, dass die in dem Systembeispiel von 7 dargestellte
Verschlüsselung
erst nach der Komprimierung beim Sender (d.h. beim Anbieter von Inhalten)
erfolgt. Herkömmliche
Komprimierungsalgorithmen (Quellencodierungen) sind im Allgemeinen
so beschaffen, dass sie sowohl statistische Datenredundanzen beseitigen
als auch den Umfang der Ausgangsdaten verringern. Verschlüsselungsalgorithmen
hingegen würfeln
die Daten so durcheinander, dass sie wie Zufallswerte aussehen (d.h.
die statistische Redundanz wird beseitigt), während der Datenumfang im Vergleich
zu den eingegebenen Originaldaten nicht verringert wird, sondern
sogar vergrößert werden
kann. Wenn die Datenverschlüsselung vor
dem Komprimierungsschritt erfolgen würde, würden die Daten durch den Verschlüsselungsschritt
so durcheinander gewürfelt,
dass während
der Komprimierung nur sehr wenige statistische Redundanzen beseitigt
werden können,
falls überhaupt
noch welche vorhanden sind. Das führt dazu, dass die Daten kaum
komprimiert würden.
Die durch die Verschlüsselung
erzeugte Verteilung kann vielmehr so zufällig sein, dass der Komprimierungsalgorithmus
den Datenumfang nicht verringert, sondern eher vergrößert. Aus
diesem Grunde werden die Daten beim Sender vorzugsweise zuerst komprimiert
und dann verschlüsselt.
-
8 zeigt,
dass als Zwischenglied zwischen einen Anbieter von Inhalten und
eine Client-Einheit ein Umcodierungs-Proxyserver eingeschaltet werden kann.
Der Proxyserver dient im Wesentlichen zur Umcodierung der Daten,
um entweder den Datenumfang zu verringern, sodass die Antwortzeit
verkürzt
(d.h. der Datendurchsatz beschleunigt) wird, oder um das Datenformat
in ein Format umzuwandeln, das zur Darstellung in der Client-Einheit
geeignet ist. In beiden Fällen
muss, wenn sich im System ein Umcodierungs-Proxyserver befindet,
der Proxyserver zur Umcodierung standardmäßig zuerst den verschlüsselten
Datenstrom (der von einem Anbieter von Inhalten komprimiert und
verschlüsselt wurde)
entschlüsseln,
bevor er mit der Umcodierung beginnen kann. Der Umcodierungs-Proxyserver in 8 entschlüsselt zuerst
die Daten 804, dekomprimiert die Daten 803, komprimiert
die Daten erneut 806 mittels eines Komprimierungsalgorithmus
und ändert
dadurch deren Umfang und/oder ihr Format. Zum Schluss verschlüsselt der
Proxyserver die umcodierten Daten erneut 805, um sie über ein
Netzwerk zur Client-Einheit zu übertragen.
Beim Client werden die Daten erneut entschlüsselt 807 und unter Verwendung
des neuen Komprimierungsalgorithmus (Quellencodierung) vom Umcodierungs-Proxyserver dekomprimiert.
-
Eine
wichtige und möglicherweise
fatale Folge dieses herkömmlichen
Umcodierungsansatzes gemäß 8 besteht
darin, dass ein Dritter unberechtigt auf die unverschlüsselten
Daten zugreifen kann, wenn sie durch den Umcodierungs-Proxyserver
entschlüsselt
und noch nicht wieder verschlüsselt wurden.
Durch diesen Zustand wird die Sicherheitsgarantie für die Vertraulichkeit
der Endpunkt-zu-Endpunkt-Verbindung verletzt, die der Verschlüsselung zugrunde
liegt, bei der nur der Sender und der Empfänger auf die nicht durcheinander
gewürfelten Daten zugreifen
dürfen.
Obwohl es sich bei den Umcodierungs-Proxyservern in bestimmten Fällen um
Einheiten handeln kann, die vom Sender und Empfänger als vertrauenswürdig angesehen
werden, sind Umcodierungs-Proxyserver im Allgemeinen nur selten sicher.
-
Bei
Umcodierungs-Systeme und -verfahren nach dem Stand der Technik wurde
für gewöhnlich davon
ausgegangen, dass nur unverschlüsselte
Daten komprimiert werden können.
Das liegt daran, dass die von einem Umcodierer verwendeten Komprimierungsalgorithmen
eine ausgeklügelte
Datensemantik und/oder -statistik erfordern, um den Datenumfang
zu verringern. Bisher wurde angenommen, dass diese semantische Analyse
nur bei geordneten/entschlüsselten
Daten möglich
ist.
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zur sicheren Umcodierung von Daten durch eine Zwischeneinheit bzw.
einen Proxyserver, der zwischen eine oder mehrere Datenquellen (z.B.
Anbieter von Multimediainhalten) einerseits, zum Beispiel einen
Webserver, und eine oder mehrere Client-Einheiten andererseits,
zum Beispiel einen Webbrowser oder andere Einheiten, geschaltet ist.
Gemäß der vorliegenden
Erfindung wird die Umcodierung an verschlüsselten Daten vorgenommen, ohne
diese vorher entschlüsseln
zu müssen.
Bei einer bevorzugten Ausführungsart
enthält
die Erfindung drei verteilte Einheiten oder Elemente, wobei die
erste Einheit (z.B. der Anbieter von Inhalten) an Quellendaten (z.B.
Multimediaobjekten) eine Codierungsoperation vornimmt, die zweite
Einheit die Daten sicher umcodiert und die dritte Einheit (z.B.
die Client-Einheit oder der Browser) die von der Umcodierungseinheit
empfangenen Daten decodiert. Die 9 bis 11 zeigen
jeweils eine bevorzugte Ausführungsart
dieser drei Haupteinheiten. Außerdem
zeigt 12 ein Beispiel eines gemäß der vorliegenden
Erfindung gebildeten vollkommen sicheren Umcodierungssystems, jedoch
ist das System nicht auf diese Topologie beschränkt.
-
Obwohl
das hier beschriebene System der vorliegenden Erfindung drei voneinander
getrennte Funktionsblöcke
oder -einheiten umfasst, ist klar, dass diese drei Funktionsblöcke sich
nicht unbedingt an physisch voneinander getrennten fernen Standorten
befinden müssen.
Es gehört
beispielsweise zum Geltungsbereich der vorliegenden Erfindung, dass kein
extra Umcodierungs-Proxyserver
erforderlich ist, sondern die Umcodierungseinheit einen integrierten
Bestandteil entweder des Anbieter von Inhalten oder einer Client-Einheit
bildet.
-
Eine
Ausführungsart
einer gemäß der vorliegenden
Erfindung gebildeten Codierungseinheit nach 9, wie sie
beispielsweise durch einen Datenanbieter realisiert werden kann,
beginnt vorzugsweise mit einer Codierungsprozedur von Eingabedaten
in Form eines vorhandenen Multimediaobjekts oder ähnlicher
Daten 900 und erzeugt aus diesen Daten zum Beispiel durch
Zerlegung 901 der Daten eine vorgegebene Anzahl von Komponenten 906 (d.h. durch
Komponentenzerlegung). Durch die Komponentenzerlegung des Datenobjekts
können
K Komponenten entstehen, wobei der Wert K im vorliegenden Falle
größer oder
gleich eins ist. Die Datenkomponenten 906 können überlappende
oder redundante Daten enthalten. Zum Beispiel kann jede Datenkomponente
eine Kopie des ursprünglichen
Objekts enthalten. Desgleichen können
die Datenkomponenten 906 vollständig voneinander verschieden
sein. Ein Bild kann zum Beispiel so in eine Vielzahl sich gegenseitig
nicht überlappender
geografischer Bereiche aufgeteilt werden, dass beim Zusammensetzen aller
Bereiche das ursprüngliche
Bild vollständig
wiederentsteht, wobei jeder Bereich als Einzelkomponente dargestellt
wird. Der Komponentenzerlegungsprozess 901 kann mittels
dem Fachmann bekannter Verfahren durchgeführt werden, zum Beispiel mittels eines
progressiven Codierungsalgorithmus oder eines Schichtalgorithmus
wie beispielsweise der Teilbereichscodierung oder der Wavelet-Verfahren.
-
Bei
einer (in 9 nicht gezeigten) bevorzugten
Ausführungsart
der vorliegenden Erfindung kann nacheinander jede Datenkomponente 906 komprimiert
oder codiert werden (siehe z.B. Bezugsnummer 1202 in 12).
Im Folgenden wird der Begriff „Komprimierung" zum Bezeichnen der
Komprimierung und/oder der Codierung verwendet. Es ist klar, dass
der Begriff „Codierung" im herkömmlichen
Sinne umfassender ist als der Begriff Komprimierung und oft als
Prozess definiert wird, durch den eine digitale Darstellung eines
Multimediaobjektes oder anderer Quellendaten erzeugt wird. Im Gegensatz
zur Komprimierung muss bei der Codierung jedoch nicht unbedingt
eine digitale Darstellung entstehen, die kleiner als die eingegebene
digitale Darstellung des Objekts ist.
-
Bei
der Komprimierung braucht der Komprimierungsalgorithmus oder das
Komprimierungsverfahren, das auf eine bestimmte Datenkomponente angewendet
wird, nicht mit dem auf eine andere Komponente angewendeten Komprimierungsalgorithmus
identisch zu sein, obwohl bei der vorliegenden Erfindung auch ein
einziges Komprimierungsmittel verwendet werden kann. Der auf eine
Komponente angewendete Komprimierungsalgorithmus kann außer den
zum ursprünglichen
Objekt gehörenden Komponentendaten
auch andere Informationen als Eingabeparameter akzeptieren, zum Beispiel
Informationen, welche den verwendeten Komprimierungsgrad und/oder
-typ beeinflussen können. 12 zeigt
ein Beispiel, bei welchem ein Komprimierungsalgorithmus „C" eine einzelne Datenkomponente
empfängt.
-
Die
Datenquelle bzw. der Anbieter von Inhalten erzeugt vorzugsweise
auch Metadateninformationen 903, die zu den Datenkomponenten 906 hinzugefügt bzw.
in sie eingefügt
werden. Dem Fachmann ist bekannt, dass Metadaten vielfach zur Kennzeichnung
der Daten gebraucht werden, denen sie beigefügt werden; kurz gesagt, es
sind „Daten
von Daten". Diese
Metadaten 903 können
zum Beispiel Anmerkungen zur Kennzeichnung von Komponenten umfassen
und/oder Beschreibungen zur relativen oder absoluten Wichtigkeit
einer Einzelkomponente enthalten. Ebenso können die Metadateninformationen 903 auch
Informationen zum semantischen Inhalt der Komponente oder des gesamten
Objekts, Folgenummern Hash-Zeichen, Einweg-Hash-Zeichen von Komponentendaten
zum Manipulationsnachweis oder andere Informationen enthalten, die
für den nachfolgenden
Umcodierungsprozess hilfreich sein können. Darüber hinaus können die
Metadaten in einer beliebigen geeigneten Sprache bzw. einem beliebigen
Format vorliegen, die mit dem Anbieter von Inhalten, dem Umcodierungs-Proxyserver
und der Client-Einheit kompatibel sind. Zum Beispiel können die Metadaten
in einer eXtensible Markup Language (XML) geschrieben sein, welche
eine Variante von MPEG-7 darstellt. Im Folgenden werden die hier
beschriebenen Metadateninformationen als „Metadatenvorsatz" (meta data header)
bezeichnet, obwohl klar ist, dass sich die Metadaten an einer beliebigen Stelle
der Nachricht befinden können
und nicht auf den Anfang der Nachricht oder des Datenstrom beschränkt sind.
-
Ferner
erzeugt der Anbieter von Inhalten oder die Datenquelle gemäß 9 vorzugsweise zwei
Versionen von Metadateninformationen, die mit den Komponenten verknüpft werden
sollen: eine Version 903, die verschlüsselt wird, und eine zweite
Version 905, die in einem unverschlüsselten Format (d.h. in Klartext)
bleibt. Zwar zeigt 9 die Erzeugung von lediglich
zwei Typen von Metadaten, jedoch können mittels der vorliegenden
Erfindung auch mehrere Versionen der Metadaten erzeugt werden, von
denen jede einzelne verschlüsselt
werden oder unverschlüsselt
bleiben kann, oder es kann auch nur eine einzige Version der Metadaten
erzeugt werden. Die beiden Versionen des Metadatenvorsatzes 903, 905 werden
zum Schluss von der Client-Einheit vorzugsweise zum Nachweis von
Manipulationen sowie für andere
brauchbare Anwendungen eingesetzt. Die Klartextversion des Metadatenvorsatzes 905 braucht mit
dem verschlüsselten
Metadatenvorsatz 903 nicht unbedingt identisch zu sein.
Bei einem von der Client-Einheit verwendeten Schema zum Nachweis
von Manipulationen sollte die zu verschlüsselnde Metadatenversion 903 genügend Informationen
enthalten, damit eine Client-Einheit die beiden empfangenen Versionen
des Metadatenvorsatzes 903, 905 vergleichen kann,
um zumindest Manipulationen der übertragenen
Metadateninformationen zu erkennen.
-
Der
Anbieter von Inhalten setzt für
jede Komponente 906 der Ursprungsdaten 900 vorzugsweise eine
oder mehrere Nachrichten 907 zusammen, die zur Client-Einheit
gesendet werden, wobei die Nachricht den Klartext-Metadatenvorsatz 905,
eine verschlüsselte
Version des Metadatenvorsatzes 904 und/oder verschlüsselte Komponententeile
der Daten von einer oder mehreren Komponenten 906 in sich
vereint. Ein Komponententeil ist im vorliegenden Dokument als Teilmenge
der eine bestimmte Komponente darstellenden Daten definiert, die
wiederum eine Teilmenge der das Multimediaobjekt 900 darstellenden
Daten sind. Jede Komponente 906 eines Objekts 900 umfasst
vorzugsweise einen oder mehrere Komponententeile, denen jeweils
Daten eines bestimmten Typs und/oder einer bestimmten Funktion zugewiesen
sein können.
Zum Beispiel kann eine Komponente einen verschlüsselten Datenteil und einen
Klartext-Metadatenteil
enthalten. Komponententeile können
vor der Komprimierung, während
des Komprimierungsprozesses oder während des Verschlüsselungsprozesses
erzeugt werden. Der zu einer zusammengestellten Nachricht gehörende Klartext-Metadatenvorsatz 905 kann
Metadaten enthalten, welche nicht unbedingt die in derselben Nachricht
enthaltenen Komponententeile kennzeichnen oder beschreiben oder
sich anderweitig auf sie beziehen müssen. Bei einem möglichen
Szenario kennzeichnen und/oder beschreiben die Metadaten einen oder
mehrere, aber nicht unbedingt alle in derselben Nachricht enthaltenen
Komponententeile.
-
Der
auf die Kombination des Metadatenvorsatzes 903 und die
komprimierten Komponentendaten 902 angewendete Verschlüsselungsalgorithmus oder
-prozess 904 kann je nach der Komponente und/oder den Komponententeilen
verschieden sein. Auch wenn der Verschlüsselungsalgorithmus für jede Komponente
gleich ist, können
für die
Metadatenvorsätze 903,
die verschiedenen Komponenten oder sogar für Komponententeile innerhalb
einer Nachricht 907 verschiedene Chiffrierschlüssel in
den Verschlüsselungsalgorithmus 904 eingegeben
werden. Kurz gesagt, eine bevorzugte Ausführungsart der vorliegenden
Erfindung ermöglicht,
dass jeder Teil der Nachricht, egal ob Metadatenvorsatz oder Komponententeil,
unabhängig
voneinander und einzeln verschlüsselt
werden kann. Im einfachsten Falle kann somit zum Beispiel jeder
Metadatenvorsatz und jede Komponente, also jeder Komponententeil
jeder Nachricht, mittels desselben Algorithmus und desselben Chiffrierschlüssels verschlüsselt werden.
Dem Fachmann ist bekannt, dass entsprechend der bekannten Verschlüsselungsterminologie
entweder asymmetrische öffentliche
Schlüssel
oder symmetrische Schlüssel
infrage kommen.
-
Die
zusammengesetzten Nachrichten 907, welche die diversen
Komponenten des Multimediaobjekts darstellen, werden zusammen mit
weiteren eingefügten
Informationen vorzugsweise über
einen Datenübertragungskanal
zu einem Umcodierungs-Proxyserver übertragen. Wie oben erörtert, kann
der Datenübertragungskanal
auf beliebige Weise realisiert werden, zum Beispiel durch eine reservierte
Datenleitung oder eine Datenübertragungsverbindung
per Funk, zum Beispiel über
Mobilfunk-, Satelliten- oder Mikrowellennetze. Bei einer in 10 gezeigten
bevorzugten Ausführungsart
der Arbeitsweise des Umcodierungs-Proxyservers beginnt der Umcodierungsprozess,
wenn der Umcodierungs-Proxyserver
die zusammengesetzten Nachrichten vom Anbieter von Inhalten empfängt 1001, welche
die diversen Komponenten des Multimediaobjekts darstellen. Der Umcodierungs-Proxyserver entnimmt
jeder zusammengesetzten Nachricht vorzugsweise den (unverschlüsselten)
Klartext-Metadatenvorsatz 1002, wobei er erwartet, dass
die empfangene Nachricht einen solchen Klartextteil enthält. Unter
Verwendung der im entnommenen Metadatenvorsatz enthaltenen Information
bearbeitet der Umcodierungs-Proxyserver selektiv 1003 die
empfangenen Komponenten, zum Beispiel welche verschlüsselten
Komponenten oder Komponententeile der empfangenen Nachricht(en)
gefiltert werden sollen. Es ist klar, dass gemäß der vorliegenden Erfindung ebenso
auch andere Formen der Datenbearbeitung verwendet werden können, um
die Daten des Multimediaobjekts in ein Format umzuwandeln, das von der
Client-Einheit verarbeitet werden kann.
-
Im
Rahmen der vorliegenden Beschreibung wird mit dem Begriff „Filtern" das Überspringen
oder Ersetzen bestimmter Komponenten oder Komponententeile bezeichnet,
obwohl die vorliegende Erfindung ebenso auch andere geeignete Umwandlungsoperationen
zulässt,
die für
eine Umcodierungs-Anwendung
erforderlich sein können.
Die Entscheidung, ob der Umcodierungs-Proxyserver eine Komponente
oder einen Komponententeil filtern soll, fällt er anhand der durch den
Metadatenvorsatz einer einzelnen Nachricht gelieferten Information
oder der in den Metadatenvorsätzen
mehrerer Nachrichten enthaltenen Informationen. Dann kann der Proxyserver Teile
einer Nachricht löschen,
die durch die Metadateninformation gekennzeichnet sind, ganze Nachrichten
löschen
oder einen bzw. mehrere vorgegebene Teile einer Nachricht durch
andere Daten ersetzen, wobei er davon ausgeht, dass die durch die
Metadaten gekennzeichneten Nachrichtenteile durch andere Daten ersetzt
werden sollen. Ein Teil einer Nachricht ist im vorliegenden Dokument
als ein oder mehrere Komponententeile der Nachricht definiert. Die
nach dem Filterungsprozess verbleibenden Nachrichten, die ganz oder
teilweise verändert
wurden, stellen eine sicher umcodierte Version der Ursprungsdaten
(z.B. des Multimediaobjekts) dar. Jede dieser umcodierten Nachrichten
wird anschließend über einen
Datenübertragungskanal
zu einer Client-Einheit übertragen 1004.
-
Der
Prozess der Datenbearbeitung (z.B. die selektive Filterung, das Überspringen
oder Ersetzen verschlüsselter
gekennzeichneter Komponenten) durch den Umcodierungs-Proxyserver gemäß der vorliegenden
Erfindung bewirkt eine sichere Umcodierung, da der Umfang des entstandenen
Multimediaobjekts durch eine Zwischeneinheit komprimiert wurde,
ohne dass Daten (d.h. Komponenten) entschlüsselt werden mussten, welche
das Objekt darstellen. Die Metadatenvorsätze oder andere geeignete gleichwertige
Kennzeichnungsdaten, welche jede Nachricht begleiten, liefern dem
Umcodierungs-Proxyserver
genügend
semantische Hinweise zu den Komponenten, anhand derer er kompetent
entscheiden kann, welche Komponenten gefiltert und welche zur Client-Einheit
gesendet werden sollen.
-
Dabei
sei daran erinnert, dass im Gegensatz dazu bei herkömmlichen
Ansätzen
zur Umcodierung nicht ein extra Metadatenvorsatz oder eine ähnliche Kennzeichnung
verwendet wird, sondern dass die Daten selbst den semantischen Bezug
liefern müssen.
Bei einem solchen herkömmlichen
Umcodierungsverfahren müssen
die Daten daher zuerst entschlüsselt
werden, um an die zur Umcodierung der Daten benötigten Daten zu gelangen. Der
Vorteil der vorliegenden Erfindung besteht darin, dass sie diese Bedingung
umgeht und zeigt, dass man mittels der Umcodierung durch selektives
Filtern verschlüsselter und
gekennzeichneter, in Komponenten aufgeteilter Inhalte eine sichere
Umcodierung (z.B. Komprimierung des Umfangs der verschlüsselten
Daten) erreichen kann, ohne dass die Daten durch eine Zwischeneinheit
entschlüsselt
werden müssen.
Auf diese Weise gewährleistet
das System der vorliegenden Erfindung die Sicherheit der Endpunkt-zu-Endpunkt-Verbindung.
-
11 zeigt
ein Flussdiagramm für
die Verarbeitung in der Client-Einheit gemäß einer bevorzugten Ausführungsart
der vorliegenden Erfindung. Es sei daran erinnert, dass eine Client-Einheit
vorzugsweise über
einen Datenübertragungskanal,
zum Beispiel eine reservierte Datenleitung oder eine Datenübertragungsleitung
per Funk, funktionell mit dem Umcodierungs-Proxyserver verbunden
ist. Der Decodierungsprozess in der Client-Einheit oder im Browser
beginnt vorzugsweise mit dem Empfang 1101 einer vom Umcodierungs-Proxyserver
gesendeten umcodierten Nachrichtenkomponente. Die Client-Einheit
entschlüsselt 1102 für jede empfangene
Nachricht den verschlüsselten
Teil des in der Nachricht enthaltenen Metadatenvorsatzes und vergleicht 1103 die
entschlüsselte
Vorsatzversion mit dem in der Nachricht enthaltenen Klartext-Metadatenvorsatz.
Es ist klar, dass die Kriterien, ob die beiden Vorsatzversionen
(d.h. die entschlüsselte
und die Klartextversion) bei diesem Vergleich übereinstimmen, vorzugsweise
durch die Client-Einheit selbst festgelegt werden, sodass die Übereinstimmung
nicht unbedingt genau sein muss. Desgleichen ist denkbar, dass der für das gesamte
Umcodierungssystem erforderliche Übereinstimmungsgrad vom Anbieter
von Inhalten festgelegt werden kann.
-
Wenn
die beiden Metadatenvorsatzversionen nicht übereinstimmen 1106, zeigt die
Client-Einheit vorzugsweise in geeigneter Weise einem Benutzer an,
dass die Metadateninformation manipuliert wurde. Diese Manipulationsanzeige
kann visuell erfolgen, zum Beispiel durch eine Leuchtanzeige oder eine
durch die Client-Einheit angezeigte Textnachricht, oder in akustischer
Form. Wenn die beiden Metadatenvorsätze übereinstimmen 1107 (d.h.
wenn keine Manipulation nachgewiesen wird), setzt die Client-Einheit
vorzugsweise die Verarbeitung des verschlüsselten Komponententeils der
Nachricht fort. Wenn die Client-Einheit die verschlüsselten
Komponentendaten unmittelbar nach der Entschlüsselung des Metadatenvorsatzes
entschlüsselt,
findet zu diesem Zeitpunkt nur die Dekomprimierung/Decodierung der
Nachricht statt. Wenn die Client-Einheit die verschlüsselten
Komponentendaten hingegen erst nach der Überprüfung durch den Vergleichsschritt 1103 entschlüsselt, finden
sowohl die Verschlüsselung
als auch die Dekomprimierung/Decodierung der verschlüsselten
Komponentendaten statt.
-
Es
ist klar, dass auch andere in die verschlüsselten Metadatenvorsätze einbezogene
Informationen dazu verwendet werden können, um die Erkennung von
Manipulationen auszuweiten, zum Beispiel verschlüsselte Einweg-Hashzeichen (zum Nachweis
von Manipulationen an Komponententeilen innerhalb der Nachricht),
Folgenummern oder Zeitmarken zur globalen Berücksichtigung von Manipulationen
am gesamten Multimediaobjekt. Wenn der verschlüsselte Metadatenvorsatz zum
Beispiel ein oder mehrere Einweg-Hashzeichen der Komponententeile
enthält,
kann die Client-Einheit Manipulationen an verschlüsselten
Komponententeilen mit hoher Wahrscheinlichkeit erkennen. Auch wenn
die verschlüsselten
Metadatenvorsätze
Folgenummern enthalten, zum Beispiel „dies ist Nachricht 1 von
K", „dies ist
Nachricht 2 von K" usw.,
kann die Client-Einheit eine oder mehrere fehlende Komponenten in
einer empfangenen Datenfolge erkennen und so, je nach der von der
Client-Einheit verwendeten Definition, Manipulationen in Betracht
ziehen.
-
12 zeigt
als Beispiel ein Blockschaltbild eines gemäß der vorliegenden Erfindung
gebildeten sicheren Umcodierungssystems. Das Gesamtsystem von 12 enthält einen
Anbieter von Inhalten oder eine ähnliche
Datenquelle, einen Umcodierungs-Proxyserver und eine Client-Einheit
als berechtigten Empfänger
der umcodierten Daten. In der Anordnung von 12 werden über einen
gemeinsam genutzten Datenübertragungskanal
zusammengesetzte Nachrichten vom Anbieter von Inhalten zu einem
Umcodierungs-Proxyserver übertragen.
Bei dieser Ausführungsart
sind eine oder mehrere Multiplexer-/Demultiplexerfunktionen 1208, 1209, 1210, 1219 dargestellt,
obwohl diese Funktionen auch durch das Betriebssystem bereitgestellt
werden können,
unter welchem der Codierungsprozess läuft. Bei einer anderen Ausführungsart
der vorliegenden Erfindung kann jede zusammengesetzte Nachricht
oder Komponente auf einem eigenen Pfad zum Umcodierungs-Proxyserver gelangen,
sodass das Multiplexen und Demultiplexen im Prinzip entfallen kann.
-
Der
einfacheren Erklärung
halber wird das ursprüngliche
Quellendatenobjekt vom Anbieter von Inhalten des sicheren Umcodierungssystems
in zwei Komponenten aufgeteilt 1201. Kasten „M" 1206 dient zur
Erzeugung der Metadatenvorsätze
und Kasten „H" 1207 zur
Erzeugung der entsprechenden Klartext-Metadatenvorsätze. Zur Erzeugung der Klartext-Metadaten
werden vorzugsweise Daten verwendet, die bereits für den Metadatenvorsatz 1206 erzeugt
wurden. Im einfachsten Falle sind die beiden Versionen des Metadatenvorsatzes
vorzugsweise identisch, obwohl die vorliegende Erfindung nicht darauf
beschränkt
ist. Der für
die Komponente 1 zu verschlüsselnde Metadatenvorsatz trägt die Bezeichnung „Metadaten 1" und die entsprechende
Klartextversion des Metadatenvorsatzes für die Komponente 1 die
Bezeichnung „Metadaten 1B". Entsprechend trägt der für die Komponente 2 zu
verschlüsselnde Metadatenvorsatz
die Bezeichnung „Metadaten 2" und die entsprechende
Klartextversion des Metadatenvorsatzes für die Komponente 2 die
Bezeichnung „Metadaten 2B".
-
Die
durch die Prozesse 1206 und 1207 erzeugten Metadatenvorsätze 1 bzw. 1B werden
vorzugsweise nur von den Daten der Komponente 1 abgeleitet.
Ein Metadatenvorsatz wird an ein vorhandenes Paket oder eine Datenkomponente
nach der Komprimierung 1202 angehängt 1203. Zuerst wird der
Metadatenvorsatz 1 an die komprimierten Daten der Komponente 1 angehängt und
dann diese gesamte Einheit verschlüsselt 1204. Danach
wird der Klartext-Metadatenvorsatz 1B an diese gesamte
verschlüsselte
Einheit angehängt,
welche den Metadatenvorsatz und die komprimierten Komponentendaten
umfasst. Das Ergebnis der zweiten Anhangoperation 1205 ist
eine zusammengesetzte Nachricht 1. Beim vorliegenden Beispiel
sind alle Teile der Nachricht 1, der Klartext-Metadatenvorsatz,
der verschlüsselte
Metadatenvorsatz und die verschlüsselten Komponentendaten,
vorzugsweise ausschließlich von
der Komponente 1 und von keiner anderen Komponente abgeleitet.
Desgleichen wird eine andere Nachricht ausschließlich unter Verwendung der
Komponente 2 erzeugt. Man beachte, dass dieses Beispiel
weder den allgemeinen Fall der Aufteilung einer Komponente in Komponententeile
noch den Fall zeigt, dass eine Nachricht Komponententeile von verschiedenen
Komponenten enthalten kann, die beide im Geltungsbereich der vorliegenden
Erfindung liegen. Das Zusammensetzen der Nachricht beschränkt sich
auch nicht auf zwei aufeinanderfolgende Anhangoperationen gemäß, 12.
-
Der
in dem beispielhaften System von 12 dargestellte
Umcodierungs-Proxyserver empfängt
zwei Komponenten. Diese Komponenten werden vorzugsweise im Demultiplexer 1209 voneinander
getrennt und dann ihre Klartext-Metadatenvorsätze entnommen 1213 („Metadaten 1B" und „Metadaten 2B"). Beim vorliegenden
Beispiel bearbeitet der Umcodierungs-Proxyserver die Komponenten, indem
er die Komponente 2 löscht
und die verbleibende Komponente 1 zu ihrem Ziel, also zur
Client-Einheit,
weiterleitet. Allgemein können
jedoch K Nachrichten vorliegen, von denen der Proxyserver L (L kleiner
oder gleich K) Nachrichten löschen
und die verbleibenden K–L
Nachrichten verändern
kann, zum Beispiel durch Filtern (z.B. durch Ersetzen von Nachrichten
oder Nachrichtenteilen). Die verbleibenden Nachrichten können anschließend neu
zusammengesetzt werden 1212 (z.B., indem Metadatenvorsätze wieder
mit den Daten verknüpft
werden, mit denen sie jeweils angekommen sind).
-
Beim
Filterungsprozess selbst führt
das Abbilden einer Nachricht ausschließlich auf eine Komponente dazu,
dass der Umcodierungs-Proxyserver im weiteren Verlauf seine Filterung
nicht anhand der relativen Wichtigkeit der Komponenten untereinander,
sondern nur anhand absoluter Prioritätsdaten entscheiden kann. Mit
anderen Worten, wenn der Umcodierungs-Proxyserver zum Beispiel die Nachricht 1 empfängt, prüft er deren
entsprechenden Metadatenvorsatz 1B, der nur die absolute
Wichtigkeit der Komponente 1 angeben kann, da die Metadaten von
den Daten anderer Komponenten unabhängig sind. Zum Beispiel kann
die Nachricht ihre eigene absolute Priorität durch den Wert 50 beschreiben. Wenn
der Proxyserver eine Strategie verfolgt, dass bei Datenstau alle
Pakete/Nachrichten mit einer Priorität kleiner als 10 gelöscht werden
sollen, wird der Proxyserver diese Nachricht nie löschen. Für diese Entscheidung
benötigt
der Proxyserver keine weiteren Informationen über die anderen Komponenten des
Multimediaobjekts. Obwohl dieser Ansatz eine relativ einfache Architektur
benötigt,
ist er aus mehreren Gründen
nicht für
alle Anwendungen gut geeignet.
-
Deshalb
muss darauf verwiesen werden, dass die sichere Umcodierungsarchitektur
der vorliegenden Erfindung gleichermaßen auch den Fall unterstützt, in
welchem der Umcodierungs-Proxyserver seine Entscheidung zur Filterung
(oder anderen Bearbeitung/Umwandlung) einer bestimmten Komponente
entsprechend der relativen Wichtigkeit/Priorität der Komponenten untereinander
fällt.
Bei dieser Ausführungsart
enthalten die Metadatenvorsätze
von einer oder mehreren Nachrichten vorzugsweise Daten zur relativen
Rangfolge oder Priorität,
die im Proxyserver gesammelt und verglichen werden müssen, bevor
der Proxyserver entscheiden kann, welche Komponente(n), Kompönententeil(e)
und/oder Nachricht einen) gefiltert werden sollen. Zum Beispiel
kann die Komponente 1 anstelle einer absoluten Priorität nur ihre
relative Wichtigkeit darstellen (z.B., dass die Komponente 1 wichtiger
ist oder eine höhere
Priorität hat
als die Komponente 2). In diesem Fall muss der Proxyserver
eine bestimmte Zeit lang warten, um ausreichend Metadateninformationen
zu sammeln, bevor er seine Entscheidung zur Filterung fällt.
-
Während der
Verarbeitung auf der Seite der Client-Einheit des beispielhaften
Systems von 12 entnimmt die Client-Einheit
nach dem Demultiplexen 1219 vorzugsweise zuerst jeder Komponente
den Klartext-Metadatenvorsatz (Metadaten 1B). Diese Klartext-Metadaten
werden vorzugsweise für den
späteren Vergleich
mit der verschlüsselten
Version des Metadatenvorsatzes (Metadaten 1) gespeichert.
Nach dem Entnehmen des Klartext-Metadatenvorsatzes entschlüsselt 1217 die
Client-Einheit vorzugsweise den verschlüsselten Metadatenvorsatz und
die verschlüsselten
Komponentendaten. Dann wird der entschlüsselte Metadatenvorsatz (Metadaten 1)
den entschlüsselten
Komponentendaten entnommen 1216 und mit dem Klartext-Metadatenvorsatz
verglichen 1214, um mögliche
Manipulationen zu erkennen. Wenn keine Datenmanipulationen gefunden
wurden, dekomprimiert 1215 die Client-Einheit vorzugsweise
die Komponentendaten, um sie einem Benutzer anzuzeigen. Je nach
den Möglichkeiten
der Client-Einheit, Datenmanipulationen nachzuweisen (d.h., dass
die beiden Versionen der Metadatenvorsätze nicht ein Mindestmaß an Übereinstimmung
zeigen), wird dem Benutzer vorzugsweise ein Manipulationshinweis
angezeigt. Alternativ kann die Client-Einheit die Daten einfach ignorieren,
da sie möglicherweise
beschädigt
sind.
-
Das
System der vorliegenden Erfindung kann mittels einer SSL-Infrastruktur realisiert
werden, die als Beispiel in 13 dargestellt
ist. Bei dieser beispielhaften Ausführung erzeugt ein Sitzungsmanager 1303 beim
Sender oder Anbieter von Inhalten 1315 vorzugsweise mehrere
SSL-Verbindungen und verwaltet alle diese SSL-Verbindungen parallel.
Der Sitzungsmanager 1303 ist auch für das Erzeugen einer oder mehrerer
anderer Verbindungen zuständig, die
keine SSL-Verbindungen
sind, sodass der Umcodierungs-Proxyserver 1316 die Sitzungsinformationen
in Klartext aufnehmen kann. Vorzugsweise ist der Umcodierungs-Proxyserver
dafür zuständig, anhand
der vom Sender durch den Klartextkanal gesendeten Metadaten sowie
der Umcodierungsstrategie zu ermitteln, ob eine TCP-Verbindung hergestellt oder
beendet wird. Der Sitzungsmanager 1312 auf der Seite des
Empfängers
oder Clients (Browser) ist für
das Zusammensetzen der ankommenden Kanäle 1314 zu einer einzigen
Nachricht zuständig,
die der Browser 1317 nutzen kann. Man beachte, dass bei dieser
Ausführung
die Metadaten für
jede Einzelkomponente durch die Verbindungskennung (Verbindungs-ID)
seitens des Sitzungsmanagers gekennzeichnet wurden. Wenn für die Sitzung
weitere Metadaten im Klartextformat erforderlich sind, werden sie vorzugsweise über zusätzliche
Verbindungen übertragen,
die keine SSL-Verbindungen sind.
-
Die
vorliegende Erfindung stellt ein Verfahren und eine Vorrichtung
zum Verbreiten von Daten über
Netzwerke und damit ein Mittel zur sicheren Umcodierung von Daten,
zum Beispiel von Multimediaobjekten, durch eine Zwischeneinheit
oder einen Umcodierungs-Proxyserver zur Verfügung. Die Quellendaten werden
zuerst beim Anbieter von Inhalten in eine Vielzahl von Datenkomponenten
zerlegt, welche die ursprünglichen
Quellendaten darstellen. Vor dem Versenden als Nachricht zum Proxyserver
wird an jede Komponente ein unverschlüsselter Metadatenvorsatz angehängt. Der
Proxyserver bearbeitet die Datenkomponenten anhand der unverschlüsselten (Klartext-)
Metadaten oder anderer Daten, welche die semantische Bedeutung der
Komponente erschließen
und den empfangenen Nachrichten entnommen wurden, und leitet nur
bestimmte Komponenten weiter, die zur Anzeige in der Client-Einheit
vorgesehen sind. Mittels der vorliegenden Erfindung können in
einem Netzwerk Informationen von einem Anbieter von Inhalten durch
einen mit dem Anbieter von Inhalten verbundenen Proxyserver sicher
umcodiert werden, ohne dass dieser die Quellendaten entschlüsseln muss.
-
Obwohl
im vorliegenden Dokument anschauliche Ausführungsarten der vorliegenden
Erfindung unter Bezug auf die beiliegenden Zeichnungen beschrieben
wurden, ist klar, dass die Erfindung nicht auf genau diese Ausführungsarten
beschränkt
ist, sondern dass der Fachmann diverse Änderungen und Abwandlungen
daran vornehmen kann, ohne vom Geltungsbereich der Erfindung abzuweichen.