HTTP直播流媒体安全传输方法研究

时间:2022-09-13 04:48:07

HTTP直播流媒体安全传输方法研究

摘要:HTTP协议由于其对现有网络的普遍适应被广泛应用。在网络电视或音视频节目直播服务中,基于HTTP协议构建的流媒体传输服务能更好适应现在的网络条件,为用户提供接近实时播放的体验。研究基于该直播模式的流安全传输方法,对基于互联网的直播服务至关重要,可以有效防止恶意攻击和篡改服务内容,保证传输安全。

关键词:HTTP流直播;HTTPS;流媒体

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)29-7259-03

HTTP Live Streaming Secure Transmission Method

YAO Bao-yan

(Xi'an Siyuan University,Xi'an 710000, China)

Abstract: Because of the HTTP protocol its widespread adaptation of existing networks are widely used. On network television or live audio and video services, built on the HTTP protocol streaming service can better adapt to current network conditions, to provide users with near real-time playback experience. Research model based on the live stream secure transmission methods, Internet-based broadcast services is vital, can effectively prevent malicious attacks and tampering services, protection transmission security.

Key words: HTTP Live Stream; HTTPS; Media streaming

HTTP是互联网上最重要的协议,其承载了web访问的绝大部分应用,并成为基于B/S架构的基础协议。但长期以来,HTTP没有用来作为大量数据的传输,特别在流媒体时代,很多音视频数据通过专用的RTSP,RTMP等协议进行传输控制。一方面,是由于HTTP基于完整文件的传输特性无法提供流传输服务,另一方面是由于基于HTTP协议的流媒体服务无法保证数据的传输安全。

1 Web服务器和HTTP协议概述

HTTP协议基于TCP构建,其中的主要参与者是客户端和服务器。客户端一般为浏览器,也可以是其它软件,服务器一般为web服务软件,如Apache,IIS等,也可以是简单的socket服务程序。只要符合HTTP协议中的数据交互规范,就能与对端通信。

HTTP协议常用端口为80,也可定义其它的服务端口。其包含的主要方法有:Get,Post,Head等。常用的Get方法用来从服务器上获取数据,Post方法用来将客户端数据提交到服务器。

基于HTTP的简单架构是浏览器和web服务器的交互。在这种通用模型中,Web服务器提供基于HTTP协议的文件获取基础功能,即响应基于HTTP的Get命令。

2 基于HTTP的流媒体架构及协议

基于HTTP的流媒体服务架构,分为三个主要部分:服务器,分发系统,客户端。其一般架构如图2所示。

典型的配置中,硬件编码器抓取音视频媒体输入,将其编码并输出,同时通过一个软件流媒体切片器将媒体文件分成一系列的小媒体文件集合。这些文件集合存放在一般web服务器上。切片器同时创建并维护一个索引文件,其中包含了这些媒体切片文件的列表,索引文件的URL地址会到web服务器上。客户端软件读取索引文件,然后按照列表中顺序的请求对应的媒体文件,并无缝将这些文件连续起来播放显示。

2.1 服务器

服务器包含媒体编码器和流分割器两大部分。媒体编码器一般为硬件设备,其连接摄像机或模拟信号,将输入的媒体数字化并编码为H.264视频和AAC音频,并将其封装为MPEG-2 TS文件。

TS文件做为流媒体分割器的输入,分割器将次文件切割为多个小的“ts”后缀的文件,同时生成一个包含所有ts小文件的列表索引文件。如果是直播业务,编码器会源源不断产生数据,流媒体分割器也会不断产生ts小文件,这种情况下,媒体列表索引文件就应该随着ts的增加修改而试试变更。

一般情况下,为保证实时性,切割TS文件的长度按照播放10秒钟长度进行,这样用户可以看到延时接近10秒的准实时直播数据。

2.2 分发系统

分发系统一般是由web服务器或者是web缓存系统组成,其用来作为HTTP服务器媒体索引文件和一系列的.ts文件,以供HTTP客户端下载。一般来说,索引文件采用M3U8文件格式规范,TS文件为MPEG-2中的文件封装格式,一般用于直播系统中。

M3U8文件示例如表2所示。其中将M3U8中的每一行列出来,并在右方注释。

在完成直播功能时,.M3U8文件需要及时更新,这个取决于及时调整其的存活时间属性,这样文件会被频繁的覆盖,客户端也会在存活时间到期后重新请求更新的M3U8文件。

2.3 客户端

客户端首先获取M3U8索引文件开始,并解析M3U8识别其中的每一个TS文件,以及解密密钥等必要信息。客户端按顺序下载每个可用的媒体文件。

客户端也采用HTTP协议请求数据,HTTP协议并不需要设计如何穿透防火墙,一般防火墙都允许这一类协议的数据的通过。

3 加密认证安全模型

上文已概述了基于HTTP的直播流媒体系统,本节将说明实现流媒体的安全传输的方法。

1)流分割器生成密钥文件:编码器完成媒体数据的数字化和编码后,输出TS文件。媒体流分隔器从本地网络读入TS流,并将其分隔为小的.ts后缀文件,同时创建一个包含各媒体文件引用的索引文件。实现安全传输时,分割器加密每个媒体段并创建一个密钥文件。

2)M3U8文件中包含加密密钥:在索引文件中,EXT-X-KEY 字段标示必要的信息来解密其后包含的媒体文件。其格式为:

#EXT-X-KEY:METHOD= [,URI =""] , METHOD 参数指定的加密方法。 URI 参数,如果存在,指定如何获取 key,此处一般采用HTTPS文件。协议的1.0版本中定义了两种加密方法:NONE 和 AES-128 ,NONE标示不加密。 AES-128 标示媒体文件使用了128位AES加密方式。

3)客户端获取密钥并解密媒体文件播放:如果M3U8索引文件中包含EXT - X的密钥标记,并且指定了一个密钥文件的获取地址,客户端首先获取该密钥文件,并使用它里面的密钥解密其后的所有媒体文件,直到M3U8中出现下一个EXT - X标记的新密钥,则其后的文件采用这个新的密钥来解密。所有的媒体文件可能是使用同一个密钥加密,也可以周期性的更换新密钥。理论上,每个文件都可以使用一个新密钥,但是因为每一个密钥会增加一次文件请求和传输开销,所以周期性的更换密钥对系统性能的影响更小一些。 媒体流分割器一般支持三种模式的加密设置:

a) 第一种模式允许您指定一个已存在的密钥文件的磁盘路径。在这种模式下,分段器将现有密钥文件的URL插入到索引文件中,并使用这个密钥加密所有媒体文件。

b) 第二种模式是让分段器生成一个随机的密钥文件,保存在指定的位置,并在索引文件中引用该文件。所有的媒体文件将使用这个随机生成的密钥加密。

c) 第三种模式也是让分段器生成一个随机的密钥文件,保存在指定的位置,并在索引文件中引用该文件,然后每n个文件就重新生成一个密钥文件并引用该文件。这种模式被称作密钥轮换。n 个文件为一组,每组使用不同的密钥加密。

4)下面是一段加密的M3U8的例子:

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000

/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

/mid.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

/hi.m3u8

其中定义了三段采用不同密钥的M3U8子索引文件。每个新的M3U8中的媒体文件都需要其前方标记的EXT-X标志的密钥来解密。

4 在实时监控中的应用

在采用IP摄像头完成远程实时监控时,客户端需要借助iphone或Android只能手机,此两种客户端设备都支持HTTP流媒体协议,另外,通过PC来完成监控视频查看的时候,也可以通过Safari浏览器来支持HTTP流播协议。

因此,在摄像头中采用HTTP流协议来进行直播,就可以实现实时远程监控。传统的监控方案一般采用基于TCP或者UDP的RTP协议完成数据传输,远程访问时,常常因为无法穿透防火墙导致连接设备失败。由于防火墙都会允许HTTP协议通过,所以采用HTTP的流媒体协议不需要考虑防火墙担心问题。

IP摄像头芯片中,具备硬件编码功能,可以完成H.264+AAC音视频格式的加密编码和MPEG-TS的文件封装,同时生成加密密钥;其中实现的软件流分割器,将TS文件持续处理,不断更新web服务器缓存中的M3U8文件和ts文件。

在IP摄像头中,运行一个简单的web服务器,实现基本的HTTP协议和HTTPS协议。其中,不仅提供了M3U8和ts文件获取服务,还通过HTTPS服务提供加密密钥的获取服务。其中,HTTP服务还包含一个HTML页面,其中提供了供浏览器访问的页面,其主体部分可以采用支持HTML5 video规范完成,如下。该段代码将产生一个内嵌在网页内部的,640x480尺寸的窗口。

手机客户端通过HTTP可以请求到位于IP摄像头中的M3U8索引文件,并不断请求其中的密钥文件和ts文件,用密钥文件解密请求到的ts文件,解密后解码输出。苹果公司的手机操作系统iOS完全兼容HTTP直播流协议,可以通过Safari浏览器或客户端模式支持。

5 结论

基于HTTP流媒体协议,构建加密的直播流服务,可以满足音视频文件在互联网上安全传输的需求。而且HTTP协议不需要考虑穿透防火墙的问题,比传统的RTSP协议更加适合直播服务。由于HTTP直播流协议没有修改HTTP标准,只是在HTTP基础上进行了应用扩展,因此服务器分发系统的部署也非常简单,普通的web服务器都可以使用,应用成本和难度大幅度降低。

参考文献:

[1] 王志海,童新海,沈寒辉. OpenSSL与网络信息安全――基础、结构和指令[M].北京:清华大学出版社,2007.

[2] 郑东,李祥学,黄征.密码学――密码算法与协议[M].北京:电子工业出版社,2009.

[3] (美)史蒂文斯.TCP.IP详解(卷3):TCP事务协议.HTTP和UNIX域协议[M].北京:人民邮电出版社,2010.

[4] (美)史蒂文斯,(美)拉戈. UNIX环境高级编程[M].2版.北京:人民邮电出版社,2006.

上一篇:计算机向平板化发展带来的思考 下一篇:基于Windows的可移动Moodle教学平台的建立