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