Bewährte Methoden für Lizenzrichtlinien

In diesem Abschnitt werden bewährte Methoden für die Programmierung von Lizenzrichtlinien bei Verwendung von PlayReady-Technologien beschrieben.

Verwenden von BeginDate mit EndDate

Eine der vielen Geschäftsmodelle von PlayReady unterstützt die Inhaltsmiete – Inhalte, die nur für einen begrenzten Zeitraum verwendet werden können (z. B. inhalte können bis 5 Uhr EST, 15. Oktober 2018) verwendet werden. Dies erfolgt durch Die Ausgabe von Clients durch eine PlayReady-Lizenz mit dem EndDate-Satz auf die Uhrzeit und das Datum, an dem die Lizenz abläuft.

Ein EndDate ist ausreichend, um eine Mietlizenz zu erstellen; Es ist jedoch eine bessere Methode, auch ein BeginDate in die Lizenz einzuschließen. Ein BeginDate gibt an, dass der zugeordnete Inhalt vor dem angegebenen Datum nicht verwendet werden kann. Die Kombination aus einem BeginDate mit dem EndDate ist eine natürliche Impedanz für Rollbackangriffe für die Uhr, bei denen Benutzer den gesamten PlayReady-Datenspeicher sichern und wiederherstellen, um Das Rollbackereignisse zu vermeiden.

Betrachten Sie das folgende Beispiel:

  • Das Datum ist 08/01/18 – Der Benutzer erwirbt Lizenz1 für Inhalt1. Lizenz1 hat EndDate=08/30/18.

  • Das Datum ist 09/01/18 – Der Benutzer erwirbt Lizenz2 für Inhalt2. Lizenz2 hat EndDate=09/30/18.

  • Der Benutzer erstellt eine Kopie des PlayReady-Datenspeichers.

  • Bevor Sie Content1 oder Content2 wiedergeben, legt der Benutzer die Uhr auf 08/01/18 zurück, wiederherstellen Sie die Kopie des PlayReady-Datenspeichers. Beide Inhalte können wiedergegeben werden.

Betrachten Sie nun das gleiche grundlegende Beispiel, aber mit BeginDates in den Lizenzen:

  • Das Datum ist 08/01/18 – Der Benutzer erwirbt Lizenz1 für Inhalt1. License1 hat BeginDate=08/01/18, EndDate=08/30/18.

  • Das Datum ist 09/01/18 – Der Benutzer erhält Lizenz2 für Inhalt2. License2 hat BeginDate=09/01/18, EndDate=09/30/18.

  • Der Benutzer erstellt eine Kopie des PlayReady-Datenspeichers.

  • Vor dem Wiedergeben von Content1 oder Content2 setzt der Benutzer die Uhr auf ein Datum vor 08/01/18 zurück, wiederherstellen sie die Kopie des PlayReady-Datenspeichers. Nur Content1 wird wiedergegeben.

In diesem Beispiel wird gezeigt, wie BeginDate natürlich hilft, die Machbarkeit des Datenspeichers zu reduzieren, um lizenzrichtlinien zu umgehen. Ein Benutzer kann mehr Kopien des Datenspeichers vornehmen, um um BeginDate zu arbeiten, aber da die Anzahl der Inhaltsdateien groß wird, wird die Verwaltung aller Datenspeicher, die erforderlich sind, um die Lizenzrichtlinie zu arbeiten, wächst im Verhältnis, wodurch ein Angriff weit weniger möglich ist.

In der Zusammenfassung, wenn Sie ein EndDate in einer PlayReady-Lizenz angeben, empfiehlt es sich, auch ein BeginDate einzuschließen.

Festlegen eines BeginDate-Werts, der für den Client funktioniert

Wenn Sie eine BeginDate zu einer Lizenz hinzufügen, empfiehlt es sich, es ein wenig in der Vergangenheit festzulegen, für PlayReady Clients Version 1 oder 2. Der Grund besteht darin, dass möglicherweise ein kleiner Uhrunterschied zwischen dem Server, der diese Lizenz generiert, und der Client, der es erhält, und der Absicht des Servers besteht darin, dass der Client die Lizenz verwenden kann, sobald der Client es empfängt.

Für PlayReady Clients 3 und höher sendet der Client seinen Uhrwert an den Lizenzserver entlang der Lizenzanforderung, und der Server kann BeginDate und andere Zeiteinschränkungen im Hinblick auf diesen Wert festlegen, unter dem Bedingung, dass es sich um den Zeitwert handelt, der dem Lizenzserver bekannt ist.

Ein typisches Beispiel mit einer PlayReady Client Version 2 wäre:

  1. Ein Benutzer mietet Inhalte am Freitag, 5. Januar 2018 um 8 Uhr, auf einem Android Telefon, das eine auf PlayReady 2.5 integrierte App ausführt.

  2. Die Android-App initiiert eine Lizenzanforderung an den Lizenzserver. Die Telefonuhr gibt 7:56 Uhr an, und die Lizenzserveruhr befindet sich am 8:00 Uhr.

  3. Der Lizenzserver empfängt die Lizenzanforderung, erkennt, dass der Client Version 2 ist und die Lizenz mit:

    • Rechts wiedergeben

    • Startzeit = lokale Serverzeit minus 5 Minuten = 5. Januar 2018 um 7:55 Uhr

    • Ablaufzeit, Ablauf nach der ersten Wiedergabe, andere rechte Einschränkungen wie Ausgabeschutz

    1. Der Lizenzserver sendet die Lizenz zurück an den Client.

    2. Der Client startet die Wiedergabe. Die Telefonuhr ist immer noch 7:56 Uhr und liegt an der BeginDate der Lizenz, die 7:55 UHR ist, sodass die Wiedergabe sofort gestartet werden kann.

Ein typisches Beispiel mit einer PlayReady-Clientversion 3 wäre:

  1. Ein Benutzer mietet Inhalte am Freitag, 5. Januar 2018 um 8 Uhr, auf einem Windows 10 Computer, auf dem eine UWP-App ausgeführt wird.

  2. Die UWP-App initiiert eine Lizenzanforderung an den Lizenzserver. Die PC-Uhr gibt 7:56 Uhr an, und die Lizenzserveruhr befindet sich am 8:00 Uhr.

  3. Der Lizenzserver empfängt die Lizenzanforderung, erkennt, dass der PlayReady-Client Version 3 ist, und sucht nach dem Wert der Clientuhr:

    • Wenn der Clientuhrwert nicht weiter abläuft als der Lizenzserver-Uhrwert als 1 Stunde, fahren Sie fort, und generieren Sie die Lizenz.

    • Wenn nicht, verweigern Sie die Lizenzanforderung und senden Sie eine Nachricht an die Client-App, um anzufordern, dass die Uhr auf den richtigen Wert festgelegt wird.

  4. Der Lizenzserver generiert die Lizenz mit:

    • Rechts wiedergeben

    • Startzeit = Clientzeit, die in der Lizenzanforderung enthalten ist = 5. Januar 2018 um 7:56 Uhr

    • Ablaufzeit, Ablauf nach der ersten Wiedergabe, andere rechte Einschränkungen wie Ausgabeschutz

    1. Der Lizenzserver sendet die Lizenz zurück an den Client.

    2. Der Client startet die Wiedergabe. Die PC-Uhr ist immer noch 7:56 Uhr und gleich oder über das BeginDate der Lizenz, die 7:56PM ist, so dass die Wiedergabe sofort gestartet werden kann.

Zeiteinschränkungen in Abonnementlizenzen

PlayReady unterstützt ein Abonnement-Geschäftsmodell, in dem Benutzer eine monatliche Gebühr für den Zugriff auf einen großen Inhaltskatalog zahlen, der vom Dienst angeboten wird.

In diesem Szenario geben PlayReady-Lizenzserver Blattlizenzen für jede Inhaltsdatei und eine einzelne Stammlizenz aus. Damit PlayReady auf den Inhalt zugreifen kann, sind sowohl die Blattlizenz als auch die Stammlizenz (die Lizenzkette) erforderlich. Beide Lizenzen müssen die Aktion enthalten, die auf dem Inhalt ausgeführt wird (z. B. Wiedergabe), und beide Lizenzen müssen gültig sein (nicht abgelaufen und so weiter).

Da nur eine Stammlizenz vorhanden ist und möglicherweise Hunderte oder Tausende von Blattlizenzen für einen bestimmten Inhaltskatalog vorhanden sind, sollten Blattlizenzen nur sehr wenige (falls vorhanden) Einschränkungen enthalten, und die Stammlizenz sollte Zeiteinschränkungen enthalten und regelmäßig aktualisiert werden (z. B. monatlich). Wenn ein Abonnement abgelaufen ist, muss der Lizenzserver nur eine Lizenz ausstellen und alle Inhalte werden mit dem neuen effektiven Ablaufdatum aktualisiert. Wenn die Richtlinie in den Blattlizenzen eine zeitbasierte Richtlinie enthält, müssen alle Blattlizenzen erneut ausgestellt werden, um zu verhindern, dass der Inhalt abläuft, was eine große Leistungsanforderung für Server sein würde.

In der Zusammenfassung sollten Inhalte mithilfe von Lizenzketten ablaufen, nur die Stammlizenz sollte die zeitbasierte Richtlinie enthalten.