【摘 要】 隨著云計算技術(shù)的發(fā)展,越來越多的數(shù)據(jù)被存儲在云端,但云服務(wù)器并不一定安全,存在數(shù)據(jù)泄露的風險。針對此問題,本文提出一種基于層級鏈技術(shù)的數(shù)據(jù)保護方案,在保證數(shù)據(jù)安全的前提下,實現(xiàn)數(shù)據(jù)的密態(tài)檢索。該方案將數(shù)據(jù)資產(chǎn)存儲在私有鏈上,為方便對加密數(shù)據(jù)的靈活檢索,生成加密關(guān)鍵詞索引存儲在聯(lián)盟鏈上,通過數(shù)據(jù)存儲域與訪問域的隔離保證數(shù)據(jù)資產(chǎn)的機密性、完整性和不可篡改性。基于可搜索加密技術(shù)與屬性加密技術(shù),實現(xiàn)密文關(guān)鍵詞檢索、細粒度訪問控制與搜索結(jié)果的可驗證。本文還通過安全分析與性能評估證明了該方案的安全性,同時具有更高的計算效率。
【關(guān)鍵詞】 區(qū)塊鏈 可搜索加密 數(shù)據(jù)保護
1 引言
隨著各領(lǐng)域數(shù)據(jù)量的激增,越來越多的機構(gòu)選擇將數(shù)據(jù)存儲在云端,但有的云服務(wù)器可能是惡意的,因此存在著一定的信息泄露風險,必須對數(shù)據(jù)進行加密存儲,由此導致加密數(shù)據(jù)的檢索變得十分困難,只能頻繁下載全部數(shù)據(jù)解密后再進行使用,這無疑會消耗大量的計算資源與時間。
隨著區(qū)塊鏈3.0時代的到來,區(qū)塊鏈技術(shù)被廣泛應(yīng)用到日常生產(chǎn)生活中的各個領(lǐng)域。區(qū)塊鏈是一種適用于存儲和查詢的高度分布式數(shù)據(jù)結(jié)構(gòu),使關(guān)鍵詞查詢能夠通過所有相關(guān)方的共識得到驗證和記錄,并通過共識機制保證數(shù)據(jù)的完整性、不可篡改性。
雖然區(qū)塊鏈的特性可以很好地保護被檢索數(shù)據(jù)的隱私,但依舊無法解決加密數(shù)據(jù)檢索困難的問題。而可搜索加密技術(shù)恰好可以解決密文檢索困難問題,其通常的策略是:首先創(chuàng)建索引,然后將索引和加密數(shù)據(jù)分開存儲,通過對索引遍歷來查詢關(guān)鍵詞對應(yīng)的文件,從而達到密文檢索的目的。但其他授權(quán)用戶若要進行同樣的查詢操作,只能先獲取數(shù)據(jù)擁有者的密鑰,這顯然是不安全的。此外,屬性加密技術(shù)可以為靈活的細粒度訪問控制提供支持,其將訪問結(jié)構(gòu)巧妙嵌入加密技術(shù),當用戶的屬性滿足該訪問結(jié)構(gòu)方可成功解密。目前研究最多的是密文策略屬性加密,該方案將訪問策略嵌入密文,將用戶的屬性作為密鑰,當屬性滿足密文的訪問策略時即可進行解密,否則無權(quán)進行訪問,以此達到細粒度訪問控制的目的。
本文提出了一種基于層級鏈技術(shù)的數(shù)據(jù)保護方案,在保證數(shù)據(jù)機密性、完整性的同時,實現(xiàn)數(shù)據(jù)密態(tài)檢索、細粒度訪問控制與搜索結(jié)果的可驗證。本方案具有以下3個特點。
(1)采用層級鏈和可搜索加密技術(shù),將加密數(shù)據(jù)存儲在私有鏈,加密關(guān)鍵詞索引存儲在聯(lián)盟鏈,通過數(shù)據(jù)存儲域和數(shù)據(jù)訪問域的隔離,實現(xiàn)數(shù)據(jù)機密性、完整性和不可篡改性。
(2)通過密文策略的屬性加密技術(shù),實現(xiàn)細粒度的訪問控制,并由聯(lián)盟鏈服務(wù)器為用戶執(zhí)行耗時的中間解密過程,減小用戶的計算開銷。
(3)通過結(jié)果的可驗證,保證搜索結(jié)果的正確性,防止被惡意攻擊。
論文對本方案進行了安全分析和性能評估,結(jié)果表明,本方案具有較高安全性和計算效率。
2 相關(guān)工作
2.1 可搜索加密
可搜索加密(Searchable Encryption,SE)是一種在不需要解密的情況下,可以直接對存儲在云端服務(wù)器上的加密數(shù)據(jù)文件進行關(guān)鍵詞檢索的技術(shù)。常見的可搜索加密方案包括對稱可搜索加密(Symmetric Searchable Encryption,SSE)與公鑰可搜索加密(Public Key Encryption with Keywords Search,PEKS)。最初,Goldreich和Ostrovsky于2000年提出可搜索加密的概念;诖耍琒ong等人提出第一個實用的對稱可搜索加密的構(gòu)造方案。該方案通過使用特殊的2層加密結(jié)構(gòu)來搜索加密數(shù)據(jù),使用順序掃描來搜索密文。但由于每次搜索都需要遍歷整個密文文件,搜索時間和文件大小線性相關(guān),搜索效率低。Goh等人構(gòu)造了第一個基于索引的方案,利用Bloom過濾器以及偽隨機函數(shù)來構(gòu)建安全索引。Chen首次提出了S-HashMap索引結(jié)構(gòu),在實現(xiàn)多關(guān)鍵字模糊密文檢索的同時,使數(shù)據(jù)的更新更高效、更安全。Stefanov等人首次提出前向安全的概念并設(shè)計了相應(yīng)方案,該方案泄露信息更少且效率更高,在最壞的情況下該方案支持亞線性時間內(nèi)的更新和搜索,同時保持僅線性大小的數(shù)據(jù)結(jié)構(gòu)。
但隨著技術(shù)發(fā)展,單一可搜索加密技術(shù)已不能滿足數(shù)據(jù)的功能性和安全性需求,迫切需要新技術(shù)的加入來解決此問題。
2.2 可搜索加密與區(qū)塊鏈的結(jié)合
利用可搜索加密技術(shù)實現(xiàn)鏈上數(shù)據(jù)加密及密文搜索是當前常見的一種解決方案。可搜索加密搜索的對象是加密密文,因此需要事先選擇搜索關(guān)鍵詞,加密生成查詢目標密文。在構(gòu)建鏈上可搜索加密方案時,研究人員將關(guān)注點放在加密搜索安全性及性能上的提升,區(qū)塊鏈僅僅作為方案實現(xiàn)的平臺,提供可信的數(shù)據(jù)存儲及檢索功能。例如,Chen等人針對醫(yī)療數(shù)據(jù),提出基于區(qū)塊鏈的電子病例(EHR)可搜索加密方案,該方案中索引存儲在區(qū)塊鏈中,區(qū)塊鏈技術(shù)的使用確保EHR索引的完整性、防篡改性和可追溯性。Li等人提出了一種基于區(qū)塊鏈的索引分層可搜索加密方案,該方案首先設(shè)計了一種分層搜索索引結(jié)構(gòu)并將其外包給區(qū)塊鏈網(wǎng)絡(luò),以實現(xiàn)可靠的分層搜索。Ali等人提出將區(qū)塊鏈作為一個分布式數(shù)據(jù)庫,采用同態(tài)加密技術(shù),以確保對數(shù)據(jù)庫的安全搜索和基于關(guān)鍵詞的訪問。
但是這些工作中,區(qū)塊鏈只提供存儲與檢索功能,如何利用區(qū)塊鏈的其他特性來滿足方案的需求值得去深入研究。本方案提出利用聯(lián)盟鏈服務(wù)器性能優(yōu)勢,為用戶提供中間解密功能,可以大大縮短用戶解密時間,提升用戶使用體驗。
2.3 基于屬性的可搜索加密
屬性加密是Sahai和Waters在2005年提出的概念,他們將訪問結(jié)構(gòu)結(jié)合在密文中,從而達到訪問控制的目的。屬性加密可分為密文策略屬性加密(CP-ABE)和密鑰策略屬性加密(KP-ABE),當前學者針對CP-ABE的研究較多。Sun等人受屬性加密的啟發(fā)提出了第一個基于屬性的關(guān)鍵詞檢索方案,從而實現(xiàn)了細粒度訪問控制。Qiu等人提出了支持隱藏訪問策略的基于屬性的可搜索加密方案,如果數(shù)據(jù)用戶的屬性憑證不能滿足數(shù)據(jù)所有者指定的訪問控制策略,則數(shù)據(jù)用戶無法搜索加密數(shù)據(jù)并了解有關(guān)訪問結(jié)構(gòu)的任何信息。Liu等人為解決密鑰管理等安全問題,引入?yún)^(qū)塊鏈技術(shù),利用其去中心化的性質(zhì),負責系統(tǒng)參數(shù)與密鑰生成等過程,使方案更加安全。
但是,現(xiàn)有的基于屬性的可搜索加密方案,均需把關(guān)鍵詞一同通過屬性進行加密,這大大增加了加密耗時與陷門生成耗時。本方案將關(guān)鍵詞與文件索引單獨加密,屬性加密只對加密文件的對稱密鑰進行加密,效率更高。
3 系統(tǒng)模型
本方案采用層級區(qū)塊鏈架構(gòu),加密數(shù)據(jù)存儲在私有鏈上,關(guān)鍵詞索引等存儲在聯(lián)盟鏈,從而有效降低數(shù)據(jù)泄露的風險,并保證用戶數(shù)據(jù)的不可篡改。層級鏈示意圖如圖1所示。
本方案提出的系統(tǒng)模型主要包含4大實體,分別是:數(shù)據(jù)擁有者(DO)、數(shù)據(jù)用戶(DU)、私有鏈(PB)和聯(lián)盟鏈(CB)。
圖1 層級鏈技術(shù)
DU可根據(jù)關(guān)鍵詞搜索DO發(fā)布的加密數(shù)據(jù)。PB是DO維護的私有區(qū)塊鏈,負責存儲DO加密后的數(shù)據(jù)。CB由各數(shù)據(jù)使用方共同構(gòu)成和維護,負責存儲加密索引、文件哈希值等,并通過智能合約執(zhí)行搜索算法,CB還可代替DU完成中間解密工作,減少DU的計算耗時,提高效率和體驗。該方案的系統(tǒng)模型如圖2所示。
圖2 系統(tǒng)模型
4 系統(tǒng)實現(xiàn)
基于上一節(jié)提到的系統(tǒng)模型,本節(jié)基于屬性加密技術(shù)和可搜索加密技術(shù),構(gòu)建了一個基于層級區(qū)塊鏈的數(shù)據(jù)安全保護方案。該方案兼顧了數(shù)據(jù)存儲的機密性、完整性與數(shù)據(jù)檢索的靈活性。
本方案的設(shè)計思想是采用層級鏈的架構(gòu),私有鏈PB存儲數(shù)據(jù)密文,聯(lián)盟鏈CB存儲關(guān)鍵詞索引等信息,通過數(shù)據(jù)存儲域和數(shù)據(jù)訪問域的隔離,達到數(shù)據(jù)保護的目的,保護數(shù)據(jù)的機密性、完整性和不可篡改性。其具體工作流程如圖3所示:
圖3 系統(tǒng)工作流程
(1)CB先進行系統(tǒng)初始化,生成公共參數(shù)和主密鑰,公開公共參數(shù)并保留主密鑰;
(2)DO將自己的數(shù)據(jù)文件進行加密后上傳至PB;
(3)PB返回文件的存儲位置給DO;
(4)DO根據(jù)關(guān)鍵詞及文件列表生成加密索引,連同文件存儲位置、文件哈希值、訪問策略等信息上傳至CB;
(5)DU向DO發(fā)起關(guān)鍵詞查詢請求;
(6)DO根據(jù)DU提供的關(guān)鍵詞為其生成對應(yīng)的陷門;
(7)DU將陷門上傳至CB發(fā)起關(guān)鍵詞查詢請求;
(8)CB首先判斷DU的屬性是否滿足訪問策略的要求,若滿足則執(zhí)行檢索算法并向PB獲取加密文件;
(9)PB將密文文件返回給CB;
(10)CB首先生成解密密鑰并執(zhí)行耗時的中間解密過程得到中間密文,連同文件哈希值等信息發(fā)送至數(shù)據(jù)用戶DU;
(11)DU執(zhí)行最后一步輕量級解密算法獲得明文,并可根據(jù)哈希值判斷文件的完整性,驗證結(jié)果是否正確。
5 安全分析與性能評估
5.1 安全分析
(1)機密性
所有隱私信息均加密存儲,其中原始數(shù)據(jù)加密存儲在PB上,索引加密存儲在CB上,密鑰使用屬性加密保護,只有屬性滿足訪問策略的用戶才能成功解密;同時關(guān)鍵詞也進行加密處理,除了DO和DU,沒有參與方可以獲取到關(guān)鍵詞的明文信息。因此,機密性得以保證。
(2)不可篡改性和完整性
首先,數(shù)據(jù)存儲在鏈上,區(qū)塊鏈不可篡改的性質(zhì)保證了數(shù)據(jù)完整性,惡意用戶無法修改鏈上數(shù)據(jù)。其次,數(shù)據(jù)用戶收到數(shù)據(jù)密文的同時得到原始數(shù)據(jù)的哈希值,由此可以驗證數(shù)據(jù)的完整性。
通過以上分析,在本方案中,數(shù)據(jù)加密存儲以保證機密性,使用屬性加密保護密鑰,實現(xiàn)了安全的訪問控制。數(shù)據(jù)鏈上存儲,利用區(qū)塊鏈的共識機制,保證數(shù)據(jù)的完整性和不可篡改性。因此本文所提的數(shù)據(jù)保護方案在各個環(huán)節(jié)中均很好地保護了數(shù)據(jù)的安全。
5.2 性能評估
本節(jié)將從功能性和計算開銷來評估本文方案和其他方案的主要性能。
表1給出了本文所提出方案與文獻[11]-[13]所提出方案的功能性對比。從表1可以看出,文獻[11]-[13]所提出方案均支持隱私保護、訪問控制與可搜索加密,文獻[13]所提出方案引入?yún)^(qū)塊鏈技術(shù)以防止惡意行為,使方案更安全。而相比這3種方案,本文所提方案支持外包解密和結(jié)果可驗證功能,由聯(lián)盟鏈代替用戶進行耗時的中間解密工作,用戶只需要進行輕量級解密即可獲得最終明文,大大提升用戶體驗。結(jié)果可驗證功能的加入,可以使用戶對搜索結(jié)果完整性進行驗證,防止收到錯誤結(jié)果。總的來說,本文所述方案在隱私保護、訪問控制、可搜索加密、外包解密、結(jié)果可驗證等方面均具有優(yōu)勢,兼具功能性和安全性。
表1 功能性對比
在算法計算開銷方面,綜合評估了本方案在系統(tǒng)初始化、密鑰生成和加密3個階段的計算開銷,并與文獻[11]-[13]所提出方案進行對比。在3個階段的整體計算開銷上,文獻[11]所提方案所需時間為5n的群運算時間,文獻[12]所提方案需要4n的群運算時間,而文獻[13]所提方案需要20n的群運算時間。本文方案整體需要4n的群運算時間,但相比文獻[12]方案需要更少的哈希計算時間。因此本方案計算開銷明顯優(yōu)于其他方案。
6 結(jié)語
本文提出了一種基于層級鏈技術(shù)的數(shù)據(jù)保護方案。該方案融合區(qū)塊鏈技術(shù)、可搜索加密技術(shù)與屬性加密技術(shù),將密文數(shù)據(jù)存儲在私有區(qū)塊鏈上,加密關(guān)鍵詞索引存儲在聯(lián)盟鏈中,并通過屬性加密進行細粒度訪問控制,使得只有滿足訪問控制策略的用戶才能對數(shù)據(jù)進行解密訪問,保證了數(shù)據(jù)的機密性、完整性和不可篡改性。相較于其他方案,本方案在計算開銷上有一定優(yōu)勢。未來的研究工作中,我們將結(jié)合具體應(yīng)用場景,進一步完善方案,使方案滿足更多安全需求的同時,效率更高。
(原載于《保密科學技術(shù)》雜志2023年3月刊)