Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En PlayReady Trusted Clock är en allmän term för en klocka som används för att framtvinga tidsbaserade begränsningar som anges för PlayReady-skyddat innehåll på PlayReady-klienter. Alla klienter som implementerar en betrodd klocka ser till att en klient som begränsar uppspelningen till ett startdatum och en starttid, ett förfallodatum och en förfallotid eller förfallodatum och tid efter den första uppspelningen inte kan manipuleras med hjälp av hackningsverktyg till en nivå som definieras i Robusthetsregler för PlayReady-produkter.
Microsoft kräver inte att klientutvecklare använder en betrodd klocka. Klienter utan betrodd klocka kan dock inte hantera licenser med tidsbaserade principer, inklusive förfallodatum. Eftersom det här scenariot är mycket vanligt i branschen (t.ex. uthyrning eller prenumeration) rekommenderar Microsoft att du implementerar en PlayReady Trusted Clock i varje klient.
Klientutvecklare kan välja mellan två typer av PlayReady Trusted Clocks i sin design. Båda gör att du kan hantera licenser med tidsbaserade principer:
- PlayReady säkerhetsklocka
- PlayReady Anti-rollback Klocka
PlayReady Säker klocka
En PlayReady Secure Clock är "en realtidsklocka för maskinvara som har utformats för att motstå obehörig åtkomst på den nivå som definieras i robusthetsreglerna", enligt definitionen i dokumentet Definierade villkor för efterlevnads- och robusthetsreglerna för PlayReady-produkter.
Enligt kraven i efterlevnadsreglerna för PlayReady-produkter måste en PlayReady Secure Clock använda en säker klocktjänst för att ange dess värde. Microsoft driver vissa PlayReady Secure Clock Services som enhetstillverkare kan använda för detta ändamål.
Licensserverns tid
Från och med PlayReady 4.5 kan secure clock-tjänsten vara själva licensförvärvsservern där PlayReady Server SDK ger tiden under licensförvärvet.
Om du vill använda den här funktionen måste följande krav uppfyllas:
- Både servern och klienten (inklusive TEE och REE) måste använda PlayReady 4.5 eller senare.
- Både servern och klientprogrammen måste känna till funktionen.
- Klienten (i både TEE och REE) måste inkludera funktionen Säker tid vid byggtiden och implementera de associerade OEM_TEE metoderna enligt beskrivningen i kodkommentarna i PlayReady Device Porting Kit.
- Klientprogrammet får antingen bara tala med licensförvärvsservrar som stöder och aktivera den här funktionen eller måste också kunna prata med en extern säker klocktjänst.
- Servern måste ha ett licensservertidscertifikat som tillhandahålls av Microsoft.
- Om flera serverinstanser för licensförvärv används i skalbarhetssyfte måste deras operativsystemtider synkroniseras med varandra.
- Om beständiga licenser med tidsbaserade begränsningar hämtades innan funktionen aktiverades (t.ex. att klienten uppgraderas från en tidigare version av PlayReady till PlayReady 4.5), måste klienten och servern aktivera reacquisition av dessa licenser när funktionen används.
En server aktiverar den här funktionen på följande sätt:
- Skapa en instans av klassen LicenseServerTimeCertificate med licensserverns tidscertifikat som tillhandahålls av Microsoft och dess motsvarande nyckelpar.
- Ange egenskapen LicenseServerTimeCertificate i LicenseResponse-klassen till den instansen. Obs! Inställningen av den här egenskapen har ingen effekt om klienten inte stöder funktionen, så det finns inget behov av att bifurcate din programkod baserat på klientsupport.
- (Valfritt) Om LicenseAcquisitionChallenge-klassens licenseServerTimeRequested skrivskyddade egenskapen returnerar true, kan licenssvaret valfritt innehålla inga licenser.
- (Valfritt) Om PlayReadyHeader-klassens skrivskyddade egenskap LicenseRequested returnerar falskt, har klienten angett att ingen licens begärs, och serverprogrammets logik kan välja att agera på denna information. (Det innebär att PlayReady-huvudet v4.3.0.0 som skickas från klienten har det ytterligare valfria attributet LICENSEREQUESTED på PROTECTINFO-noden inställd på false.)
En klient aktiverar den här funktionen på följande sätt:
- Inkludera (i både TEE och REE) funktionen Säker tid vid kompilerings-/länktid och implementera de associerade OEM_TEE metoderna enligt beskrivningen i kodkommentarna i PlayReady Porting Kit.
- När ett PlayReady-API returnerar DRM_E_SECURETIME_CLOCK_NOT_SET, ska du förvärva en licens för att ställa in den säkra klockan.
- När ett PlayReady-API returnerar DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE utför du licensförvärvet för att återkräva en beständig licens som har ogiltigförklarats. Detta inträffar endast om beständiga licenser med tidsbaserade begränsningar hämtades innan funktionen aktiverades (t.ex. klienten uppgraderades från en tidigare version av PlayReady till PlayReady 4.5).
- (Valfritt) När du utför licensförvärv enbart för att ställa in den säkra klockan kan programmet välja att använda ett PlayReady-huvud v4.3.0.0 med det ytterligare valfria attributet LICENSEREQUESTED på PROTECTINFO-noden inställd på false för att indikera att ingen licens behövs. Mer information finns i specifikationen för PlayReady-sidhuvud.
PlayReady Anti-rollback Klocka
En PlayReady Anti-rollback-klocka är "en realtidsklocka som regelbundet verifieras av PlayReady-slutprodukten för att ha avancerat", enligt definitionen i dokumentet Definierade villkor för efterlevnads- och robusthetsreglerna för PlayReady-produkter
Enligt kraven i efterlevnadsreglerna för PlayReady-produkter kan en PlayReady Anti-rollback-klocka använda valfri tidskälla för att ange dess värde. Förtroendet för klockan skapas av den inbyggda mekanismen mot tillbakagång i PK:n. Det är också tillåtet att använda en PlayReady Secure Clock Service för att ange dess värde. Microsoft driver vissa PlayReady Secure Clock Services som enhetstillverkare kan använda för detta ändamål.