一、緒論
隨著云服務的快速發展,越來越多的用戶將個人數據存儲在云服務器上,這在方便自身的同時也導致了數據泄露事件的增加。為了保護數據隱私,加密技術成為了當下的重要手段。然而,隨著數據的增多和分散,傳統的加密方式已經不能滿足大規模數據的使用需求。在這種情況下,可搜索加密(Searchable Encryption, SE)技術應運而生。
可搜索加密技術是一種新興的密文檢索方式,它可以在不暴露明文的情況下,將數據進行加密后存儲到云端,然后對密文進行查詢。為了實現加密數據檢索,Song等人[1]利用對稱加密算法加密關鍵詞,并用關鍵詞密文與流密文異或的方式加密數據信息獲得Ciphertext,實現方式如圖1-1所示。當需要查詢關鍵詞時,用戶可以先生成一個流密文A,然后用查詢關鍵詞密文和存儲的Ciphertext進行異或獲得流密文B。若流密文A與流密文B相同,則表示檢索成功,反之則表示檢索失敗。
圖1-1 密文檢索實現方案
之后,又有人提出了使用安全索引的可搜索加密[2]、基于非對稱加密算法的公鑰可搜索加密[3]、支持模糊檢索的模糊可搜索加密[4]等方案。當前的可搜索加密主要研究屬性如圖1-2。
圖1-2 可搜索加密主要研究屬性
隨著可搜索加密技術的發展,人們能夠更加方便地進行數據檢索和共享,同時避免了敏感數據被惡意泄露和濫用的風險。按照實現方式,可搜索加密技術可以分為對稱可搜索加密(Symmetric searchable encryption, SSE)和非對稱可搜索加密(Asymmetric searchable encryption, ASE),下文也將從這兩個角度進行介紹。
二、對稱可搜索加密技術
對稱可搜索加密主要依靠對稱加密算法實現,其基本操作包括初始化、數據加密、陷門生成、搜索和數據解密等[5]。在對稱可搜索加密技術中,加密和解密過程使用相同的密鑰,陷門生成也需要密鑰的參與。因此,該技術通常適用于單用戶模型,具有計算開銷小、實現簡單和執行速度快的特點。
在Song等人提出第一個對稱可搜索加密方案后,陸續有人對其進行了改進。在2019年,Kermanshahi等人[6]提出了一種基于單用戶協議的多客戶端對稱可搜索加密方案。該方案允許用戶通過與一定數量的“幫助”用戶來生成查詢,保護數據庫內容不會被服務器泄露,同時隱藏查詢內容不被“幫助”用戶知曉。通過偽隨機函數,可以實現對搜索關鍵字的隱私保護。另外,該方案支持用戶撤銷和快速更新加密密鑰,并對服務器和子集用戶之間的被動和主動串通攻擊提供安全保障。在Zheng[7]的研究工作中,針對現有的動態可搜索加密方案無法保護搜索模式隱私,導致泄漏部分關鍵信息的問題,他們首先利用k-匿名和加密技術設計了一個混淆技術。假設存儲在服務器中的索引為鍵值對,每個鍵值對關聯一個關鍵詞w,c表示加密的文件ID,loc表示c的存儲位置,混淆技術的實現方式如圖2-1所示。然后,基于混淆技術、偽隨機函數和偽隨機生成器,Zheng等人設計了一個動態可搜索加密方案。該方案支持單關鍵字查詢,同時實現了搜索模式隱私和增強后向隱私。此外,該方案還擴展到支持更有效的布爾查詢。安全分析表明,該方案能夠實現所需的隱私屬性,并且在通信開銷和計算成本方面也是高效的。
圖2-1 k=3時的混淆方式
Wang [8]則實現了一種支持搜索結果驗證的對稱可搜索加密技術。在使用Trie樹構造索引的方案中,可以通過將每個關鍵字標簽分段并將它們存儲在Trie樹中來提高搜索性能,但這也帶來了高存儲的代價。另外,當所有關鍵字標簽的前綴相同,但最后一個段不同時,索引還將退化為線性鏈表,極大地影響了搜索效率。為了解決這個問題,他們提出了一種基于AVL樹的可驗證對稱可搜索加密方案,簡稱VSSE-AVL。與Trie樹索引相比,VSSE-AVL不僅平衡了存儲和搜索性能,而且避免了退化現象。安全分析表明,VSSE-AVL滿足隱私和可驗證性,并且與其他具有相同安全性的可驗證可搜索加密方案相比,該方案在存儲、搜索和驗證方面的表現均更好。
三、非對稱可搜索加密技術
非對稱可搜索加密主要依靠非對稱加密算法實現,也稱為公鑰可搜索加密(Public key encryption with searching, PEKS),其基本操作包括初始化、公鑰加密數據、私鑰生成陷門和搜索等[3]。在非對稱可搜索加密技術中,加解密過程采用公鑰對明文信息加密和目標密文的檢索,使用私鑰解密密文信息和生成關鍵詞陷門。相比對稱可搜索加密,非對稱可搜索加密算法較為復雜,加解密速度較慢,通常適用于多對一模型。
在Zhang[9]的工作中,就提出了一種安全的公鑰加密關鍵字搜索方案,稱為SEPSE。該方案采用多個專用密鑰服務器,協助用戶加密關鍵詞,而不會學習任何關鍵詞信息。同時,SEPSE支持在密鑰服務器上進行密鑰更新,以抵御密鑰泄露。此外,他們還提出了一種基于區塊鏈的速率限制機制,并將其集成到SEPSE中。每個用戶由服務器派生的關鍵詞請求被集成到公共區塊鏈上的一個交易中,密鑰服務器可以通過檢查由該用戶創建的交易數量來檢查該用戶的關鍵詞請求數量,并在達到閾值后停止響應,以抵御在線關鍵詞攻擊。之后,為了解決大多數公鑰加密可搜索加密方案不適用于多用戶場景的問題,Chenam[10]等人提出了一種基于指定云服務器的多用戶無證書公鑰認證加密與聯合關鍵詞搜索方案(dmCLPAECKS)。該方案保證了相同的文檔或電子郵件只需加密一次,就可以被不同的接收者檢索,且支持聯合關鍵詞搜索。dmCLPAECKS的實現框架如圖3-1所示。
圖3-1 dmCLPAECKS的框架圖
由于采用了認證加密技術,該方案可以防止攻擊者在不知道數據所有者的私鑰的情況下偽造有效的密文并發送給數據接收者。此外,該方案采用了指定云服務器技術,即使攻擊者檢索到數據接收者的陷門,也無法執行關鍵詞搜索,因為攻擊者不知道指定云服務器的私鑰。基于此,該方案可以在隨機預言模型下防止內部關鍵詞猜測攻擊。
四、安全威脅和防御方式
4.1 關鍵詞猜測攻擊
關鍵詞猜測攻擊[11]是由于關鍵詞空間遠小于密鑰空間,并且用戶通常使用常用關鍵詞進行檢索,這為攻擊者提供了一個字典攻擊的“捷徑”。導致關鍵詞猜測攻擊的原因可歸結為:
(1)關鍵詞空間較小,且用戶集中于使用常用詞匯,給攻擊者提供了遍歷關鍵詞空間的可能;
(2)算法一致性約束,使攻擊者擁有對本次攻擊是否成功的預先判定:執行Test算法,返回1說明本次攻擊成功;否則,可以再繼續猜測。
預防措施:為了抵御關鍵字猜測攻擊,先后有人提出了多種抗關鍵字猜測攻擊的可搜索加密方案[9,10]。通過限制查詢請求頻率或用戶查詢能力等方式,防止惡意敵手猜測出準確的關鍵字。
4.2文件注入攻擊
在執行文件注入攻擊[12]時,攻擊者會向客戶端發送一些文件,然后客戶端會將這些文件使用可搜索加密方案進行加密并上傳至服務器。攻擊者可以通過注入少量的文件來了解客戶端所搜索的大量關鍵詞。這是一種比較隱蔽的攻擊方式,因為攻擊者并不需要直接獲取到客戶端的私鑰或者陷門,而只需要觀察客戶端上傳的加密文件即可。圖4-1說明了文件注入攻擊的思想。
圖4-1 |K|=8時文件注入攻擊用例
假設關鍵字集合K中有8個關鍵字,攻擊者注入文件File1、File2、File3,每個文件都包含4個關鍵字,即圖中陰影部分。如果File2響應某個令牌而返回,但File1和File3未返回,則該令牌對應的關鍵字是k2。基本的觀察結果是,如果服務器注入一個文件F,其中恰好包含關鍵字集合K中的一半關鍵字,那么通過觀察客戶端發送的令牌t是否與之匹配文件,服務器可以學習關于t對應的關鍵字的一位信息。基于此,通過注入少量文件,服務器就能準確地確定關鍵字。
預防措施:Bost等人先后提出了前向隱私[13]和后向隱私[14]的概念以及實現方案。通過減少文件更新和歷史查詢信息泄露,避免了用戶遭受文件注入攻擊的風險。
五、總結
可搜索加密技術具有廣泛的應用場景,可以在保護數據隱私的同時,實現高效的數據搜索和管理。在云計算領域,可搜索加密技術可以幫助用戶在云中存儲和管理敏感數據,同時保護數據隱私。在數據共享領域,可搜索加密技術可以提供更佳的數據安全性和隱私保護能力,同時實現高效的數據檢索和共享。在位置隱私保護領域,可搜索加密技術可以幫助用戶在保護個人位置隱私的同時,獲得需要的服務和信息。
盡管可搜索加密技術已經取得了顯著的進展,但仍然存在一些改進方向。例如,現有的可搜索加密技術仍然存在一些安全漏洞,需要研究新的算法和協議來提高可搜索加密技術的安全性和隱私保護能力。此外,現有的可搜索加密技術在性能方面還存在一些限制,需要研究新的技術和算法,以提高可搜索加密技術的性能和效率。最后,還可以將可搜索加密技術與其他安全技術,如區塊鏈、差分隱私等相結合,以更好地滿足實際應用的需求。
參考文獻
[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.?