西華師范大學電子信息工程學院 張建妮
?
SIP服務器的安全機制及解決方案
西華師范大學電子信息工程學院 張建妮
【摘要】本文首先介紹了SIP服務器的工作原理,對SIP服務器在會話保持過程中的不安全因素和現有的安全機制進行了分析和討論,并在此基礎上提出了一種改進型的解決方案,該方案不依賴于客戶端證書和外部安全機制。能夠有效保障SIP協議的私密性、完整性及身份鑒別。
【關鍵詞】SIP服務器;安全機制
SIP(Session Initiation Protocol)是IETF于1999年推出的一種分布式的會話控制協議,用于會話的建立、修改和終止。同時由于SIP協議簡單、靈活、易擴展的等優點,其在VOIP、即時消息、語音會議、視頻會議等多媒體會話中得到了廣泛應用 ,成為了下一代網絡中的核心控制信令。對處于互聯網應用層SIP服務器的安全性提出了巨大的挑戰。
目前,由于SIP協議文本形式的明文傳遞,容易被非法者劫持、竊聽、模仿和篡改。同時SIP協議自身缺乏安全機制,無法對客戶端和服務器進行有效的身份鑒別,SIP業務的安全問題只能通過外部協議進行規范和控制。因此,如何保證SIP在應用和擴展過程的安全性成為了SIP標準化過程中的一個熱點問題。
1.1網絡實體及其功能
基于SIP協議的通信網絡沿用了互聯網中的客戶端/服務器模型。一個SIP網絡包括用戶代理UA(User Agent)和網絡服務器兩大部分。其中UA由用戶代理客戶端UAC(User Agent Client)和用戶代理服務器端UAS(User Agent Server)組成。
服務器的功能是向客戶端發出的請求消息提供服務并發送響應消息。從邏輯上包括代理服務器(具有解析名字的能力,主要用于轉發用戶消息)、注冊服務器(接收客戶注冊請求,并完成地址登記)、定位服務器(通過URI找到對應的用戶或實體)和重定向服務器(通過響應告訴客戶下一條服務器地址)4大功能實體。具體實現過程中,可以被合并在同一個應用程序SIP網絡結構中。其中,代理服務器、重定向服務器和注冊服務器可以看作公眾性網絡服務器;而定位服務器則為SIP重定向服務器和代理服務器提供被叫地址信息。

圖1 SIP基本網絡實體
1.2SIP會話流程
SIP是通過請求消息和SIP響應消息來進行會話的建立,修改和釋放。表1和表2分別為SIP請求方法和應答消息及其含義。

表1 SIP請求方法及含義

表2 SIP應答消息及含義
在圖2所示的SIP基本會話流程中,SIP Server A為主叫用戶SIP Caller所在域的代理服務器,SIP Server B為被叫用戶SIP Callee所在域的代理服務器。
其中step1—step14為會話建立過程,SIP Caller打算向SIP Callee發起會話,它首先得找到自己所在域的代理服務器SIP Server A,并向其發送一個INVITE請求,代理服務器SIP Server A收到來自SIP Caller的INVITE請求后,根據TO字段所攜帶的被叫用戶的Requst-URI信息后,找到SIP Callee所在域的代理服務器SIP Server B并將INVITE請求轉發給SIP Server B,同時SIP Server A給SIP Caller發送一個100Tring的臨時響應消息,以避免SIP Caller向SIP Server A重復發送INVITE請求,SIP Server B再將INVITE請求通過定位服務器發送給SIP Callee,其余過程類似。
Step15:會話成功共建立,SIP Caller和SIP Callee處于通過中;
Step16—step21:會話拆除。

圖2 SIP基本會話流程
由SIP基本會話流程,可以看出服務器的功能是轉發客戶端發出的請求消息并向其發送響應消息。在此過程中,由于SIP消息是明文消息,存在各種不安全因素,下面對SIP 業務中存在的各種安全隱患進行討論和分析。
2.1SIP存在安全隱患
(1)注冊劫持
眾所周知,SIP用戶在進行會話和各種多媒體業務之前,必須將自己的URI和IP地址在注冊服務上進行綁定,以保證代理服務器和重定向服務器在轉發用戶消息能夠有明確的地址。在注冊過程中,如果攻擊者獲取到了用戶的密碼和IP并將用戶的IP篡改成為自己的IP地址,尤其是在SIP協議中,允許第三方來完成用戶注冊,如果第三方本身是攻擊者,就可以成功截取用戶應該接收到的SIP消息,竊聽通話雙方。更嚴重的情況下第三方如果獲取了大量用戶的地址信息,造成的后果將不可估量。
(2)攻擊服務器
為了保證SIP服務器能夠將客戶請求消息正確的轉發到目的地,SIP消息中包含路由信息的字段必須對SIP代理服務器和重定向服務器可見。同時,由于用戶無法對服務器進行身份鑒別,這時攻擊者如果偽裝成服務器,就會將合法用戶的消息轉發到不安全的目的地。
(3)消息篡改
消息的篡改,包括會話參數的修改(如會話過程中修改媒體流SDP協議中的參數);偽造BYE請求惡意終止正在進行的會話;將會話過程重定向。
造成以上SIP的不安全隱產生的主要原因是SIP協議的明文傳輸,和客戶端到服務器之間缺乏有效的身份驗證。
2.2現存SIP安全機制的比較
為了保證會話的安全性,一種極端的做法就是對SIP消息進行完全加密,但通過上述分析知道:為保證服務器能夠正確的轉發請求消息和返回響應消息,必須對SIP消息中含有的路由信息的字段可見。鑒于SIP消息本身沒有安全機制,只能依靠外部的安全機制來保證SIP的安全性。
(1)客戶端和客戶端之間采用的安全策略
客戶端和客戶端之間的安全機制可以通過S/MIME加密認證機制實現,可以保證SIP消息的私密性、完整性以及用戶之間的身份認證和鑒別。其缺點是客戶端必須提供權威機構頒發的證書,才能夠實現端到端的安全保障,這對PKI機制還不夠完善的客戶端來說,實現起來困難較大。
(2)服務器和服務器之間的安全策略
服務器和服務器之間主要是采用逐跳安全機制,逐跳安全機制可以通過過傳輸層協議TLS和網絡層協議IPsec實現。TLS可以為SIP網絡提供傳輸層以上的逐跳安全服務,當用戶A和B需要通信,而A和B只信任本地服務器,它們之間沒有沒有預先的相互信任關系,如果A的代理服務器和B的代理服務器通過相互交換證書,建立了信任關系,A和B之間就可以相互信任并進行通信。TLS的不足之處是當鏈接建立在UDP之上時會引發大量的網絡負載,另外在SIP的具體應用中,在向后兼容過程中需要較為復雜的加密算法;IPsec可以通過虛擬專用網絡VNPS創建鏈接,該鏈接可以為Voip提供與專用網絡相同的的服務和安全保障,但IPsec網絡實現復雜度高,擴展性差。
(3)客戶端和服務器之間的安全策略
客戶端和服務器端之間的安全機制主要是通過認證(如HTTP摘要認證)的方式實現,HTTP摘要認證可以對報文發起者的合法性進行鑒別,當一個客戶端向注冊服務器進行注冊時,客戶端不僅要向注冊服務器發送REGISTER請求,同時還需要發送一個能夠證明自己身份有效的證書。此種安全機制可以用于解決諸如注冊劫持的安全隱患。但HTTP摘要認證只能提供身份認證,而且通信延時較大。
結合以上分析,以及對HTTP摘要認證,TLS和IPsec,S/MIME加密認證機制的研究,不難發現,通過外部協議來保障SIP的安全機制,存在各種缺陷。因此,提出一種改進型SIP安全策略,該安全策略的基本思想是:在SIP服務器之間采用TLS機制,在服務器和客戶端之間采用對稱加密方式,如圖3所示。

圖3 一種改進型SIP安全策略
在SIP客戶端和服務器之間的對稱密鑰由用戶名、域名、用戶和服務器之間共享的口令信息、服務器注冊時反饋的隨機值(nonce)通過加密函數生成,加密函數可采用加密函數采用DES CBC校驗和算法。SIP客戶端和服務器之間的對稱加密算法由二者共同協商,最終選擇二者共同支持且在服務器中優先級最高的算法。具體的實現可以在客戶端注冊過程中在SIP報文的頭部增加一個clien-suanfa,將用戶能夠支持的加密算法以優先級從高到低發送給服務器,服務器以同樣的方式在響應消息中通過sever-suanfa頭部將自己支持的加密算法和生成的隨機值(nonce)反饋給客戶端。客戶端利用隨機值(nonce)生成密鑰,并將sever-suanfa中的算法列表復制到verify字段中,用以鑒別二者在注冊過程中是否遭受攻擊,注冊成功后二者利用協商好的加密算法和生成的公鑰進行報文傳輸。甚至還給以在報文傳輸過程中增加時間戳來防止大量消息重發阻塞服務器。
在SIP服務器和服務器之間采用TLS安全機制,此時服務器必須提供自己身份證書,對于服務器而言,生成和維護證書相對比較容易。且TLS協議能夠在 TCP之上提供私密性和身份鑒別的服務。
客戶端之間采用RSA算法來保證可信度,具體的實現是服務器在消息發送方的報文中添加數字簽名,當消息接受方接收到消息后,再檢查了消息發送方的公鑰正確后,在檢查其數字簽名是否正確,如果消息接收方認為發送方的服務器可信,則間接認為消息發送方可信。利用此種方式相對于逐跳方式中的多跳更加安全可靠。
綜上所述,本文提出的一種改進型SIP安全策略,不依賴于客戶端證書和外部安全機制。旨在通過逐條擴展SIP協議本身,在能夠有效保障SIP協議的私密性、完整性及身份鑒別。同時可以有效防止SIP消息的重發。
參考文獻
[1]IETF RFC3261,SIP:SessionInitiation Protocol[S],2002,6.
[2]張建妮.基于SIP 協議的負載均衡系統的設計與實現[D].成都:西南交通大學,2011.
[3]黃珍生,張統文.基于SIP的電話服務器故障切換方法與可用性分析.
[4]方東輝.一種 SIP 應用層安全機制的設計與實現[D].哈爾濱工業大學,2007.
張建妮(1982-),女,陜西岐山人,碩士,講師,現供職于西華師范大學電子信息工程學院,研究方向:通信網絡技術。
作者簡介:
基金項目:西華師范大學校內基金項目(13D015)。