Ochrona zawartości przy użyciu dynamicznego szyfrowania i dostarczania kluczy

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

Użyj usługi Azure Media Services, aby zabezpieczyć nośnik od momentu opuszczenia komputera przez magazyn, przetwarzanie i dostarczanie. Za pomocą usługi Media Services można dynamicznie dostarczać zawartość na żywo i na żądanie za pomocą standardu Advanced Encryption Standard (AES-128) lub dowolnego z trzech głównych systemów zarządzania prawami cyfrowymi (DRM): Technologia PlayReady firmy Microsoft, Google Widevine i Apple FairPlay.

Technologia FairPlay Streaming to technologia firmy Apple, która jest dostępna tylko dla wideo przesyłanego za pośrednictwem HTTP Live Streaming (HLS) na urządzeniach z systemem iOS, w usłudze Apple TV i w przeglądarce Safari w systemie macOS. Usługa Media Services udostępnia również usługę dostarczania kluczy AES i licencji DRM (PlayReady, Widevine i FairPlay) autoryzowanym klientom. Jeśli zawartość jest szyfrowana przy użyciu klucza wyczyszanego AES i jest wysyłana za pośrednictwem protokołu HTTPS, nie jest jasne, dopóki nie dotrze do klienta.

W usłudze Media Services w wersji 3 klucz zawartości jest skojarzony z lokalizatorem przesyłania strumieniowego (zobacz ten przykład). Jeśli korzystasz z usługi dostarczania kluczy usługi Media Services, możesz zezwolić usłudze Azure Media Services na wygenerowanie klucza zawartości. Klucz zawartości powinien zostać wygenerowany samodzielnie, jeśli używasz własnej usługi dostarczania kluczy lub jeśli musisz obsługiwać scenariusz wysokiej dostępności, w którym musisz mieć ten sam klucz zawartości w dwóch centrach danych.

Gdy odtwarzacz zażąda strumienia, usługa Media Services używa określonego klucza do dynamicznego szyfrowania zawartości przy użyciu klucza jasnego AES lub szyfrowania DRM. Aby odszyfrować strumień, odtwarzacz żąda klucza z usługi dostarczania kluczy usługi Media Services lub określonej usługi dostarczania kluczy. Aby zdecydować, czy użytkownik ma autoryzację do pobrania klucza, usługa ocenia zasady klucza zawartości określone dla klucza.

system ochrony zawartości

Możesz użyć interfejsu API REST lub biblioteki klienta usługi Media Services, aby skonfigurować zasady autoryzacji i uwierzytelniania dla licencji i kluczy.

Widevine nie jest dostępna w regionie GovCloud.

Uwaga

Usługa Media Services będzie wymuszać protokół TLS 1.2 dla wszystkich żądań do źródeł przesyłania strumieniowego keyDelivery, RESTv2, punktu końcowego przesyłania strumieniowego i transmisji strumieniowej zdarzeń na żywo. Konta z istniejącym użyciem protokołu TLS 1.0 lub 1.1 będą wykluczone z tego wymuszania. Jeśli chcesz wymusić protokół TLS 1.2 dla wszystkich żądań do tych punktów końcowych usługi Media Services, skontaktuj się z pomocą techniczną usługi AMS.

Przeglądarki obsługujące klientów DRM

Typowe przeglądarki obsługują następujących klientów DRM:

Przeglądarka Szyfrowanie
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

Kontrolowanie dostępu do zawartości

Możesz kontrolować, kto ma dostęp do zawartości, konfigurując zasady klucza zawartości. Usługa Media Services obsługuje wiele sposobów autoryzacji użytkowników, którzy tworzą żądania klucza. Klient (gracz) musi spełniać zasady, zanim klucz będzie mógł zostać dostarczony do klienta. Zasady klucza zawartości mogą mieć ograniczenie dotyczące otwierania lub tokenu .

Zasady klucza zawartości z otwartymi ograniczeniami mogą być używane, gdy chcesz wydać licencję nikomu bez autoryzacji. Jeśli na przykład przychody są oparte na reklamach, a nie na podstawie subskrypcji.

W przypadku zasad klucza zawartości z ograniczeniami tokenu klucz zawartości jest wysyłany tylko do klienta, który przedstawia prawidłowy token JWT lub prosty token internetowy (SWT) w żądaniu licencji/klucza. Ten token musi być wystawiony przez usługę STS.

Używanie Azure AD jako usługi STS

Możesz użyć Azure AD jako usługi STS. Należy skonfigurować go do tworzenia tokenu podpisanego przy użyciu określonego klucza i wystawiania oświadczeń określonych w konfiguracji ograniczeń tokenu. Usługa dostarczania licencji/klucza usługi Media Services zwraca żądaną licencję lub klucz do klienta, jeśli oba te warunki istnieją:

  • Token jest prawidłowy.
  • Oświadczenia w tokenie są zgodne z oświadczeniami skonfigurowanymi dla licencji lub klucza.

Podczas konfigurowania zasad z ograniczeniami tokenu należy określić podstawowy klucz weryfikacji, wystawcę i odbiorców parametrów. Podstawowy klucz weryfikacji zawiera klucz, za pomocą którego token został podpisany. Wystawca jest usługą STS, która wystawia token. Odbiorcy, czasami nazywani zakresem, opisują intencję tokenu lub zasobu, do którego token autoryzuje dostęp. Usługa dostarczania licencji/klucza usługi Media Services sprawdza, czy wartości w tokenie są zgodne z wartościami w szablonie.

Zapobieganie powtarzaniu tokenu

Funkcja zapobiegania powtarzaniu tokenu umożliwia ustawienie limitu liczby przypadków użycia tego samego tokenu do żądania klucza lub licencji. Możesz dodać oświadczenie typu urn:microsoft:azure:mediaservices:maxuses w tokenie, gdzie wartość jest liczbą przypadków użycia tokenu do uzyskania licencji lub klucza. Wszystkie kolejne żądania z tym samym tokenem do dostarczania kluczy będą zwracać nieautoryzowaną odpowiedź.

Zagadnienia do rozważenia

  • Musisz mieć kontrolę nad generowaniem tokenów. Oświadczenie musi zostać umieszczone w samym tokenie.
  • W przypadku korzystania z tej funkcji żądania z tokenami, których czas wygaśnięcia wynosi ponad godzinę od czasu odebrania żądania, są odrzucane z nieautoryzowaną odpowiedzią.
  • Tokeny są jednoznacznie identyfikowane przez ich podpis. Każda zmiana ładunku (na przykład aktualizacja do czasu wygaśnięcia lub oświadczenia) zmienia podpis tokenu i będzie liczone jako nowy token, którego usługa dostarczania kluczy nie napotkała wcześniej.
  • Odtwarzanie kończy się niepowodzeniem, jeśli token przekroczył maxuses wartość.
  • Może być używana dla całej istniejącej chronionej zawartości (należy zmienić tylko wystawiony token).
  • Działa zarówno z JWT, jak i SWT.

Używanie niestandardowej usługi STS

Możesz użyć niestandardowej usługi STS do udostępniania tokenów. Przyczyny obejmują:

  • Dostawca tożsamości (IDP) nie obsługuje usługi STS.

  • Aby zintegrować usługę STS z systemem rozliczeniowym subskrybenta, może być potrzebna bardziej elastyczna lub ściślejsza kontrola.

    Na przykład operator usługi OTT może oferować wiele pakietów subskrybentów, takich jak premium, podstawowy i sportowy. Operator może chcieć dopasować oświadczenia w tokenie z pakietem subskrybenta, aby tylko zawartość w określonym pakiecie były udostępniane. W tym przypadku usługa STS niestandardowa zapewnia wymaganą elastyczność i kontrolę.

  • Aby uwzględnić niestandardowe oświadczenia w tokenie, aby wybrać między różnymi parametrami licencji ContentKeyPolicyOptions z różnymi parametrami licencji DRM, na przykład licencją subskrypcji a licencją wynajmu.

  • Aby dołączyć oświadczenie reprezentujące identyfikator klucza zawartości klucza, do którego token udziela dostępu.

W przypadku korzystania z niestandardowej usługi STS należy wprowadzić dwie zmiany:

  • Podczas konfigurowania usługi dostarczania licencji dla zasobu należy określić klucz zabezpieczeń używany do weryfikacji przez niestandardową usługę STS zamiast bieżącego klucza z Azure AD.
  • Po wygenerowaniu tokenu JTW klucz zabezpieczeń jest określony zamiast klucza prywatnego bieżącego certyfikatu X509 w Azure AD.

Istnieją dwa typy kluczy zabezpieczeń:

  • Klucz symetryczny: ten sam klucz służy do generowania i weryfikowania JWT.
  • Klucz asymetryczny: para kluczy publiczny-prywatny w certyfikacie X509 jest używana z kluczem prywatnym do szyfrowania/generowania zestawu JWT oraz klucza publicznego w celu zweryfikowania tokenu.

Uwaga

Jeśli używasz .NET Framework/C# jako platformy programistycznej, certyfikat X509 używany dla klucza zabezpieczeń asymetrycznego musi mieć długość klucza co najmniej 2048. Ta długość klucza jest wymagana dla klasy System.IdentityModel.Tokens.X509AsymmetricSecurityKey w .NET Framework. W przeciwnym razie zostanie zgłoszony następujący wyjątek: IDX10630: bity "System.IdentityModel.Tokens.X509AsymmetricSecurityKey" do podpisywania nie mogą być mniejsze niż bity "2048".

Korzystanie z usługi dostarczania licencji/klucza innego niż Media Services

Szablony zasad kluczy można edytować, jeśli chcesz użyć innej usługi dostarczania licencji/klucza.

Instrukcje, samouczki i przykłady

W przykładzie usługi .Net Digital Rights Management pokazano, jak zaimplementować system multi-DRM za pomocą usługi Media Services w wersji 3 przy użyciu platformy .NET.

Dostępne są dodatkowe przykłady ochrony zawartości dla Node.JS i języka Python:

Node.JS Python Opis
Node.JS przekazywanie i przesyłanie strumieniowe plików HLS i DASH za pomocą technologii PlayReady i Widevine DRM Przekazywanie i przesyłanie strumieniowe plików HLS i DASH przy użyciu technologii PlayReady i Widevine DRM Demonstruje sposób kodowania i przesyłania strumieniowego przy użyciu technologii Widevine i PlayReady DRM
Node.JS podstawowa ochrona zawartości DRM w języku Playready i przesyłanie strumieniowe Podstawowa ochrona zawartości drM w języku Python w języku Python w języku Playready i przesyłanie strumieniowe Demonstruje sposób kodowania i przesyłania strumieniowego przy użyciu narzędzia PlayReady DRM
Node.JS podstawowa ochrona zawartości i przesyłanie strumieniowe za pomocą technologii DRM w warstwie Podstawowa Ochrona zawartości i przesyłanie strumieniowe w języku Python Basic Widevine DRM Demonstracja kodowania i przesyłania strumieniowego przy użyciu technologii Widevine DRM

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: