Geschützter Medienpfad
In diesem Thema werden drei themenübergreifende Themen behandelt: geschützte Umgebung, Medieninteroperabilitätsgateway und Sperrung und Erneuerung.
- Eine geschützte Umgebung (PE) ist eine Reihe von Technologien, mit denen geschützte Inhalte von und über Windows Vista in geschützter Weise fließen können. Alle Komponenten in einer geschützten Umgebung sind vertrauenswürdig, und der Prozess ist vor Manipulationen geschützt.
- Der geschützte Medienpfad (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 eine verfügbar ist.
Informationen zur Codesignierung geschützter Medienkomponenten finden Sie im Whitepaper Codesignatur für geschützte Medienkomponenten in Windows Vista.
Dieses Thema enthält die folgenden Abschnitte:
- geschützte Umgebung
- Entwurf der geschützten Umgebung
- Geschützter Medienpfad
- Übersicht über richtlinienverhandlung
- Widerruf und Verlängerung
- Ausgabelinkschutz
- Verwandte Themen
Geschützte Umgebung
Der Inhaltsschutz umfasst mehrere Technologien, von denen jeder versucht, sicherzustellen, dass Inhalte nicht in einer 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 Vertrauen: Der Zugriff auf die Inhalte wird nur softwarekomponenten gewährt, die den Nutzungsbedingungen entsprechen, die diesem Inhalt zugewiesen sind.
Um Bedrohungen vor geschützten Inhalten zu minimieren, ermöglichen Windows Vista und Media Foundation Software die Ausführung vertrauenswürdiger Code 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 das 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, gibt es 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 soll gegen diese Bedrohung abgemildert werden.)
Entwurf der geschützten Umgebung
Eine geschützte Umgebung wird in einem separaten geschützten Prozess von der Medienanwendung ausgeführt. Das Feature für geschützte Prozesse von Windows Vista verhindert, dass andere Prozesse auf den geschützten Prozess zugreifen.
Wenn ein geschützter Prozess erstellt wird, identifizieren Kernkernkomponenten nicht vertrauenswürdige Komponenten und Plug-Ins, damit die geschützte Umgebung sie nicht laden kann. Eine vertrauenswürdige Komponente ist eine Komponente, die von Microsoft ordnungsgemäß signiert wurde. Der Kernel verfolgt auch Module, die geladen werden, und ermöglicht es der geschützten Umgebung, die Wiedergabe geschützter Inhalte zu beenden, wenn ein nicht vertrauenswürdiges Modul geladen wird. Bevor eine Kernelkomponente geladen wird, überprüft der Kernel, ob sie vertrauenswürdig ist. Ist dies nicht der Grund, verweigern vertrauenswürdige Komponenten, die bereits im PE enthalten sind, geschützte Inhalte zu verarbeiten. 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 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 Verlängerungsmechanismus zum Installieren einer neueren vertrauenswürdigen Version, wenn verfügbar.
Geschützter Medienpfad
Der geschützte Medienpfad (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 mithilfe eines beliebigen Inhaltsschutzsystems, einschließlich der von Dritten bereitgestellten. Er sendet Inhalte an jede Media Foundation-Spüle, solange die Spüle den von der Quelle angegebenen Richtlinien entspricht. Es unterstützt auch Transformationen zwischen der Quelle und der Spüle, 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 hat nur die Möglichkeit, Befehls- und Steuerungsnachrichten mit dem PMP auszutauschen, hat jedoch keinen Zugriff auf Inhalte, nachdem sie an den PMP übergeben wurde. Das folgende Diagramm veranschaulicht diesen Prozess.
Schattierte Felder stellen Komponenten dar, die von Drittanbietern bereitgestellt werden können. Alle im geschützten Prozess erstellten Komponenten müssen signiert und vertrauenswürdig sein.
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 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 Richtlinien für geschützte Inhalte zu erzwingen, während sie über die Pipeline fließt, verwendet der PMP drei Arten von Komponenten: Eingabevertrauensstellen (INPUT Trust Authorities, ITAs), Ausgabevertrauensstellen (OUTPUT Trust Authorities, OTAs) und Richtlinienobjekte. Diese Komponenten arbeiten zusammen, um Inhalte zu gewähren oder einzuschränken und die Verknüpfungsschutzfunktionen 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 für die Verwendung von Inhalten an. Rechte können das Recht auf Wiedergabe von Inhalten, die Übertragung auf ein Gerät usw. umfassen. Es definiert eine sortierte Liste der genehmigten Ausgabeschutzsysteme und die entsprechenden Ausgaberichtlinien für jedes System. Die ITA speichert diese Informationen in einem Richtlinienobjekt.
- Stellt den Entschlüsselungsmodul bereit, der zum Entschlüsseln des Inhalts benötigt wird.
- Stellt eine Vertrauensstellung mit dem Kernelmodul in der geschützten Umgebung her, um sicherzustellen, dass die ITA in einer vertrauenswürdigen Umgebung ausgeführt wird.
Ein ITA ist einem einzelnen Datenstrom zugeordnet, der geschützte Inhalte enthält. Ein Datenstrom kann nur einen ITA aufweisen, und eine Instanz eines ITA kann nur einem Datenstrom zugeordnet werden.
Ausgabevertrauensstellen
Ein OTA ist einer vertrauenswürdigen Ausgabe zugeordnet. Das 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 von der ITA benötigt werden. Die OTA fragt das von ITA bereitgestellte Richtlinienobjekt ab, um zu bestimmen, welches Schutzsystem es erzwingen muss.
Richtlinienobjekte
Ein Richtlinienobjekt kapselt die Inhaltsschutzanforderungen eines ITA. Es wird vom Richtlinienmodul verwendet, um die Unterstützung des Inhaltsschutzes mit einem OTA auszuhandeln. OTAs-Abfragerichtlinienobjekte, um zu bestimmen, welche Schutzsysteme sie für jede Ausgabe des aktuellen Inhalts erzwingen müssen.
Erstellen von Objekten im PMP
Zum Erstellen eines Objekts im geschützten Medienpfad (PMP) ruft die IMFMediaSourceIMFPMPHostApp::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 Richtlinienverhandlungen
Es gibt drei grundlegende Anforderungen, die erfüllt werden müssen, bevor geschützte Inhalte im PMP verarbeitet werden können. Zuerst müssen geschützte Inhalte nur an vertrauenswürdige Ausgaben gesendet werden. Zweitens müssen nur zulässige Aktionen auf einen Datenstrom angewendet werden. Drittens müssen nur genehmigte Ausgabeschutzsysteme verwendet werden, um einen Datenstrom wiederzugeben. Das Richtlinienmodul koordiniert zwischen ITAs und OTAs, um sicherzustellen, dass diese Anforderungen erfüllt sind.
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 Verwaltung digitaler Rechte (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 Videodatenstrom öffnet, müssen die folgenden Schritte ausgeführt werden:
- Die Anwendung erstellt die ASF-Medienquelle und die PMP-Sitzung (Protected Media Path). Media Foundation erstellt einen PMP-Prozess.
- Die Anwendung erstellt eine partielle Topologie, die einen mit dem Audiorenderer verbundenen Audioquellknoten 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 nicht geschützten Prozess ein Objekt, das als Aktivierungsobjektbezeichnet wird. Der PMP verwendet das Aktivierungsobjekt, um die Renderer im geschützten Prozess zu erstellen. (Weitere Informationen zu Aktivierungsobjekten finden Sie unter Aktivierungsobjekte.)
- Die Anwendung legt die partielle Topologie für die PMP-Sitzung fest.
- Die PMP-Sitzung serialisiert die Topologie und übergibt sie im geschützten Prozess an den PMP-Host. Der PMP-Host sendet die Topologie an das Richtlinienmodul.
- Das Topologieladeprogramm ruft IMFInputTrustAuthority::GetDecrypter für die ITAs auf und fügt die Entschlüsseler unmittelbar nach der Topologie der entsprechenden Quellknoten ein.
- Das Topologieladeprogramm fügt die Audio- und Videodecoder nach den Entschlüsselungsknoten ein.
- Das Richtlinienmodul ü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.
- Jedes ITA bestätigt, dass er in einem geschützten Prozess ausgeführt wird, indem ein kryptografischer Handshake mit einem geschützten Umgebungskernmodul ausgeführt wird.
- Für jeden Datenstrom handelt das Richtlinienmodul eine Richtlinie aus, indem ein Richtlinienobjekt aus der ITA abgerufen und an die OTA übergeben wird. Das OTA stellt eine Liste der von ihr 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 möglich ist, wird der Inhalt blockiert.
Widerruf und Verlängerung
Eine vertrauenswürdige Komponente kann widerrufen werden, wenn sie kompromittiert wird oder entdeckt wird, dass sie gegen die Lizenzverträge 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 (GRL), die Komponenten identifiziert, die widerrufen wurden. 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.
Ausgabelinkschutz
Wenn Premium-Videoinhalte angezeigt werden, werden die entschlüsselten, nicht komprimierten Frames über einen physischen Verbinder auf das Anzeigegerät übertragen. Inhaltsanbieter erfordern möglicherweise, dass die Videoframes an diesem Punkt geschützt werden, da sie über den physischen Connector reisen. Zu diesem Zweck gibt es verschiedene Schutzmechanismen, darunter High-Bandwidth Digital Content Protection (HDCP) und DisplayPort Content Protection (DPCP). Das Video OTA erzwingt diese Schutzmaßnahmen mithilfe des Output Protection Manager (OPM). Der Ausgabeschutz-Manager sendet Befehle an den Grafiktreiber, und der Grafiktreiber erzwingt alle Verknüpfungsschutzmechanismen, die von der Richtlinie benötigt werden.
Verwandte Themen