朱婷鴿
[摘要]提出一種將主動(dòng)網(wǎng)絡(luò)劃分成不同的域,在每一個(gè)域中設(shè)置代理,由代理出具主動(dòng)包進(jìn)入別的域的證書的新型主動(dòng)網(wǎng)絡(luò)安全模型。最后,與逐跳相比較看出,代理的引入節(jié)約包的傳送時(shí)間、空間開銷以及計(jì)算開銷。
[關(guān)鍵詞]主動(dòng)網(wǎng) 安全 代理 證書 逐跳
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0910068-02
一、引言
在傳統(tǒng)網(wǎng)絡(luò)中,交換設(shè)備以及網(wǎng)絡(luò)支持的協(xié)議和提供的服務(wù)都是預(yù)先固定的,已經(jīng)越來越滿足不了人們對(duì)個(gè)性化網(wǎng)絡(luò)服務(wù)的需求,為了解決這個(gè)問題,美國軍方高級(jí)研究部首先提出了AN(Active Networks,主動(dòng)網(wǎng))的概念[1]。它是由一組稱為主動(dòng)節(jié)點(diǎn)的網(wǎng)絡(luò)元素構(gòu)成,這些節(jié)點(diǎn)不僅具有傳統(tǒng)的存儲(chǔ)轉(zhuǎn)發(fā)功能,同時(shí)還有計(jì)算能力。主動(dòng)網(wǎng)的基本目的之一是允許用戶動(dòng)態(tài)的安裝自己的代碼到網(wǎng)絡(luò)節(jié)點(diǎn)上,以實(shí)現(xiàn)用戶定制的服務(wù)。與傳統(tǒng)網(wǎng)絡(luò)相比,主動(dòng)網(wǎng)更具有靈活性,但是它的安全性比傳統(tǒng)網(wǎng)絡(luò)要求更高。這是因?yàn)楫?dāng)用戶代碼在節(jié)點(diǎn)上執(zhí)行以完成用戶自己配置的協(xié)議或者別的服務(wù)時(shí),要求節(jié)點(diǎn)分配一定的資源給他們,而這些資源可能是節(jié)點(diǎn)的關(guān)鍵資源,在代碼執(zhí)行的同時(shí),節(jié)點(diǎn)狀態(tài)被修改,用戶包對(duì)節(jié)點(diǎn)構(gòu)成了一定的威脅;但是當(dāng)代碼在節(jié)點(diǎn)執(zhí)行的時(shí)候,節(jié)點(diǎn)也可以修改包內(nèi)的信息,節(jié)點(diǎn)也對(duì)用戶包構(gòu)成威脅。當(dāng)然他們也都可能受到惡意者的攻擊。
本文提出將主動(dòng)網(wǎng)絡(luò)劃分成不同的域,每個(gè)域是由具有相同的訪問控制策略和資源使用策略的節(jié)點(diǎn)組成,并且在每個(gè)域中設(shè)置一個(gè)代理;文中第二部分給出了主動(dòng)網(wǎng)中域劃分的說明;第三部分說明了用戶包在網(wǎng)絡(luò)中的傳輸;第四部分與逐跳進(jìn)行比較,得出引入代理的好處;最后一部分給出了結(jié)論。
二、主動(dòng)網(wǎng)的安全模型
(一)主動(dòng)網(wǎng)中域的劃分
主動(dòng)網(wǎng)是由主動(dòng)節(jié)點(diǎn)構(gòu)成,對(duì)其進(jìn)行域的劃分,簡單的說就是將網(wǎng)絡(luò)中的節(jié)點(diǎn)分成有著一定數(shù)量的網(wǎng)絡(luò)節(jié)點(diǎn)的多個(gè)組。本文是將一組有著相同訪問控制策略和資源使用策略的節(jié)點(diǎn)劃分在一個(gè)域中,域中設(shè)置代理,各個(gè)域中的代理之間有著高度的信任關(guān)系,也就是說他們出具的證書,別的域中的代理都會(huì)充分信任,代理之間是通過秘密通道來聯(lián)系。其功能分為兩部分,一是給本域用戶出具證書,二是對(duì)本域中的邊界路由器轉(zhuǎn)發(fā)過來的通行證進(jìn)行驗(yàn)證。由于代理出具的證書使得主動(dòng)包可以進(jìn)入別的域,所以代理在出具證書前要對(duì)用戶進(jìn)行身份驗(yàn)證。
代理與用戶之間的安全通信可以通過下面的兩種方式保證:
1.在域中有一個(gè)密鑰分配器,由它們負(fù)責(zé)提前分配密鑰給代理和域,即預(yù)共享密鑰。本域用戶與代理通信時(shí),使用預(yù)共享密鑰與代理進(jìn)行安全通信。當(dāng)然這個(gè)密鑰必須定期更新,或者是在密鑰被盜的情況下請(qǐng)求更新。同時(shí),在與本域代理通信的時(shí)候還必須提供身份證明,這樣,即使密鑰被盜,竊密者也不能從本域代理那得到證書。
2.代理和用戶之間并沒有預(yù)共享密鑰,通信時(shí)再協(xié)商。對(duì)于這種方式來說,代理與用戶之間采用公鑰密碼體制來進(jìn)行安全通信,用戶使用自己的密鑰對(duì)發(fā)送的請(qǐng)求進(jìn)行加密,代理使用用戶的公鑰對(duì)消息進(jìn)行解密。在用戶向代理發(fā)送信息的同時(shí),也就向代理表明了身份,接著他們之間可以協(xié)商會(huì)話密鑰,建立了會(huì)話密鑰后,就可以利用此會(huì)話密鑰進(jìn)行安全通信。
對(duì)于以上兩種方式來說,還有可能受到重放攻擊,因此本域用戶和代理相互通信時(shí),在發(fā)給對(duì)方的信息中加入一個(gè)隨機(jī)數(shù),這樣可抵御重放攻擊。
當(dāng)本域用戶之間進(jìn)行通信時(shí),先協(xié)商會(huì)話密鑰,協(xié)商方式根據(jù)具體情況而定,利用會(huì)話密鑰,他們之間進(jìn)行安全、直接的通信。本域用戶和域外用戶通信時(shí),首先請(qǐng)求本域代理出具一張進(jìn)入別的域通行證。對(duì)于一個(gè)域來說,在它的范圍內(nèi)的用戶必須完全信任它,如果域的范圍劃分的比較大的話,用戶都向一個(gè)代理發(fā)送請(qǐng)求,可能會(huì)產(chǎn)生瓶頸效應(yīng)。對(duì)于這種情況,可以在域中設(shè)置子代理,由父代理授權(quán)子代理對(duì)用戶簽發(fā)通行證,每個(gè)子代理負(fù)責(zé)域中的一部分。
(二)主動(dòng)包的傳輸
封裝用戶代碼的包在從終端用戶傳送進(jìn)入主動(dòng)網(wǎng)絡(luò)之前,為防止主動(dòng)包傳輸過程中受到惡意攻擊,先進(jìn)行安全處理。因此節(jié)點(diǎn)將收到的包送入特定的獨(dú)立EE(executable Environment)進(jìn)行處理,可以避免主動(dòng)代碼被其它惡意代碼攻擊。在此采用ANEP(Active Network Encapsulate Protocol,主動(dòng)網(wǎng)封裝協(xié)議)[4]對(duì)數(shù)據(jù)包進(jìn)行封裝,其中報(bào)文結(jié)構(gòu)中的Type ID是代碼類型的標(biāo)識(shí),它決定了主動(dòng)包被送入哪個(gè)EE。報(bào)頭中的字段定義了主動(dòng)包內(nèi)容中的協(xié)議、包的傳輸方式等。
1.確定路徑下,許多包的同時(shí)傳輸
當(dāng)一個(gè)用戶要向網(wǎng)絡(luò)中發(fā)送主動(dòng)包以實(shí)現(xiàn)自己定制的服務(wù)時(shí),首先建立主動(dòng)包被傳送的路徑。一旦路徑確定,包經(jīng)過的域也就確定了。接著用戶使用與本域代理共享的會(huì)話密鑰向本域代理提交自己的身份證書,請(qǐng)求代理出具主動(dòng)包傳送路徑上需要進(jìn)入的域的證書,代理驗(yàn)證用戶發(fā)來的身份證書,若通過驗(yàn)證,則為用戶出具一份證書,當(dāng)然,持有此證書并不是用戶可以在整個(gè)網(wǎng)絡(luò)中暢通無止,因?yàn)樵诖沓鼍叩淖C書上,有著范圍的限制。
用戶從代理那獲得通行證后,接著將自己的身份證書及其通行證封裝在用戶包中,對(duì)要傳送的所有的包進(jìn)行排隊(duì),然后將它們包傳送進(jìn)網(wǎng)絡(luò)中。持有了代理簽發(fā)的通行證,用戶可以進(jìn)入通行證上所允許的域中。每次在進(jìn)入一個(gè)新的域時(shí),需要對(duì)用戶持有的通行證進(jìn)行驗(yàn)證(如圖1),當(dāng)驗(yàn)證通過后,驗(yàn)證的節(jié)點(diǎn)提供一個(gè)已經(jīng)驗(yàn)證此包的證明,即在本域中對(duì)此包再次進(jìn)行封裝,這樣別的節(jié)點(diǎn)檢測到這個(gè)證明以后,就不需要再對(duì)通行證進(jìn)行驗(yàn)證,只是進(jìn)行證書的推進(jìn)。在域內(nèi)的節(jié)點(diǎn)上,需要對(duì)身份證書進(jìn)行驗(yàn)證,在用戶的身份證書上,有著其對(duì)資源訪問的優(yōu)先級(jí)別。優(yōu)先級(jí)別高的優(yōu)先處理。當(dāng)從這個(gè)域出去進(jìn)入別的域的時(shí)候,丟掉此證明。
2.不確定路徑下,一個(gè)包的傳輸
單個(gè)包的傳輸和包流的不同在于不能明確知道自己在網(wǎng)絡(luò)中傳輸?shù)穆窂?對(duì)于某一特定應(yīng)用來說,通信發(fā)起方不可能確定一個(gè)主動(dòng)包將訪問到哪些節(jié)點(diǎn),也就是說他不能確定要經(jīng)過哪些域,這類應(yīng)用有很多,例如移動(dòng)代理類型的應(yīng)用。對(duì)于這類包來說,建立路徑顯然是不現(xiàn)實(shí)的,此時(shí),源端用戶可以向代理請(qǐng)求一個(gè)全網(wǎng)的通行證,持有此種通行證的主動(dòng)包可以進(jìn)入網(wǎng)絡(luò)中的任意一個(gè)域。當(dāng)然并不是每一個(gè)用戶都可以得到進(jìn)入全網(wǎng)的通行證,只有管理員級(jí)別的人才有請(qǐng)求獲得此種通行證的。管理員擁有著很高的級(jí)別,因此,當(dāng)主動(dòng)包到達(dá)節(jié)點(diǎn)后,對(duì)其進(jìn)行優(yōu)先處理。
信任度的傳遞使得代理將自己在網(wǎng)絡(luò)中的信任度傳遞給了自己所在域中的用戶,只有攜帶代理出具的通行證,主動(dòng)包才可以進(jìn)入網(wǎng)絡(luò)的一些域或者整個(gè)網(wǎng)絡(luò)。這也就是說,沒有通行證的主動(dòng)包是不允許進(jìn)入別的域中的,只有那些持有通行證的主動(dòng)包才能進(jìn)入別的域中,當(dāng)然也只能是通行證上所允許的域。
對(duì)于網(wǎng)絡(luò)的節(jié)點(diǎn)來說,代理為他們的安全提供了有力的保證,同時(shí)節(jié)點(diǎn)不能依靠簡單的移去證書來修改包的傳送路徑,這是因?yàn)槿绻鼉?nèi)的證書被移去的話,尤其是證書,則主動(dòng)包不能進(jìn)入別的域中,若身份證書被移去的話,則收到此包的節(jié)點(diǎn)會(huì)丟掉此包。但是不能保證主動(dòng)包被惡意節(jié)點(diǎn)篡改。為了避免目的端收到的是一個(gè)被篡改的主動(dòng)包,因此,在包內(nèi)提供一個(gè)逐跳的認(rèn)證。這個(gè)認(rèn)證可以通過源端與目的端之間共享的密鑰來完成。
三、與逐跳保護(hù)[2][3]的分析比較
主動(dòng)包每經(jīng)過一個(gè)主動(dòng)節(jié)點(diǎn),其包內(nèi)代碼會(huì)被節(jié)點(diǎn)提取并且執(zhí)行,在代碼執(zhí)行的同時(shí),節(jié)點(diǎn)的狀態(tài)和包內(nèi)的信息都可能被修改。為了避免包和節(jié)點(diǎn)受到攻擊,人們采取了不同的措施對(duì)他們進(jìn)行保護(hù),逐跳保護(hù)就是其中最典型的一種。逐跳是指在主動(dòng)包的傳輸過程中的節(jié)點(diǎn)到節(jié)點(diǎn)都要進(jìn)行保護(hù)。這也就是說,當(dāng)源端用戶建立路徑后,在包被傳送到網(wǎng)絡(luò)中的時(shí)候,源端必須與路徑上的每個(gè)節(jié)點(diǎn)建立安全關(guān)聯(lián)。與路徑上的每一節(jié)點(diǎn)進(jìn)行安全關(guān)聯(lián)需要一定的時(shí)間和計(jì)算開銷,而且主動(dòng)包內(nèi)還必須攜帶每一節(jié)點(diǎn)的認(rèn)證頭,這樣也增加了包的空間開銷。逐跳的安全性取決于密鑰的安全程度。
而基于代理的這種保護(hù)來說,如果源端用戶發(fā)出的包沒有攜帶本域代理出具的證書,那么這些包將不能進(jìn)入別的域。只有當(dāng)主動(dòng)包攜帶代理出具的證書后,才能進(jìn)入證書允許的域。用戶在進(jìn)入一個(gè)新的域前,要對(duì)通行證進(jìn)行驗(yàn)證,一旦驗(yàn)證通過,在域中將不再對(duì)其驗(yàn)證,僅僅身份證書被驗(yàn)證。與逐跳相比,節(jié)約了對(duì)包的認(rèn)證時(shí)間,計(jì)算的開銷,同時(shí)由于包內(nèi)不用帶每個(gè)節(jié)點(diǎn)的認(rèn)證頭,節(jié)約了包的空間開銷(如表1所示)。
四、結(jié)論
本文將網(wǎng)絡(luò)劃分成好多個(gè)域,并且在每個(gè)域中設(shè)置一個(gè)代理。代理為主動(dòng)包傳輸過程中的安全提供了有力的保證。與逐跳比較,代理的引入,節(jié)約了時(shí)間、計(jì)算以及包的空間開銷。
只有代理出具了證書的主動(dòng)包才能進(jìn)入別的域,這樣就遏制了一些惡意包非法進(jìn)入別的域中,去攻擊域中的單元。所以說代理出具證書的過程對(duì)于保證網(wǎng)絡(luò)的安全來說是一個(gè)關(guān)鍵。當(dāng)然節(jié)點(diǎn)也可能受到用戶包的非惡意損害,比如說代碼本身就有問題。對(duì)于這些問題我們可以在節(jié)點(diǎn)采取監(jiān)控手段,來對(duì)其在節(jié)點(diǎn)的執(zhí)行情況進(jìn)行監(jiān)控。主動(dòng)網(wǎng)中的不安全因素很多,解決主動(dòng)網(wǎng)的安全問題還需要付出更多的探索和研究,主動(dòng)網(wǎng)的安全研究也會(huì)隨著探索和研究不斷完善。
參考文獻(xiàn):
[1]D.L.Tennenhouse,J.M.Smith,W.D.Sincoskie,D.J.Wetherall and G.J.Minden.A Survey of Active Network Research.IEEE Communications Magazine,1997,Vol.35,No.1:p80-86.
[2]David L,Tennenhouse and David J,Wetheral.Towards an Active Network Architectrue.Computer communication Review,1996,Vol.26,No.2,P5-18.
[3]Suresh Krishnaswamy,Joseph B.Evans,Gary J.Minden.A Prototype Framework for providing Hop-by-Hop Security in an Experimentally deployed Active Network.2002 DARPA Active Networks Conference and Exposition. San Francisco:CA,May2930,2002,p216-223.
[4]D.Scott Alexander,Bob Braden,Carl A.Gunter,Alden W.Jackson,Angelos D.Keromytis,Gary J.Minden,David Wetherall.Active Network Encapsulation Protocol (ANEP).RFC DRAFT.1997.