Percorso multimediale protetto

Questo argomento illustra tre argomenti correlati: ambiente protetto, gateway di interoperabilità multimediale e revoca e rinnovo.

  • Un ambiente protetto (PE) è un set di tecnologie che consente il flusso del contenuto protetto da e tramite Windows Vista in modo protetto. Tutti i componenti all'interno di un ambiente protetto sono attendibili e il processo è protetto da manomissione.
  • Il percorso multimediale protetto (PMP) è un eseguibile che viene eseguito in un ambiente protetto.
  • Se un componente attendibile nel PE viene compromesso, dopo il processo dovuto verrà revocato. Microsoft fornisce tuttavia un meccanismo di rinnovo per installare una versione attendibile più recente del componente quando diventa disponibile.

Per informazioni sui componenti multimediali protetti dalla firma del codice, vedere il white paper Code Signing for Protected Media Components in Windows Vista.

In questo argomento sono incluse le sezioni seguenti:

Ambiente protetto

La protezione del contenuto include più tecnologie, ognuna delle quali tenta di garantire che il contenuto non possa essere usato in modo incoerente con la finalità del proprietario o del provider di contenuti. Queste tecnologie includono la protezione della copia, la protezione dei collegamenti, l'accesso condizionale e la gestione dei diritti digitali (DRM). La base di ogni elemento è attendibile: l'accesso al contenuto viene concesso solo ai componenti software che rispettano le condizioni di utilizzo assegnate a tale contenuto.

Per ridurre al minimo le minacce contro il contenuto protetto, Windows Vista e Media Foundation Software consentono l'esecuzione di codice attendibile in un ambiente protetto. Un PE è un set di componenti, linee guida e strumenti progettati per aumentare la protezione contro la pirateria del contenuto.

Prima di esaminare più attentamente il PE, è importante comprendere le minacce progettate per ridurre al minimo. Si supponga di eseguire un'applicazione multimediale in un processo in modalità utente. L'applicazione è collegata alle varie librerie di collegamento dinamiche (DLL) che contengono plug-in multimediali, ad esempio decodificatori. Altri processi vengono eseguiti anche in modalità utente e vari driver vengono caricati nel kernel. Se non è presente alcun meccanismo di attendibilità, esistono le minacce seguenti:

  • L'applicazione può accedere direttamente ai supporti protetti o hackerare la memoria del processo.
  • I plug-in possono accedere direttamente al contenuto o hackerare la memoria del processo.
  • Altri processi possono hackerare la memoria del processo multimediale direttamente o inserendo codice.
  • I driver del kernel possono hackerare la memoria del processo multimediale.
  • Il contenuto potrebbe essere inviato all'esterno del sistema su un supporto non protetto. La protezione dei collegamenti è progettata per attenuare questa minaccia.

Progettazione dell'ambiente protetto

Un ambiente protetto viene eseguito in un processo protetto separato dall'applicazione multimediale. La funzionalità del processo protetto di Windows Vista impedisce ad altri processi di accedere al processo protetto.

Quando viene creato un processo protetto, i componenti del kernel di base identificano i componenti non attendibili e i plug-in in in modo che l'ambiente protetto possa rifiutarli di caricarli. Un componente attendibile è uno che è stato firmato in modo appropriato da Microsoft. Il kernel tiene traccia anche dei moduli che li caricano, consentendo all'ambiente protetto di interrompere la riproduzione del contenuto protetto se viene caricato un modulo non attendibile. Prima che venga caricato un componente kernel, il kernel verifica se è attendibile. In caso contrario, i componenti attendibili già presenti nel pe rifiutano di elaborare il contenuto protetto. Per abilitare questa operazione, i componenti PE eseguono periodicamente un handshake protetto da crittografia con il kernel. Se è presente un componente della modalità kernel non attendibile, l'handshake ha esito negativo e indica al pe che esiste un componente non attendibile.

Se un componente attendibile viene compromesso, dopo il processo dovuto può essere revocato. Microsoft fornisce un meccanismo di rinnovo per installare una versione attendibile più recente quando disponibile.

Percorso multimediale protetto

Il percorso multimediale protetto (PMP) è il file eseguibile PE primario per Media Foundation. PmP è estendibile, in modo che sia possibile supportare meccanismi di protezione del contenuto di terze parti.

Il PMP accetta contenuti protetti e criteri associati da qualsiasi origine di Media Foundation usando qualsiasi sistema di protezione del contenuto, inclusi quelli forniti da terze parti. Invia contenuto a qualsiasi sink di Media Foundation, purché il sink sia conforme ai criteri specificati dall'origine. Supporta anche trasformazioni tra l'origine e il sink, incluse le trasformazioni di terze parti, purché siano attendibili.

PmP viene eseguito in un processo protetto isolato dall'applicazione multimediale. L'applicazione ha solo la possibilità di scambiare i messaggi di comando e controllo con PMP, ma non ha accesso al contenuto dopo che viene passato al PMP. La figura seguente illustra questo processo.

diagramma del percorso multimediale protetto

Le caselle ombreggiate rappresentano i componenti che potrebbero essere forniti da terze parti. Tutti i componenti creati all'interno del processo protetto devono essere firmati e attendibili.

L'applicazione crea un'istanza della sessione multimediale all'interno del processo protetto e riceve un puntatore a una sessione multimediale proxy, che esegue il marshalling dei puntatori dell'interfaccia attraverso il limite del processo.

L'origine multimediale può essere creata all'interno del processo dell'applicazione, come illustrato qui o all'interno del processo protetto. Se l'origine multimediale viene creata all'interno del processo dell'applicazione, l'origine crea un proxy per se stesso nel processo protetto.

Tutti gli altri componenti della pipeline, ad esempio decodificatori e sink multimediali, vengono creati nel processo protetto. Se questi oggetti espongono interfacce personalizzate per le applicazioni, devono fornire un proxy/stub DCOM per eseguire il marshalling dell'interfaccia.

Per applicare i criteri al contenuto protetto man mano che scorre la pipeline, il PMP usa tre tipi di componenti: autorità di attendibilità di input (ITAs), autorità di attendibilità di output (OTAs) e oggetti criteri. Questi componenti interagiscono per concedere o limitare i diritti per l'uso del contenuto e per specificare le protezioni dei collegamenti che devono essere usate durante la riproduzione di contenuti, ad esempio Protezione contenuto digitale a larghezza di banda elevata (HDCP).

Autorità di attendibilità di input

Un ITA viene creato da un'origine multimediale attendibile ed esegue diverse funzioni:

  • Specifica i diritti per l'uso del contenuto. I diritti possono includere il diritto di riprodurre contenuto, trasferirlo in un dispositivo e così via. Definisce un elenco ordinato di sistemi di protezione dell'output approvati e dei criteri di output corrispondenti per ogni sistema. L'ITA archivia queste informazioni in un oggetto criteri.
  • Fornisce il decrittografia necessario per decrittografare il contenuto.
  • Stabilisce l'attendibilità con il modulo kernel nell'ambiente protetto, per assicurarsi che l'ITA sia in esecuzione all'interno di un ambiente attendibile.

Un ITA è associato a un singolo flusso contenente contenuto protetto. Un flusso può avere un solo ITA e un'istanza di un ITA può essere associata a un solo flusso.

Autorità di attendibilità di output

Un OTA è associato a un output attendibile. L'OTA espone un'azione che l'output attendibile può eseguire sul contenuto, ad esempio la riproduzione o la copia. Il suo ruolo consiste nell'applicare uno o più sistemi di protezione di output richiesti dall'ITA. L'OTA esegue una query sull'oggetto criteri fornito da ITA per determinare quale sistema di protezione deve applicare.

Oggetti criteri

Un oggetto criteri incapsula i requisiti di protezione del contenuto di un'ITA. Viene usato dal motore di criteri per negoziare il supporto della protezione del contenuto con un'OTA. Oggetti criteri di query OTAs per determinare quali sistemi di protezione devono applicare a ogni output del contenuto corrente.

Creazione di oggetti nel PMP

Per creare un oggetto nel percorso multimediale protetto (PMP), FMIMediaSource chiama FMPMPHostApp::ActivateClassById, con l'input IStream specificato formattato nel modo seguente:

Format: (All DWORD values are serialized in little-endian order)
[GUID (content protection system guid, obtained from Windows.Media.Protection.MediaProtectionSystemId)]
[DWORD (track count, use the actual track count even if all tracks are encrypted using the same data, note that zero is invalid)]
[DWORD (next track ID, use -1 if all remaining tracks are encrypted using the same data)]
[DWORD (next track's binary data size)]
[BYTE* (next track's binary data)]
{ Repeat from "next track ID" above for each stream }

Panoramica della negoziazione dei criteri

Esistono tre requisiti fondamentali che devono essere soddisfatti prima che il contenuto protetto possa essere elaborato nel PMP. Prima di tutto, il contenuto protetto deve essere inviato solo agli output attendibili. In secondo luogo, è necessario applicare solo le azioni consentite a un flusso. In terzo luogo, solo i sistemi di protezione dell'output approvati devono essere usati per riprodurre un flusso. Il motore di criteri coordina tra ITA e OTA per garantire che questi requisiti siano soddisfatti.

Il modo più semplice per comprendere il processo consiste nell'esaminare un esempio semplificato che identifica i passaggi necessari per riprodurre contenuto di formato di sistema avanzato (ASF) protetto da Windows Media Digital Rights Management (WMDRM).

Quando un utente avvia un'applicazione lettore e apre un file ASF con un flusso audio protetto e un flusso video protetto, è necessario eseguire la procedura seguente:

  1. L'applicazione crea l'origine multimediale ASF e la sessione PMP (Protected Media Path). Media Foundation crea un processo PMP.
  2. L'applicazione crea una topologia parziale che contiene un nodo di origine audio connesso al renderer audio e un nodo di origine video connesso al renderer video avanzato (EVR). Per i renderer, l'applicazione non crea direttamente il renderer. L'applicazione crea invece nel processo non protetto un oggetto noto come oggetto di attivazione. PmP usa l'oggetto di attivazione per creare i renderer nel processo protetto. Per altre informazioni sugli oggetti di attivazione, vedere Oggetti attivazione.
  3. L'applicazione imposta la topologia parziale nella sessione PMP.
  4. La sessione PMP serializza la topologia e la passa all'host PMP nel processo protetto. L'host PMP invia la topologia al motore di criteri.
  5. Il caricatore della topologia chiama FMInputTrustAuthority::GetDecrypter negli ITAs e inserisce i decrittografi nella topologia immediatamente downstream dei nodi di origine corrispondenti.
  6. Il caricatore della topologia inserisce i decodificatori audio e video downstream dei nodi decrittografa.
  7. Il motore di criteri analizza i nodi inseriti per determinare se implementare l'interfaccia FMTrustedOutput . L'EVR e il renderer audio implementano sia FMTrustedOutput, perché inviano dati all'esterno del PMP.
  8. Ogni ITA conferma che è in esecuzione all'interno di un processo protetto eseguendo un handshake crittografico con un modulo kernel di ambiente protetto.
  9. Per ogni flusso, il motore di criteri negozia i criteri recuperando un oggetto criteri dall'ITA e passandolo all'OTA. L'OTA fornisce un elenco dei sistemi di protezione supportati e l'oggetto criteri indica quali sistemi di protezione devono essere applicati, insieme alle impostazioni corrette. L'OTA applica quindi queste impostazioni. Se non è possibile farlo, il contenuto viene bloccato.

Revoca e rinnovo

Un componente attendibile può essere revocato se diventa compromesso o viene scoperto di violare i contratti di licenza in base al quale è stato inizialmente attendibile. Esiste un meccanismo di rinnovo per installare una versione più recente e più attendibile del componente.

I componenti attendibili vengono firmati usando un certificato crittografico. Microsoft pubblica un elenco di revoche globale (GRL) che identifica i componenti revocati. GrL è firmato digitalmente per garantire la sua autenticità. I proprietari del contenuto possono assicurarsi, tramite il meccanismo di criteri, che la versione corrente del grL sia presente nel computer dell'utente.

Quando viene visualizzato il contenuto video Premium, i fotogrammi decrittografati e non compressi si spostano su un connettore fisico nel dispositivo visualizzato. I provider di contenuti possono richiedere la protezione dei fotogrammi video a questo punto, mentre viaggiano attraverso il connettore fisico. Esistono vari meccanismi di protezione per questo scopo, tra cui High-Bandwidth Digital Content Protection (HDCP) e DisplayPort Content Protection (DPCP). Il video OTA applica queste protezioni usando Output Protection Manager (OPM). Output Protection Manager invia comandi al driver grafico e il driver grafico applica qualsiasi meccanismo di protezione dei collegamenti richiesto dai criteri.

diagramma che mostra la relazione tra il video ota e opm.

Informazioni su Media Foundation

Architettura di Media Foundation

Protezione del contenuto basata su GPU

Output Protection Manager

Sessione multimediale PMP