基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)安全架構(gòu)的研究
1 引 言
本文引用地址:http://butianyuan.cn/article/89002.htm隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)正影響并改變著人們生活的方方面面,現(xiàn)有的傳統(tǒng)網(wǎng)絡(luò)的功能單一而封閉,對(duì)網(wǎng)絡(luò)內(nèi)部結(jié)點(diǎn)的功能開發(fā)很少,服務(wù)只能在端系統(tǒng)實(shí)現(xiàn),使現(xiàn)有服務(wù)的優(yōu)化和擴(kuò)展、新服務(wù)的開發(fā)等受到很大的限制。因此DARPA(美國(guó)國(guó)防部高級(jí)研究計(jì)劃署)提出一種新型的網(wǎng)絡(luò)體系結(jié)構(gòu)——主動(dòng)網(wǎng)絡(luò)。而具有跨平臺(tái)移動(dòng)機(jī)制的移動(dòng)代理技術(shù)為計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中的許多領(lǐng)域提供了新的解決方案,特別是移動(dòng)代理技術(shù)與主動(dòng)網(wǎng)絡(luò)的結(jié)合正在逐步受到關(guān)注,但相應(yīng)的安全問(wèn)題日益突出。
本文主要以移動(dòng)代理系統(tǒng)的安全問(wèn)題和主動(dòng)網(wǎng)絡(luò)安全的問(wèn)題來(lái)展開,提出一種基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)安全架構(gòu),并給出了一些相應(yīng)的策略。
2 基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)安全問(wèn)題
2.1 移動(dòng)代理
移動(dòng)代理是能在異構(gòu)網(wǎng)絡(luò)主機(jī)之間自主地進(jìn)行遷移的有名字的程序,程序能自主地決定在什么時(shí)候遷移到什么地方。在移動(dòng)時(shí),它能在程序運(yùn)行的任意點(diǎn)上掛起,然后遷移到另一臺(tái)主機(jī)上重新開始或接著這一點(diǎn)繼續(xù)往下執(zhí)行,最后返回結(jié)果和消息。移動(dòng)代理也能克隆自己或者產(chǎn)生子代理,遷移到其他主機(jī)上以共同協(xié)作完成復(fù)雜的任務(wù)。移動(dòng)代理系統(tǒng)是指能創(chuàng)建、解釋、執(zhí)行、傳送和終止代理的平臺(tái),它由名稱和地址惟一標(biāo)志。每個(gè)系統(tǒng)都可以運(yùn)行多個(gè)代理。代理通過(guò)和主機(jī)服務(wù)進(jìn)行交互來(lái)獲得所需的服務(wù)。移動(dòng)代理的2大特點(diǎn)就是移動(dòng)性和自主性。
2.2 MANet主動(dòng)節(jié)點(diǎn)的結(jié)構(gòu)
在MANet中,每個(gè)內(nèi)部網(wǎng)絡(luò)結(jié)點(diǎn)都是一個(gè)具有計(jì)算能力的主動(dòng)結(jié)點(diǎn)。每個(gè)主動(dòng)結(jié)點(diǎn)不僅具有有相當(dāng)功能的處理器,而且也具備由多種存儲(chǔ)設(shè)備組成的多級(jí)存儲(chǔ)系統(tǒng)。實(shí)際上它是一個(gè)由網(wǎng)絡(luò)硬件設(shè)備、處理機(jī)以及相應(yīng)的軟件所組成的系統(tǒng),如圖1所示。虛擬網(wǎng)絡(luò)層完成傳統(tǒng)網(wǎng)絡(luò)中數(shù)據(jù)鏈路層的功能,它通過(guò)網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)包,對(duì)數(shù)據(jù)包的格式進(jìn)行識(shí)別,并依據(jù)數(shù)據(jù)包格式對(duì)其進(jìn)行分解,然后將數(shù)據(jù)包所攜帶的代碼和數(shù)據(jù)等傳送給移動(dòng)代理運(yùn)行環(huán)境MAE,MAE將程序代碼作為代理裝載運(yùn)行。代理實(shí)現(xiàn)的是客戶化的協(xié)議程序,它在運(yùn)行過(guò)程中可能還要和基礎(chǔ)網(wǎng)絡(luò)服務(wù),部分進(jìn)行交互,調(diào)用最基本的網(wǎng)絡(luò)服務(wù),如獲取本地以及相鄰結(jié)點(diǎn)的信息、下一轉(zhuǎn)發(fā)結(jié)點(diǎn)的地址以及本地結(jié)點(diǎn)狀態(tài)的存取等。經(jīng)過(guò)代理處理后的數(shù)據(jù)交由虛擬網(wǎng)絡(luò)層重新封裝,然后通過(guò)網(wǎng)絡(luò)設(shè)備發(fā)送給下一個(gè)主動(dòng)網(wǎng)絡(luò)結(jié)點(diǎn)(或幾個(gè)網(wǎng)絡(luò)結(jié)點(diǎn))。
MAE是一個(gè)基本的移動(dòng)代理執(zhí)行環(huán)境,它從虛擬網(wǎng)絡(luò)層接收數(shù)據(jù)包并對(duì)其進(jìn)行分析和分解,將其中的程序代碼裝載執(zhí)行。同時(shí),它還要監(jiān)視代理的運(yùn)行狀態(tài),在要執(zhí)行的程序代碼尚未裝載時(shí),通過(guò)CodeBroker搜索并裝載相應(yīng)的代碼塊。MAE也要為主動(dòng)網(wǎng)絡(luò)系統(tǒng)的安全性提供諸如身份驗(yàn)證、授權(quán)以及代碼的安全運(yùn)行等有效的支持?;A(chǔ)網(wǎng)絡(luò)服務(wù)主要是為主動(dòng)數(shù)據(jù)包提供最基本的網(wǎng)絡(luò)協(xié)議功能,如本地環(huán)境的存取、路由控制以及轉(zhuǎn)發(fā)等。它有效地減少了數(shù)據(jù)包所攜帶代碼的長(zhǎng)度,提高了主動(dòng)網(wǎng)絡(luò)系統(tǒng)的性能。甚至較為上層的常用網(wǎng)絡(luò)協(xié)議,如TCP,UDP和IP等,也可以作為基礎(chǔ)網(wǎng)絡(luò)服務(wù)的一部分以實(shí)現(xiàn)與傳統(tǒng)網(wǎng)絡(luò)的兼容性和提高主動(dòng)網(wǎng)絡(luò)的性能。
2.3 基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)系統(tǒng)
MANet(Mobile Agents Based Active Network)是一個(gè)以移動(dòng)代理系統(tǒng)為基礎(chǔ),通過(guò)將主動(dòng)數(shù)據(jù)包封裝成移動(dòng)代理來(lái)實(shí)現(xiàn)利用移動(dòng)代理系統(tǒng)處理主動(dòng)網(wǎng)絡(luò)數(shù)據(jù)包的主動(dòng)網(wǎng)絡(luò)。利用移動(dòng)代理來(lái)實(shí)現(xiàn)主動(dòng)數(shù)據(jù)包的封裝和運(yùn)行,不僅可以充分利用移動(dòng)代理的自主性和可移動(dòng)性,而且提供了更好的主動(dòng)網(wǎng)絡(luò)可編程性和靈活性。將主動(dòng)網(wǎng)絡(luò)數(shù)據(jù)包所攜帶的程序和數(shù)據(jù)封裝成移動(dòng)代理,使得數(shù)據(jù)包具有很好的主動(dòng)性和處理能力。例如,主動(dòng)數(shù)據(jù)包可以利用代理的克隆及子代理的生成和分發(fā)來(lái)實(shí)現(xiàn)多路分發(fā)等。另一方面,移動(dòng)代理系統(tǒng)也提供了一些相對(duì)于主動(dòng)網(wǎng)絡(luò)來(lái)說(shuō)多余的功能,例如,移動(dòng)代理能在程序運(yùn)行的任意點(diǎn)上掛起,并在遷移到另一臺(tái)主機(jī)后接著這一點(diǎn)繼續(xù)往下執(zhí)行。為了提高整個(gè)主動(dòng)網(wǎng)絡(luò)系統(tǒng)的性能,要針對(duì)主動(dòng)網(wǎng)絡(luò)的特性對(duì)移動(dòng)代理系統(tǒng)進(jìn)行修改,以去除不必要的功能,從而提高系統(tǒng)的性能。事實(shí)上,包括本文系統(tǒng)在內(nèi)的許多基于Java的移動(dòng)代理系統(tǒng),如Aglets,Odyssey,Dagent等,由于Java語(yǔ)言本身所存在的程序運(yùn)行狀態(tài)的獲取問(wèn)題,都未能實(shí)現(xiàn)斷點(diǎn)式的代理遷移。此外,支持主動(dòng)數(shù)據(jù)包之間的通信對(duì)于主動(dòng)網(wǎng)絡(luò)來(lái)說(shuō),開銷也太大。
2.4 基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)的安全性問(wèn)題
把具有自主性和移動(dòng)性的移動(dòng)代理系統(tǒng)放置在開放性極高的主動(dòng)網(wǎng)絡(luò)中,其安全隱患是不言而喻的,因此安全性能成為衡量基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)的首要指標(biāo)。
根據(jù)移動(dòng)代理在主動(dòng)網(wǎng)絡(luò)中的位置,我們可以把主動(dòng)網(wǎng)絡(luò)的安全問(wèn)題分為2個(gè)方面:一是保護(hù)主動(dòng)結(jié)點(diǎn)不受惡意代理的侵犯;二是代理在網(wǎng)絡(luò)中傳輸過(guò)程中,保護(hù)代理不受惡意主動(dòng)網(wǎng)絡(luò)結(jié)點(diǎn)的竊聽或拒絕。
迄今為止,移動(dòng)代理安全領(lǐng)域所做的研究工作為主動(dòng)結(jié)點(diǎn)運(yùn)行環(huán)境的安全提供了基礎(chǔ),但是由于主動(dòng)網(wǎng)絡(luò)系統(tǒng)的安全性還存在許多缺陷和不足以及移動(dòng)代理是在應(yīng)用層主動(dòng)節(jié)點(diǎn)上運(yùn)行的,需要使用主機(jī)資源,并對(duì)其進(jìn)行存儲(chǔ),因此安全解決方案應(yīng)該是雙向的,既要保證系統(tǒng)不受惡意的代理和主動(dòng)包的攻擊,也要保證代理和主動(dòng)包不受執(zhí)行環(huán)境(EE)的非法侵害。針對(duì)以上的安全問(wèn)題,本文提出一些相應(yīng)的策略。
帶有主動(dòng)包的移動(dòng)代理在網(wǎng)絡(luò)中傳輸,利用現(xiàn)在安全移動(dòng)代理可以確保移動(dòng)代理不受其他惡意網(wǎng)絡(luò)結(jié)點(diǎn)的竊聽或拒絕。比如通過(guò)加密和數(shù)字簽名技術(shù)可以確保主動(dòng)分組的安全。下面重點(diǎn)討論在移動(dòng)代理停留在主動(dòng)結(jié)點(diǎn)中,保護(hù)主動(dòng)節(jié)點(diǎn)不受惡意代理的侵犯,提出一些相應(yīng)的策略。
3 基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)安全框架模型
基于移動(dòng)代理的主動(dòng)網(wǎng)絡(luò)MABAN(Mobile AgentBased Active Network)是以移動(dòng)代理系統(tǒng)為基礎(chǔ),通過(guò)將主動(dòng)封包程序封裝成移動(dòng)代理,從而實(shí)現(xiàn)利用移動(dòng)代理系統(tǒng)來(lái)處理主動(dòng)封包的網(wǎng)絡(luò)。MABAN的可移動(dòng)代碼在主動(dòng)結(jié)點(diǎn)上運(yùn)行不可避免的引入了安全性問(wèn)題。MABAN的安全問(wèn)題主要包括主動(dòng)結(jié)點(diǎn)、主動(dòng)封包和端用戶等方面。本文主要研究主動(dòng)結(jié)點(diǎn)的安全問(wèn)題,而主動(dòng)封包和端用戶的安全性研究則是更具挑戰(zhàn)性的一項(xiàng)工作。
為解決MABAN中主動(dòng)結(jié)點(diǎn)的安全問(wèn)題,現(xiàn)設(shè)計(jì)一個(gè)通用的MABAN結(jié)點(diǎn)的安全性框架MANSF(MobileAgent-Based Active Network node Security Framework)。此規(guī)范符合主動(dòng)網(wǎng)絡(luò)安全工作組提出的主動(dòng)網(wǎng)絡(luò)結(jié)點(diǎn)的安全規(guī)范,而且具有可擴(kuò)展性和通用性等特點(diǎn)。MANSF結(jié)點(diǎn)的安全框架圖見圖2。
由圖2可見,MANSF主要包括認(rèn)證授權(quán)模塊,移動(dòng)代理執(zhí)行環(huán)境及訪問(wèn)控制模塊。MANSF使用上述模塊處理主動(dòng)封包的流程是:
(1)封包到達(dá)結(jié)點(diǎn),進(jìn)入網(wǎng)絡(luò)設(shè)備通道,如果是主動(dòng)封包,則轉(zhuǎn)入認(rèn)證授權(quán)模塊,否則在虛擬網(wǎng)絡(luò)層處理;
(2)認(rèn)證授權(quán)模塊對(duì)封包數(shù)據(jù)進(jìn)行完整性檢查,并協(xié)同域授權(quán)中心對(duì)用戶身份進(jìn)行認(rèn)證,提取代碼,轉(zhuǎn)入MAEE;
(3)MAEE執(zhí)行移動(dòng)代理,實(shí)現(xiàn)數(shù)據(jù)的客戶化定制,當(dāng)需要訪問(wèn)結(jié)點(diǎn)資源時(shí)轉(zhuǎn)入(4);
(4)訪問(wèn)控制模塊根據(jù)用戶的訪問(wèn)權(quán)限,決定是否滿足用戶的資源訪問(wèn)要求;
(5)用戶程序完成,結(jié)點(diǎn)將改動(dòng)過(guò)的數(shù)據(jù)重新封包并通過(guò)網(wǎng)絡(luò)設(shè)備通道發(fā)送給下一個(gè)結(jié)點(diǎn)。
3.1 認(rèn)證授權(quán)模塊
采用非對(duì)稱雙向認(rèn)證協(xié)議來(lái)解決移動(dòng)代理在主動(dòng)結(jié)點(diǎn)中的運(yùn)行安全性問(wèn)題:
站一站協(xié)議可以使通信雙方互相鑒證身份,較好地解決了傳輸數(shù)據(jù)的加密和中間插入攻擊。如果移動(dòng)代理能夠通過(guò)使用用戶的私有密鑰簽名,則站一站協(xié)議可以很好地解決鑒證和消息加密和摘要的工作。但是處于安全性考慮,不應(yīng)該讓移動(dòng)代理攜帶著它們用戶的私有密鑰在網(wǎng)絡(luò)中遷移。因?yàn)檫@種策略盡管可以使移動(dòng)代理在任一結(jié)點(diǎn)證明自己的身份,但不幸的是,它實(shí)際上在所有經(jīng)過(guò)的結(jié)點(diǎn)上暴露了它用戶的私有密鑰。該問(wèn)題在非對(duì)稱鑒證協(xié)議中用下述方式解決:
(1)當(dāng)一個(gè)移動(dòng)代理被用戶在某個(gè)主動(dòng)結(jié)點(diǎn)上啟動(dòng)后,本地文件系統(tǒng)使用移動(dòng)代理的私有密鑰對(duì)移動(dòng)代理的名字空間(Namespace)定義(文件)進(jìn)行加密(Sigm(Namespace)),產(chǎn)生移動(dòng)代理的活動(dòng)簽名(Agent ActivitySignature,AAS)。該簽名在該代理的整個(gè)生命周期中是保持不變的,它確切定義了該代理所要使用的各種資源。
(2)移動(dòng)代理不攜帶用戶的私有密鑰在網(wǎng)絡(luò)中遷移。
(3)移動(dòng)代理在與主動(dòng)結(jié)點(diǎn)的雙向鑒證中,只傳送其公開密鑰。由于本系統(tǒng)中的加/解密算法公開,即用私有密鑰進(jìn)行簽字,用公開密鑰進(jìn)行驗(yàn)證,所以在移動(dòng)代理與主動(dòng)結(jié)點(diǎn)的雙向鑒證中不必傳送解密算法,而只需傳送公開密鑰。
(4)移動(dòng)代理也有私有密鑰和公開密鑰。無(wú)論移動(dòng)代理還是用戶都可向認(rèn)證機(jī)構(gòu)申請(qǐng)自己的私有/公開密鑰。
采用這種非對(duì)稱雙向認(rèn)證協(xié)議很好地保護(hù)了移動(dòng)代理在網(wǎng)絡(luò)傳輸中不被惡意主動(dòng)結(jié)點(diǎn)入侵。
3.2 移動(dòng)代理執(zhí)行環(huán)境
MANSF使用Java作為編程語(yǔ)言,MAEE是一個(gè)基于Java的移動(dòng)代理執(zhí)行環(huán)境,運(yùn)行于JVM層上。這樣Java的安全特性就無(wú)縫地整合到MANSF中,同時(shí)它還要監(jiān)視代理的運(yùn)行狀態(tài),在要執(zhí)行的程序代碼尚未裝載時(shí),通過(guò)結(jié)點(diǎn)類裝載器搜索并裝載相應(yīng)的代碼塊。一個(gè)主動(dòng)結(jié)點(diǎn)可同時(shí)運(yùn)行多個(gè)MAEE,MAEE可同時(shí)執(zhí)行多個(gè)用戶代理,這是為了防止用戶代理之間相互攻擊,而采取的一種隔離措施.在不同的MAEE中執(zhí)行的用戶代理運(yùn)行于不同的空間,自然隔離,顯然不能相互攻擊。在相同的MAEE中,執(zhí)行的用戶代理采取以下措施來(lái)保護(hù):
(1)Java語(yǔ)言自身的安全性。Java語(yǔ)言是強(qiáng)類型的,Java類在自己的地址空間執(zhí)行,且不能使用指針,從而避免了用戶代理在執(zhí)行過(guò)程中任意引用內(nèi)存空間,攻擊別的代理。
(2)用戶代理使用嚴(yán)格的類型標(biāo)識(shí)來(lái)識(shí)別,類型標(biāo)識(shí)采用MD5(message digest algorithm 5,信息摘要算法)生成。用戶代理被授權(quán)以決定其處理。
(3)軟狀態(tài)存儲(chǔ)機(jī)制。每個(gè)代理的狀態(tài)數(shù)據(jù)被臨時(shí)性地存儲(chǔ),將需要共享狀態(tài)數(shù)據(jù)的幾個(gè)用戶代理組成一個(gè)“狀態(tài)域”,代理只能操作與其“狀態(tài)域”相關(guān)的狀態(tài)。
用戶代理在MAEE中執(zhí)行完畢后,MANE調(diào)用結(jié)點(diǎn)服務(wù),程序?qū)⑻幚砗蟮挠脩魯?shù)據(jù)、用戶代理、證書及用戶簽名等重新封包,通過(guò)虛擬網(wǎng)絡(luò)層通道繼續(xù)發(fā)送。移動(dòng)代理的執(zhí)行環(huán)境的安全問(wèn)題:可信任的執(zhí)行環(huán)境(如Java Card)。
3.3 基于角色的訪問(wèn)控制機(jī)制
主動(dòng)結(jié)點(diǎn)收到一個(gè)移動(dòng)代理后,要在它運(yùn)行之前確定該代理可以訪問(wèn)哪些資源。首先,主動(dòng)節(jié)點(diǎn)通過(guò)該移動(dòng)代理所攜帶的數(shù)字簽名確認(rèn)其身份,然后從管理者配置的安全策略中,檢索出該用戶對(duì)該代理?yè)碛械臋?quán)限。資源訪問(wèn)控制將利用這些信息在運(yùn)行時(shí)刻決定移動(dòng)代理是否可以訪問(wèn)某資源。授權(quán)給一個(gè)用戶的移動(dòng)代理可訪問(wèn)的資源,在MANet系統(tǒng)中,從移動(dòng)代理管理者的角度看有3類用戶,一是移動(dòng)代理的發(fā)送者,二是管理者,三是移動(dòng)代理旅行中其他主動(dòng)節(jié)點(diǎn)上的用戶。如果移動(dòng)代理管理者對(duì)移動(dòng)代理用戶比較信任,認(rèn)為不會(huì)出現(xiàn)惡意的行為,就分配較大的權(quán)力給該用戶;反之,如果移動(dòng)代理用戶是一個(gè)不可信的甚至是匿名的,那么移動(dòng)代理管理者只能分配很少的權(quán)力給該用戶,以確保安全。
4 結(jié) 語(yǔ)
上述的安全框架的策略部分可用基于Java安全策略實(shí)現(xiàn),主要是通過(guò)安全管理器的策略進(jìn)行替換來(lái)擴(kuò)展Java安全模型,使之適合MANSF的需要。
評(píng)論