<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于移動代理的主動網(wǎng)絡(luò)安全架構(gòu)的研究

          基于移動代理的主動網(wǎng)絡(luò)安全架構(gòu)的研究

          作者:王 斌,李 杰 時間:2008-10-28 來源:現(xiàn)代電子技術(shù) 收藏

          1 引 言

          本文引用地址:http://www.ex-cimer.com/article/89002.htm

            隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)正影響并改變著人們生活的方方面面,現(xiàn)有的傳統(tǒng)網(wǎng)絡(luò)的功能單一而封閉,對網(wǎng)絡(luò)內(nèi)部結(jié)點的功能開發(fā)很少,服務(wù)只能在端系統(tǒng)實現(xiàn),使現(xiàn)有服務(wù)的優(yōu)化和擴展、新服務(wù)的開發(fā)等受到很大的限制。因此DARPA(美國國防部高級研究計劃署)提出一種新型的網(wǎng)絡(luò)體系結(jié)構(gòu)——主動網(wǎng)絡(luò)。而具有跨平臺移動機制的移動代理技術(shù)為計算機網(wǎng)絡(luò)環(huán)境中的許多領(lǐng)域提供了新的解決方案,特別是移動代理技術(shù)與主動網(wǎng)絡(luò)的結(jié)合正在逐步受到關(guān)注,但相應(yīng)的安全問題日益突出。

            本文主要以移動代理系統(tǒng)的安全問題和主動網(wǎng)絡(luò)安全的問題來展開,提出一種基于移動代理的主動,并給出了一些相應(yīng)的策略。

          2 基于移動代理的主動網(wǎng)絡(luò)安全問題

          2.1 移動代理

            移動代理是能在異構(gòu)網(wǎng)絡(luò)主機之間自主地進行遷移的有名字的程序,程序能自主地決定在什么時候遷移到什么地方。在移動時,它能在程序運行的任意點上掛起,然后遷移到另一臺主機上重新開始或接著這一點繼續(xù)往下執(zhí)行,最后返回結(jié)果和消息。移動代理也能克隆自己或者產(chǎn)生子代理,遷移到其他主機上以共同協(xié)作完成復(fù)雜的任務(wù)。移動代理系統(tǒng)是指能創(chuàng)建、解釋、執(zhí)行、傳送和終止代理的平臺,它由名稱和地址惟一標(biāo)志。每個系統(tǒng)都可以運行多個代理。代理通過和主機服務(wù)進行交互來獲得所需的服務(wù)。移動代理的2大特點就是移動性和自主性。

          2.2 MANet主動節(jié)點的結(jié)構(gòu)

            在MANet中,每個內(nèi)部網(wǎng)絡(luò)結(jié)點都是一個具有計算能力的主動結(jié)點。每個主動結(jié)點不僅具有有相當(dāng)功能的處理器,而且也具備由多種存儲設(shè)備組成的多級存儲系統(tǒng)。實際上它是一個由網(wǎng)絡(luò)硬件設(shè)備、處理機以及相應(yīng)的軟件所組成的系統(tǒng),如圖1所示。虛擬網(wǎng)絡(luò)層完成傳統(tǒng)網(wǎng)絡(luò)中數(shù)據(jù)鏈路層的功能,它通過網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)包,對數(shù)據(jù)包的格式進行識別,并依據(jù)數(shù)據(jù)包格式對其進行分解,然后將數(shù)據(jù)包所攜帶的代碼和數(shù)據(jù)等傳送給移動代理運行環(huán)境MAE,MAE將程序代碼作為代理裝載運行。代理實現(xiàn)的是客戶化的協(xié)議程序,它在運行過程中可能還要和基礎(chǔ)網(wǎng)絡(luò)服務(wù),部分進行交互,調(diào)用最基本的網(wǎng)絡(luò)服務(wù),如獲取本地以及相鄰結(jié)點的信息、下一轉(zhuǎn)發(fā)結(jié)點的地址以及本地結(jié)點狀態(tài)的存取等。經(jīng)過代理處理后的數(shù)據(jù)交由虛擬網(wǎng)絡(luò)層重新封裝,然后通過網(wǎng)絡(luò)設(shè)備發(fā)送給下一個主動網(wǎng)絡(luò)結(jié)點(或幾個網(wǎng)絡(luò)結(jié)點)。

            MAE是一個基本的移動代理執(zhí)行環(huán)境,它從虛擬網(wǎng)絡(luò)層接收數(shù)據(jù)包并對其進行分析和分解,將其中的程序代碼裝載執(zhí)行。同時,它還要監(jiān)視代理的運行狀態(tài),在要執(zhí)行的程序代碼尚未裝載時,通過CodeBroker搜索并裝載相應(yīng)的代碼塊。MAE也要為主動網(wǎng)絡(luò)系統(tǒng)的安全性提供諸如身份驗證、授權(quán)以及代碼的安全運行等有效的支持?;A(chǔ)網(wǎng)絡(luò)服務(wù)主要是為主動數(shù)據(jù)包提供最基本的網(wǎng)絡(luò)協(xié)議功能,如本地環(huán)境的存取、路由控制以及轉(zhuǎn)發(fā)等。它有效地減少了數(shù)據(jù)包所攜帶代碼的長度,提高了主動網(wǎng)絡(luò)系統(tǒng)的性能。甚至較為上層的常用網(wǎng)絡(luò)協(xié)議,如TCP,UDP和IP等,也可以作為基礎(chǔ)網(wǎng)絡(luò)服務(wù)的一部分以實現(xiàn)與傳統(tǒng)網(wǎng)絡(luò)的兼容性和提高主動網(wǎng)絡(luò)的性能。

           

          2.3 基于移動代理的主動網(wǎng)絡(luò)系統(tǒng)

            MANet(Mobile Agents Based Active Network)是一個以移動代理系統(tǒng)為基礎(chǔ),通過將主動數(shù)據(jù)包封裝成移動代理來實現(xiàn)利用移動代理系統(tǒng)處理主動網(wǎng)絡(luò)數(shù)據(jù)包的主動網(wǎng)絡(luò)。利用移動代理來實現(xiàn)主動數(shù)據(jù)包的封裝和運行,不僅可以充分利用移動代理的自主性和可移動性,而且提供了更好的主動網(wǎng)絡(luò)可編程性和靈活性。將主動網(wǎng)絡(luò)數(shù)據(jù)包所攜帶的程序和數(shù)據(jù)封裝成移動代理,使得數(shù)據(jù)包具有很好的主動性和處理能力。例如,主動數(shù)據(jù)包可以利用代理的克隆及子代理的生成和分發(fā)來實現(xiàn)多路分發(fā)等。另一方面,移動代理系統(tǒng)也提供了一些相對于主動網(wǎng)絡(luò)來說多余的功能,例如,移動代理能在程序運行的任意點上掛起,并在遷移到另一臺主機后接著這一點繼續(xù)往下執(zhí)行。為了提高整個主動網(wǎng)絡(luò)系統(tǒng)的性能,要針對主動網(wǎng)絡(luò)的特性對移動代理系統(tǒng)進行修改,以去除不必要的功能,從而提高系統(tǒng)的性能。事實上,包括本文系統(tǒng)在內(nèi)的許多基于Java的移動代理系統(tǒng),如Aglets,Odyssey,Dagent等,由于Java語言本身所存在的程序運行狀態(tài)的獲取問題,都未能實現(xiàn)斷點式的代理遷移。此外,支持主動數(shù)據(jù)包之間的通信對于主動網(wǎng)絡(luò)來說,開銷也太大。

          2.4 基于移動代理的主動網(wǎng)絡(luò)的安全性問題

            把具有自主性和移動性的移動代理系統(tǒng)放置在開放性極高的主動網(wǎng)絡(luò)中,其安全隱患是不言而喻的,因此安全性能成為衡量基于移動代理的主動網(wǎng)絡(luò)的首要指標(biāo)。

            根據(jù)移動代理在主動網(wǎng)絡(luò)中的位置,我們可以把主動網(wǎng)絡(luò)的安全問題分為2個方面:一是保護主動結(jié)點不受惡意代理的侵犯;二是代理在網(wǎng)絡(luò)中傳輸過程中,保護代理不受惡意主動網(wǎng)絡(luò)結(jié)點的竊聽或拒絕。

            迄今為止,移動代理安全領(lǐng)域所做的研究工作為主動結(jié)點運行環(huán)境的安全提供了基礎(chǔ),但是由于主動網(wǎng)絡(luò)系統(tǒng)的安全性還存在許多缺陷和不足以及移動代理是在應(yīng)用層主動節(jié)點上運行的,需要使用主機資源,并對其進行存儲,因此安全解決方案應(yīng)該是雙向的,既要保證系統(tǒng)不受惡意的代理和主動包的攻擊,也要保證代理和主動包不受執(zhí)行環(huán)境(EE)的非法侵害。針對以上的安全問題,本文提出一些相應(yīng)的策略。

            帶有主動包的移動代理在網(wǎng)絡(luò)中傳輸,利用現(xiàn)在安全移動代理可以確保移動代理不受其他惡意網(wǎng)絡(luò)結(jié)點的竊聽或拒絕。比如通過加密和數(shù)字簽名技術(shù)可以確保主動分組的安全。下面重點討論在移動代理停留在主動結(jié)點中,保護主動節(jié)點不受惡意代理的侵犯,提出一些相應(yīng)的策略。

          3 基于移動代理的主動網(wǎng)絡(luò)安全框架模型

            基于移動代理的主動網(wǎng)絡(luò)MABAN(Mobile AgentBased Active Network)是以移動代理系統(tǒng)為基礎(chǔ),通過將主動封包程序封裝成移動代理,從而實現(xiàn)利用移動代理系統(tǒng)來處理主動封包的網(wǎng)絡(luò)。MABAN的可移動代碼在主動結(jié)點上運行不可避免的引入了安全性問題。MABAN的安全問題主要包括主動結(jié)點、主動封包和端用戶等方面。本文主要研究主動結(jié)點的安全問題,而主動封包和端用戶的安全性研究則是更具挑戰(zhàn)性的一項工作。

            為解決MABAN中主動結(jié)點的安全問題,現(xiàn)設(shè)計一個通用的MABAN結(jié)點的安全性框架MANSF(MobileAgent-Based Active Network node Security Framework)。此規(guī)范符合主動網(wǎng)絡(luò)安全工作組提出的主動網(wǎng)絡(luò)結(jié)點的安全規(guī)范,而且具有可擴展性和通用性等特點。MANSF結(jié)點的安全框架圖見圖2。

           

            由圖2可見,MANSF主要包括認證授權(quán)模塊,移動代理執(zhí)行環(huán)境及訪問控制模塊。MANSF使用上述模塊處理主動封包的流程是:

            (1)封包到達結(jié)點,進入網(wǎng)絡(luò)設(shè)備通道,如果是主動封包,則轉(zhuǎn)入認證授權(quán)模塊,否則在虛擬網(wǎng)絡(luò)層處理;

            (2)認證授權(quán)模塊對封包數(shù)據(jù)進行完整性檢查,并協(xié)同域授權(quán)中心對用戶身份進行認證,提取代碼,轉(zhuǎn)入MAEE;

            (3)MAEE執(zhí)行移動代理,實現(xiàn)數(shù)據(jù)的客戶化定制,當(dāng)需要訪問結(jié)點資源時轉(zhuǎn)入(4);

            (4)訪問控制模塊根據(jù)用戶的訪問權(quán)限,決定是否滿足用戶的資源訪問要求;

            (5)用戶程序完成,結(jié)點將改動過的數(shù)據(jù)重新封包并通過網(wǎng)絡(luò)設(shè)備通道發(fā)送給下一個結(jié)點。

          3.1 認證授權(quán)模塊

            采用非對稱雙向認證協(xié)議來解決移動代理在主動結(jié)點中的運行安全性問題:

            站一站協(xié)議可以使通信雙方互相鑒證身份,較好地解決了傳輸數(shù)據(jù)的加密和中間插入攻擊。如果移動代理能夠通過使用用戶的私有密鑰簽名,則站一站協(xié)議可以很好地解決鑒證和消息加密和摘要的工作。但是處于安全性考慮,不應(yīng)該讓移動代理攜帶著它們用戶的私有密鑰在網(wǎng)絡(luò)中遷移。因為這種策略盡管可以使移動代理在任一結(jié)點證明自己的身份,但不幸的是,它實際上在所有經(jīng)過的結(jié)點上暴露了它用戶的私有密鑰。該問題在非對稱鑒證協(xié)議中用下述方式解決:

            (1)當(dāng)一個移動代理被用戶在某個主動結(jié)點上啟動后,本地文件系統(tǒng)使用移動代理的私有密鑰對移動代理的名字空間(Namespace)定義(文件)進行加密(Sigm(Namespace)),產(chǎn)生移動代理的活動簽名(Agent ActivitySignature,AAS)。該簽名在該代理的整個生命周期中是保持不變的,它確切定義了該代理所要使用的各種資源。

            (2)移動代理不攜帶用戶的私有密鑰在網(wǎng)絡(luò)中遷移。

            (3)移動代理在與主動結(jié)點的雙向鑒證中,只傳送其公開密鑰。由于本系統(tǒng)中的加/解密算法公開,即用私有密鑰進行簽字,用公開密鑰進行驗證,所以在移動代理與主動結(jié)點的雙向鑒證中不必傳送解密算法,而只需傳送公開密鑰。

            (4)移動代理也有私有密鑰和公開密鑰。無論移動代理還是用戶都可向認證機構(gòu)申請自己的私有/公開密鑰。

            采用這種非對稱雙向認證協(xié)議很好地保護了移動代理在網(wǎng)絡(luò)傳輸中不被惡意主動結(jié)點入侵。

          3.2 移動代理執(zhí)行環(huán)境

            MANSF使用Java作為編程語言,MAEE是一個基于Java的移動代理執(zhí)行環(huán)境,運行于JVM層上。這樣Java的安全特性就無縫地整合到MANSF中,同時它還要監(jiān)視代理的運行狀態(tài),在要執(zhí)行的程序代碼尚未裝載時,通過結(jié)點類裝載器搜索并裝載相應(yīng)的代碼塊。一個主動結(jié)點可同時運行多個MAEE,MAEE可同時執(zhí)行多個用戶代理,這是為了防止用戶代理之間相互攻擊,而采取的一種隔離措施.在不同的MAEE中執(zhí)行的用戶代理運行于不同的空間,自然隔離,顯然不能相互攻擊。在相同的MAEE中,執(zhí)行的用戶代理采取以下措施來保護:

            (1)Java語言自身的安全性。Java語言是強類型的,Java類在自己的地址空間執(zhí)行,且不能使用指針,從而避免了用戶代理在執(zhí)行過程中任意引用內(nèi)存空間,攻擊別的代理。

            (2)用戶代理使用嚴格的類型標(biāo)識來識別,類型標(biāo)識采用MD5(message digest algorithm 5,信息摘要算法)生成。用戶代理被授權(quán)以決定其處理。

            (3)軟狀態(tài)存儲機制。每個代理的狀態(tài)數(shù)據(jù)被臨時性地存儲,將需要共享狀態(tài)數(shù)據(jù)的幾個用戶代理組成一個“狀態(tài)域”,代理只能操作與其“狀態(tài)域”相關(guān)的狀態(tài)。

            用戶代理在MAEE中執(zhí)行完畢后,MANE調(diào)用結(jié)點服務(wù),程序?qū)⑻幚砗蟮挠脩魯?shù)據(jù)、用戶代理、證書及用戶簽名等重新封包,通過虛擬網(wǎng)絡(luò)層通道繼續(xù)發(fā)送。移動代理的執(zhí)行環(huán)境的安全問題:可信任的執(zhí)行環(huán)境(如Java Card)。

          3.3 基于角色的訪問控制機制

            主動結(jié)點收到一個移動代理后,要在它運行之前確定該代理可以訪問哪些資源。首先,主動節(jié)點通過該移動代理所攜帶的數(shù)字簽名確認其身份,然后從管理者配置的安全策略中,檢索出該用戶對該代理擁有的權(quán)限。資源訪問控制將利用這些信息在運行時刻決定移動代理是否可以訪問某資源。授權(quán)給一個用戶的移動代理可訪問的資源,在MANet系統(tǒng)中,從移動代理管理者的角度看有3類用戶,一是移動代理的發(fā)送者,二是管理者,三是移動代理旅行中其他主動節(jié)點上的用戶。如果移動代理管理者對移動代理用戶比較信任,認為不會出現(xiàn)惡意的行為,就分配較大的權(quán)力給該用戶;反之,如果移動代理用戶是一個不可信的甚至是匿名的,那么移動代理管理者只能分配很少的權(quán)力給該用戶,以確保安全。

          4 結(jié) 語

            上述的安全框架的策略部分可用基于Java安全策略實現(xiàn),主要是通過安全管理器的策略進行替換來擴展Java安全模型,使之適合MANSF的需要。

           



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();