網(wǎng)絡(luò)視頻會議如何安全地穿越防火墻
郭春雷
2003/12/15
近年來,電子郵件、文本對話和即時信息等技術(shù)使得人們的聯(lián)系方式和信息交換發(fā)生了巨大的變化。同時,隨著Internet進一步發(fā)展,人們也在尋找更加豐富、更多交互的方式進行通信和協(xié)作。伴隨著近年IP網(wǎng)寬帶業(yè)務(wù)的蓬勃發(fā)展,基于分組的多媒體通信系統(tǒng)標準H.323廣泛運用于視頻會議和IP電話中,但同時一些網(wǎng)絡(luò)沖突也突顯出來。比如當前一些網(wǎng)絡(luò)實體限制這樣端到端的分組(包)通過,這些實體指的就是防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換器。
H.323簡介
現(xiàn)在常用的網(wǎng)絡(luò)會議軟件和網(wǎng)絡(luò)電話軟件采用的是國際電信聯(lián)盟(ITU-T)制定的H.323協(xié)議族,其中包括H.225,H.245,Q.931等,另外還有IETF制定的SIP(會話啟動協(xié)議)。SIP協(xié)議采用與http類似的文本命令形式,而且協(xié)議比較簡單,是未來網(wǎng)絡(luò)電話和即時通訊的方向。但由于H.323出現(xiàn)較早,已經(jīng)有很多商業(yè)應(yīng)用,比如微軟的NetMeeting采用的就是比較成熟的H.323,另外中國的電信企業(yè)實施IP電話時也傾向于采用H.323協(xié)議。所以H.323還將會在長時間內(nèi)和SIP同時存在。
H.323標準定義了一個在基于分組的網(wǎng)絡(luò)上進行靈活的、實時的、可交互的多媒體通信協(xié)議集。個人計算機能在包交換網(wǎng)絡(luò)(網(wǎng)際網(wǎng)和內(nèi)部網(wǎng))和電路交換網(wǎng)絡(luò)上傳輸音頻,視頻和數(shù)據(jù)。
H.323網(wǎng)絡(luò)包括終端,網(wǎng)關(guān),網(wǎng)守(Gatekeeper)和多點控制單元(MCU)。
網(wǎng)守在局域網(wǎng)上監(jiān)視所有在其區(qū)域內(nèi)的H.323呼叫,它提供兩個主要的服務(wù):呼叫準入和地址解析。所有在此區(qū)內(nèi)的H.323客戶端必須在網(wǎng)守的協(xié)助下開始一個呼叫。另外,網(wǎng)守還可以根據(jù)當前可用帶寬決定是否允許客戶呼叫。
網(wǎng)關(guān)提供在異種網(wǎng)絡(luò)之間操作的能力,例如在包交換網(wǎng)絡(luò)和電話網(wǎng)之間,就需要有一個網(wǎng)關(guān)進行協(xié)議和數(shù)據(jù)的轉(zhuǎn)換。
MCU(多點控制單元)提供多方的多媒體會議能力。它協(xié)調(diào)所有參與者的媒體通信能力,為端點提供音頻混合和視頻選擇(端點本身不能完成這個工作)。
下面我們以點到點的H.323通信為例說明其通信過程。在此例中,我們用Alice和Bob作為H.323通信的兩個端點。Alice在防火墻的外側(cè),Bob在防火墻的內(nèi)側(cè)。
首先,Alice向Bob的H.323知名端口1720建立了一條連接。
然后,Bob和Alice在此連接上發(fā)送Q.931包。,在這些交換的數(shù)據(jù)包中,Bob和Alice發(fā)送動態(tài)的端口用于建立H.245連接(即上圖CONNECT數(shù)據(jù)包中的H.245 Address)。
隨后,呼叫者根據(jù)在Q.931流中協(xié)商的臨時端口建立H.245連接。H.245處理所有的呼叫參數(shù)協(xié)商,例如所要用的編碼解碼算法等。一旦這些參數(shù)協(xié)商完畢,H.245會話開始執(zhí)行OpenLogicalChannel,這個過程為特定的媒體流(如音頻或視頻)發(fā)送傳輸者和發(fā)送者的RTP和RTCP地址和端口(即上圖OpenLogicalChannel和OpenLogicalChannelAck中的RTP及RTCP Address)。然后,這些媒體流就可以在兩個端點之間進行傳輸,直到會話結(jié)束。
H.323通過防火墻和NAT的難點
大量應(yīng)用動態(tài)端口
通過防火墻可以限定進出網(wǎng)絡(luò)的數(shù)據(jù)包類型和流量(這種限定可以基于源IP地址、目的IP地址或端口號等包過濾規(guī)則)。而基于IP的語音和視頻通訊的H.323協(xié)議,要求終端之間使用IP地址和數(shù)據(jù)端口來建立數(shù)據(jù)通信通道。因此存在一個兩難境地:為了建立數(shù)據(jù)連接終端,必須隨時偵聽外來的呼叫,而防火墻卻通常被配置來阻止任何不請自到的數(shù)據(jù)包通過。
即使網(wǎng)絡(luò)管理者打開防火墻上的一個端口來接收呼叫建立數(shù)據(jù)包,例如1720端口,但IP語音和視頻通訊協(xié)議還要求打開許多別的端口接收呼叫控制信息來建立語音和視頻通道。這些端口號事先并不知道,是動態(tài)分配的,這也就是說,網(wǎng)絡(luò)管理者為了允許語音和視頻通訊,將不得不打開防火墻上所有的端口,防火墻也就失去了存在的意義。由于網(wǎng)絡(luò)安全的原因,很少企業(yè)會讓他們的網(wǎng)絡(luò)防火墻如此開放。
防火墻的網(wǎng)絡(luò)地址轉(zhuǎn)換
同時,由于Internet快速膨脹,IPv4地址空間處于嚴重耗盡的境況。為解決這個問題,人們設(shè)計出了網(wǎng)址轉(zhuǎn)換器(NAT)。網(wǎng)絡(luò)地址轉(zhuǎn)換分為傳統(tǒng)的網(wǎng)絡(luò)地址轉(zhuǎn)換和網(wǎng)絡(luò)地址端口轉(zhuǎn)換。目前,很多的網(wǎng)絡(luò)地址轉(zhuǎn)換都是通過防火墻來實現(xiàn)的。然而NAT后的IP語音和視頻設(shè)備僅有私有IP地址,這些地址在公眾網(wǎng)上是不可路由的。
傳統(tǒng)的網(wǎng)絡(luò)地址轉(zhuǎn)換機制允許一個組織在內(nèi)部通信時使用一定范圍內(nèi)的私有地址,當與外部通信時使用一個小的公共IP地址池。
另一種網(wǎng)絡(luò)地址轉(zhuǎn)換是網(wǎng)絡(luò)地址和端口轉(zhuǎn)換。這種轉(zhuǎn)換形式有一個內(nèi)部地址,一個或多個外部地址,然后用端口號進行區(qū)分。
NAT是置于兩網(wǎng)間的邊界,其功能是將外網(wǎng)可見的IP地址與內(nèi)網(wǎng)所用的地址相映射,這樣,每一受保護的內(nèi)網(wǎng)可重用特定范圍的IP地址(192.168.x.x),而這些地址是不用于公網(wǎng)的。從外網(wǎng)來的含公網(wǎng)地址信息的數(shù)據(jù)包先到達NAT,NAT使用預(yù)設(shè)好的規(guī)則(其組元包含源地址、源端口、目的地址、目的端口、協(xié)議)來修改數(shù)據(jù)包,然后再轉(zhuǎn)發(fā)給內(nèi)網(wǎng)接受點。對于流出內(nèi)網(wǎng)的數(shù)據(jù)包也須經(jīng)過這樣的轉(zhuǎn)換處理。
從安全性上來看,NAT提供了對外隱藏內(nèi)網(wǎng)拓撲的一個手段,但也給H.323應(yīng)用帶來巨大的麻煩。協(xié)議消息包一般不是放置在IP包頭,而是在特定區(qū)段中內(nèi)嵌IP地址和端口號。這樣,如果使用NAT,協(xié)議里的IP和端口號不能指向正確的地方,從而導(dǎo)致通信不能正常進行。
ASN.1編碼
H.323的大部分控制信息用ASN.1進行編碼,這是一種非常復(fù)雜的編碼模式,相同版本的相同應(yīng)用在連接相同的目的時,會使用不同的選項,從而使相同成員在數(shù)據(jù)流中的偏移量不同。為了提取其中的有用信息(如內(nèi)嵌的IP地址和端口號),需要對用ASN.1編碼過的數(shù)據(jù)包進行仔細的解碼。
東軟NetEye防火墻在網(wǎng)絡(luò)視頻會議系統(tǒng)的安全解決方案
基于以上H.323的特性,目前絕大多數(shù)的防火墻是不支持H.323協(xié)議的,尤其是經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)后的應(yīng)用,即使支持,也不是很徹底。
為了使用戶網(wǎng)絡(luò)的H.323數(shù)據(jù)流能順利地通過NetEye防火墻,從而正常、安全地進行網(wǎng)絡(luò)視頻等應(yīng)用,東軟公司NeEye產(chǎn)品的研發(fā)人員專門對H.323協(xié)議進行了詳細的分析和控制,有效地解決了當前防火墻和NAT帶來的連通問題。
對ASN.1編碼的數(shù)據(jù)包進行解碼
如前面所述,H.323的大部分控制信息,包括通信所使用的IP地址和端口號,都是用ASN.1進行編碼。因此,為了得到這些有用的信息,NetEye防火墻針對ASN.1編碼后的數(shù)據(jù)進行了詳細的解碼。
將網(wǎng)絡(luò)地址轉(zhuǎn)換應(yīng)用到控制信息中
解碼H.323控制信息后,獲得通信所使用的內(nèi)部私有IP地址和端口,根據(jù)NetEye防火墻上當前應(yīng)用的網(wǎng)絡(luò)地址轉(zhuǎn)換規(guī)則,將H.323控制信息中的IP地址修改為轉(zhuǎn)換后的公網(wǎng)地址。這樣當被呼叫的終端收到呼叫建立(Call Setup)數(shù)據(jù)包后,會從該數(shù)據(jù)包控制信息中獲取呼叫端的IP地址,發(fā)現(xiàn)這個IP地址為一個公網(wǎng)IP地址,開始發(fā)送音頻和視頻數(shù)據(jù)到這個IP地址,從而在NAT下實現(xiàn)正常的網(wǎng)絡(luò)視頻通信。
自動打開動態(tài)分配的端口
由于NetEye防火墻能夠解碼經(jīng)過ASN.1編碼的H.323協(xié)議的數(shù)據(jù)包,并進行詳細的分析,從而可以檢測H.323協(xié)議通信過程中動態(tài)分配的一些端口。這樣做的結(jié)果是,在防火墻的規(guī)則中,只須打開幾個H.323的知名的端口(如1718,1719,1720等),其它通信過程中動態(tài)分配的端口在需要時NetEye防火墻會臨時打開,在不需要時馬上關(guān)閉。這樣就不用打開所有大于1024的端口,增加了防火墻的安全性,而且也不受防火墻網(wǎng)絡(luò)地址轉(zhuǎn)換的影響。這也是基于狀態(tài)檢測的“流過濾”防火墻所具有的先天的優(yōu)勢和特性。
NetEye防火墻通過對網(wǎng)絡(luò)視頻會議系統(tǒng)的安全防護,很好地解決了日常私網(wǎng)和公網(wǎng)通信面臨的連通性、防火墻技術(shù)、NAT技術(shù)、高度安全等問題,充分發(fā)揮了IP通信的諸多優(yōu)勢。

H.323通信過程
賽迪網(wǎng)
中國信息化(industry.ccidnet.com)
相關(guān)鏈接: