音頻視頻監(jiān)控系統(tǒng)中的XML加密

為了防止在網(wǎng)絡(luò)中傳輸?shù)囊粢曨l數(shù)據(jù)被惡意藏取或修改,我們采用了基于XML安全的傳輸方式,對RTSP命令數(shù)據(jù)中的關(guān)鍵部分進(jìn)行了加密處理,對青視頻數(shù)據(jù)的RTP包頭和內(nèi)容進(jìn)行了加密保護(hù),在對音視頻性能影響較小的前提下有效的保護(hù)了數(shù)據(jù)的安全。

一、XML加密工作原理

1、XML加密特點(diǎn)

XML的加密特點(diǎn)不同于一些Internet安全協(xié)議,但是解決加密的工作原理是相似的。相對于常用的加密協(xié)議需對數(shù)據(jù)信息中的所有內(nèi)容加密,而不能對特定數(shù)值信息加密,使得加密粒度過粗,XML可以加密結(jié)構(gòu)化數(shù)據(jù)信息中的選定的子集,而對其它非必要信息不進(jìn)行加密操作;XML還可以對多個訪問信息的結(jié)構(gòu)化數(shù)據(jù)存儲進(jìn)行加密,另外XML也可以理解成SOAP(simpleobject access protocol)的安全性擴(kuò)展,使用XML數(shù)據(jù)的嵌入加密方法,獲得應(yīng)用層中的信息加密方法。當(dāng)然在XML加密信息中,必須按照《XML Encryption Syntax andP rocessing》的操作規(guī)范使用,采取標(biāo)準(zhǔn)的XML標(biāo)記語法表示數(shù)據(jù)密鑰、算法及加密數(shù)據(jù)信息。XML加密可分為對稱算法和非對稱算法兩種,前者采用數(shù)據(jù)信息批量加密方法,后者使用交換對稱密鑰方法。粒度加密的3種類型分別是整個文檔加密、加密文檔中的元素與加密元素內(nèi)容。

2、XML加密流程

XML流程中首先將XML明文信息理解為文檔對象模型(DOM),抽取對象的信息數(shù)值,依據(jù)約定加密密鑰和加密算法采取信息加密,加密后的數(shù)據(jù)仍以XML數(shù)據(jù)格式給出,替換原來的XML信息。XML加密流程如圖1所示。

接收數(shù)據(jù)獲得一個非對稱密鑰對,一個是公鑰使用,一個用作私鑰,發(fā)送方獲取接收方的公鑰,獲得秘密的對稱密鑰信息,利用對稱密鑰加密XML文檔中的預(yù)定數(shù)據(jù),并使接收方的公鑰加密,發(fā)送方保留加密的數(shù)據(jù)、加密的對稱密鑰以及可選信息結(jié)合,生成新的XML文檔,之后將加密的XML文檔發(fā)送到接收方;接收方抽取加密的數(shù)據(jù),加密的對稱密鑰和任何附加可選數(shù)值信息,利用非對稱算法和私鑰解密對稱密鑰,然后解密XML文檔中被加密的信息。

二、XML加密語法規(guī)范

XML編程語言使用的命名空間與傳統(tǒng)語言規(guī)則相似,也使用命名空間規(guī)則。XML提供了全局范圍內(nèi)的通用名,有效解決了命名空間名稱沖突的問題。XML的每個語法標(biāo)記都規(guī)范了一組元素和屬性標(biāo)記,此類標(biāo)記(tag)被命名為XML加密語法的標(biāo)記詞匯表。XML程序?qū)⑻幚碓诙喾N語法規(guī)范中的加密數(shù)據(jù),XML語法命名空間都規(guī)范了獨(dú)特的語法標(biāo)記詞匯表,所以在標(biāo)記詞匯差異分類之間就會發(fā)生名字信息沖突的問題。解決方法是在獨(dú)有的命名空間中規(guī)范標(biāo)記詞匯信息表,可以有效避免名字沖突的問題。

三、音頻視頻監(jiān)控系統(tǒng)中的XML加密

XML加密和數(shù)字簽名技術(shù)簡單易用,因此在監(jiān)控系統(tǒng)中受到了大量的應(yīng)用。

1、XML安全在RTSP(Real Time StreamingProtocof)中的應(yīng)用

RTSP協(xié)議是音視頻建流過程中的標(biāo)準(zhǔn)協(xié)議,由option、describe、setup、play、pause、teardown等命令組成,視頻源端和視頻接收端通過上述的命令過程來完成流的協(xié)商、建立、播放、暫停及終止。RTSP協(xié)議采用的是明文傳輸,在傳輸數(shù)據(jù)中包含了音視頻編解碼的約定,會話session值的確定以及接收數(shù)據(jù)端口的約定,因此這些敏感數(shù)據(jù)極可能被惡意獲取,然后假冒去向設(shè)備源獲取數(shù)據(jù),或者假冒設(shè)備源向視頻接收端發(fā)送惡意數(shù)據(jù)或者大量的垃圾數(shù)據(jù),導(dǎo)致視頻接收端的網(wǎng)絡(luò)帶寬被嚴(yán)重占用不能接收正確的數(shù)據(jù)。視頻源端和接收端可以把傳輸命令由XML承載,通過XML的加密技術(shù),對關(guān)鍵數(shù)據(jù)進(jìn)行加密,以保證傳輸命令的正確。在本系統(tǒng)中采用非對稱加密,RTSP建立以前要首先通過帶外傳輸密鑰對。請求端和響應(yīng)端分別擁有公鑰/私鑰對,請求方首先用公鑰加密關(guān)鍵數(shù)據(jù),用私鑰做數(shù)字簽名,響應(yīng)方接收到數(shù)據(jù)后,用公鑰解除數(shù)字簽名,然后驗(yàn)證數(shù)據(jù)的完整性,然后用私鑰解密數(shù)據(jù)中加密部分,再用公鑰加密響應(yīng)數(shù)據(jù)中的關(guān)鍵部分,用私鑰對加密后的數(shù)據(jù)做數(shù)字簽名,發(fā)送給請求方。其Setup建流請求語句:

加密前的XML語句:

rtsp://192 {-168.22. 105:5454/vO/streamid=0 RTSP/'1.0< /URL>

3< /CSeq>

RTP/AVP/TCP; unicasti

Basic YWRta W46YWRta W4A

加密后的XML語句:

< \SETUP>

A23845C 564587'3RTP/AVP/TCP.unicast.B asic YWRtaW46YWRtaW4A

源端響應(yīng)語句:

XML加密前:

RTSP/1.0 2000K3ThuOct 20 06:26:532011 GMT

< Session >3b6ec39c3fOef524

RTP/AVP/TCP.inter-leaved=0-1

507FEE09

< /RESPONSE>

.XML對session和SSRC加密后:

< RESPONSE>

< VERSION>RTSP,/I.0 200 0K< /VERSION>

< CSeq> 3

< DATE> Thu Oct 20 06:26:53 2011 GMT

< C. j p h e r V a I u e >

dcdaefca8ddgs52p9a3

RTP/AVP/TCP,inter-leaved-0-1

< EncryptedData Type= ' http ://www.w3 . org/2001/04Amlenc#Elementr xnOns= 'http ://www..w3 .org/2001/04/xmlenc# '> 。

gsdf rwisdfbnrisvne34uqe

2、視頻數(shù)據(jù)傳輸中的加密過稱

音視頻數(shù)據(jù)的傳輸在業(yè)界均采用標(biāo)準(zhǔn)的RTP/RTCP協(xié)議,RTP包的格式采用的12個字節(jié)的RTP包頭,包頭后面是具體的音視頻數(shù)據(jù),包頭表示了RTP協(xié)議的版本,包的序號以及包的標(biāo)志(一般用來表示是否一幀數(shù)據(jù)的結(jié)束)。以及幀的時(shí)間戳,和流的SSRC(用來區(qū)分流的類型),在本系統(tǒng)中采用的安全措施是用XML結(jié)構(gòu)對RTP進(jìn)行承載,對RTP包頭進(jìn)行加密,擴(kuò)充RTP包頭,添加12個字節(jié),表示3個整形數(shù)字,整形數(shù)字的前兩個字節(jié)表示位置,后兩個字節(jié)表示垃圾數(shù)據(jù)的長度。源端采集數(shù)據(jù)后對原始數(shù)據(jù)封裝成RTP包,然后構(gòu)造XML結(jié)構(gòu),對數(shù)據(jù)中的隨機(jī)位置插入垃圾數(shù)據(jù),并把位置和長度保存在包頭,最后對包頭用對稱密鑰進(jìn)行加密(對稱密鑰加密和解密速度快)。接收端接收到數(shù)據(jù)后,首先對包頭進(jìn)行解密,然后清除垃圾數(shù)據(jù),最后對數(shù)據(jù)進(jìn)行實(shí)時(shí)播放或者存儲。

包頭結(jié)構(gòu)定義如下:

typedef struct

{

/**//*byte 0*/

unsigned char csrc_len:4;/**//* expect 0*1

urx~gned char extension:l; /**//expect 1,see RTP_OP below中/

unsigned char padding:l /**//* expect 0*1

Lmsigned char version:2* /**//*expect 2*//**//*byte1*/‘unsigned char payload:*;/**//*.RTP_PAYLOAD_RTSP-.*/。

unsigned char marker:li/

**//* expect I */

/**//* rDytes 2, 3 * /

unsigned short seq_no r

/**.//* bytes 4-7 *1

unsigned long timestamp;

/**//* bytes 8-JI */

unsigned long ssrc-l/

**//* 'stream number is used here. */

char expandfield[12]4

/expand head for store bad data pos andlength

z RT P_FIXED_HEADER*(如圖2)

四、實(shí)驗(yàn)數(shù)據(jù)顯示

本系統(tǒng)曾用在各種復(fù)雜的網(wǎng)絡(luò)環(huán)境中,下面是采用XML安全處理和通常模式的實(shí)驗(yàn)比較。

兩組實(shí)驗(yàn)的軟硬件環(huán)境相同,具體如下:

硬件環(huán)境:Dell Optiple 330 2臺,一臺做服務(wù)器,一臺做客戶端。

攜遠(yuǎn)天成Topwe5 000車載終端100臺

軟件環(huán)境:Winxp SP3

實(shí)驗(yàn)結(jié)果比較(未采用加密)(如表1)

從上面的實(shí)驗(yàn)數(shù)據(jù)分析,使用XML加密對音視頻的質(zhì)量并沒有明顯的影響,PC機(jī)本身的系統(tǒng)資源占用率高。

小知識之監(jiān)控系統(tǒng)

典型的電視監(jiān)控系統(tǒng)主要由前端監(jiān)視設(shè)備、傳輸設(shè)備、后端控制顯示設(shè)備這三大部分組成,其中后端設(shè)備可進(jìn)一步分為中心控制設(shè)備和分控制設(shè)備。前、后端設(shè)備有多種構(gòu)成方式,它們之間的聯(lián)系(也可稱作傳輸系統(tǒng))可通過電纜、光纖或微波等多種方式來實(shí)現(xiàn)。