可搜索加密技術(shù),你學(xué)會(huì)了嗎?
?一、緒論
隨著云服務(wù)的快速發(fā)展,越來(lái)越多的用戶將個(gè)人數(shù)據(jù)存儲(chǔ)在云服務(wù)器上,這在方便自身的同時(shí)也導(dǎo)致了數(shù)據(jù)泄露事件的增加。為了保護(hù)數(shù)據(jù)隱私,加密技術(shù)成為了當(dāng)下的重要手段。然而,隨著數(shù)據(jù)的增多和分散,傳統(tǒng)的加密方式已經(jīng)不能滿足大規(guī)模數(shù)據(jù)的使用需求。在這種情況下,可搜索加密(Searchable Encryption, SE)技術(shù)應(yīng)運(yùn)而生。
可搜索加密技術(shù)是一種新興的密文檢索方式,它可以在不暴露明文的情況下,將數(shù)據(jù)進(jìn)行加密后存儲(chǔ)到云端,然后對(duì)密文進(jìn)行查詢。為了實(shí)現(xiàn)加密數(shù)據(jù)檢索,Song等人[1]利用對(duì)稱加密算法加密關(guān)鍵詞,并用關(guān)鍵詞密文與流密文異或的方式加密數(shù)據(jù)信息獲得Ciphertext,實(shí)現(xiàn)方式如圖1-1所示。當(dāng)需要查詢關(guān)鍵詞時(shí),用戶可以先生成一個(gè)流密文A,然后用查詢關(guān)鍵詞密文和存儲(chǔ)的Ciphertext進(jìn)行異或獲得流密文B。若流密文A與流密文B相同,則表示檢索成功,反之則表示檢索失敗。
圖1-1 密文檢索實(shí)現(xiàn)方案
之后,又有人提出了使用安全索引的可搜索加密[2]、基于非對(duì)稱加密算法的公鑰可搜索加密[3]、支持模糊檢索的模糊可搜索加密[4]等方案。當(dāng)前的可搜索加密主要研究屬性如圖1-2。
圖1-2 可搜索加密主要研究屬性
隨著可搜索加密技術(shù)的發(fā)展,人們能夠更加方便地進(jìn)行數(shù)據(jù)檢索和共享,同時(shí)避免了敏感數(shù)據(jù)被惡意泄露和濫用的風(fēng)險(xiǎn)。按照實(shí)現(xiàn)方式,可搜索加密技術(shù)可以分為對(duì)稱可搜索加密(Symmetric searchable encryption, SSE)和非對(duì)稱可搜索加密(Asymmetric searchable encryption, ASE),下文也將從這兩個(gè)角度進(jìn)行介紹。
二、對(duì)稱可搜索加密技術(shù)
對(duì)稱可搜索加密主要依靠對(duì)稱加密算法實(shí)現(xiàn),其基本操作包括初始化、數(shù)據(jù)加密、陷門生成、搜索和數(shù)據(jù)解密等[5]。在對(duì)稱可搜索加密技術(shù)中,加密和解密過(guò)程使用相同的密鑰,陷門生成也需要密鑰的參與。因此,該技術(shù)通常適用于單用戶模型,具有計(jì)算開(kāi)銷小、實(shí)現(xiàn)簡(jiǎn)單和執(zhí)行速度快的特點(diǎn)。
在Song等人提出第一個(gè)對(duì)稱可搜索加密方案后,陸續(xù)有人對(duì)其進(jìn)行了改進(jìn)。在2019年,Kermanshahi等人[6]提出了一種基于單用戶協(xié)議的多客戶端對(duì)稱可搜索加密方案。該方案允許用戶通過(guò)與一定數(shù)量的“幫助”用戶來(lái)生成查詢,保護(hù)數(shù)據(jù)庫(kù)內(nèi)容不會(huì)被服務(wù)器泄露,同時(shí)隱藏查詢內(nèi)容不被“幫助”用戶知曉。通過(guò)偽隨機(jī)函數(shù),可以實(shí)現(xiàn)對(duì)搜索關(guān)鍵字的隱私保護(hù)。另外,該方案支持用戶撤銷和快速更新加密密鑰,并對(duì)服務(wù)器和子集用戶之間的被動(dòng)和主動(dòng)串通攻擊提供安全保障。在Zheng[7]的研究工作中,針對(duì)現(xiàn)有的動(dòng)態(tài)可搜索加密方案無(wú)法保護(hù)搜索模式隱私,導(dǎo)致泄漏部分關(guān)鍵信息的問(wèn)題,他們首先利用k-匿名和加密技術(shù)設(shè)計(jì)了一個(gè)混淆技術(shù)。假設(shè)存儲(chǔ)在服務(wù)器中的索引為鍵值對(duì),每個(gè)鍵值對(duì)關(guān)聯(lián)一個(gè)關(guān)鍵詞w,c表示加密的文件ID,loc表示c的存儲(chǔ)位置,混淆技術(shù)的實(shí)現(xiàn)方式如圖2-1所示。然后,基于混淆技術(shù)、偽隨機(jī)函數(shù)和偽隨機(jī)生成器,Zheng等人設(shè)計(jì)了一個(gè)動(dòng)態(tài)可搜索加密方案。該方案支持單關(guān)鍵字查詢,同時(shí)實(shí)現(xiàn)了搜索模式隱私和增強(qiáng)后向隱私。此外,該方案還擴(kuò)展到支持更有效的布爾查詢。安全分析表明,該方案能夠?qū)崿F(xiàn)所需的隱私屬性,并且在通信開(kāi)銷和計(jì)算成本方面也是高效的。
圖2-1 k=3時(shí)的混淆方式
Wang [8]則實(shí)現(xiàn)了一種支持搜索結(jié)果驗(yàn)證的對(duì)稱可搜索加密技術(shù)。在使用Trie樹(shù)構(gòu)造索引的方案中,可以通過(guò)將每個(gè)關(guān)鍵字標(biāo)簽分段并將它們存儲(chǔ)在Trie樹(shù)中來(lái)提高搜索性能,但這也帶來(lái)了高存儲(chǔ)的代價(jià)。另外,當(dāng)所有關(guān)鍵字標(biāo)簽的前綴相同,但最后一個(gè)段不同時(shí),索引還將退化為線性鏈表,極大地影響了搜索效率。為了解決這個(gè)問(wèn)題,他們提出了一種基于AVL樹(shù)的可驗(yàn)證對(duì)稱可搜索加密方案,簡(jiǎn)稱VSSE-AVL。與Trie樹(shù)索引相比,VSSE-AVL不僅平衡了存儲(chǔ)和搜索性能,而且避免了退化現(xiàn)象。安全分析表明,VSSE-AVL滿足隱私和可驗(yàn)證性,并且與其他具有相同安全性的可驗(yàn)證可搜索加密方案相比,該方案在存儲(chǔ)、搜索和驗(yàn)證方面的表現(xiàn)均更好。
三、非對(duì)稱可搜索加密技術(shù)
非對(duì)稱可搜索加密主要依靠非對(duì)稱加密算法實(shí)現(xiàn),也稱為公鑰可搜索加密(Public key encryption with searching, PEKS),其基本操作包括初始化、公鑰加密數(shù)據(jù)、私鑰生成陷門和搜索等[3]。在非對(duì)稱可搜索加密技術(shù)中,加解密過(guò)程采用公鑰對(duì)明文信息加密和目標(biāo)密文的檢索,使用私鑰解密密文信息和生成關(guān)鍵詞陷門。相比對(duì)稱可搜索加密,非對(duì)稱可搜索加密算法較為復(fù)雜,加解密速度較慢,通常適用于多對(duì)一模型。
在Zhang[9]的工作中,就提出了一種安全的公鑰加密關(guān)鍵字搜索方案,稱為SEPSE。該方案采用多個(gè)專用密鑰服務(wù)器,協(xié)助用戶加密關(guān)鍵詞,而不會(huì)學(xué)習(xí)任何關(guān)鍵詞信息。同時(shí),SEPSE支持在密鑰服務(wù)器上進(jìn)行密鑰更新,以抵御密鑰泄露。此外,他們還提出了一種基于區(qū)塊鏈的速率限制機(jī)制,并將其集成到SEPSE中。每個(gè)用戶由服務(wù)器派生的關(guān)鍵詞請(qǐng)求被集成到公共區(qū)塊鏈上的一個(gè)交易中,密鑰服務(wù)器可以通過(guò)檢查由該用戶創(chuàng)建的交易數(shù)量來(lái)檢查該用戶的關(guān)鍵詞請(qǐng)求數(shù)量,并在達(dá)到閾值后停止響應(yīng),以抵御在線關(guān)鍵詞攻擊。之后,為了解決大多數(shù)公鑰加密可搜索加密方案不適用于多用戶場(chǎng)景的問(wèn)題,Chenam[10]等人提出了一種基于指定云服務(wù)器的多用戶無(wú)證書(shū)公鑰認(rèn)證加密與聯(lián)合關(guān)鍵詞搜索方案(dmCLPAECKS)。該方案保證了相同的文檔或電子郵件只需加密一次,就可以被不同的接收者檢索,且支持聯(lián)合關(guān)鍵詞搜索。dmCLPAECKS的實(shí)現(xiàn)框架如圖3-1所示。
圖3-1 dmCLPAECKS的框架圖
由于采用了認(rèn)證加密技術(shù),該方案可以防止攻擊者在不知道數(shù)據(jù)所有者的私鑰的情況下偽造有效的密文并發(fā)送給數(shù)據(jù)接收者。此外,該方案采用了指定云服務(wù)器技術(shù),即使攻擊者檢索到數(shù)據(jù)接收者的陷門,也無(wú)法執(zhí)行關(guān)鍵詞搜索,因?yàn)楣粽卟恢乐付ㄔ品?wù)器的私鑰。基于此,該方案可以在隨機(jī)預(yù)言模型下防止內(nèi)部關(guān)鍵詞猜測(cè)攻擊。
四、安全威脅和防御方式
4.1 關(guān)鍵詞猜測(cè)攻擊
關(guān)鍵詞猜測(cè)攻擊[11]是由于關(guān)鍵詞空間遠(yuǎn)小于密鑰空間,并且用戶通常使用常用關(guān)鍵詞進(jìn)行檢索,這為攻擊者提供了一個(gè)字典攻擊的“捷徑”。導(dǎo)致關(guān)鍵詞猜測(cè)攻擊的原因可歸結(jié)為:
(1)關(guān)鍵詞空間較小,且用戶集中于使用常用詞匯,給攻擊者提供了遍歷關(guān)鍵詞空間的可能;
(2)算法一致性約束,使攻擊者擁有對(duì)本次攻擊是否成功的預(yù)先判定:執(zhí)行Test算法,返回1說(shuō)明本次攻擊成功;否則,可以再繼續(xù)猜測(cè)。
預(yù)防措施:為了抵御關(guān)鍵字猜測(cè)攻擊,先后有人提出了多種抗關(guān)鍵字猜測(cè)攻擊的可搜索加密方案[9,10]。通過(guò)限制查詢請(qǐng)求頻率或用戶查詢能力等方式,防止惡意敵手猜測(cè)出準(zhǔn)確的關(guān)鍵字。
4.2文件注入攻擊
在執(zhí)行文件注入攻擊[12]時(shí),攻擊者會(huì)向客戶端發(fā)送一些文件,然后客戶端會(huì)將這些文件使用可搜索加密方案進(jìn)行加密并上傳至服務(wù)器。攻擊者可以通過(guò)注入少量的文件來(lái)了解客戶端所搜索的大量關(guān)鍵詞。這是一種比較隱蔽的攻擊方式,因?yàn)楣粽卟⒉恍枰苯荧@取到客戶端的私鑰或者陷門,而只需要觀察客戶端上傳的加密文件即可。圖4-1說(shuō)明了文件注入攻擊的思想。
圖4-1 |K|=8時(shí)文件注入攻擊用例
假設(shè)關(guān)鍵字集合K中有8個(gè)關(guān)鍵字,攻擊者注入文件File1、File2、File3,每個(gè)文件都包含4個(gè)關(guān)鍵字,即圖中陰影部分。如果File2響應(yīng)某個(gè)令牌而返回,但File1和File3未返回,則該令牌對(duì)應(yīng)的關(guān)鍵字是k2?;镜挠^察結(jié)果是,如果服務(wù)器注入一個(gè)文件F,其中恰好包含關(guān)鍵字集合K中的一半關(guān)鍵字,那么通過(guò)觀察客戶端發(fā)送的令牌t是否與之匹配文件,服務(wù)器可以學(xué)習(xí)關(guān)于t對(duì)應(yīng)的關(guān)鍵字的一位信息。基于此,通過(guò)注入少量文件,服務(wù)器就能準(zhǔn)確地確定關(guān)鍵字。
預(yù)防措施:Bost等人先后提出了前向隱私[13]和后向隱私[14]的概念以及實(shí)現(xiàn)方案。通過(guò)減少文件更新和歷史查詢信息泄露,避免了用戶遭受文件注入攻擊的風(fēng)險(xiǎn)。
五、總結(jié)
可搜索加密技術(shù)具有廣泛的應(yīng)用場(chǎng)景,可以在保護(hù)數(shù)據(jù)隱私的同時(shí),實(shí)現(xiàn)高效的數(shù)據(jù)搜索和管理。在云計(jì)算領(lǐng)域,可搜索加密技術(shù)可以幫助用戶在云中存儲(chǔ)和管理敏感數(shù)據(jù),同時(shí)保護(hù)數(shù)據(jù)隱私。在數(shù)據(jù)共享領(lǐng)域,可搜索加密技術(shù)可以提供更佳的數(shù)據(jù)安全性和隱私保護(hù)能力,同時(shí)實(shí)現(xiàn)高效的數(shù)據(jù)檢索和共享。在位置隱私保護(hù)領(lǐng)域,可搜索加密技術(shù)可以幫助用戶在保護(hù)個(gè)人位置隱私的同時(shí),獲得需要的服務(wù)和信息。
盡管可搜索加密技術(shù)已經(jīng)取得了顯著的進(jìn)展,但仍然存在一些改進(jìn)方向。例如,現(xiàn)有的可搜索加密技術(shù)仍然存在一些安全漏洞,需要研究新的算法和協(xié)議來(lái)提高可搜索加密技術(shù)的安全性和隱私保護(hù)能力。此外,現(xiàn)有的可搜索加密技術(shù)在性能方面還存在一些限制,需要研究新的技術(shù)和算法,以提高可搜索加密技術(shù)的性能和效率。最后,還可以將可搜索加密技術(shù)與其他安全技術(shù),如區(qū)塊鏈、差分隱私等相結(jié)合,以更好地滿足實(shí)際應(yīng)用的需求。
參考文獻(xiàn)
[1] Song D X, Wagner D, Perrig A. Practical techniques for searches on encrypted data[C]//Proceeding 2000 IEEE symposium on security and privacy. S&P 2000. IEEE, 2000: 44-55.
[2] Goh E J. Secure indexes[J]. Cryptology ePrint Archive, 2003.
[3] Boneh D, Di Crescenzo G, Ostrovsky R, et al. Public key encryption with keyword search[C]//Advances in Cryptology-EUROCRYPT 2004: International Conference on the Theory and Applications of Cryptographic Techniques. Springer Berlin Heidelberg, 2004: 506-522.
[4] Li J, Wang Q, Wang C, et al. Enabling efficient fuzzy keyword search over encrypted data in cloud computing[J]. Cryptology ePrint Archive, 2009.
[5] Curtmola R, Garay J, Kamara S, et al. Searchable symmetric encryption: improved definitions and efficient constructions[C]//Proceedings of the 13th ACM conference on Computer and communications security. 2006: 79-88.
[6] Kermanshahi S K, Liu J K, Steinfeld R, et al. Multi-client cloud-based symmetric searchable encryption[J]. IEEE Transactions on Dependable and Secure Computing, 2019, 18(5): 2419-2437.
[7] Zheng Y, Lu R, Shao J, et al. Achieving practical symmetric searchable encryption with search pattern privacy over cloud[J]. IEEE Transactions on Services Computing, 2020, 15(3): 1358-1370.
[8] Wang Q, Zhang X, Qin J, et al. A verifiable symmetric searchable encryption scheme based on the AVL tree[J]. The Computer Journal, 2023, 66(1): 174-183.
[9] Zhang Y, Xu C, Ni J, et al. Blockchain-assisted public-key encryption with keyword search against keyword guessing attacks for cloud storage[J]. IEEE Transactions on Cloud Computing, 2019, 9(4): 1335-1348.
[10] Chenam V B, Ali S T. A designated cloud server-based multi-user certificateless public key authenticated encryption with conjunctive keyword search against IKGA[J]. Computer Standards & Interfaces, 2022, 81: 103603.
[11] Byun J W, Rhee H S, Park H A, et al. Off-line keyword guessing attacks on recent keyword search schemes over encrypted data[C]//Secure Data Management: Third VLDB Workshop. Springer Berlin Heidelberg, 2006: 75-83.
[12] Zhang Y, Katz J, Papamanthou C. All your queries are belong to us: The power of file-injection attacks on searchable encryption[C]//USENIX Security Symposium. 2016: 707-720.
[13] Bost R. ∑ oφo?: Forward secure searchable encryption[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016: 1143-1154.
[14] Bost R, Minaud B, Ohrimenko O. Forward and backward private searchable encryption from constrained cryptographic primitives[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2017: 1465-1482.?