本發(fā)明涉及通信網(wǎng)絡(luò)信息安全技術(shù)領(lǐng)域,主要涉及基于身份簽名與驗證的安全會話技術(shù)和基于流密碼的語音加密技術(shù),在保證通信安全的同時利用基于變尺度窗口的自適應(yīng)緩存技術(shù)保障通信語音的質(zhì)量。
背景技術(shù):VoIP是一種利用互聯(lián)網(wǎng)承載語音數(shù)據(jù)的新型通信技術(shù),它對語音采取壓縮編碼、打包分組、路由傳輸、解包解碼等多種技術(shù)在IP網(wǎng)或互聯(lián)網(wǎng)上實現(xiàn)語音通信,由于互聯(lián)網(wǎng)自身特點,VoIP相對于傳統(tǒng)電話網(wǎng)絡(luò),傳遞語音更為廉價,更容易進行擴展,但是VoIP協(xié)議本身并不完善,VoIP面臨著很多安全問題,具體可以概括如下:(1)VoIP通信系統(tǒng)存在著很多潛在的安全威脅VoIP通信系統(tǒng)中常用的信令控制協(xié)議有H.323協(xié)議簇和SIP協(xié)議簇,但這兩者都未定制專門的安全方案。特別在使用SIP協(xié)議簇的VoIP通信系統(tǒng)存在著很多潛在的安全威脅,包括注冊劫持攻擊、消息篡改攻擊、偽裝服務(wù)器攻擊、拆卸回話攻擊、拒絕服務(wù)攻擊、媒體攻擊等。SIP面臨的安全威脅主要來源于SIP系統(tǒng)無法提供實體間的雙向身份認證與SIP消息的完整性檢查。注冊劫持和消息篡改攻擊便是因為SIP消息被非法篡改后無法及時發(fā)現(xiàn),而假冒服務(wù)器攻擊和拆卸會話攻擊等則是由于通信實體間無法有效地進行雙向身份檢驗;(2)VoIP通信系統(tǒng)對語音質(zhì)量有所損害;VoIP通信不同于傳統(tǒng)電話,它采用的是分組交換技術(shù),在網(wǎng)絡(luò)上傳送的是數(shù)據(jù)包,而非語音信號,故需將語音信號量化后編碼、壓縮、打包(分組)等一些列操作,對語音質(zhì)量有所損害;(3)VoIP通信系統(tǒng)可能導致語音包的丟失和延遲到達由于網(wǎng)絡(luò)的不穩(wěn)定性和動態(tài)變化可能導致語音包的丟失和延遲到達,嚴重影響通信質(zhì)量。
技術(shù)實現(xiàn)要素:為了解決上述的技術(shù)問題,本發(fā)明提供了一種基于變尺度窗口機制的VoIP服務(wù)安全保障方法與系統(tǒng),該系統(tǒng)能夠有效的提高VoIP通信的安全性,同時提供了語音質(zhì)量保障技術(shù)來消除或減輕語音通信過程中出現(xiàn)的網(wǎng)絡(luò)不穩(wěn)定等不確定因素造成的語音包的丟失和延遲對通信質(zhì)量造成的影響。本發(fā)明的方法所采用的技術(shù)方案是:一種基于變尺度窗口機制的VoIP服務(wù)安全保障方法,其特征在于,包括以下步驟:步驟1:語音發(fā)送端sender向發(fā)送端代理服務(wù)器proxy1發(fā)送注冊請求,通過相互簽名驗證通過之后注冊成功,隨后所述的sender向語音接受端receiver發(fā)送會話請求;步驟2:所述的proxy1在驗證所述的sender的身份通過之后,將所述的會話請求發(fā)送給接收端代理服務(wù)器proxy2,所述的proxy2在驗證所述的proxy1身份通過之后再將所述的會話請求發(fā)送給所述的receiver;步驟3:所述的receiver首先驗證所述的proxy2的身份,如果通過驗證,則向所述的proxy2發(fā)送請求回復消息建立會話,所述的proxy2在驗證所述的receiver的身份通過之后,將所述的請求回復消息發(fā)送給所述的proxy1,所述的proxy1在驗證通過所述的proxy2身份通過之后再將所述的請求回復消息轉(zhuǎn)發(fā)給所述的sender,所述的sender在驗證通過所述的proxy1的身份之后與所述的receiver建立會話;步驟4:所述的sender對語音消息進行加密操作,加密之后發(fā)送給所述的receiver;步驟5:所述的receiver在接收到所述的加密的語音消息之后對其進行解密,并將解密后的語音消息發(fā)送到基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存算法的抖動緩沖區(qū);步驟6:所述的語音消息經(jīng)過所述的自適應(yīng)抖動緩存處理之后發(fā)送到語音播放端進行播放。作為優(yōu)選,步驟1中所述的用戶注冊過程的具體實現(xiàn)又包括以下子步驟:步驟1.1:所述的sender向所述的proxy1發(fā)送注冊請求,私鑰生成器根據(jù)所述的sender和所述的proxy1提供的身份信息為他們生成相應(yīng)的私鑰;所述的Proxy1在收到注冊請求后根據(jù)自己的私鑰對SIP注冊請求消息中的部分頭域進行簽名運算,并返回未經(jīng)授權(quán)消息401Unauthorized給語音發(fā)送端sender,其中所述的401Unauthorized消息中含有所述的Proxy1的簽名;步驟1.2:所述的sender的SSM使用所述的Proxy1的公鑰驗證收到的簽名,若簽名驗證通過,則發(fā)送注冊消息REGISTER進行注冊,該注冊消息REGISTER中包含有所述的sender的簽名;若簽名驗證失敗,則終止向所述的Proxy1進行注冊;步驟1.3:所述的Proxy1收到所述的sender的SSM發(fā)送的注冊消息REGISTER后,使用所述的sender的公鑰驗證所述的sender的簽名,若驗證通過,則發(fā)送200OK響應(yīng)提示所述的sender注冊成功,若驗證失敗,則響應(yīng)錯誤消息。作為優(yōu)選,步驟2和步驟3所述的會話請求與建立會話流程,其具體實現(xiàn)包括以下子步驟:步驟2.1:所述的sender生成用于密鑰協(xié)商的數(shù)據(jù)并將其和包含自身私鑰簽名的會話請求發(fā)送給所述的proxy1;步驟2.2:所述的proxy1驗證所述的sender的簽名,通過則將自己的簽名替換掉所述的sender的簽名后,將該會話請求轉(zhuǎn)發(fā)給所述的Proxy2;步驟2.3:所述的Proxy2驗證通過簽名之后,將自己的簽名替換掉所述的proxy1的簽名,并將該會話請求轉(zhuǎn)發(fā)給所述的receiver;步驟2.4:所述的receiver驗證所述的Proxy2的簽名,驗證通過之后生成用于密鑰協(xié)商的數(shù)據(jù)并將其和確認消息經(jīng)過逆向的逐級的簽名與身份認證返回給所述的sender,各級簽名通過之后,建立起會話并生成了會話雙方共有的會話密鑰。作為優(yōu)選,所述的sender對語音消息進行加密操作,其具體實現(xiàn)包括以下子步驟:步驟4.1:所述的語音消息傳輸開始時,通信雙方同步一次初始向量,每次同步發(fā)送隨機的8個32位無符號整數(shù);步驟4.2:所述的初始向量同步之后,利用雙方共有的會話密鑰和初始向量來保證通信雙方密鑰流的同步;步驟4.3:所述的語音消息經(jīng)過加密之后發(fā)送至所述的receiver,所述的receiver通過同步的密鑰來進行解密。作為優(yōu)選,所述的語音消息傳輸一段時間之后,需重新同步一次所述的初始向量,以保證密鑰流產(chǎn)生的隨機性;作為優(yōu)選,步驟6中所述的語音消息經(jīng)過所述的自適應(yīng)抖動緩存處理,為語音質(zhì)量增強保障階段,主要通過一種基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存算法根據(jù)語音包延遲的最新情況實時更新統(tǒng)計窗口中的樣本數(shù)量,使用窗口中最能反映網(wǎng)絡(luò)延遲現(xiàn)狀的歷史語音包構(gòu)建網(wǎng)絡(luò)延時的分布函數(shù),基于最大化語音質(zhì)量自適應(yīng)選擇最佳抖動緩存大小,以保障語音播放的質(zhì)量;其具體實現(xiàn)包括以下子步驟:步驟6.1:基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存接收發(fā)送來的解密語音包,判斷:接收到的解密語音包是否是一個通話段的第一個語音包?若是,則這個語音包的播放延遲就設(shè)定為其網(wǎng)絡(luò)延遲;若否,則繼續(xù)執(zhí)行下述步驟;步驟6.2:自適應(yīng)抖動緩存根據(jù)后續(xù)的語音包的延遲調(diào)用自適應(yīng)變尺度窗口算法ADWIN來更新統(tǒng)計窗口的大小ω;步驟6.3:利用更新后的窗口中的剩余歷史語音數(shù)據(jù)構(gòu)建網(wǎng)絡(luò)延時的直方圖,進而近似獲取網(wǎng)絡(luò)延遲的概率分布函數(shù);步驟6.4:根據(jù)所述的網(wǎng)絡(luò)延時的概率分布函數(shù)估算在一定延時條件下導致的丟包率;步驟6.5:采用E-Model模型計算語音質(zhì)量MOS值;步驟6.6:尋找最優(yōu)播放延時使得在該延時條件下的MOS最大;步驟6.7:將所述的最優(yōu)播放延時設(shè)置成該語音包的播放延時。作為優(yōu)選,所述的部分頭域包括From、To、Contact、Via、Cseq、Content-length。本發(fā)明的系統(tǒng)所采用的技術(shù)方案是:一種基于變尺度窗口機制的VoIP服務(wù)安全保障系統(tǒng),包括:語音發(fā)送端sender、發(fā)送端代理服務(wù)器proxy1、接收端代理服務(wù)器proxy2、語音接受端receiver和私鑰生成器;其特征在于:所述的語音發(fā)送端sender設(shè)置有安全SIP會話模塊SSM和語音加解密模塊VEM,所述的語音接受端receiver均設(shè)置有安全SIP會話模塊SSM、語音加解密模塊VEM和語音質(zhì)量保障模塊QEM;所述的安全SIP會話模塊SSM,用于為系統(tǒng)提供一種基于身份密碼的SIP安全方案;所述的語音加解密模塊VEM,用于加解密語音消息;所述的語音質(zhì)量保障模塊QEM,用于提供一種基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存。本發(fā)明與現(xiàn)有技術(shù)相比具有以下的主要優(yōu)點:第一.使用SIPURL作為身份信息,通過消息簽名與簽名驗證實現(xiàn)點對點的身份認證,利用基于身份密碼體制的身份簽名和密鑰協(xié)商方案實現(xiàn)端到端的身份認證與密鑰協(xié)商,回避了HTTP摘要認證預共享密鑰和只提供單向認證的缺陷,避免了PKI證書認證管理復雜和無會話密鑰協(xié)商功能的不足,可有效克服SIP中的安全威脅,且相比面向SIP通信的域間認證與密鑰協(xié)商機制具有運算更輕量的優(yōu)勢;第二.語音加密使用基于流密碼加密語音的技術(shù),降低了加密語音帶來的延時,也避免了因丟包和抖動導致加解密不同步的嚴重問題;第三.針對IP網(wǎng)絡(luò)的網(wǎng)絡(luò)延時與抖動,本發(fā)明引入了一個動態(tài)調(diào)整窗口大小的算法以實現(xiàn)抖動緩存的自適應(yīng),該算法不僅提高了預測網(wǎng)絡(luò)延時的準確率,還能及時準確地應(yīng)對網(wǎng)絡(luò)突發(fā)情況,改善因延時和抖動造成的VoIP服務(wù)質(zhì)量下降問題;總之,本發(fā)明利用基于身份密碼的SIP安全方案來提供安全的會話,采用基于流密碼的加密語音技術(shù),降低了加密語音帶來的延時同時也避免了加解密不同步的問題,最后引入了一個基于動態(tài)窗口的自適應(yīng)緩存來應(yīng)對網(wǎng)絡(luò)延時與抖動以盡可能保障最終播放語音的質(zhì)量。附圖說明圖1:為本發(fā)明實施例的系統(tǒng)架構(gòu)。圖2:為本發(fā)明實施例中安全會話建立流程。圖3:為本發(fā)明實施例中語音加密流程。圖4:為本發(fā)明實施例中語音質(zhì)量保障流程。具體實施方式以下結(jié)合具體實施例和附圖來對本發(fā)明做進一步的闡述。請見圖1,本發(fā)明的系統(tǒng)所采用的技術(shù)方案為:一種基于變尺度窗口機制的VoIP服務(wù)安全保障系統(tǒng),包括:語音發(fā)送端sender、發(fā)送端代理服務(wù)器proxy1、接收端代理服務(wù)器proxy2、語音接受端receiver和私鑰生成器;語音發(fā)送端sender設(shè)置有安全SIP會話模塊SSM和語音加解密模塊VEM,語音接受端receiver均設(shè)置有安全SIP會話模塊SSM、語音加解密模塊VEM和語音質(zhì)量保障模塊QEM;安全SIP會話模塊SSM,用于為系統(tǒng)提供一種基于身份密碼的SIP安全方案,該方案使用基于身份密碼的簽名機制實現(xiàn)點對點之間的雙向身份認證,使用消息完整性檢驗和Diffie-Hellman密鑰協(xié)商機制實現(xiàn)跨域用戶代理端到端的身份驗證與密鑰協(xié)商;語音加解密模塊VEM,用于加解密語音消息,采用了流密碼算法HC-256;語音質(zhì)量保障模塊QEM,用于提供一種基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存,根據(jù)接受到的語音包的延時即網(wǎng)絡(luò)的最新情況實時更新統(tǒng)計窗口中的樣本數(shù)量,使用窗口中最能反映網(wǎng)絡(luò)現(xiàn)狀的歷史語音包構(gòu)建網(wǎng)絡(luò)延時的分布函數(shù),基于最大化語音質(zhì)量自適應(yīng)選擇最佳抖動緩存大小。本發(fā)明的方法所采用的技術(shù)方案為:一種基于變尺度窗口機制的VoIP服務(wù)安全保障方法,包括以下步驟:步驟1:語音發(fā)送端sender向發(fā)送端代理服務(wù)器proxy1發(fā)送注冊請求,通過相互簽名驗證通過之后注冊成功,隨后sender向語音接受端receiver發(fā)送會話請求;請見圖2,其用戶注冊過程的具體實現(xiàn)又包括以下子步驟:步驟1.1:sender的安全SIP會話模塊SSM向proxy1發(fā)送注冊請求,私鑰生成器根據(jù)sender和proxy1提供的身份信息為他們生成相應(yīng)的私鑰;Proxy1在收到注冊請求后根據(jù)自己的私鑰對SIP注冊請求消息中的部分頭域(包括From、To、Contact、Via、Cseq、Content-length)進行簽名運算,并返回未經(jīng)授權(quán)消息401Unauthorized消息給語音發(fā)送端sender,其401Unauthorized消息中含有Proxy1的簽名{Unauthorized}Signproxy1;步驟1.2:sender的SSM使用Proxy1的公鑰驗證收到的簽名,若簽名驗證通過,則發(fā)送注冊消息REGISTER進行注冊,該注冊消息REGISTER中包含有sender的簽名{REGISTER}Signsender;若簽名驗證失敗,則終止向Proxy1進行注冊;步驟1.3:Proxy1收到sender的SSM發(fā)送的注冊消息REGISTER后,使用sender的公鑰驗證sender的簽名,若驗證通過,則發(fā)送200OK響應(yīng)提示sender注冊成功,若驗證失敗,則響應(yīng)錯誤消息。步驟2:proxy1在驗證sender的身份通過之后,將會話請求發(fā)送給接收端代理服務(wù)器proxy2,proxy2在驗證proxy1身份通過之后再將會話請求發(fā)送給receiver,請見圖2,其會話請求的具體實現(xiàn)包括以下子步驟:步驟2.1:語音發(fā)送端sender的安全SIP會話模塊SSM隨機產(chǎn)生數(shù)n1,計算其與語音接收端receiver公鑰PB的乘積n1·PB并將其值存儲在本地,然后將n1·PB和sender利用其私鑰對會話請求消息的簽名{INVITE}Signsender包含在會話請求INVITE消息中發(fā)送出去請求建立會話;步驟2.2:發(fā)送端代理服務(wù)器proxy1首先驗證語音發(fā)送端sender的簽名,若驗證通過,則將自己的簽名替換掉sender的簽名,然后將簽名{INVITE}Signproxy1包含在INVITE消息中轉(zhuǎn)發(fā)給接收端代理服務(wù)器Proxy2;步驟2.3:接收端代理服務(wù)器Proxy2首先驗證Proxy1的簽名,若驗證通過,則將自己的簽名替換掉Proxy1的簽名,然后將{INVITE}Signproxy2包含在INVITE消息中轉(zhuǎn)發(fā)給語音接收端receiver的SSM;步驟3:receiver首先驗證proxy2的身份,如果通過驗證,則向proxy2發(fā)送請求回復消息建立會話,proxy2在驗證receiver的身份通過之后,將請求回復消息發(fā)送給proxy1,proxy1在驗證通過proxy2身份通過之后再將請求回復消息轉(zhuǎn)發(fā)給sender,sender在驗證通過proxy1的身份之后與receiver建立會話;其可以概括為receiver驗證Proxy2的簽名,驗證通過之后生成用于密鑰協(xié)商的數(shù)據(jù)并將其和確認消息經(jīng)過逆向的逐級的簽名與身份認證返回給sender,各級簽名通過之后,建立起會話并生成了會話雙方共有的會話密鑰;請見圖2,建立會話的具體實現(xiàn)包括以下子步驟:步驟3.1:語音接收端receiver的SSM首先驗證Proxy2的簽名,若驗證通過,則隨機產(chǎn)生一個數(shù)n2,計算其與語音發(fā)送端公鑰的PA的乘積n2·PA并將其保存在本地,然后將n2·PA、receiver利用其私鑰對OK消息的簽名{OK}Signreceiver包含在200OK消息中返回給Proxy2;步驟3.2:接收端代理服務(wù)器Proxy2首先驗證receiver的簽名,若驗證通過,則將自己的簽名替換掉receiver的簽名,然后將Proxy2對OK消息的簽名{OK}Signproxy2包含在OK消息中轉(zhuǎn)發(fā)給發(fā)送端代理服務(wù)器proxy1;步驟3.3:發(fā)送端端代理服務(wù)器Proxy1驗證proxy2的簽名,若驗證通過,則將自己的簽名替換掉proxy2的簽名,然后將Proxy1對OK消息的簽名{OK}Signproxy1包含在OK消息中轉(zhuǎn)發(fā)語音發(fā)送端sender的SSM;步驟3.4:sender在驗證通過proxy1的身份之后,語音通信雙方的安全SIP會話模塊SSM根據(jù)密鑰協(xié)商協(xié)議由接收到的數(shù)據(jù)計算出共有的會話密鑰。步驟4:sender對語音消息進行加密操作,加密之后發(fā)送給receiver再進行解密;請見圖3,其加解密操作,具體實現(xiàn)包括以下子步驟:步驟4.1:通信雙方的安全SIP會話模塊SSM將雙方共有的會話密鑰發(fā)送給語音加解密模塊VEM,發(fā)送端的VEM生成生成初始向量并發(fā)送給接收端VEM并進行一次初始向量的同步,同步初始向量包包含一字節(jié)的同步信息、32字節(jié)的同步向量以及一字節(jié)的數(shù)據(jù)校驗;步驟4.2:利用雙方共有的會話密鑰和同步初始通過HC-256密鑰流發(fā)生器生成同步的密碼本來保證通信雙方密鑰流的同步;步驟4.3:發(fā)送端的VEM中的語音編碼器編碼對語音包進行編碼操作,利用從密碼本選取的密鑰流對編碼后語音包進行加密操作,之后發(fā)送給接收端的語音加解密模塊VEM,每個語音包通過流密碼加密后,數(shù)據(jù)包將同時攜帶有密碼項的序號和明文的校驗和;步驟4.4:語音接收端的VEM在接收到包含有密碼序號、同步信息、明文的校驗和以及加密語音的數(shù)據(jù)包后,利用同步的密鑰流對加密語音進行解密操作,最終語音編碼器對解密語音進行解碼操作;其中,語音消息傳輸一段時間之后,需重新同步一次初始向量,以保證密鑰流產(chǎn)生的隨機性。步驟5:receiver將解密及解碼后的語音包發(fā)送到語音質(zhì)量保障模塊QEM中基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存區(qū);步驟6:語音消息經(jīng)過自適應(yīng)抖動緩存處理之后發(fā)送到語音播放端進行播放;請見圖4,語音消息經(jīng)過自適應(yīng)抖動緩存處理,為語音質(zhì)量增強保障階段,主要通過一種基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存算法根據(jù)語音包延遲的最新情況實時更新統(tǒng)計窗口中的樣本數(shù)量,使用窗口中最能反映網(wǎng)絡(luò)延遲現(xiàn)狀的歷史語音包構(gòu)建網(wǎng)絡(luò)延時的分布函數(shù),基于最大化語音質(zhì)量自適應(yīng)選擇最佳抖動緩存大小,以保障語音播放的質(zhì)量;其具體實現(xiàn)包括以下子步驟:步驟6.1:基于變尺度統(tǒng)計窗口的自適應(yīng)抖動緩存接收VEM發(fā)送來的解密語音包,判斷:接收到的解密語音包是否是一個通話段的第一個語音包?若是,則這個語音包的播放延遲就設(shè)定為其網(wǎng)絡(luò)延遲;若否,則繼續(xù)執(zhí)行下述步驟;步驟6.2:語音質(zhì)量保障模塊QEM根據(jù)后續(xù)的語音包的延遲調(diào)用自適應(yīng)變尺度窗口算法ADWIN來更新統(tǒng)計窗口的大小ω;步驟6.3:利用更新后的窗口中的剩余歷史語音數(shù)據(jù)構(gòu)建網(wǎng)絡(luò)延時的直方圖,進而近似獲取網(wǎng)絡(luò)延遲的概率分布函數(shù);步驟6.4:根據(jù)網(wǎng)絡(luò)延時的概率分布函數(shù)估算在一定延時條件下導致的丟包率;步驟6.5:采用E-Model模型計算語音質(zhì)量MOS值(經(jīng)過代入計算,MOS值最終是一個以網(wǎng)絡(luò)延時為自變量的單變量函數(shù),即MOS∝網(wǎng)絡(luò)延時);步驟6.6:尋找最優(yōu)播放延時使得在該延時條件下的MOS最大;步驟6.7:將最優(yōu)播放延時設(shè)置成該語音包的播放延時。以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,因此,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。