Implementación paso a paso de DRM y reproducción segura en Windows 11

  • Windows 11 combina PlayReady HWDRM, TEE y protección de salida para reproducir contenido HD y UHD de forma segura.
  • Las licencias, OPL y restricciones de HDCP determinan qué salidas de vídeo y audio pueden usar los usuarios.
  • Chrome, Edge y otros navegadores integran Widevine y PlayReady, mientras que móviles recurren a Widevine y FairPlay.
  • Actualizaciones del sistema y ediciones N de Windows pueden romper la reproducción si faltan componentes multimedia clave.

DRM y reproducción segura en Windows 11

La protección de contenido digital en Windows 11 se apoya en un conjunto de tecnologías de DRM y seguridad de hardware que han ido evolucionando desde Windows 8.1 y Windows 10 hasta la versión actual del sistema. Si trabajas con vídeo premium, streaming, BluRay o plataformas OTT, entender cómo funciona PlayReady, el Trusted Execution Environment (TEE) y las distintas capas de protección de salida es clave para evitar errores de reproducción y aprovechar al máximo la calidad HD y UHD.

En las siguientes líneas vamos a ver cómo implementar paso a paso DRM y reproducción segura en Windows 11, qué cambios trae la integración de PlayReady, cómo interactúan Chrome, Edge y otros navegadores, qué limitaciones existen en ediciones especiales como Windows N, y qué problemas conocidos se han detectado con ciertas actualizaciones del sistema. La idea es que termines con una visión completa, práctica y sin tecnicismos innecesarios, pero sin dejarte fuera ningún detalle importante de las especificaciones oficiales.

Qué es DRM y por qué es tan importante en Windows 11

Digital Rights Management (DRM) es el mecanismo que impide que un vídeo se reproduzca si el cliente (dispositivo, navegador o app) no dispone de la clave o licencia adecuada. Normalmente el contenido se cifra y solo se descifra cuando el reproductor demuestra, mediante una licencia, que está autorizado para ello. En el ecosistema de vídeo moderno esto se combina con streaming adaptable (DASH, HLS), cifrado común (CENC) y distintos sistemas de DRM como PlayReady, Widevine o FairPlay.

En Windows 11, el estándar de referencia es Microsoft PlayReady. Lo podemos encontrar de dos maneras:

  • DRM puramente de software (SWDRM).
  • DRM con anclaje en hardware (HWDRM), que aprovecha una ruta de vídeo segura y claves protegidas por la propia GPU o chipset.

Cuando se habla de reproducir contenido 1080p o UHD de alto valor (películas, series, deportes premium), prácticamente todos los proveedores exigen que haya soporte de DRM con seguridad basada en hardware.

Además de PlayReady, el ecosistema actual de vídeo en Windows 11 convive con Widevine (propiedad de Google) y FairPlay (de Apple). Sobre todo para garantizar compatibilidad en navegadores y dispositivos móviles. Sin embargo, para contenido 4K en PC con Windows, PlayReady sigue siendo la pieza central, tanto en apps UWP como en navegadores que lo soportan de forma nativa o integrada.

Implementación de DRM PlayReady en Windows

PlayReady basado en hardware: claves, contenido y seguridad

La gran diferencia en las versiones modernas del sistema es la adopción masiva de PlayReady HWDRM, un modelo en el que el núcleo criptográfico y la ruta de vídeo se ejecutan en una zona segura del hardware. Esto permite que claves privadas, claves de contenido y cualquier material criptográfico asociado se almacenen y procesen sin exponerse a la memoria de la aplicación o al sistema operativo en claro.

Gracias a esta arquitectura, Windows 11 puede reproducir contenido HD (1080p) y UHD en una amplia gama de dispositivos siempre que la cadena de hardware (CPU, GPU, drivers, monitor/salida) cumpla con las reglas de cumplimiento de PlayReady. Son estas:

  • Uso de HDCP donde sea necesario.
  • Bloqueo de salidas analógicas no seguras.
  • Restricciones por resolución.

El vídeo, tanto comprimido como descomprimido, viaja por una ruta protegida hasta el monitor compatible.

Es importante entender que PlayReady en Windows 11 ya no es un componente AppX aparte como ocurría en Windows 8.x, sino un componente in-box del propio sistema operativo. El espacio de nombres cambió de Microsoft.Media.PlayReadyClient a Windows.Media.Protection.PlayReady, y los códigos de error se definen en cabeceras específicas del SDK de Windows (por ejemplo, Windows.Media.Protection.PlayReadyErrors.h y PlayReadyResults.h).

Entre las novedades clave de PlayReady para Windows 10/11 se incluyen adquisición proactiva de licencias, cadenas de licencias no persistentes, expiración en tiempo real (LDL), separación de licencias de audio y vídeo y soporte de HEVC/H.265 cuando se utiliza CENC v2. Todo esto se ha diseñado para reducir el tiempo hasta el primer fotograma y facilitar experiencias de streaming fluidas. Incluso cuando el contenido está fuertemente protegido.

Cómo funciona el entorno de ejecución de confianza (Windows TEE)

Para habilitar HWDRM, Windows 11 se apoya en un Trusted Execution Environment (TEE), conocido en la documentación como Windows TrEE. Aunque los detalles internos no se publican de forma exhaustiva, sí se facilita una explicación de alto nivel para entender el flujo de llamadas.

Windows implementa una capa de proxy OEM que recibe las llamadas PRITEE (PlayReady TEE) serializadas y las redirige a un controlador de modo usuario dentro del subsistema de Windows Media Foundation. A partir de ahí, la ejecución puede dirigirse al propio controlador TrEE del sistema o bien a un controlador de gráficos del OEM, dependiendo de cómo esté implementado el hardware.

Desde el punto de vista del desarrollador UWP, no es necesario implementar el TEE desde cero, pero sí entender que todas las protecciones de salida, incluyendo HDCP y restricciones de resolución, se gestionan «dentro» de ese entorno seguro cuando se usa HWDRM. Si una empresa quiere implementar un puerto TEE específico para Windows PlayReady, Microsoft facilita contacto directo a través de las vías indicadas en su documentación oficial.

DRM Windows

Requisitos y consideraciones al usar DRM de hardware

Cuando una aplicación UWP o un servicio de streaming decide usar HWDRM, debe tener en cuenta una serie de requisitos estrictos sobre licencias y claves. Si no se cumplen, el cliente no está obligado a usar la ruta de hardware, Entonces el contenido podría reproducirse bajo SWDRM o, directamente, fallar según las políticas impuestas.

Para garantizar que se emplea HWDRM, la licencia de vídeo debe declarar un nivel de seguridad mínimo de 3000. El audio tiene que cifrarse con una clave de contenido distinta y su licencia asociada necesita un nivel de seguridad mínimo de 2000. Alternativamente, el audio se puede dejar en claro si la política del proveedor lo permite. Todos los escenarios puramente SWDRM trabajan con niveles de seguridad iguales o inferiores a 2000.

Existen limitaciones importantes:

  • No se admite el Protected Media Path (PMP) clásico.
  • Tampoco se admite el códec VC-1 (Windows Media Video) en HWDRM.
  • Las licencias persistentes tienen problemas en entornos con varias GPU.

En este último caso, PlayReady utiliza un almacén de datos hash (HDS) separado por tarjeta gráfica. Esto implica que si el usuario instala una nueva GPU, las licencias persistentes atadas a la integrada pueden «desaparecer» a ojos de la aplicación.

Esto obliga a que la app sea capaz de re-adquirir licencias persistentes cuando se detecta un cambio de hardware gráfico o, al menos, a estar preparada para gestionar incidencias de soporte cuando el usuario cambia de GPU y el contenido deja de reproducirse. No es un escenario habitual, pero puede suceder.

Protección de salida, OPL y diferencias entre SWDRM y HWDRM

PlayReady define niveles de protección de salida (OPL). Estos indican qué se permite hacer con el contenido en distintas salidas: vídeo digital comprimido, vídeo digital sin comprimir, salidas analógicas (componente, compuesto, VGA), Miracast, etc. Windows 10 y 11 implementan estas reglas de acuerdo con las PlayReady Compliance & Robustness Rules.

Una diferencia fundamental es que, con HWDRM todas las protecciones de salida se aplican desde el Windows TEE. Esto genera un comportamiento distinto respecto a SWDRM. Si el usuario tiene dos monitores, uno con HDCP y otro sin HDCP, y la licencia exige HDCP, bajo HWDRM la reproducción fallará aunque solo se esté mostrando el contenido en el monitor compatible; el sistema se rige por «el monitor menos capaz». Con SWDRM, en cambio, se permite reproducir mientras el contenido se renderice únicamente en la pantalla que soporta HDCP.

Otro punto clave es el manejo del OPL 270 para vídeo digital sin comprimir. En SWDRM, si no se puede activar HDCP, el sistema puede hacer downscale y limitar la resolución efectiva a unos 520.000 píxeles por fotograma, permitiendo la reproducción. En HWDRM, la ruta segura no admite reducir resolución de esta manera. Si no se logra activar HDCP para el OPL correspondiente, la reproducción se bloquea en puertos HDMI/DVI.

Para contenido HD de alto valor expuesto a HWDRM, se recomienda establecer OPL de vídeo digital sin comprimir por encima de 270 y añadir la restricción de tipo HDCP en las licencias (HDCP 2.2 o superior en Windows 10/11). Además, Miracast se trata como una salida digital más, permitiendo reproducción siempre que se cumpla HDCP 2.0 o posterior.

A nivel de audio, existen OPL específicos para audio digital comprimido, audio sin comprimir y salidas analógicas o USB.

miracast

Detección de compatibilidad de hardware DRM y HEVC/AES128CBC

Para saber qué admite el sistema, PlayReady aporta el método PlayReadyStatics.CheckSupportedHardware, con el que se pueden consultar capacidades específicas, como la compatibilidad general de HWDRM, el soporte de HEVC/H.265 o el cifrado AES128CBC de hardware.

La enumeración PlayReadyHardwareDRMFeatures incluye valores como HardwareDRM, HEVC o Aes128Cbc. Por ejemplo, se puede ejecutar:
bool isFeatureSupported = PlayReadyStatics.CheckSupportedHardware(PlayReadyHardwareDRMFeatures.HEVC); para verificar si el hardware admite ese códec bajo HWDRM. Adicionalmente, la propiedad PlayReadyStatics.PlayReadyCertificateSecurityLevel devuelve el nivel de seguridad del certificado de cliente: solo si es mayor o igual a 3000 el dispositivo está individualizado y preparado para usar HWDRM.

En versiones anteriores a Windows 10, versión 1709, si se consulta Aes128Cbc sin verificar antes la presencia del contrato de API correspondiente, se producirá una excepción. Por eso Microsoft recomienda usar ApiInformation.IsApiContractPresent con la versión 5 de Windows.Foundation.UniversalApiContract antes de llamar a CheckSupportedHardware para esta característica.

Invalidar HWDRM y forzar PlayReady de software

No todo el contenido es compatible con HWDRM. Por ejemplo, ciertos contenidos “cóctel”, flujos HEVC en sistemas que no soportan ese códec bajo hardware o cualquier stream con un códec de vídeo diferente a H.264 o HEVC pueden requerir que la aplicación opte por PlayReady de software.

Para «desactivar» HWDRM a nivel de app UWP es posible usar la configuración local Hay que establecer la clave SoftwareOverride a 1 dentro de un contenedor de ajustes llamado «PlayReady» en ApplicationData.LocalSettings. Es importante hacerlo antes de crear objetos PlayReady, ya que comportamientos intermedios no están garantizados.

Asimismo, para cada reproducción se puede indicar explícitamente el uso de la capa de protección de software vía MediaProtectionManager, fijando:
mediaProtectionManager.properties = true; Esto fuerza a la app a utilizar SWDRM incluso si el sistema soporta HWDRM.

Una forma práctica de comprobar qué tipo de DRM se está usando en tiempo de ejecución es inspeccionar la carpeta:
C:\Users\<usuario>\AppData\Local\Packages\<nombreAplicacion>\LocalCache\PlayReady\. Si el archivo es mspr.hds, se está trabajando con SWDRM; si aparece un archivo distinto con extensión .hds, se trata de HWDRM. Borrar esta carpeta y volver a reproducir fuerza a PlayReady a regenerar el almacén.

PlayReady

Integración de PlayReady en aplicaciones UWP

Para añadir contenido protegido por PlayReady a una aplicación UWP en Windows 11, hay una serie de pasos básicos que parten de la migración desde el modelo de Windows 8.x. El cambio de espacio de nombres a Windows.Media.Protection.PlayReady obliga a actualizar referencias y a utilizar los winmd correctos incluidos en el SDK de Windows (principalmente windows.media.winmd y windows.foundation.universalappcontract.winmd).

En cuanto al MediaProtectionManager, la configuración típica incluye establecer el identificador de sistema de protección, el mapeo de sistemas de contenido y el GUID del contenedor de PlayReady. Un patrón muy habitual es algo como:

var mediaProtectionManager = new Windows.Media.Protection.MediaProtectionManager();
mediaProtectionManager.Properties = "{F4637010-03C3-42CD-B932-B48ADF3A6A54}";
var cpsystems = new Windows.Foundation.Collections.PropertySet();
cpsystems = "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput";
mediaProtectionManager.Properties = cpsystems;
mediaProtectionManager.Properties = "{9A04F079-9840-4286-AB92-E65BE0885F95}";

Para reproducir contenido HD y UHD protegido, la app debe soportar correctamente HWDRM, invalidarlo cuando sea necesario y gestionar la adquisición de licencias tanto persistentes como no persistentes.

Adquisición proactiva de licencias no persistentes

Una mejora clave de PlayReady en Windows 10/11 es la posibilidad de adquirir licencias no persistentes de forma proactiva. Es decir, antes de que comience la reproducción. En versiones antiguas, solo se podían obtener estas licencias de manera reactiva. Eso añadía latencia al arranque del vídeo.

El flujo recomendado consiste en:

  1. Crear primero una sesión de reproducción a través de MediaProtectionPMPServer.
  2. Asociarla a una PlayReadyLicenseSession.
  3. Generar desde ahí una solicitud de servicio de licencia (LAServiceRequest).

Tras completar la adquisición, la licencia queda almacenada en la sesión y se vincula al origen multimedia mediante configureMediaProtectionManager antes de iniciar la reproducción.

ISTypeSupported

Consulta de capacidades de protección con IsTypeSupported

Desde Windows 10, versión 1703, los desarrolladores pueden usar la clase ProtectionCapabilities para consultar qué combinaciones de códec, resolución, tasa de fotogramas y características DRM son realmente compatibles en un dispositivo determinado.

¿Cómo funciona el método IsTypeSupported?  Primero recibe una cadena con el tipo MIME y parámetros como códec, bits por píxel, resolución o fps, y luego otra cadena con el sistema de claves (por ejemplo, "com.microsoft.playready"). En función de la respuesta (Probably, Maybe o NotSupported), la app puede decidir si encolar vídeo UHD bajo HWDRM, degradar la calidad o descartar cierto contenido.

Este enfoque resulta especialmente útil en escenarios de streaming adaptable con PlayReady. Permite ajustar dinámicamente los perfiles de calidad compatibles con el dispositivo y evitar errores de reproducción por intentar usar una combinación de códec + DRM que el hardware no soporta.

Secure Stop: asegurando el fin de la reproducción

La funcionalidad de Secure Stop (detención segura) se añadió para que un dispositivo PlayReady pueda informar de forma fiable a un servicio de streaming de que la reproducción de un determinado contenido se ha detenido. Ya sea porque se ha alcanzado el final del vídeo o porque el usuario ha parado manualmente la sesión.

Esto permite que los servicios apliquen limitaciones de uso y control de concurrencia con mayor precisión. Se evita así que las sesiones se queden «enganchadas» y bloqueen al usuario. También cubre el caso en el que la app o el sistema se bloquean. En el siguiente arranque, la aplicación debe consultar si hay sesiones de Secure Stop pendientes y enviar los desafíos correspondientes al servidor.

Microsoft proporciona un ejemplo práctico en el archivo securestop.cs dentro de los proyectos de ejemplo de PlayReady.

Uso de PlayReady en Xbox One y consideraciones de seguridad

En Xbox One, las aplicaciones UWP también pueden aprovechar PlayReady. Lo único es que es obligatorio que la cuenta del Centro de partners esté autorizada para usar este DRM. Esto se consigue contactando con Microsoft o enviando la información de la cuenta a los correos habilitados para ello, tras lo cual se habilita una DeviceCapability específica en el manifiesto de la app.

El manifiesto debe incluir, dentro de <Capabilities>, una entrada <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />, que se añade manualmente editando el archivo Package.appxmanifest como XML. Sin este paso, la app no tendrá permiso para usar PlayReady en Xbox.

Otro detalle relevante es que los kits de desarrollo de Xbox One están limitados a SL150 (nivel de seguridad 150). Eso significa que no pueden reproducir contenido SL2000 o SL3000. Los dispositivos comerciales sí soportan niveles de seguridad más altos, pero para pruebas en devkits hay que usar contenido SL150. Ya sea con material de test o con lógica que solo otorgue licencias de menor nivel a cuentas de prueba.

DRM en el navegador: Widevine, PlayReady y FairPlay

En el mundo del navegador, la estrategia actual pasa por usar MPEG-DASH + CENC combinado con el DRM nativo disponible en cada plataforma. Brightcove, por ejemplo, soporta Widevine, PlayReady y FairPlay. Seleccionando dinámicamente el adecuado según el navegador y el sistema operativo.

En escritorio, Chrome y Firefox sobre Windows y macOS suelen trabajar con Widevine para DASH. También pueden apoyarse en HLS con Widevine en ciertos escenarios. Safari en macOS utiliza HLS con FairPlay. El nuevo Microsoft Edge (basado en Chromium) añade compatibilidad tanto con Widevine como con PlayReady en determinadas versiones de Windows. Especialmente a partir de Windows 10.

Para móviles, la situación se reparte entre HLS + FairPlay en iOS y tvOS, y MPEG-DASH + CENC con Widevine modular en Android (incluyendo Android TV, Amazon Fire TV y Chromecast para ciertos casos). Además, los SDK nativos de vídeo para iOS y Android suelen apoyar reproducción offline con DRM, usando FairPlay y Widevine respectivamente.

Un detalle interesante es que los proveedores como Brightcove tienden a ocultar automáticamente las fuentes MP4 cuando se habilita DRM, de modo que solo se exponen las representaciones protegidas a través de HLS o DASH. También suelen requerir que la cuenta esté activada específicamente para DRM o HLS con cifrado. En algunos casos piden licencias adicionales para usar FairPlay, Widevine o PlayReady.

Chrome y el salto a PlayReady con soporte de hardware en Windows 11

En Windows 11 se está produciendo un cambio relevante. Google Chrome se está preparando para integrar PlayReady con soporte de hardware, además de su tradicional Widevine. Esto permitirá que Chrome pueda reproducir contenido protegido con la misma seguridad de hardware que Edge, abriendo la puerta a reproducción 4K y contenido premium que hasta ahora estaba limitado por Widevine en determinadas configuraciones.

PlayReady es el DRM utilizado por plataformas como Netflix para sus títulos más exigentes en cuanto a protección, y la incorporación en Chrome bajo Windows 11 busca ofrecer mayor flexibilidad a los proveedores y mejorar la experiencia de streaming. Google planea mantener el soporte simultáneo de Widevine y PlayReady, seleccionando el más adecuado según el contenido y el dispositivo.

Además, Chrome incorporará un indicador de privacidad en la barra de direcciones para avisar cuando un sitio acceda a contenido protegido mediante PlayReady. De este modo ofrece al usuario la opción de permitir o bloquear dicho acceso. Con ello se intenta equilibrar seguridad, transparencia y control para el usuario final.

Limitaciones de Windows 10/11 N y el Media Feature Pack

Las ediciones N de Windows 10 y 11 eliminan componentes multimedia clave, lo que tiene un impacto directo en la reproducción de contenido de audio y vídeo, así como en el funcionamiento de DRM y ciertas aplicaciones. Aunque se puede instalar el Media Feature Pack para recuperar gran parte de la funcionalidad, Microsoft avisa de que no todo se restablece al cien por cien.

Entre las características afectadas se encuentran Alarmas y reloj (sonidos), sincronización de apps, Cortana con voz, funciones de audio y vídeo en OneNote, Edge, Fotos, OneDrive y otras apps de sistema. Si el usuario intenta abrir un vídeo almacenado en OneDrive con la app nativa, en una edición N sin el paquete multimedia, simplemente no funcionará la reproducción.

También resultan afectados Microsoft Teams (llamadas de audio/vídeo), Narrador con navegación por voz, la reproducción de vídeos en Microsoft Store y la vista previa de contenido multimedia. La herramienta de Recortes pierde la grabación de pantalla, el Editor de vídeo deja de funcionar, la escritura por voz y la cámara web fallan, y Windows Mixed Reality no es compatible. Incluso características como la pantalla inalámbrica, la sincronización de dispositivos portátiles, Game DVR o la Barra de juegos de Xbox se ven mermadas.

Todo esto implica que, para una implementación de DRM y reproducción segura mínimamente seria en Windows 11 N, es prácticamente obligatorio instalar el Media Feature Pack y probar de forma específica en estas ediciones, ya que la experiencia puede ser muy distinta a la de un Windows estándar.

Otros proveedores de DRM, seguridad en Android/iOS y soporte multiplataforma

El uso de DRM no se limita al ecosistema de Microsoft. Plataformas como Brightcove ofrecen soluciones de empaquetado, licenciamiento y reproducción que combinan PlayReady, Widevine y FairPlay en función del dispositivo. En navegadores de escritorio, se apoyan en MPEG-DASH con CENC para usar el DRM nativo y reducir el número de rendiciones necesarias para cubrir todos los casos.

En Android, Widevine define tres niveles de seguridad (L1, L2, L3). Solo L1 garantiza que las claves en claro solo sean visibles para un procesador seguro y que exista un camino de vídeo protegido; L2 y L3 sacrifican parte de esa protección, lo que se traduce en limitaciones de calidad de streaming para contenido protegido. Por ejemplo, en dispositivos que solo son L3, no se permite reproducir vídeo HD protegido desde servidores Widevine.

En iOS, FairPlay Streaming sobre HLS proporciona una solución optimizada para consumo de batería y compatibilidad con iPhone, iPad y Apple TV. Además, los SDK nativos de reproducción soportan descarga y visionado offline con DRM, que es una demanda creciente entre usuarios que viajan o tienen conexiones inestables.

En cuanto a PlayReady, sigue existiendo PlayReady para Smooth Streaming y PlayReady para MPEG-DASH. Muchos acuerdos con Microsoft incluyen límites de concurrencia que los servicios deben respetar. Si se supera el número de reproducciones simultáneas permitidas, las nuevas sesiones fallan por diseño, lo que hace aún más importante gestionar correctamente Secure Stop y la finalización de sesiones.

Visto todo lo anterior, la implementación paso a paso de DRM y reproducción segura en Windows 11 pasa por combinar un buen diseño de licencias, soporte de HWDRM con PlayReady, integración correcta en apps UWP y navegadores, controles de salida y pruebas exhaustivas en hardware real, incluyendo ediciones especiales como Windows N y escenarios con múltiples monitores o GPU. Solo así se puede ofrecer vídeo HD y UHD de forma segura sin sacrificar en exceso la experiencia del usuario final.

Arregla los problemas de audio en Windows 11 rápidamente
Artículo relacionado:
Arregla los problemas de audio en Windows 11 rápidamente

Add as preferred source