共计 2990 个字符,预计需要花费 8 分钟才能阅读完成。
在中国,以在线教育、职业培训、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 程序员积攒我的项目教训。干货满满,机构名师手把手教学!
快来支付全套课程!
《硅谷课堂 —— 基于腾讯云产品搭建在线课堂》
更有腾讯云产品收费试用等你支付!
腾讯云产品代金券
腾讯云音视频产品收费试用核心