周井泉,姬德浪
(南京郵電大學(xué) 電子科學(xué)與工程學(xué)院,江蘇 南京 213000)
Skype是世界一流的 P2P(對(duì)等方到對(duì)等方)網(wǎng)絡(luò)語(yǔ)音溝通工具,以無(wú)縫穿透網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT)和防火墻的工作能力、良好的通話質(zhì)量,成為發(fā)展最快的基于IP語(yǔ)音(VoIP)系統(tǒng)。Skype使用了專(zhuān)用的通信協(xié)議,并用高強(qiáng)度密碼加密負(fù)載,但至今為止沒(méi)有公布過(guò)任何有關(guān)協(xié)議或其他技術(shù)專(zhuān)題的文檔。對(duì)于使用了高強(qiáng)度的加密算法和專(zhuān)用通信協(xié)議的Skype系統(tǒng),目前檢測(cè)其流量的效果并不理想。
面對(duì)這種現(xiàn)狀,許多學(xué)者希望建立一種常規(guī)模型。一方面可以加深對(duì)Skype系統(tǒng)的了解;另一方面簡(jiǎn)化Skype業(yè)務(wù)設(shè)別的過(guò)程。
自Skype得到廣泛應(yīng)用以來(lái),很多研究人員對(duì)其進(jìn)行了分析研究。參考文獻(xiàn)[1]分析了Skype報(bào)文在應(yīng)用層的協(xié)議特征字和端口的某些規(guī)律,揭示了Skype不僅可以通過(guò)UDP和TCP進(jìn)行通信,而且通信端口不固定。指出其登錄過(guò)程可以分為UDP探測(cè)、TCP握手和TCP認(rèn)證3個(gè)部分,分析了各個(gè)過(guò)程中存在的應(yīng)用層特征字。提出了一種根據(jù)Skype用戶和超級(jí)節(jié)點(diǎn)連接的特征字和報(bào)文長(zhǎng)度、順序來(lái)識(shí)別Skype的方法。參考文獻(xiàn)[2]使用了報(bào)告UDP的Skype報(bào)文結(jié)構(gòu),發(fā)現(xiàn)了部分未加密的功能字段的特征,為準(zhǔn)確識(shí)別基于UDP的Skype流量提供了一種可能。通過(guò)實(shí)際收集并分析Skype語(yǔ)音通信的流量,參考文獻(xiàn)[3]提出了一種獨(dú)特的模型來(lái)量化VoIP用戶滿意度,其中使用了兩階段過(guò)濾方法來(lái)識(shí)別Skype VoIP會(huì)話,即先用一種啟發(fā)式算法過(guò)濾出可能的Skype流量存儲(chǔ)在磁盤(pán)中,采用離線識(shí)別算法提取Skype通信流量,該離線方法計(jì)算復(fù)雜度較高。參考文獻(xiàn)[4]討論了識(shí)別超級(jí)節(jié)點(diǎn)的兩階段方法,即先采用參考文獻(xiàn)[5]給出的過(guò)濾器方法識(shí)別P2P流量,再用超級(jí)節(jié)點(diǎn)過(guò)濾器區(qū)分超級(jí)節(jié)點(diǎn)和普通節(jié)點(diǎn)。
綜上分析,以前的理論研究缺少完善的Skype語(yǔ)音源模型,造成業(yè)務(wù)識(shí)別過(guò)程復(fù)雜。本文建立了一種通用Skype語(yǔ)音源模型,簡(jiǎn)化了Skype業(yè)務(wù)識(shí)別的整個(gè)過(guò)程。
Skype業(yè)務(wù)包括語(yǔ)音業(yè)務(wù)、數(shù)據(jù)業(yè)務(wù)等,因其之間有相關(guān)性,所以本文只對(duì)Skype的語(yǔ)音業(yè)務(wù)進(jìn)行建模。按其通信的終端不同,可以分成以下兩類(lèi):
(1)通信雙方是安裝Skype客戶端的PC,稱(chēng)為E2E。
(2)一端安裝 Skype客戶端的 PC;另一端是傳統(tǒng)的電話機(jī),稱(chēng)為E2O。
插件模型簡(jiǎn)稱(chēng)為KM模型。圖1所示為Skype語(yǔ)音信號(hào)建立的模型,首先語(yǔ)音源通過(guò)語(yǔ)音編碼器將語(yǔ)音的脈沖編碼調(diào)制(PCM)樣值編碼成少量的比特(幀)。在幀被創(chuàng)建好之前加入一些頭部,如圖中的H1、H2等。圖中的存檔器和加密功能是通過(guò)一些算法對(duì)數(shù)據(jù)流進(jìn)行壓縮和加密。最后,幀在被發(fā)送出去之前在其頭部會(huì)加上未加密的開(kāi)始信息特殊字段,這對(duì)于流量的識(shí)別非常重要。這時(shí)不論幀被封裝在TCP還是UDP中,發(fā)送出去的就是Skype信息。
圖1 Skype語(yǔ)音信號(hào)模型
在KM模型中,3個(gè)參數(shù)決定了業(yè)務(wù)的特征:(1)速率 Vi,表征語(yǔ)音的編碼速率;(2)信息時(shí)間 T,表征 1個(gè)幀的長(zhǎng)度;(3)冗余因數(shù) RF,表征相對(duì)于當(dāng)前的幀,重傳幀的數(shù)量(與編碼方式無(wú)關(guān))。
根據(jù)參考文獻(xiàn)[6],Skype用AES和RSA算法加密信息,對(duì)傳輸層協(xié)議的選擇有著重要的意義。TCP執(zhí)行定向可靠傳輸?shù)倪B接,能夠保證按照正確順序接收數(shù)據(jù)。因此,利用TCP協(xié)議可以加密整個(gè)信息。但UDP協(xié)議提供的連接服務(wù)并不可靠,不能保證數(shù)據(jù)是有序的全部得到傳輸。當(dāng)利用UDP協(xié)議時(shí),接收端需要從應(yīng)用層中提取出一些頭部探測(cè)和處理不正確的數(shù)據(jù)流,不能通過(guò)加密來(lái)傳輸,只能通過(guò)單一數(shù)據(jù)包的有效載荷功能進(jìn)行偽裝,因此利用UDP協(xié)議時(shí)不能加密整個(gè)信息。此外,Skype利用固定端口發(fā)送和接收UDP部分。
基于上面的分析,發(fā)現(xiàn)當(dāng)Skype信息被封裝在UDP協(xié)議的數(shù)據(jù)流中,通過(guò)檢測(cè)UDP靜態(tài)負(fù)荷部分設(shè)別出一部分Skype信息。這個(gè)靜態(tài)信息為開(kāi)始信息。
(1)E2E信息
在2個(gè)Skype客戶端之間尋找封裝在UDP中的信息時(shí),可以識(shí)別出ID號(hào)、干擾信號(hào)和結(jié)構(gòu)標(biāo)志。ID號(hào)是16比特長(zhǎng)的識(shí)別標(biāo)志符,在發(fā)送端被隨意選取,在接受端被拷貝。干擾信號(hào)是5比特長(zhǎng)的識(shí)別標(biāo)志符,偽裝在呈現(xiàn)有效載荷類(lèi)型的1個(gè)字節(jié)中。其3個(gè)隨機(jī)比特可以通過(guò)0X8f位掩碼去除。結(jié)構(gòu)標(biāo)志包含編碼序列和語(yǔ)音塊的復(fù)序列。ID號(hào)和干擾信號(hào)是開(kāi)始信息字段的一部分。
(2)E2O信息
E2O呼叫時(shí),在客戶端和超級(jí)節(jié)點(diǎn)之間有初始的信令連接。觀察封裝在UDP協(xié)議中的有效載荷,在一系列初始信息中,前4個(gè)字節(jié)總是相同的,與E2E相比,E2O有著不同的開(kāi)始信息的格式。可以把這4個(gè)字節(jié)作為唯一的識(shí)別標(biāo)志符,從第5字節(jié)以后就沒(méi)有實(shí)質(zhì)性的意義。
KM模型可以用χ2分布來(lái)判斷被分析的信號(hào)是否滿足Skype信息的格式。χ2分布能夠判斷信息的加密部分。在識(shí)別的過(guò)程中主要分為3類(lèi):
(1)應(yīng)用UDP協(xié)議傳輸?shù)腅2E,干擾信號(hào)是透明的,其他信號(hào)被加密。假定編碼器處于最佳編碼狀態(tài),被編碼的信息可出現(xiàn)完全隨機(jī)(例如均勻分布)。
(2)應(yīng)用 UDP協(xié)議傳輸?shù)?E2O,其前 4個(gè)字節(jié)是透明的,即識(shí)別標(biāo)志符。其余字節(jié)全是加密的,相應(yīng)的比特出現(xiàn)是隨機(jī)的。
(3)應(yīng)用TCP傳輸?shù)腟kype流,整個(gè)信息都被加密,和前面2種情況不同的是整個(gè)信息出現(xiàn)全是隨機(jī)的。
在實(shí)驗(yàn)中對(duì)于每個(gè)屬于Skype流的信息,考慮前G個(gè)組,每個(gè)組有b比特,即首先考慮Gb比特的數(shù)據(jù)流。對(duì)于每個(gè)數(shù)據(jù)塊g=1,…G,變量表征第g數(shù)據(jù)塊中值i出現(xiàn)的次數(shù)。在流的末端,評(píng)估每個(gè)組的χ2的值。如表1所示。
表1 Skype KM模型的信息結(jié)構(gòu)特征
必須將試驗(yàn)得出的χ2的值和預(yù)計(jì)的值進(jìn)行比較。期望依靠流的的類(lèi)型特征和傳輸層的協(xié)議(表1)識(shí)別出Skype業(yè)務(wù)信息。
(1)E2E/UDP
φ={g|1≤g≤G,g≠5,6}是 E2E 隨機(jī)部分,這個(gè)標(biāo)準(zhǔn)的依據(jù)是隨機(jī)部分與均勻分布類(lèi)似,導(dǎo)致χ2分布的值較小。同時(shí),混合情形包括一些透明部分,得出的值較大,因?yàn)樵谝欢ㄒ饬x上,典型的隨機(jī)信號(hào)偏離較大。
(2)E2O/UDP
在此業(yè)務(wù)中,KM模型開(kāi)始信息是透明的,其他的是隨機(jī)的。
(3)E2E/TCP E2O/TCP
其所有數(shù)據(jù)流全是隨機(jī)的。
為了驗(yàn)證本文提出的模型,通過(guò)實(shí)驗(yàn)環(huán)境,利用RAW SOCKET獲取流過(guò)本機(jī)的所有數(shù)據(jù)包,并將其所有信息導(dǎo)入1個(gè)數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)Skype業(yè)務(wù)基于TCP、UDP傳輸協(xié)議的識(shí)別。
本地測(cè)試環(huán)境為WindowsXP系統(tǒng),實(shí)驗(yàn)室局域網(wǎng)環(huán)境。由于檢測(cè)速度的原因,采用非實(shí)時(shí)檢測(cè)。先把數(shù)據(jù)放到數(shù)據(jù)庫(kù)中,再對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行檢測(cè)和分析。
表2 實(shí)驗(yàn)數(shù)據(jù)
測(cè)試結(jié)果分析:FP為誤判數(shù),即非Skype通信數(shù)據(jù)被當(dāng)作Skype測(cè)試數(shù)據(jù),測(cè)試結(jié)果如表2所示。
根據(jù)實(shí)驗(yàn)結(jié)果得出基于KM模型,χ2分布可以有效地識(shí)別出Skype的語(yǔ)音業(yè)務(wù)。
本文根據(jù)對(duì)Skype流量特征的分析,提出一種基于流外部特征的模型來(lái)識(shí)別Skype,并且對(duì)KM模型進(jìn)行實(shí)驗(yàn)驗(yàn)證。此實(shí)驗(yàn)?zāi)P筒坏梢杂行У刈R(shí)別P2P應(yīng)用,而且可以對(duì)Skype的通話類(lèi)型進(jìn)行區(qū)分,以便對(duì)E2O的電話進(jìn)行計(jì)費(fèi)。另外本文提出的Skype模型具有很好的擴(kuò)展性??梢詫?duì)Skype的數(shù)據(jù)業(yè)務(wù)、實(shí)時(shí)業(yè)務(wù)統(tǒng)一到KM模型中,實(shí)現(xiàn)更加通用的Skype發(fā)送端模型。雖然KM模型通用可行,但是識(shí)別率還達(dá)不到網(wǎng)絡(luò)所規(guī)定的要求,這需要在模型和算法中進(jìn)一步地改進(jìn)。
[1]EHLERT S,PETGANG S.Analysis and signature of Skype VoIP session traffic[C].Berlin: Fraunhofer FOKUS, Technical Report: NGNI2SKYPE206b, 2006.
[2]BIONDIP,DESCLAUXF.Silver needle in the Skype[C].Amsterdam: Black Hat Europe’06, 2006.
[3]CHEN Kuan2ta, HUANG Chun2ying, POLLY H, et al.Quantifying Skype user satisfaction[C].Pisa:Proceedings of ACM Sigcomm’06, 2006.
[4]ONEILD, KANGH, KIM J,et al.Transport layer identification of P2Psupernodes[C].Taormina:Proceeding of Internet Measurement Conference,2004.
[5]KARAGIANNIST,BROIDOA,F(xiàn)ALOUTSOSM,et al.Transport layer identification of P2P traffic[C].Taormina:Proceeding of Internet Measurement Conference,2004.
[6]BERSON T.Skype security evaluation.[DB/OL].http://www.skype.com/security/files/2005-031securityevaluation.pdf,2005.