, *, ,
(1. 武警工程大學(xué)密碼工程學(xué)院,陜西西安710086;2. 網(wǎng)絡(luò)與信息安全武警部隊(duì)重點(diǎn)實(shí)驗(yàn)室(武警工程大學(xué)),陜西西安710086)
與傳統(tǒng)的本地計(jì)算相比,云服務(wù)器具有強(qiáng)大計(jì)算能力和數(shù)據(jù)管理能力,采用按需付費(fèi)的模式幫助客戶降低數(shù)據(jù)維護(hù)和管理成本[1]。因此,越來越多的組織和個(gè)人將數(shù)據(jù)上傳到云端,進(jìn)行數(shù)據(jù)管理和共享[2]。這些工作方式的改變帶來了生產(chǎn)力革命,但同時(shí)也給數(shù)據(jù)安全和用戶隱私帶來了新的問題和挑戰(zhàn)[3]。云計(jì)算中最常見的應(yīng)用是文件共享和協(xié)作,允許同一組中的用戶上傳和共享數(shù)據(jù)。他們可以同時(shí)訪問該文件并修改外包數(shù)據(jù)的不同部分。但是,由于云存儲(chǔ)的存在,用戶放棄了對(duì)數(shù)據(jù)的物理控制,因此無法保證外包數(shù)據(jù)的完整性和正確性。并且,當(dāng)多個(gè)用戶向同一數(shù)據(jù)塊發(fā)起修改請(qǐng)求時(shí),存在沖突的可能。因此,迫切需要一種支持動(dòng)態(tài)數(shù)據(jù),可以防止修改沖突的公共審計(jì)方案。
為了保護(hù)云服務(wù)器中數(shù)據(jù)的正確性和完整性,研究者提出了許多基于不同技術(shù)的方案。Provable data possession (PDP)[4]是完整性驗(yàn)證問題的基本解決方案,在現(xiàn)有的PDP方案中,用戶同時(shí)將數(shù)據(jù)和簽名外包給云服務(wù)器,用戶可以發(fā)送質(zhì)詢以驗(yàn)證數(shù)據(jù)的完整性。由于個(gè)人用戶的計(jì)算能力有限,為了減輕用戶的負(fù)擔(dān),通常會(huì)使用第三方機(jī)構(gòu)(TPA)來代替用戶進(jìn)行審核工作。但是,半可信的TPA可能會(huì)在審核過程中獲取用戶和數(shù)據(jù)的信息。因此,研究人員提出了一些隱私保護(hù)方案,包括數(shù)據(jù)隱私[5-6]和身份隱私[7-8]。TIAN等[9]提出了一種基于群簽名的同態(tài)可驗(yàn)證群簽名方案,旨在保護(hù)用戶數(shù)據(jù)隱私。該方案使用線性哈希表記錄用戶的操作并提高審計(jì)效率,但是,此方案無法驗(yàn)證哈希表本身的正確性,并且拓展的動(dòng)態(tài)哈希表由半可信的TPA來進(jìn)行維護(hù),TPA可能與CSP(cloud service provider)進(jìn)行合謀,修改拓展的動(dòng)態(tài)哈希表的內(nèi)容,從而達(dá)到攻擊目的。其次,管理員具有創(chuàng)建和修改線性哈希表的權(quán)限,存在管理員惡意修改用戶記錄的可能,而用戶卻沒有能力證明哈希表的正確性。基于此,本文將區(qū)塊鏈引入方案的設(shè)計(jì)中,制衡管理員和TPA的權(quán)限。
區(qū)塊鏈?zhǔn)且环N數(shù)據(jù)結(jié)構(gòu),通過密碼學(xué)按時(shí)間順序鏈接[10],其加密結(jié)構(gòu)確保它是不可偽造和不可變的,每個(gè)塊包含前一個(gè)塊的加密哈希值、相應(yīng)的時(shí)間戳和事務(wù)數(shù)據(jù)[11]。通常,事務(wù)數(shù)據(jù)表示為默克爾哈希樹根,這種設(shè)計(jì)使得塊內(nèi)容難以篡改。由于區(qū)塊鏈在不可篡改、隱私保護(hù)和分發(fā)方面的優(yōu)勢(shì),從而引起了研究人員的興趣[12-14]。HUANG等[15]提出了一種基于區(qū)塊鏈的數(shù)據(jù)共享方案,主要解決數(shù)據(jù)修改過程中可能存在的沖突問題,但該方案中,區(qū)塊鏈結(jié)構(gòu)完全由云服務(wù)器創(chuàng)建,且用戶不持有最后一個(gè)區(qū)塊的哈希值,導(dǎo)致并不能實(shí)現(xiàn)區(qū)塊鏈不可篡改的特性。
為了保護(hù)用戶的信息和數(shù)據(jù)安全,設(shè)計(jì)一種能夠解決上述所有問題的隱私保護(hù)方案至關(guān)重要。本文提出一種基于區(qū)塊鏈的可審計(jì)的云存儲(chǔ)共享數(shù)據(jù)方案,在傳統(tǒng)的數(shù)據(jù)共享方案的基礎(chǔ)上,引入?yún)^(qū)塊鏈技術(shù)進(jìn)一步限制管理員的權(quán)限,防止管理員對(duì)記錄的惡意修改。在管理員每次創(chuàng)建區(qū)塊后,管理員會(huì)將區(qū)塊鏈上的最后一個(gè)塊的哈希值,分發(fā)給所有群成員,從而實(shí)現(xiàn)區(qū)塊鏈不可篡改的特性。且在審計(jì)過程中,TPA無法獲得有關(guān)數(shù)據(jù)塊和組用戶之間連接的任何信息。
定義1(雙線性映射) 假設(shè)P為大素?cái)?shù),G1、G2、GT是3個(gè)階為P的乘法循環(huán)群,g1和g2分別為群G1和G2的生成元。稱(G1,G2,GT)為雙線性映射群,如果存在一個(gè)映射e:G1×G2→GT滿足以下性質(zhì):
b)可計(jì)算性:在群上存在可高效運(yùn)算的映射e。
c)非退化性:對(duì)生成元g1、g2,有e(g1,g2)≠1。
假設(shè)1Discrete Log (DL)問題。
P[y=gx:y←G,x←A(y)]。
假設(shè)2Computational co-Diffe-Hellman (co-CDH)問題。
在本文中,我們假設(shè)存在3種不同的實(shí)體,如圖1所示。
圖1 系統(tǒng)模型Fig.1 System model
用戶(User):包括普通用戶和管理員。普通用戶可以共享和修改共享數(shù)據(jù),管理員由用戶組指定,負(fù)責(zé)維護(hù)用戶列表、審核數(shù)據(jù)和記錄用戶操作。
第三方機(jī)構(gòu)(TPA):提供公共審計(jì)服務(wù),負(fù)責(zé)向云服務(wù)器發(fā)起質(zhì)詢,驗(yàn)證數(shù)據(jù)完整性,之后向管理員反饋校驗(yàn)結(jié)果。
云服務(wù)提供商(CSP):為用戶提供靈活的數(shù)據(jù)共享、存儲(chǔ)和數(shù)據(jù)計(jì)算服務(wù)。
為了實(shí)現(xiàn)身份可追溯性,本文設(shè)計(jì)了一個(gè)基于區(qū)塊鏈的數(shù)據(jù)修改記錄結(jié)構(gòu)來跟蹤用戶的操作。管理員可以最終提交用戶的操作,每個(gè)區(qū)塊鏈包含用戶的所有有效操作信息和相應(yīng)的文件信息。每個(gè)區(qū)塊包含區(qū)塊頭和操作信息,所有塊按時(shí)間順序鏈接以形成區(qū)塊鏈。為了防止后來者對(duì)已經(jīng)存在的區(qū)塊進(jìn)行惡意修改,每個(gè)區(qū)塊頭中包含一個(gè)由前一個(gè)區(qū)塊哈希值構(gòu)成的指針,每個(gè)塊的事務(wù)信息部分記錄用戶對(duì)每個(gè)數(shù)據(jù)塊的操作,包括時(shí)間、數(shù)據(jù)塊編號(hào)和具體操作。
管理員為每個(gè)文件創(chuàng)建一個(gè)區(qū)塊鏈。當(dāng)用戶成功提交操作時(shí),管理員將信息打包生成一個(gè)區(qū)塊并連接到前一個(gè)塊,如果是創(chuàng)世塊,則前向指針為空,隨后,管理員將區(qū)塊的哈希值分發(fā)給全體用戶。當(dāng)用戶將文件上傳到CSP時(shí),用戶將構(gòu)建基于Rank的默克爾哈希樹(RB-MHT)。RB-MHT由QI等提出[16],其利用等級(jí)來描述塊索引并支持多個(gè)分支。
(1)
本節(jié)將給出方案的細(xì)節(jié)。除了審計(jì)方案的具體描述外,還將給出批量審計(jì)和群成員動(dòng)態(tài)管理的介紹。
圖2 基于區(qū)塊鏈的可審計(jì)數(shù)據(jù)分享協(xié)議流程Fig.2 Process of blockchain-based auditable data sharing protocol
我們提出的可審計(jì)的數(shù)據(jù)共享外包方案由5個(gè)過程組成(圖2):
(b) Sign:為了外包一個(gè)文件F,用戶首先將文件F分為n塊,表示為F=(m1,…,mn)。然后,用戶使用私鑰skj為每個(gè)數(shù)據(jù)塊mi生成一個(gè)可驗(yàn)證的標(biāo)簽:
σi=(H(mi)·g1mi)skj。
(2)
(3)
(d) ProofGen:收到TPA的審計(jì)信息后,將首先通過審計(jì)序列搜索默克爾哈希樹T中的葉子節(jié)點(diǎn)wi{i∈IIDX},同時(shí)生成輔助驗(yàn)證信息Ωi{i∈IIDX}。通過{wi,Ωi},TPA可以快速重構(gòu)哈希樹T。然后,CSP將數(shù)據(jù)進(jìn)行盲化,計(jì)算數(shù)據(jù)證據(jù)
(4)
和標(biāo)簽證明
(5)
將數(shù)據(jù)完整性證明P={{μ,Φ,{wi,Ωi|i∈IIDX}返回給TPA。
(e) Verify:當(dāng)TPA收到CSP返回的數(shù)據(jù)證明P后,TPA利用{wi,Ωi}和管理員公鑰pk1重構(gòu)哈希默克爾和驗(yàn)證樹根L(wR)的正確性,即驗(yàn)證
(6)
是否成立。如果式(6)不成立,說明CSP產(chǎn)生了數(shù)據(jù)損壞,向用戶返回失??;否則,TPA繼續(xù)驗(yàn)證
(7)
如果式(7)成立,則向用戶返回“Ture”。
通過以上過程,TPA無法了解到關(guān)于用戶數(shù)據(jù)的任何信息。
通過批量審計(jì)的應(yīng)用,TPA可以一次性處理多組數(shù)據(jù)完整性審計(jì),并且這些審計(jì)可以來自不同的用戶組。首先,使用Cchal表示來自不同文件的審計(jì)請(qǐng)求,當(dāng)CSP收到請(qǐng)求后,計(jì)算
然后將標(biāo)簽按照式(8)進(jìn)行聚合:
(8)
最后,TPA驗(yàn)證完整性證明的正確性,即驗(yàn)證:
(9)
組管理的任務(wù)由組管理員完成,通常包括添加和刪除用戶。
本文設(shè)計(jì)了一個(gè)相對(duì)簡(jiǎn)單的用戶管理模型,以減輕集團(tuán)經(jīng)理的負(fù)擔(dān)。當(dāng)需要添加用戶時(shí),組管理員首先將用戶添加到用戶列表,然后通知CSP添加允許用戶更改數(shù)據(jù)的權(quán)限。然后,用戶在本地計(jì)算機(jī)上運(yùn)行KeyGen函數(shù)以生成密鑰對(duì)。
當(dāng)用戶需要離開時(shí),為了保護(hù)數(shù)據(jù)安全,組管理員需要首先找到未被用戶修改的數(shù)據(jù)塊,然后向TPA提交審計(jì)請(qǐng)求。TPA根據(jù)組管理員的請(qǐng)求直接審核相應(yīng)的數(shù)據(jù)塊。如果TPA成功返回,則組管理器將用戶從用戶列表中刪除,并通知CSP刪除相應(yīng)的權(quán)限。
定理1在數(shù)據(jù)完整性審計(jì)過程中,TPA無法獲取任何關(guān)于數(shù)據(jù)以及數(shù)據(jù)和用戶之間關(guān)系的信息。
證明本文提出的協(xié)議中,CSP返回給TPA的數(shù)據(jù)證明中的數(shù)據(jù)被隨機(jī)盲化聚合,標(biāo)簽通過代理簽名的思想轉(zhuǎn)化為被管理員簽名的標(biāo)簽。
(10)
通過式(10)可以看出TPA得到的最終結(jié)果與普通用戶無關(guān)。
定理2CSP無法使用偽造的數(shù)據(jù)證明,通過數(shù)據(jù)完整性審計(jì)。
證明為了回復(fù)TPA的挑戰(zhàn)請(qǐng)求Cchal={{(i,λi)|i∈IIDX},{γi|i∈U}},CSP必須提供相應(yīng)的證明P={μ,Φ,{wi,Ωi|i∈IIDX}}。如果{wi,Ωi}錯(cuò)誤,則式(6)無法通過驗(yàn)證,即使其他證明是正確的。根據(jù)文獻(xiàn)[17],BLS-HVAs在不知道簽名者私鑰的情況下,無法被偽造。因此,我們只需證明被挑戰(zhàn)塊的數(shù)據(jù)證明μ是不可偽造的。
我們?cè)O(shè)計(jì)了一個(gè)游戲,為了響應(yīng)TPA的挑戰(zhàn),CSP提供一個(gè)偽造的證明P′={μ′,Φ,{wi,Ωi|i∈IIDX}},其中
(11)
如果CSP使用偽造的證明通過驗(yàn)證,則CSP獲勝;否則,CSP失敗。假設(shè)CSP獲勝,則由
(12)
對(duì)應(yīng)正確的證明,可以得到
(13)
根據(jù)雙線性映射的性質(zhì),我們可以得到
(14)
式(14)與假設(shè)相矛盾,因此CSP無法通過偽造證明通過數(shù)據(jù)完整性審計(jì)。證畢。
為了具體評(píng)估方案的性能,我們對(duì)本文提出的方案進(jìn)行了實(shí)驗(yàn)?zāi)M。方案使用Intel Core i5-4200H 3.8 GHz和8 GiB內(nèi)存的PC機(jī)進(jìn)行模擬。使用Java 11調(diào)用Bouncy Castle和JPBC密碼學(xué)庫進(jìn)行實(shí)現(xiàn)。所有的數(shù)據(jù)均為20輪測(cè)試結(jié)果的平均值。
本節(jié)給出了本文提出的方案和不同情況下的審計(jì)效率。圖3顯示了在不同數(shù)量的塊,塊大小為4 KiB的情況下,標(biāo)簽生成效率與數(shù)量呈正比。圖4顯示了在不同數(shù)據(jù)塊大小的情況下,標(biāo)簽的生成效率不變。圖5給出了在使用批量審計(jì)的情況下,TPA的驗(yàn)證效率隨著審計(jì)數(shù)量的增加而提高。
圖3 不同數(shù)據(jù)塊大小的審計(jì)效率Fig.3 Time cost of verification in different block size
圖4 不同塊數(shù)量下的標(biāo)簽生成效率Fig.4 Time cost of signature generation in different block number
圖5 批量審計(jì)效率Fig.5 Time cost of batch verification
本文著眼于數(shù)據(jù)外包和驗(yàn)證過程中參與實(shí)體的權(quán)限所帶來的安全問題,通過引入?yún)^(qū)塊鏈技術(shù),實(shí)現(xiàn)了對(duì)管理員和TPA等參與實(shí)體的限制,在保證用戶數(shù)據(jù)信息安全的同時(shí),實(shí)現(xiàn)了隱私保護(hù)。安全分析和實(shí)驗(yàn)結(jié)果表明,該方案在實(shí)現(xiàn)安全功能的前提下具有較好的效率。由于區(qū)塊鏈采用類私有鏈,雖然限制了管理員權(quán)限,但是依然存在一定的數(shù)據(jù)風(fēng)險(xiǎn),因此以后應(yīng)改進(jìn)為采用公鏈實(shí)現(xiàn)。