杭菲璐 陳小丹 方寧 謝林江
摘? ?要:移動(dòng)代理技術(shù)在云計(jì)算環(huán)境中被廣泛應(yīng)用,但其安全問題不可忽視,其中數(shù)據(jù)安全成為制約其發(fā)展的主要因素之一。文章提出了一種私鑰委托技術(shù),有效地解決了云計(jì)算環(huán)境中移動(dòng)代理所攜帶的數(shù)據(jù)保護(hù)問題。該方法利用可信計(jì)算技術(shù)提供的新功能和機(jī)制,采用公鑰和對(duì)稱密鑰加密手段進(jìn)行數(shù)據(jù)和密鑰保護(hù),其最顯著的特點(diǎn)是,它通過將移動(dòng)代理的私鑰委托給防篡改硬件,使私鑰的使用更加方便和安全。實(shí)驗(yàn)證明該方法執(zhí)行效率高,具有較高的使用價(jià)值。
關(guān)鍵詞:移動(dòng)代理;數(shù)據(jù)安全;密鑰委托
中圖分類號(hào):TP309? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: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 引言
移動(dòng)互聯(lián)網(wǎng)的發(fā)展使企業(yè)對(duì)用戶提供的服務(wù)和業(yè)務(wù)越來越多地通過Web應(yīng)用服務(wù)以及移動(dòng)應(yīng)用等途徑展開。移動(dòng)代理可以將計(jì)算任務(wù)移動(dòng)到它們需要訪問的資源附近,從而減少網(wǎng)絡(luò)通信、帶寬和延遲,具有明顯的計(jì)算優(yōu)勢[1,2]。這種優(yōu)化思想與邊緣計(jì)算技術(shù)類似[3],但其本質(zhì)仍然是云計(jì)算與移動(dòng)互聯(lián)網(wǎng)相結(jié)合的一種技術(shù)方法。
盡管移動(dòng)代理技術(shù)具有計(jì)算性能方面的優(yōu)勢和廣泛的應(yīng)用領(lǐng)域,但其發(fā)展?jié)摿κ艿搅税踩珕栴}的制約。在移動(dòng)互聯(lián)網(wǎng)這種不可信的、開放的網(wǎng)絡(luò)環(huán)境中,移動(dòng)代理技術(shù)面臨的安全問題大致可分為云服務(wù)主機(jī)安全和移動(dòng)代理安全。
云服務(wù)主機(jī)安全涉及保護(hù)主機(jī)平臺(tái)不受惡意移動(dòng)代理的攻擊,這些惡意移動(dòng)代理可能試圖在未經(jīng)授權(quán)的情況下,訪問本地資源或在平臺(tái)上發(fā)起惡意操作。另一方面,移動(dòng)代理的安全性旨在保護(hù)移動(dòng)代理免受惡意云服務(wù)主機(jī)平臺(tái)或云服務(wù)的攻擊。攻擊者可能試圖破壞正確的操作或操作其中包含的敏感數(shù)據(jù)。云服務(wù)主機(jī)安全的研究工作較多,研究者已經(jīng)提出許多可行的機(jī)制,包括沙箱安全(在Java中提供訪問控制)[4]、安全類型語言[5]和證明攜帶代碼[6]等。然而,這些與移動(dòng)代理本身相關(guān)的安全問題要嚴(yán)重得多,由此引發(fā)了云計(jì)算環(huán)境中移動(dòng)代理場景特有的安全問題。眾所周知的安全機(jī)制包括代碼混淆[7]、加密函數(shù)[8]、執(zhí)行跟蹤[9]等,但在移動(dòng)代理本身的安全性或?qū)Υ硭姓叩睦鏄?gòu)成威脅方面,還有其他未解決的問題,其中移動(dòng)代理數(shù)據(jù)的保護(hù)問題是最重要的問題之一。
本文基于密鑰委托的思想,利用可信計(jì)算技術(shù)[10],提出了一種移動(dòng)代理私鑰委托的方法,實(shí)現(xiàn)了對(duì)移動(dòng)代理所攜帶數(shù)據(jù)的有效保護(hù)。方法是使用對(duì)稱密鑰和公鑰加密方法來保護(hù)數(shù)據(jù)和密鑰,可以有效地避免移動(dòng)代理的私鑰暴露。
2 可信計(jì)算技術(shù)
可信計(jì)算最早是由可信計(jì)算組織TCG提出的一個(gè)概念。其基本思想是在計(jì)算機(jī)系統(tǒng)中建立一個(gè)信任根,通過建立信任鏈,實(shí)現(xiàn)逐級(jí)測量認(rèn)證,逐級(jí)信任擴(kuò)展,進(jìn)而把信任關(guān)系擴(kuò)大到整個(gè)計(jì)算機(jī)系統(tǒng),保證計(jì)算機(jī)系統(tǒng)的可信執(zhí)行。
其中,最重要的技術(shù)是可信計(jì)算平臺(tái)模塊(Trusted Platform Module,TPM)。TPM是一種SOC芯片,它是可信計(jì)算平臺(tái)的信任根,由存儲(chǔ)器I/O、CPU、密碼協(xié)處理器、隨機(jī)數(shù)發(fā)生器和嵌入式操作系統(tǒng)等部件組成,能夠進(jìn)行可信度量的存儲(chǔ)、可信度量的報(bào)告、密鑰生成、加密解密、數(shù)字簽名、數(shù)據(jù)安全存儲(chǔ)等任務(wù)。
TPM上層的支持軟件被稱作可信的軟件棧(TSS),可以提供兼容異構(gòu)可信平臺(tái)模塊的開發(fā)環(huán)境。安全應(yīng)用程序不能直接訪問TPM,而是通過調(diào)用TSS接口來使用TPM提供的安全功能。TSS可以為可信計(jì)算平臺(tái)的應(yīng)用層提供完整性保護(hù)、身份可信性認(rèn)證、數(shù)據(jù)安全保護(hù)等可信特征功能。遵照不同規(guī)范的TSS產(chǎn)品實(shí)現(xiàn)機(jī)制可能會(huì)不同,但只要TSS能實(shí)現(xiàn)相對(duì)應(yīng)的可信特征功能,同樣可以達(dá)到安全要求。TSS 由三個(gè)邏輯組件組成:TCG 設(shè)備驅(qū)動(dòng)程序庫(TDDL)、 TCG 核心服務(wù)(TCS)和TCG 服務(wù)提供者(TSP)。TSS 可以獨(dú)占的打開 TPM 設(shè)備驅(qū)動(dòng),而不允許應(yīng)用程序通過其他繞開TSS的方法與TPM設(shè)備建立連接。本文使用的技術(shù)包括TPM和TSS。
3 技術(shù)方案與原理
3.1 基本安全假設(shè)
本文的安全方案基于兩個(gè)基本假設(shè)。
假設(shè)1:移動(dòng)代理要訪問的每個(gè)云服務(wù)主機(jī)上都有一個(gè)TPM,并且TPM的狀態(tài)應(yīng)該是活動(dòng)的和正常工作的。
假設(shè)2:移動(dòng)代理的執(zhí)行不受其他進(jìn)程的干擾,移動(dòng)代理進(jìn)程使用的內(nèi)存是隔離的,不能被其他進(jìn)程篡改或窺視。
這些假設(shè)可以通過TCG提供的各種證明協(xié)議來實(shí)現(xiàn)和驗(yàn)證。
3.2 方案概述
總體設(shè)計(jì)思路是通過將密鑰存儲(chǔ)在TPM中避免其泄露,或者使用受TPM保護(hù)的另一密鑰對(duì)其進(jìn)行加密來保護(hù)密鑰。由此形成了一個(gè)密鑰層次結(jié)構(gòu)樹,葉節(jié)點(diǎn)是受保護(hù)的委托密鑰,用于加密移動(dòng)代理的數(shù)據(jù),中間節(jié)點(diǎn)是存儲(chǔ)根密鑰,根節(jié)點(diǎn)是TPM的存儲(chǔ)信任根。在密鑰保護(hù)過程中,需要使用TPM的易失性內(nèi)存。TPM負(fù)責(zé)執(zhí)行活動(dòng)密鑰和非活動(dòng)密鑰的交換和分析,結(jié)構(gòu)樹如圖1所示。
存儲(chǔ)信任根(RTS)保護(hù)委托給TPM的密鑰(和其他數(shù)據(jù))。RTS管理少量易失性內(nèi)存,在這些內(nèi)存中,密鑰在執(zhí)行簽名和解密操作時(shí)被保存。非活動(dòng)密鑰可以加密并移出芯片,為其他活動(dòng)密鑰騰出空間。每個(gè)TPM都有一個(gè)存儲(chǔ)根密鑰(SRK),它在硬件內(nèi)部受到保護(hù),從未暴露在任何介質(zhì)中。存儲(chǔ)在TPM外部的密鑰受SRK保護(hù),密鑰可以是對(duì)稱密鑰,也可以是私鑰收到保護(hù)的非對(duì)稱密鑰對(duì)。
3.3 密鑰委托
在將移動(dòng)代理發(fā)送到云服務(wù)主機(jī)之前,需要將代理的私鑰傳遞給TPM。私鑰的分發(fā)需要一個(gè)安全的通道,在方法中,使用TPM的認(rèn)證身份密鑰(AIK)來保護(hù)私鑰,這樣就不需要更多的密鑰,密鑰委托過程如圖2所示。
該過程中的H(A)是移動(dòng)代理代碼的哈希值,用于驗(yàn)證。如果移動(dòng)代理的遷移路徑是預(yù)先固定的,代理的啟動(dòng)程序可以提前將SK_A分發(fā)給該遷移路徑中的每臺(tái)云服務(wù)平臺(tái)主機(jī)。但是,如果行程是可變的,或者移動(dòng)代理必須動(dòng)態(tài)地選擇下一步節(jié)點(diǎn),那么代理可以承擔(dān)關(guān)鍵的委托工作。在這種情況下,在移動(dòng)代理從下一臺(tái)主機(jī)獲得一個(gè)AIK公鑰PK_AIK_NX并對(duì)其進(jìn)行驗(yàn)證之后,調(diào)用當(dāng)前云服務(wù)主機(jī)上的TPM函數(shù),用PK_AIK_NX對(duì)SK_A進(jìn)行加密。ENCPK_AIK_NX(SK_A||H(A)的過程,將在當(dāng)前TPM中執(zhí)行,這樣SK_A就不會(huì)暴露。在這兩種情況下,只有具有正確AIK私鑰的TPM,才能解密代理的私鑰,保證私鑰的安全性。
3.4 身份驗(yàn)證
移動(dòng)代理必須向TPM進(jìn)行身份驗(yàn)證,才能使用其私鑰。如果允許其他應(yīng)用程序使用私鑰,整個(gè)方案將毫無意義。由于代碼決定程序的行為,而代碼對(duì)于移動(dòng)代理是唯一的,惡意移動(dòng)代理就不可能擁有與正常移動(dòng)代理相同的代碼。考慮到代碼在遷移期間是穩(wěn)定的,使用二進(jìn)制代碼的散列值進(jìn)行身份驗(yàn)證。散列值H(A)與移動(dòng)代理的私鑰一起傳遞,并在TPM的保護(hù)下存儲(chǔ)。為了確定移動(dòng)代理的真實(shí)性和完整性,TPM只需要將代碼部分進(jìn)行哈希,并將其與H(A)進(jìn)行比較。如果某個(gè)移動(dòng)代理的代碼被惡意破壞或篡改,它將無法通過身份驗(yàn)證。
3.5 完整性保護(hù)
完整性保護(hù)的目的是讓移動(dòng)代理檢查其數(shù)據(jù)在上一臺(tái)云服務(wù)主機(jī)上執(zhí)行以后是否被篡改。在離開上一臺(tái)云服務(wù)主機(jī)之前,移動(dòng)代理對(duì)其數(shù)據(jù)計(jì)算哈希值,然后調(diào)用TPM與存儲(chǔ)在TPM中的代理私鑰對(duì)數(shù)據(jù)進(jìn)行簽名。然后,簽名塊與代理一起發(fā)送到下一臺(tái)云服務(wù)主機(jī)。當(dāng)后繼云服務(wù)主機(jī)將移動(dòng)代理加載到內(nèi)存中時(shí),移動(dòng)代理使用公鑰對(duì)數(shù)據(jù)進(jìn)行簽名驗(yàn)證,檢查原始數(shù)據(jù)是否被修改。由于非對(duì)稱密鑰的公鑰部分不需要保護(hù),因此該公鑰可以與移動(dòng)代理一起攜帶,而不需要考慮任何安全問題。
必須確保只有移動(dòng)代理才能調(diào)用TPM以使用其私鑰執(zhí)行加密/解密。如果允許其他應(yīng)用程序執(zhí)行此操作,則會(huì)有惡意應(yīng)用程序?qū)⒋頂?shù)據(jù)修改,并使用合法的簽名私鑰生成合法的數(shù)字簽名。當(dāng)數(shù)據(jù)連同簽名被發(fā)送到下一臺(tái)云服務(wù)主機(jī)時(shí),會(huì)接受此數(shù)據(jù)和簽名。因此,移動(dòng)代理必須通過向TPM進(jìn)行身份驗(yàn)證才能使用其私鑰。TPM規(guī)范[10]為應(yīng)用程序向TPM進(jìn)行身份驗(yàn)證提供了方法。
3.6 基于TSS的TPM訪問
在移動(dòng)代理實(shí)現(xiàn)方案中設(shè)計(jì)了一個(gè)專門的模塊,用來與TSS交互,實(shí)現(xiàn)TPM訪問。TPM的計(jì)算能力有限,存儲(chǔ)資源較少,僅對(duì)外提供基本功能接口。為了充分應(yīng)用TPM,在TPM外部套接一個(gè)可信計(jì)算軟件棧TSS,作為TPM的支撐軟件,從而可以簡單直接地訪問TPM。TSS由設(shè)備驅(qū)動(dòng)程序庫、TSS核心服務(wù)、TCG服務(wù)提供者三個(gè)邏輯組件構(gòu)成。首先,提供了與TPM設(shè)備驅(qū)動(dòng)程序進(jìn)行交互的API庫,用來打開和關(guān)閉TPM設(shè)備驅(qū)動(dòng)程序、發(fā)送和接收數(shù)據(jù)塊、查詢?cè)O(shè)備驅(qū)動(dòng)程序的屬性、取消已經(jīng)提交的TPM命令。另外,提供了一個(gè)TPM命令數(shù)據(jù)塊產(chǎn)生器和一個(gè)全局的密鑰存儲(chǔ)設(shè)備,用來管理TPM的資源。最后,通過共享對(duì)象或動(dòng)態(tài)鏈接庫直接被應(yīng)用程序調(diào)用。移動(dòng)代理運(yùn)行在操作系統(tǒng)的用戶模式,通過調(diào)用API訪問TSS,進(jìn)而實(shí)現(xiàn)對(duì)TPM的訪問和使用。
4 實(shí)驗(yàn)與性能分析
文中使用Jade平臺(tái)實(shí)現(xiàn)了設(shè)計(jì)的安全機(jī)制,Jade平臺(tái)是一個(gè)符合FIPA的代理平臺(tái)。該系統(tǒng)基于Jade平臺(tái)提供的“圖書交易”示例,擴(kuò)展了其中的銷售代理類來創(chuàng)建云服務(wù)主機(jī)代理類,擴(kuò)展了采購代理類來創(chuàng)建移動(dòng)代理類。本文設(shè)計(jì)了一個(gè)tpm_helper類來封裝的TPM操作,該類是從示例的類“behavior”擴(kuò)展而來的。擴(kuò)展“behavior”類并創(chuàng)建另一個(gè)類來處理移動(dòng)代理的遷移操作。分別模擬實(shí)現(xiàn)了云服務(wù)器C1和C2、移動(dòng)代理云服務(wù)平臺(tái)主機(jī)P1、P2、P3、P4和P5。其中,云服務(wù)器使用了兩臺(tái)配備有3.20GHz Intel i5-6500四核處理器和8GB運(yùn)行內(nèi)存的戴爾OptiPlex 5250臺(tái)式計(jì)算機(jī),其操作系統(tǒng)為Windows 10。移動(dòng)代理云服務(wù)平臺(tái)主機(jī),使用了5臺(tái)配有英特爾酷睿i7處理器和8G內(nèi)存的聯(lián)想(Lenovo)天逸510 Pro 臺(tái)式機(jī)。
首先,為了驗(yàn)證方案的有效性。分別創(chuàng)建了2個(gè)移動(dòng)代理實(shí)例Agent1和Agent2,分別攜帶100MB和200MB的模擬交易數(shù)據(jù)。通過預(yù)先設(shè)定代理遷移條件,使Agent1完成了P1 P3 P2 P5的遷移路徑,Agent2完成了P1 P4 P3 P5 P2的遷移路徑。在兩次移動(dòng)代理遷移過程中,對(duì)移動(dòng)代理數(shù)據(jù)和移動(dòng)代理云服務(wù)平臺(tái)主機(jī)進(jìn)程進(jìn)行了檢測,移動(dòng)代理數(shù)據(jù)在平臺(tái)主機(jī)上能夠正常使用,平臺(tái)主機(jī)進(jìn)程利用TSS機(jī)制訪問TPM,并實(shí)現(xiàn)了密鑰委托,即沒有移動(dòng)代理的私鑰被暴露在網(wǎng)絡(luò)傳輸過程中。移動(dòng)代理的遷移路徑,如圖3所示。
然后,通過實(shí)驗(yàn)測試了移動(dòng)代理遷移所消耗的時(shí)間,采用不同大小的代理數(shù)據(jù)測量了遷移耗時(shí)與數(shù)據(jù)大小的關(guān)系,結(jié)果如圖4所示。
從圖4中可以看出,移動(dòng)代理遷移耗時(shí)與數(shù)據(jù)大小呈線性關(guān)系,密鑰獲取等操作不受數(shù)據(jù)大小的影響。因此,該方案具有較強(qiáng)的實(shí)用性。
5 結(jié)束語
針對(duì)移動(dòng)代理技術(shù)在云計(jì)算環(huán)境中面臨的數(shù)據(jù)安全保護(hù)問題,本文提出了一種私鑰委托技術(shù),利用可信計(jì)算技術(shù)提供的新功能和機(jī)制,采用公鑰和對(duì)稱密鑰加密手段進(jìn)行數(shù)據(jù)和密鑰保護(hù),能夠有效地解決云計(jì)算環(huán)境中移動(dòng)代理所帶來的數(shù)據(jù)保護(hù)問題。該方法通過將移動(dòng)代理的私鑰委托給防篡改硬件,通過可信硬件實(shí)現(xiàn)私鑰使用的安全性保護(hù)。實(shí)驗(yàn)證明,該方法具有執(zhí)行效率高、實(shí)用性強(qiáng)等特點(diǎn)。
參考文獻(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] 呂華章, 陳丹, 范斌,等. 邊緣計(jì)算標(biāo)準(zhǔn)化進(jìn)展與案例分析[J]. 計(jì)算機(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)勇, 王妮,等. 代碼混淆算法有效性評(píng)估[J].軟件學(xué)報(bào),2012.
[8] 張明武, 楊波, TAKAGI Tsuyoshi. 抗主密鑰泄露和連續(xù)泄露的雙態(tài)仿射函數(shù)加密[J].計(jì)算機(jī)學(xué)報(bào),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] 沈昌祥,張煥國,王懷民,等.可信計(jì)算的研究與發(fā)展[J].中國科學(xué):信息科學(xué),2010(2).
作者簡介:
杭菲璐(1984-),男,漢族,云南昭通人,云南大學(xué),碩士,云南電網(wǎng)有限責(zé)任公司信息中心,工程師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。
陳小丹(1994-),女,山東濰坊人,青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,碩士研究生;主要研究方向和關(guān)注領(lǐng)域:信息安全。
方寧(1979-),男,山東濟(jì)南人,北京郵電大學(xué),碩士;主要研究方向和關(guān)注領(lǐng)域:移動(dòng)安全、程序安全。
謝林江(1985-),男,漢族,云南曲靖人,云南大學(xué),學(xué)士,云南電網(wǎng)有限責(zé)任公司信息中心,助理工程師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。