云計算中的虛擬化技術(shù)與虛擬化安全
引 言
近年來,云計算的應(yīng)用范圍越來越廣泛,并正在逐漸取代傳統(tǒng)的計算模式,成為各大互聯(lián)網(wǎng)公司爭相發(fā)展的核心技術(shù)。虛擬化技術(shù)是云計算的核心技術(shù)之一,云計算服務(wù)提供商通過虛擬化軟件將硬件資源虛擬化為巨大的動態(tài)的資源池, 動態(tài)的、按需分配的為用戶提供計算資源。虛擬化技術(shù)是云計算較傳統(tǒng)計算模式最顯著的特點(diǎn),同時,虛擬化技術(shù)帶來的安全問題也是傳統(tǒng)計算模式所不具有的,是云計算安全特有的核心問題 [1]。目前對于虛擬化安全的研究,主要集中在虛擬機(jī)隔離,虛擬機(jī)滲透,和虛擬機(jī)遷移等方面??梢圆捎玫陌踩胧┯性L問控制,構(gòu)造可信鏈和對用戶數(shù)據(jù)和傳輸?shù)男帕钸M(jìn)行加密等。目前,云服務(wù)提供商使用傳統(tǒng)的數(shù)據(jù)加密算法對用戶存儲在云中的數(shù)據(jù)進(jìn)行加密。由于傳統(tǒng)的數(shù)據(jù)加密算法不能對密文直接進(jìn)行操作,必須先將密文解密,再對明文進(jìn)行操作,之后對結(jié)果進(jìn)行加密,因此產(chǎn)生了潛在的明文數(shù)據(jù)泄露風(fēng)險[2]。本文提出使用同態(tài)加密算法對用戶數(shù)據(jù)進(jìn)行加密操作。同態(tài)加密算法是近年來密碼學(xué)中研究的熱點(diǎn)之一,同態(tài)加密算法可以實(shí)現(xiàn)在不對密文進(jìn)行解密的前提下,直接對密文進(jìn)行相關(guān)操作,操作結(jié)果與對明文進(jìn)行解密再進(jìn)行相同操作并對結(jié)果進(jìn)行加密的最終輸出一致。同態(tài)加密算法保證了用戶數(shù)據(jù)安全性的同時,由于省去了解密和加密的操作,提高了云存儲中的大數(shù)據(jù)的處理效率[3]。
1 虛擬化技術(shù)
云計算使用虛擬化技術(shù)在服務(wù)器的硬件資源與用戶之間
加設(shè)虛擬化層,虛擬化層負(fù)責(zé)與用戶進(jìn)行交互,并調(diào)用底層所有的硬件設(shè)備及計算資源。云計算的虛擬化模型如圖 1 所示。
用戶通過租賃云平臺中的虛擬機(jī)來獲得云服務(wù)提供商的服務(wù),而虛擬化層負(fù)責(zé)用戶虛擬機(jī)的創(chuàng)建,銷毀,遷移等操作。目前主流的虛擬化架構(gòu)包括裸金屬架構(gòu)和寄居架構(gòu)[4]。裸金屬架構(gòu)如圖 2 所示。
在裸金屬架構(gòu)下,不需要為服務(wù)器預(yù)裝操作系統(tǒng),虛擬化軟件直接部署在服務(wù)器的硬件資源上,虛擬機(jī)管理器VMM(VirtualMachineMonitor)負(fù)責(zé)從實(shí)際的物理資源到虛擬資源的映射操作,VMM負(fù)責(zé)為用戶分配虛擬機(jī)。當(dāng)用戶請求訪問物理資源時,VMM將對這些請求進(jìn)行處理,并對相應(yīng)的信令進(jìn)行模擬,之后操作底層的硬件設(shè)備,并將結(jié)果返回給用戶。目前,裸金屬虛擬化架構(gòu)的實(shí)現(xiàn)方式包括硬件輔助的完全虛擬化和軟件輔助的完全虛擬化以及半虛擬化架構(gòu)。硬件輔助的完全虛擬化架構(gòu)必須對服務(wù)器的CPU進(jìn)行修改,使新的處理器可以理解虛擬化信令,并對信令進(jìn)行處理,最后將處理結(jié)果通過異常的方式返回給VMM。硬件輔助的完全虛擬化架構(gòu)的典型代表是Intel Virtualization Technology(VT-x),Microsoft的Hyper-V技術(shù)和 AMD的 AMD-V技術(shù)。軟件輔助的完全虛擬化架構(gòu)不需要對服務(wù)器的處理器進(jìn)行修改,但是VMM 必須對所有指令進(jìn)行處理,將指令進(jìn)行動態(tài)翻譯,從而實(shí)現(xiàn)對硬件資源的操作,這種虛擬化架構(gòu)的執(zhí)行效率低下,指令轉(zhuǎn)換引擎的工作效率對性能的影響很大。軟件輔助的完全虛擬化的典型代表是VMware ESX Server,VMware Station 和Microsoft 的Virtual Server 等。完全虛擬化架構(gòu)不需要對用戶操作系統(tǒng)做任何更改,所有指令轉(zhuǎn)換都由VMM 或更改后的處理器完成,性能較差。與其相對應(yīng)的虛擬化架構(gòu)是半虛擬化架構(gòu),半虛擬化架構(gòu)通過修改用戶操作系統(tǒng)的內(nèi)核,將不能夠進(jìn)行虛擬化的信令進(jìn)行更改以實(shí)現(xiàn)客戶操作系統(tǒng)與虛擬化平臺的兼容性,半虛擬化架構(gòu)的性能優(yōu)越,是目前各互聯(lián)網(wǎng)公司主要發(fā)展的虛擬化技術(shù)[5]。半虛擬化技術(shù)的典型代表是Xen。
2 虛擬化安全
用戶通過租賃虛擬機(jī)來獲得云服務(wù)提供的計算資源,虛擬化層直接與用戶進(jìn)行交互,并對底層的硬件資源進(jìn)行調(diào)用。因此,虛擬化安全是云計算安全的核心問題。目前,虛擬環(huán)境中主要存在以下幾種攻擊方式。
(1) 對管理虛擬機(jī)的攻擊,由于管理虛擬機(jī)負(fù)責(zé)所有用戶虛擬機(jī)的創(chuàng)建,刪除,移植等操作,并且對于用戶虛擬機(jī)具有最高的管理權(quán)限,因此一旦管理虛擬機(jī)被攻破,則所有的用戶數(shù)據(jù)都將完全暴露給攻擊者。對于管理虛擬機(jī)的攻擊被公認(rèn)為虛擬環(huán)境中最嚴(yán)重的攻擊,也是攻擊者首選的攻擊方式。
(2) 虛擬機(jī)之間的攻擊,攻擊者可能會通過一臺虛擬機(jī)來獲取另一臺虛擬機(jī)的訪問權(quán)限,從而監(jiān)控另一臺虛擬機(jī)的網(wǎng)絡(luò)流量等參數(shù),或者對其配置文件進(jìn)行修改,訪問其敏感數(shù)據(jù), 使其強(qiáng)制離線等。
(3) Dos攻擊,由于所有用戶的虛擬資源都來自于服務(wù)器的硬件資源,因此 Dos(DenialOfService)攻擊可以被加入到虛擬環(huán)境中,從而造成可以使用的資源緊缺,造成虛擬環(huán)境無法響應(yīng)用戶的正常資源請求[6]。
(4) 虛擬機(jī)移植攻擊,由于用戶的虛擬機(jī)是被動態(tài)創(chuàng)建出來為用戶提供特定服務(wù)的,當(dāng)服務(wù)結(jié)束或用戶申請離線后, 該虛擬機(jī)將被銷毀,其對應(yīng)的真實(shí)物理資源將被分配給之后請求資源的用戶。由于先前的用戶的操作會在此物理資源上留下痕跡,攻擊者有可能通過獲取此痕跡來獲取用戶操作特性或用戶數(shù)據(jù)占用空間大小等參數(shù),從而進(jìn)一步分析獲取用戶敏感數(shù)據(jù)[7]。
目前對于云計算的虛擬化安全的防護(hù)措施主要從以下幾個方面來實(shí)施:
(1) 訪問控制 :通過制定嚴(yán)格的訪問控制策略,以保證用戶不能訪問超出自己權(quán)限的文件,從而實(shí)現(xiàn)對敏感數(shù)據(jù)的保護(hù)[8]。
(2) 構(gòu)造可信鏈 :通過在云服務(wù)器中添加硬件可信模塊的手段,構(gòu)造可信鏈,從而保證虛擬服務(wù)器認(rèn)證的安全性[9]。
(3) 數(shù)據(jù)加密 :尋求更加高效安全的數(shù)據(jù)加密算法,對用戶存儲于云端的數(shù)據(jù)進(jìn)行加密,保證只有秘鑰的持有者才可以訪問加密數(shù)據(jù)。從而保障用戶數(shù)據(jù)的隱私性與安全性。
3 同態(tài)加密算法
由于云平臺中存儲著海量的用戶數(shù)據(jù),并且對數(shù)據(jù)的操作及其頻繁,傳統(tǒng)的加密算法需要對數(shù)據(jù)進(jìn)行解密之后才能進(jìn)行相應(yīng)操作,產(chǎn)生了安全風(fēng)險的同時,降低了云計算的操作效率。同態(tài)加密算法可以實(shí)現(xiàn)對密文直接進(jìn)行操作,操作結(jié)果與對密文先解密再進(jìn)行操作最后將結(jié)果進(jìn)行加密的最終輸出一致。因此,同態(tài)加密算法非常適合作為對云存儲中的用戶數(shù)據(jù)的加密算法,既保證了用戶數(shù)據(jù)始終處于加密狀態(tài),增強(qiáng)了數(shù)據(jù)安全性,同時由于省去了加密解密的操作,提高了算法的執(zhí)行效率。
同態(tài)加密算法最初是由 Rivest 等人在文章“On data banks and privacy homomorphic”中提出的。最初對同態(tài)加密算法的研究,只停留在僅僅可以滿足對特定的運(yùn)算滿足同態(tài)性,直到 2009 年,Gentry 提出了第一個全同態(tài)加密算法。全同態(tài)加密算法可以實(shí)現(xiàn)對密文進(jìn)行任意有效操作,而操作結(jié)果與對密文先進(jìn)行解密再進(jìn)行相同操作,最后對結(jié)果進(jìn)行加密的輸出一致,目前對于全同態(tài)加密算法的研究主要集中在整數(shù)范圍內(nèi)全同態(tài)加密算法的實(shí)現(xiàn),現(xiàn)今比較主流的同態(tài)加密算法包括,Rivest 算法,Domingo 算法,DGHV 算法和CAFED算法[10]。由于同態(tài)加密算法的高效性與安全性,使得其很適合于作為云存儲中的數(shù)據(jù)加密算法。將用戶數(shù)據(jù)通過全同態(tài)加密算法進(jìn)行加密后存儲于云端,用戶掌握唯一秘鑰。云服務(wù)提供方可以對用戶數(shù)據(jù)進(jìn)行如備份,檢索等必要的操作,但不能對數(shù)據(jù)進(jìn)行解密,既保障了用戶數(shù)據(jù)的安全性和隱私性,也提高了云端對數(shù)據(jù)的處理效率。
結(jié) 語
本文主要介紹了目前云計算的虛擬化的關(guān)鍵技術(shù)和虛擬化安全的關(guān)鍵因素,并提出將全同態(tài)加密算法應(yīng)用于云存儲中對大數(shù)據(jù)的加密操作,以實(shí)現(xiàn)用戶數(shù)據(jù)的安全性和隱私性, 同時實(shí)現(xiàn)云服務(wù)提供商對用戶數(shù)據(jù)更加高效安全的進(jìn)行處理。尋求更加簡單高效的整數(shù)范圍內(nèi)的全同態(tài)加密算法是未來云計算安全中對于加密算法研究改進(jìn)的主要趨勢。