APP下载

一种基于HLS的安全直播方案

2018-08-02李皓杨成刘剑波

关键词:分片分布式加密

李皓,杨成,刘剑波

(中国传媒大学理工学部信息工程学院,北京 100024)

1 前言

随着4G业务的不断普及,人们能够随时随地通过电脑、PAD、手机享受更高质量的网络视频服务。在此机遇下,各大的网络直播/点播平台迅速发展。人们也越来越倾向于使用各种设备在网上观看视频直播、点播业务。视频内容生产商、发布商积累了大量的视频数据。运营和维护这些数据的成本越来越高。迅速发展的云计算技术为各大厂商提供了一条节省本地存储成本和维护成本的的途径。因此,构建自己的云平台,将视频数据存储到云上势必会成为越来越多的公司的选择。一项调查表明超过79%的机构准备将自己的数据放到云上[1]。

随着公司越来越倾向于利用云计算提供的廉价的存储能力和高效的计算能力来保存和处理自己的数据,从而节省本地的存储成本和维护成本。个人也越来越愿意将照片、视频等信息存储到云端,以防数据丢失,而且还能够随时随地的访问这些数据[2]。云计算降低了公司的运营成本,方便了个人生活,但是也暴露了许多安全方面的问题。显而易见的,缺少对数据的物理控制和拥有,外包数据会变得不总是可信。

HLS(HTTP Live Streaming)技术是苹果(Apple)提出的一种动态码率自适应技术[3],该技术能够为PC和Apple终端提供直播、点播等音视频服务。HLS协议采用视频分片的技术,终端程序通过索引(M3U8文件)按照时序访问不同的HLS分片,极大的提高了服务器对终端数据请求的反应速度。然而随着视频质量的提高,视频码率不断提高。例如,HEVC编码的4K视频码率达到了10-15M,如果用H.264编码,码率还要更高,大约15-20M[4]。如何能够为多套视频节目提供实时的内容加密保护成为一个研究的热点。

当前的视频加密手段往往都是通过专业的硬件设备[5],采用硬件编程(FPGA的方式)来达到较高的实时性。本文提出了一种能够应用在HLS协议上的分布式的流媒体视频加密方案,提供了预加密和实时加密两种加密模式,能够满足大数据量的视频数据的离线加密和高码率视频的实时加密两种场景。本文的架构如下:第二部分为相关侵权案例;第三部分提出方案的整体架构;第四部分为提出方案的技术细节;性能实验在第五部分;第六部分结论和展望。

2 相关案例

视频盗流、盗链是最常见的两种安全威胁。视频盗流是指不法分子非法下载未经授权的视频内容,并在自己的网页或APP应用上进行分发。视频盗链是指集体或个人不经过合法运营商同意,自行构建网页或APP应用程序,使最终用户不经过合法运营商而是盗链者的指定页面或APP应用程序访问到合法运营商的视频资源。视频盗流和盗链会损害合法运营商的利益(广告收益、版权购买花销、宣传价值、带宽开销等)。

本节列举了视频服务提供商在运营过程中可能存在的安全威胁:

2.1 爱奇艺客户端视频盗流

爱奇艺客户端提供离线播放的功能,用户可以提前下载爱奇艺网站上的视频内容,然后在终端设备离线的情况下使用爱奇艺客户端正常播放,然而分析下载视频内容,我们发现qsv格式的视频格式只比flv格式的原版视频格式在文件开头多了一些字段(大约5584字节)。因此爱奇艺客户端下载的qsv格式视频可以十分容易的转换成通用的其他视频格式内容,如果这些内容被传播出去,即出现视频盗流的威胁。图1为使用ultraedit工具对比同一视频的qsv格式与flv格式的二进制数据,可以看出在第5592个字节之后,两个文件的内容是相同的。使用播放器可以清晰播放转换格式后的内容。

图1 爱奇艺客户端视频内容对比

2.2 熊猫/虎牙直播网站存在视频盗流

分析panda.tv以及huya.com直播网站的直播视频,通过使用chrome提供的开发者工具,我们可以很容易的爬取到直播视频流并且下载至本地。Panda和虎牙都有许多自己制作的视频节目,如果这些节目被非法分子下载在未经授权的情况下进行分发即构成盗流,是制作商、运营商遭受损失。

2.3 优酷网络视频存在视频盗链

与检测直播网站的操作相同,我们可以借助chrome的开发者工具在浏览器点播优酷网上某一视频的时候爬取到其播放链接,与直播网站直接将视频流缓存到本地不同的是,优酷的播放链接可以直接播放该视频片段。如果不法分子爬取获得视频播放链接,同时将链接公布在自己的网站上,那么网站上的视频就面临着被盗链的威胁。图2展示了未经任何认证授权浏览器可以顺利播放视频链接中的视频。

图2 通过盗链可以正常播放热播剧“白夜追凶”

3 提出方案的整体架构

随着视频质量的提升,单个流媒体视频的码率也变得越来越大,受到单机处理能力的约束,提供实时的视频加密服务需要耗费越来越多的硬件资源。因此本文提出了一种基于分布式的视频选择性加密方案,利用云计算强大的计算能力完成复杂的加密算法。

HLS协议是一种基于HTTP的流媒体传输协议,主要用于流媒体的直播点播业务,是当前运用比较广泛的一套流媒体视频传输协议。表1展示了当前流行的几种协议的性能比较:

表1 当前流行媒体传输协议性能比较

相比较RTP和RTSP协议,HLS将视频数据流存储为连续的,较短的媒体文件,客户端通过m3u8索引不断的下载并播放这些小的视频片段。因此,HLS提供了良好的互动体验,用户可以在较快的时间内选取不同的时间节点播放视频。服务器根据索引文件能够迅速的定位用户的回放、快进、快退操作。作为代价,HLS有比RTP/RTSP相对较高的时延,大约10s

HLS将视频切片的另外一个优势就是可以将不同的分片部署给分布式的加密系统中的不同工作节点,各自完成加密处理。因此与分布式的加密系统有着天然的结合点。基于HLS的分布式加密系统的整体架构如图3所示。

图3 基于HLS的分布式加密系统的整体架构

流媒体视频通过HLS服务器,将视频进行分片同时生成索引文件。将生成的MPEG-TS格式的分片部署在HDFS上,分布式加密系统的Master节点负责向各节点分配加密任务,各节点从HDFS上取走各自的分片内容进行选择性加密,将结果返回给HDFS,然后切片存储服务器将加密后的切片内容取走存储或者直接推送给终端。除了MPEG-TS格式的视频片段以后,HLS协议还将生成一份M3U8格式的索引文件,索引文件通过索引加密服务器处理以后存入索引存储服务器或者直接推送给终端。

整个的保护方案分为两个部分,首先是对切片内容的加密,针对大量的,实时性要求较高的视频切片,使用基于分布式的加密方案达到提升加密效率的目的[6];其次是对索引文件的处理,对索引文件加密可以实现对不同视频文件或者同一视频不同时间段的细粒度的权限控制。具体的技术细节将在接下来的一章详细的介绍。

4 提出方案的技术细节

上章已经提到,整体的实现方案由两部分组成。对切片内容的加密考虑到视频分片多,实时性要求强的原因,采用分布式的框架,在各工作节点进行选择性视频加密。具体的加密细节如图4所示。

第二部分是针对索引文件的加密。M3U8文件的结构扩展的关键字如表2所示:

在以上信息中,#EXT-X-KEY和视频分片的具体URL是我们要保护的重点内容。由于其内容较少,文件格式也比较统一,所以可以采用实时的AES加密方式来完成。具体的方案流程如下。

图4 视频分片选择性加密

点播模式下:

Step1.用户终端与服务器建立安全通道,创建共享的session key;

Step2.用户终端申请相关的点播业务;

Step3.服务器使用共享的session key进行加密m3u8文件,然后传给终端。

Step4.终端解密文件,根据索引找到相应的视频资源。

表2 M3U8文件的结构扩展的关键字

直播模式下:

Step1.用户终端与服务器建立安全通道,并相互进行身份认证;

Step2.终端加入相应的广播组网络,获得该网络的root key;

Step3.使用root key在定义的端口下接受广播而来的m3u8文件,解密;

Step4.根据解密的m3u8文件获得相应视频资源。

另外,还可以采用基于属性的加密方案,例如KP-ABE、CP-ABE,实现针对索引的细粒度的访问控制[7]。

5 性能试验

本文分别从加密效果和加密性能两个角度对方案的性能进行分析和比较。

加密效果:工作在各个工作节点的选择性视频加密算法可以作为可插拔的模块部署到当前的分布式视频加扰方案中。本文分别采取了三种不同的选择性加密算法:Slice、I Frame and DCT[8]。由图5可见,方案实现了不同程度的视频的加扰效果能够达到保护视频,激发用户购买欲的目的。

表3 分布式集群软硬件配置及网络情况

未加密 Slice加密

Ⅰ帧加密 DCT系数加密图5 加密不同内容的加密效果

图6 加密效率对比

加密性能:由于实验环境的限制,本文Hadoop采用的是standalone的安装模式,因此在实际应用中,如果采用最新的MapReduce框架Yarn,可以得到更好的加密效果。

本文集群包含一台master节点,两台worker节点,机器配置如表3所示。加密的性能表现如图6所示,相同的加密算法下,相比于单机加密视频30M/s,standalone模式下的集群加密也有了很大的提升(50M/s)。

6 结论

本文提出了一种分布式的加密方案,能够与HLS的切片策略相互结合,提升使用HLS协议的流媒体传输服务的加密效率,同时如果对m3u8文件采用基于属性的加密方案也能实现针对流媒体视频的细粒度的权限访问控制。

方案支持高灵活性、可扩展的业务和内容访问控制需求,同时能够适配终端处理,支持分级、分层加密和解密。解决OTT中面临的“视频盗链”问题和IPTV中“清流盗流”的问题。样本系统证明本框架具有较好的实用意义。

猜你喜欢

分片分布式加密
上下分片與詞的時空佈局
基于RTDS的分布式光伏并网建模研究
利用状态归约处理跨分片交易的多轮验证方案①
一种新型离散忆阻混沌系统及其图像加密应用
一种基于熵的混沌加密小波变换水印算法
基于模糊二分查找的帧分片算法设计与实现
基于预处理MUSIC算法的分布式阵列DOA估计
加密与解密
通用导弹雷达罩曲面分片展开系统的开发
基于DDS的分布式三维协同仿真研究