Delen via


Beveiligde mediapad

In dit onderwerp worden drie onderling gerelateerde onderwerpen besproken: beveiligde omgeving, media-interoperabiliteitsgateway en intrekking en verlenging.

  • Een beveiligde omgeving (PE) is een set technologieën waarmee beveiligde inhoud op een beveiligde manier van en via Windows Vista kan stromen. Alle onderdelen in een beveiligde omgeving worden vertrouwd en het proces wordt beschermd tegen manipulatie.
  • Het beveiligde mediapad (PMP) is een uitvoerbaar bestand dat wordt uitgevoerd in een beveiligde omgeving.
  • Als een vertrouwd onderdeel in de PE in gevaar komt, wordt het na afloop van het proces ingetrokken. Microsoft biedt echter een verlengingsmechanisme voor het installeren van een nieuwere vertrouwde versie van het onderdeel wanneer er een beschikbaar komt.

Zie het witboek Ondertekening van programmacode voor beveiligde mediaonderdelen in Windows Vistavoor informatie over beveiligde mediaonderdelen voor ondertekening van programmacode.

Dit onderwerp bevat de volgende secties:

Beveiligde omgeving

Inhoudsbeveiliging omvat meerdere technologieën, die allemaal proberen ervoor te zorgen dat inhoud niet kan worden gebruikt op een manier die niet overeenkomt met de bedoeling van de inhoudseigenaar of -provider. Deze technologieën omvatten kopieerbeveiliging, koppelingsbeveiliging, voorwaardelijke toegang en DRM (Digital Rights Management). De basis van elk is vertrouwen: toegang tot de inhoud wordt alleen verleend aan softwareonderdelen die voldoen aan de gebruiksvoorwaarden die aan die inhoud zijn toegewezen.

Om bedreigingen tegen beveiligde inhoud te minimaliseren, kunnen vertrouwde code in Windows Vista en Media Foundation Software worden uitgevoerd in een beveiligde omgeving. Een PE is een set onderdelen, richtlijnen en hulpprogramma's die zijn ontworpen om de bescherming tegen piraterij van inhoud te verbeteren.

Voordat u de PE nauwkeuriger bekijkt, is het belangrijk om de bedreigingen te begrijpen die zijn ontworpen om te minimaliseren. Stel dat u een mediatoepassing uitvoert in een gebruikersmodusproces. De toepassing is gekoppeld aan de verschillende dynamic link-bibliotheken (DLL's) die mediainvoegtoepassingen bevatten, zoals decoders. Andere processen worden ook uitgevoerd in de gebruikersmodus en verschillende stuurprogramma's worden in de kernel geladen. Als er geen vertrouwensmechanisme is ingesteld, bestaan de volgende bedreigingen:

  • De toepassing heeft rechtstreeks toegang tot beveiligde media of hackt het procesgeheugen.
  • Invoegtoepassingen hebben rechtstreeks toegang tot de inhoud of hacken het procesgeheugen.
  • Andere processen kunnen het mediaprocesgeheugen rechtstreeks hacken of door code te injecteren.
  • Kernelstuurprogramma's kunnen het mediaprocesgeheugen hacken.
  • Inhoud kan buiten het systeem worden verzonden via een niet-beveiligd medium. (Koppelingsbeveiliging is ontworpen om deze bedreiging te beperken.)

Ontwerp van de beveiligde omgeving

Een beveiligde omgeving wordt uitgevoerd in een afzonderlijk beveiligd proces van de mediatoepassing. De beveiligde procesfunctie van Windows Vista voorkomt dat andere processen toegang krijgen tot het beveiligde proces.

Wanneer een beveiligd proces wordt gemaakt, identificeren kernkernonderdelen niet-vertrouwde onderdelen en invoegtoepassingen, zodat de beveiligde omgeving kan weigeren om ze te laden. Een vertrouwd onderdeel is een onderdeel dat op de juiste wijze is ondertekend door Microsoft. De kernel houdt ook modules bij die erin worden geladen, waardoor de beveiligde omgeving het afspelen van beveiligde inhoud stopt als een niet-vertrouwde module wordt geladen. Voordat een kernelonderdeel wordt geladen, controleert de kernel of het wordt vertrouwd. Als dat niet het is, weigeren vertrouwde onderdelen in de PE beveiligde inhoud te verwerken. Om dit in te schakelen, voeren PE-onderdelen periodiek een cryptografisch beveiligde handshake uit met de kernel. Als er een niet-vertrouwd kernelmodusonderdeel aanwezig is, mislukt de handshake en wordt aangegeven dat er een niet-vertrouwd onderdeel bestaat.

Als een vertrouwd onderdeel wordt gecompromitteerd, kan het na afloop van het proces worden ingetrokken. Microsoft biedt een verlengingsmechanisme voor het installeren van een nieuwere vertrouwde versie, indien beschikbaar.

Beveiligde mediapad

Het beveiligde mediapad (PMP) is het primaire PE-uitvoerbare bestand voor Media Foundation. Het PMP is uitbreidbaar, zodat inhoudsbeveiligingsmechanismen van derden kunnen worden ondersteund.

Het PMP accepteert beveiligde inhoud en bijbehorende beleidsregels van elke Media Foundation-bron met behulp van elk inhoudsbeveiligingssysteem, met inbegrip van die van derden. Inhoud wordt verzonden naar een Media Foundation-sink, zolang de sink voldoet aan het beleid dat door de bron is opgegeven. Het ondersteunt ook transformaties tussen de bron en de sink, inclusief transformaties van derden, zolang ze worden vertrouwd.

De PMP wordt uitgevoerd in een beveiligd proces dat is geïsoleerd van de mediatoepassing. De toepassing heeft alleen de mogelijkheid om opdrachten uit te wisselen en berichten te beheren met de PMP, maar heeft geen toegang tot inhoud nadat deze is doorgegeven aan de PMP. In het volgende diagram ziet u dit proces.

diagram van het beveiligde mediapad

Gearceerde vakken vertegenwoordigen onderdelen die mogelijk door derden worden geleverd. Alle onderdelen die in het beveiligde proces zijn gemaakt, moeten worden ondertekend en vertrouwd.

De toepassing maakt een exemplaar van de mediasessie binnen het beveiligde proces en ontvangt een aanwijzer naar een proxymediasessie, die marshals interfaceaanwijzers over de procesgrens wijst.

De mediabron kan worden gemaakt binnen het toepassingsproces, zoals hier wordt weergegeven of binnen het beveiligde proces. Als de mediabron wordt gemaakt in het toepassingsproces, maakt de bron een proxy voor zichzelf in het beveiligde proces.

Alle andere pijplijnonderdelen, zoals decoders en media-sinks, worden gemaakt in het beveiligde proces. Als deze objecten aangepaste interfaces beschikbaar maken voor toepassingen, moeten ze een DCOM-proxy/stub opgeven om de interface te marshalen.

Om beleid af te dwingen voor beveiligde inhoud tijdens het doorlopen van de pijplijn, gebruikt het PMP drie soorten onderdelen: input trust authorities (ITA's), uitvoervertrouwensautoriteiten (OTA's) en beleidsobjecten. Deze onderdelen werken samen om rechten te verlenen of te beperken voor het gebruik van inhoud en om de koppelingsbeveiligingen op te geven die moeten worden gebruikt bij het afspelen van inhoud, zoals HDCP (High-Bandwidth Digital Content Protection).

Vertrouwensautoriteiten voor invoer

Een ITA wordt gemaakt door een vertrouwde mediabron en voert verschillende functies uit:

  • Hiermee geeft u rechten voor het gebruik van inhoud. Rechten kunnen het recht omvatten om inhoud af te spelen, over te dragen naar een apparaat, enzovoort. Hiermee wordt een geordende lijst met goedgekeurde uitvoerbeveiligingssystemen en het bijbehorende uitvoerbeleid voor elk systeem gedefinieerd. De ITA slaat deze informatie op in een beleidsobject.
  • Biedt de ontsleuteling die nodig is om de inhoud te ontsleutelen.
  • Hiermee wordt een vertrouwensrelatie met de kernelmodule in de beveiligde omgeving tot stand brengt om ervoor te zorgen dat de ITA wordt uitgevoerd in een vertrouwde omgeving.

Een ITA is gekoppeld aan een afzonderlijke stream die beveiligde inhoud bevat. Een stream kan slechts één ITA hebben en een exemplaar van een ITA kan worden gekoppeld aan slechts één stream.

Uitvoervertrouwensautoriteiten

Een OTA is gekoppeld aan een vertrouwde uitvoer. De OTA toont een actie die door de vertrouwde uitvoer kan worden uitgevoerd op de inhoud, zoals afspelen of kopiëren. De rol is het afdwingen van een of meer uitvoerbeveiligingssystemen die vereist zijn voor de ITA. De OTA voert een query uit op het beleidsobject dat door ITA wordt geleverd om te bepalen welk beveiligingssysteem het moet afdwingen.

Beleidsobjecten

Een beleidsobject bevat de vereisten voor inhoudsbeveiliging van een ITA. Het wordt gebruikt door de beleidsengine om te onderhandelen over ondersteuning voor inhoudsbeveiliging met een OTA. OTA-querybeleidsobjecten om te bepalen welke beveiligingssystemen ze moeten afdwingen op elke uitvoer van de huidige inhoud.

Objecten maken in de PMP

Als u een object wilt maken in het beveiligde mediapad (PMP), roept de IMFMediaSourceIMFPMPHostApp::ActivateClassById, met de opgegeven invoer IStream op de volgende manier ingedeeld:

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 }

Overzicht van beleidsonderhandeling

Er zijn drie fundamentele vereisten waaraan moet worden voldaan voordat beveiligde inhoud kan worden verwerkt in de PMP. Eerst moet beveiligde inhoud alleen worden verzonden naar vertrouwde uitvoer. Ten tweede moeten alleen toegestane acties worden toegepast op een stream. Ten derde moeten alleen goedgekeurde uitvoerbeveiligingssystemen worden gebruikt om een stream af te spelen. De beleidsengine coördineert tussen ITA's en OTA's om ervoor te zorgen dat aan deze vereisten wordt voldaan.

De eenvoudigste manier om het proces te begrijpen, is door een vereenvoudigd voorbeeld te doorlopen dat de stappen identificeert die nodig zijn om ASF-inhoud (Advanced System Format) af te spelen die wordt beveiligd door WMDRM (Windows Media Digital Rights Management).

Wanneer een gebruiker een spelertoepassing start en een ASF-bestand opent met een beveiligde audiostream en een beveiligde videostream, moeten de volgende stappen worden uitgevoerd:

  1. De toepassing maakt de ASF-mediabron en de PMP-sessie (Protected Media Path). Media Foundation maakt een PMP-proces.
  2. De toepassing maakt een gedeeltelijke topologie die een audiobronknooppunt bevat dat is verbonden met de audio-renderer en een videobronknooppunt dat is verbonden met de verbeterde video-renderer (EVR). Voor de renderers maakt de toepassing niet rechtstreeks de renderer. In plaats daarvan maakt de toepassing in het niet-beveiligde proces een object dat bekend staat als een activeringsobject. Het PMP gebruikt het activeringsobject om de renderers in het beveiligde proces te maken. (Zie Activeringsobjectenvoor meer informatie over activeringsobjecten.)
  3. De toepassing stelt de gedeeltelijke topologie in op de PMP-sessie.
  4. De PMP-sessie serialiseert de topologie en geeft deze door aan de PMP-host in het beveiligde proces. De PMP-host verzendt de topologie naar de beleidsengine.
  5. De topologielader roept IMFInputTrustAuthority::GetDecrypter op de ITA's aan en voegt de ontsleutelingen in de topologie in direct downstream van de bijbehorende bronknooppunten.
  6. De topologielader voegt de audio- en video-decoders downstream van de ontsleutelingsknooppunten in.
  7. De beleidsengine scant de ingevoegde knooppunten om te bepalen of de IMFTrustedOutput interface wordt geïmplementeerd. De EVR en de audio-renderer implementeren beide IMFTrustedOutput, omdat ze gegevens buiten het PMP verzenden.
  8. Elke ITA bevestigt dat deze wordt uitgevoerd in een beveiligd proces door een cryptografische handshake uit te voeren met een beveiligde omgevingskernelmodule.
  9. Voor elke stream onderhandelt de beleidsengine over beleid door een beleidsobject van de ITA op te halen en door te geven aan de OTA. De OTA biedt een lijst met de beveiligingssystemen die het ondersteunt en het beleidsobject geeft aan welke beveiligingssystemen moeten worden toegepast, samen met de juiste instellingen. De OTA past deze instellingen vervolgens toe. Als dit niet mogelijk is, wordt de inhoud geblokkeerd.

Intrekking en verlenging

Een vertrouwd onderdeel kan worden ingetrokken als het wordt aangetast of wordt ontdekt dat het inbreuk maakt op de licentieovereenkomsten waaronder het in eerste instantie werd vertrouwd. Er bestaat een verlengingsmechanisme voor het installeren van een nieuwere, meer vertrouwde versie van het onderdeel.

Vertrouwde onderdelen worden ondertekend met behulp van een cryptografisch certificaat. Microsoft publiceert een algemene intrekkingslijst (GRL) die onderdelen identificeert die zijn ingetrokken. De GRL wordt digitaal ondertekend om de authenticiteit ervan te garanderen. Eigenaren van inhoud kunnen er via het beleidsmechanisme voor zorgen dat de huidige versie van de GRL aanwezig is op de computer van de gebruiker.

Wanneer premium video-inhoud wordt bekeken, reizen de ontsleutelde, niet-gecomprimeerde frames over een fysieke connector naar het beeldschermapparaat. Inhoudsproviders vereisen mogelijk dat de videoframes op dit moment worden beveiligd, terwijl ze over de fysieke connector lopen. Hiervoor bestaan verschillende beveiligingsmechanismen, waaronder High-Bandwidth HDCP (Digital Content Protection) en DisplayPort Content Protection (DPCP). De video OTA dwingt deze beveiligingen af met behulp van de Output Protection Manager (OPM). Output Protection Manager verzendt opdrachten naar het grafische stuurprogramma en het grafische stuurprogramma dwingt alle mechanismen voor koppelingsbeveiliging af die vereist zijn voor het beleid.

een diagram met de relatie tussen de video ota en opm.

Over Media Foundation-

Media Foundation Architecture

GPU-Based Inhoudsbeveiliging

Output Protection Manager-

PMP-mediasessie