Condividi tramite


Orologi attendibili PlayReady

Un orologio attendibile PlayReady è un termine generale per un orologio usato per applicare limitazioni basate sul tempo impostate sul contenuto protetto PlayReady nei client PlayReady. Qualsiasi client che implementa un orologio attendibile garantisce che un client che limita la riproduzione a una data e un'ora di inizio, una data e un'ora di scadenza o una data e un'ora dopo la prima riproduzione non possono essere manomessi utilizzando strumenti di hacking a un livello definito nelle regole di affidabilità per i prodotti PlayReady.

Microsoft non richiede agli sviluppatori client di usare un orologio attendibile. Tuttavia, i client senza un orologio attendibile non potranno gestire le licenze con criteri basati sul tempo, inclusa la scadenza. Poiché questo scenario è molto comune nel settore ,ad esempio noleggio o sottoscrizione, Microsoft consiglia di implementare un orologio attendibile PlayReady in ogni client.

Gli sviluppatori client possono scegliere tra due tipi di orologi attendibili PlayReady nella progettazione. Entrambi consentono di gestire le licenze con criteri basati sul tempo:

  • Orologio sicuro PlayReady
  • Orologio anti-rollback PlayReady

Orologio sicuro PlayReady

Un orologio sicuro PlayReady è "un orologio in tempo reale hardware progettato per resistere all'accesso non autorizzato a livello definito nelle regole di affidabilità", come definito nel documento Condizioni definite per le regole di conformità e affidabilità per i prodotti PlayReady.

In base ai requisiti delle regole di conformità per i prodotti PlayReady, un orologio sicuro PlayReady deve usare un servizio orologio sicuro per impostarne il valore. Microsoft gestisce alcuni servizi di clock sicuri PlayReady che i produttori di dispositivi possono usare a questo scopo.

PlayReady Secure Clock

Ora del server licenze

A partire da PlayReady 4.5, il servizio orologio protetto può essere il server di acquisizione delle licenze stesso in cui PlayReady Server SDK fornisce il tempo durante l'acquisizione della licenza.

Per usare questa funzionalità, è necessario soddisfare i requisiti seguenti:

  • Sia il server che il client (inclusi TEE e REE) devono usare PlayReady 4.5 o versione successiva.
  • Sia il server che le applicazioni client devono essere consapevoli della funzionalità.
  • Il client (sia in TEE che in REE) deve includere la funzionalità Secure Time in fase di compilazione e implementare i metodi di OEM_TEE associati, come documentato nei commenti di codice in PlayReady Device Porting Kit.
  • L'applicazione client deve solo comunicare con i server di acquisizione delle licenze che supportano e abilitare questa funzionalità OPPURE deve essere in grado di comunicare con un servizio di clock sicuro esterno.
  • Il server deve disporre di un certificato Di ora del server licenze fornito da Microsoft.
  • Se per scopi di scalabilità vengono usate più istanze del server di acquisizione delle licenze, i tempi del sistema operativo devono essere sincronizzati tra loro.
  • Se le licenze persistenti con restrizioni basate sul tempo sono state acquisite prima dell'abilitazione della funzionalità (ad esempio, il client viene aggiornato da una versione precedente di PlayReady a PlayReady 4.5), il client e il server devono abilitare la riacquisizione di tali licenze dopo l'uso della funzionalità.

Un server abilita questa funzionalità come indicato di seguito:

  • Costruire un'istanza della classe LicenseServerTimeCertificate con il certificato License Server Time fornito da Microsoft e la coppia di chiavi corrispondente.
  • Impostare la proprietà LicenseServerTimeCertificate della classe LicenseResponse su tale istanza. Nota: l'impostazione di questa proprietà non ha alcun effetto se il client non supporta la funzionalità, pertanto non è necessario biforcare il codice dell'applicazione in base al supporto client.
  • (Facoltativo) Se la proprietà LicenseAcquisitionChallenge della classe LicenseServerTimeRequested di sola lettura restituisce true, la risposta della licenza può includere facoltativamente nessuna licenza.
  • (Facoltativo) Se la proprietà LicenseRequested della classe PlayReadyHeader restituisce false, il client ha indicato che non vengono richieste licenze e la logica dell'applicazione server può scegliere di agire su queste informazioni. Ciò significa che l'intestazione PlayReady v4.3.0.0 inviata dal client ha l'attributo facoltativo AGGIUNTIVo LICENSEREQUESTED nel nodo PROTECTINFO impostato su false.

Un client abilita questa funzionalità come indicato di seguito:

  • Includere (sia in TEE che in REE) la funzionalità Secure Time in fase di compilazione/collegamento e implementare i metodi OEM_TEE associati come documentato nei commenti di codice in PlayReady Porting Kit.
  • Quando un'API PlayReady restituisce DRM_E_SECURETIME_CLOCK_NOT_SET, eseguire l'acquisizione delle licenze per impostare l'orologio sicuro.
  • Quando un'API PlayReady restituisce DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE, eseguire l'acquisizione delle licenze per riacquisire una licenza permanente che è stata invalidata. Ciò si verifica solo se le licenze persistenti con restrizioni basate sul tempo sono state acquisite prima dell'abilitazione della funzionalità(ad esempio, il client è stato aggiornato da una versione precedente di PlayReady a PlayReady 4.5).
  • (Facoltativo) Quando si esegue l'acquisizione di licenze esclusivamente allo scopo di impostare l'orologio sicuro, l'applicazione può scegliere di usare un'intestazione PlayReady v4.3.0.0 con l'attributo facoltativo aggiuntivo LICENSEREQUESTED nel nodo PROTECTINFO impostato su false per indicare che non è necessaria alcuna licenza. Per altre informazioni, vedere La specifica dell'intestazione PlayReady.

Orologio anti-rollback PlayReady

Un orologio anti-rollback PlayReady è "un orologio in tempo reale che viene verificato periodicamente dal prodotto finale PlayReady per avere avanzate", come definito nel documento Condizioni definite per le regole di conformità e affidabilità per i prodotti PlayReady

In base ai requisiti delle regole di conformità per i prodotti PlayReady, un orologio anti-rollback PlayReady può usare qualsiasi origine di tempo per impostarne il valore. L'attendibilità nell'orologio viene fornita dal meccanismo di anti-rollback predefinito dell'infrastruttura a chiave pubblica. È anche consentito l'uso di un servizio orologio sicuro PlayReady per impostarne il valore. Microsoft gestisce alcuni servizi di clock sicuri PlayReady che i produttori di dispositivi possono usare a questo scopo.

PlayReady Anti-rollback Clock