Einfaches End-to-End-System
In der typischen Verwendung schützt Microsoft PlayReady Inhalte, indem Lizenzen für Mediendateien bereitgestellt werden. Es gibt keine Notwendigkeit, Dateien auszublenden, sie nicht zugänglich zu machen oder einen besonderen Schutz zu platzieren, wenn Dateien von System zu System zu System übertragen werden. Mit anderen Worten, es gibt keine Betriebssystemanforderungen oder hohe Sicherheit, Dateitransportmechanismen erforderlich. Das Kopieren einer Datei und das Geben eines Freundes ermöglicht jedoch nicht, dass dieser Freund die Datei verwenden kann, wenn es durch PlayReady geschützt ist. Um eine Mediendatei zu verwenden, benötigen Benutzer eine Lizenz. Diese Lizenz ist das primäre Mittel zur Ausübung der Kontrolle über Inhalte (die Mediendatei). Eine Lizenz wird einem einzelnen Client (z. B. einem Media player) oder einer Domäne gewährt. Die Lizenz funktioniert nicht für andere Clients oder andere Domänen.
Jede Lizenz enthält Rechte und Einschränkungen, die genau definieren, wie der Inhalt verwendet werden kann und unter welchen Bedingungen. Beispielsweise kann eine Musikdateilizenz ein "Recht zum Wiedergeben" aktivieren, aber die Sicherheitsstufe der Anwendung einschränken, auf der der Inhalt wiedergegeben werden kann. Die Lizenz kann für den Zeitraum zwischen dem 1. Oktober 2017 und dem 1. November 2017 gültig sein. Möglicherweise gibt es mehrere Lizenzen für eine einzelne Datei. Ein Benutzer kann auf seine Inhalte zugreifen und verwenden, solange eine der Lizenzen die entsprechenden Rechte gewährt und die Einschränkungen keinen Zugriff verhindern.
Übersicht über einen End-to-End-Videodienst
Die folgende Abbildung enthält einen hohen Blick auf einen End-to-End-Videodienst, einschließlich des Back-End-Diensts links und clients rechts.
Auf der linken Seite der Abbildung können Sie sehen, dass der Dienst einige Server hat, um das Video (Inhaltsverteilungsnetzwerk) zu streamen. Es gibt auch einige Server, auf denen die Benutzer den Inhalt durchsuchen und den Inhalt auswählen können, den sie wiedergeben möchten (Benutzeroberfläche). Darüber hinaus gibt es einige Server, die es den Benutzern ermöglichen, sich anzumelden und authentifiziert zu werden, sowie inhalte zu bezahlen (authentifizieren, bezahlen). Und es gibt auch einen PlayReady-Lizenzserver.
Auf der rechten Seite der Abbildung sind die Clients. Die Clients könnten Windows Anwendungen, Smartphoneanwendungen oder bestimmte Geräte wie Set Top Boxen, Netzwerkempfänger usw. sein. Einige dieser Clients können einen integrierten PlayReady-Client in ihren Spielern enthalten, z. B. die OEM möglicherweise PlayReady im Betriebssystem oder in der Hardware integriert haben. Andere können mit einem Client in die Anwendung integriert werden, die im App Store veröffentlicht wird. Es gibt viele verschiedene Optionen für Spieler, um PlayReady auf der Clientseite zu integrieren.
Dieses Thema wird sich auf die Funktionsweise von PlayReady für einen Dienst konzentrieren, wie in der folgenden Abbildung dargestellt.
Was PlayReady bietet, ist eine Möglichkeit für einen Client, Lizenzen von einem Server anzufordern, wodurch dann die Schlüssel bereitgestellt werden, die den Inhalt in einem geschützten Formular über ein offenes Netzwerk schützen. Das zweite, was PlayReady tut, bietet Rechte und rechte Einschränkungen für den Client. Mit PlayReady hat der Dienst die Möglichkeit, einen Schlüssel für die Inhaltswiedergabe bereitzustellen, aber beispielsweise nur den Client erlauben, diesen Schlüssel für zwei Tage in einem Mietszenario zu verwenden. So bietet PlayReady eine Möglichkeit, Rechte und rechte Einschränkungen mit dem Schlüssel zu deklarieren.
PlayReady bietet auch eine Möglichkeit, den Inhaltsschlüssel auf der Clientseite sicherer zu speichern, sodass der Client diesen Clientschlüssel zum Entschlüsseln von Inhalten zum Rendern verwenden kann, aber nicht das Speichern von Inhalten in der klaren und freigabe für andere Benutzer zulassen.
Um sicherzustellen, dass PlayReady-Clients auf richtige Weise verhalten, erfordert PlayReady Hardware- und Softwareimplementierungen, um die Compliance- und Robustness-Regeln zu befolgen. Diese Regeln steuern, wie sich ein Client verhalten muss, wenn er PlayReady-Inhalte entschlüsselt oder verarbeitet. Sie erfordern auch, dass Clients die Einschränkungen verarbeiten, die in einer Lizenz ordnungsgemäß gefunden wurden. Wenn also ein Client Anweisungen erhält, um den Inhaltsschlüssel für nicht mehr als 48 Stunden zu verwenden, muss der Client diese Anweisungen befolgen. Diese Regeln werden von Microsoft im Compliance- und Robustness-Regeln bereitgestellt, und es ist bis zum Cliententwickler erforderlich, diese Regeln in ihren Clients zu erzwingen.
Grundlegende Verschlüsselung und Lizenzierungsprozess
Die folgenden Schritte veranschaulichen den End-to-End-Verschlüsselungs- und Lizenzierungsprozess für Inhalte und die Teilnahme von PlayReady an dem Prozess.
Die folgende Abbildung enthält ein Objekt - eine Audio-/Videodatei - die nicht verschlüsselt wurde. Die Methode, die zum Verschlüsseln der Inhalte verwendet wird, ist vollständig bis zum Inhaltsanbieter und wird nicht als Teil von PlayReady bereitgestellt.
Um diese Datei zu verschlüsseln, muss der Dienst einen Schlüsselgenerator in seiner Inhaltsverschlüsselung verwenden, der einen neuen Inhaltsschlüssel generiert, der zum Verschlüsseln des Inhalts verwendet wird. Dieser Inhaltsschlüssel wird später vom PlayReady-Lizenzserver an den Client übermittelt, um die Entschlüsselung des Inhalts und Renderings für den Benutzer zu ermöglichen. Zusammen mit dem Inhaltsschlüssel, der ein privater Wert ist, zuordnen Verschlüsselungsdienste auch einen Schlüsselbezeichner (KeyID) - dies ist eine GUID - mit dem Inhaltsschlüssel. Die KeyID ist ein öffentlicher Wert.
Der Schlüssel und die KeyID sind zur Verschlüsselung ausgelegt und werden in einem Schlüsselverwaltungssystem gespeichert, das in der Regel eine Art Datenbank darstellt. PlayReady stellt das Schlüsselverwaltungssystem nicht bereit, daher ist es bis zum Dienst oder Partner, der den Dienst mit dem Sender erstellt, um das Schlüsselverwaltungssystem bereitzustellen.
Zusätzlich zum Speichern des Schlüssels und der KeyID im Schlüsselverwaltungssystem müssen Sie auch die KeyID an einen Paketgeber anpassen, der dann eine Kopfzeile generiert. Diese Kopfzeile wird vom Dienst oder Partner gemäß der PlayReady-Kopfzeilenspezifikation formatiert und dann in die Klare in der Inhaltsdateiheader angepasst.
An diesem Punkt wird die Audio- und Videodatei mithilfe der KeyID verschlüsselt und Sie verfügen über eine verschlüsselte Inhaltsdatei, die an einen Client übermittelt werden kann.
Jetzt kann der Client beginnen, den Inhalt zu nutzen. Das erste, was der Client wahrscheinlich tun wird, ist die Authentifizierung des Benutzers an den Dienst, in der Regel durch Bereitstellen eines Anmeldenamens und kennworts, aber jeder andere Mechanismus zum Authentifizieren des Benutzers und Geräts ist gut. Normalerweise wird ein Sitzungstoken an den Client zurückgegeben, sobald der Benutzer überprüft wird. Beachten Sie, dass jeder Mechanismus für die Benutzerauthentifizierung verwendet wird, es ist vollständig bis zum Dienst, wie der Benutzer authentifiziert wird; PlayReady liefert diese Technologie nicht.
Als Nächstes wird der Inhalt an den Client übermittelt (z. B. hat der Client mit dem Herunterladen eines Teils des Datenstroms begonnen, der den Inhalt darstellt). Der Client beginnt dann, diesen Inhalt zu analysieren und erkennt, dass es verschlüsselt ist und einen unbekannten Schlüssel verwendet, aber eine KeyID enthält.
An diesem Punkt sendet der Client eine Lizenzerwerbsanforderung an den Lizenzserver.
Der Lizenzserver verbindet sich dann mit dem Authentifizierungsdienst, um den Benutzer zu überprüfen. In der Regel wird überprüft, ob der Client/Benutzer das Recht auf diese bestimmte Lizenz hat. Und wieder stellt PlayReady dieses Layout (Authentifizierung) nicht bereit, wir stellen nur den Lizenzserver bereit. Der Authentifizierungsdienst reagiert dann in der Regel mit ja oder nein, oder vielleicht ja mit Einschränkungen (z. B. hat dieser Benutzer das Recht für diesen bestimmten Film, aber nur bei einer niedrigeren Videoqualität, weil der Benutzer nicht über die höchste Qualität des Abonnements verfügt - basierend auf dem Betrag, den der Benutzer pro Monat bezahlt).
Anschließend fordert der Lizenzserver den Wert des Schlüssels an, basierend auf der KeyID, aus dem Schlüsselverwaltungssystem, das die Schlüssel speichert, und das Schlüsselverwaltungssystem antwortet auf diese Anforderung. Nur zu wiederholen, gibt PlayReady die Komponenten des Schlüsselverwaltungssystems nicht an, sodass es eine Anforderung vom PlayReady-Lizenzserver gibt, welche Komponente der Dienst zum Speichern der Schlüssel erstellt hat.
Der Schlüssel wird vom Lizenzserver empfangen und der Lizenzserver kann die Lizenz liefern. Die Antwort der geschützten PlayReady-Lizenz umfasst den Wert des Schlüssels und eine Liste der Rechte und rechten Einschränkungen, die der Client erzwingen soll.
Obwohl diese Demonstration zeigt, dass der PlayReady-Lizenzserver nur einen Schlüssel liefert, ist es möglich, dass der Lizenzserver einen Stapel von Lizenzen in einer Lizenzantwort liefert. Mehrere Lizenzen könnten in einer Transaktion enthalten sein, wobei jede Lizenz einen Schlüssel bereitstellt, wenn der Inhalt mit mehreren Schlüsseln geschützt ist oder wenn der Dienst mehrere Schlüssel vorab bereitstellen möchte, da der Dienst beispielsweise weiß, dass der Benutzer acht Titel in einer Zeile hören wird.
Die andere Technologie, die PlayReady bereitstellt, ist eine Möglichkeit, den Schlüssel und die Rechte im Client zu speichern, die als Lizenz Store bezeichnet wird.
Die Lizenz Store wird in der Regel als HDS bezeichnet, da die Struktur der Lizenz Store ein Hashdatenspeicher ist. Es kann mehrere Arten von Lizenzspeichern auf einem Gerät vorhanden sein – eine Anwendung könnte ihre eigene HDS enthalten, um sicherzustellen, dass die HDS eines Unternehmens nicht in derselben Datei wie die HDS eines anderen Unternehmens enthalten ist. Es ist ganz der Cliententwickler, diese Designauswahl zu treffen. Beispielsweise hat Microsoft mit PlayReady auf Windows eine HDS für Internet Explorer und eine andere für Microsoft Edge pro Website sowie eine für jede Windows universelle App ausgewählt.
Die HDS kann auf beständiger Weise gespeichert werden, z. B. auf der Festplatte oder auf dem beständigen Speicher des Geräts, oder sie kann auf nicht beständiger Weise gespeichert werden, z. B. in nicht beständigem Speicher. Wenn der Lizenzserver eine Lizenz ausgibt, könnte es daher eine Eigenschaft der Lizenz festlegen, die angibt, dass die Lizenz nicht auf der Festplatte des Clients gespeichert werden soll, oder im Fall eines set top box oder phone, dass es nicht im beständigen Speicher gespeichert werden sollte, da Sie als Dienst ihre Lizenzen nicht im beständigen Speicher gespeichert haben möchten. In diesem Fall speichern Sie einfach den HDS im Kontext der Playeranwendung, sodass der Benutzer die Playeranwendung schließt, die Lizenz und seine Rechte verschwinden.