馬海峰,王俊華+,薛慶水,時(shí)雪磊,張 繼,楊家海
(1.上海應(yīng)用技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,上海 201418;2.清華大學(xué) 網(wǎng)絡(luò)科學(xué)與網(wǎng)絡(luò)空間研究院,北京 100084)
國內(nèi)外研究者對(duì)云端的數(shù)據(jù)安全問題進(jìn)行了大量的研究[1],數(shù)據(jù)安全主要包括數(shù)據(jù)完整性、機(jī)密性和不可否認(rèn)性[2-4],其中完整性是當(dāng)前云數(shù)據(jù)安全的重要研究內(nèi)容之一[5-8]。但是大多數(shù)現(xiàn)有方案都只針對(duì)單個(gè)用戶設(shè)計(jì)數(shù)據(jù)完整性驗(yàn)證方案[9-12],并沒有考慮到現(xiàn)實(shí)情境中企業(yè)的數(shù)據(jù)管理員離職需要撤銷的問題。張新鵬等[13]提出一種基于代理重簽名的實(shí)現(xiàn)用戶撤銷的云存儲(chǔ)數(shù)據(jù)驗(yàn)證方案,雖然可以撤銷用戶,但是卻無法實(shí)現(xiàn)實(shí)時(shí)用戶動(dòng)態(tài)可撤銷。楊小東等[14]提出了一種基于代理重簽名的云端數(shù)據(jù)完整性驗(yàn)證方案可實(shí)現(xiàn)用戶撤銷,但也無法實(shí)現(xiàn)用戶實(shí)時(shí)動(dòng)態(tài)撤銷,且無法解決合謀問題[15]。大多數(shù)支持用戶撤銷的方案存在以下問題:①用戶撤銷過程設(shè)計(jì)的簽名不滿足靈活的任期調(diào)度;②由不可信的云服務(wù)器做代理重簽名存在安全隱患;③存在惡意用戶偽造重簽名密鑰對(duì)數(shù)據(jù)進(jìn)行重簽名的風(fēng)險(xiǎn)。
基于對(duì)以上問題的思考,本文提出了一種用戶可實(shí)時(shí)撤銷的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證方案,具有以下特點(diǎn):
(1)為用戶引入一個(gè)管理屬性參與密鑰設(shè)計(jì)可以滿足用戶靈活的任期調(diào)度,方便實(shí)現(xiàn)該用戶實(shí)時(shí)撤銷。
(2)將用戶撤銷過程中的代理重簽名過程外包給一個(gè)具有可信執(zhí)行環(huán)境的代理服務(wù)器,在代理服務(wù)器的可信執(zhí)行環(huán)境內(nèi)執(zhí)行重簽名算法,使用戶可以遠(yuǎn)程安全地對(duì)云中數(shù)據(jù)進(jìn)行簽名。
(3)代理服務(wù)器的可信執(zhí)行環(huán)境收到重簽名密鑰后會(huì)進(jìn)行驗(yàn)證,避免重簽名密鑰被偽造。
(4)方案中設(shè)計(jì)的重簽名密鑰可以抵抗已撤銷用戶與云存儲(chǔ)服務(wù)商合謀攻擊。審計(jì)證明中使用的隨機(jī)掩碼技術(shù)可以有效抵抗已撤銷用戶與第三方審計(jì)者的合謀攻擊。
該方案存在4個(gè)實(shí)體:用戶(User,U)、云存儲(chǔ)服務(wù)商(cloud storage provider,CSP)、第三方審計(jì)者(third party auditor,TPA)、代理服務(wù)器(proxy server,PS),系統(tǒng)模型如圖1所示。
圖1 系統(tǒng)模型
User:用戶是企業(yè)雇來管理數(shù)據(jù)的人員,初始用戶負(fù)責(zé)將數(shù)據(jù)分塊并上傳到云服務(wù)器,由于某些原因用戶可能會(huì)離職或調(diào)崗,這時(shí)就需要新用戶來代替上一任用戶接著管理存儲(chǔ)在云端的數(shù)據(jù)。為了減少用戶的計(jì)算和通信壓力,企業(yè)將會(huì)雇傭一個(gè)第三方審計(jì)者代替用戶檢驗(yàn)云中存儲(chǔ)數(shù)據(jù)的完整性;
CSP:具有優(yōu)質(zhì)的存儲(chǔ)和計(jì)算能力,為企業(yè)提供外包數(shù)據(jù)存儲(chǔ)服務(wù)。如果有利益需要,云存儲(chǔ)服務(wù)器有可能會(huì)損壞企業(yè)云中存儲(chǔ)數(shù)據(jù)的完整性,所以存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)的完整性需要被不定期檢驗(yàn);
TPA:第三方審計(jì)者是一個(gè)獨(dú)立可信的實(shí)體,受雇于企業(yè),并向用戶反饋云中數(shù)據(jù)的完整性檢驗(yàn)結(jié)果;
PS:代理服務(wù)器是用來做用戶撤銷過程中的重簽名,代理服務(wù)器中的可信執(zhí)行環(huán)境具有獨(dú)立的存儲(chǔ)和計(jì)算空間,重簽名的計(jì)算過程可以在可信執(zhí)行環(huán)境中進(jìn)行,由于可信執(zhí)行環(huán)境的特殊性質(zhì)可以確保重簽名階段的安全。
方案主要分為重簽名階段和審計(jì)階段,模型描述如下:
(1)重簽名階段:企業(yè)的初始數(shù)據(jù)管理員作為方案初始用戶U0,U0負(fù)責(zé)將企業(yè)數(shù)據(jù)分塊并簽名上傳至云服務(wù)器。如果初始用戶U0由于某種原因工作進(jìn)行變動(dòng),需要將U0從云存儲(chǔ)系統(tǒng)中撤銷,更換新用戶U1繼續(xù)管理企業(yè)數(shù)據(jù),否則云端存儲(chǔ)數(shù)據(jù)將可能面臨安全威脅。本方案在設(shè)計(jì)用戶公私鑰對(duì)時(shí)引入一個(gè)管理屬性,參與數(shù)據(jù)塊標(biāo)簽的計(jì)算,用戶需要撤銷時(shí)企業(yè)會(huì)在用戶離職后公開此用戶的管理屬性,使代理服務(wù)器計(jì)算現(xiàn)任用戶的重簽名時(shí)不受上一任用戶的影響,可以實(shí)時(shí)撤銷上一任用戶。 Ut-1離職后Ut將計(jì)算重簽名密鑰并將自己的管理屬性發(fā)送給代理服務(wù)器。利用可信執(zhí)行環(huán)境可以實(shí)現(xiàn)敏感數(shù)據(jù)的隱私計(jì)算的特殊性,由代理服務(wù)器利用重簽名密鑰代替Ut在其可信執(zhí)行環(huán)境里完成重簽名計(jì)算,然后將重簽名發(fā)送至云服務(wù)器,由云存儲(chǔ)服務(wù)商將云端數(shù)據(jù)的上任用戶簽名換成重簽名完成簽名替換;
(2)審計(jì)階段:用戶要驗(yàn)證云端數(shù)據(jù)完整性時(shí)會(huì)向第三方審計(jì)者發(fā)送審計(jì)請(qǐng)求,第三方審計(jì)者會(huì)生成審計(jì)挑戰(zhàn)發(fā)送給云存儲(chǔ)服務(wù)商,而后云存儲(chǔ)服務(wù)商會(huì)根據(jù)審計(jì)請(qǐng)求生成相應(yīng)的審計(jì)證明返回給第三方審計(jì)者,第三方審計(jì)者會(huì)根據(jù)審計(jì)證明判斷等式是否成立,從而判斷云端存儲(chǔ)的企業(yè)數(shù)據(jù)是否完整,最后把完整與否的結(jié)果反饋給用戶。
在代理服務(wù)器完全可信的情況下,主要分析3種攻擊方式,分別為偽造攻擊、重放攻擊、合謀攻擊。
(1)偽造攻擊:是指在代理重簽名生成階段,可能存在惡意的云用戶由于利益或其它原因偽造重簽名密鑰對(duì)遠(yuǎn)程的企業(yè)數(shù)據(jù)進(jìn)行重簽名導(dǎo)致數(shù)據(jù)完整性驗(yàn)證失敗。
(2)重放攻擊:是指在驗(yàn)證階段,第三方審計(jì)者可能會(huì)通過與云存儲(chǔ)服務(wù)商的頻繁交互,從交互信息中獲取云中數(shù)據(jù)隱私。
(3)合謀攻擊:是指已撤銷用戶與云存儲(chǔ)服務(wù)商合謀或者已撤銷用戶與第三方審計(jì)者合謀獲取遠(yuǎn)程隱私數(shù)據(jù)。
(1)重簽名階段:
SigGen:企業(yè)待存儲(chǔ)文件F有一個(gè)TagF標(biāo)簽,包含文件名和文件其它屬性,初始用戶U0把文件F分成n個(gè)小塊,即F={m1,m2,…,mn}, 初始用戶會(huì)計(jì)算每一個(gè)數(shù)據(jù)塊mi的簽名,如式(1)所示
(1)
所有數(shù)據(jù)塊的簽名集合是Φ(0)={σ1,σ2,…,σn}。 初始用戶U0會(huì)將 {F,Φ(0),TagF} 發(fā)送至CSP,然后把數(shù)據(jù)塊簽名集合Φ(0)發(fā)送給PS。
ReKeyGen:倘若用戶Ut-1由于某種原因離職或調(diào)崗需要從云存儲(chǔ)系統(tǒng)中撤銷,將會(huì)有新的用戶Ut來接替Ut-1的數(shù)據(jù)管理工作,企業(yè)同樣會(huì)給用戶Ut分發(fā)一個(gè)相應(yīng)的管理屬性A(t), 同時(shí)公開已撤銷用戶Ut-1的管理屬性A(t-1), 此時(shí)新用戶上任需要計(jì)算重簽名密鑰rkt-1→t, 便于后續(xù)重簽名的計(jì)算,計(jì)算過程如式(2)所示,把重簽名密鑰rkt-1→t與新用戶管理屬性A(t)發(fā)送給PS
rkt-1→t=(pkt-1)1/skt=gxt-1h(A(t-1))/xth(A(t))
(2)
ReSiggenGen:PS收到重簽名密鑰rkt-1→t后,為了避免惡意人員偽造重簽名密鑰造成云中存儲(chǔ)數(shù)據(jù)面臨安全威脅的問題,需要在重簽名計(jì)算之前對(duì)重簽名密鑰做一次驗(yàn)證,如利用雙線性映射的性質(zhì)判斷式(3)等號(hào)兩邊是否相等
e(rkt-1→t,pkt)=e(pkt-1,g)
(3)
(4)
同時(shí)在PS的可信執(zhí)行環(huán)境中對(duì)已撤銷用戶的公鑰和新上任用戶生成的重簽名密鑰進(jìn)行重新處理,如式(5)和式(6)所示
(5)
(6)
(2)審計(jì)階段:
R=ur∈G1,μ=μ′+rh(R)
(7)
計(jì)算驗(yàn)證數(shù)據(jù)塊標(biāo)簽集合為式(8)和式(9)
(8)
(9)
CSP把 {σ,μ,R,{af}f∈[1,t],{bf}f∈[1,t]} 作為審計(jì)證明發(fā)給TPA進(jìn)行驗(yàn)證。
ProofVerify:TPA收到CSP發(fā)來的審計(jì)證明后,會(huì)利用雙線性映射的性質(zhì)驗(yàn)證以下式(10)~式(12)是否成立,如果全部成立,說明存儲(chǔ)在云中的數(shù)據(jù)是完整的,輸出“Success”;否則說明云中數(shù)據(jù)的完整性遭到破壞,輸出“Failure”。最后將輸出結(jié)果返回給用戶
e(σ,g)=e(uμ·R-h(R)·∏i∈{1,c}H1(mi)vi,a1)
(10)
e(af,g)=e(af+1,bf)
(11)
e(at,g)=e(pkt,bt),f∈[0,t-1]
(12)
算法流程如圖2所示。
圖2 算法流程
審計(jì)存儲(chǔ)在云端的數(shù)據(jù)完整性是通過驗(yàn)證完整性等式是否成立來判斷的,即驗(yàn)證式(10)~式(12)是否成立,驗(yàn)證等式過程如下
(13)
對(duì)于所有的f∈{1,2,…,t}, 有
(14)
(15)
重簽名密鑰驗(yàn)證等式(3)過程如下
e(rkt-1→t,pkt)=e(gxt-1h(A(t-1))/xth(A(t)),gxth(A(t)))=
e(gxt-1h(A(t-1)),g)=e(pkt-1,g)
(16)
綜上所述,本文方案是正確的。
定理1 在重簽名生成階段,惡意人員無法使用偽造的重簽名密鑰通過重簽名密鑰驗(yàn)證。
證明:傳統(tǒng)方案中如果企業(yè)向代理服務(wù)器發(fā)送的重簽名密鑰是其它惡意云用戶U′t偽造的重簽名密鑰rkt-1→t′, 代理服務(wù)器直接用偽造的重簽名密鑰對(duì)數(shù)據(jù)塊進(jìn)行代理重簽名,這樣惡意云用戶就能將遠(yuǎn)程數(shù)據(jù)簽名偽造成自己的簽名,會(huì)導(dǎo)致審計(jì)階段完整性驗(yàn)證失敗。為了避免此類攻擊,本方案在代理服務(wù)器收到重簽名密鑰后會(huì)對(duì)其進(jìn)行驗(yàn)證。如果收到惡意云用戶U′t偽造的重簽名密鑰rkt-1→t′將判斷等式e(rkt-1→t,pkt)=e(pkt-1,g) 是否成立,如果成立,說明重簽名正確有效,否則是無效的,代理服務(wù)器將反饋給企業(yè)。驗(yàn)證過程為
e(rkt-1→t′,pkt)=e(g(xt-1h(A(t-1)))′/(xth(A(t)))′,gxth(A(t)))≠
e(pkt-1,g)
(17)
綜上所述,在重簽名生成階段,惡意云用戶偽造的重簽名密鑰無法通過重簽名密鑰驗(yàn)證,從而防止了惡意云用戶的偽造攻擊,保證重簽名密鑰正確有效。
定理2 在驗(yàn)證階段,TPA無法從與CSP交互過程中獲取到云端的企業(yè)數(shù)據(jù)。
證明:在驗(yàn)證的交互階段,TPA有可能從CSP返回的審計(jì)證明里的μ或σ得到關(guān)于證據(jù)μ′的信息,從而獲取到云端的企業(yè)數(shù)據(jù),分析如下:
(1)假設(shè)TPA想從μ中獲取μ′, 分析如下:
已有方案里審計(jì)挑戰(zhàn)的線性組合是μ=μ′=∑i∈Cmivi, 當(dāng)TPA每次都對(duì)同樣下標(biāo)的數(shù)據(jù)塊進(jìn)行驗(yàn)證,經(jīng)過c次,TPA就能得到c個(gè)mi為未知數(shù)的線性方程,組成完整的線性方程組,解開方程組就能得到企業(yè)數(shù)據(jù)。為防止此攻擊,本方案采用隨機(jī)掩碼技術(shù)隱藏證據(jù)μ′, 依據(jù)DL困難性假設(shè),在G中計(jì)算DL問題是及其困難的,故依據(jù)u,R∈G1計(jì)算r是比較困難的。所以,TPA通過求解r來獲取μ′是比較困難的,從而抵御了重放攻擊。
(2)假如TPA想從審計(jì)證明中的σ獲取證據(jù)μ′,σ的計(jì)算過程如下
(18)
因?yàn)門PA沒有辦法得到歷任用戶的私鑰,所以TPA無法從σ中獲取uμ′的信息和證據(jù)μ′。
綜上所述,在驗(yàn)證過程,TPA在與CSP交互的過程中沒有辦法從CSP發(fā)來的審計(jì)證明中獲取到用戶任何的真實(shí)數(shù)據(jù),所以在驗(yàn)證過程很好地保護(hù)了數(shù)據(jù)的隱私。
定理3 本方案能夠抵御撤銷用戶和CSP、撤銷用戶和TPA的合謀攻擊。
證明:
(1)假設(shè)已撤銷用戶與CSP合謀,分析如下:
(2)假設(shè)已撤銷用戶與TPA合謀,分析如下:
假設(shè)初始用戶U0和TPA合謀,把其私鑰sk0發(fā)給TPA,由定理2中σ計(jì)算過程可知,TPA依舊無法從中獲取到證據(jù)μ′的有關(guān)信息。給定uμ′=φ∈G, 基于離散對(duì)數(shù)難題,由u和φ, 求解μ′是困難的,其它已撤銷用戶與TPA合謀一樣無效,故本方案很好地避免了已撤銷用戶與TPA合謀攻擊。
綜上所述,無論企業(yè)已撤銷用戶將其撤銷前的密鑰泄露給CSP還是TPA,CSP和TPA都無法從中計(jì)算出數(shù)據(jù)的有用信息,所以本文方案可以有效抵抗企業(yè)已撤銷用戶和CSP、已撤銷用戶和TPA的合謀攻擊,進(jìn)一步保證了云中存儲(chǔ)數(shù)據(jù)的安全。
本節(jié)首先對(duì)方案的各項(xiàng)開銷進(jìn)行分析,后與文獻(xiàn)[13-15]進(jìn)行比較。分析中使用的符號(hào)及含義見表1。
表1 符號(hào)及含義
方案的通信主要集中在重簽名發(fā)送階段及審計(jì)過程中TPA與CSP的交互。PS將重簽名發(fā)送至CSP,通信量為3n|G|, TPA與CSP交互過程中,TPA發(fā)送挑戰(zhàn)至CSP,通信量為c(|m|+|v|), CSP返回證明的通信量為 (2d+1)|G|+c|m|+|q|。
故本方案通信開銷為(3n+2d+1)|G|+2c|m|+c|v|+|q|。
方案的計(jì)算主要集中在計(jì)算重簽名及審計(jì)過程。計(jì)算重簽名密鑰,計(jì)算量為 |z|, 計(jì)算重簽名,計(jì)算量為 (2d+1)n|z|; CSP計(jì)算審計(jì)證明,計(jì)算量為(c+1)|z|, TPA驗(yàn)證證據(jù),計(jì)算量為2|e|。
故本方案計(jì)算開銷為 (2dn+n+c+2)|z|+2|e|。
本方案與文獻(xiàn)[13-15]在通信、計(jì)算開銷和性能方面進(jìn)行了分析比較,見表2。
如表2所示,本文方案因引入一個(gè)代理服務(wù)器通信開銷較文獻(xiàn)[13]而言增加了重簽名的通信量3n|G|,但是文獻(xiàn)[13]無法抵抗已撤銷用戶與TPA合謀攻擊,無法實(shí)時(shí)動(dòng)態(tài)撤銷用戶并確保重簽名密鑰安全,而且計(jì)算開銷比本文方案計(jì)算開銷大。同理本文方案通信開銷較文獻(xiàn)[14]也稍有增大,文獻(xiàn)[14]同樣無法抵抗已撤銷用戶與TPA合謀,無法實(shí)時(shí)動(dòng)態(tài)撤銷用戶并確保重簽名密鑰安全;而且文獻(xiàn)[14]需要計(jì)算3次雙線性對(duì)運(yùn)算,本文方案只需要計(jì)算2次。本文方案比文獻(xiàn)[15]的通信開銷增大 (3n-1)|G|, 計(jì)算開銷相同,但是文獻(xiàn)[15]無法實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)撤銷用戶,也無法保證重簽名密鑰安全。與其它3個(gè)方案相比,本文方案同時(shí)滿足抵抗已撤銷用戶與CSP和TPA合謀攻擊,實(shí)時(shí)動(dòng)態(tài)撤銷用戶,支持?jǐn)?shù)據(jù)隱私保護(hù),還可以確保重簽名密鑰安全,所以本文方案更具有理論意義和實(shí)用價(jià)值。
通信開銷是指本方案中各實(shí)體所有階段的總通信開銷,在進(jìn)行10次實(shí)驗(yàn)的情況下,結(jié)果取平均值。計(jì)算開銷也采用了同樣的方法進(jìn)行取值。本文方案與傳統(tǒng)方案的通信開銷、計(jì)算開銷對(duì)比如圖3所示。
圖3 通信與計(jì)算開銷對(duì)比
隨著數(shù)據(jù)塊數(shù)的增加,c的取值也在增加,在數(shù)據(jù)塊數(shù)n為500時(shí)取c為100,n為1000時(shí)取c為200,依次遞增。由圖3(a)可知,隨著數(shù)據(jù)塊數(shù)的增加,本文方案比傳統(tǒng)方案在通信開銷計(jì)算上的優(yōu)勢逐漸增大,圖3(b)隨著數(shù)據(jù)塊數(shù)的不斷增大,本文方案明顯計(jì)算開銷更小,而且優(yōu)勢更明顯。
本實(shí)驗(yàn)也將傳統(tǒng)方案與本方案撤銷用戶所花費(fèi)的時(shí)間開銷上進(jìn)行了對(duì)比,如圖4所示。
圖4 時(shí)間開銷對(duì)比
傳統(tǒng)方案的用戶撤銷是上任用戶撤銷之后,新任用戶需要重新從云端下載原始數(shù)據(jù)進(jìn)行簽名后再次上傳至云端,所以每增加一個(gè)用戶撤銷所消耗的時(shí)間基本上是恒定的。本方案的用戶撤銷是用戶撤銷之后,由代理服務(wù)器代替新任用戶進(jìn)行重簽名,代理服務(wù)器只將重簽名上傳至云端即可,云端存儲(chǔ)的數(shù)據(jù)并不變動(dòng),所以每增加一個(gè)用戶撤銷的時(shí)間消耗也基本上也是恒定的。
本文通過引入一個(gè)代理服務(wù)器并結(jié)合重簽名技術(shù)提出一種用戶可實(shí)時(shí)撤銷的云存儲(chǔ)數(shù)據(jù)驗(yàn)證方案,不僅實(shí)現(xiàn)了企業(yè)的用戶可以根據(jù)實(shí)際任期實(shí)時(shí)撤銷,而且有效抵抗已撤銷用戶與第三方審計(jì)者、已撤銷用戶和云存儲(chǔ)服務(wù)商之間的合謀攻擊,支持云端數(shù)據(jù)的隱私保護(hù),利用代理服務(wù)器的可信執(zhí)行環(huán)境確保了重簽名階段的信息安全。正確性與安全性分析結(jié)果表明,本文提出的方案是切實(shí)可行的,實(shí)驗(yàn)分析結(jié)果表明,本方案的效率確實(shí)比傳統(tǒng)方案高。后續(xù)的研究工作將繼續(xù)改進(jìn)本方案,減少代理重簽名計(jì)算的輔助信息,以更加降低通信和計(jì)算成本。