Condividi tramite


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 di contenuto protetto da e attraverso Windows Vista in modo protetto. Tutti i componenti all'interno di un ambiente protetto sono attendibili e il processo è protetto da manomissioni.
  • Il percorso multimediale protetto (PMP) è un eseguibile eseguito in un ambiente protetto.
  • Se un componente attendibile in PE viene compromesso, dopo il processo dovuto verrà revocato. Tuttavia, Microsoft fornisce un meccanismo di rinnovo per installare una versione attendibile più recente del componente quando ne diventa disponibile una.

Per informazioni sui componenti multimediali protetti per la firma del codice, vedere il white paper Firma del codice per i componenti multimediali protetti in Windows Vista.

Questo argomento contiene le sezioni seguenti:

Ambiente protetto

La protezione del contenuto comprende più tecnologie, ognuna delle quali tenta di garantire che il contenuto non possa essere usato in modo incoerente con lo scopo del proprietario o del provider del contenuto. Queste tecnologie includono la protezione della copia, la protezione dei collegamenti, l'accesso condizionale e drm (Digital Rights Management). La base di ogni elemento è attendibile: l'accesso al contenuto viene concesso solo ai componenti software che rispettano le condizioni per l'utilizzo assegnate a tale contenuto.

Per ridurre al minimo le minacce ai contenuti protetti, 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 dei contenuti.

Prima di esaminare più attentamente il pe, è importante comprendere le minacce che è progettato 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 dinamico (DLL) che contengono plug-in multimediali, ad esempio decodificatori. Altri processi vengono eseguiti anche in modalità utente e diversi 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 violare la memoria del processo.
  • I plug-in possono accedere direttamente al contenuto o violare la memoria del processo.
  • Altri processi possono violare la memoria del processo multimediale direttamente o inserendo codice.
  • I driver del kernel possono violare 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à 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 componenti e plug-in non attendibili in modo che l'ambiente protetto possa rifiutarli di caricarli. Un componente attendibile è un componente che è stato firmato in modo appropriato da Microsoft. Il kernel tiene traccia anche dei moduli che vengono caricati in esso, consentendo all'ambiente protetto di interrompere la riproduzione di contenuto protetto se viene caricato un modulo non attendibile. Prima del caricamento di un componente kernel, il kernel verifica se è attendibile. In caso contrario, i componenti attendibili già presenti in 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 in 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, se disponibile.

Percorso multimediale protetto

Il percorso multimediale protetto (PMP) è l'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.

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

diagramma del percorso multimediale protetto

Le caselle ombreggiate rappresentano 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 effettua il marshalling dei puntatori di interfaccia oltre il limite del processo.

L'origine multimediale può essere creata all'interno del processo dell'applicazione, come illustrato di seguito 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 effettuare il marshalling dell'interfaccia.

Per applicare i criteri al contenuto protetto durante il flusso della pipeline, pmP usa tre tipi di componenti: autorità di attendibilità di input (ITA), autorità di attendibilità di output (OTA) 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 HDCP (High-bandwidth Digital Content Protection).

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 contenuti, trasferirlo a 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 un trust 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 dei 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), il IMFMediaSource chiama IMFPMPHostApp::ActivateClassById, con l'input specificato IStream 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, è necessario usare solo i sistemi di protezione dell'output approvati per riprodurre un flusso. Il motore dei criteri coordina gli ITA e gli 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 ASF (Advanced System Format) 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 i passaggi seguenti:

  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 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 dei criteri.
  5. Il caricatore della topologia chiama IMFInputTrustAuthority::GetDecrypter negli ITA 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 decrittografatore.
  7. Il motore dei criteri analizza i nodi inseriti per determinare se implementare l'interfaccia IMFTrustedOutput. EVR e il renderer audio implementano entrambi IMFTrustedOutput, 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 dell'ambiente protetto.
  9. Per ogni flusso, il motore dei criteri negozia i criteri ottenendo 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 viene compromesso o viene scoperto di violare i contratti di licenza con cui è stato inizialmente considerato 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. L'archiviazione con ridondanza geografica è firmata digitalmente per garantire l'autenticità. I proprietari del contenuto possono garantire, tramite il meccanismo dei criteri, che la versione corrente dell'archiviazione con ridondanza geografica sia presente nel computer dell'utente.

Quando viene visualizzato il contenuto video Premium, i fotogrammi decrittografati e non compressi passano attraverso un connettore fisico al dispositivo di visualizzazione. I provider di contenuti possono richiedere che i fotogrammi video siano protetti a questo punto, mentre passano attraverso il connettore fisico. A questo scopo esistono vari meccanismi di protezione, tra cui High-Bandwidth Digital Content Protection (HDCP) e DisplayPort Content Protection (DPCP). L'OTA video applica queste protezioni usando il (OPM) di Output Protection Manager. Output Protection Manager invia comandi al driver di grafica e il driver grafico applica qualsiasi meccanismo di protezione dei collegamenti richiesto dai criteri.

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

Informazioni su Media Foundation

architettura di Media Foundation

GPU-Based protezione del contenuto

di Output Protection Manager

sessione multimediale PMP