[摘要] 同傳統(tǒng)的協(xié)作式工作平臺(tái)或工作系統(tǒng)相比,電子商務(wù)實(shí)驗(yàn)室對(duì)安全性具有更高的要求。本文著重介紹了軟件Agent技術(shù),討論了在電子商務(wù)實(shí)驗(yàn)室中對(duì)各個(gè)實(shí)驗(yàn)平臺(tái)利用軟件Agent技術(shù)來提高系統(tǒng)安全性的問題。
[關(guān)鍵詞]Agent 電子商務(wù)實(shí)驗(yàn)室 安全設(shè)計(jì)
電子商務(wù)實(shí)驗(yàn)室旨在建立一個(gè)Internet環(huán)境下的電子商務(wù)模擬環(huán)境,實(shí)現(xiàn)情景教學(xué)。若想成功地部署電子商務(wù)實(shí)驗(yàn)室,必須解決三個(gè)關(guān)鍵問題:高可用性、伸縮性和安全性。而安全性是其中最重要的環(huán)節(jié),因此本文主要對(duì)電子商務(wù)實(shí)驗(yàn)室的安全性進(jìn)行闡述。
一、電子商務(wù)實(shí)驗(yàn)室的安全需求
本課題所設(shè)計(jì)的系統(tǒng)有七個(gè)實(shí)驗(yàn)平臺(tái)組成,它們分別是:一般教學(xué)、B2C、C2C、B2B、物流實(shí)驗(yàn)平臺(tái),以及電子銀行和CA認(rèn)證平臺(tái)。每個(gè)平臺(tái)相對(duì)獨(dú)立又有一定關(guān)聯(lián),如B2C業(yè)務(wù)流程的完成需要結(jié)合CA認(rèn)證、電子銀行和物流管理等,因此不同平臺(tái)安全需求也是多方面的。如何保證實(shí)驗(yàn)室系統(tǒng)交易的安全性、對(duì)個(gè)人信息提供機(jī)密性保障、認(rèn)證交易雙方的合法身份、如何保證數(shù)據(jù)的完整性和交易的不可否認(rèn)性等,是實(shí)驗(yàn)室所需解決的核心問題。
二、電子商務(wù)實(shí)驗(yàn)室安全解決方案
當(dāng)前,電子商務(wù)系統(tǒng)設(shè)計(jì)的架構(gòu)大多采用B/S結(jié)構(gòu)。B/S環(huán)境中各種安全功能都由服務(wù)器集中實(shí)現(xiàn),因此服務(wù)器容易成為系統(tǒng)的安全瓶頸。服務(wù)器一旦被人入侵或出現(xiàn)問題,將對(duì)整個(gè)系統(tǒng)的安全造成嚴(yán)重的威脅。且不同子系統(tǒng)具有不同的安全需求,由服務(wù)器統(tǒng)一協(xié)調(diào)和處理它們之間的安全策略將大大加重服務(wù)器的負(fù)擔(dān)。
當(dāng)前的大多數(shù)電子商務(wù)系統(tǒng)都采用了結(jié)合硬件防火墻、軟件防火墻和防病毒軟件等。這些措施只提供了被動(dòng)的、有限的安全防范能力,并不能滿足多模塊、多子系統(tǒng)的電子商務(wù)實(shí)驗(yàn)室的要求。并且這種解決方案缺少主動(dòng)性和自我維護(hù)能力。
利用軟件Agent的智能處理能力來解決各模塊間的安全通信是一個(gè)很好的選擇,軟件Agent是一種計(jì)算機(jī)程序,具有反應(yīng)性、自治性和目標(biāo)性等特點(diǎn),能夠獨(dú)立地跟環(huán)境進(jìn)行交互或代表用戶完成給定的目標(biāo)。它不僅能對(duì)各模塊的通信狀況進(jìn)行高度監(jiān)控,而且各Agent能多層面的獨(dú)立實(shí)現(xiàn),各Agent之間也能相互協(xié)調(diào)、統(tǒng)一調(diào)度。
三、基于軟件Agent的電子商務(wù)實(shí)驗(yàn)室安全設(shè)計(jì)
本人主持研究河北大學(xué)教改青年基金項(xiàng)目——基于LINUX的電子商務(wù)實(shí)驗(yàn)室(項(xiàng)目編號(hào)為:0575),此實(shí)驗(yàn)室服務(wù)器連接校園網(wǎng),校園網(wǎng)又和互聯(lián)網(wǎng)相連,因此服務(wù)器較容易成為被攻擊或入侵的對(duì)象,所以本系統(tǒng)利用Agent技術(shù)來提高實(shí)驗(yàn)室的安全性。Agent可對(duì)用戶的請(qǐng)示進(jìn)行過濾,減少用戶直接訪問實(shí)驗(yàn)室服務(wù)器所帶來的安全風(fēng)險(xiǎn),同時(shí)可更方便地實(shí)現(xiàn)一些動(dòng)態(tài)的安全策略。
1.基于軟件Agent的安全設(shè)計(jì)模型
本實(shí)驗(yàn)室的Agent體系設(shè)計(jì)是分層次、分等級(jí)的結(jié)構(gòu),層次或等級(jí)根據(jù)系統(tǒng)的功能來劃分,如圖1所示。
圖1 Agent的安全等級(jí)結(jié)構(gòu)
每個(gè)平臺(tái)由一個(gè)安全監(jiān)控Agent負(fù)責(zé)管理本平臺(tái)的安全,如有問題通知報(bào)警Agent,報(bào)警Agent會(huì)及時(shí)反饋給Agent安全管理中心的Agent進(jìn)行相應(yīng)處理,比如:退出登陸重新驗(yàn)證身份等。身份認(rèn)證Agent負(fù)責(zé)對(duì)訪問用戶進(jìn)行身份驗(yàn)證;授權(quán)Agent根據(jù)對(duì)已經(jīng)通過身份認(rèn)證Agent的用戶進(jìn)行授權(quán),不同類型的登陸用戶授權(quán)策略不同,實(shí)驗(yàn)的角色不同,授權(quán)的策略也不同,比如,B2C實(shí)驗(yàn)中,一位剛剛初始化的Customer(學(xué)生登錄身份),授權(quán)內(nèi)容中將包括B2C的買方界面,并且授權(quán)Agent指示電子銀行模塊自動(dòng)給實(shí)驗(yàn)者初始資產(chǎn)一萬元作為實(shí)驗(yàn)的資本,當(dāng)然還有其他一些授權(quán);跟蹤Agent將全程跟蹤用戶的操作并詳細(xì)記錄到日志文件。
2.軟件Agent的安全解決方案
移動(dòng)Agent需要在不同的主機(jī)上遷移,實(shí)驗(yàn)室服務(wù)器是LINUX環(huán)境,而客戶端往往是學(xué)生比較熟悉的windows操作環(huán)境,所以這里選擇跨平臺(tái)的J2EE開發(fā)本系統(tǒng)。J2EE不僅提供了一套安全機(jī)制,而且移動(dòng)Agent中的許多功能在Java中有直接的對(duì)應(yīng)實(shí)現(xiàn)。移動(dòng)Agent狀態(tài)的移動(dòng)可以用Java對(duì)象的串行化表示;Agent代碼的移動(dòng)用字節(jié)碼傳遞和加載;Agent運(yùn)行上下文可用方法的控制流表示等等,具體的方案有以下幾點(diǎn):
(1)利用Java的字節(jié)碼驗(yàn)證器保證Agent的正確性。字節(jié)碼驗(yàn)證器可以檢測Agent的程序代碼是否被破壞,然后采取相應(yīng)的措施。
(2)利用Java的類裝載器、命名空間和線程組來實(shí)現(xiàn)動(dòng)態(tài)Agent的隔離??梢园褟牟煌瑏碓摧d入的類隔離到不同的命名空間中,一個(gè)Agent不可能用它自己的類冒名頂替另一Agent的類,這樣可以防止破壞性代碼訪問正常的代碼,從而保證了Agent之間的安全。另外,每當(dāng)一個(gè)新Agent到達(dá)后,就為其建立一個(gè)線程組。任何執(zhí)行該Agent的線程其組號(hào)是相同的。那么,只要為這個(gè)線程組分配權(quán)限,即為該Agent分配了權(quán)限,就實(shí)現(xiàn)了Agent與主機(jī)的隔離。
(3)采用數(shù)字簽名和加密算法實(shí)現(xiàn)Agent的傳輸與驗(yàn)證。系統(tǒng)對(duì)外來的Agent的身份進(jìn)行數(shù)字簽名驗(yàn)證,確定其是否為可信Agent。同時(shí)還可以利用Java加密擴(kuò)展機(jī)制和Java安全套接字?jǐn)U展機(jī)制結(jié)合來實(shí)現(xiàn)將Agent代碼數(shù)據(jù)進(jìn)行壓縮后加密處理,經(jīng)過壓縮不僅降低了網(wǎng)絡(luò)流量,而且也大大增加了破譯該數(shù)據(jù)的難度。
3.軟件Agent的實(shí)現(xiàn)
本系統(tǒng)的軟件Agent的實(shí)現(xiàn)平臺(tái)采用Aglet。Aglet為開放源碼項(xiàng)目,用戶不用考慮侵權(quán)問題。Aglet完全由Java編寫,具有很高的移植性。Aglet包含了一個(gè)運(yùn)行移動(dòng)Agent的服務(wù)器和一套類庫,基于它開發(fā)者可以進(jìn)一步開發(fā)各種Agent的應(yīng)用。Aglet的系統(tǒng)架構(gòu)主要分為四個(gè)階段,如圖2所示。
圖2 Aglet系統(tǒng)架構(gòu)
當(dāng)一個(gè)正在執(zhí)行的Aglet將自己送到遠(yuǎn)程端口時(shí),會(huì)對(duì)Aglet Runtime層發(fā)出請(qǐng)求,然后把Aglet的狀態(tài)與程序代碼序列化(serialized )成字節(jié)數(shù)組(byte array),若是請(qǐng)求成功,系統(tǒng)會(huì)將Aglet的執(zhí)行動(dòng)作結(jié)束,然后將序列化數(shù)組傳送至ATCI(Agent Transport and Communication Interface)層處理。
Agent安全管理中心統(tǒng)一管理各個(gè)安全Agent的基本行為:如產(chǎn)生(Create)、復(fù)制(Clone)Agents ,或分派(Dispatch)Agents 到遠(yuǎn)端工作站、召回(Retract)遠(yuǎn)端的Agents,或暫停(Deactive)、喚醒(Active)Agents,以及移除(Dispose)Agents等,如圖3所示,不管是何種Agent均繼承Aglet類,可以通過覆蓋父類的方法來實(shí)現(xiàn)自己的“特殊要求”。
圖3 Agent的對(duì)象模型
各監(jiān)控Agent由管理中心分派到各個(gè)實(shí)驗(yàn)平臺(tái)進(jìn)行監(jiān)控,等客戶端做完實(shí)驗(yàn)后正常退出,然后移除Agent監(jiān)控對(duì)象,如果出現(xiàn)安全問題,傳遞消息給報(bào)警Agent對(duì)象,再交由Agent管理中心負(fù)責(zé)進(jìn)一步處理。
參考文獻(xiàn):
[1]Jian Li,Guo-yin Zhang Gu, A Workflow System Based Architecture for Network Attack Resistant System,GCC2003, LNCS3032, pp.980~983,2004
[2]Roberto A. Flores, Robert C. Kremer: Modeling Agent Conversations for Action. Computational Intelligence, Special Issue on Agent Communication Languages, Blackwell Publishers, Vol.18, No.2, May, 2002: 32~85
[3]邊海鋒劉祖照等:移動(dòng)Agent及其在電子商務(wù)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件.2005,22(9):118~120