趙唯瑋,李 強,張愛新,李建華
大數(shù)據(jù)的時代背景下,云存儲技術(shù)作為云計算概念的延伸和發(fā)展,成為政府、眾多企業(yè)及個人面對海量數(shù)據(jù)存儲時的新選擇。云存儲服務(wù)能夠為用戶提供龐大的計算資源、存儲空間和靈活的共享模式,其便捷、快捷和按需可用的網(wǎng)絡(luò)訪問方式,使得用戶可以隨時隨地訪問資源,從而用戶能夠很大程度節(jié)約本地的存儲資源和在本地進行數(shù)據(jù)管理、系統(tǒng)維護的開銷。然而,由于云存儲服務(wù)的遠程特性,用戶通常很難控制云服務(wù)提供商乃至一些未經(jīng)授權(quán)的非法用戶對存儲數(shù)據(jù)進行訪問。為了保護數(shù)據(jù)的保密性,用戶通常在將數(shù)據(jù)上傳至云服務(wù)器前將其加密。進一步地,為了能夠方便地通過生成加密的關(guān)鍵詞即陷門,對這些加密數(shù)據(jù)直接進行搜索,可搜索加密的概念和相關(guān)研究應(yīng)運而生[1]。云存儲系統(tǒng)通常需要支持多用戶數(shù)據(jù)分享的需求,通常認為所有用戶是可信的。然而,現(xiàn)實情況下,用戶行為往往無法得到有效監(jiān)控。例如:用戶將自己的權(quán)限非法授權(quán)給他人使用,用戶合法身份被黑客冒用,或者用戶在合法授權(quán)下獲取數(shù)據(jù),后將所得數(shù)據(jù)非法散播給他人等。在云存儲系統(tǒng)中引入審計日志機制,能夠?qū)τ脩粼谠拼鎯ο到y(tǒng)中得到服務(wù)的行為進行監(jiān)控,從而實現(xiàn)對用戶上述主動或被動轉(zhuǎn)移權(quán)限行為的追溯。由于保存在云服務(wù)器上的審計日志包含云存儲系統(tǒng)用戶的身份、服務(wù)請求等敏感信息,需要經(jīng)過可搜索加密技術(shù)的處理,因此被稱為可搜索加密審計日志。
云存儲系統(tǒng)模型及實體交互如圖1所示,其中包含三個實體,分別為可信的數(shù)據(jù)擁有者、誠實而好奇的云服務(wù)提供商和數(shù)據(jù)用戶。
圖1 云存儲系統(tǒng)模型及實體交互
數(shù)據(jù)擁有者Alice將數(shù)據(jù)遠程存儲在云服務(wù)器上,供數(shù)據(jù)用戶訪問和操作。只有當數(shù)據(jù)擁有者對云存儲系統(tǒng)中數(shù)據(jù)用戶進行授權(quán)后,數(shù)據(jù)用戶才能夠訪問服務(wù)器上的數(shù)據(jù)。因此,Alice生成相應(yīng)的可搜索加密審計日志,并存儲在云服務(wù)器上。當需要對可搜索加密審計日志進行搜索時,Alice加密關(guān)鍵詞形成陷門后,將陷門發(fā)送給云服務(wù)器,最后經(jīng)過她驗證和解密的搜索結(jié)果,將用于對數(shù)據(jù)用戶行為的審計。
誠實而好奇的云服務(wù)提供商向數(shù)據(jù)擁有者提供存儲數(shù)據(jù)的云服務(wù)器。云服務(wù)器能夠正確執(zhí)行算法,但對云存儲系統(tǒng)中用戶的隱私保持好奇。收到數(shù)據(jù)用戶的服務(wù)請求后,云服務(wù)器對數(shù)據(jù)用戶提交的可搜索加密審計日志進行驗證,核實是否與服務(wù)請求一致。只有兩者一致,云服務(wù)器才會向用戶提供相應(yīng)的數(shù)據(jù)服務(wù),并存儲可搜索加密審計日志,確??伤阉骷用軐徲嬋罩镜挠行浴M瑫r,云服務(wù)器也提供對可搜索加密審計日志的搜索。搜索過程中,云服務(wù)器無法得知審計日志和陷門的明文。
由于數(shù)據(jù)擁有者可以將數(shù)據(jù)存儲在多個云服務(wù)提供商提供的多個云服務(wù)器上,為了方便表述,下文所稱的云服務(wù)器即指代云服務(wù)提供商。
數(shù)據(jù)用戶Bob得到Alice的授權(quán)并經(jīng)過云服務(wù)器驗證通過后,能夠通過云服務(wù)器獲取云存儲系統(tǒng)中的數(shù)據(jù)服務(wù)。
一般地,可搜索加密審計日志的應(yīng)用背景和應(yīng)用特性,要求可搜索加密審計日志需要滿足的安全需求主要有以下兩方面。
云存儲系統(tǒng)中,審計日志的內(nèi)容通常直觀保存著數(shù)據(jù)用戶的服務(wù)訪問行為信息。
安全的可搜索加密審計日志,要求加密后的審計日志和搜索關(guān)鍵詞不能泄露用戶的隱私信息。因此,這也保證了即使一旦攻擊者(攻擊者泛指任何希望探聽用戶隱私的人,可能是云存儲系統(tǒng)內(nèi)部的實體,或者來自云存儲系統(tǒng)外部的用戶)截獲可搜索加密審計日志或搜索的關(guān)鍵詞,他也無法從中得到任何有關(guān)用戶隱私的信息。
作為云審計和取證的有力工具,為了保證可搜索加密審計日志的真實、可信和有效,可搜索加密審計日志必須由云存儲系統(tǒng)中可信賴的實體創(chuàng)建。這需要在設(shè)計可搜索加密審計日志的過程中,保證任何其他非法實體生成合法有效的可搜索加密審計日志在計算上不可行。
設(shè)想云存儲系統(tǒng)中有一位數(shù)據(jù)用戶企圖向云服務(wù)器請求不在其權(quán)限范圍的服務(wù),并且希望盡力避免自己的行為在審計過程中被發(fā)現(xiàn)。首先,如果數(shù)據(jù)用戶能夠偽造可搜索加密審計日志,他能夠很容易地通過重新虛構(gòu)一條審計日志將自己的這一行為栽贓給其他數(shù)據(jù)用戶。其次,如果云服務(wù)器能夠偽造可搜索加密審計日志而數(shù)據(jù)用戶不能,那么數(shù)據(jù)用戶同樣可以通過唆使云服務(wù)器偽造審計日志將自己的非法行為隱藏起來。最后,外部攻擊者的攻擊行為也能夠以上述相似方式偽裝自己的攻擊行為而在審計時不被察覺。
從上述的攻擊情境可以發(fā)現(xiàn),如果無法滿足不可偽造的安全需求,數(shù)據(jù)擁有者將無法分辨?zhèn)卧斓膶徲嬋罩?,從而無法以此判斷云存儲系統(tǒng)中的非法行為。這無疑違背了可搜索加密審計日志的設(shè)計初衷,也無法降低云存儲系統(tǒng)中數(shù)據(jù)訪問的安全風險。因此,不可偽造是可搜索加密審計日志必須滿足的安全需求。
2004年,Waters等人[2]率先提出了基于對稱加密算法和基于公鑰加密算法的可搜索加密審計日志方案,包含管理員(即持有主密鑰的第三方代理)、云服務(wù)器和調(diào)查者。其中,云服務(wù)器直接生成審計日志明文并對其進行加密,形成可搜索加密審計日志后存儲。可信的調(diào)查員通過向管理員請求關(guān)鍵詞的搜索權(quán)限,對可搜索加密審計日志進行搜索和解密。因此,云服務(wù)器能夠了解所有審計日志的明文內(nèi)容,這顯然侵犯了用戶的隱私,且他們的方案不能阻止云服務(wù)器偽造審計日志的內(nèi)容。云服務(wù)器可以隨意創(chuàng)建、更改或刪除審計日志的內(nèi)容,并在之后進行加密,偽裝成合法的可搜索加密審計日志。這樣的審計日志無法真正記錄用戶在云存儲系統(tǒng)中的行為。2015年,文獻[3]在將Waters等人的方案在NetFlow記錄上進行了實現(xiàn),但沒有進行改進。
文獻[4]提出了基于加密倒排索引的可搜索加密審計日志方案,包含管理員和調(diào)查員兩方實體。管理員將一條日志記錄分別轉(zhuǎn)換為用于搜索和加密的兩種形式,且管理員的操作對調(diào)查員是可驗證的。2009年,文獻[5]提出了基于SQL數(shù)據(jù)庫命令結(jié)構(gòu)的可搜索加密審計日志方案。上述兩個方案都允許管理員生成關(guān)于自己的審計日志供調(diào)查員審計。顯然,管理員能夠通過跳過日志記錄過程逃脫調(diào)查員的審計。此外,管理員用自己的私鑰對關(guān)鍵詞進行簽名生成陷門,以便調(diào)查員稍后利用公鑰進行驗證。然而,由于公鑰是公開的,無論是云存儲系統(tǒng)內(nèi)部的其他用戶還是外部的竊聽者,都能夠輕易得到。因此,任何人都能得到陷門對應(yīng)的明文關(guān)鍵詞,這無法滿足可搜索加密審計日志的安全需求。
根據(jù)上述分析,顯然已有的可搜索加密審計日志方案無法滿足基本的安全需求。因此,本文針對多云服務(wù)提供商的云存儲系統(tǒng),提出了一種基于隱私保護的不可偽造可搜索加密審計日志方案。
基于隱私保護的不可偽造可搜索加密審計日志方案由以下七個多項式時間算法組成。
以安全參數(shù)λ為輸入,輸出素數(shù)階為p的乘法循環(huán)群G1、G2上的一個生成元g和雙線性 配 對 e∶G1×G1→ G2。 兩 個 單 向 哈 希 函 數(shù) 分別 為:H1∶{0,1}*→ G1和 H2∶G2→ {0,1}logp。 選取兩個隨機數(shù)α,β∈Z*p作為主密鑰。主密鑰msk=(α,β)僅由數(shù)據(jù)擁有者秘密持有;系統(tǒng)參數(shù)params=(g,G1,G2,H1,H2,e)對系統(tǒng)所有實體公開。
以云服務(wù)器的身份IDS為輸入,計算私鑰并秘密交與云服務(wù)器。
為身份為IDU的數(shù)據(jù)用戶生成可搜索加密審計日志 AuditLog=<Q,K^W,V^,L,σ>,執(zhí)行步驟如下:
(1)選取隨機數(shù)r1,r2∈Z*p,令Q=gr2;
(3)審計日志明文l∈{0,1}*包含關(guān)于數(shù)據(jù)用戶的詳細審計內(nèi)容,從中提取關(guān)鍵詞集合 W=<w1,w2,…,wn>,(wi∈ {0,1}*,i=1,2,…,n), 計算加密關(guān)鍵詞集合, 其 中
(4)令數(shù)據(jù)用戶的服務(wù)請求記錄RU∈{0,1}logp用于云服務(wù)器驗證,則RU=IDU||PU||TU||BU,分別記錄數(shù)據(jù)用戶的身份IDU、IP地址PU、驗證到期時間TU以及用戶請求數(shù)據(jù)服務(wù)的標簽BU。為了隱私保護,RU的表達形式可以由數(shù)據(jù)擁有者事先約定后告知云服務(wù)器,而無需直接反映數(shù)據(jù)用戶的訪問信息。加密審計日志明文為l,計算得到
(5)令Z^=e(g, g)r1,計算得到V^=L⊕H2(Z^)⊕RU。
收到可搜索加密審計日志AuditLog=<Q,K^W,V^,L,σ>后,數(shù)據(jù)用戶將其提交給云服務(wù)器,并告知服務(wù)器自己想要獲取的數(shù)據(jù)服務(wù)。云服務(wù)器通過以下步驟進行驗證:
(1)計算 σ'=ωS1IDU×ωS2;
(2) 令 Z=e(σ',σ), 計 算 Vi=L ⊕ H2(Z)⊕ CUi,(i=1,2,…,t)。 其 中CUi∈{0,1}logp表 示 數(shù) 據(jù) 用 戶當前的服務(wù)請求記錄,同樣包含其身份IDU'、IP地址PU'、當前時間TU'以及用戶請求數(shù)據(jù)服務(wù)的標簽BU'。假設(shè)驗證時限為t,令i=1,2,…,t,則
當且僅當存在唯一的i∈[1,t]使得Vi=V^時,數(shù)據(jù)用戶通過驗證,云服務(wù)器響應(yīng)其提出的服務(wù)請求;否則,云服務(wù)器返回錯誤符號⊥,表示拒絕數(shù)據(jù)用戶的請求。
當數(shù)據(jù)擁有者需要查詢某位數(shù)據(jù)用戶包含關(guān)鍵詞集合 W '=<w',w',…,w'>(i=1,2,…,m)的可搜索加密審計日志時,生成陷門集Γ=<Td1,Td2,…,Tdm>,其中
收到陷門集Γ后,云服務(wù)器對每一條可搜索加密審計日志AuditLog=<Q,K^W,V^,L,σ> 按以下步驟實現(xiàn)連接關(guān)鍵詞搜索:
(1)計算ηi'= e (T di,Q ) (i = 1 ,2,… ,m );
當ηi'=ηj時,令δij=1;否則,δij=0。對δij(i=1,2, …,m,j=1,2,…,n)構(gòu)成矩陣Φ。當且僅當Φ的每一行僅有一個1、每一列至多有一個1時,該可搜索加密審計日志為搜索結(jié)果。
數(shù)據(jù)擁有者收到云服務(wù)器返回的搜索結(jié)果后,根據(jù)云服務(wù)器的IDS對搜索結(jié)果進行驗證:
(1)計算令Z '=e(g,K),計算得到RU'=V^⊕L⊕H2(Z ');
結(jié)合可搜索加密審計日志的安全需求,經(jīng)過對上述方案的分析可以得出,它能夠保護用戶隱私,且數(shù)據(jù)用戶和云服務(wù)提供商被證明無法偽造有關(guān)任意數(shù)據(jù)用戶的合法可搜索加密審計日志。
4.1.1 隱私保護
方案中,無論是審計日志記錄的密文L,還是搜索的陷門集Γ,對云存儲系統(tǒng)的內(nèi)外部非授權(quán)用戶都是保密的。在沒有主密鑰msk的情況下,攻擊者無法解開它們得到明文。即使云服務(wù)器能夠?qū)?shù)據(jù)用戶提交的可搜索加密日志進行驗證和根據(jù)關(guān)鍵詞進行搜索,也無法真正得知審計內(nèi)容。
4.1.2 不可偽造
方案中的可搜索加密審計日志由唯一可信的數(shù)據(jù)擁有者生成,而非云服務(wù)器和數(shù)據(jù)用戶生成,其不可偽造體現(xiàn)在兩方面。
一方面,假設(shè)云服務(wù)器希望偽造某個身份為IDU*用戶的關(guān)于其服務(wù)請求RU*的可搜索加密審計日志。他需要選擇一組(α*, β*),計算得到AuditLog*=<>。令 r*為云服務(wù)器偽造日志時選擇的一個隨機數(shù),則:
顯然,當且僅當α*=α時,Z '*=Z^*才能成立,繼而解得正確的RU*。進一步地,當且僅當β*=β時,根據(jù)正確的RU*計算式(6)得到審計日志明文l*,才是正確形式的審計日志明文;否則,將會無法通過數(shù)據(jù)擁有者的驗證。
另一方面,假設(shè)身份為IDU*的數(shù)據(jù)用戶希望不通過數(shù)據(jù)擁有者而自己生成可搜索加密審計日志,從而獲得權(quán)限之外的數(shù)據(jù)服務(wù)RU*。同理,他也必須選擇一組(α*,β*)計算AugitLog*。云服務(wù)器首先根據(jù)式(7)得到Z*,并計算式(8)。顯然,只有當α*=α時,Z*=Z^*,云服務(wù)器才能找到唯一的i∈[1,t]使得Vi=V^*,進而通過數(shù)據(jù)用戶的驗證。
而基于離散對數(shù)的困難性問題可知,無論是數(shù)據(jù)用戶還是云服務(wù)器,他們都無法猜測得到一組(α*, β*)且 α*=α 和 β*=β,從而成功偽造合法的可搜索加密審計日志。
表1列舉了本文的可搜索加密審計日志方案與其他相關(guān)文獻的比較。其中,僅有文獻[2]的方案無法支持連接關(guān)鍵詞的搜索。而根據(jù)第2章所述,這三個可搜索加密審計日志的方案均無法滿足隱私保護和不可偽造的安全需求。文獻[2]中服務(wù)器可以直接獲得審計日志的明文,而文獻[4-5]方案中的陷門能夠被竊聽者輕易得到對應(yīng)的關(guān)鍵詞明文。此外,這些方案都無法防止可搜索加密審計日志被偽造,而本文基于離散對數(shù)問題的困難性,證明了任何不完全可信的實體無法偽造方案中的可搜索加密審計日志。
表1 相關(guān)文獻比較
利用PBC庫實現(xiàn)了上述可搜索加密審計日志方案的算法并進行了效率評估。數(shù)據(jù)擁有者的效率評估如圖2所示。數(shù)據(jù)擁有者僅需要0.08 s的時間生成一條包含10個關(guān)鍵詞的可搜索加密審計日志,以及0.02 s左右生成包含4個查詢關(guān)鍵詞的陷門集(例如,其中分別包括誰/什么時間/從哪里訪問/何種數(shù)據(jù)服務(wù)的查詢)。而數(shù)據(jù)用戶生成云服務(wù)器密鑰和驗證解密搜索結(jié)果的效率更高,僅需要小于0.0 1 s即能完成。
圖2 數(shù)據(jù)擁有者端算法效率
圖3 顯示了云服務(wù)器端的算法執(zhí)行效率。顯然,云服務(wù)器執(zhí)行搜索算法的計算開銷相對略高。云服務(wù)器根據(jù)一個陷門對一條包含10個關(guān)鍵詞的可搜索加密審計日志匹配需要約0.03 s。而對數(shù)據(jù)用戶進行可搜索加密審計日志的驗證僅需要5 ms左右,因此云服務(wù)器能夠有效響應(yīng)數(shù)據(jù)用戶的請求,其搜索效率也在相對可接受范圍內(nèi)。
圖3 云服務(wù)器端算法效率
本文針對多云服務(wù)提供商的云存儲系統(tǒng)提出了基于隱私保護的不可偽造可搜索加密審計日志方案,解決了云存儲系統(tǒng)中審計日志的生成、加密、搜索和驗證。分析結(jié)果表明,該方案能夠保護用戶隱私,同時證明了任意不可信實體無法偽造可搜索加密審計日志,具有較好的實用價值。今后擬引入可信第三方審計的應(yīng)用背景,結(jié)合代理重加密進一步擴展方案的實用范圍。
[1] Sch C,Hartel P,Jonker W,et al.A Survey of Provably Secure Searchable Encryption[J].ACM Computing Surveys,2015,47(02):18.
[2] Waters B R,Balfanz D,Durfee G,et al.Building an Encrypted and Searchable Audit Log[C].Network and Distributed System Security Symposium,2004.
[3] Gopularam B P,Dara S,Niranjan N.Experiments in Encrypted and Searchable Network Audit Logs[C].International Conference on Emerging Information Technology and Engineering Solutions IEEE,2015:18-22.
[4] Ohtaki Y.Constructing a Searchable Encrypted Log Using Encrypted Inverted Indexes[C].International Conference on Cyberworlds. Singapore IEEE,2005:132-138.
[5] Sabbaghi A,Mahmoudi F.Establishing an Efficient and Searchable Encrypted Log Using Record Authenticator[C].International Conference on Computer Technology and Development,2009(02):206-211.