Pfad zu geschützten Medien

In diesem Thema werden drei miteinander verknüpfte Themen behandelt: geschützte Umgebung, Medieninteroperabilitätsgateway und Sperrung und Verlängerung.

  • Eine geschützte Umgebung (PROTECTED Environment, PE) ist eine Reihe von Technologien, mit denen geschützte Inhalte geschützt von und durch Windows Vista übertragen werden können. 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 im PE kompromittiert wird, wird sie nach einem fälligen Prozess widerrufen. Microsoft bietet jedoch einen Erneuerungsmechanismus, um eine neuere vertrauenswürdige Version der Komponente zu installieren, wenn eine verfügbar wird.

Informationen zum Signieren geschützter Medienkomponenten finden Sie im Whitepaper Codesignierung für Komponenten geschützter Medien 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 auf eine Weise verwendet werden können, die mit der Absicht des Inhaltsbesitzers oder -anbieters inkonsistent ist. Zu diesen Technologien gehören Kopierschutz, Linkschutz, bedingter Zugriff und Verwaltung digitaler Rechte (Digital Rights Management, DRM). Die Grundlage jeder Ist-Vertrauensstellung: 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 von vertrauenswürdigen Code in einer geschützten Umgebung. Ein PE besteht aus einer Reihe von Komponenten, Richtlinien und Tools, die entwickelt wurden, um den Schutz vor Inhaltsfälschungen zu erhöhen.

Bevor Sie pe genauer untersuchen, ist es wichtig, die Bedrohungen zu verstehen, die es 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 enthalten, z. B. Decoder. Andere Prozesse werden auch im Benutzermodus ausgeführt, und verschiedene Treiber werden im 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 Speicher des Medienprozesses hacken.
  • Inhalte können außerhalb des Systems über ein ungeschütztes Medium gesendet werden. (Linkschutz ist darauf ausgelegt, diese Bedrohung zu mindern.)

Entwurf der geschützten Umgebung

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

Wenn ein geschützter Prozess erstellt wird, identifizieren Kernkernelkomponenten nicht vertrauenswürdige Komponenten und Plug-Ins, sodass die geschützte Umgebung sie nicht laden 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 beendet, wenn ein nicht vertrauenswürdiges Modul geladen wird. Bevor eine Kernelkomponente geladen wird, überprüft der Kernel, ob sie vertrauenswürdig ist. Wenn nicht, verweigern vertrauenswürdige Komponenten, die bereits im PE enthalten sind, die Verarbeitung geschützter Inhalte. Um dies zu ermöglichen, führen PE-Komponenten regelmäßig 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 einem fälligen Prozess widerrufen werden. Microsoft bietet einen Erneuerungsmechanismus, um eine neuere vertrauenswürdige Version zu installieren, sofern verfügbar.

Pfad zu geschützten Medien

Der Pfad für geschützte Medien (Protected Media Path, PMP) ist die primäre ausführbare PE-Datei für Media Foundation. Das 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 mithilfe eines Inhaltsschutzsystems, einschließlich der von Drittanbietern bereitgestellten Richtlinien. Er sendet Inhalte an alle Media Foundation Senke, solange die Senke den von der Quelle angegebenen Richtlinien entspricht. Sie 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 Steuerungsmeldungen mit dem PMP austauschen, hat aber keinen Zugriff auf Inhalte, nachdem sie an den PMP übergeben wurde. 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 im geschützten Prozess erstellt werden, müssen signiert und als vertrauenswürdig eingestuft werden.

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

Die Medienquelle kann entweder innerhalb des Anwendungsprozesses, wie hier gezeigt, oder innerhalb des geschützten Prozesses erstellt werden. 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 Richtlinien für geschützte Inhalte zu erzwingen, während sie die Pipeline durchlaufen, verwendet der PMP drei Arten von Komponenten: Eingabevertrauensstellungsstellen (Input Trust Authorities, ITAs), Ausgabevertrauensstellungsstellen (Output Trust Authorities, OTAs) und Richtlinienobjekte. Diese Komponenten arbeiten zusammen, um Rechte zur Verwendung von Inhalten zu gewähren oder einzuschränken und die Linkschutzfunktionen anzugeben, die beim Wiedergeben von Inhalten verwendet werden müssen, z. B. High-bandwidth Digital Content Protection (HDCP).

Eingabe-Vertrauensstellungsstellen

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

  • Gibt Rechte zur Verwendung von Inhalten an. Rechte können das Recht zum Wiedergeben von Inhalten, zum Übertragen auf ein Gerät usw. umfassen. 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 die Entschlüsselung bereit, die zum Entschlüsseln des Inhalts erforderlich ist.
  • Richtet eine Vertrauensstellung mit dem Kernelmodul in der geschützten Umgebung ein, um sicherzustellen, dass der 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 einen ITA haben, und eine Instanz eines ITA kann nur einem Stream zugeordnet werden.

Ausgabevertrauensstellungsstellen

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 Kopiervorgang. Seine Rolle besteht darin, ein oder mehrere Ausgabeschutzsysteme zu erzwingen, die vom ITA benötigt werden. Die OTA fragt das von ITA bereitgestellte Richtlinienobjekt ab, um zu bestimmen, welches Schutzsystem erzwungen werden muss.

Richtlinienobjekte

Ein Richtlinienobjekt kapselt die Anforderungen an den Inhaltsschutz eines ITA. Sie wird von der Richtlinien-Engine verwendet, um die Unterstützung des Inhaltsschutzes mit einem OTA auszuhandeln. OTAs fragen Richtlinienobjekte ab, um zu bestimmen, welche Schutzrichtlinien sie für jede Ausgabe des aktuellen Inhalts erzwingen müssen.

Erstellen von Objekten im PMP

Zum Erstellen eines Objekts im Pfad zu geschützten Medien (Protected Media Path, PMP) ruft DASMEDIASource-Objekt IMFPMPHostApp::ActivateClassByIdauf, wobei die 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 Richtlinienaushandlung

Es gibt drei grundlegende Anforderungen, die erfüllt sein müssen, bevor geschützte Inhalte im PMP verarbeitet werden können. Zunächst darf geschützter Inhalt nur an vertrauenswürdige Ausgaben gesendet werden. Zweitens müssen nur zulässige Aktionen auf einen Stream angewendet werden. Drittens dürfen nur genehmigte Ausgabeschutzsysteme verwendet werden, um einen Stream wiederzugeben. 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, in dem die Schritte beschrieben werden, die zum Wiedergeben von ASF-Inhalten (Advanced System Format) erforderlich sind, die durch Windows Media Digital Rights Management (WMDRM) geschützt sind.

Wenn ein Benutzer eine Playeranwendung startet und eine ASF-Datei mit einem geschützten Audiostream 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 Teiltopologie, die einen mit dem Audiorenderer verbundenen Audioquellknoten und einen mit dem erweiterten Videorenderer (EVR) verbundenen Knoten für die Videoquelle 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 in der PMP-Sitzung fest.
  4. Die PMP-Sitzung serialisiert die Topologie und übergibt sie an den PMP-Host im geschützten Prozess. Der PMP-Host sendet die Topologie an die Richtlinien-Engine.
  5. Das Topologieladeprogramm ruft AUFSCHLÜSSELNInputTrustAuthority::GetDecrypter für die 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 scannt die eingefügten Knoten, um zu ermitteln, ob eine der Knoten die SCHNITTSTELLE VONTRUSTTRUSTEDOUTPUT implementiert. Sowohl der EVR als auch der Audiorenderer implementieren GLEICHZEITIG DIE Vertrauenswürdigkeitsausgabe, da sie Daten außerhalb des PMP senden.
  8. Jeder ITA bestätigt, dass er innerhalb eines geschützten Prozesses ausgeführt wird, indem ein kryptografischer Handshake mit einem Kernelmodul für geschützte Umgebungen ausgeführt wird.
  9. Für jeden Stream handelt die Richtlinien-Engine die Richtlinie aus, indem sie ein Richtlinienobjekt aus dem ITA erhält und an die OTA übergibt. Die OTA stellt eine Liste der unterstützten Schutzsysteme bereit, und das Richtlinienobjekt gibt an, welche Schutzsysteme zusammen mit den richtigen Einstellungen angewendet werden müssen. Die OTA wendet dann diese Einstellungen an. Wenn dies nicht dere ist, wird der Inhalt blockiert.

Widerruf und Verlängerung

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

Vertrauenswürdige Komponenten werden mithilfe eines kryptografischen Zertifikats signiert. Microsoft veröffentlicht eine globale Sperrliste (GRL), die gesperrte Komponenten identifiziert. Die GRL ist digital signiert, um ihre Authentizität sicherzustellen. 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, unkomprimierten Frames über einen physischen Connector zum Anzeigegerät übertragen. Inhaltsanbieter erfordern möglicherweise, dass die Videoframes an diesem Punkt geschützt werden, da sie über den physischen Connector gelangen. Zu diesem Zweck gibt es verschiedene Schutzmechanismen, einschließlich High-Bandwidth Digital Content Protection (HDCP) und DisplayPort Content Protection (DPCP). Das Video OTA erzwingt diese Schutzmaßnahmen mit dem Ausgabeschutz-Manager (Output Protection Manager, 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-basierte Content Protection

Ausgabeschutz-Manager

PMP-Mediensitzung