李皓,楊成,劉劍波
(中國傳媒大學理工學部信息工程學院,北京 100024)
隨著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協議上的分布式的流媒體視頻加密方案,提供了預加密和實時加密兩種加密模式,能夠滿足大數據量的視頻數據的離線加密和高碼率視頻的實時加密兩種場景。本文的架構如下:第二部分為相關侵權案例;第三部分提出方案的整體架構;第四部分為提出方案的技術細節;性能實驗在第五部分;第六部分結論和展望。
視頻盜流、盜鏈是最常見的兩種安全威脅。視頻盜流是指不法分子非法下載未經授權的視頻內容,并在自己的網頁或APP應用上進行分發。視頻盜鏈是指集體或個人不經過合法運營商同意,自行構建網頁或APP應用程序,使最終用戶不經過合法運營商而是盜鏈者的指定頁面或APP應用程序訪問到合法運營商的視頻資源。視頻盜流和盜鏈會損害合法運營商的利益(廣告收益、版權購買花銷、宣傳價值、帶寬開銷等)。
本節列舉了視頻服務提供商在運營過程中可能存在的安全威脅:
愛奇藝客戶端提供離線播放的功能,用戶可以提前下載愛奇藝網站上的視頻內容,然后在終端設備離線的情況下使用愛奇藝客戶端正常播放,然而分析下載視頻內容,我們發現qsv格式的視頻格式只比flv格式的原版視頻格式在文件開頭多了一些字段(大約5584字節)。因此愛奇藝客戶端下載的qsv格式視頻可以十分容易的轉換成通用的其他視頻格式內容,如果這些內容被傳播出去,即出現視頻盜流的威脅。圖1為使用ultraedit工具對比同一視頻的qsv格式與flv格式的二進制數據,可以看出在第5592個字節之后,兩個文件的內容是相同的。使用播放器可以清晰播放轉換格式后的內容。

圖1 愛奇藝客戶端視頻內容對比
分析panda.tv以及huya.com直播網站的直播視頻,通過使用chrome提供的開發者工具,我們可以很容易的爬取到直播視頻流并且下載至本地。Panda和虎牙都有許多自己制作的視頻節目,如果這些節目被非法分子下載在未經授權的情況下進行分發即構成盜流,是制作商、運營商遭受損失。
與檢測直播網站的操作相同,我們可以借助chrome的開發者工具在瀏覽器點播優酷網上某一視頻的時候爬取到其播放鏈接,與直播網站直接將視頻流緩存到本地不同的是,優酷的播放鏈接可以直接播放該視頻片段。如果不法分子爬取獲得視頻播放鏈接,同時將鏈接公布在自己的網站上,那么網站上的視頻就面臨著被盜鏈的威脅。圖2展示了未經任何認證授權瀏覽器可以順利播放視頻鏈接中的視頻。

圖2 通過盜鏈可以正常播放熱播劇“白夜追兇”
隨著視頻質量的提升,單個流媒體視頻的碼率也變得越來越大,受到單機處理能力的約束,提供實時的視頻加密服務需要耗費越來越多的硬件資源。因此本文提出了一種基于分布式的視頻選擇性加密方案,利用云計算強大的計算能力完成復雜的加密算法。
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所示。
第二部分是針對索引文件的加密。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]。
本文分別從加密效果和加密性能兩個角度對方案的性能進行分析和比較。
加密效果:工作在各個工作節點的選擇性視頻加密算法可以作為可插拔的模塊部署到當前的分布式視頻加擾方案中。本文分別采取了三種不同的選擇性加密算法: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)。
本文提出了一種分布式的加密方案,能夠與HLS的切片策略相互結合,提升使用HLS協議的流媒體傳輸服務的加密效率,同時如果對m3u8文件采用基于屬性的加密方案也能實現針對流媒體視頻的細粒度的權限訪問控制。
方案支持高靈活性、可擴展的業務和內容訪問控制需求,同時能夠適配終端處理,支持分級、分層加密和解密。解決OTT中面臨的“視頻盜鏈”問題和IPTV中“清流盜流”的問題。樣本系統證明本框架具有較好的實用意義。