Udostępnij przez


PlayReady Zaufane Zegary

Zegar Zaufany PlayReady to ogólny termin zegara używany do wymuszania ograniczeń opartych na czasie ustawionych na zawartość chronioną PlayReady na klientach PlayReady. Każdy klient, który implementuje zaufany zegar, gwarantuje, że klient, który ogranicza odtwarzanie do daty i godziny rozpoczęcia, daty i godziny wygaśnięcia lub daty i godziny po pierwszym odtwarzaniu nie może zostać naruszony za pomocą narzędzi hakerskich do poziomu zdefiniowanego w regułach niezawodności dla produktów PlayReady.

Firma Microsoft nie wymaga od deweloperów klientów korzystania z zaufanego zegara. Jednak klienci bez zaufanego zegara nie będą mogli zarządzać licencjami przy użyciu zasad opartych na czasie, w tym wygasania. Ponieważ ten scenariusz jest bardzo powszechny w branży (na przykład wynajem lub subskrypcja), firma Microsoft zaleca zaimplementowanie zaufanego zegara PlayReady na każdym kliencie.

Deweloperzy aplikacji klienckich mogą wybrać spośród dwóch typów zegarów PlayReady Trusted Clocks w swoich projektach. Obie te elementy umożliwiają zarządzanie licencjami przy użyciu zasad opartych na czasie:

  • PlayReady Secure Clock
  • Zegar przeciwdziałający cofnięciu PlayReady

PlayReady Bezpieczny Zegar

PlayReady Secure Clock to "sprzętowy zegar czasu rzeczywistego, który został zaprojektowany tak, aby oprzeć się nieautoryzowanemu dostępowi na poziomie zdefiniowanym w regułach robustności", zgodnie z definicją w dokumencie Zdefiniowanych terminów dotyczących zgodności i robustności dla produktów PlayReady.

Zgodnie z wymaganiami reguł zgodności dla produktów PlayReadyBezpieczny Zegar PlayReady musi użyć usługi Secure Clock , aby ustawić jej wartość. Firma Microsoft obsługuje niektóre usługi PlayReady Secure Clock , których twórcy urządzeń mogą używać w tym celu.

PlayReady Secure Clock

Czas serwera zarządzającego licencjami

Począwszy od wersji PlayReady 4.5, usługa Secure Clock może być serwerem pozyskiwania licencji, na którym zestaw SDK PlayReady Server zapewnia czas podczas pozyskiwania licencji.

Aby korzystać z tej funkcji, należy spełnić następujące wymagania:

  • Zarówno serwer, jak i klient (w tym TEE i REE) muszą używać programu PlayReady 4.5 lub nowszego.
  • Zarówno serwer, jak i aplikacje klienckie muszą mieć świadomość tej funkcji.
  • Klient (zarówno w środowisku TEE, jak i REE) musi uwzględnić funkcję Secure Time podczas kompilacji i zaimplementować powiązane metody OEM_TEE zgodnie z opisem w komentarzach kodu w zestawie do portowania PlayReady Device Porting Kit.
  • Aplikacja kliencka musi komunikować się tylko z serwerami pozyskiwania licencji, które obsługują tę funkcję i włączać tę funkcję, lub może również komunikować się z zewnętrzną usługą Secure Clock.
  • Serwer musi mieć certyfikat czasu serwera licencji dostarczony przez firmę Microsoft.
  • Jeśli do celów skalowalności jest używanych wiele wystąpień serwera pozyskiwania licencji, ich czasy systemu operacyjnego muszą być synchronizowane ze sobą.
  • Jeśli trwałe licencje z ograniczeniami opartymi na czasie zostały nabyte przed włączeniem funkcji (np. klient jest uaktualniany z poprzedniej wersji PlayReady do PlayReady 4.5), klient i serwer muszą włączyć ponowne pobieranie tych licencji po użyciu funkcji.

Serwer umożliwia korzystanie z tej funkcji w następujący sposób:

  • Utwórz instancję klasy LicenseServerTimeCertificate z certyfikatem czasu serwera licencyjnego dostarczonym przez firmę Microsoft i odpowiadającą mu parą kluczy.
  • Ustaw właściwość LicenseServerTimeCertificate klasy LicenseResponse na to wystąpienie. Uwaga: ustawienie tej właściwości nie ma wpływu, jeśli klient nie obsługuje tej funkcji, więc nie ma potrzeby rozdzielania kodu aplikacji w zależności od obsługi klienta.
  • (Opcjonalnie) Jeśli właściwość klasy LicenseAcquisitionChallenge, LicenseServerTimeRequested, zwraca wartość true, odpowiedź licencji może nie zawierać żadnych licencji.
  • (Opcjonalnie) Jeśli właściwość LicenseRequested klasy PlayReadyHeader zwraca wartość false, oznacza to, że klient wskazał, iż nie są żądane żadne licencje, a logika aplikacji serwera może podjąć działania na podstawie tych informacji. (Oznacza to, że nagłówek PlayReady w wersji 4.3.0.0 wysłanej z klienta ma dodatkowy opcjonalny atrybut LICENSEREQUESTED w węźle PROTECTINFO ustawionym na wartość false).

Klient włącza tę funkcję w następujący sposób:

  • Uwzględnij (zarówno w środowisku TEE, jak i REE) funkcję Zabezpieczonego Czasu podczas kompilacji i linkowania oraz zaimplementuj powiązane metody OEM_TEE opisane w komentarzach kodu w zestawie PlayReady Porting Kit.
  • Gdy dowolny interfejs API PlayReady zwraca DRM_E_SECURETIME_CLOCK_NOT_SET, uzyskaj licencję, aby ustawić bezpieczny zegar.
  • Gdy dowolny interfejs API PlayReady zwraca DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE, wykonaj ponowne pozyskanie licencji w celu zdobycia trwałej licencji, która została unieważniona. Będzie to miało miejsce tylko wtedy, gdy trwałe licencje z ograniczeniami opartymi na czasie zostały nabyte przed włączeniem funkcji (np. klient został uaktualniony z poprzedniej wersji PlayReady do PlayReady 4.5).
  • (Opcjonalnie) W przypadku pozyskiwania licencji wyłącznie w celu ustawienia bezpiecznego zegara aplikacja może użyć nagłówka PlayReady w wersji 4.3.0.0 z dodatkowym opcjonalnym atrybutem LICENSEREQUESTED w węźle PROTECTINFO ustawionym na wartość false, aby wskazać, że żadna licencja nie jest wymagana. Aby uzyskać więcej informacji, zapoznaj się ze specyfikacją nagłówka PlayReady.

PlayReady Anti-rollback Clock

Zegar anty-wycofywania PlayReady jest "zegarem w czasie rzeczywistym, który jest okresowo weryfikowany przez końcowy produkt PlayReady, aby upewnić się, że postępuje", zgodnie z definicją w dokumencie zawierającym zdefiniowane terminy dotyczące zasad zgodności i niezawodności dla produktów PlayReady

Zgodnie z wymaganiami reguł zgodności dla produktów PlayReady zegar Anty-rollback PlayReady może używać dowolnego źródła czasu, aby ustawić jego wartość. Zaufanie do zegara jest zapewniane przez mechanizm anty-rollback wbudowany PK. Używanie usługi Bezpiecznego Zegara PlayReady do ustawiania jej wartości jest również dozwolone. Firma Microsoft obsługuje niektóre usługi PlayReady Secure Clock , których twórcy urządzeń mogą używać w tym celu.

PlayReady Anti-rollback Clock