Partager via


Chemin d’accès multimédia protégé

Cette rubrique traite de trois sujets liés : environnement protégé, passerelle d’interopérabilité des médias et révocation et renouvellement.

  • Un environnement protégé (PE) est un ensemble de technologies qui permettent au contenu protégé de circuler et à travers Windows Vista de manière protégée. Tous les composants à l’intérieur d’un environnement protégé sont approuvés et le processus est protégé contre la falsification.
  • Le chemin d’accès du média protégé (PMP) est un exécutable qui s’exécute dans un environnement protégé.
  • Si un composant approuvé dans le PE devient compromis, une fois le processus d’échéance révoqué. Toutefois, Microsoft fournit un mécanisme de renouvellement pour installer une version approuvée plus récente du composant lorsqu’il devient disponible.

Pour plus d’informations sur la signature de code de composants multimédias protégés, consultez le livre blanc Signature de code pour les composants multimédias protégés dans Windows Vista.

Cette rubrique contient les sections suivantes :

Environnement protégé

La protection du contenu englobe plusieurs technologies, chacune d’entre elles tente de s’assurer que le contenu ne peut pas être utilisé d’une manière incompatible avec l’intention du propriétaire ou du fournisseur de contenu. Ces technologies incluent la protection de copie, la protection des liens, l’accès conditionnel et la gestion des droits numériques (DRM). La base de chacun d’eux est fiable : l’accès au contenu est accordé uniquement aux composants logiciels qui respectent les conditions d’utilisation attribuées à ce contenu.

Pour réduire les menaces contre le contenu protégé, Windows Vista et Media Foundation Software permettent l’exécution de code approuvé dans un environnement protégé. Un PE est un ensemble de composants, de directives et d’outils conçus pour renforcer la protection contre le piratage de contenu.

Avant d’examiner plus étroitement le PE, il est important de comprendre les menaces qu’il a conçues pour minimiser. Supposons que vous exécutez une application multimédia dans un processus en mode utilisateur. L’application est liée aux différentes bibliothèques de liens dynamiques (DLL) qui contiennent des plug-ins multimédias, tels que des décodeurs. D’autres processus s’exécutent également en mode utilisateur, et différents pilotes sont chargés dans le noyau. Si aucun mécanisme d’approbation n’est en place, les menaces suivantes existent :

  • L’application peut accéder directement au média protégé ou pirater la mémoire du processus.
  • Les plug-ins peuvent accéder directement au contenu ou pirater la mémoire du processus.
  • D’autres processus peuvent pirater la mémoire du processus multimédia directement ou en injectant du code.
  • Les pilotes de noyau peuvent pirater la mémoire du processus multimédia.
  • Le contenu peut être envoyé en dehors du système sur un support non protégé. (La protection des liens est conçue pour atténuer cette menace.)

Conception de l’environnement protégé

Un environnement protégé s’exécute dans un processus protégé distinct de l’application multimédia. La fonctionnalité de processus protégé de Windows Vista empêche d’autres processus d’accéder au processus protégé.

Lorsqu’un processus protégé est créé, les composants principaux du noyau identifient les composants non approuvés et les plug-ins afin que l’environnement protégé puisse refuser de les charger. Un composant approuvé est un composant qui a été correctement signé par Microsoft. Le noyau effectue également le suivi des modules qui y sont chargés, ce qui permet à l’environnement protégé d’arrêter la lecture du contenu protégé si un module non approuvé est chargé. Avant le chargement d’un composant de noyau, le noyau vérifie s’il est approuvé. Si ce n’est pas le cas, les composants approuvés déjà dans le PE refusent de traiter le contenu protégé. Pour ce faire, les composants PE effectuent régulièrement une liaison protégée par chiffrement avec le noyau. Si un composant en mode noyau non approuvé est présent, la négociation échoue et indique au PE qu’un composant non approuvé existe.

Si un composant approuvé devient compromis, après le processus d’échéance, il peut être révoqué. Microsoft fournit un mécanisme de renouvellement pour installer une version approuvée plus récente lorsqu’elle est disponible.

Chemin d’accès multimédia protégé

Le chemin d’accès multimédia protégé (PMP) est l’exécutable PE principal pour Media Foundation. Le PMP est extensible, de sorte que les mécanismes de protection de contenu tiers puissent être pris en charge.

Le PMP accepte le contenu protégé et les stratégies associées à partir de n’importe quelle source Media Foundation à l’aide de n’importe quel système de protection de contenu, y compris ceux fournis par des tiers. Il envoie du contenu à n’importe quel récepteur Media Foundation, tant que le récepteur est conforme aux stratégies spécifiées par la source. Il prend également en charge les transformations entre la source et le récepteur, y compris les transformations tierces, tant qu’elles sont approuvées.

Le PMP s’exécute dans un processus protégé isolé de l’application multimédia. L’application a uniquement la possibilité d’échanger des messages de commande et de contrôle avec le PMP, mais n’a pas accès au contenu après son passage au PMP. Le diagramme suivant illustre ce processus.

diagramme du chemin d’accès multimédia protégé

Les zones ombrées représentent des composants qui peuvent être fournis par des tiers. Tous les composants créés à l’intérieur du processus protégé doivent être signés et approuvés.

L’application crée une instance de la session multimédia à l’intérieur du processus protégé et reçoit un pointeur vers une session multimédia proxy, qui marshale les pointeurs d’interface sur la limite du processus.

La source multimédia peut être créée dans le processus d’application, comme illustré ici ou dans le processus protégé. Si la source multimédia est créée à l’intérieur du processus d’application, la source crée un proxy pour lui-même dans le processus protégé.

Tous les autres composants de pipeline, tels que les décodeurs et les récepteurs multimédias, sont créés dans le processus protégé. Si ces objets exposent des interfaces personnalisées pour les applications, ils doivent fournir un proxy/stub DCOM pour marshaler l’interface.

Pour appliquer la stratégie sur le contenu protégé au fur et à mesure qu’elle transite par le pipeline, le PMP utilise trois types de composants : les autorités d’approbation d’entrée (ITA), les autorités d’approbation de sortie (OTA) et les objets de stratégie. Ces composants fonctionnent ensemble pour accorder ou restreindre les droits d’utilisation du contenu et spécifier les protections de liaison qui doivent être utilisées lors de la lecture de contenu, comme la protection de contenu numérique à bande passante élevée (HDCP).

Autorités de confiance d’entrée

Un ITA est créé par une source multimédia approuvée et exécute plusieurs fonctions :

  • Spécifie les droits d’utilisation du contenu. Les droits peuvent inclure le droit de lire du contenu, de le transférer vers un appareil, et ainsi de suite. Il définit une liste triée des systèmes de protection de sortie approuvés et les stratégies de sortie correspondantes pour chaque système. ItA stocke ces informations dans un objet de stratégie.
  • Fournit le déchiffreur nécessaire pour déchiffrer le contenu.
  • Établit l’approbation avec le module de noyau dans l’environnement protégé pour vous assurer que l’ITA s’exécute à l’intérieur d’un environnement approuvé.

Un ITA est associé à un flux individuel contenant du contenu protégé. Un flux ne peut avoir qu’un seul ITA et une instance d’un ITA ne peut être associée qu’à un seul flux.

Autorités d’approbation de sortie

Un OTA est associé à une sortie approuvée. L’OTA expose une action que la sortie approuvée peut effectuer sur le contenu, comme la lecture ou la copie. Son rôle consiste à appliquer un ou plusieurs systèmes de protection de sortie requis par l’ITA. L’OTA interroge l’objet de stratégie fourni par ITA pour déterminer le système de protection qu’il doit appliquer.

Objets de stratégie

Un objet de stratégie encapsule les exigences de protection du contenu d’un ITA. Il est utilisé par le moteur de stratégie pour négocier la prise en charge de la protection du contenu avec une OTA. Les objets de stratégie d’otas interrogent les systèmes de protection qu’ils doivent appliquer sur chaque sortie du contenu actuel.

Création d’objets dans le PMP

Pour créer un objet dans le chemin d’accès multimédia protégé (PMP), le IMFMediaSource appelle IMFPMPHostApp ::ActivateClassById, avec l’entrée spécifiée IStream mise en forme de la manière suivante :

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 }

Vue d’ensemble de la négociation de stratégie

Il existe trois exigences fondamentales qui doivent être remplies avant que le contenu protégé puisse être traité dans le PMP. Tout d’abord, le contenu protégé doit être envoyé uniquement aux sorties approuvées. Deuxièmement, seules les actions autorisées doivent être appliquées à un flux. Troisièmement, seuls les systèmes de protection de sortie approuvés doivent être utilisés pour lire un flux. Le moteur de stratégie coordonne les itas et les otAs pour s’assurer que ces exigences sont remplies.

Le moyen le plus simple de comprendre le processus consiste à parcourir un exemple simplifié qui identifie les étapes nécessaires pour lire le contenu ASF (Advanced System Format) protégé par Windows Media Digital Rights Management (WMDRM).

Lorsqu’un utilisateur lance une application de lecteur et ouvre un fichier ASF qui a un flux audio protégé et un flux vidéo protégé, les étapes suivantes doivent être effectuées :

  1. L’application crée la source multimédia ASF et la session PMP (Protected Media Path). Media Foundation crée un processus PMP.
  2. L’application crée une topologie partielle qui contient un nœud source audio connecté au convertisseur audio et un nœud source vidéo connecté au convertisseur vidéo amélioré (EVR). Pour les renderers, l’application ne crée pas directement le renderer. Au lieu de cela, l’application crée dans le processus non protégé un objet appelé objet d’activation . Le PMP utilise l’objet d’activation pour créer les renderers dans le processus protégé. (Pour plus d’informations sur les objets d’activation, consultez objets d’activation.)
  3. L’application définit la topologie partielle sur la session PMP.
  4. La session PMP sérialise la topologie et la transmet à l’hôte PMP dans le processus protégé. L’hôte PMP envoie la topologie au moteur de stratégie.
  5. Le chargeur de topologie appelle IMFInputTrustAuthority ::GetDecrypter sur les itas et insère les déchiffreurs dans la topologie immédiatement en aval des nœuds sources correspondants.
  6. Le chargeur de topologie insère les décodeurs audio et vidéo en aval des nœuds de déchiffrement.
  7. Le moteur de stratégie analyse les nœuds insérés pour déterminer si l’interface IMFTrustedOutput est implémentée. L’EVR et le convertisseur audio implémentent tous deux IMFTrustedOutput, car ils envoient des données en dehors du PMP.
  8. Chaque ITA confirme qu’il s’exécute à l’intérieur d’un processus protégé en effectuant une négociation de chiffrement avec un module de noyau d’environnement protégé.
  9. Pour chaque flux, le moteur de stratégie négocie la stratégie en obtenant un objet de stratégie à partir de l’ITA et en le transmettant à l’OTA. L’OTA fournit une liste des systèmes de protection qu’il prend en charge, et l’objet de stratégie indique quels systèmes de protection doivent être appliqués, ainsi que les paramètres appropriés. L’OTA applique ensuite ces paramètres. S’il ne peut pas le faire, le contenu est bloqué.

Révocation et renouvellement

Un composant approuvé peut être révoqué s’il devient compromis ou s’il est découvert qu’il enfreint les contrats de licence sous lesquels il a été initialement approuvé. Un mécanisme de renouvellement existe pour installer une version plus récente et plus fiable du composant.

Les composants approuvés sont signés à l’aide d’un certificat de chiffrement. Microsoft publie une liste de révocation globale (GRL) qui identifie les composants qui ont été révoqués. Le GRL est signé numériquement pour garantir son authenticité. Les propriétaires de contenu peuvent s’assurer, par le biais du mécanisme de stratégie, que la version actuelle du GRL est présente sur l’ordinateur de l’utilisateur.

Lorsque le contenu vidéo Premium est affiché, les images déchiffrées et non compressées se déplacent sur un connecteur physique vers l’appareil d’affichage. Les fournisseurs de contenu peuvent exiger que les images vidéo soient protégées à ce stade, car elles se déplacent sur le connecteur physique. Il existe différents mécanismes de protection à cet effet, notamment High-Bandwidth Protection du contenu numérique (HDCP) et DisplayPort Content Protection (DPCP). La vidéo OTA applique ces protections à l’aide du Output Protection Manager (OPM). Le Gestionnaire de protection de sortie envoie des commandes au pilote graphique, et le pilote graphique applique les mécanismes de protection des liens requis par la stratégie.

un diagramme qui montre la relation entre l’ota vidéo et l’opm.

About Media Foundation

l’architecture Media Foundation

GPU-Based de protection du contenu

Output Protection Manager

de session multimédia PMP