黃霖,黎源,汪星辰,趙運(yùn)磊
1. 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上?!?01203;2. 上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室,上?!?01203
隨著大數(shù)據(jù)時(shí)代的來臨,各行各業(yè)產(chǎn)生并收集的數(shù)據(jù)量日益增長。愈來愈多的政府、企業(yè)以及個人開始重視數(shù)據(jù)的嚴(yán)格定義、規(guī)范產(chǎn)生、安全存儲、約束讀取以及有效分析。因此,對數(shù)據(jù)進(jìn)行自治開放、開通獲取和利用的渠道已成為當(dāng)代數(shù)據(jù)科學(xué)和業(yè)界的重要共識和發(fā)展方向。
“數(shù)據(jù)盒”模型是一個面向數(shù)據(jù)開放共享的數(shù)據(jù)模型,它由為數(shù)據(jù)使用者提供開放數(shù)據(jù)的基本組成單元——數(shù)據(jù)盒、封裝在數(shù)據(jù)盒中的數(shù)據(jù)防泄露和數(shù)據(jù)權(quán)益保護(hù)機(jī)制、數(shù)據(jù)盒的計(jì)量與定價(jià)組成。數(shù)據(jù)擁有者將數(shù)據(jù)灌裝入數(shù)據(jù)盒中,封裝的數(shù)據(jù)只能通過數(shù)據(jù)盒中的自主程序單元接口進(jìn)行受控的訪問,使得數(shù)據(jù)使用者既方便使用開放數(shù)據(jù),即外部可見、可理解、可編程,又能防止數(shù)據(jù)擁有者權(quán)益受到侵犯,即內(nèi)部可控、可跟蹤、可撤銷。
目前,數(shù)據(jù)的開放共享極易導(dǎo)致數(shù)據(jù)資源稀缺性喪失,部分?jǐn)?shù)據(jù)也存在隱私泄露的風(fēng)險(xiǎn)。在數(shù)據(jù)盒中數(shù)據(jù)的版權(quán)和隱私保護(hù)若采用傳統(tǒng)的私鑰加密和公鑰加密(如高級加密標(biāo)準(zhǔn)(AES)、RSA等),數(shù)據(jù)的操作需要用戶將密文全部下載到客戶端,解密后執(zhí)行。這種應(yīng)用架構(gòu)明顯具有吞吐量低、帶寬需求大、可用性差的缺點(diǎn),無法在大數(shù)據(jù)場景下得到有效應(yīng)用。
面向大數(shù)據(jù)時(shí)代自治開放的需求,發(fā)展支持密文域處理的新型數(shù)據(jù)訪問安全技術(shù)是當(dāng)前密碼領(lǐng)域的研究熱點(diǎn)。2011年P(guān)opa R A等人[1]發(fā)表了第一個實(shí)用的數(shù)據(jù)訪問安全技術(shù)CryptDB,大量的數(shù)據(jù)訪問安全技術(shù)被學(xué)術(shù)機(jī)構(gòu)和商業(yè)公司開發(fā)出來并應(yīng)用,例如:Ciphercloud①http://www.ciphercloud.com/、Google’s EncryptedBigQuery②https://github.com/google/encryptedbigquery-client/、Skyhigh③https://www.skyhighnetworks.com/等。
在支持密文域處理的數(shù)據(jù)訪問安全技術(shù)中,全同態(tài)加密(fully-homomorphic encryption,F(xiàn)HE)[2]和不經(jīng)意隨機(jī)存取(oblivious random access memory,ORAM)[3]作為具有計(jì)算普適性的一類,其高帶寬需求、高計(jì)算量、存儲復(fù)雜度和多輪次數(shù)據(jù)通信大大降低了實(shí)際應(yīng)用的可能性。因此,可搜索對稱加密(searchable symmetric encryption,SSE)、屬性保留加密(property-preserving encryption,PPE)、屬性揭示加密(property-revealing encryption,PRE)、同態(tài)加密(homomorphic encryption,HE),甚至SQL語句重寫模型(SQL-aware rewriting model,SRM)是目前較為實(shí)用的支持密文域處理的數(shù)據(jù)訪問安全技術(shù),它們的發(fā)展也對數(shù)據(jù)自治開放中的隱私保護(hù)起到了很大的作用。
上述的底層算法、技術(shù)和整個數(shù)據(jù)訪問安全技術(shù),其發(fā)展都是不斷尋求些許的單方面突破以及效率、安全性、易用性和適用性等之間的平衡。目前也并沒有一個系統(tǒng)或底層算法有絕對的優(yōu)勢,因此,本文旨在基于數(shù)據(jù)自治開放的大背景,梳理現(xiàn)有支持密文域處理加密算法和架構(gòu)技術(shù)的優(yōu)劣,一方面引起國內(nèi)學(xué)術(shù)界和商業(yè)界對數(shù)據(jù)安全和支持密文域處理的數(shù)據(jù)訪問安全技術(shù)的重視,另一方面為將來的學(xué)術(shù)研究理清脈絡(luò),展現(xiàn)重點(diǎn)與難點(diǎn)。
本文的貢獻(xiàn)有以下幾點(diǎn):
● 基于自治開放的需求,分析數(shù)據(jù)盒訪問面臨的數(shù)據(jù)安全挑戰(zhàn);
● 研究數(shù)據(jù)訪問安全技術(shù)底層的密文查詢技術(shù),涵蓋可搜索對稱加密、屬性保留加密、屬性揭示加密、同態(tài)加密以及較不實(shí)用的全同態(tài)加密和ORAM,分析并歸納其用途、信息泄露、功能完備性以及安全性和效率的權(quán)衡;
● 針對確定性加密、可搜索對稱加密、屬性保留加密和屬性揭示加密,研究現(xiàn)有的不同攻擊,分析其敵手能力要求、攻擊目標(biāo)、先決條件和效率等;
● 歸納查詢轉(zhuǎn)換技術(shù),基于復(fù)雜查詢可由基本查詢轉(zhuǎn)換而來的思想,分解難以實(shí)現(xiàn)的復(fù)雜查詢,降低底層技術(shù)需求,分析數(shù)據(jù)訪問系統(tǒng)基礎(chǔ)功能的轉(zhuǎn)換盲區(qū);
● 分析現(xiàn)有支持密文域處理的數(shù)據(jù)訪問安全技術(shù),歸納其支持功能、安全性、效率和附加功能等方面的優(yōu)劣。
概括地說,數(shù)據(jù)訪問安全技術(shù)的設(shè)計(jì)主要是為了應(yīng)對兩種安全威脅[1],即來自外部的侵入系統(tǒng)竊取數(shù)據(jù)的黑客和網(wǎng)絡(luò)信道的數(shù)據(jù)觀測者、來自內(nèi)部的監(jiān)守自盜的數(shù)據(jù)庫管理人員。針對兩種安全威脅,數(shù)據(jù)訪問安全技術(shù)多用于私有云場景。這是典型的雙方場景,數(shù)據(jù)提供者和數(shù)據(jù)查詢者由同一人扮演,再與服務(wù)器進(jìn)行交互。也有一種應(yīng)用場景是數(shù)據(jù)提供者和數(shù)據(jù)查詢者由不同人扮演,與服務(wù)器進(jìn)行交互。絕大多數(shù)的數(shù)據(jù)訪問安全技術(shù)沒有考慮實(shí)施數(shù)據(jù)規(guī)則制定與實(shí)施監(jiān)管的問題。CryptDB采用了洋蔥分層加密的思想提高安全性,并進(jìn)行有效的效率保障。同時(shí),其針對TPC-C規(guī)范中事務(wù)處理的吞吐量下降較少,因此獲得廣泛認(rèn)可和借鑒。
對于數(shù)據(jù)盒,數(shù)據(jù)訪問安全技術(shù)的挑戰(zhàn)按照攻擊者來源可分為以下兩種。
(1)內(nèi)部攻擊者的挑戰(zhàn)
在數(shù)據(jù)盒正常使用的情況下,需要在明文上進(jìn)行查詢,這時(shí)好奇的管理員/第三方平臺維護(hù)人員可能窺探到數(shù)據(jù),這明顯會侵害數(shù)據(jù)擁有者在數(shù)據(jù)自治情況下的利益。在這種威脅下,數(shù)據(jù)訪問安全技術(shù)可以防止好奇的管理員訪問數(shù)據(jù)盒中的真正數(shù)據(jù)。解決方案是:在灌裝數(shù)據(jù)盒前,通過特定的非傳統(tǒng)私鑰、公鑰加密方法對數(shù)據(jù)盒中的數(shù)據(jù)進(jìn)行加密,從而在交互模塊中直接對密文進(jìn)行查詢,將查詢結(jié)果返回給用戶。
(2)外部攻擊者的挑戰(zhàn)
在數(shù)據(jù)盒被盜取或控制的情況下,來自外部的黑客和網(wǎng)絡(luò)信道的數(shù)據(jù)爬取者可能侵入系統(tǒng)竊取數(shù)據(jù),同時(shí)控制數(shù)據(jù)源管理模塊、交互模塊等多個模塊。這時(shí)雖然第一種挑戰(zhàn)的解決方案有助于保障被盜取的數(shù)據(jù)呈現(xiàn)密文形態(tài),不泄露明文,但其難以應(yīng)對暴力破解或者特定的攻擊方式。解決方案是可以采用不同的密鑰加密不同的數(shù)據(jù)字段。在這種情況下,只有在攻擊者侵入并獲取數(shù)據(jù)擁有者的所有加密私鑰的情況下,才有可能導(dǎo)致此用戶的數(shù)據(jù)泄露。此外,在發(fā)現(xiàn)有人不正當(dāng)使用數(shù)據(jù)盒時(shí),還可以啟動數(shù)據(jù)盒自毀機(jī)制。
依據(jù)挑戰(zhàn)的威脅程度,可以將挑戰(zhàn)分為以下3種。
● 快照挑戰(zhàn):敵手僅能獲取某一時(shí)刻的數(shù)據(jù)信息,無法獲取動態(tài)的數(shù)據(jù)更新信息。這是最弱的挑戰(zhàn)威脅,絕大多數(shù)數(shù)據(jù)訪問底層加密技術(shù)均可保障這種情況下的隱私安全。
● 監(jiān)測挑戰(zhàn):敵手僅能持續(xù)獲取數(shù)據(jù),相對于快照挑戰(zhàn),能夠額外獲得動態(tài)更新的數(shù)據(jù)信息。
● 訪問挑戰(zhàn):敵手不僅能夠獲取時(shí)刻更新的數(shù)據(jù)信息,同時(shí)還可以偽造數(shù)據(jù)進(jìn)行測試、推理與攻破。這是攻擊者能力極強(qiáng)的一種挑戰(zhàn),當(dāng)前應(yīng)對這種挑戰(zhàn)的數(shù)據(jù)訪問底層加密技術(shù)可能效率較差。
即使采用數(shù)據(jù)訪問底層加密技術(shù)應(yīng)對以上挑戰(zhàn),依然會有不同的算法泄露些許不同的數(shù)據(jù)信息。本節(jié)介紹的數(shù)據(jù)個數(shù)、數(shù)據(jù)基本結(jié)構(gòu)、查詢、查詢回復(fù)記錄和訪問控制與模式等消息易被數(shù)據(jù)訪問安全技術(shù)泄露。即使其中有諸多內(nèi)容是以密文形式出現(xiàn)的,其加密算法本身造成的信息泄露也擴(kuò)大了明文有效恢復(fù)的幾率與途徑。
基于普遍使用的底層加密算法,現(xiàn)歸納5種宏觀的泄露類型,以危害程度遞增、安全性遞減方式排列。
● 數(shù)據(jù)結(jié)構(gòu):此處的數(shù)據(jù)結(jié)構(gòu)是廣義的,包含諸如字符串長度、集合內(nèi)元素?cái)?shù)量、樹型數(shù)據(jù)結(jié)構(gòu)等內(nèi)容。它們是由數(shù)據(jù)訪問存儲基本模式泄露的,除非執(zhí)行內(nèi)容填充和結(jié)構(gòu)置換等操作,否則難以進(jìn)行隱藏。
● 數(shù)據(jù)標(biāo)識符:一些底層加密算法將數(shù)據(jù)額外存儲,以其指針作為加密基元,因此數(shù)據(jù)標(biāo)識符(或指針)的泄露相較于等值信息泄露危害較小。
● 多重輔助判斷信息:包括數(shù)據(jù)標(biāo)識符信息和其余輔助信息。例如多個數(shù)據(jù)位于同一已知范圍、且由同一數(shù)據(jù)插入操作導(dǎo)入等信息。
● 等值信息:數(shù)據(jù)相等的信息。
● 順序信息:數(shù)據(jù)之間大小關(guān)系的信息。
絕大多數(shù)的信息泄露發(fā)生在數(shù)據(jù)查詢操作時(shí),諸如數(shù)據(jù)結(jié)構(gòu)、等值信息和順序信息可能在數(shù)據(jù)初始化操作時(shí)就已經(jīng)泄露(例如,使用確定性加密[4]或保序加密[5,6]時(shí)可能發(fā)生此情況),而數(shù)據(jù)更新操作可能會有較少的信息再次泄露。
在數(shù)據(jù)自治開放情況下,為了保證敏感數(shù)據(jù)可用性,同時(shí)保證敏感數(shù)據(jù)的保密性,防止敏感數(shù)據(jù)被竊取,可以使用數(shù)據(jù)訪問安全技術(shù)進(jìn)行加密。數(shù)據(jù)底層加密技術(shù)主要有3類加密算法:以源數(shù)據(jù)進(jìn)行加密的傳統(tǒng)加密(不是諸如AES、RSA之類的傳統(tǒng)加密);以源數(shù)據(jù)指針進(jìn)行加密的自定義加密;主要以O(shè)RAM為算法基礎(chǔ)的Oblivious加密。
絕大多數(shù)的屬性保留加密[7]和屬性揭示加密都是傳統(tǒng)加密,它們的構(gòu)造是為了方便密文對對應(yīng)的操作產(chǎn)生正確的反應(yīng),將密文返回并解密,得到正確的明文結(jié)果。此處的“屬性”主要是指“等值”屬性和“順序”屬性,因此絕大多數(shù)確定性加密[4]、保序加密[5,6,8-11](或順序保留加密)和揭序加密[12-14](或順序揭示加密(order-revealingencryption,ORE))都是傳統(tǒng)加密算法。在數(shù)據(jù)的自治開放中,它們既可以使權(quán)限擁有者能夠進(jìn)行一些數(shù)據(jù)查詢(如找到最大值)操作,又能對數(shù)據(jù)進(jìn)行保密操作,使擁有查詢權(quán)限者無法得知數(shù)據(jù)訪問系統(tǒng)中存儲信息的具體值。
確定性加密是“將相同的明文加密成相同的密文”的加密算法,理想的泄露情況是其他的屬性信息完全隱藏。此外,絕大多數(shù)保序加密和揭序加密都是確定性加密。
保序加密具有通過密文比較得出明文大小關(guān)系的特質(zhì)。2004年Agrawal R等人[8]首先給出了關(guān)于保序加密方案的概念、定義和一種構(gòu)造數(shù)值型保序加密方法。此后5年,關(guān)于保序加密的相關(guān)研究一直未能有較大突破。直到2009年,Boldyreva A等人[5]才對該問題有了較為系統(tǒng)的研究。首先,作者提出了關(guān)于保序加密的嚴(yán)格安全定義(IND-OCPA,即關(guān)于保序加密理想的安全性,也即前文所述的理想順序泄露狀態(tài))。為了使方案的構(gòu)造成為可能,作者對安全模型的安全性進(jìn)行了一定程度的放松。隨后,作者試圖通過超幾何分布這一工具得到一個映射,使得該映射在多項(xiàng)式級別的敵手看來與理想對象是不可區(qū)分的。這一方案便是前文描述的基于隨機(jī)保序函數(shù)產(chǎn)生泄露的方案。在2011年,Boldyreva A等人[6]對保序加密方案的安全性進(jìn)行了更為深入的分析。他們提出了窗口單向性(window onewayness)和距離窗口單向性(distance window one-wayness)的概念,針對這些安全定義給出了保序加密對應(yīng)于它們的上界和下界。同時(shí),作者指出其在2009年提出的保序加密方案[5]會泄露明文一半的比特位。
為了構(gòu)造足夠安全的保序加密,Popa R A等人[11]于2013年另辟蹊徑,打破了傳統(tǒng)保序加密算法非交互的框架,轉(zhuǎn)而采用交互的框架,使構(gòu)造的保序加密方案滿足理想的安全性。基于Popa R A的交互框架,Kerschbaum F和Schropfer A[10]受到隨機(jī)二叉搜索樹的平均高度相關(guān)研究的啟發(fā),將方案的平均通信復(fù)雜度由O(nlogn)縮減到了O(n)。隨后,Kerschbaum F[9]為了設(shè)計(jì)出具有更強(qiáng)安全性的保序加密方案,構(gòu)造了具有頻率隱藏性質(zhì)的保序加密方案。不同于之前的所有確定性的保序加密方案,該方案使敵手無法區(qū)分兩個相同明文的密文。該算法采用的方法是客戶端在與服務(wù)器交互的過程中對于等值的數(shù)據(jù)隨機(jī)回復(fù)大于或小于。
2015年Boneh D等人[12]受到了密碼學(xué)混淆器的啟發(fā),提出了一種新的能夠提供比較密文相應(yīng)明文大小功能的加密方案,即揭序加密。作為保序加密的泛化,揭序加密中密文對應(yīng)明文的順序無法直接通過比較密文數(shù)值的大小來確定,而是借助了公開的比較函數(shù)。出于實(shí)用性考慮,Chenette N等人[14]在效率和安全性之間做出了一定的權(quán)衡,構(gòu)造了第一個實(shí)用的只泄露有限明文信息卻高效的揭序加密方案。該文章首次基于泄露函數(shù)制定安全定義,證明了構(gòu)造的方案只泄露了任意兩個密文的第一個不相同的最高比特位。同時(shí),該方案的構(gòu)造只使用了偽隨機(jī)函數(shù)這一密碼學(xué)工具,方案具有極高的效率。最近,Cash D等人[13]提出了一個相比Chenette N等人提出的方法算法安全性更高的揭序加密方案,但是由于需要使用一種新型的、基于雙線性圖的屬性保留函數(shù),計(jì)算效率較差。
絕大多數(shù)可搜索加密屬于自定義加密,也有一些其他加密方法屬于此類。在自治開放中,如果數(shù)據(jù)使用者需要用到搜索操作,但不知道具體數(shù)據(jù),則可使用自定義加密。自定義加密的構(gòu)造主要依據(jù)反相指數(shù)查找和樹型遍歷兩種方案。
關(guān)于反向指數(shù)查找方案,不少工作都涉及反向查找單一數(shù)據(jù)表并映射關(guān)鍵字到標(biāo)識符列表的技術(shù)。諸多的工作為其提供了額外的特性,Bost R[15]提出了依賴陷門置換的、較為實(shí)用的公鑰可搜索加密,實(shí)現(xiàn)了前向安全與后向安全。目前前向安全的揭序加密算法也已設(shè)計(jì)出來,屬于傳統(tǒng)加密方案。
關(guān)于樹型遍歷方案,Kamara S等人[16]展示了一種可平行方法以支持等值查詢,通過足夠多的平行處理,該算法的查詢復(fù)雜度可在攤銷后達(dá)到常數(shù)級。Stefanov E等人[17]也利用類似的方法,首次正式提出并設(shè)計(jì)了前向安全的可搜索加密算法。此外,樹型遍歷方案也滿足范圍查詢。非關(guān)系型數(shù)據(jù)訪問安全技術(shù)Arx[18]中的Arxpange算法通過建立明文簡歷存儲與二叉樹的索引,實(shí)現(xiàn)不泄露所有數(shù)據(jù)的順序關(guān)系的范圍查詢。利用Yao A C[19]的亂碼電路,可以實(shí)現(xiàn)服務(wù)器在遍歷索引時(shí)無法獲得比較的數(shù)據(jù)的值與比較結(jié)果。值得額外一提的是,Roche D S等人[20]提出并實(shí)現(xiàn)了一種基于緩沖區(qū)二叉平衡樹的部分保序加密,它是一種針對多數(shù)據(jù)插入、少范圍查詢應(yīng)用場景的屬性保密加密。不同于Popa R A等人和Kerschbaum F的樹型保序加密算法,該算法將數(shù)據(jù)提供者和服務(wù)器的交互排序環(huán)節(jié)置于數(shù)據(jù)查詢階段。也正因如此,該算法實(shí)現(xiàn)了至今最高的安全性——基于頻率分析的偏序選擇明文攻擊的不可區(qū)分性(IND-FA-POCPA)。
ORAM由于其極強(qiáng)的安全性,在近20年里一直作為重要的研究課題,并且在性能上有了穩(wěn)步的提升,其中諸多最近算法的實(shí)現(xiàn)是基于PathORAM算法[21]的,性能方面的優(yōu)化也有Garg S等人[22]的TWORAM算法可參考,該算法致力于縮減搜索操作的回合。鑒于其目前仍具有高帶寬、多數(shù)據(jù)輪次和高客戶端存儲等需求,以O(shè)RAM為基本算法的可操作性數(shù)據(jù)加密仍然不具有廣泛的適用性,此外由于其不是數(shù)據(jù)自治開放情況下數(shù)據(jù)訪問安全技術(shù)發(fā)展的重點(diǎn),不再贅述其相關(guān)工作。
同態(tài)加密是一種具備特殊性質(zhì)的加密。在數(shù)據(jù)自治開放中,同態(tài)加密可以使數(shù)據(jù)使用者對密文進(jìn)行特定運(yùn)算,其結(jié)果為對應(yīng)明文執(zhí)行相應(yīng)運(yùn)算后的密文,即對密文的運(yùn)算等價(jià)于對明文執(zhí)行相同的運(yùn)算,而數(shù)據(jù)使用者并不能知道數(shù)據(jù)的具體值。同態(tài)的性質(zhì)使其在云計(jì)算、外包計(jì)算、安全多方計(jì)算、數(shù)據(jù)訪問安全技術(shù)等多個領(lǐng)域有著極大的應(yīng)用前景。
對于乘法同態(tài)加密,較為代表性的例子當(dāng)屬經(jīng)典的RSA加密[23]和ElGamal加密[24],而Paillier加密[25]和GM加密方案[26]則具備加法同態(tài)性質(zhì)。為了使同態(tài)加密能夠支持更廣泛的運(yùn)算操作,2005年由Boneh D等人[27]利用雙線性映射構(gòu)造了支持對密文進(jìn)行一次同態(tài)乘法運(yùn)算和任意次同態(tài)加法運(yùn)算的同態(tài)加密方案。
2009年,Gentry C[2]首次提出了全同態(tài)加密的概念,它支持對密文進(jìn)行任意次數(shù)的同態(tài)加法和同態(tài)乘法運(yùn)算。同時(shí),Gentry C基于理想格構(gòu)造出了第一個全同態(tài)加密方案。然而,由于Gentry C方案的效率極低,使其僅具有理論意義。
Van D M等人[28]在2010年首次給出了基于整數(shù)的全同態(tài)加密方案?;谡麛?shù)的思路,從縮減密鑰規(guī)模[29]、縮減密文規(guī)模、提升計(jì)算效率[30]等方面構(gòu)造優(yōu)化的全同態(tài)加密方案,其采用的技術(shù)路線主要是壓縮公鑰、密文批處理、統(tǒng)一模數(shù)等。與基于理想格的全同態(tài)加密相比,基于整數(shù)的全同態(tài)加密具有更為簡單的代數(shù)結(jié)構(gòu),使得方案更易于理解和分析。
LWE(learning with error)問題為許多密碼學(xué)方向指出了新的突破思路,Brakerski Z等人[31]也嘗試基于LWE問題構(gòu)造全同態(tài)加密方案。隨后,Brakerski Z等人[32]基于LWE問題給出了一個擺脫Gentry C框架的新的構(gòu)造思路,其主要基于LWE問題構(gòu)造部分同態(tài)加密方案,然后利用模數(shù)轉(zhuǎn)換技術(shù)達(dá)成替換壓縮解密電路技術(shù)的目的。之后,Gentry C等人[33]針對降低同態(tài)計(jì)算的計(jì)算復(fù)雜度給出了解決方法,技術(shù)路線主要是解除對電路深度的依賴,從而使計(jì)算復(fù)雜度與電路深度無關(guān)。
結(jié)合數(shù)據(jù)自治開放模型,可以根據(jù)數(shù)據(jù)即將使用或慣用的查詢操作,結(jié)合各方面要求,預(yù)先定義(對于數(shù)據(jù)盒則在灌裝時(shí)定義)或自適應(yīng)地[1]對相關(guān)數(shù)據(jù)采取最合適的加密方式,如范圍查詢使用保序加密和揭序加密;在需要用到搜索操作而不能知道具體數(shù)據(jù)時(shí),使用可搜索加密;在需要對數(shù)據(jù)進(jìn)行運(yùn)算時(shí),采用同態(tài)加密。這些不同的加密方式均可以在保證數(shù)據(jù)自治開放的同時(shí),防止數(shù)據(jù)盒中數(shù)據(jù)泄露,保護(hù)數(shù)據(jù)權(quán)益。
在數(shù)據(jù)自治開放中防止敏感數(shù)據(jù)泄露的同時(shí),數(shù)據(jù)查詢的有效性也是一個重要的課題。安全數(shù)據(jù)訪問查詢轉(zhuǎn)換技術(shù)可以有效地將復(fù)雜的查詢轉(zhuǎn)換成其他查詢的組合,這樣可以有效擴(kuò)充數(shù)據(jù)訪問安全技術(shù)的功能集,也可以有效減少數(shù)據(jù)訪問安全技術(shù)的程序大小。弊端是可能額外增加計(jì)算復(fù)雜度和臨時(shí)存儲復(fù)雜度?,F(xiàn)定義以下基本查詢和操作的表述符號,以便后文安全數(shù)據(jù)訪問查詢轉(zhuǎn)換技術(shù)的描述,見表1。
表1 基本查詢及操作的表述符號
現(xiàn)羅列可執(zhí)行的查詢轉(zhuǎn)換如下。
● 雙限范圍查詢轉(zhuǎn)換為單限范圍查詢和布爾運(yùn)算:
RQ(b1
● 等值查詢轉(zhuǎn)換為范圍查詢:
EQ(A=a)→RQ(a≤A≤a)→RQ(a≤A)∩RQ(A≤a)
● “或”門等值、范圍查詢轉(zhuǎn)換為等值、范圍查詢和布爾運(yùn)算:
EQ(Ain[a1,a2,…,an])→EQ(A≤a1)∪EQ(A≤a2)∪…∪EQ(A≤an)
RQ(b1B)→RQ(b1
● “與”門等值查詢轉(zhuǎn)換為等值查詢和布爾運(yùn)算:
EQ(A1=a1and A2=a2)→EQ(A1=a1)∩EQ(A2=a2)
● 模糊查詢轉(zhuǎn)換為等值查詢:模糊查詢用來查詢與關(guān)鍵字相近的數(shù)據(jù),一種方法是將字符串?dāng)?shù)據(jù)拆分,每兩個相鄰字符組合構(gòu)成新的列,根據(jù)等值查詢數(shù)據(jù)匹配計(jì)算相似度,另一種較為簡便的方法是利用局部敏感散列,相關(guān)的距離計(jì)算或相似度計(jì)算也可以專門優(yōu)化。
● 詞干查詢轉(zhuǎn)換為等值查詢:針對查詢相同詞干的字符串,若想轉(zhuǎn)換為等值查詢,需要在數(shù)據(jù)初始化和導(dǎo)入階段添加額外的數(shù)據(jù)列,并存入其對應(yīng)的詞干密文數(shù)據(jù)。然后改寫查詢:
StemmerQ(C,c)→EQ(D=c)
● 小范圍查詢轉(zhuǎn)換為等值查詢和布爾運(yùn)算(可枚舉):
RQ(b1
● 大范圍查詢轉(zhuǎn)換為等值查詢和布爾運(yùn)算(不可枚舉):此情況需要構(gòu)造特定數(shù)據(jù)存儲結(jié)構(gòu),如利用[0,256)的數(shù)據(jù)構(gòu)造一個二叉樹,每個數(shù)據(jù)作為完美平衡二叉樹的葉子節(jié)點(diǎn),且生成新的層范圍列,記錄每層所屬區(qū)間。例如:33這個數(shù)據(jù)需要生成層范圍列,并記錄B1:[0,256)、B2:[0,128)、B3:[0,64)、B4:[32,64)、B5:[32,48)、B6:[32,40)、B7:[32,36)、B8:[32,34)、B9:[33,34)。若查詢大于33且小于等于58的數(shù)據(jù)可進(jìn)行如下轉(zhuǎn)換:
RQ(33
→EQ(B8=[34,36))∪EQ(B7=[36,40))∪EQ(B6=[40,48))∪EQ(B6=[48,56))∪EQ(B8=[56,58))∪EQ(B9=[58,59))
● 不等值查詢轉(zhuǎn)換為范圍查詢和布爾運(yùn)算:
NEQ(F≠f)→RQ(fmin≤F ● 連接語句轉(zhuǎn)換為不同表不同列等值查詢:這一種轉(zhuǎn)換需要在數(shù)據(jù)訪問安全技術(shù)不同表不同列在同一權(quán)限下確定性加密密鑰一致(即相同明文在不同表不同列的密文一致)的情況下,才可使連接語句轉(zhuǎn)換為兩層循環(huán)的不同表不同列等值查詢。 ● 字符串的子串以及通配符查詢:這兩者均需要產(chǎn)生并利用極多的附加列,在初始化和數(shù)據(jù)導(dǎo)入階段,依據(jù)子串和通配符長度查詢需求,進(jìn)行子串列的枚舉式構(gòu)造,以便拆分改寫子串查詢語句和通配符查詢語句。由于增加了多次遍歷,因此大大增加了計(jì)算復(fù)雜度。 除了上述的查詢轉(zhuǎn)換技術(shù),仍有許多常用的數(shù)據(jù)訪問操作未能以數(shù)據(jù)訪問安全技術(shù)實(shí)現(xiàn)。例如基于自定義加密算法和Oblivious加密算法的笛卡爾積運(yùn)算(即連接查詢)、矩陣的乘法、字符串的大小比較等。 在數(shù)據(jù)盒中,結(jié)合不同查詢,應(yīng)用不同的合適的安全數(shù)據(jù)訪問查詢轉(zhuǎn)換技術(shù),可以提高數(shù)據(jù)查詢的有效性,便捷地保障數(shù)據(jù)盒在加密保護(hù)機(jī)制下的功能性。 近年來,數(shù)據(jù)的自治開放已成為當(dāng)下數(shù)據(jù)價(jià)值開拓的重要課題,數(shù)據(jù)訪問安全技術(shù)也成為業(yè)界倍加關(guān)注的方向。其中大多解決方案保證了數(shù)據(jù)訪問系統(tǒng)的絕大多數(shù)基本功能,同時(shí)保障了數(shù)據(jù)的機(jī)密性,即以些許信息泄露為代價(jià),對加密的數(shù)據(jù)執(zhí)行有效操作。 在數(shù)據(jù)加密方面,麻省理工學(xué)院(MIT)的CryptDB項(xiàng)目首先打開了大門,證實(shí)了密文操作數(shù)據(jù)訪問系統(tǒng)的可行性和實(shí)用性,也展示了未來發(fā)展的方向與瓶頸,隨后Google公司的Big Query、SAP公司的SEEED④https://www.fkerschbaum.org/sicherheit14.pdf、Skyhigh Networks、CipherCloud、IntegriDB[34]以及SQL Server 2016的“始終加密”方案等項(xiàng)目都各有側(cè)重地涉足這一領(lǐng)域。其中,SEEED面向HANA內(nèi)存型數(shù)據(jù)訪問系統(tǒng),Big Query和Skyhigh Networks面向弱關(guān)系型,SQL Server 2016、IntegriDB的加密方案面向關(guān)系型。然而,現(xiàn)有的諸多解決方案有些依靠一套弱加密方案,極容易泄露敏感數(shù)據(jù)相關(guān)信息,也有些基于安全級別高的加密方案,但是無法保證復(fù)雜數(shù)據(jù)操作需求。應(yīng)用程序開發(fā)商如何選擇并改進(jìn)一套契合的數(shù)據(jù)訪問安全技術(shù)、科研人員如何彌補(bǔ)數(shù)據(jù)訪問安全技術(shù)功能上的缺陷并提升效率、普通群眾如何認(rèn)知和了解不同數(shù)據(jù)訪問安全技術(shù)的優(yōu)劣與瓶頸,成為了這個時(shí)代的長久命題。 傳統(tǒng)的數(shù)據(jù)訪問安全往往涉及訪問控制、接口控制、數(shù)據(jù)流控制和數(shù)據(jù)加密等較為廣義的安全措施。目前的絕大多數(shù)數(shù)據(jù)訪問安全技術(shù)為了保障基本功能,對訪問控制等方面有所舍棄,即極少考慮規(guī)則制定者和規(guī)則執(zhí)行者的用例。Fuller B等人[35]基于自身開發(fā)的性能評估平臺,對現(xiàn)有諸多數(shù)據(jù)訪問安全技術(shù)進(jìn)行了測試。通過測試查詢回復(fù)完整性、并行更新數(shù)據(jù)完整性、查詢時(shí)延和吞吐量等,可看出密文查詢恢復(fù)時(shí)間極度依賴于網(wǎng)絡(luò)能力、負(fù)載、結(jié)果集大小、數(shù)據(jù)和查詢子句順序、查詢子句內(nèi)容、規(guī)則的存在和復(fù)雜度等方面。 CryptDB是建立于關(guān)系型數(shù)據(jù)庫MySQL的數(shù)據(jù)訪問安全技術(shù),其主要組件位于三模式架構(gòu)的概念模式與外模式之間,相當(dāng)于應(yīng)用程序與數(shù)據(jù)訪問系統(tǒng)管理服務(wù)器之間的一個加密解密插件。作為第一個實(shí)用的、有較為完整安全性證明的數(shù)據(jù)訪問安全技術(shù),它以洋蔥加密結(jié)構(gòu)較好地實(shí)現(xiàn)了效率和安全性上的平衡。該程序通過在數(shù)據(jù)訪問管理系統(tǒng)MySQL中擬定一些用戶自定義函數(shù),成功地實(shí)現(xiàn)了數(shù)據(jù)訪問系統(tǒng)內(nèi)的逐層解密,以保障對應(yīng)的數(shù)據(jù)操作得以執(zhí)行。其輔助插件Monomi[36]也通過添加規(guī)劃器和設(shè)計(jì)師,在復(fù)雜查詢的拆分規(guī)劃和查詢預(yù)處理等方面有顯著的性能提升。 Arx[19]是建立于非關(guān)系型數(shù)據(jù)庫MongoDB的數(shù)據(jù)訪問安全技術(shù),該方案借鑒了Google公司 Big Query,為了保證效率,使用時(shí)需要指定哪些是需要加密的敏感字段和這些字段將會進(jìn)行的操作,這樣便于程序采用對應(yīng)加密算法。Arx-RANGE和Arx-EQ是創(chuàng)新的算法。Arx-RANGE用于處理范圍查詢和排序查詢,為了便于密文比較,它采用了亂碼電路的思想,利用該算法在客戶端可以使用密鑰k(32位系統(tǒng)采用1 KB)篡改程序P,并且創(chuàng)建一個經(jīng)過模糊處理的程序ObfP。為防止服務(wù)器學(xué)習(xí)排序信息,這種算法要求主鍵必須加密。而Arx-EQ采用了搜索令牌樹的思想,將關(guān)鍵字確定性加密結(jié)果和對應(yīng)計(jì)數(shù)器的總體散列值作為密文,這樣有效防止了攻擊者通過計(jì)算某一值出現(xiàn)的頻率而進(jìn)行推理攻擊。 BlindSeer[37]是Pappas等人提出的一個三方數(shù)據(jù)訪問安全技術(shù),它可縮放,旨在控制布爾查詢次線性復(fù)雜度,其中三方指代兩方服務(wù)器和一方用戶。該方案采用一個包含葉子節(jié)點(diǎn)對應(yīng)數(shù)據(jù)訪問記錄的搜索樹的索引和存儲后代節(jié)點(diǎn)關(guān)鍵字的布隆過濾器,再輔以Yao A C的亂碼電路,成功實(shí)現(xiàn)了高效的布爾查詢。基于現(xiàn)代服務(wù)器,該方案可以支持在10 TB數(shù)據(jù)、1億條數(shù)據(jù)記錄和每行70項(xiàng)可搜索對象的數(shù)據(jù)訪問系統(tǒng)中執(zhí)行查詢。 目前自治開放可使用的數(shù)據(jù)訪問安全技術(shù)各有千秋,均在衡量功能性、安全性與效率之間的平衡點(diǎn),使用者可根據(jù)自己的具體需求,采用或借鑒合適的數(shù)據(jù)訪問安全技術(shù)。在效率方面,CryptDB相對于TPC-C的事務(wù)吞吐率下降26%左右,Arx在測試網(wǎng)站應(yīng)用ShareLaTeX時(shí)計(jì)算耗時(shí)增加約10%,而BlindSeer對于絕大多數(shù)查詢來說,性能均下降20%~300%。在功能保障方面,CryptDB支持全部關(guān)系代數(shù)和代碼修改,不包括關(guān)鍵字查詢、子串查詢和通配符查詢,支持多客戶端、用戶認(rèn)證和訪問控制,不支持查詢協(xié)議制定;Arx支持大多數(shù)關(guān)聯(lián)陣列操作,不支持布爾查詢、關(guān)鍵字查詢、子串查詢和通配符查詢,不支持一切行為管控、多客戶端和代碼改寫;Blind Seer支持除了笛卡爾積的關(guān)系代數(shù)操作,支持關(guān)鍵字查詢,不支持子串查詢、通配符查詢和求和操作,行為管控僅支持查詢協(xié)議的制定與實(shí)施。 本文基于數(shù)據(jù)自治開放的大背景,分析了數(shù)據(jù)盒面臨的安全挑戰(zhàn)。通過介紹不同支持密文域處理的數(shù)據(jù)訪問安全技術(shù)的原理與優(yōu)劣,研討不同攻擊的條件、目標(biāo)和成效,歸納現(xiàn)有查詢轉(zhuǎn)換技術(shù)和盲區(qū),分析現(xiàn)有主流數(shù)據(jù)訪問安全技術(shù)的應(yīng)用特征與性能。支持密文域處理的數(shù)據(jù)訪問安全技術(shù)目前主要針對結(jié)構(gòu)良好的數(shù)據(jù),且安全數(shù)據(jù)訪問軟件也以關(guān)系型數(shù)據(jù)庫居多。 現(xiàn)有安全數(shù)據(jù)訪問底層技術(shù)多在安全度和效率上做出權(quán)衡,尤其對于全同態(tài)加密、ORAM等技術(shù)仍需對效率進(jìn)行大幅優(yōu)化,對于保序加密、可搜索加密仍需對安全性和可驗(yàn)證性加以深化。數(shù)據(jù)訪問安全技術(shù)也在操作上存在30%~300%的耗時(shí)增益,對體系架構(gòu)的設(shè)計(jì)和優(yōu)化也必將為數(shù)據(jù)自治開放模式帶來新的突破??紤]到通用全同態(tài)加密的效率瓶頸以及支持密文域的數(shù)據(jù)訪問安全技術(shù)難以擴(kuò)展到文件、圖片等類型的數(shù)據(jù),對于大數(shù)據(jù)環(huán)境下數(shù)量龐大且格式各異的數(shù)據(jù)密文域的處理,目前的密碼技術(shù)還難以提供有效的解決手段。未來需要綜合密碼學(xué)、數(shù)據(jù)科學(xué)技術(shù)、軟件工程和系統(tǒng)訪問控制的交叉研究,完善發(fā)展面向數(shù)據(jù)自治開放的新型數(shù)據(jù)保護(hù)機(jī)制,形成開放自治的“數(shù)據(jù)盒”。研究數(shù)據(jù)盒的新型加密機(jī)制、訪問控制和監(jiān)控分析機(jī)制、數(shù)據(jù)盒的遭受惡意使用或攻擊時(shí)的自毀機(jī)制,是大數(shù)據(jù)環(huán)境下數(shù)據(jù)開放自治共享的重要研究方向,具有重要的理論和應(yīng)用價(jià)值。 參考文獻(xiàn): [1]POPA R A, REDFIELD C, ZELDOVICH N,et al. CryptDB: protecting confidentiality with encrypted query processing[C]//The 23rd ACM Symposium on Operating Systems Principles, October 23-26, 2011,Cascais, Portugal. New York: ACM Press,2011: 85-100. [2]GENTRYC. Full yhomomorphic encryption using ideal lattices[J]. ACM Symposium on Theory of Computing,2009, 9(4): 169-178. [3]GOLDREICH O. Towards a theory of software protection and simulation by oblivious RAMs[C]//The 19th Annual ACM Symposium on Theory of Computing, May 25-27, 1987, New York, USA. New York:ACM Press, 1987: 182-194. [4]BELLARE M, BOLDYREVA A, O’NEILL A.Deterministic and efficiently searchable encr yption[C]//The 2 7th A nnua l International Cryptology Conference on Advances in Cryptology, August 19-23,2007, Santa Barbaba, USA. Heidelberg:Springer-Verlag, 2007: 535-552. [5]BOLDYREVA A, CHENETTE N, LEE Y,et al. Order-preserving symmetric encr yption[C]//The 2 8th A n nua l International Conference on Advances in Cryptology: the Trheory and Applicaitons of Cryptographic Techniques, April 26-30,2009, Cologne, Germany. New York:ACM Press, 2009: 224-241. [6]BOLDYREVA A, CHENETTE N, O'NEILL A. Order-preserving encryption revisited:improved security analysis and alternative solutions[C]//The 31st Annual Cryptology Conference, August 14-18, 2011, Santa Barbara, USA. Heidelberg: Springer,2011: 578-595. [7]PANDEY O, ROUSELAKIS Y. Property preserving symmetric encryption[J].Lecture Notes in Computer Science,2012(7237): 375-391. [8]AGRAWAL R, KIERNAN J, SRIKANT R,et al. Order preserving encryption for numeric data[C]//The 2004 ACM SIGMOD International Conference on Management of Data, June 13-18, 2004, Paris, France.New York: ACM Press, 2004: 563-574. [9]KERSCHBAUM F. Frequency-hiding order-preserving encryption[C]//The 22nd ACM SIGSAC Conference on Computer and Communications Security,October 12-16, 2015, Denver, USA. New York: ACM Press, 2015: 656-667. [10]KERSCHBAUM F, SCHR?PFER A. Optimal average-complexity ideal-security order-preserving encryption[C]//The 2014 ACM SIGSAC Conference on Computer and Communications Security,November 3-7, 2014, Scottsdale, USA.New York: ACM Press, 2014: 275-286. [11]POPA R A, LI F H, ZELDOVICH N.An ideal-security protocol for orderpreserving encoding[C]//IEEE Symposium on Security and Privacy, May 19-22,2013, San Francisco, USA. Piscataway:IEEE Press, 2013: 463-477. [12]DAN B, LEWI K, RAYKOVA M, et al.Semantically secure order-revealing encryption: multi-input functional encryption without obfuscation[J]. Lecture Notes in Computer Science , 2015(9057):563-594. [13]CASH D, LIU F H, O'NEILL A, et al.Reducing the leakage in practical orderrevealing encryption[J]. IACR Cryptology ePrint Archive, 2016: 661. [14]CHENETTE N, LEWI K, WEIS S A, et al.Practical order-revealing encryption with limited leakage[C]//International Conference on Fast Software Encryption,March 20-23, 2016, Bochum, Germany.Heidelberg: Springer, 2016: 474-493. [15]BOST R. ∑oφo?: for ward secure searchable encryption[C]//The 2016 ACM SIGSAC Conference on Computer and Communications Security, October 24-28,2016, Vienna, Austria. New York: ACM Press, 2016: 1143-1154. [16]K A M A R A S, PA PA M A NTHOU C.Parallel and dynamic searchable symmetric encryption[C]//International Conference on Financial Cryptography and Data Security, April 1-5, 2013, Okinawa, Japan.Heidelberg: Springer, 2013: 258-274. [17]STEFANOV E, PAPAMANTHOU C,SHI E. Practical dynamic searchable encryption with small leakage[C]//NDSS Symposium 2014, February 23-26, 2014,San Diego, USA. [S.l.:s.n.], 2014: 23-26. [18]PODDAR R, BOELTER T, POPA R A.Arx: a strongly encrypted database system[J]. IACR Cryptology ePrint Archive, 2016: 591. [19]YAO A C. How to generate and exchange secrets[C]//The 27th Annual Symposium on Foundations of Computer Science, October 27-29, 1986, Toronto, Canada. Piscataway:IEEE Press, 2008(10): 162-167. [20]ROCHE D S, APON D, CHOI S G, et al. POPE:Partial order preserving encoding[C]//The 2016 ACM SIGSAC Conference on Computer and Communications Security,October 24-28, 2016, Vienna, Austria.New York: ACM Press, 2016: 1131-1142. [21]STEFANOV E, VAN DIJK M, SHI E,et al. Path ORAM: an extremely simple oblivious RAM protocol[C]//The 2013 ACM SIGSAC Conference on Computer &Communications Security, November 4-8,2013, Berlin, Germany. New York: ACM Press, 2013: 299-310. [22]GARGS, MOHASSELP,PAPAMANTHOU C. TWORAM: roundoptimal oblivious ram with applications to searchable encryption[J]. Journal of Chinese Agricultural Mechanization,2015: 1010. [23]RIVEST R, SHAMIR A, ADLEMAN L M.A method for obtaining digital signatures and public-key cryptosystems[J].Communications of the ACM, 1983, 26(2):96-99. [24]ELGAMAL T. A public key cryptosystem and a signature scheme based on discrete logarithms[J]. IEEE Transactions on Information Theory, 1985, 31(4): 469-472. [25]PAILLIER P. Public-key cryptosystems based on composite degree residuosity classes[C]// International Conference on Theory and Application of Cryptographic Techniques, May 2-6, 1999, Prague,Czech Republic. Heidelberg: Springer,1999: 223-238. [26]GOLDWASSER S, MICALI S. Probabilistic encryption[J]. Journal of Computer &System Sciences, 1984, 28(2): 270-299. [27]DAN B, GOH E J, NISSIM K. Evaluating 2-DNF Formulas on Ciphertexts[C]//The 2nd International Conference on Theory of Cryptography, February 10-12, 2005,Cambridge, USA. Heidelberg: Springer,2005(3378): 325-341. [28]VAN D M, GENTRY C, HALEVI S, et al.Fully homomorphic encryption over the integers[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques,April 30-May 4, Paris, France.Heidelberg: Springer, 2010: 24-43. [29]CORON J S, MANDAL A, NACCACHE D,et al. Fully Homomorphic Encryption over the Integers with Shorter Public Keys[C]//The 31st Annual Conference on Advances in Cyptology, August 14-18, 2011, Santa Barbara, USA. Heidelberg: Springer,2011: 487-504. [30]CORON J S, LEPOINT T, TIBOUCHI M.Scale-invariant fully homomorphic encryption over the integers[M]// The 17th IACR International Conference on Practice and Theory of Public-Key Cryptography, March 26-28, 2014,Buenos Aires, Argentina. Heidelberg:Springer, 2014: 361-372. [31]BRAKERSKI Z, GENTRY C,VAIKUNTANATHAN V. (Leveled)fully homomorphic encryption without bootstrapping[J]. ACM Transactions on Computation Theory (TOCT), 2014, 6(3): 13. [32]BRAKERSKI Z, VAIKUNTANATHAN V.Efficient fully homomorphic encryption from (standard) LWE[C]// Foundations of Computer Science, October 23-25, 2011,Palm Springs, USA. Piscataway: IEEE Press, 2011: 97-106. [33]GENTRY C, HALEVI S, SMART N P. Fully homomorphic encryption with polylog overhead[C]// Advances in Cryptology -EUROCRYPT 2012, April 15-19, 2012,Cambridge, UK. Heidelberg: Springer,2012: 1-16. [34]ZHANG Y, KATZ J, PAPAMANTHOU C.IntegriDB: Verifiable SQL for outsourced databases[C]//The 22nd ACM SIGSAC Conference on Computer and Communications Security, October 12-16,2015, Denver, USA. New York: ACM Press, 2015: 1480-1491. [35]FULLER B, VARIA M, YERUKHIMOVICH A,et al. SoK: Cryptographically Protected Database Search[C]//The 38th IEEE Symposium on Security and Privacy, May 22-24, 2017, San Jose, USA. Piscataway:IEEE Press, 2017: 172-191. [36]TU S, KAASHOEK M F, MADDEN S,et al. Processing analytical queries over encrypted data[C]// International Conference on Very Large Data Bases,August 26-30, 2013, Riva del Garda, Italy.New York: ACM Press, 2013: 289-300. [37]FISCH B A, VO B, KRELL F, et al.Malicious-client security in blind seer:a scalable private DBMS[C]// IEEE Symposium on Security and Privacy, May 18-20, 2015, San Jose, USA. Piscataway:IEEE Press, 2015: 395-410.5 數(shù)據(jù)訪問安全技術(shù)
6 結(jié)束語