張 茜,王 箭
(南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
云端數(shù)據(jù)共享服務(wù)是一種常見的應(yīng)用方式,用戶可以在一個(gè)群組范圍內(nèi)共享彼此間的數(shù)據(jù)。具體來說,群組用戶將自己的數(shù)據(jù)上傳到云端后,組內(nèi)其他用戶都可以訪問并修改這些數(shù)據(jù),這既實(shí)現(xiàn)了信息共享,又減輕了用戶在本地的存儲(chǔ)負(fù)擔(dān)。盡管云服務(wù)商宣稱為用戶提供安全可靠的存儲(chǔ)環(huán)境,但是由于軟件、硬件故障以及人為因素的存在,數(shù)據(jù)可能會(huì)丟失或損毀,云服務(wù)商為了維護(hù)自己的聲譽(yù)、避免經(jīng)濟(jì)損失,可能向用戶隱瞞實(shí)際情況,甚至?xí)榱斯?jié)省空間、獲得更高效益,刪除用戶不常使用的數(shù)據(jù)[1]。
為了驗(yàn)證存儲(chǔ)在云端的數(shù)據(jù)完整性,一些云端數(shù)據(jù)完整性審計(jì)方案已經(jīng)被提出[2-20]。這些方案的數(shù)據(jù)的完整性依賴與之相關(guān)的認(rèn)證器的正確性,且存在一個(gè)可信第三方驗(yàn)證者TPA無需下載全部數(shù)據(jù)即可驗(yàn)證存儲(chǔ)在云端數(shù)據(jù)的完整性。然而現(xiàn)有的云共享數(shù)據(jù)完整性審計(jì)方案中,認(rèn)證器生成方法大都由群組用戶各自生成,但用戶的計(jì)算資源有限,且計(jì)算能力較低,用戶為每個(gè)數(shù)據(jù)塊生成認(rèn)證器會(huì)花費(fèi)自身很大的計(jì)算開銷。為減輕用戶的計(jì)算負(fù)擔(dān),Guan等人[2]基于不可區(qū)分混淆技術(shù)構(gòu)造了一個(gè)可以減少認(rèn)證器生成時(shí)間的數(shù)據(jù)審計(jì)方案。Li等人[3]提出了具有2個(gè)獨(dú)立云服務(wù)器的數(shù)據(jù)審計(jì)方案,其中一個(gè)云審計(jì)服務(wù)器用于在用戶把數(shù)據(jù)上傳給云服務(wù)器之前,為用戶產(chǎn)生相應(yīng)的認(rèn)證器,雖然該方案可以減少用戶的計(jì)算開銷,但會(huì)帶來潛在的安全問題——如果這個(gè)云審計(jì)服務(wù)器是不誠(chéng)實(shí)的,那么它可能會(huì)偽造數(shù)據(jù)塊認(rèn)證器。Wang等人[4]引入一個(gè)安全中介為用戶生成數(shù)據(jù)塊認(rèn)證器,從而減少用戶的計(jì)算開銷,雖然該方案可以減輕用戶的計(jì)算負(fù)擔(dān),但用戶仍需要花費(fèi)大量的計(jì)算開銷來驗(yàn)證安全中介生成的數(shù)據(jù)塊認(rèn)證器的正確性。
為減輕用戶的計(jì)算開銷,提高認(rèn)證器生成效率,本文提出基于盲簽名的云共享數(shù)據(jù)完整性審計(jì)方案。具體來說,本文主要工作如下:
1)基于盲簽名算法,構(gòu)造一種云端共享數(shù)據(jù)完整性審計(jì)方案。方案引入了認(rèn)證器生成中心(AGC),用戶把盲化后的數(shù)據(jù)塊發(fā)送給AGC,由AGC代替群組用戶生成相應(yīng)的數(shù)據(jù)塊認(rèn)證器,用戶只需對(duì)數(shù)據(jù)塊進(jìn)行盲化,計(jì)算開銷很小。
2)引入TPA審計(jì)授權(quán)機(jī)制,云服務(wù)器只向得到審計(jì)授權(quán)的TPA回復(fù)數(shù)據(jù)持有證明,有效避免了攻擊者對(duì)云服務(wù)器的DDoS攻擊。
3)給出方案的安全性分析和實(shí)驗(yàn)結(jié)果分析。分析結(jié)果表明本文提出的方案是安全、高效的。
圖1 系統(tǒng)模型
如圖1所示,本文方案的系統(tǒng)模型包含5種實(shí)體:群組用戶(Group Users)、群組管理員(Group Manager)、認(rèn)證器生成中心AGC、云服務(wù)器(Cloud)和可信第三方審計(jì)者TPA。
1)群組用戶。群組包含多名用戶,群組成員可以加入或退出群組,群組用戶之間通過云服務(wù)器共享數(shù)據(jù)。
2)群組管理員。群組管理員是誠(chéng)實(shí)的,負(fù)責(zé)群組密鑰的生成、用戶的加入和撤銷以及對(duì)TPA的審計(jì)委托。
3)認(rèn)證器生成中心AGC。AGC是半誠(chéng)實(shí)的,可以代替群組用戶生成數(shù)據(jù)塊認(rèn)證器,減輕用戶的計(jì)算負(fù)擔(dān)。
4)云服務(wù)器。為用戶提供大量的存儲(chǔ)空間和計(jì)算資源,以及數(shù)據(jù)存儲(chǔ)與共享服務(wù)。云服務(wù)器是半可信的,它不會(huì)惡意破壞云端數(shù)據(jù),但可能隱瞞數(shù)據(jù)丟失、損毀等情況。
5)可信第三方審計(jì)者TPA。代替群組用戶對(duì)云端數(shù)據(jù)進(jìn)行完整性審計(jì),合法的TPA是誠(chéng)實(shí)可信的。
為簡(jiǎn)化模型,假定各實(shí)體之間不存在共謀,群管理員和云服務(wù)器之間存在一個(gè)安全信道。
為了有效驗(yàn)證存儲(chǔ)在云端共享數(shù)據(jù)的完整性,本文方案應(yīng)滿足以下設(shè)計(jì)目標(biāo):
1)正確性。若云服務(wù)器、群組用戶、AGC和TPA是誠(chéng)實(shí)的,而且遵循規(guī)定步驟,TPA就可以正確檢測(cè)出審計(jì)數(shù)據(jù)是否完整。
2)審計(jì)可靠性。只有云服務(wù)器完整地存儲(chǔ)了群組數(shù)據(jù),才能夠通過TPA的審計(jì)。
3)數(shù)據(jù)隱私。認(rèn)證器產(chǎn)生過程中,AGC不能獲取用戶的真實(shí)數(shù)據(jù);審計(jì)過程中,TPA不能獲取用戶的真實(shí)數(shù)據(jù)和身份信息。
4)審計(jì)授權(quán)。只有得到審計(jì)授權(quán)的TPA才能得到云服務(wù)器的審計(jì)證明回復(fù)。
圖2 基于盲簽名的云共享數(shù)據(jù)完整性審計(jì)方案定義
基于盲簽名的云端共享數(shù)據(jù)完整性審計(jì)方案定義如圖2所示,總共包含以下9種算法:
1)keygen(1k)→(gsk,gpk)。密鑰生成算法,群組管理員執(zhí)行,輸入安全參數(shù)k,輸出群組密鑰(gsk,gpk)。
2)join(u)。用戶加入算法,群組管理員執(zhí)行,輸入一個(gè)新用戶u,管理員將群組私鑰gsk發(fā)送給該用戶。
3)datablind(F)→F′。數(shù)據(jù)塊盲化算法,群組用戶執(zhí)行,輸入由數(shù)據(jù)塊集合{mi}組成的共享文件F,輸出盲化后的數(shù)據(jù)塊集合組成的文件F′發(fā)送給AGC。
5)authverify(Φ′,F,{ri},spk)→{True,False}。認(rèn)證器驗(yàn)證算法,云服務(wù)器執(zhí)行,輸入盲化后的認(rèn)證器集合Φ′,共享文件F,隨機(jī)值集合{ri}和公鑰spk,若認(rèn)證器集合Φ′正確則輸出True,并對(duì)認(rèn)證器進(jìn)行脫盲;否則輸出False。
6)proofgen(F,Φ,chal)→P。證明生成算法,云服務(wù)器執(zhí)行,輸入共享文件F、認(rèn)證器集合Φ和審計(jì)質(zhì)詢chal,輸出能夠證明云服務(wù)器擁有完整共享數(shù)據(jù)的審計(jì)證明P。
7)proofverify(gpk,chal,P)→{True,False}。證明驗(yàn)證算法,TPA執(zhí)行,輸入群公鑰gpk、審計(jì)質(zhì)詢chal和數(shù)據(jù)持有證明P,TPA驗(yàn)證證明有效則輸出True,否則輸出False。
8)revoke(u)→usk。用戶撤銷算法,群管理員執(zhí)行,輸入被撤銷用戶u,輸出更新密鑰usk,向群內(nèi)未撤銷用戶、AGC和云服務(wù)器發(fā)布,并更新當(dāng)前群私鑰gsknew和訪問授權(quán)憑證。
9)resign(Φ,usk)→Φnew。認(rèn)證器重簽算法,云服務(wù)器執(zhí)行,輸入原認(rèn)證器集合Φ、更新密鑰usk,輸出新認(rèn)證器集合Φnew。
1)雙線性映射。
2)計(jì)算Diffie-Hellman(CDH)問題。
3)離散對(duì)數(shù)(DL)問題。
1)keygen(1k)→(gsk,gpk)算法。
群管理員將群組私鑰gsk發(fā)布給群組內(nèi)所有用戶,通過安全信道分別將部分私鑰sk和訪問授權(quán)憑證h1(x,U)發(fā)送給AGC和云服務(wù)器。當(dāng)用戶需要訪問云服務(wù)器時(shí),先利用sk計(jì)算出訪問授權(quán)憑證,并發(fā)送給云服務(wù)器。云服務(wù)器通過驗(yàn)證用戶提供的訪問授權(quán)憑證來判斷該用戶是否合法。
2)join(u)算法。
當(dāng)新用戶u加入時(shí),群管理員將群組私鑰gsk安全傳送給該用戶,用戶u便可利用私鑰計(jì)算出訪問授權(quán)憑證h1(x,U)。
3)datablind(F)→F′算法。
4)authgen(sk,F′)→Φ′算法。
②用戶計(jì)算文件標(biāo)簽t=name‖Sigssk(name)。
③用戶發(fā)送{h(x,U),F,t,Φ′,{ri}}給云服務(wù)器后,刪除本地?cái)?shù)據(jù)文件F、盲化后的認(rèn)證器集合Φ′和隨機(jī)盲化參數(shù)集{ri}。
5)authverify(Φ′,F,{ri},spk)→{True,False}算法。
云服務(wù)器接收到{h(x,U),F,t,Φ′,{ri}}后,采用批驗(yàn)證的方式驗(yàn)證集合Φ′的正確性:
(1)
6)proofgen(F,Φ,chal)→P算法。
①群組管理員產(chǎn)生隨機(jī)值A(chǔ)UTH發(fā)送給云服務(wù)器,并向TPA發(fā)送sigAUTH=SSigssk(t‖VID‖AUTH)和文件標(biāo)簽t進(jìn)行審計(jì)授權(quán)。
②TPA利用公鑰spk驗(yàn)證文件標(biāo)簽的有效性,若無效,TPA不會(huì)執(zhí)行審計(jì)任務(wù);反之,TPA向云服務(wù)器發(fā)送審計(jì)質(zhì)詢chal,過程如下:
Step1隨機(jī)挑選c個(gè)元素的集合I,其中I?[1,n]。
Step3發(fā)送審計(jì)質(zhì)詢chal={{i,vi}i∈I,{VID}pkcloud,sigAUTH}到云服務(wù)器,其中{VID}pkcloud表示利用云服務(wù)器公鑰pkcloud加密的VID。
③云服務(wù)器收到chal后,用自己的私鑰解密{VID}pkcloud得到VID,并用VID、AUTH、文件標(biāo)簽t和用戶公鑰spk驗(yàn)證該TPA是否得到授權(quán),若驗(yàn)證通過,云服務(wù)器生成數(shù)據(jù)持有證明P:
其中,R=wr∈G1。
7)proofverify(gpk,chal,P)→{True,False}算法。
(2)
若等式(2)成立,則說明數(shù)據(jù)持有證明有效,存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)是完整的。
8)revoke(u)→usk算法。
群組中有用戶撤銷時(shí),群管理員需要對(duì)私鑰sk進(jìn)行更新:
②收到更新密鑰后,組內(nèi)用戶可利用舊私鑰sk=x和更新密鑰usk=y/x得到新私鑰sknew=y,并利用新私鑰計(jì)算出新的訪問授權(quán)憑證h1(y,Unew),其中Unew=gy。
③群組管理員將新的授權(quán)憑證h1(y,Unew)和更新密鑰usk通過安全信道發(fā)送給云服務(wù)器。
9)resign(Φ,usk)→Φnew算法。
云服務(wù)器利用更新密鑰usk=y/x對(duì)數(shù)據(jù)塊認(rèn)證器進(jìn)行更新:
=[H(i‖name)·wmk]y
(3)
定理1(正確性)如果云服務(wù)器、群組成員、AGC和TPA是誠(chéng)實(shí)的且遵循指定步驟,TPA可以正確檢測(cè)出審計(jì)數(shù)據(jù)的完整性。
證明:根據(jù)雙線性映射的性質(zhì),驗(yàn)證等式的正確性可以通過以下步驟證明:
定理2(審計(jì)可靠性)云服務(wù)器只有完整地存儲(chǔ)群組用戶的數(shù)據(jù)才能夠通過TPA的審計(jì)。
證明:采用文獻(xiàn)[21]知識(shí)證明的方法構(gòu)造一個(gè)知識(shí)提取器。如果云服務(wù)器沒有存儲(chǔ)完整的數(shù)據(jù)但可以通過TPA驗(yàn)證,意味著可以通過知識(shí)提取器與本文所提方案反復(fù)交互來提取完整的被挑戰(zhàn)數(shù)據(jù)塊。接下來通過一系列游戲進(jìn)行證明:
(4)
(5)
最終,本文構(gòu)造一個(gè)知識(shí)提取器來提取所有被挑戰(zhàn)的數(shù)據(jù)塊mi(i∈I,|I|=c)。在相同的數(shù)據(jù)塊上執(zhí)行c次不同系數(shù)vi(i∈I,|I|=c)的挑戰(zhàn),可以得到c個(gè)關(guān)于mi(i∈I,|I|=c)的線性獨(dú)立等式,通過求解這些等式,知識(shí)提取器可提取出全部的mi(i∈I,|I|=c)。這意味著如果云服務(wù)器能夠通過TPA的驗(yàn)證,它一定真實(shí)地存儲(chǔ)了用戶的完整數(shù)據(jù)。
定理3(數(shù)據(jù)隱私)在認(rèn)證器產(chǎn)生過程中,AGC無法獲取用戶的真實(shí)數(shù)據(jù);在審計(jì)過程中,TPA無法獲取用戶的真實(shí)數(shù)據(jù)和身份信息。
=∏i∈I[H(i‖name)·wmi]x·vi
=∏i∈I[H(i‖name)vi]x·(w∑i∈Imi)x
定理4(訪問授權(quán))只有群組合法用戶才能訪問共享在云端的數(shù)據(jù)。
證明:在本文所提方案中,只有群組內(nèi)合法用戶擁有群私鑰sk=x來計(jì)算訪問授權(quán)憑證h1(x,U)。當(dāng)群組中有用戶被撤銷時(shí),群組管理員會(huì)重新更新一個(gè)新選擇私鑰sknew=y,并計(jì)算更新密鑰usk=y/x,把usk發(fā)送給組內(nèi)未撤銷用戶。用戶可利用更新密鑰usk=y/x和舊私鑰sk=x恢復(fù)出新私鑰sknew=y并計(jì)算新的訪問授權(quán)憑證h1(y,gy),因此被撤銷的用戶無法訪問群組存儲(chǔ)在云端的共享數(shù)據(jù)。同時(shí),由哈希函數(shù)的單向性可知,云服務(wù)器不能從訪問授權(quán)憑證h1(x,U)中恢復(fù)出群的私鑰x,因此云服務(wù)器不能偽造出有效的數(shù)據(jù)塊認(rèn)證器。
定理5(審計(jì)授權(quán))審計(jì)過程中,云服務(wù)器只回復(fù)得到群組管理員審計(jì)授權(quán)的TPA所發(fā)出的審計(jì)質(zhì)詢,對(duì)未授權(quán)的TPA所發(fā)送的審計(jì)質(zhì)詢不予回復(fù)。
證明:在本文所提方案中,由于群組管理員的簽名私鑰ssk是秘密保存的,TPA無法偽造合法的審計(jì)授權(quán)。云服務(wù)器對(duì)審計(jì)授權(quán)sigAUTH進(jìn)行驗(yàn)證,判斷TPA的合法性,對(duì)未得到授權(quán)的假冒TPA所發(fā)送的審計(jì)質(zhì)詢不予回復(fù),從而有效避免了DDoS攻擊。
表1將本文方案與文獻(xiàn)[10-12]方案在“審計(jì)授權(quán)”“數(shù)據(jù)隱私”“用戶輕量級(jí)認(rèn)證器”和“動(dòng)態(tài)組”這4個(gè)方面進(jìn)行對(duì)比。
表1 方案特性對(duì)比
通過與其他3種方案的對(duì)比可以看出,本文方案除了支持TPA審計(jì)授權(quán)、數(shù)據(jù)的隱私保護(hù)和用戶的加入與撤銷之外,還支持用戶輕量級(jí)認(rèn)證器的生成,能夠減輕用戶的計(jì)算開銷。
表2 不同階段的計(jì)算開銷和通信開銷
1)認(rèn)證器生成階段。
2)證明生成階段。
3)證明驗(yàn)證階段。
如圖3所示,審計(jì)過程主要包括3個(gè)階段:審計(jì)挑戰(zhàn)的產(chǎn)生、審計(jì)證明的產(chǎn)生和審計(jì)證明的驗(yàn)證。實(shí)驗(yàn)以100為間隔,從0~1000中選擇不同的數(shù)據(jù)塊進(jìn)行挑戰(zhàn)質(zhì)詢,由實(shí)驗(yàn)結(jié)果可知,在審計(jì)過程中,審計(jì)挑戰(zhàn)產(chǎn)生階段所需的開銷最少,TPA進(jìn)行證明驗(yàn)證階段所需的開銷最多;隨著被挑戰(zhàn)質(zhì)詢數(shù)據(jù)塊數(shù)量的不斷增加,審計(jì)過程中3個(gè)階段的開銷均有所增加。
圖3 審計(jì)過程中各階段的計(jì)算開銷對(duì)比
圖4測(cè)試基于盲簽名的審計(jì)方案的性能,比較了本文方案與文獻(xiàn)[12]方案在認(rèn)證器生成階段用戶端的開銷。文獻(xiàn)[12]方案中,用戶需要為每個(gè)數(shù)據(jù)塊生成相應(yīng)的認(rèn)證器,而本文方案中,用戶只需要進(jìn)行數(shù)據(jù)塊盲化操作,認(rèn)證器的生成由AGC進(jìn)行,用戶所需的計(jì)算開銷很小。
圖4 認(rèn)證器生成階段群組用戶端計(jì)算開銷對(duì)比
本文提出了一種基于盲簽名的云共享數(shù)據(jù)完整性審計(jì)方案。在本方案中,群組用戶把共享數(shù)據(jù)上傳到云端前,先對(duì)數(shù)據(jù)塊進(jìn)行盲化,把盲化后的數(shù)據(jù)塊發(fā)送給AGC生成相應(yīng)的數(shù)據(jù)塊認(rèn)證器,且生成的認(rèn)證器的正確性驗(yàn)證與脫盲由云服務(wù)器完成,極大地減輕了用戶的計(jì)算負(fù)擔(dān)。此外,本文方案引入了TPA審計(jì)授權(quán),只有得到群組管理員授權(quán)的合法TPA才能得到云服務(wù)器的數(shù)據(jù)持有性證明回復(fù),從而避免了攻擊者對(duì)云服務(wù)器的DDoS攻擊。安全性分析和實(shí)驗(yàn)結(jié)果表明了本文方案是安全、高效的。