Protezione dei contenuti con crittografia dinamica e recapito delle chiavi

Logo servizi multimediali v3


Avviso

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS.

Usare Servizi multimediali di Azure per proteggere i supporti dal momento in cui lascia il computer attraverso l'archiviazione, l'elaborazione e il recapito. Con Servizi multimediali è possibile distribuire contenuti live e on demand crittografati dinamicamente con AES-128 (Advanced Encryption Standard) o con uno dei principali sistemi DRM (Digital Rights Management): Microsoft PlayReady, Google Widevine e Apple FairPlay.

FairPlay Streaming è una tecnologia Apple disponibile solo per i video trasferiti su HTTP Live Streaming (HLS) nei dispositivi iOS, in Apple TV e in Safari in macOS. Servizi multimediali offre anche un servizio per la distribuzione di chiavi AES e licenze DRM (PlayReady, Widevine e FairPlay) ai client autorizzati. Se il contenuto viene crittografato con una chiave deselezionata AES e viene inviato tramite HTTPS, non è chiaro finché non raggiunge il client.

In Servizi multimediali v3, una chiave di contenuto è associata a Localizzatore di streaming (vedere questo esempio). Se si usa il servizio di recapito delle chiavi di Servizi multimediali, è possibile consentire a Servizi multimediali di Azure di generare la chiave di contenuto per l'utente. La chiave di contenuto deve essere generata autonomamente se si usa il proprio servizio di recapito delle chiavi o se è necessario gestire uno scenario di disponibilità elevata in cui è necessario avere la stessa chiave di contenuto in due data center.

Quando un flusso viene richiesto da un lettore, Servizi multimediali usa la chiave specificata per crittografare dinamicamente i contenuti mediante la chiave non crittografata AES o la crittografia DRM. Per decrittografare il flusso, il lettore richiede la chiave dal servizio di distribuzione delle chiavi di Servizi multimediali o il servizio di distribuzione delle chiavi specificato. Per decidere se l'utente è autorizzato a ottenere la chiave, il servizio valuta i criteri della chiave di contenuto specificati per la chiave.

sistema di protezione dei contenuti

È possibile usare l'API REST o una libreria client di Servizi multimediali per configurare i criteri di autorizzazione e autenticazione per le licenze e le chiavi.

Widevine non è disponibile nell'area GovCloud.

Nota

I servizi multimediali applicano TLS 1.2 per tutte le richieste a KeyDelivery, RESTv2, Endpoint di streaming e origini di streaming live. Gli account con l'utilizzo di TLS 1.0 o 1.1 esistenti saranno esclusi da questa applicazione. Se si vuole applicare TLS 1.2 per tutte le richieste a questi endpoint di servizi multimediali, contattare il supporto di AMS.

Browser che supportano client DRM

I browser comuni supportano i client DRM seguenti:

Browser Crittografia
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

Controllo dell'accesso al contenuto

È possibile controllare chi ha accesso ai propri contenuti configurando i criteri di chiave simmetrica. Servizi multimediali supporta più modalità di autenticazione degli utenti che richiedono le chiavi. Il client (lettore) deve soddisfare i criteri prima che la chiave possa essere distribuita al client stesso. I criteri di chiave simmetrica possono avere restrizioni open o token.

Un criterio di chiave di contenuto con restrizioni aperte può essere usato quando si vuole rilasciare una licenza a chiunque senza autorizzazione. Ad esempio, se i ricavi sono basati su annunci e non basati su sottoscrizioni.

Con un criterio di chiave di contenuto con restrizioni token, la chiave di contenuto viene inviata solo a un client che presenta un token JWT valido o un semplice token Web (SWT) nella richiesta di licenza/chiave. Questo token deve essere rilasciato da un servizio di sicurezza del servizio di sicurezza.

Uso di Azure AD come servizio di sicurezza di azure

È possibile usare Azure AD come servizio di sicurezza di rete. Deve essere configurato per creare un token firmato con la chiave specificata e rilasciare attestazioni specificate nella configurazione della restrizione del token. Il servizio di distribuzione delle licenze/chiavi di Servizi multimediali restituisce la licenza o la chiave richiesta al client se esistono entrambe queste condizioni:

  • Il token è valido.
  • Le attestazioni nel token corrispondono a quelle configurate per la licenza o la chiave.

Quando si configurano i criteri di restrizione del token, è necessario specificare i parametri primary verification key, issuer e audience. Il parametro primary verification key include la chiave usata per firmare il token. Il parametro issuer è il servizio token di sicurezza che rilascia il token. Il gruppo di destinatari, a volte denominato ambito, descrive la finalità del token o della risorsa a cui il token autorizza l'accesso. Il servizio di distribuzione delle licenze/chiavi di Servizi multimediali convalida che i valori del token corrispondono ai valori del modello.

Prevenzione della riproduzione dei token

La funzionalità Prevenzione riproduzione token consente di impostare un limite sul numero di volte in cui è possibile usare lo stesso token per richiedere una chiave o una licenza. È possibile aggiungere un'attestazione di tipo urn:microsoft:azure:mediaservices:maxuses nel token, in cui il valore è il numero di volte in cui è possibile usare il token per acquisire una licenza o una chiave. Tutte le richieste successive con lo stesso token per il recapito delle chiavi restituiranno una risposta non autorizzata.

Considerazioni

  • È necessario avere il controllo sulla generazione di token. L'attestazione deve essere inserita nel token stesso.
  • Quando si usa questa funzionalità, le richieste con token la cui scadenza è di più di un'ora dall'ora in cui la richiesta viene ricevuta viene rifiutata con una risposta non autorizzata.
  • I token vengono identificati in modo univoco dalla firma. Qualsiasi modifica al payload (ad esempio, l'aggiornamento alla scadenza o all'attestazione) modifica la firma del token e verrà conteggiato come nuovo token che il recapito delle chiavi non viene eseguito prima.
  • La riproduzione ha esito negativo se il token ha superato il maxuses valore.
  • Può essere usato per tutti i contenuti protetti esistenti (è necessario modificare solo il token rilasciato).
  • Funziona sia con JWT che con SWT.

Uso di un servizio di sicurezza personalizzato

È possibile scegliere di usare un servizio di sicurezza del servizio di sicurezza personalizzato per fornire token. I motivi includono:

  • Il provider di identità (IDP) non supporta stS.

  • Potrebbe essere necessario un controllo più flessibile o più stretto per integrare il servizio di sicurezza del servizio di sicurezza con il sistema di fatturazione del sottoscrittore.

    Ad esempio, un operatore di servizio OTT può offrire più pacchetti sottoscrittori, ad esempio Premium, basic e sport. L'operatore può associare le attestazioni in un token al pacchetto di un sottoscrittore in modo che siano disponibili solo i contenuti del pacchetto corretto. In questo caso, un servizio token di sicurezza personalizzato fornisce la flessibilità e il controllo necessari.

  • Per includere attestazioni personalizzate nel token da selezionare tra diversi ContentKeyPolicyOptions con parametri di licenza DRM diversi, ad esempio una licenza di sottoscrizione rispetto a una licenza di noleggio.

  • Per includere un'attestazione che rappresenta l'identificatore della chiave di contenuto della chiave a cui il token concede l'accesso.

Quando si usa un servizio token di sicurezza personalizzato, è necessario apportare due modifiche:

  • Quando si configura un servizio di recapito delle licenze per un asset, è necessario specificare la chiave di sicurezza usata per la verifica dal servizio di sicurezza personalizzato anziché la chiave corrente da Azure AD.
  • Quando viene generato un token JTW, viene specificata una chiave di sicurezza invece della chiave privata del certificato X509 corrente in Azure AD.

Esistono due tipi di chiavi di sicurezza:

  • Chiave simmetrica: la stessa chiave viene usata per generare e verificare un token JWT.
  • Chiave asimmetrica: un coppia di chiavi pubblica-privata in un certificato X509 viene usata con una chiave privata per la crittografia/generazione di un token JWT e con la chiave pubblica per la verifica del token.

Nota

Se si usa .NET Framework/C# come piattaforma di sviluppo, il certificato X509 usato per la chiave di sicurezza asimmetrica deve avere una lunghezza della chiave pari almeno a 2048 bit. Questa lunghezza della chiave è un requisito della classe System.IdentityModel.Tokens.X509AsmmetricSecurityKey in .NET Framework. In caso contrario, viene generata l'eccezione seguente: IDX10630: "System.IdentityModel.Tokens.X509AsmmetricSecurityKey" per la firma non può essere inferiore a "2048".

Uso di un servizio di recapito delle licenze/chiavi diverso da Servizi multimediali

È possibile modificare i modelli di criteri chiave se si vuole usare un servizio di distribuzione di licenze/chiavi diverso.

Procedure, esercitazioni ed esempi

L'esempio .Net Digital Rights Management illustra come implementare un sistema MULTI-DRM con Servizi multimediali v3 usando .NET.

Sono disponibili esempi aggiuntivi di protezione dei contenuti per Node.JS e Python:

Node.JS Python Descrizione
Node.JS Caricare e trasmettere HLS e DASH con PlayReady e Widevine DRM Caricamento e flusso di Python HLS e DASH con PlayReady e Widevine DRM Illustra come codificare e trasmettere tramite Widevine e PlayReady DRM
Node.JS protezione dei contenuti DRM di base e streaming Protezione e streaming dei contenuti DRM di base di Python Illustra come codificare e trasmettere tramite PlayReady DRM
Node.JS protezione dei contenuti DRM widevine di base e streaming Protezione e streaming dei contenuti DRM widevine di base di Python Illustra come codificare e trasmettere tramite Widevine DRM

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in base a uno dei metodi seguenti: