李 纓,胡寶芳
移動(dòng)代理是一段自主程序,可以在異構(gòu)網(wǎng)絡(luò)中按照自己的意愿從一臺(tái)計(jì)算機(jī)遷移到另一臺(tái)計(jì)算機(jī)[1]。移動(dòng)代理技術(shù)以其在分布式應(yīng)用方面的諸多優(yōu)越性越來越多的受到人們的關(guān)注,但同時(shí)人們也看到了它所帶來的問題,特別是安全性問題。
移動(dòng)代理系統(tǒng)執(zhí)行過程中要求主機(jī)為所運(yùn)行的移動(dòng)代理提供執(zhí)行環(huán)境,因而這些主機(jī)可能會(huì)受到惡意代理的攻擊,同時(shí),移動(dòng)代理系統(tǒng)也要保證在主機(jī)上運(yùn)行的移動(dòng)代理的安全,以防惡意主機(jī)的攻擊,所以設(shè)計(jì)移動(dòng)代理系統(tǒng)時(shí),安全性是主要考慮的問題之一[2]。 盡管已經(jīng)提出了很多關(guān)于移動(dòng)代理系統(tǒng)安全性和可靠性的解決方案,但是安全性和可靠性至今并未完全解決。
本文研究的目的是建立安全有效的移動(dòng)代理體系結(jié)構(gòu)。該結(jié)構(gòu)中有一個(gè)類似跟蹤代理的Tracker和第三方認(rèn)證中心AC,通過跟蹤代理Tracker,代理發(fā)起者可及時(shí)獲得它所派遣的移動(dòng)代理的當(dāng)前位置和執(zhí)行狀態(tài),從而判斷移動(dòng)代理的當(dāng)前狀態(tài)是否正確,同樣,允許移動(dòng)代理在其上運(yùn)行的主機(jī)也可通過向跟蹤代理Tracker了解移動(dòng)代理的信息,并向第三方認(rèn)證中心AC請(qǐng)求驗(yàn)證代理來判斷移動(dòng)代理是否為惡意代理。
在現(xiàn)實(shí)生活中,某商家如果想派遣自己的業(yè)務(wù)員出去執(zhí)行任務(wù),為了防止業(yè)務(wù)員進(jìn)行違規(guī)操作,往往通過設(shè)置監(jiān)督員來進(jìn)行監(jiān)督,業(yè)務(wù)員每到達(dá)一個(gè)新的客戶處,都需向監(jiān)督員進(jìn)行匯報(bào),以接受監(jiān)督員的監(jiān)督,客戶也可通過向權(quán)威部門查詢來驗(yàn)證業(yè)務(wù)員的身份。
由此我們可以考慮構(gòu)建一個(gè)安全的基于跟蹤機(jī)制的移動(dòng)代理系統(tǒng)Tracker Agent System,該系統(tǒng)中有一個(gè)類似于權(quán)威部門的第三方認(rèn)證中心AC(該認(rèn)證中心是公鑰服務(wù)器和數(shù)字證書簽發(fā)權(quán)威機(jī)構(gòu)),移動(dòng)代理系統(tǒng)中的所有主機(jī)和移動(dòng)代理均需向AC進(jìn)行注冊(cè),以獲得AC頒發(fā)的數(shù)字證書。每臺(tái)發(fā)起移動(dòng)代理的服務(wù)器上都有一個(gè)靜態(tài)通信代理Tracker,Tracker負(fù)責(zé)維護(hù)其所發(fā)起的移動(dòng)代理的信息和代理遷移的上下文信息。
第三方認(rèn)證中心AC主要負(fù)責(zé):
1)管理每臺(tái)注冊(cè)主機(jī)的注冊(cè)信息。
2)為每臺(tái)注冊(cè)主機(jī)提供相互通信的密鑰 (Ks)。
3)為每個(gè)移動(dòng)代理提供數(shù)字證書。
4)當(dāng)移動(dòng)代理遷移時(shí)驗(yàn)證移動(dòng)代理的身份和完整性。
Tracker所維護(hù)的信息包括注冊(cè)信息、撤銷信息和查詢信息。Tracker主要負(fù)責(zé):
1)每臺(tái)代理發(fā)起者主機(jī)上的Tracker內(nèi)保存該主機(jī)所發(fā)起的所有移動(dòng)代理的注冊(cè)信息和當(dāng)前狀態(tài)。
2)每當(dāng)代理被創(chuàng)建或者到達(dá)一個(gè)新的遠(yuǎn)程主機(jī),它都會(huì)發(fā)送一個(gè)注冊(cè)信息給Tracker以告知其當(dāng)前位置信息。
3)每當(dāng)代理想從Tracker的數(shù)據(jù)庫(kù)中移除時(shí),它會(huì)發(fā)送一個(gè)撤銷信息,從而表明該代理已完成任務(wù)或者被撤銷,該代理將不再存在。
4)每當(dāng)代理之間進(jìn)行通信時(shí),如代理“A”想跟代理“B”進(jìn)行通信,代理“A”會(huì)發(fā)送一個(gè)查詢信息給代理發(fā)起者的Tracker,Tracker會(huì)返回“B”的信息給“A”,從而使代理間可以進(jìn)行通信。
在該系統(tǒng)中,如果Tracker出故障則全部代理信息將丟失,故必須保證Tracker的可靠性。我們提出將Tracker與移動(dòng)代理隔離開來,定義一個(gè)靜態(tài)中間代理Tracker Mediator(TM),任何代理如果想跟Tracker進(jìn)行通信必須經(jīng)過中間代理TM,代理并不知道Tracker的存在。為了進(jìn)一步提高Tracker的安全性,我們?cè)O(shè)置兩個(gè)完全相同的靜態(tài)通信代理Tracker(T’和T”),兩個(gè)代理互為備份,一旦一個(gè)發(fā)生故障,可立即從另一個(gè)中重新復(fù)制,TM每次同步向兩個(gè)Tracker提交信息。該移動(dòng)代理系統(tǒng)信息傳輸過程如圖1所示。
圖1 安全模型通信過程
按照移動(dòng)代理的生存周期,將Tracker AgentSystem的工作過程分為五個(gè)階段:初始化階段、Agent創(chuàng)建階段、代理遷移和驗(yàn)證階段、代理間通信階段和代理撤銷階段,下面逐一進(jìn)行介紹。
Host1創(chuàng)建代理前先創(chuàng)建靜態(tài)代理TM,TM在Host1上廣播其位置信息,以使所有代理可以獲得其信息并向其發(fā)送注冊(cè)信息。Host1創(chuàng)建靜態(tài)代理T’和T’, T’和T’的數(shù)據(jù)庫(kù)中包含Host1所創(chuàng)建的代理的名稱和信息的一一對(duì)應(yīng)關(guān)系。所有要?jiǎng)?chuàng)建Agent的主機(jī)都要在第三方認(rèn)證中心AC處注冊(cè),AC處擁有主機(jī)的公鑰信息。初始化如圖2所示。
圖2 初始化
主機(jī)創(chuàng)建移動(dòng)代理后,移動(dòng)代理會(huì)向靜態(tài)代理TM發(fā)送注冊(cè)Agent的信息,TM收到注冊(cè)信息后同時(shí)向T’和T’’轉(zhuǎn)發(fā)該注冊(cè)信息,T’和T’將該信息儲(chǔ)存到各自的數(shù)據(jù)庫(kù)。
移動(dòng)代理創(chuàng)建后,將移動(dòng)代理的信息和遷移路線中的下一站主機(jī)Host2的地址發(fā)送給第三方認(rèn)證中心AC, 第三方認(rèn)證中心AC收到后,會(huì)為該代理創(chuàng)建數(shù)字證書,并將該數(shù)字證書和Host2的公鑰發(fā)送給Host1。
Agent創(chuàng)建階段過程如圖3所示。
圖3 代理創(chuàng)建過程
主機(jī)Host1將AC頒發(fā)的數(shù)字證書用Agent A的下一站主機(jī)Host2的公鑰進(jìn)行加密,以保證該移動(dòng)代理遷移過程中數(shù)字證書未被惡意修改。Agent A帶著加密的數(shù)字證書和Host1上的靜態(tài)代理TM的信息遷移到Host2處。
Agent A遷移到主機(jī)Host2后,向Host1處的靜態(tài)代理TM發(fā)送到達(dá)Host2的注冊(cè)信息,TM將該信息同時(shí)轉(zhuǎn)發(fā)給T’和T’,并將數(shù)據(jù)庫(kù)中Agent A的位置狀態(tài)信息更改為Host2。
Host2將Agent A攜帶的數(shù)字證書用自己的私鑰進(jìn)行解密,并向AC發(fā)送請(qǐng)求驗(yàn)證信息,請(qǐng)求驗(yàn)證Agent A的身份和完整性,AC收到請(qǐng)求后驗(yàn)證該代理數(shù)字簽名的有效性。
代理可以跟其他代理進(jìn)行通信,位于遠(yuǎn)程主機(jī)Host N處的代理B想跟代理A進(jìn)行通信,代理B會(huì)向網(wǎng)絡(luò)內(nèi)廣播查找Agent A的創(chuàng)建者,Host1接收并處理該查找Tracker信息,并向Agent B返回Agent A的當(dāng)前信息,若查找不到相關(guān)信息,則表明Agent A未注冊(cè),該通信取消。
一旦代理完成任務(wù)或代理執(zhí)行過程中失敗,則將其撤銷以釋放Tracker數(shù)據(jù)庫(kù)空間。若準(zhǔn)備撤銷Agent A,Host1會(huì)向其TM發(fā)送撤銷A的消息,TM將該消息轉(zhuǎn)發(fā)給T’和T’,Agent A的相關(guān)信息全刪除后,Host1即可撤銷Agent A。
首先本文提出的方案有利于對(duì)移動(dòng)代理當(dāng)前狀態(tài)進(jìn)行實(shí)時(shí)追蹤,防止移動(dòng)代理遭受攻擊后變成惡意代理后危害主機(jī),可及時(shí)發(fā)現(xiàn)惡意代理。其次本文提出的安全方案通過CA中心對(duì)移動(dòng)代理數(shù)字證書進(jìn)行驗(yàn)證,并通過公鑰加密方案保證了數(shù)字證書傳輸過程中的安全性。最后該方案還使各移動(dòng)代理之間的通信變得更加方便,系統(tǒng)無需設(shè)定各移動(dòng)代理何時(shí)何地進(jìn)行交互,移動(dòng)代理之間無論何時(shí)進(jìn)行交互只需查詢Tracker即可完成。
為了評(píng)估本文提出的安全方案,我們對(duì)系統(tǒng)性能進(jìn)行了測(cè)試,我們采用6臺(tái)PC模擬實(shí)驗(yàn)環(huán)境,平臺(tái)采用Aglet2.0,設(shè)定100個(gè)移動(dòng)計(jì)算任務(wù),每個(gè)移動(dòng)計(jì)算任務(wù)在6臺(tái)PC上來回跑100次,最后返回發(fā)起主機(jī),6臺(tái)PC定時(shí)隨機(jī)修改其上運(yùn)行的移動(dòng)代理代碼即對(duì)移動(dòng)代理實(shí)施攻擊,改變移動(dòng)代理的下一站路徑,我們改變PC攻擊移動(dòng)代理的頻繁度,以此改變惡意代理數(shù)目,用此實(shí)驗(yàn)方案來測(cè)試移動(dòng)代理的迷路率。為了測(cè)試更趨近精準(zhǔn),實(shí)驗(yàn)設(shè)計(jì)中對(duì)于迷路的移動(dòng)代理若能返回發(fā)起主機(jī),則不進(jìn)行重發(fā),由于其路徑錯(cuò)誤,我們認(rèn)為其為不成功代理。
實(shí)驗(yàn)結(jié)果如表1所示。
表1 性能測(cè)試
通過表1我們可以看出,在沒有安全機(jī)制的情況下,隨著惡意移動(dòng)代理百分比的增加,移動(dòng)代理計(jì)算的迷路率成線性增加,但在有跟蹤機(jī)制的情況下,隨著惡意代理百分比的增加,移動(dòng)代理的迷路率明顯保持較低水平。通過該實(shí)驗(yàn)我們可是說該跟蹤機(jī)制在一定程度上提高了移動(dòng)代理系統(tǒng)的安全性。
本文提出了一種新型的基于跟蹤機(jī)制的移動(dòng)代理安全模型,在本文中對(duì)該系統(tǒng)的體系結(jié)構(gòu)和工作流程進(jìn)行了詳細(xì)論述,同時(shí)又通過安全性能分析證明了該系統(tǒng)的安全性,該安全系統(tǒng)解決了傳統(tǒng)移動(dòng)代理系統(tǒng)中移動(dòng)代理迷路和身份驗(yàn)證的問題,使現(xiàn)有的移動(dòng)代理系統(tǒng)更安全可靠。
[1] Maes P, Gunman R H, Moukas A G.Agents that buy and sell[J].Communication of the ACM, March 1999, 42(3):81-91.
[2] Antonio Corrad, Marco Cremonini, Rehecca Montanar,et al.Mobile Agent lntegritv for Electronic Commerce Application[J].Information Systems 1999, 24(6): 519-533.
[3] Hu Wei, Liu Yunchao, Zhao Qihong.A Protocol of Limiting the Execution Time of Mobile Agents on Malicious llosts[J].Computer Engineering.Januarv 2006,32(2): 167-169.
[4] 王汝傳, 李映, 徐小龍, 等.基于移動(dòng)代理的動(dòng)態(tài)路由算法研究[J].計(jì)算機(jī)學(xué)報(bào), 2005, 28(3): 420-426.