Implementazione passo passo di DRM e riproduzione sicura in Windows 11

  • PlayReady HWDRM in Windows 11 combina una crittografia avanzata, TEE e il controllo dell'output per proteggere i contenuti HD e UHD.
  • La distinzione tra HWDRM e SWDRM ha un impatto diretto sui requisiti di licenza, sull'utilizzo di HDCP e sulla compatibilità dei codec.
  • Le app UWP possono interrogare le funzionalità DRM, acquisire licenze in modo proattivo e gestire gli arresti sicuri per un controllo preciso.
  • L'integrazione di PlayReady nei browser e in Xbox One unifica l'esperienza di streaming sicura nell'intero ecosistema Windows.

DRM e SafePlay in Windows 11

La Protezione avanzata dei contenuti in Windows 11 Si basa su tecnologie DRM all'avanguardia, con PlayReady come componente principale e una forte enfasi sull'utilizzo di hardware sicuro. Sempre più piattaforme e fornitori di streaming stanno adottando questo approccio per offrire video in HD, 4K e persino UHD senza il timore di copie o estrazioni illegali.

In questo contesto, è importante capire come funziona Implementazione passo passo di DRM e riproduzione sicura Nell'ecosistema Windows (sia Windows 11 che Windows 10, oltre a Xbox), è fondamentale per qualsiasi sviluppatore che desideri offrire contenuti di alta qualità, rispettare le regole dello studio e garantire una buona esperienza utente. Analizzeremo in dettaglio tutti gli elementi coinvolti: PlayReady HWDRM e SWDRM, Windows TEE, protezione all'uscita, licenze, migrazione di app UWP e altro ancora.

DRM basato su hardware con PlayReady: concetto e vantaggi

Il cuore della riproduzione sicura nelle moderne finestre è PlayReady con supporto DRM basato su hardware (HWDRM)Integrato direttamente nel sistema operativo come componente integrato. A differenza dei DRM puramente software (SWDRM), l'approccio hardware utilizza un kernel crittografico protetto e un ambiente di runtime affidabile per salvaguardare tutti gli elementi critici: chiavi private, chiavi di contenuto e flussi video compressi o non compressi.

Grazie a questo modello, il contenuto di alta definizione (1080p) e altissima definizione (UHD) Può essere riprodotto su un'ampia gamma di dispositivi Windows, mantenendo tutto il materiale sensibile all'interno di aree hardware protette. Il risultato pratico è che la superficie di accesso per la copia non autorizzata è drasticamente ridotta, poiché le chiavi di accesso non vengono mai esposte e il video viene "srotolato" solo nella fase finale del processo protetto.

PlayReady in Windows 10 e Windows 11 non è più un semplice componente AppX: Fa parte del sistema stesso. ed è esposto alle applicazioni UWP tramite lo spazio dei nomi Windows.Media.Protection.PlayReadyInoltre, l'SDK di Windows include le intestazioni necessarie per gestire i codici di errore specifici di PlayReady, consentendo alle app di reagire in modo accurato ai problemi di licenza o di protezione all'uscita.

Tra i miglioramenti apportati a PlayReady per le versioni moderne di Windows, spiccano i seguenti: capacità di acquisire in modo proattivo più licenze non persistenti In un unico messaggio, supporto per licenze a durata limitata (LDL) con scadenza in tempo reale, separazione delle licenze audio e video e risoluzioni massime controllate (MaxResDecode) anche quando sono disponibili chiavi più potenti.

PlayReady con supporto DRM

Windows TEE: come viene integrato il Trusted Runtime Environment

Affinché il DRM hardware abbia senso, Windows si basa su un Ambiente di esecuzione affidabile (TEE) proprietario, noto come Windows Tree. Sebbene i dettagli interni dell'implementazione non siano disponibili pubblicamente, viene descritto come si inserisce nell'architettura PlayReady per UWP.

Windows implementa un Livello proxy OEM che serializza le chiamate PRITEE e le invia a un driver in modalità utente all'interno del sottosistema Windows Media Foundation. Da lì, queste chiamate vengono reindirizzate al driver Windows Tree o al driver grafico OEM, a seconda della configurazione del dispositivo e del percorso di uscita scelto.

Questo design consente tutto protezioni di uscita in HWDRM Queste regole vengono applicate dall'interno di Windows TEE. In altre parole, il sistema sa in ogni momento quali uscite sono collegate, cosa supportano (HDCP, tipi di connettore, Miracast, ecc.) e applica le regole di licenza PlayReady prima che il contenuto venga visualizzato su un monitor o un televisore.

Se un produttore o un'organizzazione ha bisogno di sviluppare una porta TEE specifica per PlayReady su Windows, Microsoft offre supporto tramite canali diretti (ad esempio, contatti tecnici specializzati), poiché si tratta di un ambito estremamente delicato in termini di sicurezza e conformità.

Chrome, Edge e altri browser: supporto PlayReady ed esperienza di streaming

Nel settore dei browser, la tendenza è chiara: sfruttare il DRM nativo di ciascuna piattaforma Per ridurre la dipendenza dai plugin e consentire lo streaming sicuro alla migliore qualità possibile. Finora, Chrome su Windows si affidava principalmente a Widevine, la soluzione DRM di Google, che in alcuni casi limita la risoluzione massima accessibile ai contenuti premium.

Google sta lavorando per Chrome può utilizzare PlayReady DRM con supporto hardware su Windows 11. Questo apre le porte alla riproduzione di video 4K e UHD, in modo simile a quanto fa Microsoft Edge. Infatti, piattaforme importanti come Netflix utilizzano già PlayReady per proteggere i loro titoli di fascia alta all'interno dell'ecosistema Windows.

Il piano di Google prevede che Chrome supporti PlayReady e Widevine contemporaneamenteCiò consente agli utenti di scegliere l'opzione migliore per ogni dispositivo. Inoltre, il browser integrerà un indicatore di privacy visibile nella barra degli indirizzi quando un sito accede a contenuti protetti da PlayReady, offrendo agli utenti la possibilità di consentire o bloccare tale accesso in modo consapevole.

Questa mossa mette Chrome in una posizione più competitiva in esperienza di streaming su Windows 11avvicinando le sue prestazioni e la qualità visiva a quelle già offerte da Edge grazie alla sua profonda integrazione con il sistema e con PlayReady HWDRM.

DRM Windows

Nozioni fondamentali sul DRM in Windows: da Windows 2000 a Windows 11

Il supporto Protezione da dispositivi (DRM) per l'audio digitale in Windows. Non è una novità. Esiste fin dai tempi di Windows 2000 e Windows 98/Me. Ma la verità è che la sicurezza del kernel ha iniziato a prendere davvero piede con Windows XP e le versioni successive. In queste versioni, il sistema ha smesso di consentire driver non autorizzati in grado di intercettare l'audio protetto e registrarlo su disco senza crittografia.

L'architettura classica si basa sulla conservazione del contenuto protetto su disco in formato crittografatoDurante la riproduzione, il flusso rimane crittografato/codificato mentre viene letto e memorizzato in memoria fino a raggiungere il driver DRMK (Drmk.sys). Questo componente decrittografa il contenuto e lo invia direttamente a un driver audio affidabile, riducendo al minimo la porzione del percorso dati in cui il contenuto appare in chiaro.

Durante la creazione di un grafico di filtri per riprodurre una sequenza audio non controllata, DRMK autentica i driver dell'adattatore e i filtri KS che verranno utilizzati. Se uno qualsiasi dei componenti del grafico non soddisfa i requisiti DRMIl sistema rifiuta l'intera catena riproduttiva per prevenire le fughe di dati.

Un controller conforme al DRM deve bloccare le copie non autorizzate durante la riproduzione di contenuti digitali e disabilitare le uscite digitali standard suscettibili di cattura (come S/PDIF). È interessante notare che questa restrizione non si applica ai dispositivi USB. Attualmente, DRMK consente la riproduzione di contenuti protetti solo tramite altoparlanti USB che non espongono uscite digitali aggiuntive.

DRM hardware vs DRM software: differenze e condizioni principali

Quando si sviluppano applicazioni UWP destinate a contenuti di alto valore, è importante essere chiari su quando vengono utilizzati DRM hardware (HWDRM) e quando utilizzare il DRM software (SWDRM)E i comportamenti cambiano in modo significativo. Soprattutto per quanto riguarda la protezione delle uscite.

Con PlayReady HWDRM su Windows 10 e 11, il sistema applica Livelli di protezione all'uscita più rigorosi (OPL) per video digitali non compressi.

Un'altra differenza importante è che, con HWDRM, il Le protezioni di uscita vengono applicate a tutti i monitor in base a quello meno performanteSe un utente ha due schermiSe un monitor supporta HDCP e l'altro no, e la licenza richiede HDCP, la riproduzione non andrà a buon fine anche se il contenuto viene visualizzato solo sul monitor compatibile con HDCP. In SWDRM, la riproduzione sarebbe consentita a condizione che il contenuto venga visualizzato solo sullo schermo abilitato per HDCP.

Inoltre, HWDRM non supporta il Percorso multimediale protetto (PMP)Il codec Windows Media Video/VC-1 non è supportato e le configurazioni multi-GPU presentano limitazioni per le licenze permanenti. Ciò richiede cautela quando si aggiorna l'hardware grafico sui computer degli utenti.

Gestisci più GPU e licenze persistenti con PlayReady

In scenari in cui un PC ha più di una GPU (ad esempio, grafica integrata più una scheda dedicata), la gestione delle licenze persistenti in HWDRM diventa più complessa. PlayReady associa queste licenze a un archivio di dati hash (HDS) collegato alle chiavi hardware della GPU in uso al momento dell'acquisizione.

Immaginiamo il flusso tipico: un cliente acquista un computer con una GPU integrata, utilizza un'app che acquisisce licenze persistenti sotto DRM hardwaree successivamente installa una nuova scheda grafica dedicata. A quel punto, tutte le licenze HDS collegate alla GPU integrata non saranno più valide con la nuova scheda, che avrà un proprio HDS indipendente.

Per evitare che la riproduzione fallisca perché il nuovo hardware non può decrittografare le vecchie licenze, PlayReady mantiene un HDS separato per ogni GPU rilevataCiò significa che se l'app rileva una modifica alla GPU, potrebbe dover riacquistare le licenze per contenuti che, nell'ottica di uno scenario SWDRM o senza modifiche hardware, sarebbero già stati risolti.

In pratica, le applicazioni che gestiscono le licenze persistenti in HWDRM dovrebbero prevedere la possibile effettiva “perdita” delle licenze dopo l'aggiornamento della scheda grafica. Tuttavia, poiché si tratta di un problema relativamente raro, molti fornitori scelgono di gestirlo tramite l'assistenza clienti quando, dopo una modifica hardware, il contenuto smette di essere riprodotto correttamente.

DRM

Come forzare l'utilizzo del DRM software (sovrascrivere l'HWDRM)

Alcuni contenuti, per la loro natura o per le tecnologie utilizzate, Non sono compatibili con i sistemi DRM hardware.Questo è il caso di alcuni contenuti di tipo "cocktail", di certi codec video diversi da H.264/HEVC o persino di contenuti HEVC su dispositivi il cui HWDRM non supporta tale codec.

In questi casi, potrebbe essere consigliabile disabilitare l'uso di HWDRM e forza PlayReady a utilizzare il livello di protezione softwareDi default, se il sistema supporta il DRM hardware, questo verrà utilizzato. Pertanto, è necessario disabilitarlo esplicitamente prima di avviare la riproduzione. Assicurarsi inoltre che non rimangano oggetti PlayReady in memoria.

Un modo per farlo è creare un contenitore di configurazione in ApplicationData.LocalSettings e inserire il valore SoftwareOverride = 1 nella chiave Pronto per giocarePer riattivare HWDRM, è sufficiente impostare quel valore su 0. Inoltre, per ogni riproduzione, il MediaProtectionManager con la proprietà Windows.Media.Protection.UseSoftwareProtectionLayer = true, imponendo quindi l'utilizzo del livello software.

Il modo più semplice per scoprire quale tipo di DRM viene utilizzato in un'app UWP è controllare la cartella PlayReady all'interno della LocalCache del pacchetto dall'applicazione. Se appare un file mspr.hdsStiamo lavorando con SWDRM. Se quello che vediamo è un altro file .hds In questo caso, ci troveremo nella directory HWDRM. Eliminando la cartella PlayReady e ripetendo il test, è possibile verificare le modifiche alla configurazione.

Rilevamento delle funzionalità DRM hardware (inclusi AES128CBC e HEVC)

Prima di decidere quale tipo di contenuto fornire o quali licenze rilasciare, è altamente raccomandato che l'applicazione Verifica quali funzionalità DRM hardware supporta il dispositivo.Per fare ciò, PlayReady offre il metodo PlayReadyStatics.CheckSupportedHardware, che riceve come parametro un valore dall'enumerazione PlayReadyHardwareDRMFeatures.

Consultando, ad esempio, la funzionalità HardwareDRM È possibile scoprire se esiste un supporto DRM hardware generale? Chiedendo... HEVC Determina se l'hardware supporta il codec video ad alta efficienza H.265. A partire dalla versione 1709 di Windows 10, è anche possibile verificare se il dispositivo supporta la crittografia hardware AES128CBC utilizzando la funzionalità Aes128Cbc.

Poiché nelle versioni precedenti del sistema questa enumerazione potrebbe non esistere e potrebbe causare eccezioni se utilizzata senza controllo, deve essere combinata con Informazioni API.ÈPresenteContratto API (versione 5 di Windows.Foundation.UniversalApiContract) prima di eseguire la query. Il modello tipico è quello di verificare prima la presenza del contratto e, solo se è disponibile, invocarlo CheckSupportedHardware.

Inoltre, la proprietà PlayReadyStatics.PlayReadyCertificateSecurityLevel restituisce il livello di sicurezza del certificato clientSe il valore è 0, il client non è individualizzato o configurato. Se è inferiore a 3000, significa che non viene utilizzato il DRM hardware. Se invece è uguale o superiore a 3000, indica che il dispositivo soddisfa le condizioni per l'HWDRM.

Protezione dell'output: OPL, HDCP, Miracast e restrizioni esplicite

Uno dei pilastri del modello PlayReady in Windows 10 e 11 è il controllo esaustivo del uscite video e audioLe licenze possono definire diversi livelli di protezione dell'uscita (OPL) per video digitali compressi, video digitali non compressi, connettori analogici, HDMI, DVI, DisplayPort, MHL o Miracast.

Nel caso dei video, un OPL di 100 di solito consente il passaggio dei contenuti senza grandi restrizioni. I livelli più alti includono condizioni come interagire con HDCP o limitare la risoluzione effettiva del contenuto. Al di sopra di determinate soglie, Windows 10 non invia mai video digitali compressi alle uscite, indipendentemente dal valore specifico, in conformità con le linee guida di PlayReady.

La tabella di mappatura mostra che, per OPL 270, SWDRM tenterà di abilitare HDCP e, in caso di errore, ridurrà la risoluzione a 520.000 pixel. Con HWDRM, invece, La riproduzione è bloccata su HDMI/DVI se non è possibile stabilire HDCP.Per OPL 300, se è definita la restrizione del tipo HDCP, saranno consentiti solo contenuti con HDCP 2.2 e tipo di sequenza 1. In caso contrario, la riproduzione verrà interrotta.

Per l'audio, gli OPL determinano anche se il passaggio di audio digitale compresso o non compressoe in quali condizioni è necessario configurare HDCP o SCMS in CopyNever. Anche in questo caso, all'aumentare dei livelli, le restrizioni diventano più severe e possono impedire completamente la riproduzione se non vengono rispettate.

Miracast è considerata una funzionalità di Windows 10. uscita digitale piùPlayReady consente la riproduzione di contenuti tramite Miracast a condizione che sia abilitato HDCP 2.0 o superiore. A seconda del livello OPL assegnato nella licenza, il dispositivo tenterà di stabilire la connessione HDCP. In caso di errore, il contenuto non verrà trasmesso a tale uscita. Quando si combinano livelli OPL elevati e restrizioni sul tipo di HDCP, la riproduzione è consentita solo se si raggiunge HDCP 2.2 e il tipo di flusso corretto.

Prerequisiti e migrazione delle applicazioni PlayReady UWP

Per creare applicazioni UWP che sfruttano PlayReady e le sue funzionalità HWDRMInnanzitutto, è necessario soddisfare alcuni requisiti di ambiente. È fondamentale lavorare su Windows 10 o versioni successive e, se si compilano gli esempi ufficiali di PlayReady per UWP, utilizzare Visual Studio 2015 o versioni successive (per le app 8.1, VS 2013 è ancora supportato).

Nel processo di migrazione dalle app Windows Store 8.xa UWP a Windows 10, il cambiamento più evidente è lo spazio dei nomi: devi sostituire tutti i riferimenti a Microsoft.Media.PlayReadyClient by Windows.Media.Protection.PlayReadyI riferimenti ai metadati di WinMD ora provengono dai contratti universali del sistema (ad esempio, windows.foundation.universalappcontract.winmd).

Se vuoi riprodurre contenuti HD 1080p o UHD protetti, devi Implementare il DRM hardware PlayReadyPer quei tipi di contenuto non compatibili con HWDRM, vengono utilizzate la logica di override hardware e l'uso di SWDRM descritti in precedenza.

Da MediaProtectionManager, è essenziale configurarlo con le proprietà corrette: il GUID del sistema di protezione PlayReady (MediaProtectionSystemId), la mappatura degli identificatori di sistema alla stringa PlayReadyWinRTTrustedInput e il GUID del contenitore (MediaProtectionContainerGuidQuesta configurazione consente alla pipeline multimediale di Windows di associare le richieste di protezione al motore PlayReady appropriato.

Acquisizione proattiva di licenze non persistenti e catene di licenze

Uno dei miglioramenti chiave nelle versioni recenti di PlayReady è il Acquisizione proattiva di licenze non persistenti prima dell'inizio della riproduzione. Nelle versioni precedenti, potevano essere ottenuti solo in modo reattivo, durante il processo di riproduzione. Ciò aumentava il tempo di visualizzazione del primo fotogramma.

El flusso consigliato composto da:

  1. Crea una sessione di riproduzione in cui verranno memorizzate le licenze non persistenti.
  2. Collega quella sessione al corso di acquisizione della licenza.
  3. Genera una richiesta di servizio di licenza (LAServiceRequest).
  4. Completare il processo di acquisizione.
  5. Associa quella sessione alla sorgente multimediale utilizzata dal lettore.

PlayReady consente inoltre di raggruppare l'acquisto di [qualcosa] in un unico messaggio. licenze multiple non persistentiQuesto evita di dover inviare richieste al server. Inoltre, consente all'utente di sfogliare la libreria di contenuti mentre le licenze per i vari snippet vengono scaricate in background. Ciò riduce i tempi di attesa quando l'utente decide cosa guardare.

Inoltre, le licenze possono includere restrizioni temporanee avanzateScadenza assoluta, scadenza dopo la prima riproduzione o scadenza in tempo reale. Combinando questi meccanismi con più licenze nello stesso messaggio, è possibile gestire i casi in cui inizialmente vengono acquistate licenze a breve termine (STL) durante la navigazione e successivamente viene acquisita una licenza a lungo termine che consente la riproduzione ininterrotta fino al termine del contenuto.

Arresto sicuro e controllo della sessione

Un'altra funzionalità introdotta in PlayReady si chiama Fermata sicuraQuesta funzione è progettata per consentire al dispositivo di informare in modo affidabile un servizio di streaming che la riproduzione di uno specifico segmento è terminata.

Questo meccanismo consente un controllo molto più preciso delle limitazioni di utilizzo e la generazione di report sui consumi nei servizi multi-dispositivo. Ci sono due scenari tipici:

  • Quando la riproduzione termina naturalmente (fine del contenuto) o quando l'utente la interrompe volontariamente.
  • Quando una sessione precedente viene interrotta inaspettatamente da una chiusura forzata dell'applicazione o da un arresto anomalo del sistema.

L'applicazione dovrebbe verificare la presenza di possibili problemi all'inizio o alla fine della sessione. fermate sicure in sospeso e inviare le relative sfide indipendentemente da qualsiasi altra riproduzione. Microsoft fornisce esempi concreti che mostrano come implementare questo flusso in un'app UWP.

Utilizzo di PlayReady su Xbox One e considerazioni sulla sicurezza

Se vuoi approfittarne PlayReady DRM in un'app UWP per Xbox OneIl primo passo consiste nell'ottenere l'autorizzazione per l'account Partner Center associato all'app. Tale autorizzazione può essere elaborata tramite un contatto Microsoft o inviando i dettagli dell'account e dell'azienda attraverso i canali designati.

Una volta concessa l'autorizzazione, è necessario Aggiungere manualmente una funzionalità del dispositivo (DeviceCapability) nel manifesto dell'applicazione (Package.appxmanifestCiò si fa modificando il file in modalità XML e aggiungendo la voce corrispondente all'interno della sezione <Capabilities> per abilitare l'utilizzo di PlayReady sulla console.

I kit di sviluppo Xbox presentano una limitazione a livello di sicurezza: consentono la riproduzione solo di contenuti con livello SL150, mentre i dispositivi commerciali possono gestire livelli superiori come SL2000 o SL3000. Per eseguire test nei kit di sviluppoÈ consigliabile utilizzare contenuti di test che richiedano solo licenze SL150. Un'altra opzione è implementare una logica che consenta ad alcuni account di test di ottenere licenze scontate per determinate risorse.

Con questa configurazione, le app possono offrire un'esperienza di streaming sicura su Xbox One. Ciò si allinea con l'esperienza ottenuta su Windows 10/11 con HWDRM, combinando PlayReady, TEE e protezione dell'uscita secondo le stesse norme di conformità.

Nel complesso, l'ecosistema DRM e di riproduzione sicura di Windows 11 si basa su una combinazione molto consolidata di PlayReady, un ambiente di runtime affidabile, un controllo completo dell'output e una gestione flessibile delle licenze, consentendo a sviluppatori e piattaforme di streaming di distribuire contenuti HD e UHD con elevati livelli di sicurezza senza compromettere un'esperienza utente fluida.

Che cosa è Widevine CDM-7
Articolo correlato:
Cos'è Widevine CDM e perché influisce sulla qualità dello streaming?

Aggiungi come fonte preferita