Chemin du média protégé

Cette rubrique traite de trois sujets interdépendants : environnement protégé, passerelle d’interopérabilité multimédia et révocation et renouvellement.

  • Un environnement protégé (PE) est un ensemble de technologies qui permet au contenu protégé de circuler depuis et via Windows Vista de manière protégée. Tous les composants d’un environnement protégé sont approuvés et le processus est protégé contre toute falsification.
  • Le chemin d’accès multimédia protégé (PMP) est un exécutable qui s’exécute dans un environnement protégé.
  • Si un composant approuvé dans le PE est compromis, après un processus en règle, il est révoqué. Toutefois, Microsoft fournit un mécanisme de renouvellement pour installer une version approuvée plus récente du composant lorsqu’une version devient disponible.

Pour plus d’informations sur les composants multimédias protégés de signature de code, 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, dont chacune tente de garantir 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 contre la copie, la protection des liens, l’accès conditionnel et la gestion des droits numériques (DRM). La base de chacun est la confiance : 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 au code approuvé de s’exécuter 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 le PE de plus près, il est important de comprendre les menaces qu’il est conçu pour réduire. 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 noyaux principaux identifient les composants et plug-ins non approuvés afin que l’environnement protégé puisse refuser de les charger. Un composant approuvé est un composant qui a été signé de manière appropriée par Microsoft. Le noyau effectue également le suivi des modules qui s’y chargent, 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à présents dans le pe refusent de traiter le contenu protégé. Pour cela, 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’il existe un composant non approuvé.

Si un composant approuvé est compromis, après un processus en temps opportun, 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 du média protégé

Le chemin du mé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 du contenu tiers peuvent être pris en charge.

Le PMP accepte le contenu protégé et les stratégies associées provenant 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 du mé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 au-delà de la limite du processus.

La source multimédia peut être créée au sein du processus d’application, comme illustré ici, ou à l’intérieur du 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 elle-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 une stratégie sur le contenu protégé à mesure qu’il 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 pour spécifier les protections de lien qui doivent être utilisées lors de la lecture du contenu, telles que la protection de contenu numérique à bande passante élevée (HDCP).

Autorités d’approbation 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, etc. Il définit une liste ordonnée des systèmes de protection de sortie approuvés et les stratégies de sortie correspondantes pour chaque système. L’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 garantir 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 un instance d’un ita ne peut être associé 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 quel système de protection 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 un OTA. Les OTA interrogent les objets de stratégie pour déterminer les systèmes de protection qu’ils doivent appliquer à 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), IMFMediaSource appelle IMFPMPHostApp::ActivateClassById, avec l’entrée spécifiée au format IStream 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

Trois exigences fondamentales doivent être remplies pour 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 se coordonne entre les OTA et les OTA 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 avec 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 de source audio connecté au convertisseur audio et un nœud source vidéo connecté au convertisseur vidéo amélioré (EVR). Pour les convertisseurs, 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 ITA 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 du déchiffreur.
  7. Le moteur de stratégie analyse les nœuds insérés pour déterminer s’ils implémentent l’interface IMFTrustedOutput . 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 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 est compromis ou s’il est découvert qu’il enfreint les contrats de licence dans le cadre desquels 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 du 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. Différents mécanismes de protection existent à cet effet, notamment High-Bandwidth protection du contenu numérique (HDCP) et la protection du contenu DisplayPort (DPCP). L’OTA vidéo applique ces protections à l’aide du Gestionnaire de protection de sortie (OPM). Le gestionnaire de protection de sortie envoie des commandes au pilote graphique, et le pilote graphique applique tous les mécanismes de protection des liens requis par la stratégie.

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

À propos de Media Foundation

Architecture Media Foundation

Protection du contenu basée sur GPU

Gestionnaire de protection de sortie

Session multimédia PMP