
Uma extensão do Chrome que demonstra como contornar o DRM Widevine L3
Este repositório costumava conter código para contornar o Widevine L3 DRM no Chrome em máquinas Windows.
Não está mais funcionando desde 31 de maio de 2021, mas você pode ler o artigo de engenharia reversa.
Atualização
O Google emitiu uma solicitação de remoção por DMCA contra a maioria dos forks deste repositório. O conteúdo original do repositório na época está arquivado abaixo.
Widevine é um sistema DRM de propriedade do Google, usado por muitos serviços de streaming populares (Netflix, Spotify, etc.) para impedir o download de conteúdo de mídia.
Mas o nível de segurança mais baixo do Widevine, L3, como usado na maioria dos navegadores e PCs, é implementado 100% em software (ou seja, sem TEEs de hardware), tornando-o reversível e contornável.
Esta extensão do Chrome demonstra como é possível contornar o DRM do Widevine sequestrando chamadas para as Extensões de Mídia Criptografada (EME) do navegador e descriptografando todas as chaves de conteúdo Widevine transferidas — efetivamente transformando-o em um DRM de chave clara.
Para ver este conceito em ação, basta carregar a extensão no Modo Desenvolvedor e navegar para qualquer site que reproduza conteúdo protegido por Widevine, como https://bitmovin.com/demos/drm [Atualização: link quebrado?].
As chaves serão registradas em texto simples no console javascript.
ex:
WidevineDecryptor: Found key: 100b6c20940f779a4589152b57d2dacb (KID=eb676abbcb345e96bbcf616630f1a3da)
Descriptografar a mídia em si é então apenas uma questão de usar uma ferramenta que possa descriptografar streams MPEG-CENC, como ffmpeg.
ex:
ffmpeg -decryption_key 100b6c20940f779a4589152b57d2dacb -i encrypted_media.mp4 -codec copy decrypted_media.mp4
NOTA: A extensão atualmente suporta apenas a plataforma Windows.
No contexto dos navegadores, a descriptografia real da mídia geralmente é feita dentro de um binário proprietário (widevinecdm.dll, conhecido como Módulo de Descriptografia de Conteúdo ou CDM) somente após receber a licença de um servidor de licenças com uma chave criptografada.
Este binário geralmente é fortemente ofuscado e faz uso de soluções de terceiros que afirmam oferecer "proteção" de software, como Arxan ou Whitecryption.
Algum trabalho de engenharia reversa nesse binário pode então ser feito para extrair as chaves secretas e imitar o algoritmo de descriptografia de chaves a partir da resposta da licença.
Esta Prova de Conceito foi feita para mostrar ainda mais que ofuscação de código, truques anti-debug, algoritmos de criptografia whitebox e outros métodos de segurança por obscuridade serão eventualmente derrotados de qualquer maneira e são, de certa forma, inúteis.
Isso NÃO tem a intenção de violação de direitos autorais ou incentivo à pirataria.
Isso é apenas para fins educacionais. Baixar materiais protegidos por direitos autorais de serviços de streaming pode violar seus Termos de Serviço. Use por sua conta e risco.