-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein die Steuerung des Zugriffs
auf digitale Inhalte, und insbesondere Systeme auf Basis von Etiketten
und Verfahren zur Begrenzung des Zugriffs auf Streaming-Medien, wobei das
Etikett teilweise auf einer zeitlichen Komponente basiert.
-
2. Beschreibung des zugehörigen Standes
der Technik
-
Mit
dem Aufkommen des Internets und des World Wide Web hat sich eine
Industrie rund um die Lieferung von digitalen Inhalten entwickelt,
wie etwa Inhalte von Streaming-Medien. Zum Beispiel können Streaming-Medien
für eine
beliebige Anzahl von Zwecken verwendet werden, die Unterhaltung,
Fernlehre und betriebliche Zwecke einschließen. Unterhaltungsunternehmen
streamen Spielfilme, Sportereignisse, Fernlehreinrichtungen streamen
Lehrinhalte und Unternehmen streamen Trainingsmaterial.
-
Bei
vielen solchen Verwendungen von Streaming-Medien ist Zugangskontrolle
zum Inhalt unbedingt erforderlich. Zum Beispiel können Unterhaltungsunternehmen
Endbenutzern für
jedes Ansehen eines Inhalts von Streaming-Medien eine Gebühr berechnen,
was in der Umgangssprache der Unterhaltungsbranche „Bezahlen-pro-Ansicht (pay-per-view)" genannt wird. Ebenso
berechnen Fernlehreinrichtungen Studenten für den Zugang zu Online-Lehrveranstaltungen
eine Gebühr,
und folglich für
den Zugang zu Streaming-Medien. Unternehmensbezogene Inhalte sind
oft vertraulich, und erfordern folglich ebenso eine Zugangskontrolle.
-
Dementsprechend
sind Systeme entwickelt worden, um den Zugang zu Streaming-Medien
zu begrenzen. Das Patent
US 6032260 zum
Beispiel bezieht sich auf die Aktualisierung von Benutzerauthentifizierung
und/oder -berechtigung für
Datenkommunikationen und auf aktualisierte Daten, die über ein
verteiltes Rechnersystemen und eine Serverarchitektur verteilt werden,
die die Benutzerauthentifizierung und/oder -berechtigung aufrechterhalten.
An dem aktuellen Industriestandard für die Zugriffsbegrenzung auf
Streaming-Inhalte ist diese Art von Streaming-Medienserver beteiligt,
der Endbenutzer authentifiziert, bevor die Streaming-Medieninhalte
bereitgestellt werden. Insbesondere enthält der Streaming-Medienserver
ein Software-Plugin aus kompiliertem Code, der die Logik für die Feststellung
enthält,
ob Zugriff auf die Streaming-Medien gewährt werden soll oder nicht.
Ein solcher Authentifizierungs-Plug-in ist jedoch oft kompliziert
und schwer zu entwickeln und zu warten. Wenn zum Beispiel die Anforderung
entsteht, die Logik für
das Gewähren
von Zugriff auf die Inhalte der Streaming-Medien zu ändern, ist
das Ändern
des kompilierten Plug-ins auf dem Streaming-Medienserver schwierig.
Darüber
hinaus muss der Streaming-Medienserver mit der ganzen Logik, die sich
auf dem Streaming-Medienserver befindet, direkten Zugriff auf eine
Datenbank oder verteilte Nachrichtenweiterleitungsdienste haben. Ähnliche
Probleme bestehen bei Systemen, die für die Steuerung des Zugriffs auf
andere Formen von digitalen Inhalten verwendet werden. Dementsprechend
besteht ein Bedarf nach einem verbesserten System und Verfahren
für die
Zugriffssteuerung auf digitale Inhalte, insbesondere auf Streaming-Medieninhalte,
und die Authentifizierung von Endbenutzern.
-
3. Zusammenfassung der
Erfindung
-
Die
vorliegende Erfindung löst
dieses und andere Bedürfnisse,
indem ein Verfahren und ein System für die Zugriffssteuerung auf
digitale Inhalte – wie
etwa Audio-, visuelle, Video-, Text- und Streaming-Medien – entsprechend
dem Gegenstand der Ansprüche
1 beziehungsweise 17 geschaffen wird.
-
Ein
System und ein Verfahren nach der vorliegenden Erfindung steuern
den Zugriff auf Streaming-Medien und umfassen einen Webserver, einen
Medienserver und einen Prozessor eines Endbenutzers, wie etwa einen
PC, der mit einem Netzwerk verbunden ist.
-
Bei
der Verwendung erzeugt der Webserver kryptographisch ein Etikett
als Reaktion auf die Anfrage eines Endbenutzers nach Zugriff auf
eine Datei. Das Etikett basiert wenigstens teilweise auf einem Zeitpunkt, zu
dem oder nahe dem das Etikett erzeugt wird. In bestimmten Ausführungen
basiert das Etikett auch auf zusätzlichen
Informationen, die zum Beispiel ein Sicherheitszeitintervall oder
eine Kennung des Benutzers umfassen.
-
Bevor
ein Medienserver Zugriff auf die angefragte Datei gewährt, erzeugt
der Medienserver ein Berechtigungsetikett, wobei er vorzugsweise
denselben kryptographischen Algorithmus wie der Webserver verwendet.
Das Berechtigungsetikett des Medienservers basiert wenigstens teilweise
auf einem Zeitpunkt, zu dem oder nahe dem der Medienservers die
Anfrage nach Zugriff auf die Datei empfängt. Der Medienserver legt
fest, ob er den Zugriff auf die Datei gestattet, indem er das Etikett,
das von dem Webserver erzeugt wurde, mit dem Etikett vergleicht,
das von dem Medienserver erzeugt wurde.
-
Wenn
die Etiketten in einer Ausführung
nicht übereinstimmen,
dann weicht der Zeitpunkt, zu dem der Webserver das Etikett erzeugt
hat, von dem Zeitpunkt, zu dem der Medienserver das Etikett erzeugt
hat, um mehr als einen vorher festgelegten Betrag ab, und das Etikett kann
logisch als „abgelaufen" betrachtet werden. Dementsprechend
gewährt
der Medienserver keinen Zugriff auf den Medieninhalt. Wenn die Etiketten übereinstimmen,
dann wurden die Etiketten innerhalb eines zulässigen Zeitintervalls erzeugt,
und der Medienserver gewährt
dem Endbenutzer Zugriff auf den angefragten Medieninhalt.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine schematische Darstellung, die das System nach einer Ausführung der
vorliegenden Erfindung darstellt;
-
2 ist
eine schematische Darstellung, die die Datenbank nach einer Ausführung der
vorliegenden Erfindung darstellt;
-
3 ist
eine schematische Darstellung, die den Arbeitsablauf nach einer
Ausführung
der vorliegenden Erfindung zeigt;
-
4 ist
ein Flussdiagramm, das den Prozess der Erzeugung eines Etiketts
nach einer Ausführung der
vorliegenden Erfindung darstellt;
-
5 ist
ein Flussdiagramm, das nach einer Ausführung der vorliegenden Erfindung
den Prozess der Feststellung darstellt, ob Zugriff auf ein Objekt
eines Streaming-Medien-Inhalts gewährt werden soll;
-
6 ist
eine schematische Darstellung des Systems nach einer alternativen
Ausführung
der vorliegenden Erfindung;
-
7 ist
eine schematische Darstellung der Datenbank nach einer alternativen
Ausführung
der vorliegenden Erfindung; und
-
8 ist
eine schematische Darstellung des Arbeitsablaufs nach einer alternativen
Ausführung
der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGEN
-
Bestimmte
bevorzugte Ausführungen
der vorliegenden Erfindung werden nun mit Bezug auf die Zeichnungen
beschrieben. Obwohl die Erfindung zur Steuerung des Zugriffs auf
Inhalte mit dem Kontext der Zugriffssteuerung auf Streaming-Medien-Dateien
beschrieben wird, ist zu verstehen, dass die vorliegende Erfindung
auf alle Typen von Medien oder Dateien angewendet werden kann. Darüber hinaus
erkennt ein Fachmann, dass, obwohl sich die hier diskutierten Ausführungen
auf abrufbare Streaming-Medien beziehen, die vorliegende Ausführung auch
auf Live-Streaming-Medien angewendet werden kann.
-
Im
allgemeinen umfasst das System nach der vorliegenden Ausführung Prozessoren
eines Endbenutzers 102, einen Streaming-Medienserver 104 und einen
Webserver 106 mit einer Datenbank für die Verwaltung der Inhalte
(CM, Content Management) 108, die alle mit dem Internet
verbunden sind. Die Prozessoren des Endbenutzers 102 enthalten
einen Internetbrowser, wie etwa den, der von der Microsoft Corporation
unter dem Namen INTERNET EXPLORER geliefert wird, oder den, der
von Netscape Communications unter dem Namen NETSCAPE NAVIGATOR geliefert
wird, und eine Medienwiedergabeeinrichtung für Streaming-Medien, wie etwa
die, der von der Microsoft Corporation unter dem Namen WINDOWS MEDIA
PLAYER geliefert wird, oder die, der von Real Networks Inc. unter
dem Namen REALPLAYER geliefert wird. Der Webserver 106 stellt
eine Webseite bereit, auf die von den Endbenutzern 102 zugegriffen
werden kann. Die Webseite enthält wiederum
Verknüpfungen,
die von den Endbe nutzern 102 aktiviert werden können, um
auf Streaming-Medieninhalte
zuzugreifen, die sich auf dem Streaming-Medienserver 104 befinden.
-
Es
ist zu verstehen, dass die vorliegende Erfindung mit einer beliebigen
Anzahl von Computertechnologien implementiert werden kann. Obwohl
die vorliegenden Ausführungen
sich zum Beispiel auf die Bereitstellung von Zugriff auf Inhalte über das
Internet beziehen, kann die vorliegende Erfindung über jedes
Computernetzwerk genutzt werden, einschließlich zum Beispiel einem Weitbereichsnetz
(Wide Area Network). Ebenso können
die Prozessoren der Benutzer 102 jede Einrichtung sein,
die mit dem Netzwerk verbunden werden kann, einschließlich zum
Beispiel persönlichen
digitalen Assistenten (PDAs), web-fähigen Mobiltelefonen, Festnetztelefonen,
die sich in das Netzwerk einwählen,
mobilen Rechnern, PCs, Einrichtungen des Internets und dergleichen.
Darüber
hinaus können
die Server, die hier beschrieben sind, von jedem Typ sein, und auf ihnen
kann irgendeine Software laufen, und die Softwaremodule, Objekte
und Plug-ins, die hier beschrieben sind, können in jeder Programmiersprache
geschrieben sein. Schließlich
können
die Datenbank und die Speichereinrichtungen, die hier beschrieben
sind, jede Speichertechnik nutzen, einschließlich zum Beispiel lokalem Rechnerspeicher, über ein
Netzwerk verbundenem Speicher, und allen bekannten Speichermedien,
wie etwa magnetische oder optische.
-
Eine
beispielhafte Darstellung der CM-Datenbank 108 ist in 2 gezeigt.
Wie gezeigt enthält
die Datenbank 108 Informationen, die universell auf alle
Objekte in Streaming-Inhalten und einige Tabellen mit zugehörigen Daten
angewendet werden können.
Die universellen Informationen 202 umfassen einen Sicherheitsschlüssel, ein
Sicherheitszeitintervall und den Namen („Hostname") des Streaming- Medienservers 104, auf dem
sich der Inhalt befindet. Der Sicherheitsschlüssel und das Sicherheitsintervall
werden bei der Autorisierung von Endbenutzern 102 verwendet,
damit sie auf den Inhalt zugreifen können, und werden deshalb vorzugsweise
im geheimen gewartet und von dem Besitzer des Inhaltes festgelegt.
Der Sicherheitsschlüssel
und das Sicherheitsintervall werden für die Zugriffssteuerung auf
alle Inhalte verwendet, obwohl in alternativen Ausführungen
jeder Datei mit Inhalt ihr eigener Sicherheitsschlüssel und
ihr eigenes Sicherheitsintervall zugeordnet ist.
-
Die
CM-Datenbank 108 enthält
weiter eine Reihe von Tabellen, die Informationen mit Angaben zu
Inhalten oder Streams enthalten. Genauer gesagt enthält die Tabelle
der Streams 204 einen Datensatz für jedes Objekt von Streaming-Inhalten,
das durch eine eindeutige Stream-Kennung (ID) identifiziert ist.
Darüber
hinaus enthält
jeder Datensatz: Streamdetails, die die Datei mit Inhalt beschreiben,
einschließlich
zum Beispiel des Erzeugungsdatums der Datei mit Inhalten, einer
Beschreibung der Datei, einer Angabe, ob der Inhalt Audio oder Video
ist, der Plattform, zu der der Inhalt gehört, dem Datum, an dem der Inhalt
zuletzt modifiziert wurde, irgendeines Codecs, der zum Betrachten
des Inhalts erforderlich ist, der Länge und Größe des Inhalts, des Ablaufdatums
des Inhalts (wenn es eines gibt), des Stream-Typs, wie etwa .asf
oder .rm, des Titels des Inhalts, des Autors des Inhalts, des Status
des Inhalts, eines Urheberrechtsvermerks für den Inhalt, der Bitrate des
Inhalts und dergleichen. Jeder Datensatz enthält außerdem: das Präfix, das
verwendet wird, um eine Verknüpfung
mit dem Medienserver 104 zu erzeugen („URL-Präfix") und den Namen der Datei mit dem Inhalt
(„Dateiname"), wie er auf dem
Streaming-Medienserver 104 gespeichert ist. Es ist zu verstehen,
dass der Dateiname bei der Speicherung auf einen konkreten Pfad
zeigen kann, der mit dem Streaming-Medienserver 104 für Inhalte auf
Abruf verbunden ist, oder der Dateiname kann auf einen Alias, Port
oder Kanal für
einen Live-Stream zeigen.
-
Die
Datenbank 108 umfasst außerdem Tabellen, die Informationen
einer „Titelliste" enthalten. Die Titelliste
eines Kunden ist im allgemeinen eine Gruppe von einer oder mehreren
Dateien mit Inhalten, die zu dem Zweck logisch miteinander in Beziehung
gesetzt sind, dass sie als Gruppe verfügbar gemacht werden. Jede Datei
mit Inhalt, die als Teil einer Titelliste angegeben ist, kann auch
einzeln verfügbar
gemacht werden. Solche Informationen von Titellisten sind in der
Tabelle der Titellisten 208 und in der Tabelle der Streams
der Titellisten 210 enthalten. Im allgemeinen enthält die Tabelle
der Titellisten 208 Datensätze, die jede Titelliste identifizieren,
die durch eine Titellisten-ID
identifiziert ist. Jeder Datensatz enthält weitere Details der Titelliste,
einschließlich
zum Beispiel dem Format der Titelliste (wie etwa Windows Media Player
oder RealPlayer), die Beschreibung der Titelliste, den Namen der
Titelliste und dergleichen und die ID der autorisierten Benutzergruppe für die Titelliste.
-
Die
ID der autorisierten Benutzergruppe entspricht einer Gruppe von
Endbenutzern 102, die berechtigt sind, die bestimmte Titelliste
anzusehen. Insbesondere enthält
die Datenbank 108 weiter eine Tabelle mit Berechtigten
Benutzern 206, die jeden Endbenutzer 102, der
durch eine eindeutige Endbenutzer-ID identifiziert ist, mit einer
oder mehreren IDs von autorisierten Benutzergruppen in Beziehung
setzt. Damit ein Endbenutzer 102 eine Titelliste ansehen
kann, muss der Endbenutzer 102 als Teil der ID der autorisierten
Benutzergruppe für
diese Datei mit Inhalt angegeben sein. In bestimmten alternativen
Ausführungen
wird keine ID für
eine berechtigte Gruppe verwendet, während in anderen alternativen
Ausführungen
jeder Datei mit Inhalten eine ID einer berechtigten Gruppe zugeordnet
ist.
-
Die
Tabelle der Streams der Titellisten 210 enthält Datensätze, die
jede Titelliste, die durch die Titellisten-ID identifiziert wird,
mit den Dateien mit Inhalt, aus denen sie besteht, die durch die
eine Stream-ID identifiziert
werden, in Bezug setzt. Jeder Datensatz enthält auch die Informationen,
die die Reihenfolge von allen Dateien mit Inhalt in der Titelliste
angibt („Reihenfolge
der Sortierung").
-
Nachdem
die Komponenten beschrieben wurden, die in der vorliegenden Ausführung genutzt
werden, wird nun der Prozess der Zugriffssteuerung auf Streaming-Medien-Inhalte
beschrieben. Als ein Überblick
erzeugt eine Softwarekomponente für die Autorisierung, die sich
auf dem Webserver 106 befindet, einen Hash-Wert oder ein
Etikett, das auf Informationen des öffentlichen Schlüssels, des
privaten Schlüssels
und dem aktuellen Zeitpunkt basiert. Der öffentliche Schlüssel ist
eine eindeutige Kennung des Streaming-Inhalts, der von dem Endbenutzer 102 und
der Benutzer-ID des Endbenutzers angefordert wurde. Der private
Schlüssel
enthält
einen Sicherheitsschlüssel
und ein Sicherheitszeitintervall, das von dem Besitzer des Inhalts
festgelegt wird.
-
Der
Streaming-Medienserver 104, auf dem sich der angeforderte
Inhalt befindet, empfängt
die Anfrage nach dem Stream, die den öffentlichen Schlüssel und
das Etikett enthält,
das von dem Webserver 106 erzeugt wurde. Der Streaming-Medienserver 104 fährt damit
fort, dass er lokal gespeicherte Informationen des privaten Schlüssels verwendet,
um seine eigene Version des Etiketts zu erzeugen. Der Streaming-Medienserver 104 gewährt Zugriff
auf den angefragten Streaming-Medien-Inhalt oder verweigert ihn
auf Basis eines Vergleichs der Etiketten, die von dem Streaming-Medienserver 104 und
dem Webserver 106 erzeugt wurden.
-
Der
Prozess der Zugriffssteuerung wird nun detaillierter mit Bezug auf
das Arbeitsablaufdiagramm in 3 und die
Flussdiagramme in den 4 und 5 beschrieben.
In dem vorliegenden Beispiel fragt der Endbenutzer 102 Zugriff
auf eine einzelne Datei mit Streaming-Medien-Inhalt an. Zu Beginn
stellt der Webserver 106 eine Webseite bereit, die den
Benutzer auffordert, sich in eine Autorisierungsanwendung einzuloggen, und
präsentiert
dem Endbenutzer die Option, bestimmte Streaming-Medien anzusehen.
Dies ist Schritt 302. Zum Beispiel kann eine solche Seite
ein Formular enthalten, das den Endbenutzer auffordert, eine von
verschiedenen Dateien mit Inhalten zum Ansehen auszuwählen, von
denen jede ihre eigene Verknüpfung
zur Anfrage des Streams aufweist, seine Endbenutzer-ID einzugeben
(die der Besitzer des Inhalts dem Endbenutzer zuvor zugeordnet und
bereitgestellt hat), und eine Kreditkartennummer anzugeben, sodass
dem Endbenutzer der Zugriff auf den ausgewählten Inhalt in Rechnung gestellt
werden kann. In einer anderen Ausführung hat sich der Benutzer
zuvor bei dem Besitzer des Inhalts registriert, indem er Kontaktinformationen
und Informationen zur Rechnungsstellung des Endbenutzers bereitgestellt
hat, die der Besitzer in einer Tabelle in der Datenbank zusammen
mit der zugeordneten Endbenutzer-ID speichert.
-
Als
Reaktion auf die Webseite stellt der Endbenutzer die Benutzer-ID
des Endbenutzers bereit und aktiviert eine Verknüpfung, wodurch er sich in die
Autorisierungsanwendung einloggt und Zugriff auf die spezielle Datei
mit dem Streaming-Medien-Inhalt anfordert, die der Verknüpfung zugeordnet
ist. Schritt 304. Eine beispielhafte Anfrage nach einem
Stream, in der die Stream-ID durch „123456" dargestellt ist, ist die folgende:
<A href http://webserver.unternehmen.com/stream_erhalten.asp?ID=123456>.
-
In
der vorliegenden Ausführung
ist Authentifizierungsanwendung eine .dll-Softwarekomponente, die sich
auf dem Webserver 106 befindet. Ein Fachmann erkennt jedoch,
dass irgend eine andere Programmiersprache oder -technik, wie etwa
zum Beispiel eine aktive Serverseite (ASP, active server page) oder
ein Servlet, verwendet werden kann, um die hier beschriebene Funktionalität zu implementieren.
Unabhängig
von der speziellen Programmiertechnik wird bevorzugt, dass die Authentifizierungsanwendung
auf dem Webserver 106 läuft,
um irgendwelche Engpässe
bei der Verarbeitung auf dem Prozessor des Endbenutzers 102 zu
entschärfen.
-
Nachdem
sich der Benutzer in die Authentifizierungsanwendung eingeloggt
und der Webserver 106 die Anfrage nach dem Stream und die
Endbenutzer-ID von dem Endbenutzer empfangen hat, fährt der
Webserver 106 fort, indem er das Berechtigungsetikett dynamisch
erzeugt und dynamisch eine Verknüpfung
mit der ausgewählten
Datei mit dem Inhalt erzeugt. Insbesondere macht der Webserver 106 unter
der Steuerung der Authentifizierungsanwendung eine Anfrage an die
Datenbank 108 nach dem privaten Schlüssel für die Verwendung beim Erzeugen
des Berechtigungsetiketts. Die ist Schritt 306. Der Webserver 106 macht
eine Datenbankanfrage, um aus der CM-Datenbank 108 den privaten
Schlüssel
abzufragen, der den Sicherheitsschlüssel und das Sicherheitsintervall
enthält,
die der angefragten Datei mit dem Inhalt zugeordnet sind. Als Reaktion gibt
die CM-Datenbank 108 den
privaten Schlüssel
an den Webserver 106 zurück. Dies ist Schritt 308.
-
Nachdem
der private Schlüssel
von der Datenbank 108 erhalten wurde, erzeugt der Webserver 106 das
Etikett. Dies ist Schritt 310. Wie vollständiger mit
Bezug auf 4 beschrieben ist, nutzt der
Webserver 106 den privaten Schlüssel, die Stream-ID, die Endbenutzer-ID,
die aktuelle Zeit und einen Hash-Algorithmus, um das Etikett zu
erzeugen. In der vorliegenden Ausführung kann der Webserver 106 die
Stream-ID verwenden, um das Etikett zu erzeugen, weil die Stream-ID
des angefragten Inhalts in der Verknüpfung der Anfrage nach dem
Stream enthalten ist, die der Endbenutzer in Schritt 304 aktiviert
hat. In anderen Ausführungen
enthält
die Anfrage nach dem Stream, die von dem Endbenutzer bereitgestellt
wurde, andere eindeutige Identifizierungsinformationen als die Stream-ID,
wie etwa z. B. den Titel, den Autor und/oder den Dateinamen des Inhalts.
In einer solchen Ausführung
durchsucht der Webserver 106 die Tabelle der Streams 204 und
ruft die Stream-ID auf Basis der identifizierenden Informationen
ab, die in der Anfrage nach den Stream enthalten sind. In noch einer
anderen alternativen Ausführung
enthält
die Anfrage nach dem Stream eine eindeutige Kennung, die von der
Stream-ID verschieden
ist, wie etwa den Dateinamen oder Pfad, den das System verwendet,
um das Etikett zu erzeugen.
-
Nachdem
das Etikett erzeugt ist, erzeugt der Webserver 106 die
Verknüpfung
zu dem angefragten Inhalt auf dem Medienserver 104. Insbesondere
erzeugt die Medienwiedergabeeinrichtung auf dem Prozessor des Endbenutzers 102 auf
Basis der beispielhaften Anfrage nach einem Stream, die oben gezeigt
ist, einen Aufruf an „webserver.unternehmen.com" (das heißt, den
Webserver 106), der das Programm „stream_erhalten.asp" ausführt, um
die Verknüpfung
zu dem Medienserver 104 dynamisch zu erzeugen. Dies ist
Schritt 312. Ein Fachmann erkennt, dass obwohl die Anwendung „stream_erhalten" eine Dateinamenerweiterung
einer aktiven Serverseite (ASP, Active Server Page) hat, es nicht
erforderlich ist, ASP-Techniken zu verwenden. Stattdessen kann irgend
eine Programmierung oder Skript-Sprache
oder Technik, wie etwa eine „.dll"-Komponente, verwendet
werden, um die gewünschte
Funktionalität
bereitzustellen. Wie bei der Authentifizierungsanwendung wird jedoch
bevorzugt, dass das Programm auf der Serverseite läuft, um
irgendwelche Engpässe
bei der Verarbeitung auf den Prozessor des Endbenutzers 102 zu
entschärfen.
Das Programm „stream_erhalten.asp" bewirkt, dass der
Webserver 106 veranlasst wird, einen Aufruf an die CM-Datenbank 108 zu
machen, um die Daten abzurufen, die erforderlich sind, um die Verknüpfung zu
dem Medienserver 104 dynamisch zu erzeugen. Insbesondere
ruft der Webserver 106 den Hostnamen aus der Tabelle mit
allgemeinen Informationen 202 und das URL-Präfix und
den Dateinamen aus der Tabelle der Streams 204 ab. Das
Programm „stream_erhalten.asp" hängt außerdem die
Stream-ID, das Etikett und die Endbenutzer-ID an das Ende der Verknüpfung an.
Der Webserver 106 gibt dann die Verknüpfung an die Medienwiedergabeeinrichtung auf
dem Prozessor des Endbenutzers 102 zurück. Dies ist Schritt 314.
-
Eine
beispielhafte Verknüpfung
mit der Mediendatei ist die folgende, wobei: das URL-Präfix durch „mms://"dargestellt ist;
der Hostname durch „medienserver.unternehmen.com" dargestellt ist;
der Dateiname durch „stream1.asf" dargestellt ist;
die Stream-ID des angefragten Inhaltsobjekts durch „123456" dargestellt ist;
das Etikett durch „uvw123xyz" dargestellt ist;
und die Endbenutzer-ID durch „abc123def" dargestellt ist.
<REF href="mms://medienserver.unternehmen.com/stream1.asf?ID=123456&ETIKETT=uvw123xyz&BENUTZER_ID=abc123def">
-
Nachdem
die Verknüpfung
empfangen wurde, fährt
der Prozessor des Endbenutzers 102 damit fort, den Streaming-Medien-Inhalt
anzufragen. Dies ist Schritt 316. Insbesondere ruft die
Medienwiedergabeeinrichtung, die sich auf dem Prozessor des Endbenutzers 102 befindet, „medienserver.unternehmen.com" (das heißt, den
Streaming-Medienserver 104),
wie in der Verknüpfung
angegeben, auf. Als Teil des Aufrufs liefert die Medienwiedergabeeinrichtung
dem Streaming-Medienserver 104 eine
Kopie der Stream-ID des angefragten Inhalts, das Etikett, das von
dem Webserver 106 erzeugt wurde und die Endbenutzer-ID.
-
Nachdem
die Verknüpfung
empfangen wurde, die die Stream-ID, die Endbenutzer-ID und das Etikett enthält, fährt der
Streaming-Medienserver 104 damit
fort, festzustellen, ob dem Endbenutzer Zugriff auf den angefragten
Inhalt gewährt
wird oder nicht. Dies ist Schritt 318. Wie unten detaillierter
mit Bezug auf 5 beschrieben ist, stellt der
Streaming-Medienserver 104 fest, ob er Zugriff gewährt oder
nicht, indem er auf Basis von lokal gespeicherten Informationen über den
privaten Schlüssel
und die Stream-ID und die Endbenutzer-ID, die in der Verknüpfung enthalten
sind, unabhängig
ein Etikett erzeugt. Wenn das Etikett, das von dem Streaming-Medienserver 104 erzeugt
wird, mit dem Etikett übereinstimmt,
das von dem Webserver 106 erzeugt wurde, liefert der Streaming-Medienserver 104 im
allgemeinen die angefragten Streaming-Medien-Inhalte an den Prozessor des Endbenutzers 102.
Dies ist Schritt 320.
-
Der
Prozess zur Erzeugung des Etiketts durch den Webserver 106 wird
nun detaillierter mit Bezug auf 4 beschrieben.
Wie oben angemerkt wurde, wird der Prozess zur Erzeugung des Etiketts
vorzugsweise durch ein Autorisierungssoftware-Plug-in durchgeführt, das
sich auf dem Webserver 106 befindet. In der vorliegenden
Aus führung
beginnt der Prozess damit, dass der Webserver 106 die Anfrage
nach dem Stream empfängt,
die die Stream-ID und die Endbenutzer-ID enthält. Dies ist Schritt 402.
Der-Server 106 fährt
dann damit fort, auf die Datenbank 108 zuzugreifen, um
Informationen des privaten Schlüssels
abzurufen, die der ID des angefragten Streams zugeordnet sind. Dies
ist Schritt 406. Diese Informationen des privaten Schlüssels enthalten
den universellen Sicherheitsschlüssel
und das Sicherheitsintervall. In einer alternativen Ausführung hat jeder
Stream seinen eigenen Sicherheitsschlüssel und sein eigenes Sicherheitsintervall,
die als Felder in der Stream-Tabelle 204 gespeichert sind,
die der Webserver 106 auf Basis der Stream-ID abruft, die
in der Anfrage nach den Stream enthalten ist.
-
Wie
oben angemerkt verwendet der Webserver 106 die aktuelle
Zeit, um das Etikett zu erzeugen. Insbesondere berechnet der Webserver 106 die
aktuelle Zeit und rundet die Zeit auf das nächste Vielfache des Sicherheitsintervalls
ab. Dies ist Schritt 410. Die vorliegende Ausführung nutzt
die koordinierte Weltzeit (UTC, Universal Time Coordinated) in Sekunden,
die durch die Standardbibliotheksfunktion der Programmiersprache C „time()" erzeugt wird. Beispielhafter
Perl-Programmiercode zur Erzeugung der auf das nächste Vielfache des Sicherheitsintervalls
(dargestellt durch die Variable „$time") abgerundeten Zeit sieht wie folgt
aus, wobei die Variable „$interval" dem Sicherheitsintervall
entspricht, das gleich 15 Minuten ist.
#
# Beispiel für Ablauf
des Etiketts nach 15
# Minuten/Sicherheitsintervall
$interval
= 15·60
$time
= int(time()/$interval)·$interval;
-
Wenn
zum Beispiel die aktuelle Zeit 31. Mai 2000 um 2:16:07 Uhr nachmittags,
zentrale Zeitzone war, gibt die Funktion „time()" einen Wert von ungefähr „959800567" zurück. Das
Abrunden dieses UTC-Wertes
auf das nächste
15-Minuten-Intervall führt
zu einem Wert von ungefähr „959800500", der einen Zeitpunkt
am 31. Mai 2000 um 2:15 Uhr nachmittags in der zentralen Zeitzone
darstellt.
-
Es
ist zu verstehen, dass der vorangegangene beispielhafte Code modifiziert
werden kann und immer noch im Bereich der vorliegenden Erfindung
liegt. Zum Beispiel muss das Sicherheitsintervall nicht in Minuten sein;
das Intervall kann in anderen Zeiteinheiten dargestellt werden,
solange eine geeignete Umwandlung durchgeführt wird, sodass das Intervall
in der Zeiteinheit dargestellt wird, die von der Funktion „time()" genutzt wird. Darüber hinaus
basiert in alternativen Ausführungen
die aktuelle Zeit auf einem anderen Standard als UTC. In einer solchen
Ausführung
ist der Zeitstandard für
den Webserver 106 und den Streaming-Medienserver 104 eindeutig
Es ist auch zu verstehen, dass es im Bereich der Erfindung liegt,
dass der Prozessor des Endbenutzers 102 die Zeit berechnet
und den Wert an den Webserver 106 für die Verwendung bei der Erzeugung
des Berechtigungsetiketts weitergibt. In einer weiteren alternativen
Ausführung
ist das Sicherheitsintervall derart ausgewählt, dass die Standardzeit
einfach auf eine gewünschte
Anzahl von Stellen abgeschnitten wird.
-
Nachdem
der Webserver 106 die Werte in den Hash-Algorithmus eingegeben
hat – die
Informationen über
den öffentlichen
Schlüssel,
die Informationen über
den privaten Schlüssel
und den Zeitwert – erzeugt
der Webserver 106 die Eingangszeichenkette für den Hash-Algorithmus. Dies
ist Schritt 414. In der vorliegenden Ausführung ist
der Hash-Algorithmus der Message-Digest-Algorithmus „MD5". Au ßerdem nutzen
in der vorliegenden Ausführung
der Medienserver 104 und der Webserver 106 denselben
Algorithmus.
-
Es
ist zu verstehen, dass es im Bereich der vorliegenden Erfindung
liegt, grundsätzlich
irgend einen Hash- oder kryptographischen Algorithmus zu verwenden,
um das Etikett zu erzeugen. Darüber
hinaus erzeugen die zwei Server, die die Etiketten erzeugen (in
der vorangehenden Ausführung
der Webserver 106 und der Streaming-Medienserver 104) vorzugsweise
dasselbe Etikett auf Basis derselben Eingangswerte oder Etiketten
innerhalb einer bekannten Abweichung voneinander auf Basis derselben
Eingangswerte. In alternativen Ausführungen wird einer von mehreren
potenziellen Algorithmen verwendet, um die Sicherheit zu steigern. Zum
Beispiel verwenden solche Ausführungen
zufällig
ausgewählte
Algorithmen aus mehreren potenziellen Algorithmen, oder können einen
von mehreren Algorithmen auf Basis des angefragten Inhalts, des
Datums oder der Uhrzeit der Anfrage, dem speziellen Endbenutzer,
der Einheit, der der Inhalt gehört
und dergleichen auswählen.
In solchen Ausführungen
leitet das System eine Angabe des Algorithmus, der von dem Webserver verwendet
wird, zu dem Medienserver weiter, oder der Medienserver enthält eine
Logik, die veranlasst, dass derselbe Algorithmus ausgewählt und
verwendet wird, der von dem Webserver genutzt wurde.
-
Jede
Anordnung der Eingangswerte kann als Eingangszeichenkette verwendet
werden, solange die Eingangszeichenkette für den speziellen Hash-Algorithmus,
der verwendet wird, gültig
ist, und solange der Streaming-Medienserver 104 die Anordnung
der Eingangszeichenkette kennt. In der vorliegenden Ausführung wird
folgende zuvor festgelegte Anordnung verwendet, wobei „T" eine Stelle des
Zeitwertes darstellt, „K" ein alphanumerisches
Zeichen in dem Sicherheitsschlüssel
darstellt, „S" eine Stelle der
Stream-ID darstellt (einschließlich
ir gendwelcher erforderlicher vorangehender Füllzeichen), und „U" ein alphanumerisches
Zeichen der Endbenutzer-ID (einschließlich irgendwelcher erforderlicher
vorangehender Füllzeichen)
darstellt.
TTTTTTTTTTKKKKKKKKKKSSSSSSSSSSUUUUUUUUUU
-
In
alternativen Ausführungen
können
Eingangszeichenketten andere Längen
haben.
-
Nachdem
der Hash-Algorithmus die Eingangszeichenkette erzeugt hat, wendet
der Webserver 106 den Hash-Algorithmus auf die Eingangszeichenkette
an, wodurch das Etikett erzeugt wird. Dies ist Schritt 418.
-
Der
Prozess des Streaming-Medienservers 104, festzulegen, ob
auf den angefragten Streaming-Inhalt Zugriff gewährt wird oder nicht, wird nun
mit Bezug auf 5 diskutiert. Als Vorbemerkung
sei gesagt, dass, obwohl es nicht erforderlich ist, der Medienserver
nach der vorliegenden Ausführung 104 drei
Berechtigungsetiketten für
die Verwendung bei der Festlegung erzeugt, ob Zugriff gewährt wird,
von denen jedes auf einem anderen Zeitwert basiert. Darüber hinaus
wird wie bei der Funktionalität
des Webservers bevorzugt, dass der Prozess der Festlegung, ob Zugriff
gewährt
wird, in einer Softwarekomponente für die Autorisierung implementiert
wird, die sich auf dem Medienserver 104 befindet.
-
Bei
der Feststellung, ob Zugriff gewährt
wird, empfängt
der Streaming-Medienserver 104 zuerst die Anfrage nach
dem Stream, die die Stream-ID, die Endbenutzer-ID und das Etikett
enthält,
von der Medienwiedergabeeinrichtung, die sich auf dem Prozessor
des Endbenutzers 102 befindet. Dies ist Schritt 502.
Nachdem die Anfrage nach dem Stream empfangen wurde, erzeugt der
Medienserver die Eingangszeichenkette für den Hash-Algorithmus. Im
Hinblick darauf ruft der Medienserver 104 die Informationen
des privaten Schlüssels
aus dem lokalen Speicher ab, nämlich
den Sicherheitsschlüssel
und das Sicherheitsintervall. Dies ist Schritt 506. Vorzugsweise
speichert der Medienserver 104 die Informationen des privaten
Schlüssels
im lokalen Speicher, jedoch speichert der Medienserver 104 die
Informationen in alternativen Ausführungen in einem aktiven Verzeichnisbaum,
auf den zum Beispiel über
das Protokoll für
einfachen Verzeichniszugriff (Light-Weight Directory Access Protocol)
von der Microsoft Corporation zugegriffen wird, oder in einer entfernt
angeordneten Datenbank. In noch einer anderen alternativen Ausführung ruft
der Medienserver 104 die Informationen des privaten Schlüssels durch
Zugriff auf die Datenbank 108 über eine Netzwerkverbindung
ab, wie etwa ein Lokalbereichsnetz (LAN, Local Area Network).
-
Wie
der Webserver 106 berechnet der Medienserver 104 die
aktuelle Zeit und rundet die Zeit auf das nächste Vielfache des Sicherheitsintervalls
ab (das heißt,
früher
in der Zeit). Dies ist Schritt 510. Jedoch anders als der
Webserver 106 berechnet der Streaming-Medienserver 104 auch
einen zweiten Zeitwert gleich der aktuellen Zeit abgerundet auf
das nächste
Vielfache des Sicherheitsintervalls unterhalb des ersten Zeitwertes (das
heißt,
früher
als dieses), der von dem Medienserver 104 berechnet wurde.
Dies ist Schritt 510. Der Medienserver 104 berechnet
weiter einen dritten Zeitwert gleich der aktuellen Zeit aufgerundet
auf das nächste Vierfache
des Sicherheitsintervalls (das heißt, später in der Zeit als dieses).
Dies ist Schritt 510.
-
Der
Medienserver 104 verwendet dann die abgerufenen Informationen
des privaten Schlüssels,
die Informationen des öffentlichen
Schlüssels
und die drei Zeitwerte, um drei entsprechende Hash- Eingangszeichenketten
zu erzeugen. Dies ist Schritt 514. Der Medienserver 104 wendet
auf jede der drei Eingangszeichenketten den Hash-Algorithmus an,
wodurch drei Etiketten erzeugt werden. Dies ist Schritt 518.
-
Nachdem
die Etiketten unabhängig
erzeugt wurden, stellt der Medienserver 104 dann fest,
ob irgendeines der Etiketten, die von dem Medienserver 104 erzeugt
wurden, mit dem Etikett übereinstimmen,
das von dem Webserver 106 erzeugt wurde. Dies ist Schritt 522.
Wenn die Etiketten nicht übereinstimmen,
dann ist es wahrscheinlich, dass die Anfrage nach dem Stream nicht
authentisch und/oder abgelaufen ist (das heißt, von dem Medienserver 104 zu
einem Zeitpunkt außerhalb
des Sicherheitsintervalls erzeugt wurde, gemessen von dem Zeitpunkt
der Anfrage des Benutzers an). Dementsprechend verweigert der Medienserver 104 den Zugriff
auf den angefragten Inhalt. Dies ist Schritt 526.
-
Wenn
die Etiketten übereinstimmen,
dann ist es wahrscheinlich, dass die Anfrage nach dem Stream sowohl
authentisch als auch innerhalb des Sicherheitsintervalls ist. Bevor
jedoch Zugriff gewährt
wird, stellt der Medienserver 104 zuerst fest, ob der Endbenutzer
schon Zugriff auf denselben Inhalt angefragt und ihn angesehen hat.
Dies ist Schritt 530. Der Medienserver 104 unterhält vorzugsweise
in einem lokalen Speicher eine Liste mit Endbenutzer-IDs und zugeordneten
Stream-IDs, auf die dem Endbenutzer Zugriff gewährt wurde. Um festzustellen,
ob der Endbenutzer den angefragten Inhalt schon betrachtet hat,
greift der Medienserver 104 auf den Speicher zu, um festzustellen,
ob die empfangene Endbenutzer-ID und die Stream-ID zuvor gespeichert wurden.
Wenn die Endbenutzer-ID und die Stream-ID zuvor gespeichert wurden, dann wird
dem Endbenutzer der Zugriff auf den angefragten Inhalt verweigert.
Dies ist Schritt 530.
-
Wenn
die empfangene Endbenutzer-ID und die Stream-ID zuvor nicht gespeichert
wurden, fährt
der Medienserver 104 damit fort, dass er die Endbenutzer-ID
und die Stream-ID im Speicher speichert (Schritt 534),
und stellt dem Endbenutzer Zugriff auf den Inhalt zur Verfügung. Dies
ist Schritt 538. Ein derartiges Speichern der Endbenutzer-ID und der Stream-ID
liefert eine zusätzliche,
optionale Ebene des Schutzes durch Sicherheit, die verhindert, dass
der Endbenutzer die Verknüpfung,
die auf die angefragten Inhalte zeigt, mit anderen teilt.
-
Es
ist zu verstehen, dass die Verwendung von drei Etiketten bevorzugt
wird, um ein Fehlen von Synchronisation zwischen der lokalen Zeit
des Webservers 106 und der lokalen Zeit des Medienservers 104 zu berücksichtigen.
Darüber
hinaus stimmt unter bestimmten Umständen das erste Etikett, das
von dem Medienserver 104 erzeugt wurde (das heißt, auf
Basis der aktuellen Zeit, die auf das nächste Vielfache des Sicherheitsintervalls
abgerundet wurde), nicht mit dem ersten Etikett überein, das von dem Webserver
erzeugt wurde, sogar wenn der Benutzer berechtigt ist. Wenn zum
Beispiel ein Sicherheitsintervall von 15 Minuten vorgegeben ist,
wenn der Webserver 106 das Etikett um 12:14:00 Uhr nachmittags
erzeugt, und der Medienserver 104 sein erstes Etikett um
12:16:00 Uhr nachmittags am gleichen Tag in derselben Zeitzone erzeugt,
stimmen die Etiketten nicht überein,
sogar wenn die Anfrage innerhalb des Sicherheitsintervalls liegt.
Der Webserver erzeugt das Etikett auf Basis eines Zeitpunkts, der
12:00:00 Uhr nachmittags entspricht, während der Medienserver 104 ein
Etikett auf Basis eines Zeitpunkts erzeugt, der 12:15:00 Uhr nachmittags
entspricht. Dementsprechend erzeugt der Medienserver 104 in
der vorliegenden Ausführung
das zweite Etikett auf Basis der dann aktuellen Zeit abgerundet
auf das nächste
Vielfache des Sicherheitsintervalls, in dem vorliegenden Beispiel
ein Zeitwert, der 12:00:00 Uhr nachmittags entspricht. Als solches
stimmt das zweite Etikett mit dem Etikett, das der Webserver 106 erzeugt
hat, überein.
Ebenso ist es möglich,
dass einem Endbenutzer Zugriff gewährt wird, nachdem ein Sicherheitsintervall
abgelaufen ist. Folglich sollte das Sicherheitsintervall in der
vorliegenden Ausführung
derart gewählt
werden, dass die Verwendung von mehreren Etiketten berücksichtigt
wird. Vorzugsweise sind die Uhren des Webservers 106 und
des Medienservers 104 auf weniger als ungefähr die Hälfte der Sicherheitsintervalls
synchronisiert.
-
Es
ist zu verstehen, dass es ebenso im Bereich der vorliegenden Erfindung
liegt, dass der Medienserver 104 ein oder mehrere Etiketten
als eine Alternative zu drei Etiketten in der vorangehenden Ausführung erzeugt.
Obwohl in der vorangehenden Ausführung
beschrieben ist, dass die Etiketten zusammen parallel erzeugt werden,
liegt es darüber
hinaus im Bereich der Erfindung, dass der Medienserver 104 die
Etiketten eines nach dem andern seriell erzeugt und/oder vergleicht.
Es ist außerdem
zu verstehen, dass die Zeitwerte auf irgendeine von mehreren Weisen
erzeugt werden können,
einschließlich
zum Beispiel, indem einfach das Sicherheitsintervall zu dem ersten
Zeitwert, der von den Medienserver 104 berechnet wurde,
addiert oder von ihm abgezogen wird.
-
In
einer alternativen Ausführung
kann ein anderes Sicherheitsniveau bereitgestellt werden. Insbesondere
wenn das Etikett, das von dem Webserver 106 erzeugt wurde,
mit einem der Etiketten übereinstimmt,
das von dem Medienserver 104 erzeugt wurde, fährt der
Medienserver 104 damit fort, festzustellen, ob dasselbe Etikett
zuvor erzeugt wurde. Der Medienserver 104 unterhält eine
Liste mit Etiketten, für
die Zugriff gewährt wurde.
Eine solche Liste stellt logisch alle „verwendeten" Etiketten dar. Wenn
das übereinstimmende
Etikett nicht auf der Liste der „verwendeten" Etiketten ist, dann
gewährt
der Medienserver 104 Zugriff, und stellt den angefragten
Inhalt der Medienwiedergabeeinrichtung zur Verfügung, die sich auf dem Prozessor
des Endbenutzers 102 befindet. Als Teil der Gewährung von
Zugriff aktualisiert der Medienserver 104 auch die Liste
mit „verwendeten" Etiketten. Wenn
das übereinstimmende
Ticket auf der Liste der verwendeten Etiketten ist, dann verweigert
der Medienserver 104 den Zugriff und liefert eine geeignete
Nachricht an den anfragenden Endbenutzer. Indem die verwendeten
Etiketten verfolgt werden, verhindert das System, dass ein berechtigter
Endbenutzer die Anfrage nach Streaming, die er von dem Webserver 106 empfangen
hat, mit anderen teilt.
-
Es
ist außerdem
zu verstehen, dass es innerhalb des Bereichs der vorliegenden Erfindung
liegt, bei der Bestimmung, ob Zugriff gewährt werden soll, Fehlerrechnungen
zu verwenden. Beispielsweise ist an einer Fehlerberechnung der Medienserver 104 beteiligt,
der ein oder mehrere zusätzliche
Etiketten auf Basis der aktuellen Zeit plus und/oder minus eines
Fehlerintervalls, wie etwa zum Beispiel einer zuvor festgelegten
Zeitdauer (z. B. 15 Minuten, 30 Minuten, usw.), einem eingestellten
Prozentsatz des zutreffenden Sicherheitsintervalls (z. B. 50%, 125%,
usw.) oder irgend einer anderen Fehlerberechnung erzeugt. Solche
Fehlerrechnungen können
als Alternative zu den zweiten oder dritten Zeitwerten in der vorangehenden
Ausführung
oder zusätzlich
dazu verwendet werden.
-
In
alternativen Ausführungen
erzeugen der Webserver 106 und der Medienserver 104 Etiketten,
indem sie den Zeitwert anders als die vorangehende Ausführung berechnen.
In einer beispielhaften Ausführung
berechnen der Webserver 106 und der Medienserver 104 die
aktuelle Zeit und runden sie auf ein Vielfaches von irgendeinem
In tervall ab oder auf, das von dem Sicherheitsintervall verschieden
ist. In einer solchen Ausführung,
in der das Sicherheitsintervall 15 Minuten beträgt, erzeugt
der Webserver 106 das Etikett auf Basis der aktuellen Zeit,
die auf das nächste
Intervall von 5 Minuten abgerundet ist. Der Streaming-Medienserver 104 erzeugt
seinerseits ein Etikett auf Basis der aktuellen Zeit, die auf dasselbe
Intervall von 5 Minuten abgerundet ist. Wenn die Etiketten nicht übereinstimmen,
fährt der
Medienserver 104 damit fort, ein Etikett auf Basis der Zeit
zu erzeugen, die auf das nächstniedrigere
Intervall abgerundet ist. Der Medienserver fährt damit fort, Etiketten auf
Basis des nächstniedrigeren
Intervalls für
eine eingestellte Anzahl von Malen, oder bis die Etiketten von dem
Webserver und dem Medienserver übereinstimmen,
zu erzeugen. Vorzugsweise erzeugt der Medienserver 104 wiederholt
neue Etiketten auf Basis von Zeitintervall, deren Summe wenigstens
das Sicherheitsintervall überspannt.
In dem vorliegenden Beispiel erzeugt der Medienserver 104 wenigstens
drei Etiketten, jedes mit einem Intervall von 5 Minuten, was insgesamt
15 Minuten ergibt.
-
Es
ist zu verstehen, dass es innerhalb des Bereichs der vorliegenden
Erfindung liegt, die Verwendung der Endbenutzer-ID bei dem Berechtigungsprozess
oder die Verwendung der Endbenutzer-ID auf eine Weise, die sich
von der oben beschriebenen unterscheidet, vollständig wegzulassen. Zum Beispiel
wird in einer alternativen Ausführung
die Endbenutzer-ID nicht als Teil der Eingangszeichenkette für den Hash-Algorithmus
verwendet. Stattdessen entfällt
die Datenbank 108 auch Tabellen zum Nachverfolgen, welche
Endbenutzer Zugang zu dem Inhalt angefragt haben. Eine solche Ausführung enthält eine
Tabelle mit Betrachtenden Benutzern (Streams), die Datensätze enthält, die
Inhalte, die durch ihre Stream-ID identifiziert sind, mit Endbenutzern
in Beziehung setzt, die durch ihre Endbenutzer-IDs identifiziert
sind, die auf den Stream mit dem Inhalt zugegriffen oder ihn angesehen
haben. Ebenso enthält
die Ausführung
eine Tabelle mit Betrachtenden Benutzern (Titellisten), die Datensätze enthält, die
Titellisten, die durch ihre Titellisten-IDs identifiziert sind,
mit Endbenutzern in Beziehung gesetzt, die durch Endbenutzer-IDs
identifiziert sind, die auf die Titelliste zugegriffen haben oder
sie ansehen. Bevor das Berechtigungsetikett erzeugt wird, überprüft der Webserver
die richtige Tabelle des Betrachtenden Benutzers, um festzustellen,
ob derselbe Endbenutzer Zugriff auf einen bestimmten Stream oder
eine Titelliste angefragt hat. Bei dem Ereignis, dass ein Endbenutzer
zuvor den Zugriff angefragt hat, verweigert der Webserver entweder
den Zugriff oder liefert dem Endbenutzer eine Webseite, die angibt,
dass dem Endbenutzer der nachfolgenden Zugriff noch einmal in Rechnung
gestellt wird. Die Tabellen werden nach einer Zeitdauer, wie etwa
dem Sicherheitsintervall oder eine gewisse Zeitdauer darüber hinaus, automatisch
gelöscht.
-
Es
ist zu verstehen, dass die vorliegende Erfindung auch in relativ
komplexen Systemen ausgeführt werden
kann, z. B. in solchen, in denen ein Dienstanbieter Webserver, Streaming-Medienserver
und Titellisten-Server im Auftrag seiner Kunden betreibt – den Besitzern
der Inhalte. Eine solche Ausführung
wird nun mit Bezug auf die 6-8 beschrieben.
Es ist Fachleuten verständlich,
dass viel der Funktionalität
der vorliegenden Ausführung
dieselbe ist, wie die der Ausführung
in 3, und als solche mit allen derselben Techniken implementiert
werden kann.
-
Wie
in 6 gezeigt ist, enthält das System verschiedene
Komponenten, die denen der Ausführung in 1 ähnlich sind,
die Prozessoren von Endbenutzern 602, einen oder mehrere
Streaming-Medienserver 604 und
einen oder mehrere Webserver 606 einschließlich einer
Datenbank 608 umfassen, von denen alle mit dem Internet oder
einem anderen Netzwerk verbunden sind. Zusätzlich enthält das System nach der vorliegenden
Ausführung
auch einen Titellisten-Server 610,
der auch von dem Dienstanbieter betrieben wird. Vorzugsweise sind
der Webserver 606, die Streaming-Medienserver 604 einschließlich der
Datenbank 608 und der Titellisten-Server 610 mit
dem Netz des Dienstanbieters verbunden, wie etwa einem Lokalbereichsnetz (LAN,
Local Area Network) oder einem Weitbereichsnetz (WAN, Wide Area
Network) und dem Internet verbunden.
-
Im
allgemeinen enthält
die Datenbank 608 dieselben Informationen, die in der Datenbank
in der Ausführung
in 2 enthalten sind, jedoch sind die Informationen
auf Basis von ein-Kundenaccount-nach-dem-anderen
gespeichert. Wie in 7 gezeigt ist, enthält die Datenbank 608 eine
Account-Tabelle 702, die einen Datensatz für jeden
Kunden enthält,
der durch eine Account-ID identifiziert ist. Jeder Datensatz enthält weiter:
Informationen, die den Kunden identifizieren („Kundeninfo"), wie etwa Name
des Kunden, Adresse, Informationen zur Rechnungsstellung und dergleichen;
eine Angabe, ob die Inhalte des Kunden sicher sind oder nicht („Sicherheit
ermöglichen"); den Sicherheitsschlüssel des
Kunden („Sicherheitsschlüssel") und das Sicherheitsintervall
(„Sicherheitsintervall").
-
Wie
in der Ausführung
in 2 enthält
die vorliegende Datenbank 608 auch eine Tabelle der Streams 704,
die die Informationen zur Identifizierung von Streams für jede Datei
mit Inhalt enthält,
die durch eine Stream-ID identifiziert ist, einer Tabelle mit Berechtigten
Benutzern 706, die Endbenutzer-IDs mit IDs von Berechtigten
Benutzergruppen in Beziehung setzt, einer Tabelle der Titellisten 708,
die Titellisten enthält,
die Informationen für
jede Titelliste angibt, die durch die Titellisten-ID und eine Tabelle
der Streams der Titellisten 710 angegeben werden, die die
Stream-IDs angibt, die zu einer gege benen Titellisten-ID gehören. Zusätzlich zu
den Informationsfeldern, die in Verbindung mit der Datenbank in 2 beschrieben
wurden, enthalten die vorliegende Tabelle der Streams 704 und
die Tabelle der Titellisten 708 weiter ein Feld, das die
Account-ID angibt, die zu jeder Datei mit Inhalten beziehungsweise
jeder Titelliste gehört.
-
Die
vorliegende Datenbank 608 enthält eine Tabelle der Streamserver 712,
die einen Datensatz für jede
Datei mit Inhalt enthält,
die durch eine Stream-ID spezifiziert wird, die den Hostnamen des
speziellen Streaming-Medienservers 104 angibt, auf dem
sich die Datei mit Inhalt befindet. Wie in der Ausführung in 2 ist der
Hostname der DNS-Name des Medienservers 104.
-
Die
Funktionsweise der vorliegenden Ausführung wird nun mit Bezug auf
das Arbeitsablaufdiagramm in 8 beschrieben.
Für die
Zwecke des vorliegenden Beispiels greift der Endbenutzer auf eine
Titelliste mit einem Objekt sicheren Inhalts zu. Zu Beginn stellt
der Webserver 606 eine Webseite zur Verfügung, die
den Endbenutzer auffordert, sich in eine Autorisierungsanwendung
einzuloggen und dem Endbenutzer die Option zu präsentieren, bestimmte Streaming-Medien anzusehen.
Dies ist Schritt 802. Wie bei der Ausführung in 3 kann
eine beispielhafte Webseite ein Formular enthalten, das den Endbenutzer
auffordert, eine bestimmte Datei mit Inhalt auszuwählen, indem
er eine Verknüpfung
aktiviert, eine Endbenutzer-ID bereitzustellen und Informationen
zur Rechnungsstellung bereitzustellen. Als Reaktion auf die Webseite
stellt der Benutzer die Benutzer-ID des Endbenutzers und Kreditkarteninformationen
zur Verfügung
und aktiviert die Verknüpfung für die Anfrage
des Streams, wodurch Zugriff auf eine bestimmte Datei mit Streaming-Media-Inhalt
angefragt wird. Eine beispielhafte Verknüpfung für die Anfrage eines Streams,
bei der die Titellisten-ID „789000" ist, ist die folgende:
<A href "http://titellisten-server.unternehmen.com/titelliste_erstellen.dll?ID=789000">
-
Wenn
der Benutzer die Verknüpfung
zur Anfrage eines Streams aktiviert, veranlasst ein Skript mit programmierender
Wirkung, das auf dem Prozessor des Endbenutzers 602 läuft, dass
die Verknüpfung
zur Anfrage des Streams und die Endbenutzer-ID zu dem Webserver 606 gesendet
werden. Dies ist Schritt 804. Ein Fachmann erkennt, dass
das Skript des Endbenutzers grundsätzlich in jeder Programmiersprache
implementiert werden kann, einschließlich z. B. C++, Perl, Visual
Basic, Java und dergleichen. In der vorliegenden Ausführung ist
das Skript ein Java-Script und läuft
in Verbindung mit dem Webbrowser des Endbenutzers.
-
Nachdem
der Webserver 606 die Anfrage nach dem Stream von dem Skript
erhalten hat, erzeugt der Webserver 606 unter Steuerung
eines Software-Plug-ins für
die Autorisierung das Etikett. Im Hinblick darauf macht der Webserver 606 eine
Anfrage nach dem privaten Schlüssel
(in der vorliegenden Ausführung
der Sicherheitsschlüssel
und das Sicherheitsintervall, die zu der angefragten Titelliste
gehören)
an die Datenbank 608 für
die Verwendung beim Erzeugen des Berichtigungsetiketts. Dies ist
Schritt 806. Als Reaktion gibt die Datenbank 608 den
privaten Schlüssel
an den Webserver 606 zurück. Dies ist Schritt 808.
-
Nachdem
der private Schlüssel
von der Datenbank 608 erhalten wurde, erzeugt der Webserver 606 das
Etikett, wie oben mit Bezug auf 4 beschrieben
wurde, wobei er die Titellisten-ID statt der Stream-ID verwendet.
Dies ist Schritt 810. Wie dort beschrieben wendet der Webserver 606 den
Hash-Algorithmus auf den privaten Schlüssel, die Stream-ID, die Endbenutzer-ID
und die Zeitwerte an, um das Etikett zu erzeugen. Der Webserver
gibt dann das Etikett und die Endbenutzer-ID an den Webbrowser zurück, der
auf dem Prozessor des Endbenutzers 602 läuft. Dies
ist Schritt 812.
-
Nachdem
das Etikett empfangen wurde, hängt
das Skript, das auf dem Prozessor des Endbenutzers 102 läuft, die
Informationen an das Ende der Verknüpfung für die Anfrage des Streams an.
Dies ist Schritt 814. Eine beispielhafte Verknüpfung, bei
der die Titellisten-ID durch „789000" dargestellt ist,
das Etikett durch „uvw123xyz" dargestellt ist
und die Endbenutzer-ID durch „abc123def" dargestellt ist,
ist die folgende:
<A
href "http://titellisten-server.unternehmen.com/titelliste_erstellen?ID=789000&ETIKETT=uvw123xyzreturn&BENUTZER_ID=abc123def">
-
Das
Skript, das auf dem Prozessor des Endbenutzers 602 läuft, veranlasst
dann, dass ein Aufruf an den Titellisten-Server 610 gesendet
wird, der in der Verknüpfung
für die
Anfrage des Streams durch den Hostnamen „titellisten-server.unternehmen.com" angegeben ist. Dies
ist Schritt 816. Dementsprechend wird dem Titellisten-Server 810 die
Verknüpfung,
die Titellisten-ID, das Etikett und die Benutzer-ID zur Verfügung gestellt.
Unter Steuerung des Objekts „titelliste_erstellen.dll" erzeugt der Titellisten-Server 610 eine
Redirector-Datei,
wie etwa eine ASX-Datei, deren Inhalt das Windows-Media-Format hat. Dies
ist Schritt 818. Das Programm „titelliste_erstellen" kann mit irgendeiner
Anzahl von Programmen oder Techniken implementiert werden, einschließlich beispielsweise
eines ASP. Die Redirector-Datei enthält eine Verknüpfung zu
dem angefragten Inhalt zusammen mit dem Etikett und dem öffentlichen
Schlüssel
(das heißt,
der Stream-ID und der Endbenutzer-ID). Um die Redirector-Datei zu erzeugen,
greift der Titellisten-Server 610 auf die Datenbank 608 zu, um
die Stream-ID der Datei mit Inhalt abzurufen, die die Titelliste
und die Informationen enthält,
die erforderlich sind, um mit der Datei mit Inhalt zu verbinden,
einschließlich
dem Hostnamen, dem URL-Präfix
und dem Dateinamen, die zu der Stream-ID gehören.
-
In
einer alternativen Ausführung
wird kein Skript des Endbenutzers genutzt, um das Etikett an die
Anfrage nach dem Stream anzuhängen.
Wenn der Endbenutzer seine Endbenutzer-ID bereitstellt und die Verknüpfung für die Anfrage
nach dem Stream aktiviert (in Schritt 804), erzeugt stattdessen
die Autorisierungsanwendung, die auf dem Webserver 606 läuft, das
Etikett, hängt
das Etikett und die Endbenutzer-ID an die Verknüpfung der Anfrage nach dem
Stream an und macht direkt den Aufruf an den Titellisten-Servers 610,
um die Redirector-Datei zu erzeugen. Weil der Webserver 606 auch
Informationen an den Titellisten-Server 610 weitergibt,
die die Medienwiedergabeeinrichtung auf dem Prozessor des Endbenutzers 602 identifizieren,
leitet der Titellisten-Server 610 die Redirector-Datei
zu der Medienwiedergabeeinrichtung weiter (wodurch die Schritte 812, 814 und 816 vermieden
werden).
-
Der
Titellisten-Server
610 leitet dann die ASX-Redirector-Datei
an die Medienwiedergabeeinrichtung auf dem Prozessor des Endbenutzers
602 weiter.
Dies ist Schritt
820. Für
die Zwecke des vorliegenden Beispiels sieht die ASX-Datei wie folgt
aus, wobei das URL-Präfix
durch „mms://";der Hostname des
geeigneten Medienservers
604 durch „medienserver.unternehmen.com" dargestellt ist;:
und der Dateiname durch „stream1.asf" dargestellt ist;
das Etikett durch „uvw123xyz" dargestellt ist
und die Endbenutzer-ID durch „abc123def" dargestellt ist;
und:
-
Die
Weiterleitungsdatei kann andere Informationen enthalten, wie etwa
Metadaten für
die Datei mit Inhalt, oder andere nicht sichere Dateien, wie etwa
Werbung.
-
Nachdem
die ASX-Datei empfangen wurde, fährt
der Prozessor des Endbenutzers 602 damit fort, den Streaming-Medien-Inhalt
anzufragen. Insbesondere macht die Medienwiedergabeeinrichtung einen
Aufruf an „medienserver.unternehmen.com" (das heißt, an den
Streaming-Medienserver 604), der in der ASX-Datei angegeben
ist. Dies ist Schritt 822. Nachdem der Aufruf gemacht wurde,
stellt die Medienwiedergabeeinrichtung dem Streaming-Medienserver 604 eine
Kopie der Stream-ID des angefragten Inhalts, des Etiketts, das von dem
Webserver 606 erzeugt wurde, und der Endbenutzer-ID zur
Verfügung.
-
Als
Reaktion auf den Aufruf der Medienwiedergabeeinrichtung fährt der
Streaming-Medienserver 604 damit fort, festzustellen, ob
dem Endbenutzer Zugriff auf den angefragten Inhalt gewährt wird
oder nicht. Dies ist Schritt 824. Der Streaming-Medienserver 604 stellt
fest, ob der Zugriff gewährt
oder nicht, indem er unabhängig
ein oder mehrere Berechtigungsetiketten erzeugt, und die Etiketten
mit dem Etikett vergleicht, das von dem Webserver 606 erzeugt
wurde. Der Prozess der Erzeugung und des Vergleichs der Berechtigungsetiketten
wird auf dieselbe Weise wie mit Bezug auf 5 beschrieben
umgesetzt, wobei die Titellisten-ID statt der Stream-ID verwendet
wird. Wenn ein Etikett, das von dem Medienserver 604 erzeugt
wurde, mit dem Etikett übereinstimmt,
das von dem Webserver 606 erzeugt wurde, gewährt der
Medienserver 604 dem Endbenutzer Zugriff auf den angefragten
Inhalt. Dies ist Schritt 824.
-
Es
ist zu verstehen, dass, obwohl die vorangehenden Ausführungen
einen privaten Schlüssel
nutzen, der sowohl einen Sicherheitsschlüssel als auch ein Sicherheitsintervall
umfasst, es im Bereich der Erfindung liegt, mehr oder weniger Informationen
als den privaten Schlüssel
zu nutzen. Zum Beispiel wird in alternativen Ausführungen
kein Sicherheitsschlüssel
verwendet, und in anderen Ausführungen
werden zusätzliche
Informationen in den privaten Schlüssel eingebunden, einschließlich zum
Beispiel des Benutzernamens eines Kunden und seines Passworts. Ebenso
liegt es im Bereich der vorliegenden Erfindung, einen öffentlichen
Schlüssel
zu verwenden, der andere Informationen als die Stream-ID und die
Endbenutzer-ID umfasst. Zum Beispiel können andere Informationen verwendet
werden, die die Datei mit dem Inhalt identifizieren, einschließlich zum Beispiel
dem Pfadnamen der Datei. Zusätzlich
kann die Endbenutzer-ID in den Informationen des öffentlichen Schlüssels in
bestimmten Ausführungen
weggelassen werden. In noch anderen Ausführungen enthalten die Informationen
des öffentlichen
Schlüssels
zusätzliche
Informationen, wie etwa den Titel oder andere Details des Streams
der angefragten Datei mit Inhalten.
-
Es
ist auch zu verstehen, dass die Funktionalität, die als durch die Webserver
und den Streaming-Medienserver bereitgestellt beschrieben wurde,
auf anderen Einrichtungen implementiert werden kann, die ihr zugeordnet
sind. Zum Beispiel ist in bestimmten Ausführungen der vorliegenden Erfindung
mit dem Streaming-Medienserver ein Anwendungsserver verbunden, der
den gesamten oder Teile des Prozesses der Verweigerung oder der
Gewährung
von Zugriff auf Inhalt implementiert. Ebenso liegt es im Bereich
der vorliegenden Erfindung, den Anwendungsserver mit dem Webserver
zu verbinden, damit er etwas oder die gesamte Funktionalität des Webservers
einschließlich
zum Beispiel des Prozesses der Erzeugung des Berichtigungsetiketts
bereitstellt. Als solche bedeutet die Bezugnahme auf einen bestimmten
Server, dass andere zugeordnete Server oder Prozessoren, die mit
dem Server verbunden sind, auf den Bezug genommen wurde, dabei eingeschlossen
sind.
-
Es
ist auch zu verstehen, dass die Berechtigungsetiketten nicht zu
genauen Zeitpunkten erzeugt werden müssen. Zum Beispiel kann das
Etikett, das von dem Webserver erzeugt wird, auf dem Zeitpunkt basieren, zu
dem der Endbenutzer die Verknüpfung
mit der Anfrage nach dem Stream aktiviert, zu dem der Webserver die
Informationen des privaten Schlüssels
aus der Datenbank empfängt,
oder auf irgendeinem anderen Zeitpunkt in der Nähe der Aktivierung der Anfrage
nach dem Stream. Ebenso kann der Medienserver die Berechtigung zum
Beispiel erzeugen, wenn der Aufruf von der Medienwiedergabeeinrichtung
gemacht wird, nachdem die Informationen des privaten Schlüssels abgerufen
wurden, oder zu irgendeinem anderen Zeitpunkt in der Nähe des Zeitpunkts,
zu dem der Inhalt abgerufen wird. Wenn der Medienserver mehrere
Etiketten erzeugt, können
die Etiketten darüber
hinaus auf verschiedenen Zeitpunkten oder demselben Zeitpunkt basieren.
Dementsprechend soll die Bezugnahme auf einen Zeitpunkt oder der
aktuelle Zeitpunkt einen Bezug auf einen Bereich und nicht auf einen
genauen Zeitpunkt bedeuten.
-
Obwohl
die vorangehenden beispielhaften Ausführungen im Kontext der Zugriffssteuerung
auf ein einzelnes Inhaltsobjekt diskutiert wurden, ist Fachleuten
verständlich,
dass alle vorangehenden Ausführungen verwendet
werden können,
um den Zugriff auf eine Titelliste zu steuern, die mehrere sichere
Dateien mit Inhalten umfasst. Eine beispielhafte Ausführung zur
Steuerung des Zugriffs auf eine Titelliste wird nun mit Bezug auf
die Ausführungen
in den 6-8 beschrieben. Eine solche Ausführung arbeitet
entsprechend der vorangehenden Beschreibung mit den Modifikationen,
die unten angegeben sind. Im allgemeinen erzeugt der Webserver 606 ein
Etikett für
jeden Stream mit Inhalt, der auf der Titelliste enthalten ist, die
auf der Stream-ID von jedem Stream basiert.
-
Die
Medienwiedergabeeinrichtung auf dem Prozessor des Endbenutzers 602 gibt
die Anfrage nach dem Stream, die die Titellisten-ID enthält, an den
Titellisten-Prozessor 610 weiter. Der Titellisten-Prozessor 610 erzeugt
seinerseits die Redirector-Datei und gibt die Redirector-Datei an die Medienwiedergabeeinrichtung
zurück.
Das Objekt „titelliste_erstellen.dll" verwendet in dem
vorliegenden Beispiel die Titellisten-ID „789000", um die richtige Redirector-Datei aufzubauen.
Insbesondere greift der Titellisten-Server 610 auf die Tabelle
der Titellisten 708 und die Tabelle der Streams der Titellisten 710 zu,
um festzustellen, welche Dateien mit Inhalten Teil der angefragten
Titelliste sind, und um die Reihenfolge der Dateien mit Inhalten
in der Titelliste festzustellen. Die Dateinamen der Dateien mit
Inhalten werden von der Tabelle der Streams 704 abgerufen. Ein
Skript, das auf dem Prozessor des Endbenutzers 602 läuft, hängt dann
die Stream-IDs, die Etiketten und die Endbenutzer-ID an die URL-Verknüpfung zu
dem entsprechenden Stream mit Inhalt an. In der vorliegenden Ausführung befinden
sich alle Streams mit Inhalt auf demselben Medienserver 604,
wie in der Tabelle der Streamserver 712 angegeben ist.
-
Eine
beispielhafte ASX-Redirector-Datei, die die Stream-IDs, Etiketten
und die Endbenutzer-ID enthält,
die an die URL-Verknüpfung
für den
entsprechenden Stream mit Inhalten angehängt ist, ist die folgende:
-
Die
Medienwiedergabeeinrichtung macht dann eine Reihe von Aufrufen an
den Medienserver 604, einen für jede der URL-Verknüpfungen,
die in der Redirector-Datei enthalten sind. Insbesondere macht die
Medienwiedergabeeinrichtung zuerst einen Aufruf an den Medienserver 604 für den Zugriff
auf den ersten Stream mit Inhalten (im vorliegenden Beispiel mit
der Stream-ID 123456). Als Reaktion auf den Aufruf und wie allgemein
oben mit Bezug auf 5 beschrieben ist, erzeugt der
Medienserver 604 unabhängig
ein Etikett, und stellt fest, ob Zugriff auf den Inhalt gewährt wird.
Wenn kein Zugriff gewährt
wird, wird der Endbenutzer davon benachrichtigt. Wenn andererseits
der Medienserver dem Endbenutzer Zugriff auf den ersten Stream mit
Inhalten gewährt,
dann fährt
die Medienwiedergabeeinrichtung damit fort, Aufrufe der verbleibenden
Streams mit Inhalten in der Titelliste an den Medienservers 604 zu
machen. Bei jedem Aufruf fährt
der Medienserver 604 damit fort, den Zugriff auf den angefragten
Stream mit Inhalten zu autorisieren oder zu verweigern.
-
Es
ist zu verstehen, dass in einer solchen Ausführung jedoch bevorzugt wird,
dass jeder Stream mit Inhalt ein eigenes Sicherheitsintervall hat,
das die Gesamtdauer des Streams mit Inhalt berücksichtigt, der vor dem Stream
in der Titelliste abgespielt wird. Zum Beispiel kann in einer Titelliste,
die drei Streams mit Inhalten enthält, von denen jeder fünf Minuten
dauert (wie in dem Feld mit den Streamdetails in der Tabelle der
Streams 704 angegeben), das Sicherheitsintervall für den zweiten
Stream fünf
Minuten länger
als das für
den ersten Stream sein, und das Sicherheitsintervall für den dritten
Stream mit Inhalten kann 10 Minuten länger als das Intervall für den ersten
Stream sein. Indem die Dauer von jedem Stream in der Titelliste
berücksichtigt
wird, hilft das System, zu vermeiden, dass ein berechtigter Endbenutzer
Zugriff auf den ersten Stream mit Inhalten in der die Liste bekommt,
aber nicht auf einen nachfolgenden Stream mit Inhalten, weil das
Etikett abgelaufen ist. Die Sicherheitsintervalle können auch
irgendwelche nicht sicheren Inhalte berücksichtigen, wie etwa Werbung,
die auf der Titelliste enthalten sind.
-
Andere
alternative Ausführungen
steuern den Zugriff auf eine Titelliste, die mehrere Streams mit
sicheren Inhalten enthält,
indem sie ein Etikett erzeugen, das auf der Titellisten-ID basiert.
Eine solche Ausführung
arbeitet entsprechend der Beschreibung des Systems in den
-
6-8 mit
den unten angegebenen Modifikationen. Nachdem der Endbenutzer sich
bei der Autorisierungsanwendung eingeloggt hat und Zugriff auf eine
Titelliste anfragt, erzeugt der Webserver 606 im allgemeinen
ein Etikett auf Basis der Titellisten-ID und gibt das Etikett zu
dem Prozessor des Endbenutzers 602 zurück. Als Reaktion hängt ein
Skript, das auf dem Prozessor des Endbenutzers 602 läuft, das
Etikett und die Endbenutzer-ID an die Verknüpfung der Anfrage nach dem
Stream an. Das folgende ist eine beispielhafte Verknüpfung einer
Anfrage nach einem Stream, an die Informationen des öffentlichen
Schlüssels
angehängt
sind, wobei die Titellisten-ID durch „789000" dargestellt ist; das Etikett durch „xyz321abc" dargestellt ist
und die Endbenutzer-ID durch „abc123def" dargestellt ist.
<A href="http://titellisten-server.unternehmen.com/titelliste_erstellen.dll?TITELLISTEN_ID=789000&ETIKETT=xyz321abc&BENUTZER ID=abc123def">
-
Der
Prozessor des Endbenutzers
602 macht einen Aufruf an den
Titellisten-Server
610, wie durch den Namen „titellisten-server.unternehmen.com" angegeben wird.
Der Titellisten-Server
610 leitet seinerseits das Objekt „titelliste_erstellen.dll" ein, das sich auf
dem Titellisten-Server
610 befindet, um die Redirector-Datei
zu erzeugen. In der vorliegenden Ausführung befinden sich alle Streams
mit Inhalten auf demselben Medienserver
604. Anders als
in vorangehenden Ausführungen
hängt das
Objekt „titelliste_erstellen.dll" auch die Dateinamen
nachfolgender sicherer Streams mit Inhalten in der Titelliste an
das Ende der erste URL-Verknüpfung der
Redirector-Datei an, und nur die Titellisten-ID und das Etikett
werden an jede der nachfolgenden URL-Verknüpfungen angehängt. Eine
beispielhafte ASX-Redirector-Datei
ist die folgende, in der: die Titelliste drei Dateien im Windows-Media-Format
mit Inhalten enthält,
die Dateinamen haben, die durch „stream1.asf", „stream2.asf" und „streams3.asf" dargestellt sind;
die Titellisten-ID durch „789000" dargestellt ist;
die Endbenutzer-ID durch „abc
123def" dargestellt
ist und das Etikett wird durch „xyz321abc" dargestellt ist:
-
Die
Medienwiedergabeeinrichtung auf den Prozessor des Endbenutzers 602 fährt damit
fort, eine Anfrage an medienserver.unternehmen.com zu machen (das
heißt,
den Hostnamen des Streaming-Medienservers 604), auf die
erste Datei mit Inhalten zuzugreifen. Der Medienserver 604 fährt damit
fort, ein Etikett auf Basis der Titellisten-ID zu erzeugen und Zugriff
wie oben mit Bezug der Titellisten-ID zu erzeugen und Zugriff wie
oben mit Bezug auf 5 diskutiert zu gewähren oder
zu verweigern. Wenn der Medienserver 604 Zugang gewährt und
der Medienwiedergabeeinrichtung die erste Datei mit Inhalt auf der
Titelliste zur Verfügung
stellt, erzeugt der Medienserver 604 einen Datensatz in
einer lokal gespeicherten Tabelle für die Titellisten-ID und das
entsprechende Etikett, und speichert in dem Datensatz die Dateinamen
der nachfolgenden Streams mit Inhalten in der Titelliste, die in
der Redirector-Datei enthalten sind.
-
Wenn
die Medienwiedergabeeinrichtung nachfolgend den Zugriff auf den
zweiten Stream mit Inhalt aufruft, stellt die Medienwiedergabeeinrichtung
dem Medienserver 604 die Titellisten ID und das Etikett
zur Verfügung.
Der Medienserver 604 sucht seinerseits in der Tabelle nach
dem Datensatz, der von der Titellisten-ID und dem Etikett angegeben
wird. Wenn der Datensatz existiert, gewährt der Medienserver 604 Zugriff auf
den zweiten Stream und kennzeichnet den Stream als von dem Endbenutzer
mit dem bestimmten Etikett angesehen. Wenn ein nicht berechtigter
Endbenutzer versucht, mit derselben URL-Verknüpfung auf den zweiten Stream
zuzugreifen, verweigert der Medienserver 604 den Zugriff,
weil in dem Datensatz, der zu der Titellisten-ID und dem Etikett
gehört,
der zweite Stream als angesehen gekennzeichnet worden ist. Derselbe
Prozess wird für
die Bereitstellung von Zugriff auf die verbleibenden Streams mit
Inhalt in der Titelliste genutzt. Wie einem Fachmann verständlich ist,
vermeidet diese Ausführung
jegliches Potenzial, fälschlicherweise
Zugriff auf einen nachfolgenden Stream in einer Titelliste wegen
der Zeitverzögerung
zwischen der Gewährung von
Zugriff auf den ersten Stream und einem solchen nachfolgenden Stream
zu verweigern.
-
Fachleute
erkennen, dass das Verfahren und das System nach der vorliegenden
Erfindung viele Anwendungen hat, auf viele Arten implementiert werden
kann, und als solches nicht auf die vorangehenden beispielhaften
Ausführungen
und Beispiele begrenzt ist. Darüber
hinaus deckt der Bereich der vorliegenden Erfindung herkömmlich bekannte
und in Zukunft entwickelte Variationen und Modifikationen der hier
beschriebenen Systemkomponenten ab, wie Fachleute verstehen.