如果我们有 CENC、MSE 和 EME,Marlin DRM 有什么用?

What's Marlin DRM used for if we have CENC, MSE and EME?

最近我一直在阅读有关视频流安全性的不同技术,我对 Marlin DRM 有疑问。

据我所知,它是一个中间 "DRM",因此客户不需要集成所有其他 DRM。但这不是通用加密 (CENC) 所做的吗?然后我们有 MSE 和 EME 扩展来处理代码中的视频,所以... Marlin 有什么用?

CENC 只是描述了如何保护文件。特别是如何以标准方式对其进行加密,以便任何拥有密钥的播放器都可以对其进行解密。这只是 DRM 等式的一半。另一半是身份验证、密钥管理、分发和内存保护。

大多数内容保护系统有两个关键部分,正如 szatmary 所指出的:

  • 一种获取原始数据(例如视频数据)并对其进行加密的机制 使用一些密钥
  • 一种安全机制,用于存储加密内容的密钥,并在确定客户端有权查看内容时将其安全传输给客户端

CENC 之所以有用,是因为传统上,由于不同的设备支持不同的 DRM 系统,您必须针对多极不同的目标设备以不同方式加密单个视频。

CENC提供了标准的加密方法,因此无论使用哪种DRM系统,加密步骤都是相同的。

将 CENC 与 MPEG DASH 封装(一种将视频的多个比特率版本与索引或清单组合在一起的机制,允许客户端为当前网络条件选择最佳比特率)相结合,可以对视频进行加密仅一次(或更准确地说,您需要加密 DASH 包中的每个比特率版本),并且客户端和 DRM 服务器之间的 DRM 密钥交换信息将包含在多个不同类型的 DRM 的打包流中。

顺便说一句,我不认为 Marlin 真的是您在问题中提出的中间 DRM - 即它本身是一种 DRM 机制,而不是其他 DRM 的前端,例如 Wideivine、FairPlay、Playready 等

TL;DR:假设您只对向浏览器传输 HTTP 流感兴趣,则无需考虑 Marlin。

一些简要背景:

Media Source Extensions (MSE) 使用 JavaScript.

控制客户端视频播放

Encrypted Media Extensions (EME) 是一种标准 API,供您的 Web 应用程序(例如客户端 javascript)与内容解密模块 (CDM) 交互。

CDM 是 DRM 解决方案秘诀的客户端实现。它将由底层平台提供,您的应用程序使用 EME API.

与之交互

通用加密 (CENC) 是一项 ISO/IEC 标准 (23001-7:2016) "specified to enable multiple digital rights and key management systems (DRMs) to access the same common encrypted file or stream"。

Marlin 只是另一种 DRM 解决方案,用于某些环境(如索尼设备、InFlight 娱乐和英国 YouView 平台),但不用于任何主流浏览器。

与 PrimeTime、Playready 和 Widevine 一样,Marlin 可以使用 CENC 媒体。您只需准备一次内容,然后根据可用的 CDM 使用受支持的 DRM 检索 license/key。如果您有面向 public 的应用程序,您可能必须支持多种 DRM 解决方案。这仍然是一个有很多变化的领域,但 Playready 和 Widevine 将为您提供现代版本 IE/Edge、Firefox 和 Chrome.

的支持

据说 Safari/iOS 将很快通过 Fairplay DRM 支持 CENC 媒体。也许今年(2016 年)。这可能不是 MPEG-DASH,而是 HLS。但是,HLS 显然会支持使用 ISO BMFF 视频片段而不是当前使用的 MPEG TS。