Widevine、FairPlay 和其他 DRM 是如何在幕后工作的?

信息安全 加密 Web应用程序 AES drm 朦胧
2021-08-29 19:18:51

我试图了解 DRM 如何在幕后工作。网上似乎没有太多关于它的信息,所以我想我会在这里问。

经过一些尝试性研究,我发现很难找到有关 Widevine 或 FairPlay DRM 实际工作原理的任何信息。有一些关于内容解密模块 (CDM) 等的一般信息,但它的实际工作原理似乎是一个谜。我想知道这是否是故意的,因为大部分 DRM 可能是通过默默无闻的安全性。

我对 DRM 的基本/抽象理解是文件通常使用 AES 加密。当 DRM 解决方案试图访问文件时,密钥会从服务器传输到 CDM,以便使用某种专有方法对其进行解密(这是我希望更好地理解的部分)。然后将解密的内容返回给应用程序(通常是浏览器)进行播放。这个对吗?

如果是上述情况,我假设攻击者可以简单地编辑 CDM 的二进制文件以访问密钥或解密后的文件。

3个回答

如果是上述情况,我假设攻击者可以简单地编辑 CDM 的二进制文件以访问密钥或解密后的文件。

这就是为什么很多 DRM 系统没有在 Linux 系统上实现的原因......

为了能够运行 DRM,播放器必须由 DRM 提供商“认证”,并且必须为此设置密钥/解密过程提供某种安全方式。

在移动设备上,通常使用 TEE(可信执行环境)、SecureZone 或任何能够在系统上充当加密预言机的东西来完成。对于 Windows,使用了其他机制,可能是二进制级别的反调试、TPM 或类似的东西。

这并不意味着您将无法获得加密密钥,只是会非常困难。

(免责声明:我的 POV 可能会因我试图破解的保护而略有偏差,我有时会谈论我不知道的东西,我认为它是这样工作的,因为我知道类似的 DRM 工具会这样工作)

Conor 是对的:总体而言,谈论 DRM 过于宽泛:您在问题中谈到了服务器,但最常用的版权内容之一甚至不需要服务器 (DVD)。

DRM 工具用途:

DRM有很多不同的目标(可以是地理限制、用户限制等),但大多数时候是为了避免专有作品的私人复制。

DRM 工具的工作原理:

原理几乎总是相同的:您想要访问 X。1) 获取 H[X] X 的加密副本。(通过下载或物理副本) 2) 获取将 H[X] 转换为 X 的密钥. (激活许可证,有时是自动的) 3) 解密 H[X] 得到 X。

关于它的工作方式有很多例外,有时它是完全加密的,有时是部分加密的。有时它是物理钥匙,有时是虚拟钥匙……您还可以找到大量不同的模块来使每个副本独一无二,使用其他钥匙无法读取,更难 RE,临时可用等。

DRM 安全是通过默默无闻的吗?

99%:是的。

为什么不是100%?因为(在大多数情况下再次)您需要先购买内容的人来分析 DRM 并提供解决方法。在某种程度上,DRM 是完全安全的,直到有人可以访问副本。因此,每个 DRM 都是易碎的

了解和破解 DRM

因为不可能谈论每个 DRM,所以我们不能说攻击纯粹是对 CDM 的二进制解密。让我们用一些简单的例子来谈谈 DRM 是如何受到攻击的:

  • 音乐和视频内容 (Deezer): 在 Deezer 上下载歌曲时,您会得到无法读取的文件,而 Deezer 应用程序有打开它们的钥匙。保持简单:像 Audacity 这样的软件能够获取音频输出。此漏洞适用于所有非交互式内容,称为模拟漏洞

  • 电视: 电视内容是无线电波。如果内容受到保护,它将被加密。您需要购买解码器,并且可以使用电视。要破解这个问题,您需要在硬件级别反转解码器:了解逻辑电路如何工作并重现它。(这里也有模拟孔,但它的相关性较低,因为它更难保持活跃)

  • 软件: 这里很有趣,有很多可能性。首先,您将拥有专门为您加密的文件,并使用激活密钥(大多数情况下它是自动的)将您的计算机连接到服务器,使用密钥登录,它会给您一个许可证来验证和解密您的文件. 在这里你几乎别无选择来破解它:你将不得不重新编译二进制文件。那该怎么办?这要看情况。由于在软件使用期间文件在客户端是未加密的,因此始终*可以将它们提供给任何人(创建破解)。另一种可能性是创建一个能够重现许可行为的软件**。

*通常真的很难,但并非不可能

**这并不总是可能的,还有很多其他的保护措施。

如何保护内容?

有两种方法可以避免裂缝

  • 使用最好的安全性

正如我所说,破解软件很难,但并非不可能,如果你想制作一个极其高效的 DRM 工具,它可以使用数月、数年或十年。你需要评估你的内容能保持安全多长时间,以及如何只要您的内容被破解就可以了。由于大部分内容在过去并不经常出售,因此破解版目前不是问题。

如何做好防护?

(只是我的观点)硬件真的很难理解,有物理保护和许多不同的实现可能性,硬件保护的内容可能是最难恢复的。

  • 使用不良保护

是的。这听起来很奇怪,但它“有效”。您无法 100% 保护您的内容?很好,保护它并免费修改它的副本!人们不会费心创建破解,而没有购买内容的人会得到一个不那么令人愉快的版本。一些游戏做到了这一点,对 Alan Wake 的荣誉提及并没有影响游戏玩法。它有一些明显的缺点,但还不错: - 你可以在 DRM 上省钱 - 使用破解的人,即使不存在破解,也可能不会购买内容。(你不会损失很多钱)

TL;DR DRM 是关于混淆的;这不是 100% 安全的。因此,即使有经常使用的模型模式,也不会透露 DRM 实现细节。

您的基本理解基本正确:

  • 您有一个媒体文件或媒体流,它使用对称密钥(几乎总是 AES-128 变体)加密。
  • 想要回放该流的用户需要获得该密钥的副本,但同样重要的是,需要有一个受信任的软件和受信任的硬件一个例子是在所有现代浏览器中运行的 CDM。
    • 问题是,谁信任?为什么,当然是内容提供商。换言之,内容发布者需要对用户运行的软件/硬件将执行任何内容使用策略(例如“租用 48 小时且不再租用”)具有良好的信心。
    • 这是关键:需要信任软件/硬件来处理解密过程,尤其是解密密钥,这使得攻击者很难访问其中任何一个在实践中,这意味着是的,混淆。但这也可能意味着(如 binarym 的回答中所述)硬件支持的可信执行环境或类似的。以及大量(几乎总是专有的)软件防篡改技术。
  • 现在让我们回到内容密钥是如何传送到用户设备的。这通常是通过某种密码挑战/响应机制,这意味着涉及 PKI换句话说,对密钥请求进行签名(以证明设备的身份),并使用设备的公钥对密钥响应进行加密。
    • 这样做的目的是确保即使用户掌握了最终存储密钥的文件,他们也无法将其分发到其他设备,这些设备应该具有不同的 PKI 唯一材料。

不同的商业 DRM 系统将采用上述的变体,但一般模式或多或少与上述相同。(有关主题的细微变化,另请参阅我在 StackOverflow 上给出的答案)。