張鶴鳴,陳南洋
(中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著多媒體應用的迅速發展,人們對多媒體通信提出了更多要求。語音、視頻和數據業務進一步融合,以SIP(Session Initiation Protocol,即初始會話協議)為核心的融合應用正在成為一個主要的研究熱點。
SIP是IETF提出的基于文本編碼的IP多媒體電話協議,工作于應用層,主要用來進行會話的管理,包括發起和終止會話、修改會話參數、引入其他用戶、控制多方參與的多媒體會話進程等,是下一代增值業務平臺的基礎。
但是,SIP的安全問題一直是SIP應用的主要問題之一。由于SIP信令是基于文本形式的IP電話信令協議,信息容易被模仿、纂改,并加以非法利用。比如,在SIP信令消息中,有許多重要的用戶參數信息,如果被截獲,用戶業務將存在極大的安全隱患。另外,用戶數據在互聯網中透明傳輸,對互聯網的竊取行為沒有任何的防范能力。IPSec(因特網安全協議)是IETF提出的基于IP層的安全協議,能夠為上層數據包提供透明保護,主要用于解決TCP/IP協議的安全問題。但是,采用IPSec保障SIP的通信安全,卻面臨兩個關鍵的問題:(1)SIP用戶廣泛分布于互聯網中,IP地址不可預知,安全防范范圍大;(2)IPSec工作在網絡層,無法感知上層的應用數據,對媒體通道隨時變化的SIP通信來說,IPSec通道的建立異常困難。
本文將基于IPSec提出一套SIP安全通信模型,在保持原有網絡架構的基礎上,通過為IPSec賦予SIP應用的感知能力[1]來保證SIP的通信安全。第1節從安全策略數據庫和安全關聯數據庫入手,對IPSec的實現架構進行分析,為IPSec賦予應用感知能力;第2節對基于IPSec的SIP安全通信方案進行詳細描述;第3節將對方案中涉及的安全關聯數據庫的維護策略進行探討分析;最后對全文進行總結。
IPSec是一個協議簇,是應用于IP層之上保護網絡數據安全的一整套體系結構。
在IPSec實現過程中,策略決定了通信雙方能否進行安全通信以及如何進行安全通信。安全關聯(Security Association,SA)、安全關聯數據庫(SA Database,SADB)和安全策略數據庫(Security Policy Database,SPD)構成了策略的核心。
(1)安全關聯
安全關聯SA是構成IPSec的基礎,是兩個通信實體經協商建立起來的一種協定。它決定了用來保護數據安全的IPSec協議、轉碼方式、密鑰以及密鑰的有效存在時間等。安全關聯將安全服務、密鑰與要保護的數據聯系到一起,主要解決如何保護通信數據、保護什么樣的通信數據以及由誰來實施保護的問題。
(2)安全關聯數據庫
在IPSec實施方案中,一般會構建一個SADB。它是所有SA與相關參數的容器,維護了IPSec協議用來保障數據安全的SA記錄。在SADB中,SA是單向存在的。因此,針對外出方向和進入方向的數據處理,需要分別維護一個單獨的SA記錄。
(3)安全策略數據庫
安全策略決定了為某種類型的數據包提供的安全服務,主要包括丟棄數據包、繞過安全服務和應用安全服務3種情況。在IPSec的實施方案中,一般會將安全策略保存在SPD中。SPD包含所有入站和出站業務流在主機或安全網關上進行分類的策略。對于進入或離開IP協議棧的每個數據包,必須檢索SPD,調查可能存在的安全應用。SPD使用一系列選擇器將業務流映射到特定的SA上,而這些選擇器包括IP層和上層協議的字段值。
從實現的角度講,IPSec主要分為兩部分:(1)運行于用戶空間的IKE模塊,主要完成通信雙方密鑰的交換和安全關聯的建立;(2)運行于內核空間的IPSec模塊,主要負責協議的具體實現,包括AH/ESP數據處理、SPD/SADB的管理、數據認證/加解密算法管理以及與網絡應用程序進行交互的IPSec虛接口等,如圖1所示[2]。

圖1 IPSec實現框架
基于IPSec實現SIP通信安全的主要設計思路是,SIP應用模塊將SIP通信過程中的信令通道與媒體通道信息實時傳達到IKE模塊,IKE模塊啟動與對端協商的SA流程。SA協商成功后,通過SPD/SADB管理模塊更新內核空間的SPD和SADB,從而激活IPSec對SIP應用數據的保護。
SIP通信安全的實質是信令安全與媒體安全。采用IPSec方案保障SIP的通信安全,面臨的兩個關鍵問題在本文的引言部分已經闡述。本模型將通過SIP終端主動申請建立IPSec通道的方式,解決SIP用戶范圍廣、IP地址不可預知的問題,以保障信令安全。通過解析SIP信令,實時將通信過程中的媒體通道信息傳達到IKE模塊,解決IPSec無法感知上層應用的問題,以保障媒體安全。以SIP話機的通信流程為例,SIP安全通信整體示意圖如圖2所示。
SIP信令是以相對獨立的處理階段展開的,每個階段之間的關系并不密切[3]。對SIP信令的保護,主要集中于SIP終端與SIP服務器之間。在實際應用中,由于SIP服務器的IP地址與信令端口相對固定,因此可以通過SIP終端主動申請的方式預先協商IPSec通道,以完成對SIP信令的保護。

圖2 SIP安全通信流程
具體實現流程如下:
(1)根據SIP服務器的IP地址與指定的信令端口,SIP終端通過IKE用戶模塊向SPD中添加安全策略,此時該業務流的處理策略是丟棄數據包;
(2)SIP終端通過IKE用戶模塊與SIP服務器之間協商SA;
(3)SA協商成功后,SIP終端通過IKE用戶模塊把SA添加到SADB中,同時修改SPD中的安全策略,將處理行為修改為應用安全服務,并將SIP信令的業務流映射到本條SA上;
(4)SIP服務器通過IKE用戶模塊將協商的SA添加到SADB中,同時SIP服務器根據SIP終端的IP地址與端口,向自身的SPD中添加安全策略。該業務流的處理策略是應用安全服務,并將該業務流映射到本條SA上。
至此,SIP終端與SIP服務器之間已成功建立IPSec通道,所有的信令數據均可以通過該通道進行安全防護。
實時傳輸協議RTP定義了端到端的實時數據傳輸格式,同時包含了一系列端到端的實時數據傳輸服務,如凈荷類型識別、序列號編碼、時間戳和傳輸監控等。媒體安全的實質是保障RTP媒體流的安全,是在SIP呼叫流程完成后展開的。RTP媒體流的通道信息是在SIP信令中協商完成的,因此每次通話都可能不同。應對不斷變化的媒體通道,是賦予IPSec特定應用動態感知能力的關鍵。
具體實現流程如下:
(1)在SIP呼叫過程中,主叫與被叫的SIP終端分別通過解析INVITE、200 OK等關鍵信令,獲取本次通話媒體通道的地址信息[1]和RTP媒體流的啟動時間,其中媒體通道的地址信息主要包括通話雙方的IP地址、協商的RTP媒體流端口信息等;
(2)主叫與被叫的SIP終端分別將媒體通道的地址信息通過IKE用戶模塊向SPD中添加安全策略,此時該業務流的處理策略為丟棄數據包;
(3)SIP終端通過IKE用戶模塊與對端(SIP代理或SIP終端)協商媒體通道的SA;
(4)SA協商成功后,主叫與被叫的SIP終端分別將本條SA記錄添加到自身的SADB中,并將SPD中的安全策略映射到本條SA記錄之上,修改業務流的處理策略為應用安全服務;
(5)通過解析BYE信令獲取RTP媒體流結束的時間點,SIP終端通過IKE用戶模塊及時刪除SPD中已經過時的安全策略和SADB中相關的SA記錄,釋放內存空間,以保證服務器或終端的性能安全。
至此,SIP終端與對端(SIP代理或SIP終端)之間成功建立IPSec通道,所有的媒體數據均可以通過該通道進行安全防護。
在基于IPSec的SIP安全通信模型中,IPSec信令通道和媒體通道SA的建立,增加了服務器和終端對SIP信令、RTP媒體流的處理流程。這種額外的負擔,可能會對SIP呼叫的及時性和通話質量產生一定影響,因此對服務器和終端的IPSec處理性能提出了較高要求。同時,由于SIP是基于分組網絡完成的數據傳輸,這條數據通路不可避免會出現各種異常,如丟包、延時和突然中斷等情況。因此,為保持SIP通信的體系安全性、密碼的前向安全性和服務器/終端性能之間的平衡,實施過程中需要對SPD中的安全策略和SADB中的SA采取必要的措施進行維護。
本模型在標準IPSec SA維護措施的基礎上,增加以下幾個方面的考慮:
(1)定時掃描SPD,刪除在指定時期內未被調用過的安全策略;
(2)定時掃描SADB,刪除在指定時期內未被使用過的SA;
(3)對于保障信令通道的SA,如果指定的生命周期結束,由SIP終端的IKE模塊主動發起請求,申請協商新SA;
(4)由于數據延時的存在,為保證SA在重新協商過程中的無縫切換,在新SA生效后,舊SA需要設置一定的存活時間,不可立即刪除,以防止由于SA切換導致的丟包。
本文通過對IPSec的實現框架進行分析,提出了一套基于IPSec實現的SIP通信安全的方法。該方法利用策略數據庫和安全關聯數據庫,可以解決SIP用戶分布范圍廣、IP地址與端口信息不可預知的問題,有效保障了SIP的通信安全。同時,利用該方法可以采取不同的IPSec策略保護不同的應用。
參考文獻:
[1] 范奕俊.基于安全SIP環境的IPsec通信[J].硅谷 ,2010(16):133-135.FAN Yi-jun.IPsec Communication Based on Secure SIP Environment[J].Silicon Valley,2010(16):133-135.
[2] 姜林楓.IPSec安全數據庫研究[J].計算機安全 ,2007(02):14-16.JIANG Lin-feng.IPSec Security Database Research[J].Network and Computer Security,2007(02):14-16.
[3] 龐紅玲,安可,戎鋒洪.基于身份加密系統的SIP認證機制[J].信息安全與通信保密,2007(05):29-31.PANG Hong-ling,AN Ke,RONG Feng-hong.SIP Authentication Mechanism Using Identitybased Cryptography[J].Information Security And Communications Privacy,2007(05):29-31.