中國網通集團研究院 趙曉光
摘 要:本文簡要介紹了典型VOD系統,同時主要在VOD系統安全性要求方面進行了闡述,最后結合VOD系統的特點,參考用于Web安全性應用的SSL/STL協議,提出了一個簡化的、專門用于VOD系統的一個安全協議。
關鍵字:VOD 安全協議 密鑰 RSA 數字簽名 認證
一、引言
隨著計算機多媒體技術、通信的分組交換技術、數字與光纖傳輸技術的日益成熟,視頻點播(VOD:Video On Demand)系統也發展起來。在VOD系統使用日益廣泛的今天,建立一個安全的VOD系統也是非常迫切的要求。VOD系統通過安全協議交換控制信息,能夠保證連接的安全性。因為多媒體數據量很大,所以,對所有的多媒體數據進行加密傳輸是不現實的,而且即使加解密速度達到了要求,服務器也不可能、也完全沒有必要承受如此大的計算量。所以,解決的辦法是對客戶和服務器之間的控制信息進行加密,而不對多媒體數據流進行加密。因為控制信息加密了,完全能夠保證整個系統的安全性。
隨著社會經濟的發展和技術進步,人們對數據、圖像業務,特別是多媒體業務方面的需求也與日俱增,開拓新型的寬帶業務成為信息業的重要目標。視頻點播業務是寬帶業務中的最有代表性的典型應用。通過VOD系統,用戶可以自由地從遠端視頻節目庫中選擇需要觀看的電視節目,就像使用家中的錄像機一樣。
視頻點播技術是在計算機多媒體技術、通信的分組交換技術、數字與光纖傳輸技術日益成熟的條件下發展起來的。計算機技術的進步,尤其是Web技術的發展,改變了信息基礎設施的結構,包括信息的生成、存儲、傳送和表現形式等方面。目前,文本、圖像以及窄帶視頻信號已經數字化,并通過網絡存儲、傳送和再現;但是,這些傳統手段不能充分滿足當今社會對高質量、連續多媒體(如高保真音頻和電視質量視頻)的應用要求。VOD系統覆蓋廣泛的領域,如影視點播、卡拉OK、遠程教學、公司培訓、廣告亭、智能小區等。同時,將這樣的媒體引入信息基礎建設對計算機開發帶來了新的挑戰,因為它們自身的固有屬性,包括對流量數據存儲和連續播放的要求。它們要求大容量存儲設備,要求寬帶網絡環境,最主要的是必須保證實時傳輸。傳統的技術不能滿足嚴格的實時性和大容量要求,其技術瓶頸特別反映在網絡帶寬、文件系統和存儲設備I/O性能這3個方面。為此,許多解決方案應運而生,其中一些方案使用專用硬件平臺或超級計算機作為多媒體服務器。然而,依賴硬件解決方案不僅代價昂貴,而且會給今后的擴展、升級和維護帶來問題。另一些方案則以低帶寬連接為目標,用于傳送低質量、小屏幕的視頻內容,例如,我們通過拔號上網收看的一些“節目”,這些方法只能局限于某些應用,無法保證高質量視頻點播的要求。
隨著人們對信息需求的不斷深化,多媒體信息服務,特別是對視頻和音頻信息的點播服務引起了人們的極大興趣;而存儲技術、通信技術和視頻壓縮技術的高速發展,使得通過高速網絡進行視頻點播服務成為可能。VOD的實質是信息使用者根據自己的需要主動獲得多媒體信息,它與信息發布和廣播的區別在于主動性和交互性。這種信息服務方式符合人們對信息資源更深層次的需要,它改變了廣播式的被動灌輸方式。
VOD服務有許多種吸引人的應用,例如點播電影、卡拉OK、可視雜志、計算機輔助教學或培訓等。但是視頻業務的數據量是非常大的,要實時傳輸需要巨大的帶寬,如640×480點陣、64K彩色(16bit)、25幀/秒的電視數據要求的傳輸帶寬是122.88Mbit/s,以前的PSTN(共同交換電話網)和N-ISDN(窄帶綜合業務數字網)等是以電路交換為基礎的窄帶網絡。PSTN只能提供14.4kbit/s或28.8kbit/s的數據速率;N-ISDN的BRI(基本速率接口)是2B+D、PRI(主速率接口)為30B+D,其中B為64kbit/s。在這種低速網絡中是無法實現實時視頻業務傳輸的。近年來,隨著MPEG-1和MPEG-2等高壓縮比的壓縮方法的出現和以ATM為基本傳輸方式的B-ISDN通信技術和高速以太網的發展,視頻服務及其技術逐漸成為人們研究的熱門課題。
二、典型的VOD系統
一個典型的VOD系統結構示意圖參見《中國多媒體視訊》第七期。該系統包括:
(1)服務器媒體服務模塊:提供多媒體和服務信息。
(2)服務器應用服務模塊:接受用戶請求,下載各種用戶終端應用,完成與用戶終端的交互工作。
(3)網絡傳輸設備:網絡可以是采用局域網方式,甚至是廣域網方式。
(4)服務器管理模塊:負責整個系統的運行,記錄有關信息。
(5)用戶終端:可以用個人計算機、專用機頂盒來實現。對性能較高的個人計算機完全可以通過裝載軟件來實現,對于性能較低的個人計算機可以通過解壓卡來完成解碼。使用專用的機頂盒可以配合電視來收看。
(6)基于Web的管理系統:管理員可以在任何位置、通過任何終端經認證后即可對系統進行管理。
(7)節目制作系統:一般情況下用戶可以直接將VCD節目加載到視頻服務器中,如果需要將錄像帶、LD等存儲介質中的模擬視頻節目加載到視頻庫中,則需要通過節目制作系統來完成。
三、VOD系統的安全協議
用戶在使用VOD系統的時候,需要和服務器交換各種各樣的信息,這些信息中有很多是需要嚴格保密的,比如用戶輸入的用戶名和密碼等等。VOD的運行商就需要這些信息來記錄用戶的使用情況,并根據這些情況進行收費。而用戶也必須能夠確信使用的是正確的服務器,而不是假冒的。這樣用戶才能夠放心地輸入自己的用戶名和密碼等信息。所有這些,都必須建立在一個安全的連接基礎上,如果沒有這個安全的連接,建立起來的VOD系統是完全不可靠的。
我們知道目前正在使用的TCP/IP是沒有考慮到安全性的,所以,如果建立這樣的一個沒有安全性的VOD系統,就很可能出現假冒的用戶,而且真正的用戶的密碼也是很容易被監聽的。這樣的VOD系統是不能夠實際使用的,所以要建立一個實用的VOD系統,必須要考慮到安全性,使用戶能夠放心地使用,并且不能抵賴其使用。
下面,為了實現一個安全協議,在參考Web安全性中使用的SSL/STL協議的基礎上,設計了一個簡化的、專門用于VOD系統的一個協議,當然,這個協議也可以用于多媒體傳輸的其他一些方面,比如視頻會議(Video Conference)等。協議的流程圖參見《中國多媒體視訊》第七期。協議的設計使得服務器和客戶能夠互相鑒別對方的身份、協商加密和MAC算法以及用來保護發送的數據的加密密鑰。也就是為兩個通信個體之間提供保密性和完整性(身份認證),并且要實現互操作性、可擴展性、相對效率要高。
協議由一系列在客戶和服務器之間交換的報文組成。圖中顯示了在客戶與服務器間建立邏輯連接所需要的初始交換,流程為:
(1)交換Hello消息,對于算法、交換隨機值等協商一致;
(2)交換必要的密碼參數,以便雙方得到統一的前主密鑰;
(3)交換證書和相應的密碼信息,以便進行身份認證;
(4)產生主密鑰;
(5)檢驗雙方是否已經獲得同樣的安全參數。
這個交換可以看成是具有4個階段。
1.建立起安全能力屬性
這個階段用于客戶端和服務器端開始邏輯連接并且建立和這個連接關聯的安全能力。客戶發起這個交換,發送具有下述參數的client_hello報文。
(1)版本:客戶能夠使用的最高的協議版本,加入這個字段的目的是為了以后便于擴展協議。
(2)隨機數:客戶生成的隨機數,由32位時間戳和安全隨機數生成器生成的28字節隨機序列。這些值是為了在密鑰交換之間用來防止重放攻擊的。
(3)密文族:客戶所支持的密碼算法列表(CipherSuite),按照優先級遞減的次序排列。列表的每個元素(每個密文族)定義了密鑰的交換算法和加密說明。
(4)壓縮方法:客戶支持的壓縮方法列表。
在發送了client_hello報文后,客戶等待與client_hello報文具有同樣參數的服務器的server_hello報文。服務器發送server_hello消息參數有如下的約定。
(1)版本字段包含客戶建議的最低版本以及服務器支持的最高版本
(2)隨機數字段由服務器生成,獨立于客戶的隨機數字段。
(3)密文字段包含服務器從客戶建議的密碼算法中挑出的一套加密方法。
(4)壓縮字段包含服務器從客戶建議的壓縮方法中挑出的一個壓縮方法。
密文族參數的第一個元素是密鑰交換算法(即用于常規加密與MAC加密密鑰的交換方法)。下面是一些支持的密鑰交換方法。
(1)RSA:使用接收者的RSA公開密鑰對密鑰進行加密。接收者的密鑰的公開密鑰證書必須提供。
(2)Diffie-Hellman密鑰交換:可以是固定的Diffie-Hellman密鑰交換和短暫的Diffie-Hellman密鑰交換或者是匿名的Diffie-Hellman密鑰交換。
如果要完善系統,可以支持更多的密鑰交換算法,這樣,安全性能顯著提高。這里為了討論方便,就采用國際上已經廣泛采用的RSA公鑰系統。
密鑰交換方法定義之后是加密方法,我們知道,使用公鑰加密是不現實的,因為計算量大,速度慢,所以我們一般采用的是公鑰來交換密鑰,真正的加密使用的加密算法還是分組加密算法,可以使用的算法很多,可以是RC系列、DES、IDEA、AES等等。這里,需要指出的是,協議的實現要支持盡可能多的加密算法,讓客戶和服務器有更多的選擇,這樣,安全性才能得到很好的保證。
2.服務器認證和密鑰交換
服務器需要被鑒別,這樣用戶才知道是連接的正確的服務器,這需要服務器發送自己的證書給用戶,這里使用國際標準的X.509證書(關于X.509的資料請查相關的國標,這里限于篇幅就不詳細介紹了),這樣消息就包含一個X.509證書。上面我們采用的是RSA公鑰系統進行討論的,所以服務器不需要發送server_key_exchange消息,但是如果以其他的方式,就可能需要發送server_key_exchange消息了。然后,服務器發送certificate_request消息,指出公開密鑰算法和使用方法。最后,服務器發送server_hello_done,然后等待客戶應答。這個報文沒有任何參數。
3.客戶認證和密鑰交換
客戶收到服務器的server_done消息后,根據需要檢查服務器提供的證書,并判斷server_hello的參數是否可以接受,如果都沒有問題的話,發送以下一個或多個消息給服務器。
(1)如果服務器請求了客戶端證書的話,則客戶首先發送一個certificate消息,若客戶沒有證書,則發送一個no_certificate警告。這個步驟一般是需要的,因為服務器要知道是合法的用戶在點播VOD系統,并且作為客戶使用了VOD系統的不可抵賴的依據。
(2)然后客戶發送client_key_exchange消息,消息的內容取決于密鑰交換的類型,這里,我們只討論RSA公鑰系統,客戶生成48字節的預先主密碼,并且使用服務器證書的公鑰對其進行加密。
(3)最后,客戶發送一個certificate_verify消息,其中包含一個簽名,對從第一條消息以來的所有握手消息的HMAC值(用master_secret)進行簽名。這樣做的目的是對客戶提供明確的驗證。這樣,如果有人想假冒某個合法用戶進行VOD點播的話,他不可能發出這個消息,也就不能假冒成功。