Eenvoudig end-to-endsysteem

Bij normaal gebruik beveiligt Microsoft PlayReady inhoud door licenties voor mediabestanden te verlenen. Het is niet nodig om bestanden te verbergen, ze ontoegankelijk te maken of speciale beveiliging in te stellen wanneer bestanden van het systeem naar het systeem worden verzonden. Met andere woorden, er zijn geen besturingssysteemvereisten of mechanismen voor hoge beveiliging, bestandstransport nodig. Als u echter een bestand kopieert en aan een vriend geeft, kan die vriend het bestand niet gebruiken als het is beveiligd door PlayReady. Als gebruikers een mediabestand willen gebruiken, hebben ze een licentie nodig. Deze licentie is de primaire methode om controle uit te oefenen over inhoud (het mediabestand). Er wordt een licentie verleend aan één client (zoals een mediaspeler) of een domein. De licentie werkt niet op andere clients of andere domeinen.

Elke licentie bevat rechten en beperkingen, waarmee u precies definieert hoe de inhoud kan worden gebruikt en onder welke voorwaarden. Een licentie voor muziekbestanden kan bijvoorbeeld een 'recht om af te spelen' inschakelen, maar het beveiligingsniveau van de toepassing beperken waarop de inhoud kan worden afgespeeld. De licentie kan geldig zijn voor de periode tussen 1 oktober 2017 en 1 november 2017. Er zijn mogelijk meerdere licenties voor één bestand. Een gebruiker kan zijn of haar inhoud openen en gebruiken zolang een van de licenties de juiste rechten verleent en de beperkingen geen toegang verhinderen.

Overzicht van een end-to-end videoservice

De volgende afbeelding bevat een algemeen overzicht van een end-to-end videoservice, inclusief de back-end van de service aan de linkerkant en clients aan de rechterkant.

Architectuur van videoservice

Aan de linkerkant van de afbeelding ziet u dat de service een aantal servers heeft om de video te streamen (netwerk voor inhoudsdistributie). Er zijn ook enkele servers waarmee de gebruikers door de inhoud kunnen bladeren en de inhoud kunnen kiezen die ze willen afspelen (gebruikersinterface). Bovendien zijn er enkele servers waarmee de gebruikers zich kunnen aanmelden en worden geverifieerd, evenals betalen voor inhoud (verifiëren, betalen). En er is ook een PlayReady-licentieserver.

Aan de rechterkant van de afbeelding staan de clients. De clients kunnen Windows-toepassingen, smartphonetoepassingen of specifieke apparaten zijn, zoals set-topboxen, netwerkontvangers, enzovoort. Sommige van deze klanten kunnen een geïntegreerde PlayReady-client in hun spelers hebben, bijvoorbeeld als de OEM PlayReady in het besturingssysteem of in de hardware heeft geïntegreerd. Andere kunnen worden geleverd met een client die geïntegreerd is in de toepassing die gepubliceerd is in de App Store. Er zijn veel verschillende opties voor spelers om PlayReady aan de clientzijde te integreren.

Dit onderwerp gaat zich richten op wat PlayReady voor een service doet, zoals wordt weergegeven in de volgende afbeelding.

Wat PlayReady doet voor de service

Wat PlayReady biedt, is een manier voor een client om licenties aan te vragen bij een server, die vervolgens de sleutels levert waarmee de inhoud in een beveiligd formulier wordt beveiligd via een geopend netwerk. Het tweede wat PlayReady doet, is het leveren van rechten en rechte beperkingen aan de client. Met PlayReady heeft de service de mogelijkheid om een sleutel te bieden voor het afspelen van inhoud, maar laat de client die sleutel bijvoorbeeld slechts twee dagen gebruiken in een verhuurscenario. PlayReady biedt een manier om rechten en rechtenbeperkingen met de sleutel te declareren.

PlayReady biedt ook een manier om de inhoudssleutel veiliger op te slaan aan de clientzijde, zodat de client die sleutel kan gebruiken om inhoud te ontsleutelen voor weergave. Het staat echter niet toe om deze inhoud in leesbare vorm op te slaan en met andere gebruikers te delen.

Om ervoor te zorgen dat PlayReady-clients zich op de juiste manier gedragen, vereist PlayReady hardware- en software-implementaties om de nalevings- en robuustheidsregels te volgen. Deze regels bepalen hoe een client zich moet gedragen wanneer deze playReady-inhoud ontsleutelt of verwerkt.  Ze vereisen ook dat clients de beperkingen in een licentie correct verwerken.  Dus als een client gedurende maximaal 48 uur instructies ontvangt voor het gebruik van de inhoudssleutel, moet de client deze instructies volgen. Deze regels worden geleverd door Microsoft in de regels voor naleving en robuustheid, en het is aan de clientontwikkelaar om deze regels in hun clients af te dwingen.

Basisversleuteling en licentieproces

De volgende stappen illustreren het end-to-end-versleutelings- en licentieproces voor inhoud en hoe PlayReady betrokken is bij het proces.

De volgende afbeelding bevat één asset, een audio-/videobestand, dat niet is versleuteld. De methode die wordt gebruikt om de inhoud te versleutelen, is volledig aan de inhoudsprovider en wordt niet geleverd als onderdeel van PlayReady.

Het inhoudsbestand versleutelen

  1. Om dit bestand te versleutelen, moet de service een sleutelgenerator gebruiken in hun inhoudsversleutelaar. Deze genereert een nieuwe inhoudssleutel die wordt gebruikt om de inhoud te versleutelen. Deze inhoudssleutel wordt later van de PlayReady-licentieserver aan de client geleverd om ontsleuteling van de inhoud en rendering voor de gebruiker toe te staan. Naast de inhoudssleutel, een persoonlijke waarde, koppelen versleutelingsservices ook een sleutel-id (KeyID) ( een GUID ) aan de inhoudssleutel. De KeyID is een openbare waarde.

  2. De sleutel en KeyID zijn ontworpen tijdens de versleuteling en worden opgeslagen in een sleutelbeheersysteem. Dit is meestal een soort database. PlayReady biedt het sleutelbeheersysteem niet, dus het is aan de service of partner die de service samenstelt met de omroep om het sleutelbeheersysteem te leveren.

  3. Naast het opslaan van de sleutel en KeyID in het sleutelbeheersysteem, moet u ook de KeyID aanpassen aan een packager, die vervolgens een header genereert. Deze header wordt door de service of partner opgemaakt volgens de PlayReady-headerspecificatie en vervolgens duidelijk zichtbaar in de header van het inhoudsbestand geplaatst.

    Op dit moment worden de audio en video versleuteld met behulp van de KeyID en hebt u een versleuteld inhoudsbestand dat klaar is om aan een client te worden geleverd.

    De gebruiker verifiëren

  4. De client kan nu beginnen met het gebruiken van de inhoud. Het eerste wat de client waarschijnlijk gaat doen, is de gebruiker verifiëren bij de service, meestal door een aanmeldingsnaam en wachtwoord op te geven, maar elk ander mechanisme voor verificatie van de gebruiker en het apparaat is prima. Normaal gesproken wordt een sessietoken geretourneerd naar de client zodra de gebruiker is geverifieerd. Houd er rekening mee dat het mechanisme dat wordt gebruikt voor gebruikersverificatie, het volledig aan de service is hoe de gebruiker wordt geverifieerd; PlayReady levert deze technologie niet.

    Levering van inhoud

  5. Vervolgens wordt de inhoud aan de client geleverd (de client is bijvoorbeeld begonnen met het downloaden van een deel van de gegevensstroom waaruit de inhoud bestaat). De client begint deze inhoud te parseren en ontdekt dat deze is versleuteld en een sleutel gebruikt die onbekend is, maar een KeyID bevat.

    Licentieverwerving

  6. Op dat moment verzendt de client een aanvraag voor het verkrijgen van licenties naar de licentieserver.

  7. De licentieserver communiceert vervolgens met de verificatieservice om de gebruiker te verifiëren. Het eerste wat de licentieserver doet, is meestal controleren of de client/gebruiker het recht heeft voor die specifieke licentie. En nogmaals, PlayReady biedt die indeling (verificatie) niet, we bieden alleen de licentieserver. De verificatieservice reageert dan meestal met ja of nee, of misschien met beperkingen (deze gebruiker heeft bijvoorbeeld het recht voor deze specifieke film, maar alleen op een lagere kwaliteit van video omdat de gebruiker niet het hoogste kwaliteit abonnementsniveau heeft, op basis van het bedrag dat de gebruiker per maand betaalt).

  8. Vervolgens vraagt de licentieserver de waarde van de sleutel op, op basis van de KeyID, van het sleutelbeheersysteem waarin de sleutels worden opgeslagen en het sleutelbeheersysteem reageert op die aanvraag. Om nogmaals te herhalen, levert PlayReady niet de onderdelen van het sleutelbeheersysteem, dus er wordt een aanvraag van de PlayReady-licentieserver verzonden naar het onderdeel dat de service heeft gebouwd om de sleutels op te slaan.

  9. De sleutel wordt ontvangen door de licentieserver en de licentieserver kan de licentie leveren. Het beveiligde PlayReady-licentieantwoord bevat de waarde van de sleutel en een lijst met rechten en rechte beperkingen voor de client om af te dwingen.

    Hoewel in deze demonstratie de PlayReady-licentieserver slechts één sleutel levert, is het mogelijk dat de licentieserver een stapel licenties in één licentieantwoord levert. Er kunnen meerdere licenties worden opgenomen in één transactie, waarbij elke licentie één sleutel levert als de inhoud is beveiligd met meerdere sleutels of als de service meerdere sleutels van tevoren wil leveren, omdat de service bijvoorbeeld weet dat de gebruiker acht sporen achter elkaar gaat beluisteren.

    Licentiewinkel

  10. Het andere technologieonderdeel dat PlayReady biedt, is een manier om de sleutel en de rechten in de client op te slaan, die de licentieopslag wordt genoemd.

  The License Store is typically called the HDS because the structure of the License Store is a *hashed data store*. There can be multiple types of License Stores on a device — one application could contain its own HDS just to ensure that one company's HDS is not in the same file as another company's HDS. It is entirely up to the client developer to make this design choice. For example, using PlayReady on Windows, Microsoft chose to have one HDS for Internet Explorer and another for Microsoft Edge per site, as well as one for each Windows Universal App.

   The HDS can be stored in a persistent way, such as on the hard drive or persistent memory of the device, or it can be stored in a non-persistent way, such as in non-persistent memory. Therefore, when the License Server issues a license, it could set a property of the license indicating that the license should not be stored on the hard drive of the client, or in the case of a set top box or phone, that it should not be stored in persistent memory because, as a service, you don't want to have your licenses stored in persistent memory. In that case, just store the HDS in memory in the context of the player application, so as soon as the user closes the player application, the license and its rights will vanish.