html 播放器的 Widevine DRM 保护内容中的用户授权。

Posted

技术标签:

【中文标题】html 播放器的 Widevine DRM 保护内容中的用户授权。【英文标题】:User authorization in Widevine DRM protected content for html player. 【发布时间】:2017-12-05 20:36:21 【问题描述】:

我研究了使用 WideVine DRM 保护视频内容的整个过程。我能够实现的步骤是: 1- 从 Widevine 服务器请求内容密钥 2-用我的保护信息加密/打包内容。生成 MPEG 加密内容和 mpd 清单文件。 3-将 mpd 文件 url 传递给视频播放器,并在视频播放器中设置许可证 url。然后播放器播放加密的内容。

现在我想知道非常基本的一点。使用当前设置,任何拥有此 url 的人都可以播放该文件。我想在流程中添加用户身份验证/授权,这样如果只有 mpd url 可用,就无法播放内容。

我还在 Widevine 文档中发现,有一种方法可以为此目的实现代理服务器,但过程似乎很复杂。

那么我有什么方法可以 1- 阻止播放仅提供 mpd url 的视频 2- 以比实现代理服务器更容易的方式将用户身份验证/授权级别添加到后续。

【问题讨论】:

【参考方案1】:

首先认证的目的不是为了认证mpd下载。 Mpd 描述受 DRM 保护的内容 = 内容本身已加密,您需要 DRM 许可证/解密密钥才能播放该内容。保护 mpd 没有任何价值 - 它可以在 CDN 上公开提供。

当播放器发现内容已加密(来自 mpd 或来自流本身)时,将使用身份验证。播放器需要向 DRM 服务器发送许可请求,这就是身份验证发生的地方。

理论上有两种选择如何确保只有选定的用户具有播放权限(获取解密密钥):

您将使用代理。 Widevine 代理是 Web 服务器,它将提取任何类型的身份验证信息并验证客户是否有权播放内容(例如,付费订阅)。基于此,它要么将呼叫转接到已部署的 Google Widevine,要么失败。 您将部署自己的 Widevine 服务器并对其进行扩展以支持您的身份验证方案(它很可能只包括另一种类型的代理)。

在实践中,第一个选项是您想要做的。第二种选择主要由大型流媒体服务使用,需要 Google 的一些特殊协议/许可。

编辑:可能还有第三种选择 - 使用一些已经内置身份验证并允许您进行某种集成的第三方解决方案。

在任何一种情况下 - 如果您想要控制将颁发许可证的对象,这是服务器端工作,并且涉及部署一些服务。

【讨论】:

以上是关于html 播放器的 Widevine DRM 保护内容中的用户授权。的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上玩 Widevine DRM?

Google Widevine DRM 密钥轮换

如何在android webview中播放widevine drm内容

使用 MediaDrm 在 android 中解密受 Widevine DRM 保护的视频

在 Chromecast 上播放 Widevine DRM

Exoplayer 2.0 上的 Widevine DRM 内容