PlayReady to technologia DRM opracowana przez Microsoft do ochrony treści na Windows, Xbox i innych platformach obsługujących uniwersalne środowisko wykonawcze UWP. System wykorzystuje trójpoziomowy model bezpieczeństwa SL (Security Level) od SL150 do SL3000, gdzie najwyższy poziom wymaga sprzętowego szyfrowania przez TPM. Według dokumentacji Microsoft Docs (2025), PlayReady 4.0 obsługuje szyfrowanie 4K HDR i rozszerzoną analitykę wykorzystania treści.
Najważniejsze
PlayReady to technologia zarządzania prawami cyfrowymi (DRM) opracowana przez Microsoft w 2007 roku do ochrony treści multimedialnych i innych zasobów cyfrowych. Zastąpiła technologię WMDRM (Windows Media DRM) i stała się standardem ochrony dla Windows Media Center, Xbox Video i Microsoft Silverlight.
Główną zaletą PlayReady jest jednolity system licencjonowania dla różnych typów treści: wideo, audio, e-booki, gry i dokumenty. Technologia obsługuje modele dystrybucji subskrypcyjnej (Subscription), wypożyczenia (Rental) i sprzedaży (Purchase), co czyni ją atrakcyjną dla serwisów medialnych i platform edukacyjnych.
Architektura PlayReady składa się z trzech kluczowych komponentów: środowiska wykonawczego klienta PlayReady Device Porting Kit, serwera licencji PlayReady License Server i narzędzia do pakowania treści. Środowisko wykonawcze PlayReady jest osadzone w aplikacji lub odtwarzaczu i odpowiada za deszyfrowanie treści na urządzeniu.
Serwer licencji generuje klucze licencyjne na podstawie polityk określonych przez dostawcę treści. Pakowacz treści szyfruje pliki multimedialne przy użyciu standardu Common Encryption (CENC) i osadza metadane do powiązania z konkretną licencją.
Proces ochrony PlayReady rozpoczyna się od etapu pakowania, gdy treść multimedialna jest szyfrowana kluczem symetrycznym, który następnie jest chroniony kluczem publicznym serwera licencji. Zapakowana treść jest umieszczana na CDN i dostępna do pobrania lub streamingu.
Gdy użytkownik żąda chronionej treści, odtwarzacz inicjuje żądanie licencji do serwera licencji. Serwer weryfikuje dane uwierzytelniające użytkownika, jego prawa dostępu (subskrypcja, wypożyczenie, zakup) i wydaje licencję zawierającą klucz deszyfrowania.
PlayReady wykorzystuje protokół wymiany oparty na SOAP lub JSON, gdzie żądanie licencji zawiera identyfikator treści (Content ID), identyfikator urządzenia i podpis aplikacji. Serwer zwraca licencję w formacie XML, zaszyfrowaną kluczem publicznym urządzenia.
Licencja zawiera klucz treści (CEK) owinięty w klucz urządzenia (Device Key) oraz zestaw polityk. Polityki mogą ograniczać czas odtwarzania, jakość wideo, liczbę urządzeń i typ wyjścia (HDMI, kompozytowe).
var mediaProtectionManager = new MediaProtectionManager();
var properties = new PropertySet();
properties["Windows.Media.Protection.MediaProtectionSystemId"] =
"9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e";
mediaProtectionManager.SetProtectionScheme(
MediaProtectionSystemType.PlayReady,
properties
);
var mediaSource = MediaSource.CreateFromUri(
new Uri(contentUrl)
);
mediaPlayer.Play(mediaSource);
PlayReady 3.0, wydany w 2014 roku, wprowadził obsługę sprzętowego szyfrowania przez TPM 2.0 i poziom bezpieczeństwa SL3000 dla treści 4K. Ta wersja dodała możliwość przypięcia licencji do konkretnego urządzenia poprzez mechanizm Device Binding, co zapobiegło przenoszeniu licencji między urządzeniami.
PlayReady 4.0, ogłoszony w 2020 roku, rozszerzył funkcjonalność o trzy kluczowe innowacje: obsługę rozszerzonej telemetrii wykorzystania treści, ulepszoną analitykę dla dostawców treści i optymalizację zużycia energii na urządzeniach mobilnych.
| Wersja | Rok | Kluczowe możliwości | Maksymalny SL |
|---|---|---|---|
| PlayReady 2.0 | 2011 | Szyfrowanie programowe, do 1080p | SL2000 |
| PlayReady 3.0 | 2014 | Szyfrowanie sprzętowe, 4K, Device Binding | SL3000 |
| PlayReady 4.0 | 2020 | Telemetria, efektywność energetyczna, HDR | SL3000 |
Poziomy bezpieczeństwa PlayReady określają sposób wykonywania operacji kryptograficznych i maksymalną rozdzielczość treści. SL150 to w pełni programowa implementacja, SL2000 wymaga częściowego wsparcia sprzętowego, SL3000 to pełne szyfrowanie sprzętowe z TPM.
Urządzenia z SL3000 mogą odtwarzać treści w 4K HDR, a klucze deszyfrowania nigdy nie opuszczają chronionego obszaru TPM. SL2000 jest ograniczony do 1080p, SL150 do 720p i nadaje się tylko do przeglądarek desktopowych bez ochrony sprzętowej.
System licencjonowania PlayReady jest jednym z najbardziej elastycznych wśród rozwiązań DRM. Obsługuje różne modele dystrybucji: wypożyczenie z wygaśnięciem czasowym, sprzedaż z dostępem bezterminowym, subskrypcję z regularną aktualizacją kluczy oraz podgląd z ograniczonym czasem trwania.
Każda licencja zawiera zestaw polityk, które serwer licencji stosuje do klucza treści. Polityki mogą obejmować: maksymalną rozdzielczość wideo, typ chronionego wyjścia (HDCP wymagany dla 4K), liczbę aktywacji oraz ograniczenia czasowe (bezwzględne i względne).
public async Task AcquireLicenseAsync(MediaProtectionManager manager)
{
var serviceRequest = new PlayReadyLicenseAcquisitionServiceRequest
{
ContentHeader = new PlayReadyContentHeader(
contentKeyId,
contentUrl,
licenseServerUrl,
null
),
DomainServiceId = domainId
};
var result = await serviceRequest.BeginServiceRequest();
if (result == PlayReadyLicenseAcquisitionResult.Success)
{
HandleLicenseAcquired(serviceRequest.GetLicenses());
}
}
PlayReady jest obsługiwany na szerokiej gamie platform, w tym Windows (UWP, Win32), Xbox, Android (przez PlayReady Porting Kit), iOS (ograniczone) i Smart TV (Samsung Tizen, LG webOS). Dla każdej platformy istnieje własna implementacja środowiska wykonawczego i API.
W systemie Windows integracja odbywa się przez MediaProtectionManager i PlayReady API w przestrzeni nazw Windows.Media.Protection.PlayReady. Na Androidzie używany jest PlayReady Porting Kit, który jest osadzany w aplikacji przez NDK i udostępnia opakowania Java do pracy z DRM.
W środowisku UWP aplikacja tworzy instancję MediaProtectionManager, rejestruje PlayReady jako system ochrony i konfiguruje procedury obsługi zdarzeń licencjonowania. Odtwarzacz MediaPlayerElement automatycznie przetwarza chronione strumienie, jeśli MediaProtectionManager jest poprawnie skonfigurowany.
Serwer licencji PlayReady może być wdrożony zarówno w infrastrukturze Azure, jak i na własnych serwerach. Microsoft udostępnia gotowe rozwiązania PlayReady License Server w ramach Azure Media Services, co upraszcza integrację dla projektów chmurowych.
Na Androidzie PlayReady jest integrowany przez bibliotekę NDK libplayready.so, która udostępnia API w C++, opakowane w klasy Java. ExoPlayer obsługuje PlayReady podobnie jak Widevine, poprzez standardowy MediaDrm API z UUID PlayReady.
UUID PlayReady dla MediaDrm — 9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e. Przy inicjalizacji ExoPlayer z PlayReady konfiguracja jest analogiczna do Widevine: podawany jest URL serwera licencji, nagłówki uwierzytelniania i typ DRM.
Do poprawnego działania PlayReady na Androidzie wymagane jest zainstalowane środowisko wykonawcze PlayReady, które zwykle jest preinstalowane na urządzeniach Samsung, LG i innych marek używających PlayReady Porting Kit. Na urządzeniach bez preinstalowanego środowiska aplikacja musi dołączyć bibliotekę libplayready.so w APK.
PlayReady jest dominującym DRM na platformach Smart TV, w tym Samsung Tizen i LG webOS. Na tych platformach wbudowane środowisko wykonawcze PlayReady zapewnia ochronę sprzętową na poziomie chipsetu telewizora, co pozwala odtwarzać treści w 4K HDR bez dodatkowych ustawień.
Integracja na Smart TV odbywa się przez PlayReady Device Porting Kit dla konkretnej SoC (MediaTek, Realtek, Amlogic). Producenci telewizorów preinstalują środowisko wykonawcze PlayReady na etapie oprogramowania układowego, a aplikacje uruchamiają je przez standardowy EME API w odtwarzaczu internetowym lub natywnej aplikacji.
Dla dostawców treści ważne jest, aby uwzględnić, że nie wszystkie Smart TV obsługują najwyższy poziom SL3000 — starsze modele mogą być ograniczone do SL2000 i jakości 1080p. Zgodność z HDCP jest również obowiązkowa do wyjścia treści w 4K przez HDMI.
PlayReady 4.0 wprowadził rozszerzoną telemetrię, która pozwala dostawcom treści uzyskać szczegółowe informacje o wykorzystaniu treści: czas oglądania, próby nieautoryzowanego dostępu, typ urządzenia, wersję środowiska wykonawczego. Dane telemetryczne są zbierane przez chroniony kanał i podpisywane podpisem cyfrowym w celu zapobieżenia fałszerstwom.
Mechanizm unieważniania (revocation) w PlayReady 4.0 pozwala dostawcom treści blokować skompromitowane urządzenia lub wersje środowiska wykonawczego w czasie rzeczywistym. Lista unieważnień jest rozpowszechniana przez serwer licencji i aktualizowana automatycznie przy każdym żądaniu licencji, co zapewnia szybką reakcję na podatności.
Często zadawane pytania
PlayReady to rozwiązanie DRM Microsoft do ochrony treści cyfrowych. Technologia obsługuje sprzętowe i programowe szyfrowanie, elastyczne polityki licencjonowania i działa na Windows, Xbox, Android i Smart TV.
Główne wersje PlayReady: 3.0 (2014) ze sprzętowym szyfrowaniem i obsługą 4K, 4.0 (2020) z telemetrią i efektywnością energetyczną. Nowsze wersje są wstecznie zgodne z treścią zapakowaną dla poprzednich wersji.
SL150 — szyfrowanie programowe (720p), SL2000 — częściowo sprzętowe (1080p), SL3000 — pełne szyfrowanie sprzętowe przez TPM (4K HDR). Poziom bezpieczeństwa określa maksymalną jakość i sposób przechowywania kluczy.
Tak, PlayReady jest obsługiwany na iOS, ale ograniczenie — przez PlayReady Porting Kit dla iOS. Jednak na urządzeniach Apple preferowanym DRM pozostaje FairPlay, ponieważ jest w pełni zintegrowany z architekturą sprzętową Secure Enclave.
PlayReady od Microsoft obsługuje Windows i Xbox, używa TPM do sprzętowego szyfrowania i zapewnia rozszerzoną telemetrię. Widevine od Google jest przeznaczony na Android i Chrome, używa TEE i nie wymaga płatnej licencji dla programistów.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również