趙唯瑋,李 強(qiáng),張愛新,李建華
大數(shù)據(jù)的時(shí)代背景下,云存儲(chǔ)技術(shù)作為云計(jì)算概念的延伸和發(fā)展,成為政府、眾多企業(yè)及個(gè)人面對海量數(shù)據(jù)存儲(chǔ)時(shí)的新選擇。云存儲(chǔ)服務(wù)能夠?yàn)橛脩籼峁嫶蟮挠?jì)算資源、存儲(chǔ)空間和靈活的共享模式,其便捷、快捷和按需可用的網(wǎng)絡(luò)訪問方式,使得用戶可以隨時(shí)隨地訪問資源,從而用戶能夠很大程度節(jié)約本地的存儲(chǔ)資源和在本地進(jìn)行數(shù)據(jù)管理、系統(tǒng)維護(hù)的開銷。然而,由于云存儲(chǔ)服務(wù)的遠(yuǎn)程特性,用戶通常很難控制云服務(wù)提供商乃至一些未經(jīng)授權(quán)的非法用戶對存儲(chǔ)數(shù)據(jù)進(jìn)行訪問。為了保護(hù)數(shù)據(jù)的保密性,用戶通常在將數(shù)據(jù)上傳至云服務(wù)器前將其加密。進(jìn)一步地,為了能夠方便地通過生成加密的關(guān)鍵詞即陷門,對這些加密數(shù)據(jù)直接進(jìn)行搜索,可搜索加密的概念和相關(guān)研究應(yīng)運(yùn)而生[1]。云存儲(chǔ)系統(tǒng)通常需要支持多用戶數(shù)據(jù)分享的需求,通常認(rèn)為所有用戶是可信的。然而,現(xiàn)實(shí)情況下,用戶行為往往無法得到有效監(jiān)控。例如:用戶將自己的權(quán)限非法授權(quán)給他人使用,用戶合法身份被黑客冒用,或者用戶在合法授權(quán)下獲取數(shù)據(jù),后將所得數(shù)據(jù)非法散播給他人等。在云存儲(chǔ)系統(tǒng)中引入審計(jì)日志機(jī)制,能夠?qū)τ脩粼谠拼鎯?chǔ)系統(tǒng)中得到服務(wù)的行為進(jìn)行監(jiān)控,從而實(shí)現(xiàn)對用戶上述主動(dòng)或被動(dòng)轉(zhuǎn)移權(quán)限行為的追溯。由于保存在云服務(wù)器上的審計(jì)日志包含云存儲(chǔ)系統(tǒng)用戶的身份、服務(wù)請求等敏感信息,需要經(jīng)過可搜索加密技術(shù)的處理,因此被稱為可搜索加密審計(jì)日志。
云存儲(chǔ)系統(tǒng)模型及實(shí)體交互如圖1所示,其中包含三個(gè)實(shí)體,分別為可信的數(shù)據(jù)擁有者、誠實(shí)而好奇的云服務(wù)提供商和數(shù)據(jù)用戶。

圖1 云存儲(chǔ)系統(tǒng)模型及實(shí)體交互
數(shù)據(jù)擁有者Alice將數(shù)據(jù)遠(yuǎn)程存儲(chǔ)在云服務(wù)器上,供數(shù)據(jù)用戶訪問和操作。只有當(dāng)數(shù)據(jù)擁有者對云存儲(chǔ)系統(tǒng)中數(shù)據(jù)用戶進(jìn)行授權(quán)后,數(shù)據(jù)用戶才能夠訪問服務(wù)器上的數(shù)據(jù)。因此,Alice生成相應(yīng)的可搜索加密審計(jì)日志,并存儲(chǔ)在云服務(wù)器上。當(dāng)需要對可搜索加密審計(jì)日志進(jìn)行搜索時(shí),Alice加密關(guān)鍵詞形成陷門后,將陷門發(fā)送給云服務(wù)器,最后經(jīng)過她驗(yàn)證和解密的搜索結(jié)果,將用于對數(shù)據(jù)用戶行為的審計(jì)。
誠實(shí)而好奇的云服務(wù)提供商向數(shù)據(jù)擁有者提供存儲(chǔ)數(shù)據(jù)的云服務(wù)器。云服務(wù)器能夠正確執(zhí)行算法,但對云存儲(chǔ)系統(tǒng)中用戶的隱私保持好奇。收到數(shù)據(jù)用戶的服務(wù)請求后,云服務(wù)器對數(shù)據(jù)用戶提交的可搜索加密審計(jì)日志進(jìn)行驗(yàn)證,核實(shí)是否與服務(wù)請求一致。只有兩者一致,云服務(wù)器才會(huì)向用戶提供相應(yīng)的數(shù)據(jù)服務(wù),并存儲(chǔ)可搜索加密審計(jì)日志,確??伤阉骷用軐徲?jì)日志的有效性。同時(shí),云服務(wù)器也提供對可搜索加密審計(jì)日志的搜索。搜索過程中,云服務(wù)器無法得知審計(jì)日志和陷門的明文。
由于數(shù)據(jù)擁有者可以將數(shù)據(jù)存儲(chǔ)在多個(gè)云服務(wù)提供商提供的多個(gè)云服務(wù)器上,為了方便表述,下文所稱的云服務(wù)器即指代云服務(wù)提供商。
數(shù)據(jù)用戶Bob得到Alice的授權(quán)并經(jīng)過云服務(wù)器驗(yàn)證通過后,能夠通過云服務(wù)器獲取云存儲(chǔ)系統(tǒng)中的數(shù)據(jù)服務(wù)。
一般地,可搜索加密審計(jì)日志的應(yīng)用背景和應(yīng)用特性,要求可搜索加密審計(jì)日志需要滿足的安全需求主要有以下兩方面。
云存儲(chǔ)系統(tǒng)中,審計(jì)日志的內(nèi)容通常直觀保存著數(shù)據(jù)用戶的服務(wù)訪問行為信息。
安全的可搜索加密審計(jì)日志,要求加密后的審計(jì)日志和搜索關(guān)鍵詞不能泄露用戶的隱私信息。因此,這也保證了即使一旦攻擊者(攻擊者泛指任何希望探聽用戶隱私的人,可能是云存儲(chǔ)系統(tǒng)內(nèi)部的實(shí)體,或者來自云存儲(chǔ)系統(tǒng)外部的用戶)截獲可搜索加密審計(jì)日志或搜索的關(guān)鍵詞,他也無法從中得到任何有關(guān)用戶隱私的信息。
作為云審計(jì)和取證的有力工具,為了保證可搜索加密審計(jì)日志的真實(shí)、可信和有效,可搜索加密審計(jì)日志必須由云存儲(chǔ)系統(tǒng)中可信賴的實(shí)體創(chuàng)建。這需要在設(shè)計(jì)可搜索加密審計(jì)日志的過程中,保證任何其他非法實(shí)體生成合法有效的可搜索加密審計(jì)日志在計(jì)算上不可行。
設(shè)想云存儲(chǔ)系統(tǒng)中有一位數(shù)據(jù)用戶企圖向云服務(wù)器請求不在其權(quán)限范圍的服務(wù),并且希望盡力避免自己的行為在審計(jì)過程中被發(fā)現(xiàn)。首先,如果數(shù)據(jù)用戶能夠偽造可搜索加密審計(jì)日志,他能夠很容易地通過重新虛構(gòu)一條審計(jì)日志將自己的這一行為栽贓給其他數(shù)據(jù)用戶。其次,如果云服務(wù)器能夠偽造可搜索加密審計(jì)日志而數(shù)據(jù)用戶不能,那么數(shù)據(jù)用戶同樣可以通過唆使云服務(wù)器偽造審計(jì)日志將自己的非法行為隱藏起來。最后,外部攻擊者的攻擊行為也能夠以上述相似方式偽裝自己的攻擊行為而在審計(jì)時(shí)不被察覺。
從上述的攻擊情境可以發(fā)現(xiàn),如果無法滿足不可偽造的安全需求,數(shù)據(jù)擁有者將無法分辨?zhèn)卧斓膶徲?jì)日志,從而無法以此判斷云存儲(chǔ)系統(tǒng)中的非法行為。這無疑違背了可搜索加密審計(jì)日志的設(shè)計(jì)初衷,也無法降低云存儲(chǔ)系統(tǒng)中數(shù)據(jù)訪問的安全風(fēng)險(xiǎn)。因此,不可偽造是可搜索加密審計(jì)日志必須滿足的安全需求。
2004年,Waters等人[2]率先提出了基于對稱加密算法和基于公鑰加密算法的可搜索加密審計(jì)日志方案,包含管理員(即持有主密鑰的第三方代理)、云服務(wù)器和調(diào)查者。其中,云服務(wù)器直接生成審計(jì)日志明文并對其進(jìn)行加密,形成可搜索加密審計(jì)日志后存儲(chǔ)??尚诺恼{(diào)查員通過向管理員請求關(guān)鍵詞的搜索權(quán)限,對可搜索加密審計(jì)日志進(jìn)行搜索和解密。因此,云服務(wù)器能夠了解所有審計(jì)日志的明文內(nèi)容,這顯然侵犯了用戶的隱私,且他們的方案不能阻止云服務(wù)器偽造審計(jì)日志的內(nèi)容。云服務(wù)器可以隨意創(chuàng)建、更改或刪除審計(jì)日志的內(nèi)容,并在之后進(jìn)行加密,偽裝成合法的可搜索加密審計(jì)日志。這樣的審計(jì)日志無法真正記錄用戶在云存儲(chǔ)系統(tǒng)中的行為。2015年,文獻(xiàn)[3]在將Waters等人的方案在NetFlow記錄上進(jìn)行了實(shí)現(xiàn),但沒有進(jìn)行改進(jìn)。
文獻(xiàn)[4]提出了基于加密倒排索引的可搜索加密審計(jì)日志方案,包含管理員和調(diào)查員兩方實(shí)體。管理員將一條日志記錄分別轉(zhuǎn)換為用于搜索和加密的兩種形式,且管理員的操作對調(diào)查員是可驗(yàn)證的。2009年,文獻(xiàn)[5]提出了基于SQL數(shù)據(jù)庫命令結(jié)構(gòu)的可搜索加密審計(jì)日志方案。上述兩個(gè)方案都允許管理員生成關(guān)于自己的審計(jì)日志供調(diào)查員審計(jì)。顯然,管理員能夠通過跳過日志記錄過程逃脫調(diào)查員的審計(jì)。此外,管理員用自己的私鑰對關(guān)鍵詞進(jìn)行簽名生成陷門,以便調(diào)查員稍后利用公鑰進(jìn)行驗(yàn)證。然而,由于公鑰是公開的,無論是云存儲(chǔ)系統(tǒng)內(nèi)部的其他用戶還是外部的竊聽者,都能夠輕易得到。因此,任何人都能得到陷門對應(yīng)的明文關(guān)鍵詞,這無法滿足可搜索加密審計(jì)日志的安全需求。
根據(jù)上述分析,顯然已有的可搜索加密審計(jì)日志方案無法滿足基本的安全需求。因此,本文針對多云服務(wù)提供商的云存儲(chǔ)系統(tǒng),提出了一種基于隱私保護(hù)的不可偽造可搜索加密審計(jì)日志方案。
基于隱私保護(hù)的不可偽造可搜索加密審計(jì)日志方案由以下七個(gè)多項(xiàng)式時(shí)間算法組成。
以安全參數(shù)λ為輸入,輸出素?cái)?shù)階為p的乘法循環(huán)群G1、G2上的一個(gè)生成元g和雙線性 配 對 e∶G1×G1→ G2。 兩 個(gè) 單 向 哈 希 函 數(shù) 分別 為:H1∶{0,1}*→ G1和 H2∶G2→ {0,1}logp。 選取兩個(gè)隨機(jī)數(shù)α,β∈Z*p作為主密鑰。主密鑰msk=(α,β)僅由數(shù)據(jù)擁有者秘密持有;系統(tǒng)參數(shù)params=(g,G1,G2,H1,H2,e)對系統(tǒng)所有實(shí)體公開。
以云服務(wù)器的身份IDS為輸入,計(jì)算私鑰并秘密交與云服務(wù)器。
為身份為IDU的數(shù)據(jù)用戶生成可搜索加密審計(jì)日志 AuditLog=<Q,K^W,V^,L,σ>,執(zhí)行步驟如下:
(1)選取隨機(jī)數(shù)r1,r2∈Z*p,令Q=gr2;

(3)審計(jì)日志明文l∈{0,1}*包含關(guān)于數(shù)據(jù)用戶的詳細(xì)審計(jì)內(nèi)容,從中提取關(guān)鍵詞集合 W=<w1,w2,…,wn>,(wi∈ {0,1}*,i=1,2,…,n), 計(jì)算加密關(guān)鍵詞集合, 其 中
(4)令數(shù)據(jù)用戶的服務(wù)請求記錄RU∈{0,1}logp用于云服務(wù)器驗(yàn)證,則RU=IDU||PU||TU||BU,分別記錄數(shù)據(jù)用戶的身份IDU、IP地址PU、驗(yàn)證到期時(shí)間TU以及用戶請求數(shù)據(jù)服務(wù)的標(biāo)簽BU。為了隱私保護(hù),RU的表達(dá)形式可以由數(shù)據(jù)擁有者事先約定后告知云服務(wù)器,而無需直接反映數(shù)據(jù)用戶的訪問信息。加密審計(jì)日志明文為l,計(jì)算得到
(5)令Z^=e(g, g)r1,計(jì)算得到V^=L⊕H2(Z^)⊕RU。
收到可搜索加密審計(jì)日志AuditLog=<Q,K^W,V^,L,σ>后,數(shù)據(jù)用戶將其提交給云服務(wù)器,并告知服務(wù)器自己想要獲取的數(shù)據(jù)服務(wù)。云服務(wù)器通過以下步驟進(jìn)行驗(yàn)證:
(1)計(jì)算 σ'=ωS1IDU×ωS2;
(2) 令 Z=e(σ',σ), 計(jì) 算 Vi=L ⊕ H2(Z)⊕ CUi,(i=1,2,…,t)。 其 中CUi∈{0,1}logp表 示 數(shù) 據(jù) 用 戶當(dāng)前的服務(wù)請求記錄,同樣包含其身份IDU'、IP地址PU'、當(dāng)前時(shí)間TU'以及用戶請求數(shù)據(jù)服務(wù)的標(biāo)簽BU'。假設(shè)驗(yàn)證時(shí)限為t,令i=1,2,…,t,則
當(dāng)且僅當(dāng)存在唯一的i∈[1,t]使得Vi=V^時(shí),數(shù)據(jù)用戶通過驗(yàn)證,云服務(wù)器響應(yīng)其提出的服務(wù)請求;否則,云服務(wù)器返回錯(cuò)誤符號(hào)⊥,表示拒絕數(shù)據(jù)用戶的請求。
當(dāng)數(shù)據(jù)擁有者需要查詢某位數(shù)據(jù)用戶包含關(guān)鍵詞集合 W '=<w',w',…,w'>(i=1,2,…,m)的可搜索加密審計(jì)日志時(shí),生成陷門集Γ=<Td1,Td2,…,Tdm>,其中
收到陷門集Γ后,云服務(wù)器對每一條可搜索加密審計(jì)日志AuditLog=<Q,K^W,V^,L,σ> 按以下步驟實(shí)現(xiàn)連接關(guān)鍵詞搜索:
(1)計(jì)算ηi'= e (T di,Q ) (i = 1 ,2,… ,m );
當(dāng)ηi'=ηj時(shí),令δij=1;否則,δij=0。對δij(i=1,2, …,m,j=1,2,…,n)構(gòu)成矩陣Φ。當(dāng)且僅當(dāng)Φ的每一行僅有一個(gè)1、每一列至多有一個(gè)1時(shí),該可搜索加密審計(jì)日志為搜索結(jié)果。

數(shù)據(jù)擁有者收到云服務(wù)器返回的搜索結(jié)果后,根據(jù)云服務(wù)器的IDS對搜索結(jié)果進(jìn)行驗(yàn)證:
(1)計(jì)算令Z '=e(g,K),計(jì)算得到RU'=V^⊕L⊕H2(Z ');
結(jié)合可搜索加密審計(jì)日志的安全需求,經(jīng)過對上述方案的分析可以得出,它能夠保護(hù)用戶隱私,且數(shù)據(jù)用戶和云服務(wù)提供商被證明無法偽造有關(guān)任意數(shù)據(jù)用戶的合法可搜索加密審計(jì)日志。
4.1.1 隱私保護(hù)
方案中,無論是審計(jì)日志記錄的密文L,還是搜索的陷門集Γ,對云存儲(chǔ)系統(tǒng)的內(nèi)外部非授權(quán)用戶都是保密的。在沒有主密鑰msk的情況下,攻擊者無法解開它們得到明文。即使云服務(wù)器能夠?qū)?shù)據(jù)用戶提交的可搜索加密日志進(jìn)行驗(yàn)證和根據(jù)關(guān)鍵詞進(jìn)行搜索,也無法真正得知審計(jì)內(nèi)容。
4.1.2 不可偽造
方案中的可搜索加密審計(jì)日志由唯一可信的數(shù)據(jù)擁有者生成,而非云服務(wù)器和數(shù)據(jù)用戶生成,其不可偽造體現(xiàn)在兩方面。
一方面,假設(shè)云服務(wù)器希望偽造某個(gè)身份為IDU*用戶的關(guān)于其服務(wù)請求RU*的可搜索加密審計(jì)日志。他需要選擇一組(α*, β*),計(jì)算得到AuditLog*=<>。令 r*為云服務(wù)器偽造日志時(shí)選擇的一個(gè)隨機(jī)數(shù),則:


顯然,當(dāng)且僅當(dāng)α*=α?xí)r,Z '*=Z^*才能成立,繼而解得正確的RU*。進(jìn)一步地,當(dāng)且僅當(dāng)β*=β時(shí),根據(jù)正確的RU*計(jì)算式(6)得到審計(jì)日志明文l*,才是正確形式的審計(jì)日志明文;否則,將會(huì)無法通過數(shù)據(jù)擁有者的驗(yàn)證。
另一方面,假設(shè)身份為IDU*的數(shù)據(jù)用戶希望不通過數(shù)據(jù)擁有者而自己生成可搜索加密審計(jì)日志,從而獲得權(quán)限之外的數(shù)據(jù)服務(wù)RU*。同理,他也必須選擇一組(α*,β*)計(jì)算AugitLog*。云服務(wù)器首先根據(jù)式(7)得到Z*,并計(jì)算式(8)。顯然,只有當(dāng)α*=α?xí)r,Z*=Z^*,云服務(wù)器才能找到唯一的i∈[1,t]使得Vi=V^*,進(jìn)而通過數(shù)據(jù)用戶的驗(yàn)證。

而基于離散對數(shù)的困難性問題可知,無論是數(shù)據(jù)用戶還是云服務(wù)器,他們都無法猜測得到一組(α*, β*)且 α*=α 和 β*=β,從而成功偽造合法的可搜索加密審計(jì)日志。
表1列舉了本文的可搜索加密審計(jì)日志方案與其他相關(guān)文獻(xiàn)的比較。其中,僅有文獻(xiàn)[2]的方案無法支持連接關(guān)鍵詞的搜索。而根據(jù)第2章所述,這三個(gè)可搜索加密審計(jì)日志的方案均無法滿足隱私保護(hù)和不可偽造的安全需求。文獻(xiàn)[2]中服務(wù)器可以直接獲得審計(jì)日志的明文,而文獻(xiàn)[4-5]方案中的陷門能夠被竊聽者輕易得到對應(yīng)的關(guān)鍵詞明文。此外,這些方案都無法防止可搜索加密審計(jì)日志被偽造,而本文基于離散對數(shù)問題的困難性,證明了任何不完全可信的實(shí)體無法偽造方案中的可搜索加密審計(jì)日志。

表1 相關(guān)文獻(xiàn)比較
利用PBC庫實(shí)現(xiàn)了上述可搜索加密審計(jì)日志方案的算法并進(jìn)行了效率評(píng)估。數(shù)據(jù)擁有者的效率評(píng)估如圖2所示。數(shù)據(jù)擁有者僅需要0.08 s的時(shí)間生成一條包含10個(gè)關(guān)鍵詞的可搜索加密審計(jì)日志,以及0.02 s左右生成包含4個(gè)查詢關(guān)鍵詞的陷門集(例如,其中分別包括誰/什么時(shí)間/從哪里訪問/何種數(shù)據(jù)服務(wù)的查詢)。而數(shù)據(jù)用戶生成云服務(wù)器密鑰和驗(yàn)證解密搜索結(jié)果的效率更高,僅需要小于0.0 1 s即能完成。

圖2 數(shù)據(jù)擁有者端算法效率
圖3 顯示了云服務(wù)器端的算法執(zhí)行效率。顯然,云服務(wù)器執(zhí)行搜索算法的計(jì)算開銷相對略高。云服務(wù)器根據(jù)一個(gè)陷門對一條包含10個(gè)關(guān)鍵詞的可搜索加密審計(jì)日志匹配需要約0.03 s。而對數(shù)據(jù)用戶進(jìn)行可搜索加密審計(jì)日志的驗(yàn)證僅需要5 ms左右,因此云服務(wù)器能夠有效響應(yīng)數(shù)據(jù)用戶的請求,其搜索效率也在相對可接受范圍內(nèi)。

圖3 云服務(wù)器端算法效率
本文針對多云服務(wù)提供商的云存儲(chǔ)系統(tǒng)提出了基于隱私保護(hù)的不可偽造可搜索加密審計(jì)日志方案,解決了云存儲(chǔ)系統(tǒng)中審計(jì)日志的生成、加密、搜索和驗(yàn)證。分析結(jié)果表明,該方案能夠保護(hù)用戶隱私,同時(shí)證明了任意不可信實(shí)體無法偽造可搜索加密審計(jì)日志,具有較好的實(shí)用價(jià)值。今后擬引入可信第三方審計(jì)的應(yīng)用背景,結(jié)合代理重加密進(jìn)一步擴(kuò)展方案的實(shí)用范圍。
[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.