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