Widevine es un sistema de gestión de derechos digitales (DRM) patentado desarrollado por Google . Proporciona protección de contenido para medios. Widevine se divide en tres niveles de seguridad con diferentes niveles de protección según el hardware presente en el dispositivo. Widevine está incluido en la mayoría de los navegadores web principales y en Android e iOS .
Widevine fue desarrollado originalmente por Internet Direct Media, que luego cambió su nombre a Widevine Technologies. Tras varias rondas de financiación, la empresa fue adquirida por Google en 2010 por una cantidad no revelada.
Widevine fue creada por Internet Direct Media, con sede en Seattle , en 1999 con el nombre de Widevine Cypher. [1] La empresa, fundada por el ejecutivo Brian Baker y el investigador de criptografía Jeremy Horwitz, cambió su nombre a Widevine Technologies. [2] [3]
En febrero de 2001, Widevine Technologies lanzó Widevine Cypher Enterprise; en ese momento, técnicas como la grabación de pantalla y el monitoreo de solicitudes de red eran comunes. Widevine Cypher utilizó el cifrado DES-X para evitar estas técnicas. [4] Widevine Technologies se asoció con la empresa de transmisión con sede en Bellevue Midstream Technologies en abril. [5] Baker regresó a la empresa en 2001, guiándola a través de un proceso de reestructuración; el proceso implicó recapitalizar la empresa y despedir a muchos de sus empleados. [6]
En junio de 2003, Widevine Technologies obtuvo 7,8 millones de dólares en financiación de las empresas de capital de riesgo Constellation Ventures y Pacesetter Capital. [7] Ese mismo año, Widevine Technologies se asoció con la empresa de telecomunicaciones taiwanesa Chunghwa Telecom en un esfuerzo por asegurar su servicio de vídeo a la carta . [8] Widevine Technologies recibiría más financiación en 2004 de Constellation Ventures y Pacesetter Capital, junto con Phoenix Capital Partners, en una ronda de financiación liderada por VantagePoint Venture Partners, lo que le reportó a la empresa 13 millones de dólares. [9]
Widevine Technologies se diversificó en el ámbito de las marcas de agua digitales en 2005, asociándose con la empresa de procesamiento de contenido TVN Entertainment (ahora Vubiquity) para su sistema Mensor. [10] Widevine Mensor inserta una carga útil de 64 bits en la señal, una operación computacionalmente económica. [11]
En abril de 2006, Constellation Ventures, Pacesetter Capital, Phoenix Capital Partners y VantagePoint Venture Partners se unieron a la empresa de comunicaciones digitales Cisco Systems y a la empresa canadiense de telecomunicaciones Telus para invertir 16 millones de dólares en Widevine Technologies. La participación de Cisco en la inversión se produjo tras la adquisición del fabricante de decodificadores Scientific Atlanta por 7.000 millones de dólares. [12] En un acuerdo de seis años, Widevine obtuvo un contrato con Telus para utilizar su tecnología en las plataformas de Telus. [13]
El 3 de agosto de 2007, Widevine Technologies presentó una demanda por infracción de patente contra la empresa de seguridad de contenidos Verimatrix . [14] Las dos empresas llegaron a un acuerdo en marzo de 2010. [15]
Los vendedores que utilizan Widevine aumentaron de forma constante hasta 2010. En agosto de 2008, CinemaNow utilizó Widevine para expandir su alcance a múltiples dispositivos, incluyendo la Nintendo Wii , reproductores de discos de LG y Samsung , y el iPhone y el iPod . [16] Para implementar DRM en Microsoft Silverlight para navegadores que no utilizan Microsoft Windows , Microsoft trabajó con Widevine Technologies. [17] Widevine también se implementó en varios servicios de transmisión que utilizan Adobe Flash , incluyendo contenido de Sony y Warner Bros. distribuido en la red social virtual Gaia Online . [18]
En diciembre de 2009, Widevine recibió 15 millones de dólares adicionales en financiación de la empresa de telecomunicaciones Liberty Global y Samsung Ventures, la filial de capital de riesgo de Samsung. [19] Samsung ampliaría su uso de Widevine en junio de 2010. [20] LoveFilm firmó un acuerdo con Widevine en julio de 2010. [21]
El 3 de diciembre de 2010, Google anunció que había adquirido Widevine por una cantidad no revelada. [22] La adquisición se produjo el mismo día en que Viacom presentó una apelación en Viacom v. YouTube , un caso sobre el papel de Google en los usuarios que suben contenido propiedad de Viacom a YouTube . [23] Un informe de CNN en febrero de 2011 reveló que Google había pagado 150 millones de dólares por Widevine, a pesar de que una valoración interna de la empresa estaba entre 30 y 40 millones de dólares, lo que la convirtió en la novena adquisición más grande de la empresa hasta ese momento. [24]
Widevine se divide en tres niveles de seguridad. El nivel de seguridad utilizado depende del uso de un entorno de ejecución confiable (TEE) en el dispositivo cliente. Por ejemplo, los procesadores ARM Cortex-A implementan la tecnología TrustZone , lo que permite que la criptografía y el procesamiento de video se realicen completamente dentro del TEE. [25] En Widevine L1, el descifrado y procesamiento de medios se realiza completamente en un TEE y el contenido está disponible en su resolución original. En Widevine L2, el descifrado y procesamiento de medios se realiza en software o hardware de video dedicado, a pesar de la presencia de un TEE, y el contenido está disponible en una resolución fija. En Widevine L3, el descifrado y procesamiento de medios se realiza en software y no hay TEE presente, y el contenido está disponible en una resolución fija. [26]
En Android , Widevine L1 se puede implementar en Stagefright, el motor de reproducción multimedia de Android. [27] Esto se implementa en chips Qualcomm , donde un componente OpenMAX (OMX) se comunica con el controlador de video a nivel de kernel . La memoria multimedia se crea a través del controlador de la unidad de administración de memoria para ION, un administrador de memoria introducido en Android 4.0 para abordar las diversas interfaces de administración de memoria en Android. [28] Luego se asigna el búfer de entrada/salida, y el contenido se descifra y se almacena en un búfer de entrada seguro en TrustZone. [29]
Widevine utiliza múltiples estándares y especificaciones, entre ellos MPEG Common Encryption (CENC), Encrypted Media Extensions (EME), Media Source Extensions (MSE) y Dynamic Adaptive Streaming over HTTP (DASH). [30] Además, Widevine admite el protocolo HTTP Live Streaming (HLS), desarrollado por Apple Inc. en 2009. [31]
En una implementación de Widevine, un navegador recibe contenido cifrado de una red de distribución de contenido (CDN). Luego, el contenido se envía al módulo de descifrado de contenido (CDM), que crea una solicitud de licencia para enviar al servidor de licencias. Luego, el reproductor recibe una licencia del servidor de licencias y la pasa al CDM. Para descifrar la transmisión, el CDM envía los medios y la licencia al módulo OEMCrypto, necesario para descifrar el contenido. [32] OEMCrypto es una interfaz para el TEE; la mayoría de las implementaciones garantizan que las claves de sesión, las claves de contenido descifrado y la transmisión de contenido descifrado no sean accesibles para otras aplicaciones en ejecución. Esto generalmente se logra a través de un procesador secundario con memoria separada . [33] Luego, el contenido se envía a la pila de video y se muestra al usuario final en fragmentos. [34] Los mensajes de solicitud de licencia y respuesta de licencia se envían y reciben mediante búferes de protocolo . [35]
Los proveedores pueden implementar su propio servidor proxy dentro del servidor de licencias, en los casos en que la autorización del usuario sea administrada por el servidor proxy preexistente del proveedor. [36] Esta configuración requiere el uso del servidor proxy como intermediario. [37] Widevine requiere el uso de certificados de servicio a partir de Chrome 59, junto con iOS y algunas configuraciones de ChromeOS . [38] [nota 1] Un servidor proxy puede optar por negarse a emitir licencias para navegadores que no implementen un marco "verificable", también conocido como Verified Media Path (VMP). En particular, los navegadores que se ejecutan en Linux no están incluidos en VMP. [40] De manera similar, el servidor proxy puede aplicar la versión de protección de contenido digital de alto ancho de banda (HDCP) utilizada en el dispositivo cliente. [41]
En los dispositivos Widevine L1, el aprovisionamiento de certificados se realiza normalmente una vez. Durante el aprovisionamiento, el CDM crea un nonce y deriva claves para el descifrado de certificados y las comprobaciones de integridad, así como búferes generados dinámicamente. La clave del dispositivo se trata como la raíz de confianza (RoT). La clave del cliente derivada de RoT protege la solicitud mediante HMAC . [42] La RoT se establece a través de un componente provisto de fábrica llamado "keybox". El keybox tiene 128 bytes de longitud con dos campos especiales. La integridad del keybox se comprueba verificando que los últimos ocho bytes coincidan con un número mágico ("kbox") seguido de una comprobación de redundancia cíclica (CRC-32). [43] Los otros 120 bytes comprenden un ID de dispositivo interno (32 bytes), una clave de Advanced Encryption Standard (16 bytes) y un token de aprovisionamiento (72 bytes). [44]
Cada clave de contenido está asociada a un bloque de control de clave de 128 bits, que especifica restricciones de seguridad. El bloque de control de clave garantiza los requisitos de seguridad de la ruta de datos en clientes como Android, donde el video y el audio se cifran por separado, y proporciona un valor de tiempo de espera al TEE. El bloque está cifrado AES-128-CBC con un vector de inicialización aleatorio (IV), y los campos se definen en orden de bytes big-endian . Los valores del bloque comprenden un campo de verificación, un campo de duración (expresado en segundos), un nonce y bits de control, todos de 32 bits cada uno. [45] Los bits de control son una serie de campos de bits que controlan la versión de HDCP que se puede utilizar, el tipo de ruta de datos, si se debe utilizar o no un nonce y el sistema de gestión general de copias (CGMS) utilizado. [46] A pesar de esto, los proveedores aún pueden optar por cifrar el audio y el video con la misma clave o incluso pueden no cifrar el audio en absoluto. [47]
Widevine está incluido en la mayoría de los navegadores web principales, incluido Google Chrome . Los derivados de Chromium , incluidos Microsoft Edge , Vivaldi , [48] y Opera , también implementan Widevine. [49] Desde junio de 2016, Firefox ha admitido Widevine directamente en un esfuerzo por eliminar la compatibilidad con NPAPI . [50] Además, Widevine es compatible con Android e iOS. [30] Los servicios de transmisión que utilizan Widevine incluyen Netflix , Disney+ , [51] Amazon Prime Video , Max , Hulu , Paramount+ y Discovery+ . [52] Desde Android 5 , la versión de Google Chrome utilizada en Android admite Widevine. [53] En febrero de 2021, Firefox para Android agregó Widevine. [54]
En Android, Widevine se implementa a través de un complemento de módulo de capa de abstracción de hardware (HAL). La biblioteca Widevine en Android traduce las llamadas a la API de DRM de Android a las de CDM de Widevine, y su función varía según el nivel de seguridad implementado; en Widevine L1, la biblioteca Widevine actúa como un proxy para el TEE, mientras que en L3, la biblioteca contiene el CDM ofuscado. Además, la biblioteca liboemcrypto.so
ordena y desordena las solicitudes al trustlet Widevine para Widevine L1 a través de un controlador TEE especializado, como QSEEComAPI.so
el de Qualcomm Secure Execution Environment (QSEE). [55]
iOS no es compatible de forma nativa con DASH o CENC. Para solucionar esta limitación, Widevine transmuxea DASH a HLS; el Transmuxer Universal DASH (UDT) analiza el manifiesto DASH utilizando un analizador XML , como libxml2 . A continuación, el UDT crea una lista de reproducción HLS. [56]
El 31 de mayo de 2021, se suspendió el soporte para Linux de 32 bits y el contenido protegido con DRM no se puede reproducir en esta plataforma. [57] [58]
Widevine ha sido explotado en múltiples ocasiones. Investigadores de la Universidad Ben-Gurion del Néguev descubrieron una vulnerabilidad en Widevine en junio de 2016; la vulnerabilidad permitía a los usuarios obtener una versión descifrada de contenido protegido en caché . [59]
En enero de 2019, el investigador de seguridad David Buchanan afirmó haber violado la capa 3 de Widevine mediante un ataque de análisis de fallas diferenciales en la implementación de caja blanca de AES-128 de Widevine , lo que le permitió recuperar la clave original utilizada para cifrar una transmisión. La transmisión MPEG-CENC se pudo descifrar utilizando ffmpeg . [60] [61] Una vulnerabilidad similar fue explotada en octubre de 2020. [62]
En 2021, la versión Android de Widevine L3 fue sometida a ingeniería inversa por investigadores de seguridad. [63] El mismo año, Qi Zhao presentó el primer ataque que rompió Widevine L1 en Android al recuperar la caja de claves L1. [64]
En 2019, un desarrollador intentó incluir Widevine en una aplicación basada en Electron/ Chromium para reproducción de videos y no recibió ninguna respuesta de Google después de solicitar un acuerdo de licencia, lo que bloqueó efectivamente el uso de DRM en el proyecto. [65] [66] Más tarde recibió la respuesta:
Lo sentimos, pero no apoyamos una solución de código abierto como esta.
— Soporte de Google Widevine, https://blog.samuelmaddock.com/widevine/gmail-thread.html
Lo mismo ocurrió con otros proyectos de Electron. [67]
Widevine apoya los proyectos Electron y Electron a través de un integrador externo. [68]
remote_attestation_verified
está habilitado. remote_attestation_verified
requiere el uso de un Módulo de plataforma confiable (TPM) y se habilita en el arranque para dispositivos con un TPM. [39]