Delen via


Vertrouwde klokken van PlayReady

Een vertrouwde klok van PlayReady is een algemene term voor een klok die wordt gebruikt om beperkingen op basis van tijd af te dwingen die zijn ingesteld op met PlayReady beveiligde inhoud op PlayReady-clients. Elke client die een vertrouwde klok implementeert, zorgt ervoor dat een client die het afspelen beperkt tot een begindatum en -tijd, een vervaldatum en -tijd, of vervaldatum en -tijd na het eerste afspelen niet kan worden geknoeid met het gebruik van hackhulpprogramma's tot een niveau dat is gedefinieerd in de Robustness Rules for PlayReady Products.

Microsoft vereist geen clientontwikkelaars om een vertrouwde klok te gebruiken. Clients zonder een vertrouwde klok kunnen echter geen licenties beheren met beleid op basis van tijd, inclusief verlooptijd. Omdat dit scenario zeer gebruikelijk is in de branche (zoals verhuur of abonnement), raadt Microsoft aan om een PlayReady Trusted Clock in elke client te implementeren.

Clientontwikkelaars kunnen kiezen uit twee soorten PlayReady Trusted Clocks in hun ontwerp. Beide bieden u de mogelijkheid om licenties te beheren met beleid op basis van tijd:

  • PlayReady Secure Clock
  • PlayReady Anti-terugdraaiklok

PlayReady Secure Clock

Een PlayReady Secure Clock is 'een realtime hardwareklok die is ontworpen om onbevoegde toegang te weerstaan op het niveau dat is gedefinieerd in de Robuustheidsregels', zoals gedefinieerd in het document Gedefinieerde voorwaarden voor de nalevings- en robuustheidsregels voor PlayReady-producten.

Volgens de vereisten van de nalevingsregels voor PlayReady-producten moet een PlayReady Secure Clock een Secure Clock Service gebruiken om de waarde ervan in te stellen. Microsoft werkt met sommige PlayReady Secure Clock-services die apparaatmakers voor dit doel kunnen gebruiken.

PlayReady Secure Clock

Licentieservertijd

Vanaf PlayReady 4.5 is de Secure Clock-service mogelijk de licentieverwervingsserver zelf waar de PlayReady Server SDK de tijd biedt tijdens het verkrijgen van licenties.

Als u deze functionaliteit wilt gebruiken, moet aan de volgende vereisten worden voldaan:

  • Zowel de server als de client (inclusief TEE en REE) moeten PlayReady 4.5 of hoger gebruiken.
  • Zowel de server als de clienttoepassingen moeten op de hoogte zijn van de functie.
  • De client (in zowel de TEE als de REE) moet de functie Beveiligde tijd tijdens de build bevatten en de bijbehorende OEM_TEE methoden implementeren, zoals beschreven in codeopmerkingen in de PlayReady Device Porting Kit.
  • De clienttoepassing moet alleen communiceren met licentieverwervingsservers die deze functie ondersteunen en inschakelen, OF moeten ook in staat zijn om te communiceren met een externe Secure Clock-service.
  • De server moet een licentieservertijdcertificaat hebben dat is opgegeven door Microsoft.
  • Als er meerdere exemplaren van licentie-acquisitieserver worden gebruikt voor schaalbaarheidsdoeleinden, moeten hun OS systeemtijden met elkaar worden gesynchroniseerd.
  • Als permanente licenties met beperkingen op basis van tijd zijn verkregen voordat de functie is ingeschakeld (bijvoorbeeld dat de client wordt bijgewerkt van een eerdere versie van PlayReady naar PlayReady 4.5), moeten de client en de server requisition van deze licenties inschakelen nadat de functie in gebruik is.

Een server schakelt deze functionaliteit als volgt in:

  • Maak een exemplaar van de klasse LicenseServerTimeCertificate met het licentieservertijdcertificaat dat door Microsoft wordt geleverd en het bijbehorende sleutelpaar.
  • Stel de eigenschap LicenseServerTimeCertificate van de LicenseResponse-klasse in op dat exemplaar. Opmerking: het instellen van deze eigenschap heeft geen effect als de client de functie niet ondersteunt, dus u hoeft uw toepassingscode niet te splitsen op basis van clientondersteuning.
  • (Optioneel) Als de eigenschap LicenseAcquisitionChallenge van de klasse LicenseServerTimeRequested alleen-lezen waar retourneert, kan het licentieantwoord eventueel geen licenties bevatten.
  • (Optioneel) Als de eigenschap LicenseRequested van de PlayReadyHeader-klasse False retourneert, heeft de client aangegeven dat er geen licenties worden aangevraagd en dat de logica van de servertoepassing ervoor kan kiezen om op deze informatie te reageren. (Dit betekent dat de PlayReady-header v4.3.0.0 die vanaf de client wordt verzonden, het aanvullende optionele kenmerk LICENSEREQUESTED heeft op het knooppunt PROTECTINFO ingesteld op false.)

Een client schakelt deze functionaliteit als volgt in:

  • Neem (in de TEE en REE) de functie Secure Time op tijdens het compileren/koppelen en implementeer de bijbehorende OEM_TEE methoden zoals beschreven in codeopmerkingen in de PlayReady Porting Kit.
  • Wanneer een PlayReady-API DRM_E_SECURETIME_CLOCK_NOT_SET retourneert, moet u licentieaankoop uitvoeren om de beveiligde klok in te stellen.
  • Wanneer een PlayReady-API DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE retourneert, voert u een licentie-acquisitie uit om een ongeldig geworden permanente licentie opnieuw aan te vragen. Dit gebeurt alleen als permanente licenties met beperkingen op basis van tijd zijn verkregen voordat de functie werd ingeschakeld (bijvoorbeeld de client is bijgewerkt van een eerdere versie van PlayReady naar PlayReady 4.5).
  • (Optioneel) Bij het uitvoeren van licentieverwerving uitsluitend voor het instellen van de beveiligde klok, kan de toepassing ervoor kiezen om een PlayReady Header v4.3.0.0 te gebruiken met het extra optionele kenmerk LICENSEREQUESTED op het knooppunt PROTECTINFO ingesteld op false om aan te geven dat er geen licentie nodig is. Raadpleeg de playReady-headerspecificatie voor meer informatie.

PlayReady Anti-terugdraaiklok

Een PlayReady Anti-rollback Clock is "een klok die in realtime werkt en periodiek door het PlayReady Final Product wordt geverifieerd om vooruit te zijn gegaan", zoals gedefinieerd in het document met Geformuleerde Termen voor de regels omtrent naleving en robuustheid voor PlayReady-producten.

Volgens de vereisten van de nalevingsregels voor PlayReady-producten kan een PlayReady Anti-terugdraaiklok elke tijdbron gebruiken om de waarde ervan in te stellen. Het vertrouwen in de tijdwaarneming wordt gewaarborgd door het anti-rollbackmechanisme ingebouwd in de PK. Het gebruik van een PlayReady Secure Clock-service om de waarde ervan in te stellen, is ook toegestaan. Microsoft werkt met sommige PlayReady Secure Clock-services die apparaatmakers voor dit doel kunnen gebruiken.

PlayReady Anti-terugdraai-klok