Pfad für geschützte Medien

In diesem Thema werden drei miteinander verbundene Themen behandelt: geschützte Umgebung, Gateway zur Medieninteroperabilität und Widerruf und Erneuerung.

  • Eine geschützte Umgebung (Pe) ist eine Reihe von Technologien, die es geschützten Inhalten ermöglichen, geschützt von und über Windows Vista zu fließen. Alle Komponenten in einer geschützten Umgebung sind vertrauenswürdig, und der Prozess ist vor Manipulationen geschützt.
  • Der Pfad für geschützte Medien (Protected Media Path, PMP) ist eine ausführbare Datei, die in einer geschützten Umgebung ausgeführt wird.
  • Wenn eine vertrauenswürdige Komponente in der PE kompromittiert wird, wird sie nach dem fälligen Prozess widerrufen. Microsoft bietet jedoch einen Verlängerungsmechanismus, um eine neuere vertrauenswürdige Version der Komponente zu installieren, wenn sie verfügbar wird.

Informationen zu Komponenten für geschützte Medien mit Codesignatur finden Sie im Whitepaper Code Signing for Protected Media Components in Windows Vista.

Dieses Thema enthält folgende Abschnitte:

Geschützte Umgebung

Der Inhaltsschutz umfasst mehrere Technologien, von denen jede versucht, sicherzustellen, dass Inhalte nicht in einer Weise verwendet werden können, die mit der Absicht des Inhaltsbesitzers oder -anbieters unvereinbar ist. Zu diesen Technologien gehören Kopierschutz, Linkschutz, bedingter Zugriff und Digitale Rechteverwaltung (DRM). Die Grundlage jeder ist Vertrauen: Der Zugriff auf den Inhalt wird nur Softwarekomponenten gewährt, die den nutzungsbedingungen entsprechen, die diesem Inhalt zugewiesen sind.

Um Bedrohungen für geschützte Inhalte zu minimieren, ermöglichen Windows Vista und Media Foundation Software die Ausführung vertrauenswürdigen Codes in einer geschützten Umgebung. Ein PE ist eine Reihe von Komponenten, Richtlinien und Tools, die entwickelt wurden, um den Schutz vor Inhaltspiraterie zu erhöhen.

Bevor Sie die PE genauer untersuchen, ist es wichtig, die Bedrohungen zu verstehen, die er minimieren soll. Angenommen, Sie führen eine Medienanwendung in einem Benutzermodusprozess aus. Die Anwendung ist mit den verschiedenen DLLs (Dynamic Link Libraries) verknüpft, die Medien-Plug-Ins wie Decoder enthalten. Andere Prozesse werden ebenfalls im Benutzermodus ausgeführt, und verschiedene Treiber werden in den Kernel geladen. Wenn kein Vertrauensmechanismus vorhanden ist, bestehen die folgenden Bedrohungen:

  • Die Anwendung kann direkt auf geschützte Medien zugreifen oder den Prozessspeicher hacken.
  • Plug-Ins können direkt auf den Inhalt zugreifen oder den Prozessspeicher hacken.
  • Andere Prozesse können den Medienprozessspeicher entweder direkt oder durch Einfügen von Code hacken.
  • Kerneltreiber können den Medienprozessspeicher hacken.
  • Inhalte können außerhalb des Systems über ein ungeschütztes Medium gesendet werden. (Der Linkschutz ist darauf ausgelegt, diese Bedrohung zu minimieren.)

Entwurf der geschützten Umgebung

Eine geschützte Umgebung wird in einem separaten geschützten Prozess von der Medienanwendung ausgeführt. Das Feature "Geschützter Prozess" von Windows Vista verhindert, dass andere Prozesse auf den geschützten Prozess zugreifen.

Wenn ein geschützter Prozess erstellt wird, identifizieren kernige Kernelkomponenten nicht vertrauenswürdige Komponenten und Plug-Ins, sodass die geschützte Umgebung das Laden ablehnen kann. Eine vertrauenswürdige Komponente ist eine Komponente, die von Microsoft entsprechend signiert wurde. Der Kernel verfolgt auch Module nach, die in ihn geladen werden, sodass die geschützte Umgebung die Wiedergabe geschützter Inhalte beenden kann, wenn ein nicht vertrauenswürdiges Modul geladen wird. Bevor eine Kernelkomponente geladen wird, überprüft der Kernel, ob sie vertrauenswürdig ist. Andernfalls wird die Verarbeitung geschützter Inhalte durch vertrauenswürdige Komponenten, die bereits im PE enthalten sind, abgelehnt. Um dies zu ermöglichen, führen PE-Komponenten in regelmäßigen Abständen einen kryptografisch geschützten Handshake mit dem Kernel aus. Wenn eine nicht vertrauenswürdige Kernelmoduskomponente vorhanden ist, schlägt der Handshake fehl und gibt dem PE an, dass eine nicht vertrauenswürdige Komponente vorhanden ist.

Wenn eine vertrauenswürdige Komponente kompromittiert wird, kann sie nach dem fälligen Prozess widerrufen werden. Microsoft bietet einen Erneuerungsmechanismus, um eine neuere vertrauenswürdige Version zu installieren, sofern verfügbar.

Pfad für geschützte Medien

Der Geschützte Medienpfad (Protected Media Path, PMP) ist die primäre pe-ausführbare Datei für Media Foundation. Der PMP ist erweiterbar, sodass Inhaltsschutzmechanismen von Drittanbietern unterstützt werden können.

Der PMP akzeptiert geschützte Inhalte und zugehörige Richtlinien von jeder Media Foundation-Quelle unter Verwendung eines Inhaltsschutzsystems, einschließlich der von Drittanbietern bereitgestellten. Es sendet Inhalte an jede Media Foundation-Senke, solange die Senke den von der Quelle angegebenen Richtlinien entspricht. Es unterstützt auch Transformationen zwischen der Quelle und der Senke, einschließlich Transformationen von Drittanbietern, solange sie vertrauenswürdig sind.

Der PMP wird in einem geschützten Prozess ausgeführt, der von der Medienanwendung isoliert ist. Die Anwendung kann nur Befehls- und Steuernachrichten mit dem PMP austauschen, hat jedoch keinen Zugriff auf Inhalte, nachdem sie an den PMP übergeben wurden. Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Diagramm des Pfads für geschützte Medien

Schattierte Felder stellen Komponenten dar, die möglicherweise von Drittanbietern bereitgestellt werden. Alle Komponenten, die innerhalb des geschützten Prozesses erstellt werden, müssen signiert und vertrauenswürdig sein.

Die Anwendung erstellt eine instance der Mediensitzung innerhalb des geschützten Prozesses und empfängt einen Zeiger auf eine Proxymediensitzung, die Schnittstellenzeiger über die Prozessgrenze hinweg marshallt.

Die Medienquelle kann entweder innerhalb des Anwendungsprozesses erstellt werden, wie hier gezeigt, oder innerhalb des geschützten Prozesses. Wenn die Medienquelle innerhalb des Anwendungsprozesses erstellt wird, erstellt die Quelle einen Proxy für sich selbst im geschützten Prozess.

Alle anderen Pipelinekomponenten, z. B. Decoder und Mediensenken, werden im geschützten Prozess erstellt. Wenn diese Objekte benutzerdefinierte Schnittstellen für Anwendungen verfügbar machen, müssen sie einen DCOM-Proxy/Stub bereitstellen, um die Schnittstelle zu marshallen.

Um eine Richtlinie für geschützte Inhalte zu erzwingen, während sie durch die Pipeline fließen, verwendet der PMP drei Arten von Komponenten: Eingabevertrauensstellen (Input Trust Authorities, ITAs), Ausgabevertrauensstellen (Output Trust Authorities, OTAs) und Richtlinienobjekte. Diese Komponenten arbeiten zusammen, um Rechte zur Verwendung von Inhalten zu gewähren oder einzuschränken und die Linkschutzmechanismen anzugeben, die beim Wiedergeben von Inhalten verwendet werden müssen, z. B. HDCP (High-Bandwidth Digital Content Protection).

Eingabevertrauensstellen

Ein ITA wird von einer vertrauenswürdigen Medienquelle erstellt und führt mehrere Funktionen aus:

  • Gibt Die Rechte zur Verwendung von Inhalten an. Rechte können das Recht umfassen, Inhalte abzuspielen, auf ein Gerät zu übertragen usw. Sie definiert eine geordnete Liste der genehmigten Ausgabeschutzsysteme und die entsprechenden Ausgaberichtlinien für jedes System. Der ITA speichert diese Informationen in einem Richtlinienobjekt.
  • Stellt den Entschlüsselungsschalter bereit, der zum Entschlüsseln des Inhalts erforderlich ist.
  • Richtet die Vertrauensstellung mit dem Kernelmodul in der geschützten Umgebung ein, um sicherzustellen, dass das ITA in einer vertrauenswürdigen Umgebung ausgeführt wird.

Ein ITA ist einem einzelnen Stream zugeordnet, der geschützte Inhalte enthält. Ein Stream kann nur über ein ITA verfügen, und eine instance eines ITA kann nur einem Datenstrom zugeordnet werden.

Ausgabevertrauensstellen

Eine OTA ist einer vertrauenswürdigen Ausgabe zugeordnet. Die OTA macht eine Aktion verfügbar, die die vertrauenswürdige Ausgabe für den Inhalt ausführen kann, z. B. Wiedergabe oder Kopieren. Seine Rolle besteht darin, ein oder mehrere Ausgabeschutzsysteme zu erzwingen, die vom ITA benötigt werden. Die OTA fragt das vom ITA bereitgestellte Richtlinienobjekt ab, um zu bestimmen, welches Schutzsystem erzwingen muss.

Richtlinienobjekte

Ein Richtlinienobjekt kapselt die Inhaltsschutzanforderungen eines ITA. Es wird von der Richtlinien-Engine verwendet, um die Unterstützung für den Inhaltsschutz mit einer OTA auszuhandeln. OTAs abfragen Richtlinienobjekte, um zu bestimmen, welche Schutzsysteme sie für jede Ausgabe des aktuellen Inhalts erzwingen müssen.

Erstellen von Objekten im PMP

Um ein Objekt im Geschützten Medienpfad (PMP) zu erstellen, ruft die IMFMediaSourceIMFPMPHostApp::ActivateClassById auf, wobei der angegebene Eingabe-IStream wie folgt formatiert ist:

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 }

Übersicht über die Richtlinienverhandlung

Es gibt drei grundlegende Anforderungen, die erfüllt sein müssen, bevor geschützte Inhalte im PMP verarbeitet werden können. Erstens dürfen geschützte Inhalte nur an vertrauenswürdige Ausgaben gesendet werden. Zweitens müssen nur zulässige Aktionen auf einen Stream angewendet werden. Drittens müssen nur genehmigte Ausgabeschutzsysteme zum Wiedergeben eines Datenstroms verwendet werden. Die Richtlinien-Engine koordiniert zwischen ITAs und OTAs, um sicherzustellen, dass diese Anforderungen erfüllt werden.

Die einfachste Möglichkeit, den Prozess zu verstehen, besteht darin, ein vereinfachtes Beispiel zu durchlaufen, das die schritte identifiziert, die zum Wiedergeben von ASF-Inhalten (Advanced System Format) erforderlich sind, die durch die Windows Media Digital Rights Management (WMDRM) geschützt sind.

Wenn ein Benutzer eine Playeranwendung startet und eine ASF-Datei mit einem geschützten Audiodatenstrom und einem geschützten Videostream öffnet, müssen die folgenden Schritte ausgeführt werden:

  1. Die Anwendung erstellt die ASF-Medienquelle und die PMP-Sitzung (Protected Media Path). Media Foundation erstellt einen PMP-Prozess.
  2. Die Anwendung erstellt eine partielle Topologie, die einen mit dem Audiorenderer verbundenen Audioquellenknoten und einen Mit dem erweiterten Videorenderer (EVR) verbundenen Videoquellknoten enthält. Für die Renderer erstellt die Anwendung den Renderer nicht direkt. Stattdessen erstellt die Anwendung im ungeschützten Prozess ein Objekt, das als Aktivierungsobjekt bezeichnet wird. Der PMP verwendet das Aktivierungsobjekt, um die Renderer im geschützten Prozess zu erstellen. (Weitere Informationen zu Aktivierungsobjekten finden Sie unter Aktivierungsobjekte.)
  3. Die Anwendung legt die partielle Topologie für die PMP-Sitzung fest.
  4. Die PMP-Sitzung serialisiert die Topologie und übergibt sie im geschützten Prozess an den PMP-Host. Der PMP-Host sendet die Topologie an die Richtlinien-Engine.
  5. Das Topologieladeprogramm ruft IMFInputTrustAuthority::GetDecrypter auf den ITAs auf und fügt die Entschlüsseler unmittelbar nach den entsprechenden Quellknoten in die Topologie ein.
  6. Das Topologieladeprogramm fügt die Audio- und Videodecoder nach den Entschlüsselungsknoten ein.
  7. Die Richtlinien-Engine überprüft die eingefügten Knoten, um zu bestimmen, ob die IMFTrustedOutput-Schnittstelle implementiert wird. Der EVR und der Audiorenderer implementieren beide IMFTrustedOutput, da sie Daten außerhalb des PMP senden.
  8. Jede ITA bestätigt, dass sie in einem geschützten Prozess ausgeführt wird, indem ein kryptografischer Handshake mit einem geschützten Umgebungskernkernmodul ausgeführt wird.
  9. Für jeden Stream handelt die Richtlinien-Engine eine Richtlinie aus, indem ein Richtlinienobjekt vom ITA abgerufen und an die OTA übergeben wird. Die OTA stellt eine Liste der unterstützten Schutzsysteme bereit, und das Richtlinienobjekt gibt an, welche Schutzsysteme angewendet werden müssen, zusammen mit den richtigen Einstellungen. Die OTA wendet dann diese Einstellungen an. Wenn dies nicht der Vorgang ist, wird der Inhalt blockiert.

Widerruf und Verlängerung

Eine vertrauenswürdige Komponente kann widerrufen werden, wenn sie kompromittiert wird oder festgestellt wird, dass sie gegen die Lizenzvereinbarungen verstößt, unter denen sie ursprünglich vertrauenswürdig war. Es ist ein Erneuerungsmechanismus vorhanden, um eine neuere, vertrauenswürdigere Version der Komponente zu installieren.

Vertrauenswürdige Komponenten werden mit einem kryptografischen Zertifikat signiert. Microsoft veröffentlicht eine globale Sperrliste (Global Revocation List, GRL), die gesperrte Komponenten identifiziert. Die GRL ist digital signiert, um ihre Authentizität zu gewährleisten. Inhaltsbesitzer können über den Richtlinienmechanismus sicherstellen, dass die aktuelle Version der GRL auf dem Computer des Benutzers vorhanden ist.

Wenn Premium-Videoinhalte angezeigt werden, werden die entschlüsselten, nicht komprimierten Frames über einen physischen Connector zum Anzeigegerät übertragen. Inhaltsanbieter können verlangen, dass die Videoframes zu diesem Zeitpunkt geschützt werden, da sie über den physischen Connector übertragen werden. Hierfür gibt es verschiedene Schutzmechanismen, darunter High-Bandwidth Digital Content Protection (HDCP) und DisplayPort Content Protection (DPCP). Die Video-OTA erzwingt diese Schutzmaßnahmen mithilfe des Ausgabeschutz-Managers (OPM). Der Ausgabeschutz-Manager sendet Befehle an den Grafiktreiber, und der Grafiktreiber erzwingt, welche Linkschutzmechanismen für die Richtlinie erforderlich sind.

Ein Diagramm, das die Beziehung zwischen video ota und opm zeigt.

Info über Media Foundation

Media Foundation-Architektur

GPU-basierter Inhaltsschutz

Ausgabeschutz-Manager

PMP-Mediensitzung