Ruta de acceso a medios protegidos

En este tema se describen tres temas relacionados: entorno protegido, puerta de enlace de interoperabilidad multimedia y revocación y renovación.

  • Un entorno protegido (PE) es un conjunto de tecnologías que permiten que el contenido protegido fluya desde y a través de Windows Vista de forma protegida. Todos los componentes dentro de un entorno protegido son de confianza y el proceso está protegido contra alteraciones.
  • La ruta de acceso al medio protegido (PMP) es un archivo ejecutable que se ejecuta en un entorno protegido.
  • Si un componente de confianza en el PE se pone en peligro, después del proceso debido se revocará. Sin embargo, Microsoft proporciona un mecanismo de renovación para instalar una versión de confianza más reciente del componente cuando está disponible.

Para obtener información sobre los componentes de medios protegidos de firma de código, vea las notas del producto Firma de código para componentes multimedia protegidos en Windows Vista.

Este tema contiene las siguientes secciones:

Entorno protegido

La protección de contenido abarca varias tecnologías, cada una de las cuales intenta asegurarse de que el contenido no se puede usar de una manera que sea incoherente con la intención del propietario o proveedor del contenido. Estas tecnologías incluyen protección de copia, protección de vínculos, acceso condicional y administración de derechos digitales (DRM). La base de cada es la confianza: el acceso al contenido solo se concede a los componentes de software que cumplen los términos de uso asignados a ese contenido.

Para minimizar las amenazas contra el contenido protegido, Windows Vista y Media Foundation Software permiten que el código de confianza se ejecute en un entorno protegido. Un PE es un conjunto de componentes, directrices y herramientas diseñadas para aumentar la protección contra la piratería de contenido.

Antes de examinar el PE más detenidamente, es importante comprender las amenazas que está diseñada para minimizar. Supongamos que está ejecutando una aplicación multimedia en un proceso en modo de usuario. La aplicación está vinculada a las distintas bibliotecas de vínculos dinámicos (DLL) que contienen complementos multimedia, como descodificadores. Otros procesos también se ejecutan en modo de usuario y se cargan varios controladores en el kernel. Si no hay ningún mecanismo de confianza, existen las siguientes amenazas:

  • La aplicación puede acceder a medios protegidos directamente o hackear la memoria del proceso.
  • Los complementos pueden acceder directamente al contenido o hackear la memoria del proceso.
  • Otros procesos pueden hackear la memoria del proceso multimedia directamente o insertando código.
  • Los controladores de kernel pueden hackear la memoria del proceso multimedia.
  • Es posible que el contenido se envíe fuera del sistema a través de un medio no protegido. (La protección de vínculos está diseñada para mitigar esta amenaza).

Diseño del entorno protegido

Un entorno protegido se ejecuta en un proceso protegido independiente de la aplicación multimedia. La característica de proceso protegido de Windows Vista impide que otros procesos accedan al proceso protegido.

Cuando se crea un proceso protegido, los componentes principales del kernel identifican componentes y complementos que no son de confianza para que el entorno protegido pueda rechazar su carga. Un componente de confianza es uno que Microsoft ha firmado correctamente. El kernel también realiza un seguimiento de los módulos que se cargan en él, lo que permite al entorno protegido detener la reproducción del contenido protegido si se carga un módulo que no es de confianza. Antes de cargar un componente de kernel, el kernel comprueba si es de confianza. Si no es así, los componentes de confianza que ya están en el PE se niegan a procesar el contenido protegido. Para habilitar esto, los componentes de PE realizan periódicamente un protocolo de enlace protegido criptográficamente con el kernel. Si hay un componente de modo kernel que no es de confianza, se produce un error en el protocolo de enlace e indica al PE que existe un componente que no es de confianza.

Si un componente de confianza se pone en peligro, después del proceso debido, se puede revocar. Microsoft proporciona un mecanismo de renovación para instalar una versión de confianza más reciente cuando esté disponible.

Ruta de acceso a medios protegidos

La ruta de acceso a medios protegidas (PMP) es el ejecutable pe principal de Media Foundation. El PMP es extensible, de modo que se puedan admitir mecanismos de protección de contenido de terceros.

El PMP acepta contenido protegido y directivas asociadas de cualquier origen de Media Foundation mediante cualquier sistema de protección de contenido, incluidos los proporcionados por terceros. Envía contenido a cualquier receptor de Media Foundation, siempre y cuando el receptor cumpla con las directivas especificadas por el origen. También admite transformaciones entre el origen y el receptor, incluidas las transformaciones de terceros, siempre que sean de confianza.

PMP se ejecuta en un proceso protegido aislado de la aplicación multimedia. La aplicación solo tiene la capacidad de intercambiar mensajes de comando y control con el PMP, pero no tiene acceso al contenido después de pasarlo al PMP. En el siguiente diagrama se muestra este proceso.

diagrama de la ruta de acceso a medios protegidos

Los cuadros sombreados representan componentes que pueden proporcionar terceros. Todos los componentes creados dentro del proceso protegido deben estar firmados y de confianza.

La aplicación crea una instancia de la sesión multimedia dentro del proceso protegido y recibe un puntero a una sesión multimedia de proxy, que serializa punteros de interfaz a través del límite del proceso.

El origen multimedia se puede crear dentro del proceso de aplicación, como se muestra aquí o dentro del proceso protegido. Si el origen multimedia se crea dentro del proceso de aplicación, el origen crea un proxy para sí mismo en el proceso protegido.

Todos los demás componentes de canalización, como los descodificadores y los receptores de medios, se crean en el proceso protegido. Si estos objetos exponen interfaces personalizadas para aplicaciones, deben proporcionar un proxy o código auxiliar DCOM para serializar la interfaz.

Para aplicar la directiva en el contenido protegido a medida que fluye a través de la canalización, el PMP usa tres tipos de componentes: autoridades de confianza de entrada (ITA), entidades de confianza de salida (OID) y objetos de directiva. Estos componentes funcionan conjuntamente para conceder o restringir derechos para usar contenido y para especificar las protecciones de vínculo que se deben emplear al reproducir contenido, como Protección de contenido digital de ancho de banda alto (HDCP).

Autoridades de confianza de entrada

Una ITA se crea mediante un origen multimedia de confianza y realiza varias funciones:

  • Especifica los derechos para usar contenido. Los derechos pueden incluir el derecho a reproducir contenido, transferirlo a un dispositivo, etc. Define una lista ordenada de sistemas de protección de salida aprobados y las directivas de salida correspondientes para cada sistema. El ITA almacena esta información en un objeto de directiva.
  • Proporciona el descifrador necesario para descifrar el contenido.
  • Establece la confianza con el módulo de kernel en el entorno protegido para asegurarse de que el ITA se ejecuta dentro de un entorno de confianza.

Una ITA está asociada a una secuencia individual que contiene contenido protegido. Una secuencia solo puede tener una ITA y una instancia de ita solo se puede asociar a una secuencia.

Entidades de confianza de salida

Una OTA está asociada a una salida de confianza. El OTA expone una acción que la salida de confianza puede realizar en el contenido, como la reproducción o la copia. Su rol consiste en aplicar uno o varios sistemas de protección de salida requeridos por el ITA. El OTA consulta el objeto de directiva proporcionado por ITA para determinar qué sistema de protección debe aplicar.

Objetos de directiva

Un objeto de directiva encapsula los requisitos de protección de contenido de un ITA. El motor de directivas lo usa para negociar la compatibilidad con la protección de contenido con un OTA. Los objetos de directiva de consulta de OTAs para determinar qué sistemas de protección deben aplicar en cada salida del contenido actual.

Crear objetos en el PMP

Para crear un objeto en la ruta de acceso a medios protegidos (PMP), IMFMediaSource llama a IMFPMPHostApp::ActivateClassById, con el IStream de entrada especificado con el formato siguiente:

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 }

Información general sobre la negociación de directivas

Hay tres requisitos fundamentales que deben cumplirse antes de que el contenido protegido se pueda procesar en el PMP. En primer lugar, el contenido protegido solo se debe enviar a salidas de confianza. En segundo lugar, solo se deben aplicar acciones permitidas a una secuencia. En tercer lugar, solo se deben usar sistemas de protección de salida aprobados para reproducir una secuencia. El motor de directivas se coordina entre las ENTIDADES de ti y las ENTIDADES de certificación para asegurarse de que se cumplen estos requisitos.

La manera más fácil de entender el proceso es recorrer un ejemplo simplificado que identifica los pasos necesarios para reproducir contenido de Formato avanzado del sistema (ASF) protegido por Windows Media Digital Rights Management (WMDRM).

Cuando un usuario inicia una aplicación de reproductor y abre un archivo ASF que tiene una secuencia de audio protegida y una secuencia de vídeo protegida, se deben realizar los pasos siguientes:

  1. La aplicación crea el origen multimedia ASF y la sesión de ruta de acceso a medios protegidas (PMP). Media Foundation crea un proceso PMP.
  2. La aplicación crea una topología parcial que contiene un nodo de origen de audio conectado al representador de audio y un nodo de origen de vídeo conectado al representador de vídeo mejorado (EVR). Para los representadores, la aplicación no crea directamente el representador. En su lugar, la aplicación crea en el proceso desprotegido un objeto conocido como objeto de activación. El PMP usa el objeto de activación para crear los representadores en el proceso protegido. (Para obtener más información sobre los objetos de activación, vea Objetos de activación).
  3. La aplicación establece la topología parcial en la sesión PMP.
  4. La sesión PMP serializa la topología y la pasa al host PMP en el proceso protegido. El host PMP envía la topología al motor de directivas.
  5. El cargador de topologías llama a IMFInputTrustAuthority::GetDecrypter en las ITA e inserta los descifradores en la topología inmediatamente inferior de los nodos de origen correspondientes.
  6. El cargador de topología inserta los descodificadores de audio y vídeo de bajada de los nodos del descifrador.
  7. El motor de políticas examina los nodos insertados para determinar si alguno implementa la interfaz IMFTrustedOutput . Tanto el EVR como el representador de audio implementan IMFTrustedOutput, ya que envían datos fuera del PMP.
  8. Cada ITA confirma que se está ejecutando dentro de un proceso protegido realizando un protocolo de enlace criptográfico con un módulo de kernel de entorno protegido.
  9. Para cada secuencia, el motor de directivas negocia la directiva obteniendo un objeto de directiva del ITA y pasándolo a la OTA. El OTA proporciona una lista de los sistemas de protección que admite y el objeto de directiva indica qué sistemas de protección se deben aplicar, junto con la configuración correcta. A continuación, el OTA aplica esta configuración. Si no puede hacerlo, el contenido se bloquea.

Revocación y renovación

Se puede revocar un componente de confianza si se pone en peligro o se detecta que infringe los contratos de licencia en los que se confiaba inicialmente. Existe un mecanismo de renovación para instalar una versión más reciente y más confiable del componente.

Los componentes de confianza se firman mediante un certificado criptográfico. Microsoft publica una lista de revocación global (GRL) que identifica los componentes que se han revocado. La GRL está firmada digitalmente para garantizar su autenticidad. Los propietarios de contenido pueden asegurarse, a través del mecanismo de directiva, de que la versión actual de la GRL está presente en el equipo del usuario.

Cuando se ve el contenido de vídeo premium, los fotogramas descifrados y sin comprimir viajan a través de un conector físico al dispositivo de visualización. Los proveedores de contenido pueden requerir que los fotogramas de vídeo estén protegidos en este momento, ya que viajan a través del conector físico. Existen varios mecanismos de protección para este fin, incluidos High-Bandwidth Protección de contenido digital (HDCP) y Protección de contenido displayPort (DPCP). El vídeo OTA aplica estas protecciones mediante el Administrador de protección de salida (OPM). El Administrador de protección de salida envía comandos al controlador de gráficos y el controlador de gráficos exige los mecanismos de protección de vínculos que requiera la directiva.

diagrama que muestra la relación entre el vídeo ota y opm.

Acerca de Media Foundation

Arquitectura de Media Foundation

Protección de contenido basada en GPU

Administrador de protección de salida

Sesión de medios PMP