zl程序教程

您现在的位置是:首页 >  其他

当前栏目

技术解码 | 打造更安全的视频加密,云点播版权保护实践

2023-04-18 14:41:11 时间

导语 | 云点播在视频版权保护方面持续投入和演进,从最开始的「基础加密方案」,到后来的「私有加密方案」以及「商业级 DRM」,保护的安全级别逐步提高。本文将为大家详解各个加密方案的技术细节及优缺点,云点播用户可以结合自身业务场景,选择最适合自己的版权保护方案。

在中国,以在线教育、职业培训、OTT 服务商等为代表的网络视频行业,其付费规模逐步增长。然而,针对网络视频的盗版侵权行为层出不穷,对版权方利益造成了严重的损失。因此,这一类用户急切地希望其高质量的视频内容能受到加密保护,仅允许自己的付费用户观看。

云点播高度关注用户的视频内容安全,在视频加密的安全性和加密速度上深入思考并不断创新。下面将为您详细介绍云点播在视频加密的技术实践。

- 基础加密方案 -

Apple 的 HLS 是当前行业应用最广的在线音视频流格式,并且 HLS 也提供了一种使用对称密钥加密方案,一般被称为 HLS Encryption。

HLS Encryption 的基本原理是,内容平台将 HLS 中的各个 TS 文件使用 AES-128 的密钥(Key)和初始向量进行加密。然后,在 M3U8 文件指明播放器解密时所需要的信息。

#EXTM3U#EXT-X-VERSION:3#EXT-X-KEY:METHOD=AES-128,URI="https://keyprovider",IV=0x123…

如上面的 M3U8 所示,若 HLS 被加密,解密所需要的信息被包含在  EXT-X-KEY 标签中:

  • TS 内容被使用 AES-128 加密;
  • 内容密钥从 https://keyprovider 地址获取;
  • 解密的初始向量为 0x123。

云点播的第一版加密方案,我们称之为「基础加密方案」,其解密过程如上图所示:

  1. 播放器下载 M3U8 之后,向 EXT-X-KEY 中 URI 指定的地址请求内容密钥;
  2. 提供内容密钥的 URI 是用户的业务服务器,当密钥请求被鉴权通过之后,向云点播请求对应的内容密钥;
  3. 云点播向用户的业务服务器派发内容密钥;
  4. 用户业务服务器将内容密钥派发给播放器,供播放器解密内容并播放。

云点播的「基础加密方案」,是基于 HLS Encryption 实现的标准方案。采用这种方案加密之后,任何终端播放该视频,都必须通过业务服务器的合法校验并获取内容密钥,否则无法播放。

虽然,「基础加密方案」能够实现对视频的加密保护,但是内容密钥的传输存在安全性问题。根据 HLS Encryption 的设计,播放器从 EXT-X-KEY 中 URI 指定的地址获得内容密钥,并用该密钥解密视频内容。但是,这里获得的内容密钥是未经保护的。

如图所示,当我们使用 Chrome 浏览器播放 HLS 加密视频时,可以开启调试模式捕捉获取内容密钥的网络请求。

在请求的应答体中,内容密钥的原始二进制内容被展示出来了。这意味着,攻击者只需要启用浏览器调试模式,或者其他的网络抓包工具,就能拿到内容密钥,造成密钥的泄露。

- 私有加密方案 -

针对「基础加密方案」存在的问题,云点播的思考是,能不能对内容密钥本身做一层保护呢?于是,云点播提出了一种「私有加密方案」。

具体的流程如上图所示:

  1. 播放器向业务服务器请求签名;
  2. 业务服务器对播放请求鉴权,通过后派发签名;
  3. 播放器随机生成临时密钥,和签名一并发送给云点播服务器(通过 M3U8 中 EXT-X-KEY 中 URI 指定);
  4. 云点播服务器校验签名后,使用播放器发送的随机密钥,对内容密钥加密并返回给客户端;
  5. 客户端使用之前生成随机密钥进行解密,得到原始内容密钥,再解密内容并播放。

「私有加密方案」通过客户端生成的临时密钥,对原始内容密钥进行加密。相比于标准的「基础加密方案」,避免了内容密钥直接暴露给攻击者,提高了安全性。

采用「私有加密方案」后,极大地提升了攻击者破解加密内容的门槛,有效杜绝了市面上一大批破解加密的插件和黑产软件的攻击。

然而,「私有加密方案」本质上是一种软件级的加密加强方案,理论上攻击者通过反编译等手段,仍有可能弄清楚私有加密的具体机制,而进行针对性的破译。

- 商业级 DRM -

以 Apple 的 Fairplay 和 Google 的 Widevine 为代表的商业级 DRM,采用硬件级的加解密形式,是目前行业内公认的安全级别最高的版权保护解决方案。

商业级 DRM 的原理是,DRM 系统把内容密钥进行加密后封装到许可证中,通过许可证服务派发给播放设备。播放设备中的专门解密模块负责提取出许可证中的原始内容密钥,解密视频播放。因为从许可证中提取出内容密钥,以及使用内容密钥解密视频流的过程,都发生在播放设备的专门硬件之中,因而可以保证解密过程和解密结果不被泄露。

如上图所示,当设备从内容服务器(Web Server)下载到商业级 DRM 保护的内容后,向许可证服务器(Lincese Server)请求许可证,并将许可证交给设备内核由专门硬件进行解密。

然而,作为一家视频平台,直接接入任何一家商业级 DRM 系统都需要极高的成本。首先,商业级 DRM 一般需要对接入方进行严格的审核,并需要通过一系列认证和考试,才会授予接入的资质。另外,不同商业级 DRM 系统的实现均有差异,学习成本高,对各类流格式和平台的支持程度也各不相同。

云点播提供了专业稳定的 KMS 和许可证服务器,为用户屏蔽了商业级 DRM 的复杂性。具体的播放流程如上图所示:

  1. 播放器向业务服务器请求签名;
  2. 业务服务器对播放请求进行鉴权,通过后派发签名;
  3. 播放器将签名和许可证请求发给许可证服务器;
  4. 许可证服务器对签名鉴权通过后,派发许可证。

最终,客户端获取许可证中的原始内容密钥,解密内容并播放。

云点播目前已经集成 FairPlay 和 Widevine 两种主流 DRM 系统,帮助用户快速享受对视频内容的行业最高水平的保护水平。

- 加密方案的选择 -

从「基础加密方案」,到「私有加密方案」再到「商业级 DRM」,加密的安全性逐级加强,那么是否意味着「商业级 DRM」就是一定是适合所有用户的最佳方案呢?

事实上,更高的安全级别是以更低的平台适配度作为代价的:

  • 基础加密方案:基本适用于所有可以播放 HLS 的终端,适配度最高;
  • 私有加密方案:可适配所有移动端,但 Web 端仅适配支持 MSE 的浏览器(例如 safari 不支持);
  • 商业级 DRM:国内部分品牌手机和 PC 阉割了 DRM 模块,适配度最低。

云点播的私有加密方案可支持播放时自动降级。开启后,如播放终端的浏览器不支持 MSE,能自动降级到基础加密方式播放。但是商业级 DRM 对于终端的硬件要求十分苛刻,如设备不支持 DRM 时,将导致播放失败。

因此,建议用户根据自身实际的播放场景和对安全级别的要求进行权衡。例如:

  • OTT 用户对于电影等内容保护级别要求极高,且播放终端相对单一(电视盒子),建议采用商业级 DRM;
  • 需要支持多端播放(移动端、PC、Web、小程序等)的教育培训类用户,建议采用私有加密方案。

- 云点播加密配置流程 -

为了便于用户更快、更便捷的接入云点播视频安全加密方案,我们提供了全方位教程供用户进行体验。您可以参考以下文档快速体验:

  • [播放加密视频] - 您将了解并掌握如何对视频加密,并使用超级播放器播放加密后的视频。 https://cloud.tencent.com/document/product/266/46220
  • [视频加密综述] - 您将了解点播视频加密和解密播放的整体架构。 https://cloud.tencent.com/document/product/266/45552

更多细节请参考:

  • 腾讯云点播播放器 SDK  - https://cloud.tencent.com/document/product/266/45543
  • 腾讯云点播视频播放综述 - https://cloud.tencent.com/document/product/266/45539

腾讯云音视频在音视频领域已有超过21年的技术积累,持续支持国内90%的音视频客户实现云上创新,独家具备 RT-ONE™ 全球网络,在此基础上,构建了业界最完整的 PaaS 产品家族,并通过腾讯云视立方 RT-Cube™ 提供All in One 的终端SDK,助力客户一键获取众多腾讯云音视频能力。腾讯云音视频为全真互联时代,提供坚实的数字化助力。