Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La funcionalidad básica de PlayReady es proteger el contenido frente al uso no autorizado. Para ello, el contenido debe cifrarse primero y se insertará un encabezado PlayReady asociado en el contenido. El sistema que realiza esta operación es el empaquetador, también conocido como el cifrador, que a veces se integra con el codificador.
En este tema se describen varias maneras de cifrar y entregar el contenido mediante PlayReady.
Empaquetado del contenido de PlayReady: cifrado e inserción del encabezado DRM
El proceso de cifrado de contenido no cifrado consiste en definir una o varias claves de cifrado, usando estas claves para cifrar los bytes que constituyen el propio contenido e insertar un encabezado DRM en el contenido (en los archivos del contenido o en el manifiesto si el contenido tiene uno).
Todo el contenido cifrado protegido por PlayReady debe tener un encabezado PlayReady insertado en el archivo cifrado. Este encabezado playReady lo usa un cliente de PlayReady para buscar o adquirir una licencia para ese fragmento de contenido concreto. Un encabezado PlayReady se compone de XML codificado en UTF-16. Incluye los identificadores de clave (KID) que se usan para cifrar el contenido, una dirección URL predeterminada que el cliente usará para adquirir una licencia si no se proporciona ningún otro y cualquier atributo personalizado.
Cualquier empaquetador que empaquete contenido claro debe implementar un generador de encabezados de PlayReady para compilar el encabezado e insertarlo en el contenido cifrado. El encabezado PlayReady debe implementarse según la especificación del encabezado PlayReady. Hay varias maneras de crear un generador de encabezados playReady en el empaquetador:
- Desarróllelo usted mismo en función de la especificación de encabezado de PlayReady.
- Utilice la API del SDK del servidor de PlayReady que genera un encabezado de PlayReady.
- Usa la API de Windows 10 que genera un encabezado playReady.
El contenido cifrado puede contener varios encabezados DRM, incluidos los encabezados PlayReady junto con encabezados DRM de terceros. Para obtener más información sobre cómo funciona esto, consulte Uso de herramientas de cifrado.
Tipo de contenido
PlayReady se puede usar para proteger el contenido de audio y vídeo. Los tipos de codificación más comunes que se usan con PlayReady son los estándares MPEG-4 AVC (H.264), High Efficiency Video Coding (HEVC) H.265 y AV1 estándar. PlayReady no se limita a estos estándares y se puede usar con cualquier formato de audio y vídeo compatible con el dispositivo cliente.
PlayReady versión 1 y 2 le permite crear un paquete protegido que contenga contenido que no está limitado a cargas de audio o vídeo. Estos paquetes, denominados sobres, pueden contener archivos como una colección de archivos de datos y ejecutables (por ejemplo, una aplicación distribuida por un almacén de aplicaciones), imágenes (por ejemplo, papel tapiz de pantalla) o libros electrónicos. Este contenido se empaqueta mediante la encapsulación de los archivos en un archivo de sobre, que se puede descifrar de forma similar al contenido de audio y vídeo.
Estos tipos de contenido que no son de audio y vídeo ya no se admiten en PlayReady 3.0 y versiones posteriores.
Herramientas de cifrado
Microsoft no incluye un empaquetador como parte de las entregas de PlayReady. En su lugar, PlayReady proporciona especificaciones basadas en estándares de cifrado comunes para que los usen los codificadores. Por lo tanto, el formato de cifrado no es específico de PlayReady, sino una función del formato de archivo. El formato de cifrado más usado actualmente es el formato estándar ISO de cifrado común, ISO/IEC 23001-7.
Básicamente, podría crear su propio empaquetador o trabajar con cualquier tipo de cifrado de código abierto (como ffmpeg). Además, puedes trabajar con una empresa de codificadores profesionales si quieres cifrar contenido con PlayReady (como Harmonic, Elemental, Ericsson, Wowza, Allegro).
Uso de herramientas de cifrado
PlayReady admite el estándar de cifrado común ISO IEC. Este proceso es el mismo que se describe en Proceso básico de cifrado y licencias, excepto que los encabezados se incluirán para otros DRM, cada uno como carga del cuadro Encabezado específico del sistema de protección ('pssh'), identificado por el ID del sistema del DRM. Todos esos encabezados tendrán su propia sintaxis que designa los KID o la información necesaria para acceder en última instancia a las claves de contenido. Y las claves de contenido de este recurso serán las mismas para todos los DRM.

Uso de claves de cifrado
Hay muchas maneras diferentes de cifrar los recursos. La más sencilla a la más sofisticada depende de la complejidad que desea diseñar en el sistema y cuáles son las necesidades del servicio.
Por ejemplo, un recurso de streaming adaptable, como se muestra en la ilustración siguiente. Tiene cuatro calidades de vídeo diferentes, una pista de audio y una pista de subtítulos. Se codifica en archivos MP4 segmentados, con segmentos de 2,0 segundos cada uno. Es un recurso que se sirve en varios formatos en función de lo que el cliente prefiere reproducir. Smooth Streaming, HLS y DASH son las variantes más comunes. Durante la reproducción, el cliente (el reproductor de vídeo) va a descargar sucesivamente los segmentos del recurso a través de la red, seleccionando para cada reproducción el segmento de vídeo desde la pista de vídeo adecuada, con el fin de mantener la calidad de reproducción lo más alta posible, dadas las restricciones del ancho de banda de red, la velocidad de reproducción y otros recursos limitados, como las funcionalidades del reproductor. Esta lógica se conoce como reproducción de streaming adaptable, que se rige por algunas reglas heurísticas implementadas en el reproductor.

Cifrado del recurso con una sola clave
La manera más sencilla de cifrar estos recursos sería usar una sola clave de contenido para cifrar todo (normalmente los subtítulos no están cifrados, no está en contra de ninguna regla, pero normalmente se mantienen sin cifrar). El uso de una clave de contenido facilita la vida al servidor de licencias porque el servidor de licencias tiene que entregar una clave {KID, CK}. Normalmente, el cliente adquiriría esta clave antes de que se produjera la reproducción.

Nota:
Los clientes de PlayReady pueden adquirir licencias de forma proactiva o reactiva. Consulte la página Adquisición de licencias para obtener una descripción de estos dos modos.
Cifrado del recurso con dos claves, dedicando una a la más alta calidad
En los últimos años se han realizado algunas mejoras para usar varias claves por recurso, principalmente controladas por el requisito de permitir que solo determinados clientes de mayor solidez consuman el contenido de mayor calidad. Con la llegada de contenido Ultra HD (4K) y con la adición de un alto rango dinámico (HDR) para contenido de color más alto, hubo una necesidad de estudios y servicios para permitir la mayor calidad solo en determinados clientes, que normalmente tienen DRM de hardware integrado. En este escenario, el recurso se cifra con una clave de contenido {kid1, ck1} para todas las pistas, excepto la pista 4K cifrada con una clave de contenido diferente {kid2, ck2}. Es decir:
- Un cliente que pueda reproducir solo hasta Full HD (no la pista 4K) recibirá una licencia de PlayReady que incluya solo {kid1, ck1}.
- Un cliente que tenga permiso para reproducir hasta 4K se le entregará una licencia de PlayReady, incluyendo {kid1, ck1} y {kid2, ck2}.
Con esta complejidad adicional, el servicio puede asegurarse de que algunos clientes no podrán descifrar la pista de 4K y que la pista 4K solo se puede reservar a los clientes en los que confía más el servicio.

Cifrado del recurso con una clave por pista
El servicio puede tener un mapa más complejo de derechos para aplicar. Algunos clientes, dependiendo de su tamaño de pantalla, su solidez, sus salidas y su ubicación, pueden tener acceso solo a algunas pistas de vídeo, algunas calidades de vídeo y algunas pistas de audio. Para asegurarse de que el servicio tiene plena flexibilidad para aplicar un conjunto arbitrario de restricciones en el futuro, puede cifrar un recurso con una clave de contenido específica de cada pista. Por ejemplo:
- A un cliente al que se le permite reproducir solo en 720p, le será entregada una licencia de PlayReady, incluyendo {kid1, ck1}, {kid2, ck2}, y {kidA, ckA}.
- A un cliente que pueda reproducir hasta en 4K se le entregará una licencia de PlayReady, que incluye {kid1, ck1}, {kid2, ck2}, {kid3, ck3}, {kid4, ck4} y {kidA, ckA}.
- Un cliente que juega sin conexión la versión 4K del recurso (descargado previamente) se entregará una licencia de PlayReady, incluyendo {kid4, ck4} y {kidA, ckA}.

Cambio de las claves de cifrado periódicamente (recurso de varios períodos): rotación de licencias
En algunos escenarios, el servicio quiere cambiar las claves de cifrado ocasionalmente, normalmente en los límites del programa. Por ejemplo, una secuencia lineal en vivo tiene varios períodos con contenido en abierto al que quiere que todos accedan, seguido de cierto contenido restringido a los suscriptores. Cambiar las claves de cifrado en los límites del programa permite al servicio entregar las claves de transmisión libre {KIDi1, CKi1} a todos los usuarios sin ninguna restricción y entregar las claves de contenido {kidi2, cki2} solo a los suscriptores que han iniciado sesión correctamente en el servicio.
Tenga en cuenta que esta rotación de licencias no es muy escalable: cada vez que cambian las claves de cifrado, todos los clientes solicitan las nuevas claves de cifrado mediante su propia solicitud de licencia. Esto puede dar lugar a un elevado pico de solicitudes de licencia en sistemas con un gran número de clientes.

Cambio de las claves de cifrado con frecuencia: rotación de claves escalables
Hay un mecanismo avanzado en PlayReady denominado rotación de claves escalable (en lugar de la rotación de licencias). Este método almacena un almacén de licencias incrustado (ELS) en el flujo del contenido real. En este mecanismo, la clave usada para cifrar el segmento A2 se denomina clave hoja {kidA2, ckA2}, y se entrega en el ELS del segmento A2, siendo cifrado por sí mismo con una clave independiente que es la misma para todos los segmentos de la pista A, denominada clave raíz {kidRA, ckRA}. Si está familiarizado con el MPEG-2 TS y el cifrado de Palabra de Control, se trata de un mecanismo similar, pero el cifrado es mucho más robusto y también es más flexible.
Digamos que este recurso es televisión lineal en directo. Cuando el cliente intenta reproducir, encuentra kidRA en el encabezado de PlayReady del manifiesto de secuencia y solicita una licencia para kidRA. El servidor de licencias devuelve una licencia raíz para la clave raíz {kidRA, ckRA}. A continuación, el cliente analiza el segmento A1 y detecta el ELS en el encabezado del segmento. Al analizar este ELS, encuentra la licencia tipo hoja {kidA1, ckA1} en este ELS. Con la clave raíz {kidRA, ckRA} y la licencia hoja {kidA1, ckA1}, puede obtener el valor de ckA1 y descifrar y representar el segmento A1.
La característica de rotación de claves escalables de PlayReady es extremadamente escalable porque no requiere que los clientes se comuniquen con el servidor de licencias cada vez que se cambien las claves de cifrado. Mantiene el volumen de solicitudes de licencia al nivel más bajo posible, ya que un cliente solo necesita una licencia raíz del servidor de licencias por flujo o pista. Facilita que las claves de cifrado cambien con tanta frecuencia como cada segmento, generalmente cada dos segundos si es necesario.
