倪斌++李紅蘭
摘 要: 為了讓在云端計算環境中運行的計算任務機密和隱私得到保障,避免惡意節點或競爭對手窺視任務的內部結構、系統邏輯和任務目標,必須構建一種全新的基于移動Agent的云端計算任務安全分割與分配算法。這種算法不僅要結合集群服務器節點的計算能力和特征,還要將用戶終端節點的相關方面也考慮進去,把整個大的任務合理地分割成若干子任務,并將移動Agent作為這些子任務的數據結構和代碼構成的載體;然后把這些數據和代碼分配到與之對應的合理的任務執行節點上進行工作。通過將實驗原型系統和該算法結合起來進行性能分析與探索,證明該算法對執行子任務的終端節點安全性的保障具有較強的有效性,即便有惡意節點窺探到了分配給該任務執行節點的數據和代碼,甚至聯合起來對系統進行攻擊,也不會對這個任務的總體執行思路和整體目標的安全性造成威脅。
關鍵詞: 移動Agent技術; 云端計算; 隱私安全; 分割與分配算法
中圖分類號: TN918?34 文獻標識碼: A 文章編號: 1004?373X(2015)17?0089?04
Security segmentation and allocation algorithm based on
mobile Agent for cloud computing task
NI Bin1, LI Honglan2
(1. Henan Judicial Police Vocational College, Zhengzhou 450000, China;
2. Henan University of Animal Husbandry and Economy, Zhengzhou 450000, China)
Abstract: To guarantee the confidentiality and privacy of computing tasks operated in cloud computing environment, and avoid the malicious nodes or the competitors peering the internal structure, system logic and task objects, a new security segmentation and allocation algorithm of cloud computing task based on mobile Agent needs to be constructed. This algorithm combines with the computing ability and characteristics of cluster server nodes, and the relevant aspects of the user terminal nodes are taken into account. The entire task is segmented into some sub?task effectively, then the mobile Agent is taken as the carrier of data structure and code structure of the sub?task. The data and codes are allocated to reasonable task execution nodes corresponding to them. The performance is analyzed and explored by combining with experimental prototype system and this algorithm. It proved that the algorithm has better validity to guarantee the terminal nodes security of executing sub?task. When the malicious nodes peered the data and codes allocated to the task execution nodes, even the malicious nodes are combined together to attack on the system, it can not threaten the overall execution thought of the task and the security of the entire object.
Keywords: mobile Agent technology; cloud computing; privacy security; segmentation and allocation algorithm
0 引 言
現階段對于云計算的要求大都是服務器端具有較強的計算能力和較大的資源儲存,而對海量的用戶終端節點所包含的各種有效資源的開發和利用并沒有予以重視。實際上,終端節點自身也具有計算、儲存各種信息資源的能力,由于這方面沒有引起足夠重視,終端節點的各種資源往往無法被有效地利用,經常被閑置在一邊,這使得大量接入互聯網的終端節點中所包含的計算和存儲資源都流失了,導致資源的浪費。
通過對終端節點所包含的各種潛在資源的研究、開發和利用,在原有的云計算模型基礎上,建立云端計算模型,可以將互聯網中服務器端和用戶終端上資源的收集最大化,不僅可以提高工作效率,還能夠獲得更多的收益。當然,由用戶終端執行分配的計算任務時,一定要讓計算的安全性和計算任務(例如企業進行大范圍的數據分析)的機密性得到保證,阻止惡意節點或競爭對手對該任務的窺探,實現讓用戶在不知道該任務的具體內容的前提下執行該任務的目的,這個安全問題在云計算過程中必須得到重視并加以解決。
1 云端計算模型的構建
1.1 對云端計算的解釋
云端計算就是將用戶指定的任務分割后均衡地分配于資源池上(這個資源池是由服務器集群和大量基于互聯網的終端節點共同組成的),從而使各種應用系統都能夠按照各自的需求客觀公平地獲得性價比高的計算方式、資源共享等服務。
云端計算系統中,不是只有服務器端的節點才能夠提供服務和執行任務,用戶終端節點同樣也可以。當用戶向系統提交任務申請時,結合用戶對任務的具體要求,任務分配節點將整個大任務科學合理地分割成若干子任務,對這些子任務進行安全處理后,將其分配到合理的對應節點上執行。在這個過程中,集群服務器節點和用戶終端節點都可以成為任務執行者的角色[1]。
1.2 云端計算中可能存在的安全問題
在開放的云端計算平臺中,提交任務的用戶和執行任務的節點主要面臨著以下潛在的問題:
(1) 惡意節點在信息傳輸過程中,對子任務的數據和代碼進行攻擊;
(2) 惡意節點對分配到終端節點上的子任務的數據和代碼進行攻擊;
(3) 負責任務執行的終端節點受到子任務中包含的病毒或木馬攻擊。
若要實現對信息傳送過程中數據和代碼機密安全的保護,可以通過利用現有的網絡問題處理手段的方式解決。針對負責任務執行的終端節點受到子任務中包含的病毒或木馬攻擊的問題,現階段也有一些可行性和有效性強的方法被提出,如建立沙盒運行環境、完善授權和認證體系、優化任務分配環節、實行代碼檢查、驗證制度等技術手段[2]。
2 對該算法的詳細闡述
2.1 移動Agent的概念模型
移動Agent技術是在智能Agent技術的基礎上,增加了移動性的技術,結合移動Agent技術編寫的操作系統完美地具備了生存機制、計算機制、安全機制、通信機制、遷移機制,并通過科學合理的協調和完善,形成了一整套體系。無論是根據地理因素還是邏輯因素分布的網絡節點都符合這種算法的要求,都能夠運用這種計算模式,通過為相關網絡節點提供信息服務,使移動Agent技術在各種云端系統中都能得到有效應用。同時,在分配和執行任務的各終端節點上建立移動Agent的執行環境也很重要,也就是移動Agent服務設施(簡稱MAE),這樣才能使移動Agent在各網絡節點間自行移動。
在云端計算系統中,所有被分割的子任務的載體就是移動Agent,移動Agent負責的主要工作就是對這些子任務進行封裝、分配處理[3]。
根據以上對移動Agent的描述,規劃出了移動Agent的概念模型,如圖1所示。
移動Agent在云端計算系統中的主要構成結構有:外部環境、內部狀態集(主要用于使移動Agent在不同系統中運用)、安全策略(其中包含各種安全認證內容)、約束條件(對安全接口加以約束,從而保障其規范的運行和可靠的性能)、任務執行模塊、執行路徑、全局知識和私有知識等。
2.2 云端計算系統中進行任務分割分配使用的方法和必須遵守的原則
接收了用戶提交的任務后,承擔任務分配的工作節點將任務進行分割,將大的整體任務分割成一個個子任務,并且要確保各子任務之間存在的相同性、耦合性降到最低。如果能保證各子任務之間不存在任何交集,在獨立的環境下被執行,完成任務后,將成果提交至分配任務的服務器節點上,這種方式在傳統的云計算系統中有著很大的可行性和實用性。
然而在云端計算的環境中,就可能會造成子任務粒度增加的后果,這就使得云端系統執行效率的降低,同時也使各子任務執行終端節點的工作量變大,任務負擔變重,從而增加了整個流程的循環時間,在工作效率降低的同時,也產生了安全隱患。
在云端計算環境中,這樣的安全問題主要表現在:一旦具有較大粒度的子任務被分配到執行任務的終端節點中,那么該終端節點就可以很輕易地通過對這個子任務數據和代碼的解讀和分析,推測出整個任務的執行邏輯和具體目標,在存在惡意節點或主機的情況下,必然會對提交任務用戶隱私的機密性和整個云端計算的安全性造成不利影響[4]。
通過盡可能地降低子任務粒度的方式,就可以讓各子任務之間的關系保持如下兩種形式:
(1) 各子任務之間的因果關系:一個子任務的執行要以上一個子任務的完成為前提;
(2) 各分子任務之間不存在密切的合作關系:各子任務可以同步執行。
由服務器節點和用戶終端節點執行對應的子任務時,如果想要提高任務執行的可靠性和機密性,將比較重要和關鍵的任務盡可能地分配到服務器端節點執行,那么服務器端存在的局限性也會阻礙云端系統性能的完全發揮,從而導致不能完善、有效地利用數量龐大的用戶終端節點資源;如果將所有子任務都分配到用戶終端節點執行,那么負責執行任務的主機可能會得到一些子任務中包含的隱秘信息,Agent承載的子任務中包含的信息量越大,負責該任務執行節點的主機就能更容易的獲得關于整個任務的信息,一旦出現惡意主機和執行環境,那么任務數據和代碼就很可能被窺探,出現隱私泄露的情況;惡意主機也可能通過改變代碼編排方式或表現形式的方式,使原本的任務目標不能執行或錯誤執行,這就造成了整個云端系統的精確性和可靠性降低。
如果主要考慮信息的安全性和可控制性,那么就應該盡可能地把子任務分配到服務器端節點上;如果主要考慮任務的平衡性和網絡資源能夠被充分利用,那么就應該盡可能地把子任務分配到終端節點上,因為服務器端節點可利用的計算資源是有限的,而用戶終端節點數量非常龐大,這就使得終端節點可利用的計算資源和儲存空間比服務器端節點要巨大得多,更有利于網絡資源的充分利用[5]。
2.3 分配任務的具體形式
選取如圖2所示的某一次云端計算任務的一段執行路徑,為了簡便起見,圖中的每一個子任務用1個3元組標志分別為[(n,w,d),]重點關注“→”所引導的執行路徑[6]。
圖2(a)為任務分配的初始狀態,所有子任務的[d]均標志為0,設[ω=4。]經過第1輪掃描后,[n]為3,4,5的子任務的[d]修改為1,如圖2(b)所示;經過第2輪掃描后,[n]為2,8的子任務的[d]修改為1,如圖2(c)所示。最終可以得出,在該局部執行路徑中,[n]為2,3,4,5,8的子任務將被分配到服務器端執行,而[n]為1,6,7,9,10的子任務將被分配到終端節點執行。
3 對該系統性能的研究和檢驗
對已設計出的系統性能進行檢驗,結果如下:
第一個環節:
任務分配節點將子任務發送到用戶終端節點時,如果該節點是惡意節點,那么移動Agent中包含的數據和代碼就很有可能被攔截,惡意節點通過對子任務的數據和代碼的解讀就可能窺探出整個任務的工作流程和具體目標。
如果出現任務分配節點所發送的承載著子任務數據和代碼的移動Agent被分配到惡意終端節點上的情況,對此進行分析的思路就是:通過對圖1的觀察可以發現,惡意執行環境或主機想要通過讀取移動Agent所承載的子任務的數據和代碼的辦法窺探整個任務目標,就必須通過一道屏障,而這個屏障就是移動Agent系統構成中的安全Agent接口模塊環節。在該環節的保護下,即便惡意執行主機獲取了子任務數據和代碼中包含的信息,也無法知曉整個任務的執行邏輯和具體目標。這是因為在所有被分割的子任務中,真正包含著重要信息的子任務都被分配到了服務器節點執行,而該惡意執行主機承擔的只是權重較低的子任務的執行,因而無法從該子任務的數據和代碼中分析出整個任務具體情況的有效信息。這就使提交任務用戶的隱私和任務的機密性得到了保障。
第二個環節:
惡意終端節點在獲取到任務分配節點發送的承載著子任務數據和代碼的移動Agent時,結合對子任務的先驅任務和后繼任務等相關信息的分析,對先驅任務和后繼任務的執行點進行攻擊,甚至和這些惡意節點聯合起來對系統進行協同攻擊,截取更多的子任務數據和代碼,從而實現獲知整個任務情況的目的。
如果是在傳統的云端系統中出現這種情況,那么有極大的可能會造成機密信息的泄露;然而在這種基于移動Agent技術的云端系統中,惡意節點獲取的數據和代碼確實非常有限,仍然無法實現對整個任務的窺探。因為在運用了移動Agent技術的云端系統環境下,惡意節點能夠獲得的只是與它自身存在輸入和輸出關系的節點所執行的子任務,而其他節點承擔的子任務根本無法知曉。并且,結合上文中規劃的優化方案來看,惡意節點無法通過累計獲取數據和代碼的方式實現子任務權重的增加。同時,該系統中對服務器端的數據和代碼的管理具有集中性,因此惡意節點很難獲取到相關信息。由此可見,惡意節點試圖通過攻擊其他節點和與其他節點協同攻擊的方式實現對整個任務的了解,其成功率極低。
4 結 語
傳統的云計算系統主要采用集中管理的方式管理計算節點,一旦工作中出現安全問題,基本上都可以按照建立在網絡中的軟件系統的安全手段解決,而在利用了用戶終端的資源進行計算,將云計算轉變為云端計算后,其中潛在的安全問題也需要被重視和解決。
本文提出一種結合了移動Agent技術對用戶任務進行合理分割和有效分配的安全性方法,將用戶提交的任務科學地分割成了若干子任務,以移動Agent為這些子任務數據和代碼的載體,結合任務分配算法,把子任務合理地分配到相應的終端節點上執行,在完善的安全管理體系的保護下,任務的機密性也得到了保障,從而在安全可靠的前提下使網絡資源得到了充分利用。
參考文獻
[1] 徐小龍,程春玲,熊婧夷,等.一種基于移動Agent的云端計算任務安全分割與分配算法[J].北京理工大學學報,2011,31(8):922?926.
[2] 張以利,楊萬扣,李峻.基于移動Agent的代價驅動的云端存儲模型[J].計算機工程與設計,2012(11):4240?4244.
[3] 徐小龍,熊婧夷,程春玲.基于云端計算架構的惡意代碼聯合防御機制[J].東南大學學報:自然科學版,2011(2):220?226.
[4] 徐小龍,耿衛建,楊庚,等.開放云端計算環境中的任務執行代碼安全機制[J].計算機科學,2012(7):7?10.
[5] 馮登國,張敏,張妍,等.云計算安全研究[J].軟件學報,2011,21(1):71?83.
[6] 馮輝寧.云計算環境下的多路數據流分層模塊化建模與設計[J].系統工程理論與實踐,2013,33(6):1570?1576.
[7] 劉森.云計算技術的價值創造及作用機理研究[M].北京:經濟科學出版社,2015.
[8] 羅軍舟,金嘉暉,宋愛波,等.云計算:體系架構與關鍵技術[J].通信學報,2011,32(7):3?21.
[9] 林曉鵬.云計算及其關鍵技術問題[J].現代電子技術,2013,36(12):67?70.
[10] 劉勝娃,陳思錦,李衛,等.面向企業私有云計算平臺的安全構架研究[J].現代電子技術,2014,37(4):34?36.