周由勝 陳律君
①(重慶郵電大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 重慶 400065)
②(重慶郵電大學(xué)網(wǎng)絡(luò)空間安全與信息法學(xué)院 重慶 400065)
隨著大量的敏感數(shù)據(jù),如健康數(shù)據(jù)、金融數(shù)據(jù)、商業(yè)秘密、保密通信等都被外包到云端,數(shù)據(jù)安全問題引起了大量關(guān)注[1,2]。由于云服務(wù)器往往是半可信的,出于數(shù)據(jù)安全性考慮,數(shù)據(jù)所有者可能需要將某些存儲(chǔ)在云端敏感數(shù)據(jù)刪除,因而如何確保云服務(wù)運(yùn)營(yíng)商誠實(shí)地依照用戶要求刪除數(shù)據(jù)對(duì)數(shù)據(jù)擁有者而言至關(guān)重要[3–5]。除了保證云端數(shù)據(jù)的保密性和可用性外,數(shù)據(jù)擁有者如何實(shí)現(xiàn)安全刪除其外包數(shù)據(jù)是云存儲(chǔ)服務(wù)中需要解決的一個(gè)重要問題。
現(xiàn)有的數(shù)據(jù)刪除方法大多基于一比特返回協(xié)議進(jìn)行構(gòu)造,即在假定服務(wù)器可信的情況下,數(shù)據(jù)所有者發(fā)送一個(gè)請(qǐng)求讓云服務(wù)器從物理介質(zhì)中刪除數(shù)據(jù),然后接收一個(gè)表示刪除操作結(jié)果的位應(yīng)答(成功/失敗)[6]。如Garfinkel等人[7]提出通過刪除鏈接到數(shù)據(jù)的系統(tǒng)指針的方式,但它只是刪除了鏈接而內(nèi)容仍然保留在磁盤中。Gutmann[8]提出基于隨機(jī)數(shù)據(jù)覆蓋存儲(chǔ)介質(zhì)的方式實(shí)現(xiàn)數(shù)據(jù)刪除。Paul等人[9]提出了可擦除性證明(Proof of Erasability,PoE)概念,即用隨機(jī)模式覆蓋磁刪除數(shù)據(jù)。Perito等人[10]提出安全擦除證明(PoSE-s)的方案,通過備發(fā)送一串隨機(jī)模式將原始數(shù)據(jù)覆蓋。通過覆蓋存儲(chǔ)介質(zhì)的安全數(shù)據(jù)刪除大多不支持驗(yàn)證而且效率較低。近年來,基于密碼技術(shù)的外包數(shù)據(jù)存儲(chǔ)與刪除方案受到關(guān)注[11–17]。Perlman[12]提出了一個(gè)有保證的刪除協(xié)議。張曙光等人[13]提出了一種使云服務(wù)器能夠?qū)崿F(xiàn)加密數(shù)據(jù)重復(fù)刪除的方法。為了實(shí)現(xiàn)刪除公開可驗(yàn)證,Yang等人[14]提出一種基于私有鏈的刪除證據(jù)存儲(chǔ)方案。Yu等人[15]提出利用屬性基加密實(shí)現(xiàn)外包數(shù)據(jù)訪問控制,并通過交互驗(yàn)證刪除。Xue等人[18]提出了支持細(xì)粒度訪問控制的安全刪除方案,但計(jì)算代價(jià)較大,并且需要可信第三方生成重加密密鑰。此外,還有部分學(xué)者考慮了基于樹狀存儲(chǔ)實(shí)現(xiàn)安全刪除[19–21]。
現(xiàn)有多數(shù)外包數(shù)據(jù)的安全刪除方案大都假設(shè)云服務(wù)器完全可信,或依賴可信第三方協(xié)作完成安全刪除,同時(shí)難以支持細(xì)粒度訪問控制與刪除,其安全性和效率有待于進(jìn)一步提升。為此,本文提出一種基于區(qū)塊鏈的細(xì)粒度云數(shù)據(jù)安全刪除方案。首先采用基于密文策略的屬性基對(duì)外包數(shù)據(jù)加密,實(shí)現(xiàn)數(shù)據(jù)所有者對(duì)數(shù)據(jù)的細(xì)粒度訪問控制和可公開驗(yàn)證刪除。同時(shí),將外包的數(shù)據(jù)與屬性策略相關(guān)聯(lián),通過撤銷用戶訪問文件必不可少的屬性從而確保數(shù)據(jù)刪除。其次,本文提出了基于區(qū)塊鏈的數(shù)據(jù)刪除證據(jù)驗(yàn)證。數(shù)據(jù)所有者可以通過云服務(wù)器中已修改的密文重構(gòu)默克爾哈希樹(Measurement Hash Tree,MHT),并且對(duì)比哈希鏈上公開的證據(jù)來驗(yàn)證目標(biāo)數(shù)據(jù)是否已被刪除。最后,本文方案基于橢圓曲線進(jìn)行構(gòu)造,相比傳統(tǒng)的基于雙線性映射的數(shù)據(jù)安全存儲(chǔ)與刪除方案,計(jì)算復(fù)雜度更小。在刪除和驗(yàn)證階段,只需要數(shù)據(jù)所有者與云服務(wù)器兩方交互,不需要引入可信第三方,系統(tǒng)通信開銷和計(jì)算開銷進(jìn)一步降低。
在本文中,假設(shè)云服務(wù)器為不可信實(shí)體,即云服務(wù)器可能未經(jīng)數(shù)據(jù)擁有者授權(quán)刪除數(shù)據(jù)或者不按照數(shù)據(jù)擁有者刪除請(qǐng)求刪除數(shù)據(jù)。假設(shè)數(shù)據(jù)擁有者為非誠實(shí)實(shí)體,即數(shù)據(jù)擁有者可能會(huì)否認(rèn)自己曾經(jīng)發(fā)出的數(shù)據(jù)刪除請(qǐng)求,并誣陷云服務(wù)器未經(jīng)授權(quán)刪除數(shù)據(jù),從而向云服務(wù)器索要賠償。本方案允許被動(dòng)攻擊存在,即敵手可以竊聽系統(tǒng)中的所有通信,未經(jīng)授權(quán)的用戶也可能相互勾結(jié)以獲取明文信息。考慮到本文所提方案的應(yīng)用環(huán)境,結(jié)合Ramokapane等人[22]提出的基于云的確定性刪除的安全目標(biāo),將本文方案的安全目標(biāo)設(shè)定為滿足正確性、完整性、確定性數(shù)據(jù)刪除、安全細(xì)粒度訪問控制與責(zé)任追蹤等要求。
本文提出的方案包含5個(gè)實(shí)體:云服務(wù)器(Cloud Security Provider, CSP)、屬性授權(quán)中心(Attribute Authorization center, AA)、數(shù)據(jù)擁有者(Data Owner, DO)、用戶(Users)、區(qū)塊鏈網(wǎng)絡(luò)(Block Chain network, BC)。本方案的基本框架如圖1所示。
圖1 系統(tǒng)模型
(1) 云服務(wù)器(CSP):提供存儲(chǔ)服務(wù)、數(shù)據(jù)訪問服務(wù)。此外,云服務(wù)器可根據(jù)數(shù)據(jù)擁有者請(qǐng)求刪除數(shù)據(jù),并將刪除證據(jù)存放于區(qū)塊鏈。
(2) 屬性授權(quán)中心(AA):為系統(tǒng)生成主密鑰,為每個(gè)屬性、合法用戶生成私鑰。
(3) 數(shù)據(jù)擁有者( DO):定義訪問控制策略,通過定義的策略加密文件并存儲(chǔ)到云上。此外,還可生成刪除請(qǐng)求以及驗(yàn)證云服務(wù)器返回的刪除結(jié)果。
(4) 用戶(Users):在云上下載并解密密文,但只有授權(quán)用戶可以獲取相應(yīng)明文。
(5) 區(qū)塊鏈網(wǎng)絡(luò)( BC):本文方案中使用聯(lián)盟鏈以構(gòu)成數(shù)據(jù)刪除證據(jù)鏈,使用實(shí)用拜占庭算法(Practical Byzantine Fault Tolerance, PBFT)作為其共識(shí)機(jī)制。云服務(wù)器為普通節(jié)點(diǎn),刪除證據(jù)生成后交給所屬機(jī)構(gòu)的超級(jí)節(jié)點(diǎn),由超級(jí)節(jié)點(diǎn)進(jìn)行區(qū)塊模擬打包,當(dāng)交易記錄填充完一個(gè)區(qū)塊即提出出塊請(qǐng)求。只有超級(jí)節(jié)點(diǎn)共同維護(hù)一份統(tǒng)一的包含刪除證據(jù)的賬本并參與共識(shí),其他節(jié)點(diǎn)通過授權(quán)向超級(jí)節(jié)點(diǎn)申請(qǐng)查閱相關(guān)信息,實(shí)現(xiàn)刪除證據(jù)公開驗(yàn)證服務(wù)。
本方案包括7個(gè)算法:Setup, KeyGen, Encrypt,Decrypt, DelRequest,ReEncrypt,Verify,具體如下:
(1) Setup(1λ):由 AA運(yùn)行的系統(tǒng)初始化算法,將安全參數(shù)λ作為輸入,輸出屬性公鑰PKi與系統(tǒng)主密鑰MSK, PKi公開而MSK由A A私密保存。
(2) KeyGen(MSK,ID,SID):由 AA運(yùn)行的密鑰生成算法,輸入主密鑰MSK,用戶身份標(biāo)志 ID以及該用戶的一組屬性SID,輸出與用戶擁有屬性相關(guān)的私鑰S K。
(3) Encrypt(PKi,(A,ρ),M):由數(shù)據(jù)擁有者運(yùn)行加密算法,該算法需要以屬性公鑰PKi,訪問策略(A,ρ)以及明文M為輸入,輸出與訪問策略(A,ρ)相關(guān)的密文CT以及簽名σSKD0(Rj)。這里的Rj為已建立的第j個(gè)MHT的根值,A為線性秘密共享矩陣,ρ為一個(gè)映射,表示將矩陣A的第x行匹配到屬性ρ(x)。
(4) Decrypt(CT,SKρ(x),ID):由用戶運(yùn)行的解密算法。該算法將密文 CT和與該用戶擁有的屬性相關(guān)的私鑰SKρ(x),ID作為輸入,若私鑰中的屬性集滿足密文中的訪問架構(gòu),算法輸出明文M,否則,算法停止。
(5) DelRequest(fname,y):數(shù)據(jù)擁有者向云服務(wù)器申請(qǐng)刪除數(shù)據(jù)的算法。算法將文件名fname與要更改的屬性y作為算法輸入,輸出數(shù)據(jù)刪除請(qǐng)求DR。
(6) ReEncrypt(CT,DR):云服務(wù)器對(duì)密文進(jìn)行重加密算法。輸入密文 CT與刪除請(qǐng)求D R,輸出重加密后的密文項(xiàng)以及簽名σSKCSP(),這里的是更新后的MHT的根值。
(7) Verify(Resp,CT′):數(shù)據(jù)擁有者刪除驗(yàn)證算法。數(shù)據(jù)擁有者輸入云服務(wù)器返回的刪除反饋Resp,更改后的密文CT′,再結(jié)合當(dāng)前哈希鏈的值進(jìn)行驗(yàn)證,若驗(yàn)證通過,輸出1,否則,輸出0。
本方案的安全模型為基于選擇性訪問架構(gòu)安全(selective access structure security),該模型由敵手 A 和挑戰(zhàn)者C 之間的游戲來定義。在游戲開始階段,敵手 A 先輸出一個(gè)挑戰(zhàn)訪問架構(gòu)A?,接著敵手A 可以發(fā)出與屬性S相關(guān)的私鑰查詢,但這些屬性不能滿足訪問架構(gòu)A?。
模型詳情如下所述:
Init: 敵手 A選擇一個(gè)挑戰(zhàn)訪問架構(gòu)(A?,ρ?),此架構(gòu)中屬性dummy已被撤銷,即用(A?, ρ?)加密的密文已被刪除。
Setup:挑戰(zhàn)者 C 執(zhí)行setup算法生成系統(tǒng)公共參數(shù),并為每個(gè)屬性生成公私鑰對(duì)。接著挑戰(zhàn)者C 將生成的公共參數(shù)發(fā)送給敵手A 。
Phase 1: 敵手 A向挑戰(zhàn)者C 發(fā)送與屬性組SID相關(guān)的私鑰查詢,但所有的屬性組SID不能滿足A?。因?yàn)閷傩詃ummy已被撤銷,則屬性組SID不包括屬性dummy。
Challenge: 敵手 A任選兩個(gè)相同長(zhǎng)度的消息M0,M1發(fā)送給挑戰(zhàn)者C ,挑戰(zhàn)者C 任選δ ∈{0,1},并基于訪問架構(gòu)(A?, ρ?)加密Mδ,并將加密后的密文CT?發(fā)送給敵手A 。
Phase 2:過程與phase 1類似,敵手 A 進(jìn)行更多的秘鑰詢問。
Guess:敵手 A輸出猜想,若δ′=δ,則敵手A贏得游戲。
本節(jié)給出數(shù)據(jù)存儲(chǔ)與安全刪除方案的具體構(gòu)造。為了提高算法整體性能,本文利用橢圓曲線進(jìn)行構(gòu)造。假設(shè)每個(gè)用戶都會(huì)預(yù)先加載公共參數(shù)PKi(1≤i ≤|U|)以及LSSS訪問矩陣。本方案的詳細(xì)結(jié)構(gòu)如下所示:
Setup(1λ):選擇GF(p)為階為P的有限域,設(shè)E是定義在GF(p)上的橢圓曲線,G為階為r的橢圓曲線E的基。H為單向抗碰撞哈希函數(shù)。
AA任選隨機(jī)數(shù)α ∈Zr,再為|U|個(gè)屬性選擇元素h1,h2,···,h|U|∈Zr,將MSK =(h1,h2,···,h|U|,α)作為系統(tǒng)主密鑰私密保存,計(jì)算αG,PKi=hiG(1≤i≤|U|),并公開αG以及屬性公鑰PKi。
圖2 證據(jù)鏈結(jié)構(gòu)
此外,本文方案在安全特性方面與現(xiàn)有同類方案相比具有一定優(yōu)勢(shì),具體結(jié)果如表1所示。Yang等人[14]方案與Hao等人[23]方案不采用屬性加密方式,缺少細(xì)粒度訪問特性,且存入云端的密文數(shù)據(jù)只能自己訪問,不能分享數(shù)據(jù),且后者方案無法提供隱私保護(hù)。Xue等人[18]方案、Yu等人[15]方案與本文方案都使用屬性加密,均可提供細(xì)粒度訪問控制,但是前兩個(gè)方案不能進(jìn)行公開驗(yàn)證及責(zé)任追蹤,且基于雙線性構(gòu)造方案開銷較大,綜上所述,本方案在性能評(píng)估中有較好的優(yōu)勢(shì)。
表1 安全特性對(duì)比
本節(jié)就時(shí)間復(fù)雜度將本文方案與現(xiàn)有同類方案進(jìn)行分析對(duì)比,由于Setup, KeyGen等階段由具有充足計(jì)算資源的屬性中心(AA)執(zhí)行的離線一次性操作,對(duì)系統(tǒng)運(yùn)行性能影響較小,所以本節(jié)主要考慮執(zhí)行較為頻繁的加密、解密、刪除、驗(yàn)證等4個(gè)階段的計(jì)算開銷,具體結(jié)果如表2 所示。表2中的加密對(duì)應(yīng)前文算法Encrypt,解密對(duì)應(yīng)算法Decrypt,刪除對(duì)應(yīng)算法DelRequest和ReEncrypt,驗(yàn)證對(duì)應(yīng)算法Verify,其中Tp_mul,Tp_add,Tbp,Texp,Tmul,Tsig,Tver,Tε,TD,Th分別表示單次橢圓曲線倍點(diǎn)運(yùn)算,橢圓曲線點(diǎn)加運(yùn)算,雙線性映射運(yùn)算,冪運(yùn)算,乘法運(yùn)算,ECDSA簽名運(yùn)算及ECDSA驗(yàn)簽運(yùn)算,AES加密運(yùn)算及解密運(yùn)算,哈希運(yùn)算等運(yùn)算時(shí)間。為便于描述,l代表共享生成矩陣A的行數(shù),|γ|為密文中屬性個(gè)數(shù),Ma表示滿足訪問策略的最少屬性個(gè)數(shù),m為當(dāng)前區(qū)塊鏈節(jié)點(diǎn)個(gè)數(shù)。由于Xue等人[18]方案、Yu等人[15]方案與本文方案均基于屬性加密,故本節(jié)仿真實(shí)驗(yàn)只針對(duì)后3個(gè)方案比較,對(duì)比結(jié)果如圖3(a),圖3(b),圖4(a)與圖4(b)所示,分別表示加密階段、解密階段、刪除階段與驗(yàn)證階段。本實(shí)驗(yàn)在Intel(R) Core(TM) i7-6700 CPU@3.40 GHz平臺(tái)上使用JPBC庫實(shí)現(xiàn)。橢圓曲線加密的密鑰大小為160 bit, AES加密密鑰大小為128 bit,安全參數(shù)設(shè)置為80,圖3(a)為設(shè)置不同的訪問矩陣行數(shù)或密文屬性個(gè)數(shù)的加密時(shí)間對(duì)比,圖3(b)為設(shè)置不同的用戶私鑰或密文中屬性個(gè)數(shù)的解密時(shí)間對(duì)比,圖4(a)為設(shè)置不同的訪問矩陣行數(shù)或密文中屬性個(gè)數(shù)的刪除時(shí)間對(duì)比,圖4(b)為設(shè)置不同用戶私鑰或密文中屬性個(gè)數(shù)的驗(yàn)證時(shí)間對(duì)比。圖中時(shí)間為重復(fù)50次得到的平均值。本文方案和Yu等人[15]方案是基于CP-ABE的,而Xue等人[18]方案是基于KP-ABE的。因此在加解密階段和刪除驗(yàn)證階段的時(shí)間消耗受訪問矩陣行數(shù)、私鑰中屬性個(gè)數(shù)以及密文中屬性個(gè)數(shù)等不同類型參數(shù)影響,本文實(shí)驗(yàn)中將這些參數(shù)值都設(shè)置4~16的相同值。
圖3 不同訪問矩陣行數(shù)或密文中屬性個(gè)數(shù)下的加解密時(shí)間變化
圖4 不同訪問矩陣行數(shù)或密文中屬性個(gè)數(shù)下的刪除與驗(yàn)證時(shí)間變化
表2 時(shí)間復(fù)雜度對(duì)比
為了解決云存儲(chǔ)環(huán)境中數(shù)據(jù)可信刪除問題,本文提出一種基于區(qū)塊鏈的云數(shù)據(jù)安全存儲(chǔ)與刪除方案。本文方案不僅比同類方案更為輕量化,還實(shí)現(xiàn)了存儲(chǔ)數(shù)據(jù)的細(xì)粒度訪問控制,同時(shí)基于區(qū)塊鏈的刪除證據(jù)管理方式使其具有公開可驗(yàn)證特性。最后,對(duì)本文方案進(jìn)行了安全性分析和實(shí)驗(yàn)分析,結(jié)果表明所提方案能更好地滿足云數(shù)據(jù)安全共享與刪除需求。