Udostępnij przez


Prosty całościowy system

W typowym użyciu usługa Microsoft PlayReady chroni zawartość, udostępniając licencje na pliki multimedialne. Nie ma potrzeby ukrywania plików, czynienia ich niedostępnymi ani wprowadzania specjalnej ochrony, gdy pliki są przesyłane z systemu do systemu. Innymi słowy, nie są wymagane żadne wymagania dotyczące systemu operacyjnego ani mechanizmy transportu plików o wysokim poziomie zabezpieczeń. Jednak skopiowanie pliku i przekazanie go znajomemu nie umożliwi znajomemu używania pliku, jeśli jest on chroniony przez PlayReady. Aby korzystać z pliku multimedialnego, użytkownicy potrzebują licencji. Ta licencja jest podstawowym sposobem kontrolowania zawartości (pliku multimedialnego). Licencja jest przyznawana jednemu klientowi (na przykład odtwarzaczowi multimedialnemu) lub domenie. Licencja nie będzie działać na innych klientach ani w innych domenach.

Każda licencja zawiera prawa i ograniczenia, definiując dokładnie, jak można używać zawartości i w jakich warunkach. Na przykład licencja na plik muzyczny może włączyć "prawo do odtwarzania", ale ograniczyć poziom zabezpieczeń aplikacji, na której można odtwarzać zawartość. Licencja może być ważna w okresie od 1 października 2017 r. do 1 listopada 2017 r. Może istnieć wiele licencji dla jednego pliku. Użytkownik będzie mógł uzyskiwać dostęp do jego zawartości i korzystać z niej, o ile jedna z licencji przyznaje odpowiednie prawa, a ograniczenia nie uniemożliwiają dostępu.

Omówienie kompleksowej usługi wideo

Poniższa ilustracja zawiera ogólne spojrzenie na kompleksową usługę wideo, w tym zaplecze usługi po lewej stronie i klientów po prawej stronie.

Architektura usługi wideo

Po lewej stronie ilustracji widać, że usługa ma niektóre serwery do przesyłania strumieniowego wideo (sieć dystrybucji zawartości). Istnieją również niektóre serwery, które umożliwiają użytkownikom przeglądanie zawartości i wybieranie zawartości, którą chcą odtworzyć (interfejs użytkownika). Ponadto istnieją serwery, które umożliwiają użytkownikom logowanie się i uwierzytelnianie, a także płacenie za zawartość (uwierzytelnianie, płatność). Istnieje również serwer licencji PlayReady.

Po prawej stronie ilustracji znajdują się klienci. Klienty mogą być aplikacjami systemu Windows, aplikacjami na smartfony lub określonymi urządzeniami, takimi jak dekodery, odbiorniki sieciowe itd. Niektórzy z tych klientów mogą mieć zintegrowanego klienta PlayReady w swoich odtwarzaczach, na przykład OEM mógł zintegrować PlayReady w systemie operacyjnym lub w sprzęcie. Inni mogą korzystać z klienta zintegrowanego w aplikacji opublikowanej w sklepie z aplikacjami. Istnieje wiele różnych opcji integracji odtwarzaczy PlayReady po stronie klienta.

W tym temacie skupimy się na tym, co robi PlayReady dla usługi, jak pokazano na poniższej ilustracji.

Co playReady robi dla usługi

Usługa PlayReady umożliwia klientowi żądanie licencji z serwera, który następnie dostarcza klucze, które chronią zawartość w postaci chronionej za pośrednictwem otwartej sieci. Drugą rzeczą, jaką robi PlayReady, jest dostarczanie praw i restrykcji dotyczących praw klientowi. Usługa PlayReady może podać klucz do odtwarzania zawartości, ale na przykład zezwolić klientowi na używanie tego klucza przez dwa dni w scenariuszu wypożyczania. Dlatego PlayReady umożliwia deklarowanie praw i właściwych ograniczeń za pomocą klucza.

Element PlayReady umożliwia również bezpieczniejsze przechowywanie klucza zawartości po stronie klienta, dzięki czemu klient będzie mógł używać tego klucza klienta do odszyfrowywania zawartości do renderowania, ale nie zezwala na zapisywanie zawartości w czytelnej postaci i udostępnianie jej innym użytkownikom.

Aby upewnić się, że klienci PlayReady zachowują się prawidłowo, usługa PlayReady wymaga implementacji sprzętu i oprogramowania w celu przestrzegania reguł zgodności i niezawodności. Te reguły określają, jak klient musi zachowywać się podczas odszyfrowywania lub przetwarzania zawartości PlayReady.  Wymagają one również, aby klienci przetwarzali ograniczenia znalezione w licencji poprawnie.  W związku z tym, jeśli klient otrzyma instrukcje dotyczące używania klucza zawartości przez nie więcej niż 48 godzin, klient musi postępować zgodnie z tymi instrukcjami. Te reguły są udostępniane przez firmę Microsoft w regułach zgodności i niezawodności, a deweloper klienta musi wymusić te reguły na swoich klientach.

Podstawowy proces szyfrowania i licencjonowania

Poniższe kroki ilustrują kompleksową procedurę szyfrowania i licencjonowania zawartości oraz sposób, w jaki usługa PlayReady jest zaangażowana w ten proces.

Poniższa ilustracja zawiera jeden zasób — plik audio/wideo — który nie został zaszyfrowany. Metoda używana do szyfrowania zawartości jest całkowicie dostępna dla dostawcy zawartości i nie jest udostępniana w ramach elementu PlayReady.

Szyfrowanie pliku zawartości

  1. Aby zaszyfrować ten plik, usługa musi użyć generatora kluczy w szyfratorze zawartości, który generuje nowy klucz zawartości, który będzie używany do szyfrowania zawartości. Ten klucz zawartości zostanie później dostarczony z serwera licencji PlayReady do klienta, aby umożliwić odszyfrowywanie zawartości i renderowanie dla użytkownika. Wraz z kluczem zawartości, który jest wartością prywatną, usługi szyfrowania kojarzą również identyfikator klucza (KeyID) — który jest identyfikatorem GUID — z kluczem zawartości. KeyID jest wartością publiczną.

  2. Klucz i identyfikator keyID są projektowane w czasie szyfrowania i są przechowywane w systemie zarządzania kluczami, który jest zwykle pewnego rodzaju bazą danych. PlayReady nie zapewnia systemu zarządzania kluczami, dlatego to usługa lub partner, który buduje usługę z nadawcą, musi dostarczyć system zarządzania kluczami.

  3. Oprócz przechowywania klucza i identyfikatora KeyID w systemie zarządzania kluczami należy również dopasować identyfikator KeyID do modułu packager, który następnie generuje nagłówek. Ten nagłówek jest sformatowany przez usługę lub partnera zgodnie ze specyfikacją nagłówka PlayReady, a następnie osadzony jako jawny w nagłówku pliku zawartości.

    W tym momencie dźwięk i wideo będą szyfrowane przy użyciu identyfikatora KeyID, a zaszyfrowany plik zawartości będzie gotowy do dostarczenia do klienta.

    Uwierzytelnianie użytkownika

  4. Teraz klient może rozpocząć korzystanie z zawartości. Pierwszą rzeczą, którą prawdopodobnie zrobi klient, jest uwierzytelnienie użytkownika w usłudze, zazwyczaj przez podanie nazwy logowania i hasła, ale każdy inny mechanizm uwierzytelniania użytkownika i urządzenia jest w porządku. Zazwyczaj token sesji jest zwracany do klienta po zweryfikowaniu użytkownika. Należy pamiętać, że niezależnie od mechanizmu uwierzytelniania użytkownika, to od usługi zależy, jak użytkownik zostanie uwierzytelniony; PlayReady nie dostarcza tej technologii.

    Dostarczanie zawartości

  5. Następnie zawartość jest dostarczana do klienta (na przykład klient zaczął pobierać część strumienia danych tworzącego zawartość). Następnie klient zaczyna analizować tę zawartość i odnajduje, że jest zaszyfrowany i używa nieznanego klucza, ale zawiera identyfikator KeyID.

    Pozyskiwanie licencji

  6. W tym momencie klient wyśle żądanie uzyskania licencji do serwera licencji.

  7. Następnie serwer licencji współpracuje z usługą uwierzytelniania, aby zweryfikować użytkownika. Zazwyczaj pierwszą rzeczą, jaką robi serwer licencji, jest sprawdzenie, czy klient/użytkownik ma prawo do tej konkretnej licencji. I znowu, PlayReady nie zapewnia tego układu (uwierzytelniania), po prostu udostępniamy serwer licencji. Usługa uwierzytelniania zazwyczaj odpowiada tak lub nie, a czasem tak z ograniczeniami (na przykład ten użytkownik ma prawo do tego konkretnego filmu, ale tylko w niższej jakości wideo, ponieważ użytkownik nie ma najwyższego poziomu subskrypcji — w zależności od opłaty miesięcznej).

  8. Następnie serwer licencji żąda wartości klucza na podstawie identyfikatora KeyID z systemu zarządzania kluczami, który przechowuje klucze, a system zarządzania kluczami odpowiada na to żądanie. Dla przypomnienia, PlayReady nie dostarcza składników systemu zarządzania kluczami, więc pojawi się zawnioskowanie z serwera licencji PlayReady do dowolnego składnika, który usługa zbudowała w celu przechowywania kluczy.

  9. Klucz jest odbierany przez serwer licencji, a serwer licencji może dostarczyć licencję. Chroniona odpowiedź licencyjna PlayReady zawiera wartość klucza oraz listę praw i ograniczeń praw, które klient może wymusić.

    Mimo że w tym pokazie pokazano, że serwer licencji PlayReady dostarcza tylko jeden klucz, możliwe, że serwer licencji dostarczy stos licencji w jednej odpowiedzi licencji. Wiele licencji może być uwzględnionych w jednej transakcji, z każdą licencją dostarczającą jeden klucz, jeśli zawartość jest chroniona wieloma kluczami lub jeśli usługa chce dostarczyć wiele kluczy z wyprzedzeniem, ponieważ na przykład usługa wie, że użytkownik będzie nasłuchiwać ośmiu ścieżek z rzędu.

    Sklep z licencjami

  10. Drugą technologią, którą zapewnia PlayReady, jest sposób przechowywania klucza i praw w kliencie, który jest nazywany Magazynem licencji.

    Magazyn licencji jest często określany jako HDS, ponieważ jego forma to magazyn danych skróconych. Na urządzeniu może znajdować się wiele typów sklepów licencyjnych — jedna aplikacja może zawierać własny HDS, w celu upewnienia się, że HDS jednej firmy nie znajduje się w tym samym pliku, co HDS innej firmy. To całkowicie zależy od dewelopera klienta, aby podjąć tę decyzję projektową. Na przykład przy użyciu programu PlayReady w systemie Windows firma Microsoft zdecydowała się na korzystanie z jednego systemu HDS dla przeglądarki Internet Explorer i innego dla przeglądarki Microsoft Edge na każdą witrynę, a także jednego dla każdej aplikacji uniwersalnej systemu Windows.

    HDS może być przechowywane w sposób trwały, na przykład na dysku twardym lub w pamięci trwałej urządzenia, lub w sposób nietrwały, na przykład w pamięci nietrwałej. W związku z tym, gdy serwer licencji wystawia licencję, może ustawić właściwość licencji wskazującą, że licencja nie powinna być przechowywana na dysku twardym klienta lub, w przypadku dekodera lub telefonu, w pamięci trwałej, ponieważ jako usługa nie chcesz przechowywać licencji w pamięci trwałej. W takim przypadku po prostu zapisz usługę HDS w pamięci w kontekście aplikacji odtwarzacza, więc gdy tylko użytkownik zamknie aplikację odtwarzacza, licencja i jej prawa znikną.