張斌 孫偉博
(1.中華通信系統(tǒng)有限責(zé)任公司,河北石家莊 050000;2.清華大學(xué)計算機(jī)科學(xué)與技術(shù)系,北京 100089)
在信息時代背景下,人們對信息交流提出了更高的要求,各種通信軟件應(yīng)運(yùn)而生。其中,我國最流行的通信軟件為騰訊公司的QQ、微信等,國外流行的即時通信軟件主要有MSN、ICQ等產(chǎn)品。這些軟件的共同特點為都有著較為完善的功能以及具有精美的界面設(shè)計,為各個互聯(lián)網(wǎng)用戶提供了便捷的服務(wù),深受人們的喜愛。因此,在通信技術(shù)安全問題對于心軟件的監(jiān)控和通信協(xié)議分析來說非常重要,處理好通信技術(shù)中存在的安全問題對維護(hù)網(wǎng)絡(luò)安全起到至關(guān)重要的作用。
客戶端/服務(wù)器模式以及客戶端/客戶端模式分別是即時通信系統(tǒng)中的模式,這兩種模式的區(qū)別在于前者收發(fā)客戶需要通過服務(wù)器來進(jìn)行信息交流,而后者服務(wù)器為客戶建立了直接交流通道,客戶與客戶之間的交流可以直接在這條通道上進(jìn)行。目前國內(nèi)主流的通信軟件,微信、QQ都是以客戶端/服務(wù)器模式為主,在交流中消息必須通過服務(wù)器來實現(xiàn)在客戶端之間傳遞。
主流即時通信軟件的通信過程主要是:設(shè)立一臺或一組DNS服務(wù)器為總調(diào)度臺,每個即時通信客戶端可以通過對域名服務(wù)器進(jìn)行查詢,與即時通信軟件的服務(wù)器建立TPC通道。客戶端在進(jìn)入服務(wù)器之前可以輸入自身的ID和密碼來進(jìn)行登錄,服務(wù)器會對輸入的密碼信息加密處理再進(jìn)行傳送,當(dāng)客戶身邊、密碼識別正確后服務(wù)器會重新將驗證通過信息發(fā)送回客戶端,同時將客戶好友信息、端口號信息等一并傳送過去。客戶端接收信息后可直接利用中轉(zhuǎn)服務(wù)器來向通訊錄好友傳遞信息。
協(xié)議分析的試驗中,整體實驗環(huán)境由交換機(jī)以及PC機(jī)組成,PC機(jī)在與互聯(lián)網(wǎng)相連接后,可以通過Windows的操作系統(tǒng)來實現(xiàn)PC機(jī)與互聯(lián)網(wǎng)的連接同時通過Windows來安裝協(xié)議分析Etherea10.8軟件。
通信會話網(wǎng)MSN Messenger Netword在微機(jī)上統(tǒng)稱為MSN Messenger客戶端,它通過互聯(lián)網(wǎng)與另一個MSN Messenger客戶端進(jìn)行相連。因此,客戶端通過服務(wù)器來與其他客戶進(jìn)行信息交流。MSN Messenger和Windows Messenger是微軟提供的兩個客戶端,微軟沒有對MSN Messenger Server進(jìn)行正式公布,我們將MSN Messenger服務(wù)器與客戶端之間信息交互的規(guī)則稱作“MSN協(xié)議”。MSN協(xié)議在不斷發(fā)展,隨著MSN Messenger版本的更新和修訂。
一般來說信息監(jiān)控系統(tǒng)內(nèi)部的前端接受設(shè)備是可以接收互聯(lián)網(wǎng)上的各種信息的,其采用的網(wǎng)絡(luò)處理器為IXP2400,一共有四個IG出口,其中有一個出口就是專門為即時通信信息監(jiān)控系統(tǒng)預(yù)留的。另外的IM數(shù)據(jù)接受服務(wù)器則是用來接收前段數(shù)據(jù)和接收即時通信數(shù)據(jù)信息,并對數(shù)據(jù)進(jìn)行判斷并分類發(fā)送到各個媒體流管理和協(xié)議解析服務(wù)器。這里又引申出媒體流管理服務(wù)器這一名詞,其作用主要用于接收媒體數(shù)據(jù)包,提取媒體內(nèi)部數(shù)據(jù)并儲存和管理同一回話重點媒體數(shù)據(jù)流,進(jìn)一步的展示動態(tài)規(guī)則。最后要介紹的一種功能就是文本消息還原設(shè)備,其主要針對IM文本消息進(jìn)行還原,常見的多媒體數(shù)據(jù)還原設(shè)備嘖主要將多媒體的會話數(shù)據(jù)進(jìn)行解碼,并系統(tǒng)性的還原。
2.2.1 網(wǎng)絡(luò)前端數(shù)據(jù)接收
前端數(shù)據(jù)接收設(shè)備會完成網(wǎng)絡(luò)前端數(shù)據(jù)接收功能,前端數(shù)據(jù)接收設(shè)備會通過IXP2400網(wǎng)絡(luò)處理器的采用來獲取到大量的互聯(lián)網(wǎng)數(shù)據(jù),該網(wǎng)絡(luò)處理器共有四個IG出口,網(wǎng)絡(luò)處理器中的規(guī)則會根據(jù)即時通信軟件中的特征來制定,以便在大量的互聯(lián)網(wǎng)信息中過濾、篩選出有用的即時通信數(shù)據(jù)包,并將過濾后的信息發(fā)送到MSN數(shù)據(jù)接收模塊中。
2.2.2 MSN數(shù)據(jù)接收
IM數(shù)據(jù)接收器完成MSN接收模塊的功能,在收到網(wǎng)絡(luò)前端數(shù)據(jù)接收模塊轉(zhuǎn)發(fā)來的數(shù)據(jù)包后首先判斷數(shù)據(jù)包的類型,對其進(jìn)行分類和處理。當(dāng)判斷為TCP數(shù)據(jù)包時會將數(shù)據(jù)送往TCP數(shù)據(jù)重組模塊;當(dāng)判斷為RTP數(shù)據(jù)包時會將數(shù)據(jù)送往媒體數(shù)據(jù)流管理模版進(jìn)行處理。
2.2.3 TCP數(shù)據(jù)重組
由協(xié)議解析服務(wù)器完成TCP數(shù)據(jù)重組模塊的功能,在接收到TCP數(shù)據(jù)包后,會根據(jù)協(xié)議規(guī)則將頭部規(guī)則去掉,剩余的內(nèi)容為TCP數(shù)據(jù)內(nèi)容,同時依據(jù)TCP數(shù)據(jù)包的連接特性,采用動態(tài)哈希鏈表CRC16算法方式來儲存管理數(shù)據(jù)包。另外由于同一個MSB的數(shù)據(jù)不僅在同一個TCP傳輸,還有可能在多個數(shù)據(jù)包中共同傳輸,這就需要應(yīng)到TCP頭部字段需要一一進(jìn)行數(shù)據(jù)重組。最后為了更加方便和管理數(shù)據(jù)包,一般還會設(shè)計一個8192字節(jié)的滑動窗口,這有利于更便捷的將重組數(shù)據(jù)發(fā)送給MSN協(xié)議解析模塊進(jìn)行協(xié)議解析。
2.2.4 MSN協(xié)議解析
MSN協(xié)議解析模塊的功能是由協(xié)議解析服務(wù)器來執(zhí)行的,解析服務(wù)器利用LEX技術(shù)來對TCP數(shù)據(jù)重組模塊傳送過來的MSN數(shù)據(jù)進(jìn)行解析,解析完畢后將文本消息傳送到還原模塊中進(jìn)行還原處理。在整個過程中會話信息會與監(jiān)控模塊之間進(jìn)行信息交換,交換過程中只有消息賬號滿足滿足監(jiān)控模塊的條件,會話信息才會被送到規(guī)則反饋模塊中處理。
2.2.5 SIP信令解析
協(xié)議解析服務(wù)器完成SIP信令解析模塊的功能,它在解析SIP信令數(shù)據(jù)時應(yīng)用到了LEX技術(shù)的信令解析程序。首先,在接收SIP信令數(shù)據(jù)包后,將UDP頭部去掉,剩余的內(nèi)容為UDP數(shù)據(jù),也就是SIP信令數(shù)據(jù)。依據(jù)SIP的信令特征,使用LEX工具解析SIP信令數(shù)據(jù),將重要的會話信息提取出來,向規(guī)則反饋模版?zhèn)魉徒馕龀龅碾p方多媒體數(shù)據(jù)傳輸?shù)拿襟w流通參數(shù)。
2.2.6 監(jiān)控模塊和規(guī)則反饋模塊
監(jiān)控模塊以及規(guī)則反饋模塊的功能統(tǒng)一由管理服務(wù)器來完成。監(jiān)控模塊會根據(jù)規(guī)則反饋信息來制定相關(guān)的監(jiān)控規(guī)則。例如設(shè)置IP段的固定、黑名單等。制定完規(guī)則后會和MSN解析模塊進(jìn)行交流,當(dāng)協(xié)議解析模塊解析得出的通信信息與監(jiān)控條件不符時,那么監(jiān)控模塊無法處理這類通信信息。
2.2.7 文本還原和解碼還原模塊
還原模塊的功能是由還原設(shè)備來進(jìn)行文本還原的。MSN文本消息可以采用特定的UT F編碼,在MS N協(xié)議解析模塊解析完通信消息后,將消息傳遞到文本還原模塊,文本還原模塊會對傳遞來的消息進(jìn)行解碼和還原,并依據(jù)關(guān)鍵詞等線索來對文本消息進(jìn)行篩選和過濾。
即時通信協(xié)議和監(jiān)控技術(shù)對人們的生活有著至關(guān)重要的作用,因此,相關(guān)工作人員應(yīng)做好更新與修訂的工作,關(guān)注其使用時的安全問題,避免通信軟件在使用時危害國家與社會的安全,泄漏國家與企業(yè)的重要秘密等。