首頁>>>技術(shù)>>>VoIP

讓基于SIP協(xié)議VoIP網(wǎng)絡(luò)更加安全

2008/05/09

  我們?cè)?jīng)討論過如何保護(hù)一個(gè)VoIP網(wǎng)絡(luò)免受黑客攻擊和偵聽——這需要一個(gè)多層安全策略。而這么一個(gè)策略的重要部件,則是對(duì)提供呼叫信號(hào)的協(xié)議進(jìn)行保護(hù)。

  SIP協(xié)議已經(jīng)作為一個(gè)非常流行的呼叫信號(hào)協(xié)議而日益得到普及,選擇它的理由也很多,比如相對(duì)于傳統(tǒng)的H.323協(xié)議,它更具簡(jiǎn)單性,以及設(shè)計(jì)上的輕巧性。因此,對(duì)一家選擇了 基于SIP協(xié)議部署VoIP的公司來說,好好考慮一下,應(yīng)當(dāng)如何以一種安全的方式來實(shí)施SIP就顯得非常重要了。不過,SIP協(xié)議的開發(fā)者們當(dāng)初在設(shè)計(jì)時(shí)并沒有考慮到安全方面的問題,所以如果直接將SIP設(shè)備加入你的IP網(wǎng)絡(luò),往往會(huì)帶來額外的安全問題。下面就讓我們看一下,如何做才能 讓SIP通信更加安全。

  了解風(fēng)險(xiǎn)

  由于某些安全機(jī)制的原因,SIP的呼叫信號(hào)信息及通話非常容易被人竊聽和偵聽(也就是說,數(shù)據(jù)被劫持),或者很容易受到中間人攻擊,呼叫篡改攻擊,語音重播攻擊,以及拒絕 服務(wù)等攻擊。

  下面是這些攻擊所能造成的安全風(fēng)險(xiǎn):   幸運(yùn)的是,我們還有些安全機(jī)制可用于保護(hù)SIP網(wǎng)絡(luò)免受上述這些風(fēng)險(xiǎn)的威脅。

  使用TLS保護(hù)SIP網(wǎng)絡(luò)

  一般情況下,SIP數(shù)據(jù)包通過TCP或UDP連接,以純文本的方式進(jìn)行傳輸,所以非常容易受到黑客的偽造和攻擊。為此,RFC 3261定義了SIPS(安全SIP,Secure SIP),一種使用TLS (傳輸層安全,Transport Layer Security)的安全傳輸方法,而TLS則是SSL(安全端口層,Secure Sockets Layer)的新式改進(jìn)版本。

  Netscape最初開發(fā)SSL是用于基于網(wǎng)頁的安全傳輸。TLS提供了一個(gè)加密信道,以便你用于傳輸SIP信息。不過,要想使用SIPS,你的VoIP設(shè)備必須首先支持該協(xié)議才可以。

  SIPS要求來自SIP用戶以及代理的認(rèn)證信息,該認(rèn)證使用MD5校驗(yàn)機(jī)制。該RFC標(biāo)準(zhǔn)同時(shí)還定義了一個(gè)SIP統(tǒng)一資源標(biāo)識(shí)符URI(Uniform Resource Identifier),可用于從一個(gè)端點(diǎn) 到另一個(gè)端點(diǎn)提供安全連接。

  根據(jù)公鑰加密技術(shù),TLS依賴于數(shù)字證書進(jìn)行加密。這里是它的工作模式:
  1. SIP客戶端連上SIP代理。

  2. SIP客戶端向代理請(qǐng)求一個(gè)TLS會(huì)話。

  3. 代理返回一個(gè)有效的公共證書。

  4. 客戶端驗(yàn)證該證書。

  5. 客戶端和代理交換會(huì)話密鑰

  6. 以后會(huì)話中的所有數(shù)據(jù)均使用該會(huì)話密鑰進(jìn)行加密和解密。
  SIPS需要端到端(也就是說,電話到電話)的TLS保護(hù)。而在對(duì)話機(jī)基礎(chǔ)上使用TLS也是可以的。另外,你也可以配置那些可使用SIPS的設(shè)備僅接收TLS加密過的呼叫。

  你的防火墻支持SIP軟件么?

  對(duì)一個(gè)連到互聯(lián)網(wǎng)(或其他任何不能讓人放心的網(wǎng)絡(luò))上的企業(yè)來說,防火墻是安全策略中絕對(duì)必要的部分。不過,像其他VoIP協(xié)議一樣,SIP也常會(huì)在穿越防火墻或NAT(網(wǎng)絡(luò)地 址解析,Network Address Translation的簡(jiǎn)稱)設(shè)備時(shí)發(fā)生問題。

  企業(yè)常常會(huì)配置防火墻僅接收那些由內(nèi)部計(jì)算機(jī)所發(fā)起的外部通信連接。問題是,SIP使用兩個(gè)不同的連接——每個(gè)連接都使用各自的端口——來建立VoIP電話呼叫。一個(gè)連接傳輸 呼叫信號(hào)信息,另一個(gè)則傳輸實(shí)際的語音通訊(也就是說,媒體信息)。

  如果你是朝本地局域網(wǎng)外部撥打一個(gè)電話,那么發(fā)送出去的初始信息就承載了呼叫信號(hào)。對(duì)你所呼叫的IP電話機(jī)而言,這就是一個(gè)“邀請(qǐng)”信息。

  當(dāng)你要呼叫的人應(yīng)答電話時(shí),他的電話機(jī)會(huì)返回一個(gè)確認(rèn)信號(hào)。該信號(hào)會(huì)通過控制呼叫信號(hào)的端口傳回來。由于是通話是由你發(fā)起的,所以這個(gè)信號(hào)可以正常穿越防火墻而返回。 但是,你的防火墻卻很可能攔截同時(shí)進(jìn)入的語音數(shù)據(jù),因?yàn)樗鼇碜砸粋(gè)完全不同的端口,這樣防火墻就正好攔截了打入的電話。

  有一種叫做“會(huì)話控制器”的設(shè)備,可以解決SIP穿越防火墻和NAT設(shè)備時(shí)所遇到的問題。這是一個(gè)在公共網(wǎng)絡(luò)上的設(shè)備,直接為你的VoIP客戶端提供一個(gè)公共IP地址,并在一臺(tái)公 共服務(wù)器上注冊(cè)。

  不過,要保護(hù)你的VoIP網(wǎng)絡(luò),你還需要一個(gè)支持SIP的防火墻。因?yàn)閷?duì)普通的防火墻來說,SIP的數(shù)據(jù)太難以檢查了。SIP網(wǎng)絡(luò)使用一個(gè)實(shí)時(shí)傳輸協(xié)議(RTP),以及一個(gè)“實(shí)時(shí)傳輸 控制協(xié)議(RTCP)”,來從一臺(tái)IP電話向另一臺(tái)IP電話傳輸具體的媒體信息(會(huì)話語音數(shù)據(jù))。

  因此,一臺(tái)支持SIP協(xié)議的防火墻需要能發(fā)現(xiàn)SIP在建立會(huì)話媒體數(shù)據(jù)流時(shí)所動(dòng)態(tài)賦予的RTP/RTCP端口信息。這意味著該防火墻必須解析SIP的交換過程,以發(fā)現(xiàn)哪個(gè)數(shù)據(jù)包中含有媒 體數(shù)據(jù)。而端口信息可以在許多不同的SIP數(shù)據(jù)包中出現(xiàn)。一臺(tái)支持SIP的防火墻必須能夠了解SIP的交換過程,并從中獲得相應(yīng)的信息。

總結(jié)

  對(duì)主要的VoIP協(xié)議來說,當(dāng)初在設(shè)計(jì)它們時(shí),安全方面并不是設(shè)計(jì)主要考慮的一個(gè)問題,SIP協(xié)議也不例外。這一點(diǎn)和早期的電腦操作系統(tǒng)非常類似——以至于后來部署這些操作系 統(tǒng)時(shí)人們不得不再為它們添加必要的安全機(jī)制,因?yàn)樗鼈兏緵]有提供任何安全方面的內(nèi)容。

  因此,企業(yè)部署VoIP時(shí),也必須采取措施來對(duì)VoIP協(xié)議進(jìn)行保護(hù)。而讓SIP網(wǎng)絡(luò)可以變得更加安全的方法,除了可以使用配備TLS的SIPS(安全SIP)來對(duì)VoIP傳輸信道進(jìn)行加密以外 ,還可以使用會(huì)話控制工具,以及使用支持SIP軟件的防火墻。

ZDnet (www.zdnet.com.cn)



相關(guān)鏈接:
VoWLAN語音終端開發(fā)設(shè)計(jì) 2008-05-08
VOIP技術(shù)標(biāo)準(zhǔn)的走勢(shì)與難點(diǎn)分析 2008-05-06
SIP獲得成功的兩大因素 2008-05-06
SBC在企業(yè)IP通信系統(tǒng)中的應(yīng)用 2008-05-04
基于SIP的VoIP系統(tǒng) 2008-04-25

分類信息: