杭菲璐 陳小丹 方寧 謝林江
摘? ?要:移動代理技術(shù)在云計算環(huán)境中被廣泛應(yīng)用,但其安全問題不可忽視,其中數(shù)據(jù)安全成為制約其發(fā)展的主要因素之一。文章提出了一種私鑰委托技術(shù),有效地解決了云計算環(huán)境中移動代理所攜帶的數(shù)據(jù)保護(hù)問題。該方法利用可信計算技術(shù)提供的新功能和機制,采用公鑰和對稱密鑰加密手段進(jìn)行數(shù)據(jù)和密鑰保護(hù),其最顯著的特點是,它通過將移動代理的私鑰委托給防篡改硬件,使私鑰的使用更加方便和安全。實驗證明該方法執(zhí)行效率高,具有較高的使用價值。
關(guān)鍵詞:移動代理;數(shù)據(jù)安全;密鑰委托
中圖分類號:TP309? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A
Data security protection of mobile agent cloud service
Hang Feilu1, Chen Xiaodan2, Fang Ning3, Xie Linjiang1
(1. Information Center, Yunnan Power Grid Co., Ltd., YunnanKunming 650217;
2. Qingdao University, ShandongQingdao 266071;
3. Beijing Bangcle Security Technology Co., Ltd., Beijing 100093)
Abstract: Mobile agent technology is widely used in cloud computing environment, but its security problem cannot be ignored, among which data security has become one of the main factors restricting its development. This paper pro-poses a private key delegation technology, which effectively solves the problem of data protection carried by mo-bile agents in cloud computing environment. This method uses the new functions and mechanisms provided by trusted computing technology, and uses public key and symmetric key encryption to protect data and key. Its most notable feature is that it makes the use of private key more convenient and secure by delegating the private key of mobile agent to tamper-proof hardware. Experiments show that the method has high efficiency and high application value.
Key words: mobile agent; data security; key delegation
1 引言
移動互聯(lián)網(wǎng)的發(fā)展使企業(yè)對用戶提供的服務(wù)和業(yè)務(wù)越來越多地通過Web應(yīng)用服務(wù)以及移動應(yīng)用等途徑展開。移動代理可以將計算任務(wù)移動到它們需要訪問的資源附近,從而減少網(wǎng)絡(luò)通信、帶寬和延遲,具有明顯的計算優(yōu)勢[1,2]。這種優(yōu)化思想與邊緣計算技術(shù)類似[3],但其本質(zhì)仍然是云計算與移動互聯(lián)網(wǎng)相結(jié)合的一種技術(shù)方法。
盡管移動代理技術(shù)具有計算性能方面的優(yōu)勢和廣泛的應(yīng)用領(lǐng)域,但其發(fā)展?jié)摿κ艿搅税踩珕栴}的制約。在移動互聯(lián)網(wǎng)這種不可信的、開放的網(wǎng)絡(luò)環(huán)境中,移動代理技術(shù)面臨的安全問題大致可分為云服務(wù)主機安全和移動代理安全。
云服務(wù)主機安全涉及保護(hù)主機平臺不受惡意移動代理的攻擊,這些惡意移動代理可能試圖在未經(jīng)授權(quán)的情況下,訪問本地資源或在平臺上發(fā)起惡意操作。另一方面,移動代理的安全性旨在保護(hù)移動代理免受惡意云服務(wù)主機平臺或云服務(wù)的攻擊。攻擊者可能試圖破壞正確的操作或操作其中包含的敏感數(shù)據(jù)。云服務(wù)主機安全的研究工作較多,研究者已經(jīng)提出許多可行的機制,包括沙箱安全(在Java中提供訪問控制)[4]、安全類型語言[5]和證明攜帶代碼[6]等。然而,這些與移動代理本身相關(guān)的安全問題要嚴(yán)重得多,由此引發(fā)了云計算環(huán)境中移動代理場景特有的安全問題。眾所周知的安全機制包括代碼混淆[7]、加密函數(shù)[8]、執(zhí)行跟蹤[9]等,但在移動代理本身的安全性或?qū)Υ硭姓叩睦鏄?gòu)成威脅方面,還有其他未解決的問題,其中移動代理數(shù)據(jù)的保護(hù)問題是最重要的問題之一。
本文基于密鑰委托的思想,利用可信計算技術(shù)[10],提出了一種移動代理私鑰委托的方法,實現(xiàn)了對移動代理所攜帶數(shù)據(jù)的有效保護(hù)。方法是使用對稱密鑰和公鑰加密方法來保護(hù)數(shù)據(jù)和密鑰,可以有效地避免移動代理的私鑰暴露。
2 可信計算技術(shù)
可信計算最早是由可信計算組織TCG提出的一個概念。其基本思想是在計算機系統(tǒng)中建立一個信任根,通過建立信任鏈,實現(xiàn)逐級測量認(rèn)證,逐級信任擴(kuò)展,進(jìn)而把信任關(guān)系擴(kuò)大到整個計算機系統(tǒng),保證計算機系統(tǒng)的可信執(zhí)行。
其中,最重要的技術(shù)是可信計算平臺模塊(Trusted Platform Module,TPM)。TPM是一種SOC芯片,它是可信計算平臺的信任根,由存儲器I/O、CPU、密碼協(xié)處理器、隨機數(shù)發(fā)生器和嵌入式操作系統(tǒng)等部件組成,能夠進(jìn)行可信度量的存儲、可信度量的報告、密鑰生成、加密解密、數(shù)字簽名、數(shù)據(jù)安全存儲等任務(wù)。
TPM上層的支持軟件被稱作可信的軟件棧(TSS),可以提供兼容異構(gòu)可信平臺模塊的開發(fā)環(huán)境。安全應(yīng)用程序不能直接訪問TPM,而是通過調(diào)用TSS接口來使用TPM提供的安全功能。TSS可以為可信計算平臺的應(yīng)用層提供完整性保護(hù)、身份可信性認(rèn)證、數(shù)據(jù)安全保護(hù)等可信特征功能。遵照不同規(guī)范的TSS產(chǎn)品實現(xiàn)機制可能會不同,但只要TSS能實現(xiàn)相對應(yīng)的可信特征功能,同樣可以達(dá)到安全要求。TSS 由三個邏輯組件組成:TCG 設(shè)備驅(qū)動程序庫(TDDL)、 TCG 核心服務(wù)(TCS)和TCG 服務(wù)提供者(TSP)。TSS 可以獨占的打開 TPM 設(shè)備驅(qū)動,而不允許應(yīng)用程序通過其他繞開TSS的方法與TPM設(shè)備建立連接。本文使用的技術(shù)包括TPM和TSS。
3 技術(shù)方案與原理
3.1 基本安全假設(shè)
本文的安全方案基于兩個基本假設(shè)。
假設(shè)1:移動代理要訪問的每個云服務(wù)主機上都有一個TPM,并且TPM的狀態(tài)應(yīng)該是活動的和正常工作的。
假設(shè)2:移動代理的執(zhí)行不受其他進(jìn)程的干擾,移動代理進(jìn)程使用的內(nèi)存是隔離的,不能被其他進(jìn)程篡改或窺視。
這些假設(shè)可以通過TCG提供的各種證明協(xié)議來實現(xiàn)和驗證。
3.2 方案概述
總體設(shè)計思路是通過將密鑰存儲在TPM中避免其泄露,或者使用受TPM保護(hù)的另一密鑰對其進(jìn)行加密來保護(hù)密鑰。由此形成了一個密鑰層次結(jié)構(gòu)樹,葉節(jié)點是受保護(hù)的委托密鑰,用于加密移動代理的數(shù)據(jù),中間節(jié)點是存儲根密鑰,根節(jié)點是TPM的存儲信任根。在密鑰保護(hù)過程中,需要使用TPM的易失性內(nèi)存。TPM負(fù)責(zé)執(zhí)行活動密鑰和非活動密鑰的交換和分析,結(jié)構(gòu)樹如圖1所示。
存儲信任根(RTS)保護(hù)委托給TPM的密鑰(和其他數(shù)據(jù))。RTS管理少量易失性內(nèi)存,在這些內(nèi)存中,密鑰在執(zhí)行簽名和解密操作時被保存。非活動密鑰可以加密并移出芯片,為其他活動密鑰騰出空間。每個TPM都有一個存儲根密鑰(SRK),它在硬件內(nèi)部受到保護(hù),從未暴露在任何介質(zhì)中。存儲在TPM外部的密鑰受SRK保護(hù),密鑰可以是對稱密鑰,也可以是私鑰收到保護(hù)的非對稱密鑰對。
3.3 密鑰委托
在將移動代理發(fā)送到云服務(wù)主機之前,需要將代理的私鑰傳遞給TPM。私鑰的分發(fā)需要一個安全的通道,在方法中,使用TPM的認(rèn)證身份密鑰(AIK)來保護(hù)私鑰,這樣就不需要更多的密鑰,密鑰委托過程如圖2所示。
該過程中的H(A)是移動代理代碼的哈希值,用于驗證。如果移動代理的遷移路徑是預(yù)先固定的,代理的啟動程序可以提前將SK_A分發(fā)給該遷移路徑中的每臺云服務(wù)平臺主機。但是,如果行程是可變的,或者移動代理必須動態(tài)地選擇下一步節(jié)點,那么代理可以承擔(dān)關(guān)鍵的委托工作。在這種情況下,在移動代理從下一臺主機獲得一個AIK公鑰PK_AIK_NX并對其進(jìn)行驗證之后,調(diào)用當(dāng)前云服務(wù)主機上的TPM函數(shù),用PK_AIK_NX對SK_A進(jìn)行加密。ENCPK_AIK_NX(SK_A||H(A)的過程,將在當(dāng)前TPM中執(zhí)行,這樣SK_A就不會暴露。在這兩種情況下,只有具有正確AIK私鑰的TPM,才能解密代理的私鑰,保證私鑰的安全性。
3.4 身份驗證
移動代理必須向TPM進(jìn)行身份驗證,才能使用其私鑰。如果允許其他應(yīng)用程序使用私鑰,整個方案將毫無意義。由于代碼決定程序的行為,而代碼對于移動代理是唯一的,惡意移動代理就不可能擁有與正常移動代理相同的代碼。考慮到代碼在遷移期間是穩(wěn)定的,使用二進(jìn)制代碼的散列值進(jìn)行身份驗證。散列值H(A)與移動代理的私鑰一起傳遞,并在TPM的保護(hù)下存儲。為了確定移動代理的真實性和完整性,TPM只需要將代碼部分進(jìn)行哈希,并將其與H(A)進(jìn)行比較。如果某個移動代理的代碼被惡意破壞或篡改,它將無法通過身份驗證。
3.5 完整性保護(hù)
完整性保護(hù)的目的是讓移動代理檢查其數(shù)據(jù)在上一臺云服務(wù)主機上執(zhí)行以后是否被篡改。在離開上一臺云服務(wù)主機之前,移動代理對其數(shù)據(jù)計算哈希值,然后調(diào)用TPM與存儲在TPM中的代理私鑰對數(shù)據(jù)進(jìn)行簽名。然后,簽名塊與代理一起發(fā)送到下一臺云服務(wù)主機。當(dāng)后繼云服務(wù)主機將移動代理加載到內(nèi)存中時,移動代理使用公鑰對數(shù)據(jù)進(jìn)行簽名驗證,檢查原始數(shù)據(jù)是否被修改。由于非對稱密鑰的公鑰部分不需要保護(hù),因此該公鑰可以與移動代理一起攜帶,而不需要考慮任何安全問題。
必須確保只有移動代理才能調(diào)用TPM以使用其私鑰執(zhí)行加密/解密。如果允許其他應(yīng)用程序執(zhí)行此操作,則會有惡意應(yīng)用程序?qū)⒋頂?shù)據(jù)修改,并使用合法的簽名私鑰生成合法的數(shù)字簽名。當(dāng)數(shù)據(jù)連同簽名被發(fā)送到下一臺云服務(wù)主機時,會接受此數(shù)據(jù)和簽名。因此,移動代理必須通過向TPM進(jìn)行身份驗證才能使用其私鑰。TPM規(guī)范[10]為應(yīng)用程序向TPM進(jìn)行身份驗證提供了方法。
3.6 基于TSS的TPM訪問
在移動代理實現(xiàn)方案中設(shè)計了一個專門的模塊,用來與TSS交互,實現(xiàn)TPM訪問。TPM的計算能力有限,存儲資源較少,僅對外提供基本功能接口。為了充分應(yīng)用TPM,在TPM外部套接一個可信計算軟件棧TSS,作為TPM的支撐軟件,從而可以簡單直接地訪問TPM。TSS由設(shè)備驅(qū)動程序庫、TSS核心服務(wù)、TCG服務(wù)提供者三個邏輯組件構(gòu)成。首先,提供了與TPM設(shè)備驅(qū)動程序進(jìn)行交互的API庫,用來打開和關(guān)閉TPM設(shè)備驅(qū)動程序、發(fā)送和接收數(shù)據(jù)塊、查詢設(shè)備驅(qū)動程序的屬性、取消已經(jīng)提交的TPM命令。另外,提供了一個TPM命令數(shù)據(jù)塊產(chǎn)生器和一個全局的密鑰存儲設(shè)備,用來管理TPM的資源。最后,通過共享對象或動態(tài)鏈接庫直接被應(yīng)用程序調(diào)用。移動代理運行在操作系統(tǒng)的用戶模式,通過調(diào)用API訪問TSS,進(jìn)而實現(xiàn)對TPM的訪問和使用。
4 實驗與性能分析
文中使用Jade平臺實現(xiàn)了設(shè)計的安全機制,Jade平臺是一個符合FIPA的代理平臺。該系統(tǒng)基于Jade平臺提供的“圖書交易”示例,擴(kuò)展了其中的銷售代理類來創(chuàng)建云服務(wù)主機代理類,擴(kuò)展了采購代理類來創(chuàng)建移動代理類。本文設(shè)計了一個tpm_helper類來封裝的TPM操作,該類是從示例的類“behavior”擴(kuò)展而來的。擴(kuò)展“behavior”類并創(chuàng)建另一個類來處理移動代理的遷移操作。分別模擬實現(xiàn)了云服務(wù)器C1和C2、移動代理云服務(wù)平臺主機P1、P2、P3、P4和P5。其中,云服務(wù)器使用了兩臺配備有3.20GHz Intel i5-6500四核處理器和8GB運行內(nèi)存的戴爾OptiPlex 5250臺式計算機,其操作系統(tǒng)為Windows 10。移動代理云服務(wù)平臺主機,使用了5臺配有英特爾酷睿i7處理器和8G內(nèi)存的聯(lián)想(Lenovo)天逸510 Pro 臺式機。
首先,為了驗證方案的有效性。分別創(chuàng)建了2個移動代理實例Agent1和Agent2,分別攜帶100MB和200MB的模擬交易數(shù)據(jù)。通過預(yù)先設(shè)定代理遷移條件,使Agent1完成了P1 P3 P2 P5的遷移路徑,Agent2完成了P1 P4 P3 P5 P2的遷移路徑。在兩次移動代理遷移過程中,對移動代理數(shù)據(jù)和移動代理云服務(wù)平臺主機進(jìn)程進(jìn)行了檢測,移動代理數(shù)據(jù)在平臺主機上能夠正常使用,平臺主機進(jìn)程利用TSS機制訪問TPM,并實現(xiàn)了密鑰委托,即沒有移動代理的私鑰被暴露在網(wǎng)絡(luò)傳輸過程中。移動代理的遷移路徑,如圖3所示。
然后,通過實驗測試了移動代理遷移所消耗的時間,采用不同大小的代理數(shù)據(jù)測量了遷移耗時與數(shù)據(jù)大小的關(guān)系,結(jié)果如圖4所示。
從圖4中可以看出,移動代理遷移耗時與數(shù)據(jù)大小呈線性關(guān)系,密鑰獲取等操作不受數(shù)據(jù)大小的影響。因此,該方案具有較強的實用性。
5 結(jié)束語
針對移動代理技術(shù)在云計算環(huán)境中面臨的數(shù)據(jù)安全保護(hù)問題,本文提出了一種私鑰委托技術(shù),利用可信計算技術(shù)提供的新功能和機制,采用公鑰和對稱密鑰加密手段進(jìn)行數(shù)據(jù)和密鑰保護(hù),能夠有效地解決云計算環(huán)境中移動代理所帶來的數(shù)據(jù)保護(hù)問題。該方法通過將移動代理的私鑰委托給防篡改硬件,通過可信硬件實現(xiàn)私鑰使用的安全性保護(hù)。實驗證明,該方法具有執(zhí)行效率高、實用性強等特點。
參考文獻(xiàn)
[1] J.-H. Morin. HyperNews: a Hyper–Media Electronic Newspaper based on Agents[C]. In Proceedings of HICSS-31, Hawai Inter-na-tional Conference on System Sciences, Kona, Hawaii, January 1998:58–67.
[2] Danny B. Lange, Mitsuru Oshima. Seven Good Reasons for Mo-bile Agents[J]. Communication of the ACM March 1999,42(3):88-89
[3] 呂華章, 陳丹, 范斌,等. 邊緣計算標(biāo)準(zhǔn)化進(jìn)展與案例分析[J]. 計算機研究與發(fā)展, 2018, 55(3): 487-511.
[4] Li Gong. Java Security Architecture[J].Technical report,1998.
[5] D. Volpano and G. Smith. Language issues in mobile program security[J]. Mobile Agents and Security,1998.
[6] G. Necula and P. Lee. Safe kernel extensions without run-time checking[J]. Proceedings of the 2nd Symposium on Operating System Design and Implementation (OSDI '96),1996.
[7] 趙玉潔, 湯戰(zhàn)勇, 王妮,等. 代碼混淆算法有效性評估[J].軟件學(xué)報,2012.
[8] 張明武, 楊波, TAKAGI Tsuyoshi. 抗主密鑰泄露和連續(xù)泄露的雙態(tài)仿射函數(shù)加密[J].計算機學(xué)報,2012.
[9] 李佳妮.基于拓?fù)浣Y(jié)構(gòu)的軟件執(zhí)行過程安全加固技術(shù)的研究[D].北京理工大學(xué),2016.
LI J N. Research on secure reinforcement technology during soft-ware implementation process based on topological structure[D]. Beijing Institute of Technology, 2016.
[10] 沈昌祥,張煥國,王懷民,等.可信計算的研究與發(fā)展[J].中國科學(xué):信息科學(xué),2010(2).
作者簡介:
杭菲璐(1984-),男,漢族,云南昭通人,云南大學(xué),碩士,云南電網(wǎng)有限責(zé)任公司信息中心,工程師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。
陳小丹(1994-),女,山東濰坊人,青島大學(xué)計算機科學(xué)技術(shù)學(xué)院,碩士研究生;主要研究方向和關(guān)注領(lǐng)域:信息安全。
方寧(1979-),男,山東濟(jì)南人,北京郵電大學(xué),碩士;主要研究方向和關(guān)注領(lǐng)域:移動安全、程序安全。
謝林江(1985-),男,漢族,云南曲靖人,云南大學(xué),學(xué)士,云南電網(wǎng)有限責(zé)任公司信息中心,助理工程師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。