西華師范大學(xué)電子信息工程學(xué)院 張建妮
?
SIP服務(wù)器的安全機(jī)制及解決方案
西華師范大學(xué)電子信息工程學(xué)院 張建妮
【摘要】本文首先介紹了SIP服務(wù)器的工作原理,對(duì)SIP服務(wù)器在會(huì)話保持過程中的不安全因素和現(xiàn)有的安全機(jī)制進(jìn)行了分析和討論,并在此基礎(chǔ)上提出了一種改進(jìn)型的解決方案,該方案不依賴于客戶端證書和外部安全機(jī)制。能夠有效保障SIP協(xié)議的私密性、完整性及身份鑒別。
【關(guān)鍵詞】SIP服務(wù)器;安全機(jī)制
SIP(Session Initiation Protocol)是IETF于1999年推出的一種分布式的會(huì)話控制協(xié)議,用于會(huì)話的建立、修改和終止。同時(shí)由于SIP協(xié)議簡單、靈活、易擴(kuò)展的等優(yōu)點(diǎn),其在VOIP、即時(shí)消息、語音會(huì)議、視頻會(huì)議等多媒體會(huì)話中得到了廣泛應(yīng)用 ,成為了下一代網(wǎng)絡(luò)中的核心控制信令。對(duì)處于互聯(lián)網(wǎng)應(yīng)用層SIP服務(wù)器的安全性提出了巨大的挑戰(zhàn)。
目前,由于SIP協(xié)議文本形式的明文傳遞,容易被非法者劫持、竊聽、模仿和篡改。同時(shí)SIP協(xié)議自身缺乏安全機(jī)制,無法對(duì)客戶端和服務(wù)器進(jìn)行有效的身份鑒別,SIP業(yè)務(wù)的安全問題只能通過外部協(xié)議進(jìn)行規(guī)范和控制。因此,如何保證SIP在應(yīng)用和擴(kuò)展過程的安全性成為了SIP標(biāo)準(zhǔn)化過程中的一個(gè)熱點(diǎn)問題。
1.1網(wǎng)絡(luò)實(shí)體及其功能
基于SIP協(xié)議的通信網(wǎng)絡(luò)沿用了互聯(lián)網(wǎng)中的客戶端/服務(wù)器模型。一個(gè)SIP網(wǎng)絡(luò)包括用戶代理UA(User Agent)和網(wǎng)絡(luò)服務(wù)器兩大部分。其中UA由用戶代理客戶端UAC(User Agent Client)和用戶代理服務(wù)器端UAS(User Agent Server)組成。
服務(wù)器的功能是向客戶端發(fā)出的請(qǐng)求消息提供服務(wù)并發(fā)送響應(yīng)消息。從邏輯上包括代理服務(wù)器(具有解析名字的能力,主要用于轉(zhuǎn)發(fā)用戶消息)、注冊服務(wù)器(接收客戶注冊請(qǐng)求,并完成地址登記)、定位服務(wù)器(通過URI找到對(duì)應(yīng)的用戶或?qū)嶓w)和重定向服務(wù)器(通過響應(yīng)告訴客戶下一條服務(wù)器地址)4大功能實(shí)體。具體實(shí)現(xiàn)過程中,可以被合并在同一個(gè)應(yīng)用程序SIP網(wǎng)絡(luò)結(jié)構(gòu)中。其中,代理服務(wù)器、重定向服務(wù)器和注冊服務(wù)器可以看作公眾性網(wǎng)絡(luò)服務(wù)器;而定位服務(wù)器則為SIP重定向服務(wù)器和代理服務(wù)器提供被叫地址信息。
圖1 SIP基本網(wǎng)絡(luò)實(shí)體
1.2SIP會(huì)話流程
SIP是通過請(qǐng)求消息和SIP響應(yīng)消息來進(jìn)行會(huì)話的建立,修改和釋放。表1和表2分別為SIP請(qǐng)求方法和應(yīng)答消息及其含義。
表1 SIP請(qǐng)求方法及含義
表2 SIP應(yīng)答消息及含義
在圖2所示的SIP基本會(huì)話流程中,SIP Server A為主叫用戶SIP Caller所在域的代理服務(wù)器,SIP Server B為被叫用戶SIP Callee所在域的代理服務(wù)器。
其中step1—step14為會(huì)話建立過程,SIP Caller打算向SIP Callee發(fā)起會(huì)話,它首先得找到自己所在域的代理服務(wù)器SIP Server A,并向其發(fā)送一個(gè)INVITE請(qǐng)求,代理服務(wù)器SIP Server A收到來自SIP Caller的INVITE請(qǐng)求后,根據(jù)TO字段所攜帶的被叫用戶的Requst-URI信息后,找到SIP Callee所在域的代理服務(wù)器SIP Server B并將INVITE請(qǐng)求轉(zhuǎn)發(fā)給SIP Server B,同時(shí)SIP Server A給SIP Caller發(fā)送一個(gè)100Tring的臨時(shí)響應(yīng)消息,以避免SIP Caller向SIP Server A重復(fù)發(fā)送INVITE請(qǐng)求,SIP Server B再將INVITE請(qǐng)求通過定位服務(wù)器發(fā)送給SIP Callee,其余過程類似。
Step15:會(huì)話成功共建立,SIP Caller和SIP Callee處于通過中;
Step16—step21:會(huì)話拆除。
圖2 SIP基本會(huì)話流程
由SIP基本會(huì)話流程,可以看出服務(wù)器的功能是轉(zhuǎn)發(fā)客戶端發(fā)出的請(qǐng)求消息并向其發(fā)送響應(yīng)消息。在此過程中,由于SIP消息是明文消息,存在各種不安全因素,下面對(duì)SIP 業(yè)務(wù)中存在的各種安全隱患進(jìn)行討論和分析。
2.1SIP存在安全隱患
(1)注冊劫持
眾所周知,SIP用戶在進(jìn)行會(huì)話和各種多媒體業(yè)務(wù)之前,必須將自己的URI和IP地址在注冊服務(wù)上進(jìn)行綁定,以保證代理服務(wù)器和重定向服務(wù)器在轉(zhuǎn)發(fā)用戶消息能夠有明確的地址。在注冊過程中,如果攻擊者獲取到了用戶的密碼和IP并將用戶的IP篡改成為自己的IP地址,尤其是在SIP協(xié)議中,允許第三方來完成用戶注冊,如果第三方本身是攻擊者,就可以成功截取用戶應(yīng)該接收到的SIP消息,竊聽通話雙方。更嚴(yán)重的情況下第三方如果獲取了大量用戶的地址信息,造成的后果將不可估量。
(2)攻擊服務(wù)器
為了保證SIP服務(wù)器能夠?qū)⒖蛻粽?qǐng)求消息正確的轉(zhuǎn)發(fā)到目的地,SIP消息中包含路由信息的字段必須對(duì)SIP代理服務(wù)器和重定向服務(wù)器可見。同時(shí),由于用戶無法對(duì)服務(wù)器進(jìn)行身份鑒別,這時(shí)攻擊者如果偽裝成服務(wù)器,就會(huì)將合法用戶的消息轉(zhuǎn)發(fā)到不安全的目的地。
(3)消息篡改
消息的篡改,包括會(huì)話參數(shù)的修改(如會(huì)話過程中修改媒體流SDP協(xié)議中的參數(shù));偽造BYE請(qǐng)求惡意終止正在進(jìn)行的會(huì)話;將會(huì)話過程重定向。
造成以上SIP的不安全隱產(chǎn)生的主要原因是SIP協(xié)議的明文傳輸,和客戶端到服務(wù)器之間缺乏有效的身份驗(yàn)證。
2.2現(xiàn)存SIP安全機(jī)制的比較
為了保證會(huì)話的安全性,一種極端的做法就是對(duì)SIP消息進(jìn)行完全加密,但通過上述分析知道:為保證服務(wù)器能夠正確的轉(zhuǎn)發(fā)請(qǐng)求消息和返回響應(yīng)消息,必須對(duì)SIP消息中含有的路由信息的字段可見。鑒于SIP消息本身沒有安全機(jī)制,只能依靠外部的安全機(jī)制來保證SIP的安全性。
(1)客戶端和客戶端之間采用的安全策略
客戶端和客戶端之間的安全機(jī)制可以通過S/MIME加密認(rèn)證機(jī)制實(shí)現(xiàn),可以保證SIP消息的私密性、完整性以及用戶之間的身份認(rèn)證和鑒別。其缺點(diǎn)是客戶端必須提供權(quán)威機(jī)構(gòu)頒發(fā)的證書,才能夠?qū)崿F(xiàn)端到端的安全保障,這對(duì)PKI機(jī)制還不夠完善的客戶端來說,實(shí)現(xiàn)起來困難較大。
(2)服務(wù)器和服務(wù)器之間的安全策略
服務(wù)器和服務(wù)器之間主要是采用逐跳安全機(jī)制,逐跳安全機(jī)制可以通過過傳輸層協(xié)議TLS和網(wǎng)絡(luò)層協(xié)議IPsec實(shí)現(xiàn)。TLS可以為SIP網(wǎng)絡(luò)提供傳輸層以上的逐跳安全服務(wù),當(dāng)用戶A和B需要通信,而A和B只信任本地服務(wù)器,它們之間沒有沒有預(yù)先的相互信任關(guān)系,如果A的代理服務(wù)器和B的代理服務(wù)器通過相互交換證書,建立了信任關(guān)系,A和B之間就可以相互信任并進(jìn)行通信。TLS的不足之處是當(dāng)鏈接建立在UDP之上時(shí)會(huì)引發(fā)大量的網(wǎng)絡(luò)負(fù)載,另外在SIP的具體應(yīng)用中,在向后兼容過程中需要較為復(fù)雜的加密算法;IPsec可以通過虛擬專用網(wǎng)絡(luò)VNPS創(chuàng)建鏈接,該鏈接可以為Voip提供與專用網(wǎng)絡(luò)相同的的服務(wù)和安全保障,但I(xiàn)Psec網(wǎng)絡(luò)實(shí)現(xiàn)復(fù)雜度高,擴(kuò)展性差。
(3)客戶端和服務(wù)器之間的安全策略
客戶端和服務(wù)器端之間的安全機(jī)制主要是通過認(rèn)證(如HTTP摘要認(rèn)證)的方式實(shí)現(xiàn),HTTP摘要認(rèn)證可以對(duì)報(bào)文發(fā)起者的合法性進(jìn)行鑒別,當(dāng)一個(gè)客戶端向注冊服務(wù)器進(jìn)行注冊時(shí),客戶端不僅要向注冊服務(wù)器發(fā)送REGISTER請(qǐng)求,同時(shí)還需要發(fā)送一個(gè)能夠證明自己身份有效的證書。此種安全機(jī)制可以用于解決諸如注冊劫持的安全隱患。但HTTP摘要認(rèn)證只能提供身份認(rèn)證,而且通信延時(shí)較大。
結(jié)合以上分析,以及對(duì)HTTP摘要認(rèn)證,TLS和IPsec,S/MIME加密認(rèn)證機(jī)制的研究,不難發(fā)現(xiàn),通過外部協(xié)議來保障SIP的安全機(jī)制,存在各種缺陷。因此,提出一種改進(jìn)型SIP安全策略,該安全策略的基本思想是:在SIP服務(wù)器之間采用TLS機(jī)制,在服務(wù)器和客戶端之間采用對(duì)稱加密方式,如圖3所示。
圖3 一種改進(jìn)型SIP安全策略
在SIP客戶端和服務(wù)器之間的對(duì)稱密鑰由用戶名、域名、用戶和服務(wù)器之間共享的口令信息、服務(wù)器注冊時(shí)反饋的隨機(jī)值(nonce)通過加密函數(shù)生成,加密函數(shù)可采用加密函數(shù)采用DES CBC校驗(yàn)和算法。SIP客戶端和服務(wù)器之間的對(duì)稱加密算法由二者共同協(xié)商,最終選擇二者共同支持且在服務(wù)器中優(yōu)先級(jí)最高的算法。具體的實(shí)現(xiàn)可以在客戶端注冊過程中在SIP報(bào)文的頭部增加一個(gè)clien-suanfa,將用戶能夠支持的加密算法以優(yōu)先級(jí)從高到低發(fā)送給服務(wù)器,服務(wù)器以同樣的方式在響應(yīng)消息中通過sever-suanfa頭部將自己支持的加密算法和生成的隨機(jī)值(nonce)反饋給客戶端??蛻舳死秒S機(jī)值(nonce)生成密鑰,并將sever-suanfa中的算法列表復(fù)制到verify字段中,用以鑒別二者在注冊過程中是否遭受攻擊,注冊成功后二者利用協(xié)商好的加密算法和生成的公鑰進(jìn)行報(bào)文傳輸。甚至還給以在報(bào)文傳輸過程中增加時(shí)間戳來防止大量消息重發(fā)阻塞服務(wù)器。
在SIP服務(wù)器和服務(wù)器之間采用TLS安全機(jī)制,此時(shí)服務(wù)器必須提供自己身份證書,對(duì)于服務(wù)器而言,生成和維護(hù)證書相對(duì)比較容易。且TLS協(xié)議能夠在 TCP之上提供私密性和身份鑒別的服務(wù)。
客戶端之間采用RSA算法來保證可信度,具體的實(shí)現(xiàn)是服務(wù)器在消息發(fā)送方的報(bào)文中添加數(shù)字簽名,當(dāng)消息接受方接收到消息后,再檢查了消息發(fā)送方的公鑰正確后,在檢查其數(shù)字簽名是否正確,如果消息接收方認(rèn)為發(fā)送方的服務(wù)器可信,則間接認(rèn)為消息發(fā)送方可信。利用此種方式相對(duì)于逐跳方式中的多跳更加安全可靠。
綜上所述,本文提出的一種改進(jìn)型SIP安全策略,不依賴于客戶端證書和外部安全機(jī)制。旨在通過逐條擴(kuò)展SIP協(xié)議本身,在能夠有效保障SIP協(xié)議的私密性、完整性及身份鑒別。同時(shí)可以有效防止SIP消息的重發(fā)。
參考文獻(xiàn)
[1]IETF RFC3261,SIP:SessionInitiation Protocol[S],2002,6.
[2]張建妮.基于SIP 協(xié)議的負(fù)載均衡系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2011.
[3]黃珍生,張統(tǒng)文.基于SIP的電話服務(wù)器故障切換方法與可用性分析.
[4]方東輝.一種 SIP 應(yīng)用層安全機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工業(yè)大學(xué),2007.
張建妮(1982-),女,陜西岐山人,碩士,講師,現(xiàn)供職于西華師范大學(xué)電子信息工程學(xué)院,研究方向:通信網(wǎng)絡(luò)技術(shù)。
作者簡介:
基金項(xiàng)目:西華師范大學(xué)校內(nèi)基金項(xiàng)目(13D015)。