¿Qué es el cifrado DRM?
El cifrado DRM convierte los medios codificados en texto cifrado que un reproductor solo puede descifrar con la clave de contenido correspondiente. Un sistema de licencias entrega esa clave y sus reglas de uso a los clientes que autoriza.
Cómo funciona el cifrado DRM
El empaquetador aplica el cifrado después del encoding. Con Common Encryption (ISO/IEC 23001-7), que utilizan los flujos MP4 fragmentados para DASH y HLS, las muestras cifradas usan una clave AES de 128 bits conforme a uno de los cuatro esquemas del estándar; los dos que permite el formato de flujo del W3C para Encrypted Media Extensions son cenc (modo contador) y cbcs (encadenamiento de bloques cifrados, con un patrón que cifra solo una parte de cada muestra de video). Un flujo protegido también puede contener muestras sin cifrar, por ejemplo, un tramo inicial sin cifrar. Los medios no exponen la clave de contenido en texto claro. Contienen un ID de clave, de forma predeterminada en la caja de cifrado de pista (tenc). Para solicitar una licencia, el cliente de un sistema DRM necesita los datos de inicialización de ese sistema, cuya ubicación depende del formato de entrega. Para DASH, DASH-IF describe una cabecera específica del sistema de protección (pssh) para cada sistema, incluida en los medios, en el manifiesto como un elemento cenc:pssh, o en ambos; el manifiesto también indica el ID de clave mediante cenc:default_KID. Una lista de reproducción HLS señala las claves mediante etiquetas EXT-X-KEY, cuyo atributo URI especifica cómo obtener la clave; el contenido FairPlay debe usar el formato de clave com.apple.streamingkeydelivery en esa etiqueta. El reproductor entrega los datos de inicialización al módulo de descifrado de contenido del dispositivo, transmite la solicitud de licencia del módulo al servicio de licencias y devuelve la licencia al módulo; el descifrado se realiza entonces dentro del módulo. Las muestras se cifran una sola vez y solo la licencia se emite por cliente, de modo que todos los espectadores descargan los mismos segmentos cifrados y estos se pueden compartir y almacenar en caché como los no cifrados.
Datos clave
- ¿
cencocbcs? Los dos esquemas no son intercambiables, y el dispositivo debe ser compatible con el que se haya usado para empaquetar el contenido. El contenido FairPlay debe usar el método HLSSAMPLE-AES, que RFC 8216 define para MP4 fragmentado como el esquemacbcs, y la especificación de creación de contenido de Apple establece queSAMPLE-AES-CTRno debe usarse en dispositivos Apple. RFC 8216 no define ningún método de modo contador; sin embargo, la documentación de Media3 de Android incluye HLS en MP4 fragmentado como formato compatible con Widevinecency, en Android TV, con PlayReadycenc. Esa misma documentación indica que Widevine es compatible concencdesde Android 4.4, pero concbcssolo desde Android 7.1 (la propia tabla de plataformas de Widevine indica Android 7.x y versiones posteriores), y PlayReady añadiócbcsen la versión 4.0 del cliente, donde sigue siendo opcional. Por tanto, una sola copia encbcspuede servir a clientes de FairPlay, Widevine y PlayReady compatibles con el esquema, algo que el número de versión PlayReady 4.0 por sí solo no garantiza, y los clientes antiguos de Android o PlayReady necesitan una segunda copia encenc. Si empaquetas ambos, Microsoft establece que un servicio no debe cifrar el mismo contenido en ambos modos con el mismo ID de clave y la misma clave. - ¿Es secreto el ID de clave y con qué debe coincidir? No, es una etiqueta. El ID de clave viaja sin cifrar en la caja
tenc, en los datospsshy en los manifiestos DASH, e indica al cliente y al servicio de licencias qué clave se necesita; solo la propia clave es secreta y se entrega dentro de una licencia. Los identificadores deben coincidir en todos los niveles: DASH-IF exige que el valorcenc:default_KIDdel manifiesto coincida con el de la cajatenc, que considera la fuente de referencia, y una licencia que entregue una clave con un ID diferente impide descifrar las muestras, aunque el flujo se cargue. - ¿Funciona una sola copia cifrada con varios sistemas DRM? Sí, con los sistemas compatibles con el esquema utilizado: Common Encryption existe para que varios sistemas de claves puedan descifrar los mismos medios. Cada sistema sigue necesitando su propia señalización y un servicio de licencias capaz de devolver la misma clave. Los empaquetadores generan esa señalización para cada sistema; Shaka Packager, por ejemplo, puede emitir señalización de Widevine, PlayReady y FairPlay para un solo conjunto de claves. La ubicación de la señalización es importante para los navegadores: DASH-IF desaconseja incluir cajas
psshen los segmentos de inicialización, porque cada una que procese un navegador puede iniciar otra solicitud de licencia, a menos que el reproductor detecte y bloquee los duplicados, y señala que incluir los datospsshen el manifiesto permite añadir un sistema DRM sin modificar el contenido. - ¿Cuándo compensa la complejidad de la rotación de claves? DASH-IF describe su objetivo principal como exigir una nueva autorización periódica para contenido continuo en directo, por ejemplo, en los límites entre programas, y afirma explícitamente que el objetivo no es reforzar el cifrado. En Common Encryption, los ID de clave que van cambiando se señalan por muestra mediante grupos de muestras
seig, opcionalmente con datos de licencia en cajaspsshdentro de los fragmentos de película; en HLS, cada etiquetaEXT-X-KEYse aplica a los segmentos que le siguen hasta la siguiente etiqueta con el mismoKEYFORMATo hasta el final de la lista de reproducción. La rotación requiere compatibilidad del reproductor (Media3 de Android exige su modo multisesión para flujos con rotación de claves), cambios de clave alineados con los límites de los segmentos y solicitudes de licencia distribuidas a lo largo del tiempo para que no todos los clientes las soliciten en el mismo instante. DASH-IF describe una forma de distribuirlas que deja la responsabilidad en el sistema DRM: las claves actuales y las próximas se anuncian en los datospssh, y cada cliente elige un momento aleatorio para solicitar su licencia.
Cuándo es importante el cifrado DRM
Configura el cifrado al empaquetar flujos destinados a la reproducción controlada y protege las claves por separado. Una discrepancia en el identificador de clave, el esquema o la configuración de la licencia impide reproducir medios correctamente codificados.
Fuentes
- W3C: esquema de protección ISO Common Encryption para flujos en formato base de archivos multimedia ISO
- W3C: formato de datos de inicialización «cenc» (cajas pssh)
- Encrypted Media Extensions del W3C (esquemas de cifrado, ID de clave, módulos de descifrado de contenido)
- Puntos de interoperabilidad de DASH-IF v4.3, capítulo 7: protección y seguridad del contenido (secciones 7.3, 7.5 y 7.7)
- RFC 8216 (HTTP Live Streaming), sección 4.3.2.4: EXT-X-KEY
- Apple: especificación de creación de contenido HLS para dispositivos Apple (requisitos de protección del contenido)
- Microsoft PlayReady: modos de cifrado de contenido (compatibilidad con cenc y cbcs según la versión del cliente)
- ExoPlayer de Android Media3: gestión de derechos digitales (compatibilidad con esquemas, rotación de claves)
- Descripción general de Google Widevine DRM (esquemas de cifrado compatibles por plataforma)
- Documentación de Shaka Packager: DRM (esquemas de protección y sistemas de protección)