
Una extensión de Chrome que demuestra cómo evadir el DRM Widevine L3.
Este repositorio solía contener código para eludir el DRM L3 de Widevine en Chrome en máquinas Windows.
Ya no funciona a partir del 31 de mayo de 2021, pero puedes leer el informe de reversión.
Actualización
Google emitió una solicitud de eliminación por DMCA contra la mayoría de los forks de este repositorio. Los contenidos originales del repositorio en ese momento están archivados a continuación.
Widevine es un sistema DRM propiedad de Google que es utilizado por muchos servicios de streaming populares (Netflix, Spotify, etc.) para evitar que el contenido multimedia sea descargado.
Pero el nivel de seguridad menos seguro de Widevine, L3, tal como se utiliza en la mayoría de navegadores y PCs, está implementado 100% en software (es decir, sin TEEs de hardware), lo que lo hace reversible y evitable.
Esta extensión de Chrome demuestra cómo es posible eludir el DRM de Widevine secuestrando las llamadas a las Extensiones de Medios Encriptados (EME) del navegador y descifrando todas las claves de contenido de Widevine transferidas, convirtiéndolo efectivamente en un DRM de clave clara.
Para ver este concepto en acción, simplemente carga la extensión en Modo Desarrollador y navega a cualquier sitio web que reproduzca contenido protegido por Widevine, como https://bitmovin.com/demos/drm [Actualización: ¿enlace roto?].
Las claves se registrarán en texto plano en la consola de JavaScript.
ejemplo:
WidevineDecryptor: Found key: 100b6c20940f779a4589152b57d2dacb (KID=eb676abbcb345e96bbcf616630f1a3da)
Descifrar el medio en sí es entonces solo cuestión de usar una herramienta que pueda descifrar flujos MPEG-CENC, como ffmpeg.
ejemplo:
ffmpeg -decryption_key 100b6c20940f779a4589152b57d2dacb -i encrypted_media.mp4 -codec copy decrypted_media.mp4
NOTA: La extensión actualmente solo es compatible con la plataforma Windows.
En el contexto de los navegadores, el descifrado real del medio generalmente se realiza dentro de un binario propietario (widevinecdm.dll, conocido como el Módulo de Descifrado de Contenido o CDM) solo después de recibir la licencia de un servidor de licencias con una clave encriptada dentro.
Este binario suele estar fuertemente ofuscado y hace uso de soluciones de terceros que afirman ofrecer 'protección' de software, como Arxan o Whitecryption.
Luego se puede realizar un trabajo de reversión en ese binario para extraer las claves secretas e imitar el algoritmo de descifrado de claves a partir de la respuesta de la licencia.
Esta PoC se realizó para demostrar aún más que la ofuscación de código, los trucos anti-depuración, los algoritmos de criptografía de caja blanca y otros métodos de seguridad por oscuridad eventualmente serán derrotados de todos modos y, de cierta manera, no tienen sentido.
Esto NO está destinado a la infracción de derechos de autor ni a fomentar la piratería.
Esto es solo con fines educativos. Descargar materiales protegidos por derechos de autor de servicios de streaming puede violar sus Términos de Servicio. Úselo bajo su propio riesgo.