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

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

基础加密方案

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

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

1 #EXTM3U
2 #EXT-X-VERSION:3
3 #EXT-X-KEY:METHOD=AES-128,URI=“https://keyprovider”,IV=0x1234
4 …
如上面的 M3U8 所示,若 HLS 被加密,解密所需要的信息被包含在 EXT-X-KEY 标签中:

TS 内容被使用 AES-128 加密;

内容密钥从 https://keyprovider 地址获取;

解密的初始向量为 0x123。

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

播放器下载 M3U8 之后,向 EXT-X-KEY 中 URI 指定的地址请求内容密钥;

提供内容密钥的 URI 是用户的业务服务器,当密钥请求被鉴权通过之后,向云点播请求对应的内容密钥;

云点播向用户的业务服务器派发内容密钥;

用户业务服务器将内容密钥派发给播放器,供播放器解密内容并播放。

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

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

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

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

私有加密方案

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

具体的流程如上图所示:

播放器向业务服务器请求签名;

业务服务器对播放请求鉴权,通过后派发签名;

播放器随机生成临时密钥,和签名一并发送给云点播服务器(通过 M3U8 中 EXT-X-KEY 中 URI 指定);

云点播服务器校验签名后,使用播放器发送的随机密钥,对内容密钥加密并返回给客户端;

客户端使用之前生成随机密钥进行解密,得到原始内容密钥,再解密内容并播放。

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

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

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

商业级 DRM

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

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

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

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

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

播放器向业务服务器请求签名;

业务服务器对播放请求进行鉴权,通过后派发签名;

播放器将签名和许可证请求发给许可证服务器;

许可证服务器对签名鉴权通过后,派发许可证。

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

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

加密方案的选择

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

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

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

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

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

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

腾讯云与尚硅谷联合推出的精品项目课程《硅谷课堂 —— 基于腾讯云产品搭建在线课堂》已上线 “腾讯云开发者社区”。硅谷课堂是一款基于微信公众号 B2C 模式的在线学习平台,此课程包含了如何应用腾讯云文件存储和视频点播服务、腾讯云 CODING DevOps 产品搭建在线学习平台。整套课程共 28 小时,通过系统化的理论讲解和上机演示为开发者提供完整的项目实战解析,帮助 Java 程序员积累项目经验。 干货满满,机构名师手把手教学!
快来领取全套课程!
《硅谷课堂 —— 基于腾讯云产品搭建在线课堂》
更有腾讯云产品免费试用等你领取!
腾讯云产品代金券
腾讯云音视频产品免费试用中心

打造更安全的视频加密,云点播版权保护实践相关推荐

  1. 阿里云周源:一篇文章读懂四代视频加密技术演进

    在刚刚圆满落幕的LiveVideoStackCon峰会上,阿里云高级技术专家周源进行了<视频加密和DRM的实施实践>主题分享.周源,有十多年音视频研发经验,之前在淘宝视频负责开放平台,目前 ...

  2. 云点播视频-DRM-方案调研

    前段时间,朋友的一个公司网站视频点播接口被疯狂遍历请求,同时网上还出现了很多的针对这个网站视频的自动化视频下载工具.虽说是都是公开视频,但内容本身就是这个网站最大的价值,如果都通过工具下载视频观看,网 ...

  3. 关于uniapp小程序压缩视频后上传云点播视频损坏这件事

    问题起因 公司自研项目 技术栈是 uniapp 开发微信小程序 小程序内有个需要用户录制视频并上传的功能 项目内使用的是 uni.createCameraContext 相机组件进行录制视频的 一开始 ...

  4. 周源:视频加密和DRM实施实践

    在上周落幕的LiveVideoStackCon音视频技术大会,阿里云高级技术专家周源进行了<视频加密和DRM的实施实践>专题分享.周源,有十多年音视频研发经验,之前在淘宝视频负责开放平台, ...

  5. 唐诗三百首加密软件如何使用_视频加密一机一码软件该如何选择?有哪些因素影响?...

    视频加密一机一码软件,是一种早期的视频加密软件.目前也是在用,用户在授权的条件下获取视频观看,例如教学视频加密后,老师对学员进行授权,一个账号绑定一台设备,学员的设备ID是唯一的,绑定一台硬件.这就是 ...

  6. APP平台是怎样实现视频加密呢?

    随着培训教育行业的快速发展,有的培训机构或者网校会有自己专门播放视频的APP或平台,学员在购买后可以直接在APP直接播放观看,但有时候可能会出现视频泄露的情况,比如通过账号共享,录屏等这些方式,那么有 ...

  7. FLV视频加密系统解决方案

    该FLV视频加密系统主要是针对FLV.F4V这类Flash视频文件进行加密,防止非授权用户的播放. 本系统分为两部分,具体介绍如下: FLV视频加密程序:负责对视频文件进行加密,可以将flv/f4v文 ...

  8. “黑洞事件”持续发酵,视频版权保护又有哪些门道?

    北京时间4月10日21点整,这注定将是人类历史上的又一次高光时刻,全球六个城市--比利时布鲁塞尔.智利圣地亚哥.中国的上海和台北.日本东京.美国华盛顿同步召开新闻发布会,由"事件视界望远镜& ...

  9. 爱奇艺视频版权保护技术与维权实践

    随着海量多媒体应用内容的产生,对内容的安全性要求也相应提高.爱奇艺技术产品中心高级经理 陈赫从多个方面介绍了爱奇艺在版权保护上的技术探索与维权实践.本文来自陈赫在LiveVideoStack线上交流分 ...

  10. 腾讯云点播 - 视频防盗加密 - 使用总结

    最近项目在搞视频播放,使用的是腾讯云点播,这里做一个使用总结~ 背景 项目中涉及到上传视频,播放视频,以及视频安全等,云点播这几个功能都有,接入起来也是比较顺滑~ 上传视频 项目第一步,当然是要上传视 ...

最新文章

  1. 节能信标组比赛过程中直流电源设置
  2. C:02---scanf、printf
  3. java高质量图片压缩
  4. Linux上使用Cron启动定时任务
  5. linux go missing git command,go: missing Git command的解决办法
  6. C语言面试题小练——第8天:static的作用、全局变量与局部变量的存储空间、宏定义注意点
  7. 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)...
  8. 第15课 模块与包
  9. 白牌交换机有哪些特点?和传统交换机比有什么特别?—Vecloud
  10. 单模/多模光纤能和单模/多模光模块混用吗?
  11. 学校学业水平测试软件,中小学生学业水平测试
  12. Hadoop之HDFS常见面试题
  13. 会议OA项目(六)--- (待开会议、历史会议、所有会议)
  14. Vue中打印网页的指定部分的几种方法
  15. 224除以10为什么等于22c语言,C语言 编程练习22
  16. linux服务器科学上网,开源一年,openGauss诠释什么是快速成长
  17. 微软快捷键截图_所有最好的Microsoft Word键盘快捷键
  18. 计算机系统(1)实验二 LC-3机器码编程实验
  19. LLVM中的PHI节点
  20. what a fuck!这是什么鬼东西?

热门文章

  1. 【Android 视频硬件编码】在Native层实现MediaCodec H264 编码 Demon
  2. Arduino应用开发——LCD显示图片
  3. kali metsploit 工具入侵windows
  4. NetXray使用说明之(6)----捕捉oicq message报文
  5. CodeSmith使用心得
  6. 完全体,千字详解:“Java性能调优六大工具”之JConsole工具
  7. 同步助手java_八大平台全覆盖 QQ同步助手Java版发布
  8. 怎么启动mysql2008_SQL Server 2008初次启动
  9. 迅雷一些版本下载链接
  10. 计算机语言缩写 dos,dos是什么意思 dos缩写中英全称是什么