摘要: 本文通過對(duì)BEEP協(xié)議及XML-RPC協(xié)議的研究,探討應(yīng)用基于BEEP協(xié)議的安全組件的通信技術(shù)來實(shí)現(xiàn)不同安全產(chǎn)品之間的通信,解決不同安全產(chǎn)品之間的通用通信問題。
關(guān)鍵字:BEEP ;XML-RPC ;安全組件
中圖分類號(hào):G64文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)04-0060-04
隨著網(wǎng)絡(luò)技術(shù)的不斷深入研究及應(yīng)用,傳統(tǒng)防火墻的靜態(tài)防御已不足以抵御日趨復(fù)雜多樣的入侵行為,面對(duì)當(dāng)前網(wǎng)絡(luò)安全的多樣化需求,一個(gè)全方位、深層次的可信網(wǎng)絡(luò)安全防御體系已經(jīng)出現(xiàn),它要求防火墻與入侵檢測(cè)、安全審計(jì)、電子取證、災(zāi)難恢復(fù)等多種安全系統(tǒng)進(jìn)行有機(jī)的整合、協(xié)調(diào)聯(lián)動(dòng)。
實(shí)現(xiàn)防火墻與其他安全系統(tǒng)間的聯(lián)動(dòng)不僅可以提升其自身的機(jī)動(dòng)性和實(shí)時(shí)反應(yīng)能力,同時(shí)增強(qiáng)了其他安全系統(tǒng)的功能,如可以提高入侵檢測(cè)系統(tǒng)的阻斷反應(yīng)能力和安全審計(jì)系統(tǒng)的日志審計(jì)能力等。然而目前缺乏相應(yīng)的安全系統(tǒng)間聯(lián)動(dòng)的標(biāo)準(zhǔn)和技術(shù)規(guī)范。當(dāng)前存在的一些安全通信協(xié)議(IPSec、SSL)不能充分保證通信的安全性,同時(shí)IETF提出的IDXP草案協(xié)議[1]距離應(yīng)用還有一段距離,因此為了更好地解決安全系統(tǒng)間的協(xié)調(diào)聯(lián)動(dòng)性問題,本文對(duì)安全聯(lián)動(dòng)協(xié)議進(jìn)行了具體分析,提出了安全聯(lián)動(dòng)信息描述模型及格式,并給出了協(xié)議的具體應(yīng)用。
1 通信協(xié)議
要實(shí)現(xiàn)不同的安全組件之間的信息交換,就需要制定一個(gè)通用性安全聯(lián)動(dòng)協(xié)議和安全聯(lián)動(dòng)信息交換格式。安全聯(lián)動(dòng)協(xié)議為了可以用于保證防火墻與其他安全系統(tǒng)間的安全互操作及滿足通用性的要求,已包含了一系列已經(jīng)標(biāo)準(zhǔn)化的協(xié)議,用來實(shí)現(xiàn)安全聯(lián)動(dòng)信息的交換。主要包括以下協(xié)議:
(1) 塊可擴(kuò)展交換協(xié)議BEEP(Block Extensible Exchange Protocol):是一個(gè)面向消息的異步交互的應(yīng)用層協(xié)議,可作為構(gòu)建安全聯(lián)動(dòng)協(xié)議的框架,加載于傳輸層協(xié)議之上。
(2) 傳輸層安全協(xié)議TLS(Transport Layer Security):可以保護(hù)傳輸層的安全,并在傳輸層協(xié)議TCP基礎(chǔ)上提供對(duì)安全聯(lián)動(dòng)信息的加密、認(rèn)證和完整性保證。
(3) 簡(jiǎn)單認(rèn)證和安全層協(xié)議SASL(Simple Authentication and Security Layer):可以在BEEP創(chuàng)建過程中實(shí)現(xiàn)對(duì)應(yīng)用實(shí)體的身份認(rèn)證。
要實(shí)現(xiàn)不同安全組件之間的通信,主要是充分利用BEEP協(xié)議的通道的特性,為安全聯(lián)動(dòng)信息提供多級(jí)分類的可靠傳輸。通過創(chuàng)建自定義的協(xié)議配置文件和自定義協(xié)議的通道完成數(shù)據(jù)傳輸。通過創(chuàng)建TLS配置文件和SASL配置文件獲得TLS和SASL協(xié)議支持,確保數(shù)據(jù)傳輸?shù)陌踩?/p>
2 基于XML-RPC的安全組件的通信技術(shù)實(shí)現(xiàn)
安全聯(lián)動(dòng)信息交換格式定義的安全聯(lián)動(dòng)信息主要包括聯(lián)動(dòng)實(shí)體信息、環(huán)境因子信息、事件關(guān)聯(lián)信息等,同時(shí)可以利用XML語(yǔ)言的特性對(duì)聯(lián)動(dòng)信息做進(jìn)一步的擴(kuò)展。
基于XML的遠(yuǎn)程過程調(diào)用技術(shù)已經(jīng)成為安全組件之間的通信研究的一個(gè)焦點(diǎn),然而XML-RPC[2]技術(shù)本身不提供任何安全性。本文對(duì)BEEP[3]和XML-RPC技術(shù)進(jìn)行了研究,設(shè)計(jì)并實(shí)現(xiàn)了基于XML-RPC的技術(shù),用于解決防火墻中網(wǎng)絡(luò)安全管理平臺(tái)和安全組件之間穿越防火墻通信的問題。針對(duì)各種不同的應(yīng)用,網(wǎng)絡(luò)安全需求將安全機(jī)制獨(dú)立出來并進(jìn)行模塊化,這些安全模塊依然采用以前的安全技術(shù),功能上互不重復(fù),并且可以互相協(xié)調(diào),保證了結(jié)構(gòu)的開放性、應(yīng)用的可配置性和內(nèi)容的可管理性。
目前,在Internet環(huán)境下,不同的安全組件的通信要穿越防火墻最常用的方法就是使用IP Tunnel技術(shù),隨著對(duì)XML技術(shù)的深入應(yīng)用,將XML數(shù)據(jù)流封裝在隧道中,不僅易于實(shí)現(xiàn),而且具有良好的兼容性。
網(wǎng)絡(luò)安全管理平臺(tái)可以通過XML-RPC實(shí)現(xiàn)穿越防火墻對(duì)遠(yuǎn)程網(wǎng)絡(luò)安全組件的安全策略信息進(jìn)行添加、刪除、查詢等各種操作。下例程序描述了網(wǎng)絡(luò)安全管理平臺(tái)向網(wǎng)絡(luò)安全組件發(fā)出請(qǐng)求信息的示例,客戶端調(diào)用服務(wù)器端函數(shù)Add. policy(),參數(shù)為字符型變量和一個(gè)結(jié)構(gòu)體變量,服務(wù)器完成操作后將結(jié)果返回客戶端。
<methodCall>
<methodName>
Add.policy
</methodName>
<params>
<param>
<value><string>deny</string></value>
</param>
<param><value><struct>
<member>
<name>from</name>
<string>202.203.255.103</string>
</member>
<member>
<name>ports</name>
<string>all</string>
</member>
</struct></value></param>
…
從上面的代碼可以看出:首先,XML文檔中只有一個(gè)根
3 基于XML-RPC的安全組件的通信的安全性考慮
XML-RPC協(xié)議對(duì)遠(yuǎn)程過程調(diào)用中的信息描述和傳輸機(jī)制作了全面詳細(xì)的定義,且是以明文形式在網(wǎng)絡(luò)上傳輸信息,并沒有考慮任何安全性。BEEP是一種面向連接的、異步調(diào)用的應(yīng)用協(xié)議框架[4],在BEEP框架中沒有關(guān)于傳輸信息格式的強(qiáng)制性規(guī)定,但是它提供了全面的網(wǎng)絡(luò)安全機(jī)制。我們正是基于XML-RPC對(duì)遠(yuǎn)程過程調(diào)用中信息描述詳細(xì)而完整的定義,在BEEP協(xié)議的安全傳輸框架下構(gòu)建了安全的基于XML-RPC的通信技術(shù),并使用它來解決不同安全組件之間的通信問題。
在進(jìn)行數(shù)據(jù)交換時(shí),安全聯(lián)動(dòng)協(xié)議分為3個(gè)階段:連接建立、數(shù)據(jù)傳輸和連接關(guān)閉。
(1)連接建立:當(dāng)不同的安全組件之間通過BEEP協(xié)議建立一個(gè)BEEP會(huì)話來通信,BEEP會(huì)話又可以建立一個(gè)或多個(gè)BEEP通道。當(dāng)一個(gè)安全組件A同另一個(gè)安全組件B之間建立通信,它應(yīng)該首先初始化一個(gè)BEEP會(huì)話,然后打開一個(gè)BEEP通道0。BEEP會(huì)話建立后,提供必需的安全身份認(rèn)證特性的SASL配置文件和TLS配置文件應(yīng)該最初協(xié)商。成功地完成BEEP配置文件SASL和TLS的協(xié)商后,取得SASL協(xié)議和TLS協(xié)議的支持。交換自定義協(xié)議的“Greeting”信息,啟動(dòng)自定義協(xié)議通道,連接完成。
(2)數(shù)據(jù)傳輸:安全組件間通過BEEP會(huì)話通信時(shí),打開一個(gè)或多個(gè)使用自定義協(xié)議配置文件的協(xié)議通道,進(jìn)行數(shù)據(jù)傳輸,當(dāng)進(jìn)行數(shù)據(jù)傳輸時(shí),一邊作為客戶端發(fā)送數(shù)據(jù),一邊作為服務(wù)器端接收數(shù)據(jù),當(dāng)采用單個(gè)BEEP會(huì)話、多個(gè)通道的形式時(shí),將對(duì)聯(lián)動(dòng)信息進(jìn)行分類和優(yōu)先級(jí)排隊(duì),這樣方便了安全組件間數(shù)據(jù)的傳輸。
(3)連接關(guān)閉:安全組件在很多不同的情況下,如處理中出現(xiàn)錯(cuò)誤,可能選擇關(guān)閉BEEP通道。要關(guān)閉一個(gè)通道,安全組件就在通道0上發(fā)送一個(gè)說明那個(gè)通道會(huì)被關(guān)閉的“close”元素。
圖1描述了基于XML-RPC,在BEEP通信框架下實(shí)現(xiàn)的網(wǎng)絡(luò)安全管理平臺(tái)(如可以是IDS)和網(wǎng)絡(luò)安全組件(如更改防火墻的ACL等)之間穿越防火墻的通信過程。
如圖1所示,BEEP協(xié)議的核心僅僅是一個(gè)通信框架,映射在TCP協(xié)議[5]之上的BEEP協(xié)議實(shí)現(xiàn)對(duì)通道的管理,通信雙方通過發(fā)送問候信息進(jìn)行配置協(xié)商。如果雙方都支持Tunnel配置、安全相關(guān)配置和XML-RPC配置,便實(shí)現(xiàn)了XML-RPC在BEEP Tunnel模式下的安全傳輸。同時(shí)根據(jù)協(xié)商的不同安全配置可以提供不同的安全機(jī)制,滿足Internet上安全的多樣化需求。BEEP通信框架已經(jīng)提供了完整的通信框架和安全機(jī)制,所以基于XML-RPC的技術(shù)的關(guān)鍵是編寫出能夠應(yīng)用在BEEP下的XML-RPC配置文件。XML-RPC是針對(duì)遠(yuǎn)程過程調(diào)用而設(shè)計(jì)的,和傳統(tǒng)的技術(shù)相比:
首先,繼承了XML良好的平臺(tái)兼容性,其次,由于沒有考慮安全性等復(fù)雜問題,避免了大而全的實(shí)現(xiàn),簡(jiǎn)化了代碼的實(shí)施和代碼出現(xiàn)漏洞的可能性。本文利用Beepcore0.9.08軟件包,通過Java語(yǔ)言來實(shí)現(xiàn)XML-RPC配置和BEEP通信框架下的通信機(jī)制、安全配置、隧道配置形成了完整的不同安全組件通信技術(shù),這種信息描述、通信機(jī)制、安全機(jī)制以及工作模式的模塊化實(shí)現(xiàn),不僅解決了不同安全組件間的通信問題,而且適用于所有Internet環(huán)境下穿越防火墻的分布式通信。
4 基于XML-RPC的安全組件通信技術(shù)分析
從性能角度分析,XML-RPC經(jīng)過封裝以松耦合方式實(shí)現(xiàn)分布式傳輸,由于增加了大量標(biāo)記,與基于二進(jìn)制傳輸?shù)膫鹘y(tǒng)分布式技術(shù)相比,效率相對(duì)較低。但是對(duì)于跨越Internet的小數(shù)據(jù)量傳輸(例如策略信息,告警信息,審計(jì)信息等),XML-RPC完全可以勝任。
從安全角度上分析:(1)本文所采用的XML-RPC構(gòu)建在BEEP安全通信框架上,通信的安全機(jī)制通過引用配置文件的方式進(jìn)行模塊化,在實(shí)際應(yīng)用中可根據(jù)需求選擇不同的安全機(jī)制;(2)XML-RPC通過BEEP的Tunnel模式穿越防火墻,對(duì)防火墻完全透明,突破了其他通信機(jī)制僅適用于Intranet的局限性。
從實(shí)現(xiàn)復(fù)雜度分析:(1)XML-RPC不要求在一個(gè)方法被調(diào)用前必須知道服務(wù)器的標(biāo)識(shí),服務(wù)器能夠在一個(gè)調(diào)用里被標(biāo)識(shí),這是基于XML的遠(yuǎn)程過程調(diào)用的特點(diǎn);(2)信息描述機(jī)制、通信機(jī)制、安全機(jī)制以及工作模式在實(shí)現(xiàn)上相互獨(dú)立,避免了傳統(tǒng)的技術(shù)中安全機(jī)制和現(xiàn)有網(wǎng)絡(luò)安全機(jī)制間功能上的重復(fù)和沖突問題;(3)模塊化的設(shè)計(jì)降低了開發(fā)復(fù)雜性同時(shí)減少代碼可能的漏洞,增加了代碼的復(fù)用性,方便了對(duì)信息描述機(jī)制、傳輸機(jī)制、安全機(jī)制和工作模式的獨(dú)立改動(dòng)和升級(jí)。
5 結(jié)束語(yǔ)
本文通過將XML-RPC構(gòu)建在BEEP安全通信框架上,設(shè)計(jì)并實(shí)現(xiàn)了一種安全組件之間的通信技術(shù),解決了不同安全組件之間需要穿越防火墻通信的問題。這種將信息描述機(jī)制、傳輸機(jī)制、安全機(jī)制和工作模式等功能進(jìn)行整合,而功能模塊又相互獨(dú)立實(shí)現(xiàn),模塊間可以互相協(xié)調(diào),功能上互不重復(fù)和沖突的技術(shù),正是下一代應(yīng)用協(xié)議發(fā)展的要求。基于XML的遠(yuǎn)程過程調(diào)用技術(shù)為不同的安全組件通信技術(shù)擴(kuò)展到Internet領(lǐng)域提供了一種思路。
參考文獻(xiàn):
[1] Buchheim T, Erlinger M, Feinstein B,et al. Implementing the Intrusion Detection Exchange Protocol[C].17th Annual Computer Security Applications Conference,2001-12.
[2]Winer D. XML-RPC Specification[EB/OL].http://www.xmlrpc.com/spec.
[3]Rose M T. The Blocks Extensible Exchange Protocol Core[S]. RFC3080,2001.
[4]RFC Draft.BEEP Tunnel 04[EB/OL].http://www.ieft.org.
投稿日期:2006-12-1
作者簡(jiǎn)介:崔瑩,女,副教授,研究方向:計(jì)算機(jī)教育、計(jì)算機(jī)安全。