《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > SIP協議安全分析與解決方法

SIP協議安全分析與解決方法

2009-01-15
作者:賈 衍1, 徐東升2, 卜 哲

??? 摘? 要: 分析了幾種常見的SIP協議的安全威脅,提出了兩種可能性也很大的安全威脅,在此基礎上從SIP協議消息交互過程出發,提出了幾種新的解決思路和方法。?

????關鍵詞: SIP協議; 安全

?

1 SIP協議?

??? 會話初始協議SIP(Session Initiation Protocol)[1]是由IETF(Internet工程任務組)提出的IP電話信令協議。它是一個應用層的控制協議,可以用來建立、修改、終止多媒體會話。SIP協議工作于通訊協議之下,并不依賴于建立的會話類型。?

??? SIP協議是采用UTF-8字符集進行編碼的文本協議。SIP消息分為請求和響應兩類,分別由起始行、一個或多個頭字段、可選的消息體組成。RFC3261中定義了六種請求方法:邀請對方參與會話(INVITE)、確認信息(ACK)、用于取消會話(CANCEL)、查詢服務器的能力(OPTIONS)、用于結束會話(BYE)、發送注冊請求信息(REGISTER)。同時,RFC3261中還定義了六種應答狀態碼:臨時響應(1XX)、成功響應(2XX)、重定向響應(3XX)、客戶機錯誤(4XX)、服務器錯誤(5XX)、全局故障(6XX)。?

??? SIP系統包含用戶代理、重定向服務器、注冊服務器和代理服務器。用戶代理UA(User Agent)是一個邏輯功能實體,當產生請求消息時作為用戶代理客戶端(UAC),當接收請求并產生響應時作為用戶代理服務器端(UAS)。?

2 SIP協議的安全問題?

??? SIP協議具有易用性、靈活性和擴展性強等特點,這使得SIP協議的應用越來越廣泛。但由于SIP一般使用文本方式在IP網絡上傳輸,并且SIP使用了代理服務器、重定向服務器等中間設備,使其消息的完整性、保密性、可用性和真實性存在安全隱患。但可以通過研究幾種比較常見的、典型的SIP安全威脅的方式來找到必要的解決方法,以保證SIP協議的安全運行。?

2.1 注冊劫持?

??? 這種安全威脅發生在SIP的注冊過程中,SIP注冊就是用戶終端向注冊服務器登記終端用戶在何處可以被訪問。一方面,注冊服務器根據發起注冊請求的UA所發送的注冊消息的From頭字段中的信息來判斷其身份,同時也判定其是否可以修改已經注冊的聯系地址。但是,由于From頭字段可以被UA任意修改,這就使惡意注冊成為可能。另一方面,SIP中允許第三方代表用戶來注冊聯系信息,這也為惡意注冊提供了方便。這類威脅存在的根本原因是用戶發出的注冊請求消息沒有進行必要的加密,并且用戶也被允許任意修改這些信息,同時沒有一類安全機制使SIP實體能夠認證請求發送者的身份。?

2.2 服務器偽裝?

??? 攻擊者通過偽裝服務器而達到攻擊的目的。在SIP消息交互過程中,請求消息中的Request-URI域詳細說明了該消息發送的目標域。UA通常直接向域中的服務器發出呼叫請求,呼叫請求再由服務器向被呼叫者或者下一跳服務器轉發,這就給攻擊者偽裝成服務器的機會。當UA的請求被截獲,泄露會話的關鍵信息后,就存在攻擊者假冒服務器的可能。攻擊者還可以假冒注冊服務器獲取注冊信息。為了防止這類服務器偽裝攻擊,就需要UA對服務器的合法身份進行鑒別。?

2.3 消息篡改?

??? SIP UA通過信任的代理來路由呼叫,雖然UA可以鑒別代理服務器是否可信,但是它卻不檢查請求消息實體是否已被篡改。UA通過SIP消息體來傳送媒體會話加密的密鑰時,惡意的代理就可以改動消息體,或者作為中間人,或者直接改寫會話加密的安全特性。防止這類攻擊的手段就是需要保證消息頭和消息體的安全,這包括私密性、完整性和認證鑒權。?

2.4 中斷會話?

??? SIP通過BYE請求結束會話,攻擊者能夠偽造BYE請求,一旦偽造的BYE請求被接收者收到,會話就會被提前結束。同樣,攻擊者可以通過發送偽造的re-Invite請求來改變會話。這類安全威脅出現的原因是攻擊者通過獲取會話的一些初始化信息,從而得到會話的一些參數(如To標記、From標記等)。防止這類安全威脅至少有兩種方法:一是對BYE消息發起者的身份進行鑒別;二是保證會話初始化信息的機密性,使攻擊者無法獲取偽造會話消息的會話參數。?

2.5 拒絕服務與服務放大?

??? 拒絕服務一般指通過向特定的網絡接口發送大量的信息使系統被破壞或暫不可用。拒絕服務攻擊的表現是獲得授權的實體不能獲得對網絡資源的正常訪問,或推遲實時操作等。多數情況下,SIP系統的重定向服務器、注冊服務器、代理服務器位于Internet上,這就為攻擊者發起拒絕服務攻擊提供了機會。SIP設備除了作為直接被攻擊的對象外,還有可能作為DOS攻擊的幫兇,起到放大DOS攻擊的作用。?

??? 上述這些情況需要SIP協議運行于一個具有良好的安全體系結構網絡,從而盡可能降低這類拒絕服務攻擊的安全威脅。?

2.6 客戶端偽裝(Impersonating a Client)?

??? 通過獲取一個UA發出INVITE請求消息的From頭字段的方式,攻擊者可以偽裝成被攻擊的UA主動發起會話建立請求或修改已經存在的會話屬性。這種攻擊一方面可能造成被攻擊的UA與其他UA的會話信息被泄露,例如,攻擊者可以假冒UserA與UserB進行會話,攻擊者Attacker只需將自己的From頭字段內容修改成為UserA的,然后向UserB發起會話請求,SIP服務器將此請求發送給UserB,由于SIP服務器與UserB都無法鑒別請求發送者的身份,所以攻擊者Attacker就假冒UserA與UserB進行會話,其流程如圖1(a)所示。另一方面這種攻擊也可能中斷或修改已經建立的會話。例如,UserA與UserB已經建立了SIP會話,這時,攻擊者可以分別假冒UserA與UserB向對方發送BYE請求,這時,請求接收方UserB與UserA都會誤以為是對方發送的BYE請求,會話即被中斷,其流程如圖1(b)所示。要防止這類攻擊就需要服務器對UA的合法身份進行鑒別。

?

?

2.7 破壞會話建立(Breaking up the Connection)

??? 當會話請求INVITE被發送以后,可以通過發送CANCEL請求來取消這個會話。攻擊者可以通過假冒會話發起方發送CANCEL請求,從而達到破壞會話建立的目的。例如,UserA發給UserB的INVITE請求被攻擊者Attacker截獲,獲得了To、From等內容后,在消息中插入了發給UserB的CANCEL請求,于是,UserA的會話請求被取消,無法與UserB建立會話,其流程如圖2所示。?

?

?

3 SIP協議的安全機制?

??? 通過對以上幾種現有的或補充的SIP協議可能受到的安全威脅進行分析,據此就有可能提供必要的安全機制來保證SIP協議的安全運行。目前現有的一些安全機制有:HTTP Digest、S/MIME、TLS和SIPS URIS。?

3.1 HTTP Digest身份認證[2]?

??? HTTP Digest身份認證是基于HTTP的challenge/response的機制,即只接受有證書(credential)的請求,對沒有證書的請求則通過401/407要求對方重發包含認證信息的請求。但由于目前HTTP Digest認證僅能實現Server(包括Proxy、Registrar和Redirect Server)對本域內的UA的認證,而無法實現UA對Server的認證、Proxy對Proxy的認證和Proxy對域外UA的認證,所以已經出現的不少攻擊正是針對這些缺陷來實施的。?

3.2 S/MIME[3]?

??? 安全多用途互聯網郵件擴展協議S/MIME(Secure/Multipurpose Internet Mail Extensions)是一種端到端加密方式,它是單向散列算法和公/私鑰相結合的加密體系,采用對稱加密和非對稱加密結合,用公鑰加密會話密鑰,會話密鑰來加密消息,能夠提供保密、鑒別、數字簽名等功能。但S/MIME的局限性在于證書的權威性。用戶本應該向公開授權機構申請證書,但用戶也可以自己簽發證書,并且自制證書在會話初始能否通過鑒別是由用戶決定的,這就留下了潛在的安全漏洞。?

3.3 TLS保護?

??? 傳輸層安全TLS(Transport Layer Security)用于在兩個通信應用程序之間提供保密性和數據完整性,是面向連接協議即TCP之上的傳輸層安全,該協議分為上層的TLS Handshake協議和下層的TLS Record協議。但由于在SIP協議中,傳輸層的機制是基于點到點的,使用TLS機制發送請求到代理服務器的SIP UA并不能保證請求在整個端到端的路徑中都是用TLS機制。另外,TLS不能在UDP上運行,目前大多數SIP都運行在UDP上,對SIP服務器來說,同時維持大量的TLS連接負荷會很重,導致容量不足的問題。此外,TLS在穿越防火墻時也存在一些問題。?

3.4 SIPS? URIS?

??? 統一資源定位符URI(Uniform Resource Identifier)是網絡環境下一種簡單和可擴展的標識機制。SIPS URI和SIP URI都是用于標識定位SIP網絡中網絡資源,URI中包含了足夠的信息以滿足SIP網絡中的資源的互訪。除了應用在Request-URI上,SIPS安全機制還可以應用到其他的SIP URI中,包括注冊地址和聯系地址等。?

4 新的解決思路與方法?

??? 上述的幾種安全機制都是針對整個通信過程中所有完整的SIP消息進行的端到端或點到點的加密或鑒權機制,這些安全機制本身存在著或多或少的不足,例如,因額外的計算所帶來的處理負擔更容易受到DDOS類的攻擊,需要額外的投入來進行鑒權機制的建立等。?

??? 本文從SIP協議自身出發,著眼于消息交互流程,提出有別于上述幾種安全機制的一些思路與方法,即考慮在SIP消息格式或SIP消息交互流程上運行一些完善措施,避免對每個SIP消息進行整體的加密或身份鑒權。這樣,既可以減少對鑒權機制和一些加密算法的使用,減輕了設備的負擔,又可以提高消息傳輸速率,在安全與簡單有效之間進行一個較為平衡的折中。?

4.1 加入一次握手的確認信息?

??? 通過研究上述幾種安全威脅,分析其具體攻擊過程,可以發現SIP協議最容易受到攻擊的一種情況就是:沒有一次握手的確認信息。在這種情況下,可以加入身份認證,有針對性地防范安全威脅。?

??? 方法是:當服務器端或者客戶端UserB接收到具有特殊意義的SIP消息時,根據原始請求發送者UserA的Contact地址,向其發送一次握手的確認信息,該確認信息采用身份認證的方式,通過發送ACK消息來向原始請求發送者UserA詢問其是否發了消息,該ACK消息帶有隨機數nonce、作用域realm。當原始請求發送者UserA接收到消息時,若之前具有特殊意義的消息是其發送的,則回復帶有由用戶名username、共享密鑰password、隨機數nonce和作用域realm幾項經過組合并利用MD5算法生成后的結果的200 OK狀態碼,接收端UserB對收到的結果進行認證。若UserA之前沒有發送具有特殊意義的消息,則根據其是客戶端還是服務器端,回復不同的錯誤狀態碼(4XX/5XX)。超時不回復的,也視為錯誤處理。具體實現流程如圖3所示。?

?

?

??? 此方法比較適用于防范下面幾種常見的攻擊:?

??? (1) 注冊劫持攻擊:注冊劫持攻擊的特點是攻擊者冒充注冊用戶向注冊服務器發送注冊注銷請求。當注冊服務器接收到Contact:*,Expires:0的消息或From頭字段值和To頭字段值不相同的消息時,需要加入一次握手的確認信息,來確認消息發送者的身份。?

??? (2) 中斷會話和破壞會話建立攻擊:這兩種攻擊方式的特點是客戶端或服務器端收到BYE、CANCEL或re-Invite請求。當UA收到以上三種消息請求時,需要加入一次握手的確認信息。?

??? (3) 服務器端偽裝和客戶端偽裝攻擊:可以采用通過在客戶端或服務器端建立一個列表來保存上一次通信的(From, Contact)對的方法,當接收到新的請求時,查詢(From, Contact)對,如果不相符,則加入一次握手的確認信息,這種方法一定程度上也可以減少對請求發送者的身份認證。但也可以設置一個老化時間參數,在一定時間內刷新(From, Contact)對。?

4.2 在服務器端和客戶端各增加一個Contact地址列表?

??? 這種方法的思路是:在通信雙方之間建立一個可信域,對可信域范圍外的可疑請求一律進行身份認證。?

??? 由于SIP消息中的Contact頭字段給出下一次SIP服務器或目的UA與自身的聯系地址,通常攻擊者通過把自身地址改為Contact地址的方式,使得將發往被攻擊者的一切消息轉為發給攻擊者,從而實施了攻擊。因此,可以在客戶端和服務器端都增加一個Contact地址列表,如果請求發送方UserA的Contact地址在其列表之內的,則接收方UserB無需對其進行身份認證;如果是在地址列表之外的請求,UserB需對UserA用身份鑒權機制進行驗證,確認其可信后,將該地址加入自己的Contact地址列表。否則,不接收請求。具體實現流程如圖4所示。?

?

?

4.3 給SIP消息頭域增加一個頭字段?

??? 這種方法是對SIP協議消息中重要的關鍵字段進行加密,將加密后的數據存放在SIP消息頭域新增加的一個頭字段Au中。其示意圖如圖5所示。相對于SIP安全機制的端到端加密或點到點加密的方法,部分加密的優點在于在降低了身份鑒權和加密機制的復雜程度的同時,有效地保證了SIP協議的安全。?

?

?

??? 一個具體的實現方式是在消息交換過程中,消息發送方UserA發送第N個消息時,選取共享密鑰表中第N個密鑰,對關鍵字段進行“不可逆”加密[4],將計算結果作為Au頭字段發送給接收方UserB,接收方對利用第N個密鑰對Au字段數據進行解密,并對結果進行如下判斷:解密后的關鍵字段是否與接收消息中對應的關鍵字段一致,若不一致則判斷其受到了安全威脅,若相同則對接收的消息進行處理。這種方法需要雙方在交換消息前,實現共享的密鑰表,密鑰表的復雜度可根據需要具體選擇。?

??? 這種方法盡管同樣應用了加密算法和身份鑒權機制,但加密方式相對比較簡單,在降低計算負擔的同時也能保證SIP協議的安全運行。本文中所列出的幾種常見安全威脅都可以采用這種方法進行有效防范。?

??? SIP憑借其簡單、易于擴展、便于實現等優點越來越得到業界的青睞。隨著越來越多支持SIP的客戶端軟件和智能多媒體終端的出現,SIP用戶不斷增加, SIP的安全問題也將受到更多的關注。SIP的安全對策研究將不斷深化,安全機制將不斷完善,它將會進一步為廣大用戶提供更加多樣、安全的服務。?

參考文獻?

[1] ROSENBERG J, SCHULZRINNE H. SIP:Session Initiation?Protocol. RFC3261,2002.?

[2]?王宇飛,范明鈺,王光衛.一種基于HTTP摘要認證的SIP安全機制.重慶郵電學報(自然科學版),2005,(17):749.?

[3]?王原麗,嚴劍.基于S/MIME 的SIP 安全機制.信息安全與通信保密,2005,(5):40.?

[4]?王朔中, 張新鵬, 張開文. 數字密寫和密寫分析[M].北京:清華大學出版社,2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 美女黑丝网站 | 91精品国产免费自在线观看 | 日韩在线播放全免费 | 高清不卡日本v在线二区 | 久久午夜免费鲁丝片 | 国产精品综合久成人 | 黄色在线不卡 | 欧美成人看片 | 日韩中文字幕在线视频 | 一个色在线视频 | 黄色免费观看视频 | 国产香蕉一本大道 | 九九影院韩国理伦片 | 免费三级黄色 | 天堂va亚洲va欧美va国产 | 久久天天躁狠狠躁夜夜不卡 | 国产在线精品人成导航 | 久久成年人视频 | 国产黄色网 | 91精品在线观看视频 | 黄色毛片在线 | 日韩欧美一区二区久久黑人 | 中文国产成人精品久久久 | 日日摸夜夜添欧美一区 | 看片网站在线观看 | 天天操欧美| 四虎永久在线精品波多野结衣 | 女性特黄一级毛片 | 精品国产国语对白主播野战 | 中国女与老外在线精品 | 成年人免费看 | 爽爽影院色黄网站在线观看 | 成人性动漫网站 | 26uuu在线 | 欧美日韩一区二区在线观看视频 | www在线视频在线播放 | 色屁屁一区二区三区视频国产 | 欧美精品在线观看 | 亚洲国产第一区二区香蕉 | 9久爱午夜视频 | 青草香蕉视频 |