| 9 min read

前一篇什么是 DRM详细说明了 DRM 大概做什么。今天将会罗列常见的流媒体的 DRM 方案。我们目前主流是:

这些都是大厂背书的解决方案,这背后也是意味着他们各家的产品线都会上自家的方案。因此如果你做多媒体工作,肯定因为这么多套解决方案的适配感到烦恼。

Widevine

Widevine 是谷歌公司收购而来的。常见的 Chrome 浏览器,或者 Android 上我们都能看到他们的身影。而且非常重要的一点,它是免费的,因此很多厂商都会选择它。

Widevine 实现视频加密,主要有下面几个重要步骤:

  • 内容加密: 内容提供商首先使用 Widevine 的加密密钥对视频内容进行加密。这会使视频流变得无法观看,除非拥有正确的解密密钥。
  • 设备授权: 用户设备必须经过 Widevine 认证才能播放受保护的内容。这通常涉及在设备上安装 Widevine 的客户端软件并注册 Google 帐户。
  • 密钥交付: 当用户尝试观看受保护的内容时,他们的设备会向 Google 的许可服务器请求解密密钥。如果设备经过授权,服务器会提供密钥。
  • 内容解密: 设备使用解密密钥来解密视频流。这使视频可以播放到用户的设备上

Widevine 能够实现三个级别的加密:

  • Widevine L1;在L1级别,提供了最高的安全性。内容在设备内进行解密,并使用硬件保护,以防止原始数据泄露。通常用于高质量视频和高分辨率的流媒体。获得L1认证的设备可以播放高质量的内容。像Amazon Prime Video和Netflix等流媒体服务需要L1安全性。如果在未获得认证的设备上观看,无法播放高清或超高清的高质量内容。

  • Widevine L2;Widevine L2具有较高的安全性,但不像L1那么严格。即使设备未获得L1认证,仍然可以播放内容。一些设备使用软件来保护数据。对于较低分辨率的视频和音乐内容,可能会使用L2。虽然L2可能不够满足要求,但某些内容仍然可能提供高质量的视频。因此,不能一概而论地认为必须使用L1。

  • Widevine L3;Widevine L3的安全级别最低。主要用于模拟器和一些旧设备等情况,内容保护相对较弱,分析和复制相对容易。

Widevine 的优势

  • 视频播放支持; Widevine 附带 HTML5 播放器,支持各种设备上的自适应流媒体、QoS 和可访问性功能。Shaka Player是Google 开发的一款开源网络播放器,支持 DASH 和 HLS 流媒体,可以在大多数网络浏览器和移动设备上播放多 DRM 内容;
  • 标准化格式;通过对 ISO BMFF (MP4) 和 WebM 等业界认可的媒体容器的支持,单个加密内容可以在任何地方播放;
  • 设备安全; 内容服务可以通过应用基于硬件的信任根、解密和带有工厂配置的密钥盒的内容呈现来利用强大的设备安全性。

应用于 Android 或 OTT 设备的 Widevine DRM 可以根据型号支持基于硬件的内容安全 (Widevine L1)。但是,Chrome 和 FireFox 等 PC 浏览器支持基于软件的 (Widevine L3) DRM,容易受到屏幕录制的影响

PlayReady

PlayReady 是由微软开发的复制保护软件,功能包括加密、输出防护和数字版权管理(DRM)。我们常见 windows 上的 IE 浏览器,Xbox One 平台都对它有一定的支持。

PlayReady 的工作原理类似于其他 DRM 系统,例如 Widevine。内容由支持 PlayReady 的内容打包程序加密,然后发送到客户端,客户端使用存储在DRM 许可证中的信息解密并播放内容。

PlayReady 客户端是一种在获得受保护内容许可后可以播放该内容的设备。它可以是个人电脑上的媒体播放器,也可以是手机、平板电脑和智能电视等设备上的应用程序。PlayReady 客户端在播放 DRM 内容时强制执行与许可证中包含的策略相关的权利和限制。

PlayReady 服务器支持与客户端的集成。内容服务提供商或DRM 解决方案供应商使用 PlayReady服务器软件开发工具包 (SDK)来构建支持特定于服务的业务逻辑的服务器。

PlatReady 的优点

  • 兼容性强,支持多种设备; PlayReady 嵌入在最新的 Windows 操作系统中,并可在 PC 应用程序和 Edge/IE11 浏览器中支持受 PlayReady 保护的内容。大多数智能电视和 OTT 设备也支持 PlayReady DRM。
  • 基于硬件的增强内容安全; 在支持可信执行环境 (TEE)的设备上实现带有最新版本 PlayReady 移植套件的客户端 可以满足增强内容保护的硬件安全要求

FairPlay

FairPlay 是 Apple 的数字版权管理 (DRM) 规范。FairPlay DRM 已被 Apple 独家用于其 iTunes 媒体服务。FairPlay DRM 是苹果公司基于 Veridisc 技术开发的。2000 年代初,苹果公司推出 iPod MP3 播放器和 iTunes 音乐服务时,曾使用 FairPlay DRM 保护 iTunes Store 的音乐内容免遭非法使用。然而,这导致了“DRM 兼容性问题”,用户只能在苹果设备上使用购买的音乐。FairPlay Streaming 于 2015 年 WWDC 活动上发布。尽管 FairPlay DRM 是一项仅适用于 iTunes 服务的封闭技术,但苹果发布了 FPS 集成规范,允许其他内容服务使用它。

Fairplay 加密工作原理主要由以下几个部分:

  • 密钥服务器和密钥安全模块 (KSM); 密钥服务器管理用于加密/解密 DRM 内容的密钥。DRM解决方案或内容服务提供商可以参考 Apple 提供的 KSM 示例,在自己的密钥服务器上为 FPS 实现密钥安全模块。
  • 客户端应用程序; FPS 客户端应用程序在 Apple 设备的操作系统(例如 iOS、tvOS 和 macOS)上运行。它向密钥服务器请求 FPS 内容的密钥并处理响应。内容服务提供商可以使用 Apple 的示例代码开发自己的 FPS 客户端应用程序,也可以使用 DRM 解决方案提供商提供的 FPS SDK。
  • FPS 内容; 要将 FPS 应用于 HLS 内容,必须使用 SAMPLE-AES 方法对每个 HLS 片段进行加密。FPS 内容使用的加密方法是 AES-128 CBCS。使用支持 FPS 打包的软件包或解决方案(例如 Shaka Packager),可以将 KEY 标签添加到加密 HLS 内容的 m3u8 播放列表中,并附带相关信息。

FPS 密钥请求流程

  • 客户端应用程序通知操作系统的 AVFoundation 框架播放 FPS 内容
  • AVFoundation 从内容服务器下载 HLS 播放列表 (m3u8) 并检查 KEY 标签
  • AVFoundation 从客户端应用程序请求内容的密钥(AVFoundation Delegate)
  • App Delegate 向 AVFoundation 请求服务器播放上下文 (SPC) 数据
  • App Delegate 将生成的 FPS SPC 数据发送到密钥服务器
  • 密钥服务器通过KSM模块解释SPC数据,并从密钥数据库中检索内容播放所需的密钥
  • 密钥服务器将检索到的内容密钥以内容密钥上下文 (CKC) 数据的形式发送到客户端应用程序。
  • 客户端应用程序中的 AVFoundation Delegate 将 CKC 数据输入 AVFoundation
  • AVFoundation 使用 CKC 数据中包含的密钥安全地解密并播放内容

FairPlay 的优势

  • 硬件 DRM 支持;所有支持 FPS DRM 的客户端环境(例如 Mac OS、iOS 和 tvOS)在硬件层面都具有高度安全性;对于需要高级别安全性的内容(例如好莱坞电影公司的早期电影),FPS DRM 是必不可少的。
  • Apple AirPlay 支持;FPS DRM 原生支持 Apple 的无线内容传输协议 Airplay。Apple 设备上的 FPS 内容可以通过 AirPlay 在 Apple TV 上播放,无需任何额外编码。
  • 下载和离线播放;从iOS 10开始,支持FPS内容的下载和离线播放,可以使用OS提供的相关API来处理离线授权HLS内容的下载和管理。

多个 DRM解决方案的支持

相信很多人对众多平台的 DRM 支持一定很头痛,不过肯定有开发者知道大家的痛点。我们可以通过第三方的 DRM 解决方案来克服这种问题;

目前很多小公司都会选择第三方,相对而言可以实现的效率比较高。

扩展阅读

You Can Speak "Hi" to Me in Those Ways