Widevine es un sistema propietario de gestión de derechos digitales (DRM) desarrollado por Google . Proporciona protección de contenido para los 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 principales navegadores web y en Android e iOS .
Widevine fue desarrollado originalmente por Internet Direct Media, que luego pasó a llamarse Widevine Technologies. Tras varias rondas de financiación, la empresa fue adquirida por Google en 2010 por una cantidad no revelada.
Widevine fue creado por Internet Direct Media, con sede en Seattle , en 1999 como 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ó cifrado DES-X para evitar estas técnicas. [4] Widevine Technologies se asoció con la empresa de streaming Midstream Technologies, con sede en Bellevue , en abril. [5] Baker regresó a la empresa en 2001, llevá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 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 financiación adicional en 2004 de Constellation Ventures y Pacesetter Capital, junto con Phoenix Capital Partners, en una ronda de financiación liderada por VantagePoint Venture Partners, que le reportó a la empresa 13 millones de dólares. [9]
Widevine Technologies se diversificó en el sector de las marcas de agua digitales en 2005, asociándose con la empresa de procesamiento de contenidos 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 proveedores que utilizan Widevine aumentaron constantemente hasta 2010. En agosto de 2008, CinemaNow utilizó Widevine para ampliar su alcance a múltiples dispositivos, incluidos Nintendo Wii , reproductores de discos de LG y Samsung , y iPhone y 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 streaming utilizando Adobe Flash , incluido 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 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 que Viacom presentó una apelación en Viacom v. YouTube , un caso relacionado con 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 convertía 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 produce completamente en un TEE y el contenido está disponible en su resolución original. En Widevine L2, el descifrado y procesamiento de medios se produce 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 produce en el 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 del 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 distintas 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, incluido MPEG Common Encryption (CENC), Encrypted Media Extensions (EME), Media Source Extensions (MSE) y Dynamic Adaptive Streaming sobre 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 desde una red de entrega de contenido (CDN). Luego, el contenido se envía al Módulo de descifrado de contenido (CDM), que crea una solicitud de licencia para enviarla 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, necesarios 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 el flujo 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 videos 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 Protocol Buffers . [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 generalmente se realiza una vez. Durante el aprovisionamiento, el CDM crea un nonce y deriva claves para el descifrado de certificados y comprobaciones de integridad, así como también buffers generados dinámicamente. La clave del dispositivo se trata como la raíz de confianza (RoT). La clave de cliente derivada de RoT protege la solicitud mediante HMAC . [42] El RoT se establece a través de un componente provisto de fábrica llamado "keybox". La caja de claves tiene una longitud de 128 bytes con dos campos especiales. La integridad de la caja de claves se verifica verificando que los últimos ocho bytes coincidan con un número mágico ("kbox") seguido de una verificación de redundancia cíclica (CRC-32). [43] Los otros 120 bytes comprenden un ID de dispositivo interno (32 bytes), una clave de estándar de cifrado avanzado (16 bytes) y un token de aprovisionamiento (72 bytes). [44]
Cada clave de contenido está asociada con un bloque de control de clave de 128 bits, que especifica restricciones de seguridad. El bloque de control de claves garantiza los requisitos de seguridad de la ruta de datos en clientes como Android, donde el vídeo 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 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 audio y video con la misma clave o incluso no cifrar el audio en absoluto. [47]
Widevine está incluido en la mayoría de los principales navegadores web, 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 apoyado a Widevine directamente en un esfuerzo por eliminar el soporte NPAPI . [50] Además, Widevine es compatible con Android e iOS. [30] Los servicios de streaming 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 es compatible con 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 API DRM de Android a las 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 proxy para el TEE, mientras que en L3, la biblioteca contiene el CDM ofuscado. Además, la biblioteca liboemcrypto.so
reúne y desclasifica solicitudes al trustlet Widevine para Widevine L1 a través de un controlador TEE especializado, como QSEEComAPI.so
Qualcomm Secure Execution Environment (QSEE). [55]
iOS no es compatible de forma nativa con DASH o CENC. Para solucionar esta limitación, Widevine transmuta DASH a HLS; Universal DASH Transmuxer (UDT) analiza el manifiesto DASH utilizando un analizador XML , como libxml2 . Luego, el UDT crea una lista de reproducción HLS. [56]
Widevine ha sido explotado varias veces. Investigadores de la Universidad Ben-Gurion del Negev descubrieron una vulnerabilidad en Widevine en junio de 2016; la vulnerabilidad permitía a los usuarios obtener una versión descifrada del contenido protegido en caché . [57]
En enero de 2019, el investigador de seguridad David Buchanan afirmó haber roto Widevine L3 a través de un ataque de análisis de fallas diferenciales en la implementación de caja blanca de AES-128 de Widevine , lo que permitió a Buchanan recuperar la clave original utilizada para cifrar una transmisión. La transmisión MPEG-CENC podría luego descifrarse usando ffmpeg . [58] [59] Una vulnerabilidad similar fue explotada en octubre de 2020. [60]
En 2021, los investigadores de seguridad realizaron ingeniería inversa y rompieron la versión de Android de Widevine L3. [61] El mismo año, Qi Zhao presentó el primer ataque que rompía Widevine L1 en Android recuperando la caja de claves L1. [62]
remote_attestation_verified
está habilitado. remote_attestation_verified
requiere el uso de un Módulo de plataforma segura (TPM) y está habilitado en el arranque para dispositivos con un TPM. [39]