该仓库曾包含用于绕过 Windows 机器上 Chrome 浏览器中 Widevine L3 DRM 的代码。
自 2021 年 5 月 31 日起已不再有效,但您可以阅读逆向分析报告。
更新
Google 针对该仓库的大部分分支发出了 DMCA 删除请求。仓库当时的原始内容已归档如下。
Widevine 是 Google 旗下的 DRM 系统,被许多流行的流媒体服务(Netflix、Spotify 等)用于保护媒体内容不被下载。
但 Widevine 安全性最低的 L3 级别(大多数浏览器和 PC 所采用的)完全以软件方式实现(即没有硬件 TEE),因此可以逆向并绕过。
该 Chrome 扩展程序通过劫持浏览器 加密媒体扩展 (EME) 的调用,并解密所有传输的 Widevine 内容密钥,展示了绕过 Widevine DRM 的可能性——实质上将其转变为 clearkey DRM。
要查看此概念的实际效果,只需在开发者模式下加载该扩展程序,然后访问任何播放受 Widevine 保护内容的网站,例如 https://bitmovin.com/demos/drm [更新:链接可能已失效]。
密钥将以明文形式记录到 JavaScript 控制台中。
例如:
WidevineDecryptor: Found key: 100b6c20940f779a4589152b57d2dacb (KID=eb676abbcb345e96bbcf616630f1a3da)
随后,解密媒体本身只需使用能够解密 MPEG-CENC 流的工具(例如 ffmpeg)即可。
例如:
ffmpeg -decryption_key 100b6c20940f779a4589152b57d2dacb -i encrypted_media.mp4 -codec copy decrypted_media.mp4
注意:该扩展程序目前仅支持 Windows 平台。
在浏览器环境中,媒体的实际解密通常是在专有二进制文件(widevinecdm.dll,即内容解密模块 CDM)内部完成的,该过程仅在从许可证服务器接收到包含加密密钥的许可证后才进行。
该二进制文件通常经过高度混淆,并使用了声称提供软件“保护”的第三方解决方案,例如 Arxan 或 Whitecryption。
随后,可以对二进制文件进行逆向工程,以提取密钥并模拟从许可证响应中解密密钥的算法。
此概念验证旨在进一步说明:代码混淆、反调试技巧、白盒密码算法及其他安全通过模糊化的方法,最终都会被破解,而且在某种程度上是毫无意义的。
不旨在侵犯版权或鼓励盗版。
本文仅用于教育目的。从流媒体服务下载受版权保护的材料可能违反其服务条款。使用风险自负。