趙寧
【摘要】 隨著經(jīng)濟與科技的不斷進步與迅猛發(fā)展,網(wǎng)絡應用越來越廣泛,隨之而來的安全問題不斷涌現(xiàn),數(shù)據(jù)包捕獲是網(wǎng)絡安全的重要措施,文章講述了數(shù)據(jù)包捕獲的機制與特點,對SIP協(xié)議及其結(jié)構(gòu)特點做了簡要的概述,并對SIP通信的數(shù)據(jù)包捕獲技術(shù)做了一系列研究,設計了數(shù)據(jù)包的捕獲及其還原步驟。
【關(guān)鍵字】 數(shù)據(jù)包 捕獲SIP 安全
一、數(shù)據(jù)包捕獲
1.1數(shù)據(jù)包捕獲的機制
數(shù)據(jù)包捕獲就是對數(shù)據(jù)包的完整收集,系統(tǒng)搜集某一網(wǎng)絡設備所接收的數(shù)據(jù)包,不論此數(shù)據(jù)包發(fā)送至哪個端口或地址。收集數(shù)據(jù)包以后,再進行還原以及審計等處理,發(fā)送到上一層進而對其實行應用處理??梢酝ㄟ^專用的數(shù)據(jù)采集卡對網(wǎng)絡實行相應采集,也可根據(jù)以太網(wǎng)卡的混雜模式通過其廣播特性或者交換機監(jiān)測口對數(shù)據(jù)報文進行監(jiān)聽。
數(shù)據(jù)包的捕獲通常有3個階段:首先,設置網(wǎng)卡為“混雜”的工作模式;其次,捕獲鏈路層的數(shù)據(jù)幀;最后,提取數(shù)據(jù)包的首部,便于分析和處理。
1.2數(shù)據(jù)包捕獲的意義
網(wǎng)絡不僅僅為人們帶來越來越多的方便與快捷,也給人們帶來諸如網(wǎng)絡病毒、機密泄漏、黑客入侵等安全問題,信息安全成為我們關(guān)注的一大焦點。數(shù)據(jù)包捕獲是信息保護的一種重要方法,因此對其技術(shù)的研究有著重要意義。
1.3特點
數(shù)據(jù)包捕獲是關(guān)乎網(wǎng)絡與財產(chǎn)安全的一項重要措施,該技術(shù)有較高的要求,因此有以下特點:1. 響應快。對于許多安全應用,在數(shù)據(jù)報文上需要很快的響應速度,以便于迅速捕獲以及即時反應,同時不允許誤判或丟包。2. 適應能力強。數(shù)據(jù)包捕獲針對流經(jīng)此網(wǎng)絡的所有數(shù)據(jù)報文,其類型和源目的地址都不統(tǒng)一,即數(shù)據(jù)包的種類繁多且來源復雜,因此該技術(shù)對各種數(shù)據(jù)包應有較強的適應能力。3. 直接由上層處理。數(shù)據(jù)包的處理能夠不經(jīng)操作系統(tǒng)協(xié)議棧,直接通過上一層的應用實行處理。4. 不需嚴格校驗。大部分數(shù)據(jù)報的處理是通過應用程序操作的,在該應用中能夠?qū)嵭胁糠中r?;?shù)據(jù)報在某些網(wǎng)卡中的硬件芯片上進行了固化的校驗,因此在捕獲過程中可以略去一些嚴格校驗。
二、SIP通信
2.1 SIP協(xié)議所支持的功能
SIP作為信令協(xié)議,可提供多媒體通信的5項功能。
2.2 SIP網(wǎng)絡系統(tǒng)
SIP協(xié)議的網(wǎng)絡系統(tǒng)結(jié)構(gòu)包括用戶代理(UA)和網(wǎng)絡服務器(NS)。應用代理是SIP的終端,用于和用戶之間的交互,可發(fā)送呼叫請求和響應呼叫請求。
網(wǎng)絡服務器主要解析地址以及定位用戶,分為3種:代理服務器,用于路由選擇,將用戶請求及響應發(fā)送至下一跳;重定向服務器,用于地址解析,類似于DNS,把目的地址映射成為0個或者多個新地址;注冊服務器,接收來自終端的注冊請求,并記錄其地址。因此,基于SIP協(xié)議,有直接呼叫、代理服務以及重定向服務等3種通信方式。
2.3 SIP協(xié)議的特點
SIP協(xié)議參照了其它的Internet標準,有其簡練、兼容以及可擴展的作風。SIP協(xié)議是基于文本,其詞法、語法都較為簡單;SIP在會話請求時,同時實行媒體協(xié)商,因此建立呼叫所需時間大大縮短;SIP只要對頭域做簡單地擴展便可進行補充、智能等業(yè)務;SIP協(xié)議能夠分布式多播。
三、SIP通信數(shù)據(jù)包捕獲
數(shù)據(jù)包的捕獲系統(tǒng)包含硬件與軟件,硬件主要是對數(shù)據(jù)包進行捕獲以及過濾,軟件主要對數(shù)據(jù)包進行分析與處理。因此捕獲系統(tǒng)需滿足實時、靈活、擴展方便和數(shù)據(jù)包無遺漏等性能。
3.1 SIP通信捕獲思想
SIP通信捕獲包含通信消息及其媒體數(shù)據(jù)2個部分的捕獲。通信消息的捕獲能夠獲得呼叫方和被呼叫方的通信狀態(tài)——通信步驟與通信狀態(tài),通信媒體參數(shù)的信息;依據(jù)通信的狀態(tài)判斷獲取數(shù)據(jù)的開始或停止,依據(jù)參數(shù)信息篩選及還原雙方數(shù)據(jù)。
1. 捕獲流程
一個完整SIP通信應包含的消息有INVITE,180Ringing,200OK,ACK,BYE,200OK等,雙方的媒體參數(shù)信息能夠在INVITE及其響應的200OK獲得,由此可設計以下捕獲流程:INVITE消息獲取,從SDP的o字段獲取源IP地址,并將該SDP部分的媒體參數(shù)作為邀請端(A)的媒體信息;從INVITE的起始行獲得被邀請端(B)的IP地址。等待180Ringing,若B至A的180Ringing消息得以捕獲,系統(tǒng)會將該信息顯現(xiàn)出。等待200OK響應消息的捕獲,若判斷為B到A的INVITE響應,將該SDP的通信媒體信息獲取并作為B的媒體信息。等待A至B的ACK消息的捕獲。ACK不經(jīng)過代理、重定向服務器,而是直接通過雙方接收、發(fā)送,因此能夠通過ACK的源地址和目的地址判斷會話雙方是即將通信雙方與否。根據(jù)ACK確定雙方IP地址,捕獲雙向數(shù)據(jù),同時篩選、還原雙方通信媒體信息。BYE消息捕獲,一方發(fā)送至另一方時便停止捕獲。200OK響應消息捕獲,判斷為BYE的響應消息時終止通信。
2. 捕獲改進
上述流程是必備的,因SIP的復雜性,數(shù)據(jù)包捕獲可能出現(xiàn)亂序,所以需做改進:
SIP通信除了上述消息外,還有其他請求、響應消息,某會話的其他SIP消息,可選用的處理方式為收到便顯示。
因網(wǎng)絡上的數(shù)據(jù)有著龐大的傳輸量,需要建立合理、有效的篩選機制,可依據(jù)IP地址對雙方信令、數(shù)據(jù)進行篩選。
因數(shù)據(jù)在網(wǎng)絡上傳輸不穩(wěn)定,捕獲完整SIP通信較為困難,所以可將捕獲流程縮減為4步:處理INVITE消息;處理對INVITE響應的200OK消息;依據(jù)媒體參數(shù)信息,對數(shù)據(jù)捕獲、還原與確認;依據(jù)BYE或?qū)YE響應200OK消息終止。
3.2媒體數(shù)據(jù)還原
SIP通信通過RTP數(shù)據(jù)包進行媒體數(shù)據(jù)傳輸,還原方案是基于RTP協(xié)議展開的。對實時通信與離線數(shù)據(jù)設計以下兩種不同方案:
1. 實時通信的還原。根據(jù)請求消息進行分析,獲得媒體的源地址、目的地址和載荷、端口等信息,然后經(jīng)過濾器對數(shù)據(jù)實行捕捉。具體步驟如圖1所示。將通信信令捕獲,同時對相關(guān)數(shù)據(jù)流的信息進行記錄;依據(jù)發(fā)送、接收雙方的通信信令對RTP數(shù)據(jù)包進行捕獲;判斷捕獲是否結(jié)束,可根據(jù)SIP通信中BYE或?qū)YE響應的200OK確認停止;重組RTP數(shù)據(jù),同時解壓縮以獲取原始數(shù)據(jù)。
2. 離線數(shù)據(jù)的還原。首先儲存捕獲到的所有數(shù)據(jù)包,進而還原數(shù)據(jù)流,再通過流信息獲取媒體的參數(shù)信息,后通過此信息將原始數(shù)據(jù)還原。具體流程如圖2所示。打開網(wǎng)卡,將IP數(shù)據(jù)包完整捕獲并儲存;依據(jù)RTP流判別的原則,在上述所儲存的數(shù)據(jù)中將所有的RTP流信息提取出來;根據(jù)RTP包中Sequence Number字段,重組并還原RTP數(shù)據(jù);依照雙方IP地址獲得通信消息,并得知其編碼信息,若流的信令不全,可以用RTP默認類型的方式進行處理;最后解壓縮獲取原始的數(shù)據(jù)。
四、總結(jié)與展望
數(shù)據(jù)包捕獲是對數(shù)據(jù)包的完整收集,SIP是不斷完善且應用廣泛的信令協(xié)議,SIP通信的數(shù)據(jù)包捕獲是雙方通信信息的獲取,基于SIP協(xié)議做了數(shù)據(jù)包捕獲及還原的流程設計,在今后的工作中,應不斷改進與完善此機制,使捕獲能夠更加清晰、有條理。
參 考 文 獻
[1] 鐘誠, 等. SIP通信數(shù)據(jù)包捕獲與分析[J]. 電腦知識與技術(shù), 2010, 6(34): 9739-9740, 9743
[2] 林洪周. 萬兆網(wǎng)絡數(shù)據(jù)包捕獲系統(tǒng)的研究與開發(fā)[D]. 武漢: 華中科技大學, 2008: 1-56