趙振凱,秦波
(1.北京市海淀區(qū)教師進(jìn)修學(xué)校附屬實驗學(xué)校,北京 100036;2.中國人民大學(xué)信息學(xué)院,北京100872)
云計算是全球搜索巨頭Google在2007年提出的全新概念,這一概念提出之后,在IBM、谷歌、亞馬遜等IT巨頭的大力推動下,如今云計算已經(jīng)成為了產(chǎn)業(yè)界、學(xué)術(shù)界和政府關(guān)注的焦點。尤其是我國政府對云計算的重視程度和對云計算普及的推廣力度更加不可忽視。2016年,我國政府出臺了《“十三五”國家戰(zhàn)略性新興產(chǎn)業(yè)發(fā)展規(guī)劃》,里面指出,我國要深入推進(jìn)“互聯(lián)網(wǎng)+”計劃,促進(jìn)基于云計算的業(yè)務(wù)模式和商業(yè)模式創(chuàng)新,推進(jìn)公有云和行業(yè)云平臺建設(shè)。
云計算是一種具有動態(tài)延展能力的計算方式,它可以看作是現(xiàn)有的分布式計算、并行處理計算、網(wǎng)格計算等概念的延伸和發(fā)展應(yīng)用,并將其作為一種“基礎(chǔ)設(shè)施”出現(xiàn)在人們的視野。通俗來講,云計算是以用戶為中心的一種計算服務(wù)。這種服務(wù)就如同天上的“云”一般,用戶的不同需求決定“云”的“規(guī)模”、“形狀”和“配置”。用戶終端設(shè)備的計算和存儲能力有限,而擁有近似無限資源的云就為用戶提供了很多便利。云計算平臺能在極短時間內(nèi)處理非常大數(shù)量級的信息,進(jìn)而把資源(包括計算資源、存儲空間及網(wǎng)絡(luò)帶寬等)以服務(wù)的形式用互聯(lián)網(wǎng)提供給需要此類資源的個體或公司,大大減輕了資源受限用戶對軟件管理及硬件維護(hù)的負(fù)擔(dān),從而徹底改變了傳統(tǒng)IT行業(yè)的架構(gòu)和運行方式。
然而,云計算在提供多種高效彈性的服務(wù)的同時,也遇到很多挑戰(zhàn)和亟需處理的安全問題。相對于傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用,在云端進(jìn)行存儲和相關(guān)業(yè)務(wù)的處理會導(dǎo)致用戶數(shù)據(jù)的所有權(quán)與管理權(quán)分離。一方面,為了利用云平臺的計算和存儲資源,用戶需要將數(shù)據(jù)存儲到云服務(wù)器或者計算任務(wù)外包給云服務(wù)器,這將泄露用戶的敏感數(shù)據(jù)和計算結(jié)果。另一方面,云服務(wù)器一旦出現(xiàn)問題,大量用戶的數(shù)據(jù)與應(yīng)用將會無法使用和運行。為了保護(hù)用戶數(shù)據(jù)在存儲方面的安全,基于加密數(shù)據(jù)的安全云存儲服務(wù)備受學(xué)術(shù)界和產(chǎn)業(yè)界的關(guān)注[1]。
隨著云計算的不斷發(fā)展,云存儲服務(wù)已被廣泛應(yīng)用于眾多領(lǐng)域。國內(nèi)外已有大量廠商如亞馬遜、百度、阿里等提供了云存儲服務(wù)。云存儲,顧名思義,就是將數(shù)據(jù)存儲在云端的一種存儲方式。它是一種在線存儲的模式,即把數(shù)據(jù)存放在通常由第三方托管的服務(wù)器上。因此,云存儲具有高容量、高性能、高可擴(kuò)展性、地理位置無約束、隨需付費等優(yōu)點。采用云存儲服務(wù),用戶可以節(jié)約存儲擴(kuò)容、系統(tǒng)升級的成本,享受數(shù)據(jù)共享等優(yōu)點。
通常情況下,云存儲服務(wù)以數(shù)據(jù)的安全存儲和管理為核心,但由于云存儲的特性使數(shù)據(jù)脫離了數(shù)據(jù)擁有者的物理掌控,這導(dǎo)致云存儲服務(wù)的安全性、可靠性以及可用性都面臨著巨大的挑戰(zhàn)。國內(nèi)外學(xué)者在云存儲數(shù)據(jù)安全進(jìn)行了大量研究[2-5],主要集中在數(shù)據(jù)完整性審計、密文數(shù)據(jù)去重、可靠數(shù)據(jù)刪除以及高效密文檢索這4個方面。
外包數(shù)據(jù)存儲為用戶解決了內(nèi)存不足、硬件維護(hù)成本高等問題的同時也帶來了新的安全挑戰(zhàn)。事實上,用戶并不完全清楚自己在云上數(shù)據(jù)的真實情況。為了保證自己的數(shù)據(jù)在云上完整且正確地存儲,需要定期對云服務(wù)器上的數(shù)據(jù)進(jìn)行審計,也就是用戶能夠高效地對云服務(wù)器存儲數(shù)據(jù)的完整性和可用性進(jìn)行審計。而事實上,用戶并不會將云數(shù)據(jù)全部取回進(jìn)行驗證,因為海量的數(shù)據(jù)取回會消耗大量帶寬以及終端的計算資源,所以將數(shù)據(jù)全部取回不實際。因此,用戶通過下載或使用關(guān)于原始文件的部分信息來執(zhí)行外包數(shù)據(jù)的完整性驗證。數(shù)據(jù)完整性審計是云存儲的重要安全技術(shù)之一,用于用戶(或?qū)徲嬚撸炞C其存儲于云端的數(shù)據(jù)是否保持完整。
圖1 兩種完整性審計機(jī)制
完整性審計主要包含兩種審計機(jī)制[2]:可證明數(shù)據(jù)持有(Provable Data Possession,PDP)和可證明數(shù)據(jù)可恢復(fù)(Proof of Retrievability,PoR),其對應(yīng)的網(wǎng)絡(luò)模型如圖1所示。這兩個方案都是基于審計方(包括數(shù)據(jù)擁有者)與云服務(wù)器通過挑戰(zhàn)-響應(yīng)協(xié)議來驗證數(shù)據(jù)的準(zhǔn)確性或可恢復(fù)性。區(qū)別在于,PDP在效率方面有巨大優(yōu)勢,在判斷云中數(shù)據(jù)是否損壞上更加快速。而PoR機(jī)制對所存儲的數(shù)據(jù)進(jìn)行了預(yù)先編碼處理。因此,PoR方案不僅能驗證數(shù)據(jù)是否被損壞,并且能在數(shù)據(jù)受到一定損壞時恢復(fù)數(shù)據(jù)。隨著學(xué)術(shù)研究的發(fā)展,PDP和PoR這兩個方向的研究也在高效性、動態(tài)數(shù)據(jù)支持方面不斷完善。通常,考核數(shù)據(jù)持有性證明方案優(yōu)劣的指標(biāo)如表1所示。
表1 數(shù)據(jù)持有性證明方案指標(biāo)
2003年,遠(yuǎn)程數(shù)據(jù)存在驗證的概念被首次提出后表明用戶可以對文件進(jìn)行無限次數(shù)的完整性驗證。在此基礎(chǔ)上,基于公鑰密碼體制的可證明數(shù)據(jù)擁有模型PDP和可證明恢復(fù)模型PoR被提出,這兩種模型分別用來檢測存儲在半可信服務(wù)器中的數(shù)據(jù)是否完整和檢測數(shù)據(jù)是否可恢復(fù)。近年來,學(xué)者們對支持動態(tài)更新的PDP方案進(jìn)行了大量研究,提出了很多特殊場景下(如多用戶、帶有重復(fù)數(shù)據(jù)、支持密文檢索等)的數(shù)據(jù)完整性審計方案。
以PDP為例,數(shù)據(jù)完整性審計方案執(zhí)行過程如圖2所示。首先,用戶對文件(明文或者密文)進(jìn)行預(yù)處理和上傳,包括數(shù)據(jù)的分塊并計算數(shù)據(jù)塊的校驗標(biāo)簽。標(biāo)簽本質(zhì)上是對數(shù)據(jù)塊進(jìn)行簽名處理后獲得的信息,他可以證明文件是否完整。現(xiàn)有兩種方法對標(biāo)簽進(jìn)行計算,一是基于對稱密碼學(xué)的方式,二是將公鑰密碼學(xué)用于計算標(biāo)簽。上傳過程中用戶將數(shù)據(jù)塊以及對應(yīng)的校驗標(biāo)簽存儲在云服務(wù)器上并刪除本地備份,本地只保留與完整性審計相關(guān)的密鑰信息。然后,用戶再對云端數(shù)據(jù)進(jìn)行完整性審計,審計者可以通過挑戰(zhàn)—響應(yīng)協(xié)議來完成數(shù)據(jù)完整性審計。其中,為了降低審計的通信開銷,云服務(wù)器可以利用標(biāo)簽的同態(tài)性質(zhì),將與數(shù)據(jù)塊相關(guān)的標(biāo)簽聚合成一個同態(tài)標(biāo)簽并反饋給審計者。審計者在驗證階段可以利用相關(guān)的密碼參數(shù)驗證云服務(wù)器上存儲數(shù)據(jù)的完整性。如果在審計驗證階段輸入的密碼參數(shù)不包括數(shù)據(jù)擁有者的私密信息(如私鑰),那么該審計者可以是除數(shù)據(jù)擁有者之外的任何第三方?;谠撔再|(zhì),我們可以稱這種審計方案是公開可審計的。否則,完整性審計只能由數(shù)據(jù)擁有者完成,那么方案則是私有可審計的。
圖2 審計機(jī)制細(xì)節(jié)
在云存儲服務(wù)帶來諸多便利的同時,服務(wù)器中大量的冗余數(shù)據(jù)成為限制云存儲發(fā)展的另一瓶頸。根據(jù)EMC的調(diào)查報告顯示,隨著云端數(shù)據(jù)的快速增長,云存儲中的冗余數(shù)據(jù)在備份應(yīng)用中達(dá)到80%以上,在文件系統(tǒng)中已經(jīng)達(dá)到60%以上,這些冗余數(shù)據(jù)消耗著大量的存儲資源和管理資源。因此,如何通過刪除重復(fù)數(shù)據(jù)從而保證數(shù)據(jù)存儲的高效性成為了亟待解決的問題。為了解決上述問題,數(shù)據(jù)去重技術(shù)應(yīng)運而生,通過數(shù)據(jù)去重技術(shù)可以消除數(shù)據(jù)冗余,相同文件只保留一個物理副本,從而有效降低用戶端上傳數(shù)據(jù)耗費的帶寬及節(jié)省服務(wù)器端的存儲空間。對于云計算平臺而言,數(shù)據(jù)去重不僅可以減少存儲時付出的硬件成本,還可以提升存儲空間的利用率,提高訪問效率。數(shù)據(jù)去重存儲技術(shù)目前廣泛應(yīng)用于商業(yè)云存儲及數(shù)據(jù)備份服務(wù),例如Dropbox、Mozy和Memopal等商業(yè)存儲中。
然而現(xiàn)有的絕大多數(shù)去重方案僅適用于明文數(shù)據(jù)。為了保護(hù)敏感數(shù)據(jù)的隱私性,用戶在上傳敏感數(shù)據(jù)之前通常會使用加密算法對數(shù)據(jù)加密,由于不同的用戶隨機(jī)選取的密鑰不同,因此,即使是相同的明文數(shù)據(jù)也會被加密成不同的密文,這使得云服務(wù)器無法判斷兩個密文數(shù)據(jù)是否是由相同的明文數(shù)據(jù)加密得到的。為了解決傳統(tǒng)加密方案與去重方案不兼容的問題,收斂加密技術(shù)營運而生,通過將文件的哈希值作為其加密密鑰的方案,收斂加密算法使得即使是不同的用戶在不需要通信的前提下也能得到同樣的密鑰,這使得密文去重得以實現(xiàn)。
圖3為基于收斂加密的數(shù)據(jù)去重模型。用戶在上傳文件之前,首先對文件F進(jìn)行哈希操作,得到加密密鑰k,若云服務(wù)器中的文件與用戶所擁有的文件相同,則得到的密鑰k也相同,然后基于密鑰k對文件F進(jìn)行加密,得到密文C,對密文C進(jìn)行哈希得到標(biāo)簽T。然后用戶將標(biāo)簽T上傳到云服務(wù)器,云服務(wù)器根據(jù)得到的標(biāo)簽T和原來存儲的數(shù)據(jù)標(biāo)簽進(jìn)行對比,并將結(jié)果返回給用戶。若用戶得到云服務(wù)器返回結(jié)果是“重復(fù)”,則用戶需要向云服務(wù)器進(jìn)行數(shù)據(jù)擁有證明,證明自己擁有此數(shù)據(jù);用戶若收到結(jié)果為“沒有重復(fù)”,則將密文及相應(yīng)標(biāo)簽上傳到云服務(wù)器進(jìn)行存儲。
圖3 基于收斂加密的數(shù)據(jù)去重模型
通常,數(shù)據(jù)安全去重技術(shù)按照去重粒度可分為文件級去重和塊級去重,顧名思義,在文件級去重中文件是去重執(zhí)行的最小單元,服務(wù)器根據(jù)文件的標(biāo)簽進(jìn)行去重并保留唯一文件副本。塊級去重中,數(shù)據(jù)塊是去重執(zhí)行的最小單元,而服務(wù)器根據(jù)塊標(biāo)簽進(jìn)行去重并保留唯一的數(shù)據(jù)塊副本。按照去重框架可分為服務(wù)器端去重和客戶端去重,顧名思義,服務(wù)器端去重指的是在服務(wù)器端進(jìn)行去重操作,用戶不參與也不知道數(shù)據(jù)是否被執(zhí)行去重;客戶端去重是指去重在客戶端進(jìn)行,用戶只上傳不重復(fù)的數(shù)據(jù)給服務(wù)器。
由于云存儲中用戶的數(shù)據(jù)外包存儲在云服務(wù)器上,這導(dǎo)致了用戶數(shù)據(jù)的所有權(quán)與管理權(quán)分離,使得數(shù)據(jù)不在可控的范圍內(nèi)。對于用戶來說,其外包的數(shù)據(jù)往往可能包含大量的敏感信息,這些敏感信息都可能會泄露用戶的隱私。由于云服務(wù)器的不完全可信,傳統(tǒng)的本地數(shù)據(jù)刪除方法也無法適用于云場景中,云存儲中的用戶難以確信其數(shù)據(jù)是否被服務(wù)器安全刪除。因此,可靠的數(shù)據(jù)刪除服務(wù)就顯得尤為重要。用戶對可靠的數(shù)據(jù)刪除的需求包括兩個方面:一方面,用戶希望在數(shù)據(jù)的生命期結(jié)束或它向云服務(wù)提供商請求刪除數(shù)據(jù)后,這一數(shù)據(jù)就應(yīng)該是永遠(yuǎn)不可訪問的;另一方面,為了保證云存儲的容災(zāi)能力,云服務(wù)提供商通常會保存用戶的多個副本,但是在執(zhí)行數(shù)據(jù)刪除時,用戶希望云服務(wù)提供商刪除所有的數(shù)據(jù)副本。
表2 數(shù)據(jù)覆寫標(biāo)準(zhǔn)與方法
表3 數(shù)據(jù)刪除方案的考核標(biāo)準(zhǔn)
現(xiàn)有的數(shù)據(jù)刪除技術(shù)主要包含兩種:安全覆寫方法和密碼學(xué)刪除方法。安全覆寫方法是一種物理刪除數(shù)據(jù)的方法,它對數(shù)據(jù)進(jìn)行刪除操作時首先需要對數(shù)據(jù)進(jìn)行破壞,然后使用新的數(shù)據(jù)在原有數(shù)據(jù)的位置上進(jìn)行覆寫,從而使得用戶數(shù)據(jù)無法恢復(fù),進(jìn)而實現(xiàn)可靠的數(shù)據(jù)刪除;具體標(biāo)準(zhǔn)與算法要求如表2所示。
密碼學(xué)刪除方法指的是用戶在上傳敏感數(shù)據(jù)文件之前,通常會先對其數(shù)據(jù)文件進(jìn)行加密操作,然后再將密文數(shù)據(jù)上傳到云服務(wù)器上;用戶所有數(shù)據(jù)文件的密鑰按樹形結(jié)構(gòu)組織,然后將主密鑰保存在物理安全的存儲介質(zhì)中,其他數(shù)據(jù)和加密的密鑰樹則被保存在一般存儲介質(zhì)。當(dāng)數(shù)據(jù)需要被刪除時,將密鑰管理者所持有的密鑰進(jìn)行刪除,也就是說即使云服務(wù)器保留了這一被加密的數(shù)據(jù)的密文,但是因為無法擁有相應(yīng)的解密密鑰,存儲在云服務(wù)器上的密文數(shù)據(jù)無法解密,這樣就能保證用戶存儲在云端數(shù)據(jù)的安全刪除。此外,為了實現(xiàn)對每個數(shù)據(jù)文件的可操作性,每個數(shù)據(jù)需要單獨選擇不同的加密密鑰,并在本地保留盡量少的主密鑰,其它密鑰通過主密鑰加密方式存儲在服務(wù)器中。對重復(fù)數(shù)據(jù)刪除方案的考核標(biāo)準(zhǔn)主要體現(xiàn)在表3所示的幾個方面。
許多的敏感信息如電話、個人材料、圖像等存儲在云端上。因此,為了保護(hù)客戶的敏感信息,客戶在上傳數(shù)據(jù)到云端之前對數(shù)據(jù)進(jìn)行加密處理。然而,加密技術(shù)破壞了數(shù)據(jù)原有的狀態(tài),使得在極其多的密文文件中搜索指定的文件變得十分困難。傳統(tǒng)的明文檢索方式不再適用于密文數(shù)據(jù),高效的密文數(shù)據(jù)檢索技術(shù)是保護(hù)云存儲數(shù)據(jù)安全的一個關(guān)鍵技術(shù)。
在密文數(shù)據(jù)檢索中,主要包含關(guān)鍵詞搜索、多關(guān)鍵詞檢索、模糊關(guān)鍵詞檢索等多種檢索方式?,F(xiàn)有的加密數(shù)據(jù)檢索方案分為4種類型:
· 利用索引訪問類型。用戶根據(jù)文件數(shù)據(jù)的關(guān)鍵詞建立具有隱私保護(hù)性質(zhì)的索引,其中索引與加密數(shù)據(jù)一一對應(yīng)。檢索時,只需根據(jù)索引查找檢索請求,再由索引的信息返回相關(guān)文件。
· 利用陷門信息訪問類型。最常用的方法是利用文件關(guān)鍵詞構(gòu)造陷門信息,即用戶的訪問信息,從而可以直接使用文檔的關(guān)鍵詞檢索加密文件,從而獲得需要的資源。
· 利用秘密共享方案訪問類型。數(shù)據(jù)擁有者對數(shù)據(jù)計算多個隱私信息,并將隱私數(shù)據(jù)分散地存在不同的云中,只要服務(wù)器之間不相互勾結(jié),則該方法能夠?qū)?shù)據(jù)隱私進(jìn)行保護(hù)。
· 利用同態(tài)加密的訪問類型。存在一些同態(tài)加密函數(shù)能夠?qū)崿F(xiàn)對密文數(shù)據(jù)的相關(guān)操作直接作用于明文數(shù)據(jù)上,因此可是現(xiàn)實密文狀態(tài)下的信息檢索。但同態(tài)加密在實際使用中計算開銷和通信開銷較大,不適合實際使用。
云環(huán)境下的安全密文檢索網(wǎng)絡(luò)圖如圖4所示。首先,數(shù)據(jù)擁有者根據(jù)文件的明文信息提取關(guān)鍵詞創(chuàng)建與文件相對應(yīng)的索引表,然后對文件數(shù)據(jù)和索引進(jìn)行加密,并將加密后的文件和密文索引發(fā)給云進(jìn)行存儲。當(dāng)有客戶需要檢索指定文件時,客戶根據(jù)需求向數(shù)據(jù)擁有者獲取文件解密密鑰以及生成索引陷門的密鑰,并通過檢索的文件創(chuàng)建檢索請求,發(fā)給云服務(wù)器。云服務(wù)器收到客戶的檢索請求后執(zhí)行檢索操作,并將檢索后的結(jié)果返回給客戶。
圖4 安全密文檢索
根據(jù)方案中使用的不同的密碼體制,可搜索加密技術(shù)分為以下兩個技術(shù):對稱可搜索加密技術(shù)和公鑰可搜索加密技術(shù)。其中對稱可搜索加密技術(shù)在使用過程中,數(shù)據(jù)擁有者和用戶之間需要進(jìn)行密鑰協(xié)商,因此只有合法用戶才能生成檢索請求和解密密文。因為對稱可搜索技術(shù)計算速度快的優(yōu)勢,已經(jīng)逐步成為了學(xué)術(shù)研究的焦點。其中早期的研究工作主要集中在單關(guān)鍵詞檢索,之后大量的方案被提出,如相似性檢索,多關(guān)鍵詞檢索,模糊關(guān)鍵詞等,使得可搜索加密技術(shù)應(yīng)用更加廣范。2004年公鑰密碼首次被引入可搜索領(lǐng)域,提出第一個基于關(guān)鍵詞的公鑰可搜索加密方案。對于公鑰可搜索加密技術(shù)中,用戶利用共享者的公鑰進(jìn)行加密,雙方不需要進(jìn)行交互,因此應(yīng)用場景更為廣闊。
云計算是時代的必然產(chǎn)物,而從某種程度上講,云計算安全是為云計算服務(wù)的一種服務(wù)。隨著云計算的高速發(fā)展和快速應(yīng)用,現(xiàn)有的云計算安全研究已經(jīng)體系化,專業(yè)化,云計算安全已經(jīng)成為很多IT從業(yè)者關(guān)注的主題。用戶在云端進(jìn)行存儲、計算和訪問數(shù)據(jù)時不希望泄露自己的隱私信息,用戶對自己的數(shù)據(jù)安全性需求催生了云存儲可靠數(shù)據(jù)刪除,完整性審計技術(shù)的發(fā)展;本文通過對云存儲數(shù)據(jù)安全框架的綜述,從完整性審計、安全數(shù)據(jù)去重和可靠數(shù)據(jù)刪除、高效密文檢索這幾個方面分析了各領(lǐng)域的研究內(nèi)容。隨著國內(nèi)外研究的不斷深入,我們相信這一領(lǐng)域的發(fā)展將會越來越好,為人類科技的高速發(fā)展做出更大的貢獻(xiàn)。
[1]陳曉峰,馬建峰,李暉,等.云計算安全[M].北京:科學(xué)出版社,2016:12-13.
[2]肖亮,李強(qiáng)達(dá),劉金亮.云存儲安全技術(shù)研究進(jìn)展綜述[J].數(shù)據(jù)采集與處理,2016,31(3):464-472.
[3]陳蘭香,許力.云存儲服務(wù)中可證明數(shù)據(jù)持有及恢復(fù)技術(shù)研究[J].計算機(jī)研究與發(fā)展,2012,49(增刊):19-25.
[4]拱長青,肖蕓,李夢飛,等.云計算安全研究綜述[J].沈陽航空航天大學(xué)學(xué)報,2017,34(4):1-17.
[5]李宏霞,龐曉瓊.支持多關(guān)鍵字分級的可搜索同態(tài)加密方案[J].計算機(jī)工程與應(yīng)用,2016,52(22):93-98.