Ochrana obsahu s dynamickým šifrováním a doručováním klíčů
Upozornění
Služba Azure Media Services bude vyřazena 30. června 2024. Další informace najdete v průvodci vyřazením AMS.
Pomocí služby Azure Media Services zabezpečte svá média od okamžiku, kdy počítač opustí, až po ukládání, zpracování a doručování. Se službou Media Services můžete doručovat živý obsah a obsah na vyžádání šifrovaný dynamicky pomocí standardu AES-128 (Advanced Encryption Standard) nebo některého ze tří hlavních systémů pro správu digitálních práv (DRM): Microsoft PlayReady, Google Widevine a Apple FairPlay.
FairPlay Streaming je technologie Apple, která je dostupná jenom pro video přenášené přes HTTP Live Streaming (HLS) na zařízeních s iOSem, v Apple TV a v Safari v systému macOS. Služba Media Services také poskytuje službu pro doručování klíčů AES a licencí DRM (PlayReady, Widevine a FairPlay) autorizovaným klientům. Pokud se obsah šifruje pomocí nezašifrovaného klíče AES a odesílá se přes protokol HTTPS, není nezašifrovaný, dokud se nedorazí na klienta.
Ve službě Media Services v3 je klíč obsahu přidružený k lokátoru streamování (viz tento příklad). Pokud používáte službu doručování klíčů Media Services, můžete nechat službu Azure Media Services, aby za vás vygenerovala klíč obsahu. Klíč obsahu byste měli vygenerovat sami, pokud používáte vlastní službu doručování klíčů, nebo pokud potřebujete zvládnout scénář vysoké dostupnosti, kdy potřebujete mít stejný klíč obsahu ve dvou datových centrech.
Když přehrávač požádá o datový proud, služba Media Services použije zadaný klíč k dynamickému šifrování obsahu pomocí nezašifrovaného klíče AES nebo šifrování DRM. K dešifrování streamu přehrávač požádá o klíč ze služby doručování klíčů Media Services nebo ze služby doručování klíčů, kterou jste zadali. Aby se rozhodla, jestli má uživatel oprávnění k získání klíče, služba vyhodnotí zásady pro klíč obsahu, které jste pro klíč zadali.
Ke konfiguraci zásad autorizace a ověřování pro licence a klíče můžete použít rozhraní REST API nebo klientskou knihovnu Služby Media Services.
Widevine není v oblasti GovCloud k dispozici.
Poznámka
Mediální služby budou vynucovat protokol TLS 1.2 pro všechny požadavky na KeyDelivery, RESTv2, koncový bod streamování a živé události původu. Účty s existujícím využitím protokolu TLS 1.0 nebo 1.1 budou z tohoto vynucení vyloučeny. Pokud chcete vynutit protokol TLS 1.2 pro všechny vaše požadavky na tyto koncové body služby Media Services, obraťte se na podporu AMS.
Prohlížeče, které podporují klienty DRM
Běžné prohlížeče podporují následující klienty DRM:
Prohlížeč | Šifrování |
---|---|
Chrome | Widevine |
Microsoft Edge, Internet Explorer 11 | PlayReady |
Firefox | Widevine |
Opera | Widevine |
Safari | FairPlay |
Řízení přístupu k obsahu
Konfiguraci zásad klíče obsahu můžete řídit, kdo má přístup k vašemu obsahu. Služba Media Services podporuje více způsobů autorizace uživatelů, kteří žádají o klíč. Před doručením klíče klientovi musí klient (přehrávač) splňovat zásady. Zásady klíče obsahu můžou mít otevřené omezení nebo omezení tokenu .
Zásady klíče obsahu s omezeným přístupem se dají použít, když chcete vydat licenci komukoli bez autorizace. Například pokud jsou vaše výnosy založené na reklamě, a ne na základě předplatného.
U zásad obsahu s omezenými tokeny se klíč obsahu odešle jenom klientovi, který v žádosti o licenci nebo klíč předloží platný token JWT nebo jednoduchý webový token (SWT). Tento token musí být vystaven službou STS.
Použití Azure AD jako služby TOKENS
Azure AD můžete použít jako službu TOKENS. Musí být nakonfigurovaný tak, aby se vytvořil token podepsaný zadaným klíčem a vystavoval se deklarace identity, které jste zadali v konfiguraci omezení tokenu. Služba doručování licencí nebo klíčů Media Services vrátí klientovi požadovanou licenci nebo klíč, pokud platí obě tyto podmínky:
- Token je platný.
- Deklarace identity v tokenu odpovídají těm, které jsou nakonfigurované pro licenci nebo klíč.
Když konfigurujete zásadu s omezenými tokeny, musíte zadat parametry primárního ověřovacího klíče, vystavitele a cílové skupiny. Primární ověřovací klíč obsahuje klíč, kterým byl token podepsán. Vystavitelem je služba tokenů zabezpečení, která token vydává. Cílová skupina, někdy označovaná jako obor, popisuje záměr tokenu nebo prostředku, ke kterému token autorizuje přístup. Služba pro doručování klíčů nebo licencí Media Services ověří, že hodnoty v tokenu odpovídají hodnotám v šabloně.
Prevence přehrání tokenů
Funkce Prevence přehrání tokenu umožňuje nastavit omezení počtu použití stejného tokenu k vyžádání klíče nebo licence. Do tokenu můžete přidat deklaraci identity typu urn:microsoft:azure:mediaservices:maxuses
, kde hodnota je počet použití tokenu k získání licence nebo klíče. Všechny následné požadavky se stejným tokenem pro doručování klíčů vrátí neoprávněnou odpověď.
Požadavky
- Musíte mít kontrolu nad generováním tokenů. Deklaraci identity je potřeba umístit do samotného tokenu.
- Při použití této funkce se požadavky s tokeny, jejichž doba vypršení platnosti je vzdálená více než jedna hodina od přijetí požadavku, zamítnou s neoprávněnou odpovědí.
- Tokeny jsou jednoznačně identifikovány svým podpisem. Jakákoli změna datové části (například aktualizace na čas vypršení platnosti nebo deklarace identity) změní podpis tokenu a bude se započítávat jako nový token, se kterým se dříve nesetkali.
- Přehrávání se nezdaří, pokud token překročí
maxuses
hodnotu. - Dá se použít pro veškerý existující chráněný obsah (je potřeba změnit pouze vydaný token).
- Funguje s JWT i SWT.
Použití vlastní služby TOKENS
K poskytování tokenů můžete použít vlastní službu tokenů zabezpečení. Mezi důvody patří:
Váš zprostředkovatel identity (IDP) nepodporuje službu STS.
Možná budete potřebovat flexibilnější nebo přísnější kontrolu, abyste mohli službu STS integrovat s fakturačním systémem předplatitele.
Operátor služby OTT může například nabízet více balíčků pro předplatitele, jako je premium, basic a sport. Operátor může chtít porovnat deklarace identity v tokenu s balíčkem odběratele, aby byl k dispozici pouze obsah konkrétního balíčku. V tomto případě vlastní služba TOKENS poskytuje potřebnou flexibilitu a kontrolu.
Zahrnutí vlastních deklarací identity do tokenu pro výběr mezi různými možnostmi ContentKeyPolicyOptions s různými parametry licence DRM, například licencí předplatného a licencí k pronájmu.
Zahrnutí deklarace identity představující identifikátor klíče obsahu klíče, ke kterému token uděluje přístup.
Při použití vlastní služby TOKENS je potřeba provést dvě změny:
- Když konfigurujete službu doručování licencí pro prostředek, musíte zadat klíč zabezpečení, který se používá k ověření vlastní službou TOKENS, místo aktuálního klíče z Azure AD.
- Při vygenerování tokenu JTW se místo privátního klíče aktuálního certifikátu X509 v Azure AD zadá klíč zabezpečení.
Existují dva typy klíčů zabezpečení:
- Symetrický klíč: Stejný klíč se používá ke generování a k ověření JWT.
- Asymetrický klíč: Pár veřejného a privátního klíče v certifikátu X509 se používá s privátním klíčem k šifrování/vygenerování JWT a s veřejným klíčem k ověření tokenu.
Poznámka
Pokud jako vývojovou platformu používáte .NET Framework/C#, musí mít certifikát X509 používaný pro asymetrický klíč zabezpečení délku klíče alespoň 2048. Tato délka klíče je požadavkem třídy System.IdentityModel.Tokens.X509AsymmetricSecurityKey v rozhraní .NET Framework. Jinak se vyvolá následující výjimka: IDX10630: Hodnota System.IdentityModel.Tokens.X509AsymmetricSecurityKey pro podepisování nemůže být menší než 2048 bitů.
Použití jiné služby doručování licencí nebo klíčů než Media Services
Pokud chcete použít jinou službu doručování licencí nebo klíčů, můžete upravit šablony zásad klíčů.
Postupy, kurzy a ukázky
Ukázka správy digitálních práv .NET ukazuje, jak implementovat systém s více technologiemi DRM se službou Media Services v3 pomocí rozhraní .NET.
K dispozici jsou další ukázky ochrany obsahu pro Node.JS a Python:
Node.js | Python | Description |
---|---|---|
Node.JS nahrávání a streamování HLS a DASH pomocí PlayReady a Widevine DRM | Nahrávání a streamování HLS a DASH v Pythonu pomocí PlayReady a Widevine DRM | Ukazuje, jak kódovat a streamovat pomocí Widevine a PlayReady DRM. |
Node.JS Basic Playready – ochrana obsahu DRM a streamování | Ochrana obsahu a streamování DRM v Jazyce Python Basic Playready | Ukazuje, jak kódovat a streamovat pomocí PlayReady DRM. |
Node.JS Základní ochrana obsahu a streamování TECHNOLOGIE DRM Widevine | Python Basic Widevine – ochrana obsahu DRM a streamování | Ukazuje, jak kódovat a streamovat pomocí Widevine DRM. |
Získání nápovědy a podpory
Službu Media Services můžete kontaktovat s dotazy nebo můžete sledovat naše aktualizace jedním z následujících způsobů:
- Q & A
-
Stack Overflow Označit otázky pomocí
azure-media-services
. - @MSFTAzureMedia nebo použijte @AzureSupport a požádejte o podporu.
- Otevřete lístek podpory prostřednictvím Azure Portal.