薛金紅, 田秀霞, 宋 謙, 田福糧
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
隨著云計(jì)算的迅猛發(fā)展,越來(lái)越多的企業(yè)、個(gè)人將數(shù)據(jù)遷移到了云端,并利用云數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)。與傳統(tǒng)數(shù)據(jù)庫(kù)相比,云數(shù)據(jù)庫(kù)的可擴(kuò)展性與靈活性較好,效率更高,但在數(shù)據(jù)安全保障方面存在很大不足。為了解決數(shù)據(jù)存儲(chǔ)的安全問(wèn)題,一般將數(shù)據(jù)加密后存儲(chǔ),即使攻擊者獲得數(shù)據(jù)訪問(wèn)權(quán)限,仍能保證數(shù)據(jù)的機(jī)密性。如果使用傳統(tǒng)加密算法(AES,3DES)加密數(shù)據(jù),用戶(hù)每次檢索、計(jì)算和分析數(shù)據(jù)都必須把密文傳回客戶(hù)端,進(jìn)行解密后再做處理,勢(shì)必會(huì)向客戶(hù)端傳回大量無(wú)用密文,使得數(shù)據(jù)庫(kù)只起到存儲(chǔ)介質(zhì)的作用,浪費(fèi)了其本身的能力資源,顯著降低了效率。直接在加密數(shù)據(jù)上執(zhí)行數(shù)據(jù)庫(kù)操作,是在密文數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)處理的另一途徑。
2011年P(guān)APO R A等人[1-2]提出的CryptDB是一個(gè)經(jīng)典的基于可信中間代理、不可信數(shù)據(jù)庫(kù)系統(tǒng)的密文數(shù)據(jù)庫(kù)。典型的CryptDB系統(tǒng)由應(yīng)用程序、數(shù)據(jù)庫(kù)代理、未修改的數(shù)據(jù)庫(kù)系統(tǒng)3部分組成,其中間代理充當(dāng)媒介,操控、改寫(xiě)收到的SQL指令和數(shù)據(jù)庫(kù)返回的結(jié)果集合,數(shù)據(jù)庫(kù)系統(tǒng)中增加CryptDB用戶(hù)自定義函數(shù)(User Define Function,UDF)模塊,輔助實(shí)現(xiàn)復(fù)雜密文操作(如數(shù)據(jù)聚合、兩列連接、關(guān)鍵字搜索等)。最重要的是,CryptDB是分離式架構(gòu),易于部署,兼容性好,非常適用于云數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景。
然而,CryptDB系統(tǒng)中密鑰信息是以明文形式存儲(chǔ)在代理服務(wù)器,安全性較低。本文提出通過(guò)用戶(hù)口令加密密鑰信息來(lái)增強(qiáng)密鑰安全性,同時(shí)以中間代理間接驗(yàn)證用戶(hù)身份這一方法,有效地管理了代理服務(wù)器資源。……