張鶴鳴,陳南洋
(中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
隨著多媒體應(yīng)用的迅速發(fā)展,人們對(duì)多媒體通信提出了更多要求。語音、視頻和數(shù)據(jù)業(yè)務(wù)進(jìn)一步融合,以SIP(Session Initiation Protocol,即初始會(huì)話協(xié)議)為核心的融合應(yīng)用正在成為一個(gè)主要的研究熱點(diǎn)。
SIP是IETF提出的基于文本編碼的IP多媒體電話協(xié)議,工作于應(yīng)用層,主要用來進(jìn)行會(huì)話的管理,包括發(fā)起和終止會(huì)話、修改會(huì)話參數(shù)、引入其他用戶、控制多方參與的多媒體會(huì)話進(jìn)程等,是下一代增值業(yè)務(wù)平臺(tái)的基礎(chǔ)。
但是,SIP的安全問題一直是SIP應(yīng)用的主要問題之一。由于SIP信令是基于文本形式的IP電話信令協(xié)議,信息容易被模仿、纂改,并加以非法利用。比如,在SIP信令消息中,有許多重要的用戶參數(shù)信息,如果被截獲,用戶業(yè)務(wù)將存在極大的安全隱患。另外,用戶數(shù)據(jù)在互聯(lián)網(wǎng)中透明傳輸,對(duì)互聯(lián)網(wǎng)的竊取行為沒有任何的防范能力。IPSec(因特網(wǎng)安全協(xié)議)是IETF提出的基于IP層的安全協(xié)議,能夠?yàn)樯蠈訑?shù)據(jù)包提供透明保護(hù),主要用于解決TCP/IP協(xié)議的安全問題。但是,采用IPSec保障SIP的通信安全,卻面臨兩個(gè)關(guān)鍵的問題:(1)SIP用戶廣泛分布于互聯(lián)網(wǎng)中,IP地址不可預(yù)知,安全防范范圍大;(2)IPSec工作在網(wǎng)絡(luò)層,無法感知上層的應(yīng)用數(shù)據(jù),對(duì)媒體通道隨時(shí)變化的SIP通信來說,IPSec通道的建立異常困難。
本文將基于IPSec提出一套SIP安全通信模型,在保持原有網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上,通過為IPSec賦予SIP應(yīng)用的感知能力[1]來保證SIP的通信安全。第1節(jié)從安全策略數(shù)據(jù)庫和安全關(guān)聯(lián)數(shù)據(jù)庫入手,對(duì)IPSec的實(shí)現(xiàn)架構(gòu)進(jìn)行分析,為IPSec賦予應(yīng)用感知能力;第2節(jié)對(duì)基于IPSec的SIP安全通信方案進(jìn)行詳細(xì)描述;第3節(jié)將對(duì)方案中涉及的安全關(guān)聯(lián)數(shù)據(jù)庫的維護(hù)策略進(jìn)行探討分析;最后對(duì)全文進(jìn)行總結(jié)。
IPSec是一個(gè)協(xié)議簇,是應(yīng)用于IP層之上保護(hù)網(wǎng)絡(luò)數(shù)據(jù)安全的一整套體系結(jié)構(gòu)。
在IPSec實(shí)現(xiàn)過程中,策略決定了通信雙方能否進(jìn)行安全通信以及如何進(jìn)行安全通信。安全關(guān)聯(lián)(Security Association,SA)、安全關(guān)聯(lián)數(shù)據(jù)庫(SA Database,SADB)和安全策略數(shù)據(jù)庫(Security Policy Database,SPD)構(gòu)成了策略的核心。
(1)安全關(guān)聯(lián)
安全關(guān)聯(lián)SA是構(gòu)成IPSec的基礎(chǔ),是兩個(gè)通信實(shí)體經(jīng)協(xié)商建立起來的一種協(xié)定。它決定了用來保護(hù)數(shù)據(jù)安全的IPSec協(xié)議、轉(zhuǎn)碼方式、密鑰以及密鑰的有效存在時(shí)間等。安全關(guān)聯(lián)將安全服務(wù)、密鑰與要保護(hù)的數(shù)據(jù)聯(lián)系到一起,主要解決如何保護(hù)通信數(shù)據(jù)、保護(hù)什么樣的通信數(shù)據(jù)以及由誰來實(shí)施保護(hù)的問題。
(2)安全關(guān)聯(lián)數(shù)據(jù)庫
在IPSec實(shí)施方案中,一般會(huì)構(gòu)建一個(gè)SADB。它是所有SA與相關(guān)參數(shù)的容器,維護(hù)了IPSec協(xié)議用來保障數(shù)據(jù)安全的SA記錄。在SADB中,SA是單向存在的。因此,針對(duì)外出方向和進(jìn)入方向的數(shù)據(jù)處理,需要分別維護(hù)一個(gè)單獨(dú)的SA記錄。
(3)安全策略數(shù)據(jù)庫
安全策略決定了為某種類型的數(shù)據(jù)包提供的安全服務(wù),主要包括丟棄數(shù)據(jù)包、繞過安全服務(wù)和應(yīng)用安全服務(wù)3種情況。在IPSec的實(shí)施方案中,一般會(huì)將安全策略保存在SPD中。SPD包含所有入站和出站業(yè)務(wù)流在主機(jī)或安全網(wǎng)關(guān)上進(jìn)行分類的策略。對(duì)于進(jìn)入或離開IP協(xié)議棧的每個(gè)數(shù)據(jù)包,必須檢索SPD,調(diào)查可能存在的安全應(yīng)用。SPD使用一系列選擇器將業(yè)務(wù)流映射到特定的SA上,而這些選擇器包括IP層和上層協(xié)議的字段值。
從實(shí)現(xiàn)的角度講,IPSec主要分為兩部分:(1)運(yùn)行于用戶空間的IKE模塊,主要完成通信雙方密鑰的交換和安全關(guān)聯(lián)的建立;(2)運(yùn)行于內(nèi)核空間的IPSec模塊,主要負(fù)責(zé)協(xié)議的具體實(shí)現(xiàn),包括AH/ESP數(shù)據(jù)處理、SPD/SADB的管理、數(shù)據(jù)認(rèn)證/加解密算法管理以及與網(wǎng)絡(luò)應(yīng)用程序進(jìn)行交互的IPSec虛接口等,如圖1所示[2]。
圖1 IPSec實(shí)現(xiàn)框架
基于IPSec實(shí)現(xiàn)SIP通信安全的主要設(shè)計(jì)思路是,SIP應(yīng)用模塊將SIP通信過程中的信令通道與媒體通道信息實(shí)時(shí)傳達(dá)到IKE模塊,IKE模塊啟動(dòng)與對(duì)端協(xié)商的SA流程。SA協(xié)商成功后,通過SPD/SADB管理模塊更新內(nèi)核空間的SPD和SADB,從而激活I(lǐng)PSec對(duì)SIP應(yīng)用數(shù)據(jù)的保護(hù)。
SIP通信安全的實(shí)質(zhì)是信令安全與媒體安全。采用IPSec方案保障SIP的通信安全,面臨的兩個(gè)關(guān)鍵問題在本文的引言部分已經(jīng)闡述。本模型將通過SIP終端主動(dòng)申請(qǐng)建立IPSec通道的方式,解決SIP用戶范圍廣、IP地址不可預(yù)知的問題,以保障信令安全。通過解析SIP信令,實(shí)時(shí)將通信過程中的媒體通道信息傳達(dá)到IKE模塊,解決IPSec無法感知上層應(yīng)用的問題,以保障媒體安全。以SIP話機(jī)的通信流程為例,SIP安全通信整體示意圖如圖2所示。
SIP信令是以相對(duì)獨(dú)立的處理階段展開的,每個(gè)階段之間的關(guān)系并不密切[3]。對(duì)SIP信令的保護(hù),主要集中于SIP終端與SIP服務(wù)器之間。在實(shí)際應(yīng)用中,由于SIP服務(wù)器的IP地址與信令端口相對(duì)固定,因此可以通過SIP終端主動(dòng)申請(qǐng)的方式預(yù)先協(xié)商IPSec通道,以完成對(duì)SIP信令的保護(hù)。
圖2 SIP安全通信流程
具體實(shí)現(xiàn)流程如下:
(1)根據(jù)SIP服務(wù)器的IP地址與指定的信令端口,SIP終端通過IKE用戶模塊向SPD中添加安全策略,此時(shí)該業(yè)務(wù)流的處理策略是丟棄數(shù)據(jù)包;
(2)SIP終端通過IKE用戶模塊與SIP服務(wù)器之間協(xié)商SA;
(3)SA協(xié)商成功后,SIP終端通過IKE用戶模塊把SA添加到SADB中,同時(shí)修改SPD中的安全策略,將處理行為修改為應(yīng)用安全服務(wù),并將SIP信令的業(yè)務(wù)流映射到本條SA上;
(4)SIP服務(wù)器通過IKE用戶模塊將協(xié)商的SA添加到SADB中,同時(shí)SIP服務(wù)器根據(jù)SIP終端的IP地址與端口,向自身的SPD中添加安全策略。該業(yè)務(wù)流的處理策略是應(yīng)用安全服務(wù),并將該業(yè)務(wù)流映射到本條SA上。
至此,SIP終端與SIP服務(wù)器之間已成功建立IPSec通道,所有的信令數(shù)據(jù)均可以通過該通道進(jìn)行安全防護(hù)。
實(shí)時(shí)傳輸協(xié)議RTP定義了端到端的實(shí)時(shí)數(shù)據(jù)傳輸格式,同時(shí)包含了一系列端到端的實(shí)時(shí)數(shù)據(jù)傳輸服務(wù),如凈荷類型識(shí)別、序列號(hào)編碼、時(shí)間戳和傳輸監(jiān)控等。媒體安全的實(shí)質(zhì)是保障RTP媒體流的安全,是在SIP呼叫流程完成后展開的。RTP媒體流的通道信息是在SIP信令中協(xié)商完成的,因此每次通話都可能不同。應(yīng)對(duì)不斷變化的媒體通道,是賦予IPSec特定應(yīng)用動(dòng)態(tài)感知能力的關(guān)鍵。
具體實(shí)現(xiàn)流程如下:
(1)在SIP呼叫過程中,主叫與被叫的SIP終端分別通過解析INVITE、200 OK等關(guān)鍵信令,獲取本次通話媒體通道的地址信息[1]和RTP媒體流的啟動(dòng)時(shí)間,其中媒體通道的地址信息主要包括通話雙方的IP地址、協(xié)商的RTP媒體流端口信息等;
(2)主叫與被叫的SIP終端分別將媒體通道的地址信息通過IKE用戶模塊向SPD中添加安全策略,此時(shí)該業(yè)務(wù)流的處理策略為丟棄數(shù)據(jù)包;
(3)SIP終端通過IKE用戶模塊與對(duì)端(SIP代理或SIP終端)協(xié)商媒體通道的SA;
(4)SA協(xié)商成功后,主叫與被叫的SIP終端分別將本條SA記錄添加到自身的SADB中,并將SPD中的安全策略映射到本條SA記錄之上,修改業(yè)務(wù)流的處理策略為應(yīng)用安全服務(wù);
(5)通過解析BYE信令獲取RTP媒體流結(jié)束的時(shí)間點(diǎn),SIP終端通過IKE用戶模塊及時(shí)刪除SPD中已經(jīng)過時(shí)的安全策略和SADB中相關(guān)的SA記錄,釋放內(nèi)存空間,以保證服務(wù)器或終端的性能安全。
至此,SIP終端與對(duì)端(SIP代理或SIP終端)之間成功建立IPSec通道,所有的媒體數(shù)據(jù)均可以通過該通道進(jìn)行安全防護(hù)。
在基于IPSec的SIP安全通信模型中,IPSec信令通道和媒體通道SA的建立,增加了服務(wù)器和終端對(duì)SIP信令、RTP媒體流的處理流程。這種額外的負(fù)擔(dān),可能會(huì)對(duì)SIP呼叫的及時(shí)性和通話質(zhì)量產(chǎn)生一定影響,因此對(duì)服務(wù)器和終端的IPSec處理性能提出了較高要求。同時(shí),由于SIP是基于分組網(wǎng)絡(luò)完成的數(shù)據(jù)傳輸,這條數(shù)據(jù)通路不可避免會(huì)出現(xiàn)各種異常,如丟包、延時(shí)和突然中斷等情況。因此,為保持SIP通信的體系安全性、密碼的前向安全性和服務(wù)器/終端性能之間的平衡,實(shí)施過程中需要對(duì)SPD中的安全策略和SADB中的SA采取必要的措施進(jìn)行維護(hù)。
本模型在標(biāo)準(zhǔn)IPSec SA維護(hù)措施的基礎(chǔ)上,增加以下幾個(gè)方面的考慮:
(1)定時(shí)掃描SPD,刪除在指定時(shí)期內(nèi)未被調(diào)用過的安全策略;
(2)定時(shí)掃描SADB,刪除在指定時(shí)期內(nèi)未被使用過的SA;
(3)對(duì)于保障信令通道的SA,如果指定的生命周期結(jié)束,由SIP終端的IKE模塊主動(dòng)發(fā)起請(qǐng)求,申請(qǐng)協(xié)商新SA;
(4)由于數(shù)據(jù)延時(shí)的存在,為保證SA在重新協(xié)商過程中的無縫切換,在新SA生效后,舊SA需要設(shè)置一定的存活時(shí)間,不可立即刪除,以防止由于SA切換導(dǎo)致的丟包。
本文通過對(duì)IPSec的實(shí)現(xiàn)框架進(jìn)行分析,提出了一套基于IPSec實(shí)現(xiàn)的SIP通信安全的方法。該方法利用策略數(shù)據(jù)庫和安全關(guān)聯(lián)數(shù)據(jù)庫,可以解決SIP用戶分布范圍廣、IP地址與端口信息不可預(yù)知的問題,有效保障了SIP的通信安全。同時(shí),利用該方法可以采取不同的IPSec策略保護(hù)不同的應(yīng)用。
參考文獻(xiàn):
[1] 范奕俊.基于安全SIP環(huán)境的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安全數(shù)據(jù)庫研究[J].計(jì)算機(jī)安全 ,2007(02):14-16.JIANG Lin-feng.IPSec Security Database Research[J].Network and Computer Security,2007(02):14-16.
[3] 龐紅玲,安可,戎鋒洪.基于身份加密系統(tǒng)的SIP認(rèn)證機(jī)制[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.