陸萬順 符云清
重慶大學(xué)計(jì)算機(jī)學(xué)院 重慶 400044
近些年來,SIP協(xié)議作為VoIP核心控制協(xié)議已得到了越來越多的推廣與應(yīng)用。SIP協(xié)議是伴隨著互聯(lián)網(wǎng)的發(fā)展而誕生和發(fā)展的,它廣泛借鑒了和繼承了其他各種流行的網(wǎng)絡(luò)協(xié)議,例如HTTP、SMTP等,因而不可避免的會(huì)面臨各種安全威脅。
網(wǎng)絡(luò)安全問題一直以來都是網(wǎng)絡(luò)應(yīng)用必須關(guān)注的問題,健康安全的網(wǎng)絡(luò)環(huán)境對(duì)于我們的生活和工作是十分必要的。作為下一代互聯(lián)網(wǎng)核心控制功能的SIP協(xié)議,安全顯得尤為重要?,F(xiàn)有SIP安全機(jī)制主要借鑒其他成熟網(wǎng)絡(luò)應(yīng)用協(xié)議的安全機(jī)制,并取得了一定的安全效果。但是隨著網(wǎng)絡(luò)不斷的發(fā)展和VoIP業(yè)務(wù)的進(jìn)一步創(chuàng)新以及推廣普及,現(xiàn)有SIP安全機(jī)問題將會(huì)面臨更為嚴(yán)峻的考驗(yàn)。
會(huì)話初始化協(xié)議(Session Initial Protocol,SIP)是一個(gè)應(yīng)用層的控制協(xié)議,用來建立、修改和終止多媒體會(huì)話。SIP協(xié)議沿用了成熟的HTTP以及SMTP等現(xiàn)有應(yīng)用協(xié)議,繼承了他們簡(jiǎn)單易用等特性。而SIP只單純地繼承了這些協(xié)議的結(jié)構(gòu),而沒有特別針對(duì)其安全問題進(jìn)行本質(zhì)性、創(chuàng)新性地改造。也正是這個(gè)原因,SIP不可避免地會(huì)遇到以下安全問題:
(1)由于SIP繼承了HTTP以及SMTP等協(xié)議的結(jié)構(gòu),對(duì)于SIP協(xié)議,也將面臨網(wǎng)絡(luò)重放攻擊、網(wǎng)絡(luò)竊聽、網(wǎng)絡(luò)篡改、網(wǎng)絡(luò)欺騙等常見的網(wǎng)絡(luò)問題。
(2)由于SIP協(xié)議自身不成熟性和脆弱性以及SIP協(xié)議的應(yīng)用特點(diǎn),SIP也會(huì)遭受針對(duì)SIP應(yīng)用的安全威脅,如冒充注冊(cè)服務(wù)器、會(huì)話參數(shù)被惡意篡改、注冊(cè)劫持攻擊等。
(3)由于下一代互聯(lián)網(wǎng)高度開放性和異構(gòu)性,SIP也將面臨很多新型安全威脅,例如由于惡意網(wǎng)絡(luò)行為無法安全區(qū)分使得攻擊者有機(jī)會(huì)惡意攻擊SIP服務(wù)器,例如模仿正常操作注冊(cè)服務(wù)器的SIP消息,插入的惡意SQL語(yǔ)句,惡意修改或者刪除注冊(cè)用戶信息。
(4)拒絕服務(wù)/分布式拒絕服務(wù)是現(xiàn)有網(wǎng)絡(luò)一個(gè)棘手問題。對(duì)于SIP協(xié)議,此類安全威脅危害更大,形式更為特別,除了常見的泛洪攻擊,還包括了惡意發(fā)送終止、取消會(huì)話請(qǐng)求消息導(dǎo)致的正常會(huì)話建立和進(jìn)行被拒絕等方式。
SIP網(wǎng)絡(luò)安全就是要保證在合法的用戶終端之間正常的建立會(huì)話連接,完整機(jī)密地進(jìn)行多媒體會(huì)話參數(shù)協(xié)商;安全地保持和修改會(huì)話過程的順利完成;安全有效地完成結(jié)束正常的通話過程。同時(shí),由于SIP采用預(yù)先注冊(cè)機(jī)制,保存用戶URI作為用于使用惟一標(biāo)識(shí)以實(shí)現(xiàn)SIP相應(yīng)功能,SIP安全還包括注冊(cè)過程的安全有效地實(shí)現(xiàn)。
圖1 SIP消息過程傳遞示意圖
SIP安全就是要保證SIP消息在順利經(jīng)過圖中A、B、C、D四部分時(shí)的完整性、可用性和可信性。SIP安全相關(guān)研究者就此提出來很多解決方案,總結(jié)起來主要是安全認(rèn)證和安全加密兩種方式:在端與端之間實(shí)現(xiàn)安全認(rèn)證,保證端點(diǎn)合法性和有效性;在消息傳遞過程中采用安全加密,保證 SIP消息傳輸過程中的安全性(圖1)。
安全認(rèn)證:認(rèn)證主要是驗(yàn)證SIP網(wǎng)絡(luò)UAC和UAS的合法性和有效性,常見認(rèn)證方式有HTTP摘要認(rèn)證和基于身份認(rèn)證算法的安全認(rèn)證等。
(1)HTTP摘要認(rèn)證:基本的HTTP摘要認(rèn)證是基于在HTTP報(bào)文頭中用戶名和密碼等相關(guān)參數(shù)進(jìn)行驗(yàn)證的原理,服務(wù)器對(duì)UAC進(jìn)行單向認(rèn)證,這種方式實(shí)現(xiàn)簡(jiǎn)單,但是脆弱性較高,驗(yàn)證參數(shù)易于被竊取,可能會(huì)遭受重放攻擊等威脅,而且沒有實(shí)現(xiàn)UAC對(duì)服務(wù)器的驗(yàn)證,面臨冒充服務(wù)器的安全隱患;為此,相關(guān)研究者在此基礎(chǔ)上進(jìn)行了改進(jìn),設(shè)計(jì)出了雙向的HTTP摘要認(rèn)證等改進(jìn)措施;但是改進(jìn)后認(rèn)證存在代價(jià)較高、效率較低的缺點(diǎn)。
(2)基于身份認(rèn)證的安全認(rèn)證:該認(rèn)證方式是基于用戶ID(SIP網(wǎng)絡(luò)中即為用戶注冊(cè)的 URI)參與密鑰協(xié)商進(jìn)行驗(yàn)證的方式,是目前較為先進(jìn)的安全驗(yàn)證方式,可以很好的提高安全效果。文獻(xiàn)[3]介紹了幾種類似的認(rèn)證方式,并針對(duì)實(shí)現(xiàn)代價(jià)和效率上進(jìn)行了改進(jìn),提出了一種相對(duì)輕量級(jí)別的認(rèn)證方式,但是無法避免攻擊者利用合法用戶作為傀儡發(fā)起的DDoS安全威脅,認(rèn)證方式缺乏一定的靈活性。
安全加密:安全加密主要是為了保證SIP消息能安全地在SIP網(wǎng)絡(luò)鏈路上傳輸,最終安全完整的到達(dá)目的終端。常見加密方式有網(wǎng)絡(luò)層IPSec加密、傳輸層TLS加密和應(yīng)用層S/MIME加密。
(1)IPSec加密:通過在網(wǎng)絡(luò)層相互信任的終端之間建立對(duì)等虛擬專用通道傳送數(shù)據(jù)。但對(duì)于 SIP,此機(jī)制實(shí)現(xiàn)代價(jià)較高。另外,SIP是以URI作為用戶惟一標(biāo)識(shí),而不是IP地址(SIP用戶由于其快捷的移動(dòng)性,IP地址是時(shí)刻動(dòng)態(tài)變化的),同時(shí)IPSecAH不能穿越NAT,故只能使用空加密的ESP來替代AH,而SIP多采用UDP作為傳輸協(xié)議,且ESP-UDP極易遭受泛洪攻擊,因此應(yīng)用IPSec進(jìn)行SIP安全加密不太現(xiàn)實(shí)。
(2)TLS加密:TLS結(jié)合SIPS URI使用,在傳輸層通過證書驗(yàn)證協(xié)商對(duì)SIP消息安全加密。但是它需要TCP作為傳輸層協(xié)議,而現(xiàn)有SIP實(shí)現(xiàn)大部分采用UDP實(shí)現(xiàn)快速連接,故TLS加密存在一定的應(yīng)用局限性。
(3)S/MIME加密:將SIP消息體加密體進(jìn)行傳輸,但是SIP消息頭對(duì)中間轉(zhuǎn)發(fā)人是可見的,可能會(huì)被攻擊者截獲并篡改消息頭域內(nèi)容,且S/MIME加密是基于PKI支持的,證書安全有效管理也是相當(dāng)困難的。
針對(duì)SIP拒絕服務(wù)攻擊,現(xiàn)有文獻(xiàn)多是采用檢測(cè)過濾的方式盡量的緩解DoS造成的破壞。對(duì)于DoS/DDoS,目前還沒有很好的根除的方案,應(yīng)盡早的發(fā)現(xiàn)和控制,減少其影響范圍,同時(shí)檢測(cè)策略應(yīng)盡量輕量、低開銷、覆蓋全面,否則仍會(huì)給攻擊者提供可趁之機(jī)。
現(xiàn)存SIP安全機(jī)制雖在一定程度上緩解了SIP面臨的安全威脅,但較為被動(dòng),且存在一定局限性并缺乏一定的靈活性,而且都不能全面地解決SIP所面臨的安全問題。本文將根據(jù)現(xiàn)有成熟先進(jìn)的安全解決方案進(jìn)行研究改造,找出一種輕量、高效、靈活的SIP安全機(jī)制。
文獻(xiàn)[3]提出了一種輕量級(jí)的認(rèn)證協(xié)商機(jī)制,該機(jī)制基于DH算法,采用用戶密碼以及隨機(jī)數(shù)計(jì)算協(xié)商密鑰的方式,具體實(shí)施過程如圖2。
圖2 一種輕量安全認(rèn)證和密鑰協(xié)商機(jī)制示意圖
其中重要的參數(shù)計(jì)算描述如下:
(1)用戶代理UA(Alice)取隨機(jī)數(shù)r,用共享的用戶密碼和H()hash函數(shù),計(jì)算gH(pwd)mod p 和grmod p得出H(pwd)和 gr,當(dāng)進(jìn)入安全驗(yàn)證,UA選擇隨機(jī)數(shù) NA,計(jì)算出H(pwd)+NA+r,與gr作為DH公鑰信息裝入請(qǐng)求消息傳給服務(wù)器。
(2)服務(wù)器接收到H(pwd)+NA+r后,利用保存的共享用戶密碼計(jì)算取隨機(jī)數(shù)NS計(jì)算gNSmod p,作為DH公鑰信息裝入401/407應(yīng)答消息反饋給UA(Alice)進(jìn)行挑戰(zhàn)認(rèn)證。
(3)UA接收到挑戰(zhàn)應(yīng)答后,計(jì)算主鑰 MK=(gNS)NAmod p,然后得出認(rèn)證密鑰AK= H(MK,“AuthenticationKey”),加密密鑰 EK= H(MK,“EncryptionKey”),一致密鑰 IK= H(MK,“IntegrityKey”)。UA利用 AK和用戶密碼計(jì)算并放入請(qǐng)求消息發(fā)送給服務(wù)器端。
(4)服務(wù)器接收到請(qǐng)求消息后采用同樣的方式得出AK、IK和EK,然后利用AK和保存的共享用戶密碼對(duì)用戶進(jìn)行安全認(rèn)證。驗(yàn)證成功后,計(jì)算 responseS1= H(AK||gH(pwd),nonce1|| nonce2|| realm ||gNS||gNA),將此信息載入200OK響應(yīng)UA。
(5)UA被認(rèn)證通過后,UA和服務(wù)器利用新的隨機(jī)數(shù)nonce2、nonce3計(jì)算 responseA2= H(AK|| gH(pwd),nonce2|| realm||username ||gNS||gNA)和 responseS2= H(AK||gH(pwd),,并通過EK和IK共同保證隨后的正式請(qǐng)求消息的安全傳遞。當(dāng)下一次的安全關(guān)聯(lián)時(shí),UA將重新選擇隨機(jī)數(shù)NA'來進(jìn)行重新進(jìn)行密鑰協(xié)商。
以上方案是基于用戶密碼不會(huì)被竊取的假設(shè)條件下保證密鑰協(xié)商的安全,故存在一定安全漏洞;另外這種方案對(duì)于攻擊者利用分布式傀儡合法終端進(jìn)行重放攻擊卻是無法進(jìn)行安全保障的。因而我們?cè)诖嘶A(chǔ)上加入 OTP(一次口令)機(jī)制共同完成安全認(rèn)證協(xié)商。在步驟 1中由服務(wù)器端發(fā)起OTP質(zhì)疑,在步驟2中,服務(wù)器利用哈希安全算法對(duì)UA傳來的OTP序列數(shù)進(jìn)行驗(yàn)證,驗(yàn)證合格后,再繼續(xù)往下進(jìn)行。
文獻(xiàn)[1]提出一種基于“能力”的TVA(Traffic Validation Architecture)模式來緩解DoS對(duì)IP互聯(lián)網(wǎng)絡(luò)造成的危害。文中指出,任何可以作為網(wǎng)絡(luò)篩選數(shù)據(jù)包原則的信息即為能力。路由器利用能力標(biāo)記將到來的消息按照一定規(guī)則進(jìn)行排隊(duì),同時(shí)設(shè)置隊(duì)列上限,然后按照此隊(duì)列進(jìn)行數(shù)據(jù)包選擇,緩和非法數(shù)據(jù)包耗盡網(wǎng)絡(luò)資源的風(fēng)險(xiǎn)。具體如圖3所示。
圖3 基于能力參數(shù)的消息隊(duì)列
本文引入上述思想,在每個(gè)SIP網(wǎng)絡(luò)域設(shè)置邊界代理服務(wù)器,負(fù)責(zé)監(jiān)控和過濾進(jìn)入本網(wǎng)絡(luò)域的SIP消息。邊界代理服務(wù)器要求具備較高的業(yè)務(wù)處理能力和安全級(jí)別,且是有狀態(tài)的代理服務(wù)器。邊界代理服務(wù)器用一組安全分析策略對(duì)到來SIP消息進(jìn)行安全分析,我們把這組分析策略定義為“能力”,按照能力參數(shù)對(duì)SIP消息進(jìn)行排隊(duì)。惡意攻擊消息直接拒絕,可疑、不規(guī)范SIP消息放在隊(duì)列后段,信任級(jí)別較好的優(yōu)先放入隊(duì)列前段。
由于SIP消息結(jié)構(gòu)簡(jiǎn)單,不關(guān)心任何多媒體會(huì)話信息,因而我們的能力參數(shù)主要來源于SIP消息頭域信息。我們將SIP消息的可用性、保密性、完整性、真實(shí)性、可審計(jì)性、私密性、抗毀性和可預(yù)測(cè)性等方作為能力標(biāo)記的參考信息。例如SIP頭域格式是否規(guī)范;頭域字段值是否合格;SIP消息來源是否合法(邊界代理服務(wù)器預(yù)先保存一組合法用戶URI)。
邊界代理服務(wù)器根據(jù)能力參數(shù)對(duì)SIP消息進(jìn)行處理后,要求加入能力標(biāo)記標(biāo)識(shí)此消息安全級(jí)別,交給域內(nèi)中間代理服務(wù)器逐跳轉(zhuǎn)發(fā)(中間代理服務(wù)器為無狀態(tài)代理服務(wù)),下一網(wǎng)絡(luò)域代理服務(wù)器將此能力標(biāo)記作為其的能力參數(shù)進(jìn)行 SIP消息處理。
本文采用了一次口令 OTP改進(jìn)文獻(xiàn)[3]提出的安全認(rèn)證和密鑰協(xié)商機(jī)制,能靈活有效地解決終端冒充欺騙(包括用戶代理、注冊(cè)服務(wù)器)、網(wǎng)絡(luò)篡改等常見SIP安全威脅;由于服務(wù)器端是根據(jù)安全級(jí)別較高的秘密通行短語(yǔ)和用戶注冊(cè)信息利用嚴(yán)格保密的安全哈希迭代算法計(jì)算一次口令,而且需要和上一次計(jì)算的口令進(jìn)行對(duì)比認(rèn)證的,所以在一定程度避免了用戶密碼被竊取的風(fēng)險(xiǎn),同時(shí)也避免了攻擊者控制合法傀儡用戶進(jìn)行重放攻擊造成的DDoS造成的影響;在本文方案中,沒有專門的密鑰的管理和分發(fā)機(jī)制,利用用戶共享信息動(dòng)態(tài)計(jì)算獲得必需的驗(yàn)證和加密密鑰,減少了證書交換和證書安全管理的開銷;同時(shí)UA進(jìn)行一次冪計(jì)算便可得到系統(tǒng)主鑰,極大的提高了驗(yàn)證和協(xié)商的效率。這種輕量、高效的安全機(jī)制減輕了關(guān)聯(lián)終端必要的進(jìn)程負(fù)擔(dān),進(jìn)而減少了SIP終端遭受資源耗盡型DoS攻擊的概率。
采用基于能力的SIP-TVA,一方面,設(shè)置邊界代理服務(wù)器利用能力標(biāo)記對(duì)不同SIP消息進(jìn)行排隊(duì),同時(shí)過濾掉不合法來源消息,緩解了SIP遭受DoS/DDoS造成的危害;另外對(duì)于龐雜的網(wǎng)絡(luò)行為可以進(jìn)行智能監(jiān)控,利用能力標(biāo)記對(duì)傳送的SIP消息進(jìn)行整體監(jiān)控和消息行為預(yù)測(cè),盡早的將非法消息控制源端,減小攻擊行為影響范圍;我們只選擇了邊界代理服務(wù)器為有狀態(tài)代理服務(wù)器,網(wǎng)絡(luò)域內(nèi)中間代理服務(wù)器全部采用無狀態(tài)代理服務(wù)器,執(zhí)行簡(jiǎn)單的消息轉(zhuǎn)發(fā)功能,減少SIP消息傳輸?shù)南到y(tǒng)開銷。我們采用這種關(guān)鍵部分重點(diǎn)防御,整體輕量的方式也是為了緩解SIP-DoS/DDoS的危害,盡快安全實(shí)現(xiàn)SIP功能。
SIP作為下一代互聯(lián)網(wǎng)核心控制協(xié)議,安全問題不可忽視。SIP安全機(jī)制要本著高效性、低開銷、靈活度高、解決問題全面和效果明顯的原則去設(shè)計(jì)。另外,SIP的安全問題要從本質(zhì)特征出發(fā),在網(wǎng)絡(luò)的關(guān)鍵部分增加安全認(rèn)證、安全加密等必要的安全措施實(shí)現(xiàn)整體安全,但是不能扼殺了新業(yè)務(wù)的加入和運(yùn)行,不能影響應(yīng)用SIP網(wǎng)絡(luò)正常運(yùn)行。因而我們不能總是被動(dòng)的或者極端的去考慮SIP安全問題,要保證其應(yīng)用網(wǎng)絡(luò)的完整、一致性。
[1]Yang X,Wetherall David, Anderson Thomas.A DoS limiting network architecture.Computer Communication Review.2005.
[2]J.Rosenberg,Schulzrinne,H., Camarillo,G., Johnston, A..Peterson, J, Sparks, R..Handley, M., and E.Schooler, SIP: Session Initiation Protocol.RFC 3261.June 2002.
[3]Jaeduck Choi, Souhwan Jung, Kwangyong Bae, Hokun Moon, A Lightweight Authentication and Hop-by-Hop Security Mechanism for SIP Network, International Conference on Advanced Technologies for Communications.2008.
[4]N.Haller,Bellcore,C.Metz,P.Nesser,M.Straw,A..Bellcore.A One-Time Password System.RFC2289.Feb 1998.
[5]J.Franks,P.Baker,J.Hostetler,S.Lawrence,P.Leach,A.Luotonen, L.Stewart,HTTP Authentication:Basic and Digest Access Authentication.RFC2617.IETF Network Working Group.June 99.
[6]J.Ring,K.Choo,E.Foo,M.Looi.A new authentication mechanism and key agreement protocol for SIP using Identity-based cryptography.Proc.AusCERT2006. May 2006.
[7]J.Arkko,V.Torvinen,G.Camarillo, A.Niemi, T.Haukka.Security Mechanism Agreement for the Session Initiation Protocol (SIP).RFC 3329.IETF.January 2003.