呂靜
(西安航空職業(yè)技術(shù)學(xué)院, 科研處, 陜西, 西安 710089)
隨著信息技術(shù)的高速發(fā)展,云存儲(chǔ)憑借成本低、可靠性高、擴(kuò)展性強(qiáng)等優(yōu)勢(shì)日益受到廣大用戶的歡迎,但現(xiàn)有的第三方云數(shù)據(jù)完整性審計(jì)方案缺點(diǎn)眾多,制約了云存儲(chǔ)的普及和應(yīng)用[1-3]。本文針對(duì)創(chuàng)新型科研項(xiàng)目數(shù)據(jù)提出了一種基于云技術(shù)審計(jì)系統(tǒng)模型,利用分布式網(wǎng)絡(luò)在各節(jié)點(diǎn)之間直接建立可靠通信,提高了信息傳遞的效率,增強(qiáng)了整個(gè)網(wǎng)絡(luò)的可擴(kuò)展性和計(jì)算能力,通過(guò)數(shù)據(jù)加密有效杜絕了項(xiàng)目隱私泄露的現(xiàn)象。
云數(shù)據(jù)完整性審計(jì)模型總體結(jié)構(gòu)如圖1所示。模型主要由3個(gè)實(shí)體構(gòu)成,即普通用戶群、授權(quán)用戶群、云存儲(chǔ)服務(wù)器。用戶群既可以是個(gè)人也可以是企業(yè),在DPOS(委托證明)的推進(jìn)過(guò)程中,用戶群體將會(huì)逐漸分化為CO(普通用戶群)和DO(授權(quán)用戶群)。由于CSP(云存儲(chǔ)服務(wù)器)為所有的用戶群體提供存儲(chǔ)服務(wù),所以它們都可以在CSP中進(jìn)行數(shù)據(jù)存儲(chǔ),DO則代表整個(gè)用戶群體驗(yàn)證CSP中數(shù)據(jù)的完整性。
圖1 模型總體結(jié)構(gòu)
在區(qū)塊鏈的技術(shù)框架下,模型的工作流程如下:
(1) owners首先基于特定的密鑰生成算法生成一個(gè)密鑰對(duì)(sk,pk);接下來(lái)采用DPOS算法向當(dāng)前節(jié)點(diǎn)輸入共識(shí)消息;再?gòu)腜2P網(wǎng)絡(luò)中讀取其他節(jié)點(diǎn)中已有的DPOS共識(shí)消息。在收集到網(wǎng)絡(luò)中所有節(jié)點(diǎn)的共識(shí)消息后即可形成全網(wǎng)共識(shí),然后在DPOS機(jī)制下經(jīng)投票選出具有資格的DO用戶,從而創(chuàng)建授權(quán)用戶列表,owners讀取該列表,如果已被選舉為授權(quán)用戶,則由其進(jìn)行任務(wù)分配,未被選舉為授權(quán)用戶的owners則成為執(zhí)行任務(wù)的普通用戶[4-5]。
(2) 用戶群CO和DO完成數(shù)據(jù)初始化后將其分割為多個(gè)小塊,分別計(jì)算數(shù)據(jù)塊的元數(shù)據(jù)及其hash值,由數(shù)據(jù)塊與元數(shù)據(jù)組合到一起生成數(shù)據(jù)交易塊(簡(jiǎn)稱IB)并將其保存到CSP中。其中,利用hash函數(shù)計(jì)算數(shù)據(jù)hash值。hash函數(shù)是一種能夠?qū)⑷我忾L(zhǎng)度的數(shù)據(jù)壓縮轉(zhuǎn)換為固定長(zhǎng)度的概括性數(shù)據(jù)函數(shù),它能夠根據(jù)不同的散列需求,計(jì)算不同數(shù)據(jù)的hash值。hash函數(shù)具體表達(dá)式為
Addr=H(key)
IB的數(shù)據(jù)結(jié)構(gòu),如圖2所示。
圖2 IB的數(shù)據(jù)結(jié)構(gòu)
(3) 用戶群CO和DO將元數(shù)據(jù)和hash值組合為驗(yàn)證交易塊itemBlcok*(簡(jiǎn)稱IB*)并將其保存到DO(激活)中。IB*的數(shù)據(jù)結(jié)構(gòu),如圖3所示。
圖3 IB*的數(shù)據(jù)結(jié)構(gòu)
(4) 當(dāng)一定數(shù)量的IB*保存到DO(激活)后,DO通過(guò)區(qū)塊生成算法生成無(wú)簽名的區(qū)塊文件,然后啟動(dòng)區(qū)塊認(rèn)證相關(guān)流程。
(5) 為了驗(yàn)證當(dāng)前存儲(chǔ)的區(qū)塊所對(duì)應(yīng)的用戶數(shù)據(jù)集合的完整性,DO(未激活)向CSP提出審計(jì)要求。
與傳統(tǒng)的區(qū)塊鏈應(yīng)用模型相比,審計(jì)模型的數(shù)據(jù)文件更大,因此采用分塊的方式來(lái)減少元數(shù)據(jù)的計(jì)算量。當(dāng)引入?yún)^(qū)塊鏈技術(shù)進(jìn)行云數(shù)據(jù)完整性審計(jì)時(shí),需要按實(shí)際需求修改區(qū)塊鏈底層數(shù)據(jù)的結(jié)構(gòu),所以提出數(shù)據(jù)聚合的方法和MA-MHT(多用戶審計(jì)哈希樹)結(jié)構(gòu)以適應(yīng)區(qū)塊鏈模式的審計(jì)。MA-MHT的結(jié)構(gòu)形式,如圖4所示。
圖4 MA-MHT結(jié)構(gòu)形式
數(shù)據(jù)聚合指在完成數(shù)據(jù)文件的分塊后,不需要將每一個(gè)文件塊在P2P網(wǎng)絡(luò)中單獨(dú)輸送,而是將文件快與元數(shù)據(jù)組合成一個(gè)完整的文件,從而作為一次完整的交易在網(wǎng)絡(luò)中進(jìn)行傳輸。MA-MHT結(jié)構(gòu)則適應(yīng)了區(qū)塊鏈與審計(jì)的融合需求,使文件塊在區(qū)塊鏈中的簽署以及審計(jì)系統(tǒng)對(duì)其進(jìn)行審計(jì)均能夠得以實(shí)現(xiàn)。在MA-MHT的結(jié)構(gòu)形式下,通過(guò)安全哈希算法,底層IB*的所有hash值被整合成哈希樹的葉子節(jié)點(diǎn),最后再通過(guò)特定算法生成根節(jié)點(diǎn)HR。區(qū)塊鏈的簽署由這些根節(jié)點(diǎn)完成,相當(dāng)于區(qū)塊進(jìn)行的第一次審計(jì),從而快速檢查用戶輸入的數(shù)據(jù)文件是否在CSP中被完整地保存下來(lái)。審計(jì)模型通過(guò)MHT中的元數(shù)據(jù)完成后續(xù)的審計(jì)操作以實(shí)現(xiàn)周期性的數(shù)據(jù)完整性審計(jì)。
MA-MHT數(shù)據(jù)結(jié)構(gòu)的構(gòu)建方法[6-7]如下:
步驟1 由DO進(jìn)行MA-MHT構(gòu)建的具體過(guò)程。
哈希樹葉子節(jié)點(diǎn)hash值的計(jì)算:HA=H(H(mi,1)+H(mi,2)+…+H(mi,n))
內(nèi)部節(jié)點(diǎn)hash值的計(jì)算:HE=H(HA+HB)
根節(jié)點(diǎn)hash值的計(jì)算:HR=H(HE+HF)
步驟2 由CSP進(jìn)行MA-MHT構(gòu)建的具體過(guò)程。
計(jì)算文件塊mi,j的hash值H(mi,j);
哈希樹葉子節(jié)點(diǎn)hash值的計(jì)算:HA=H(H(mi,1)+H(mi,2)+…+H(mi,n))
內(nèi)部節(jié)點(diǎn)hash值的計(jì)算:HE=H(HA+HB)
根節(jié)點(diǎn)hash值的計(jì)算:HR=H(HE+HF)
步驟1 生成密鑰。任意選取2個(gè)1 024位的素?cái)?shù)x、y(x、y←Zp),由N=x·y計(jì)算得到RSA模數(shù);由φ(N)=(x-1)×(y-1)計(jì)算歐拉函數(shù)值,任意選取1個(gè)整數(shù)e<φ(N),使ged(e,φ(N))=1;由d≡e-1(modφ(N))計(jì)算得到1個(gè)整數(shù)d;令公鑰pk=(N,e),私鑰sk=d,選擇同態(tài)安全hash函數(shù)H(·):Z*N→Z*N。
步驟2 生成元數(shù)據(jù)。將用戶輸入的數(shù)據(jù)文件分割為n個(gè)文件塊Fi={mi,j}1≤j≤n;將Fi的唯一標(biāo)記nameFi∈Z*N保存在區(qū)塊的頭文件header中,然后對(duì)每個(gè)文件塊mi,j對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行計(jì)算,即σi,j=H(nameFi)H(mi,j)d 1≤j≤n。在完成元數(shù)據(jù)的處理后,用戶將文件塊、文件塊的hash值、文件塊的元數(shù)據(jù)分別整合位IB(header(mi,j,σi,j))1≤j≤n以及IB*(header(H(mi,j),σi,j))1≤j≤n并將其分別保存在CSP和DO(激活)中。
步驟4 按以下方法完成區(qū)塊簽署。
由DO(激活)就區(qū)塊簽署向CSP提出認(rèn)證要求;
CSP根據(jù)blockId對(duì)所存儲(chǔ)的證據(jù)區(qū)塊進(jìn)行定位,將該區(qū)塊文件MA-MHT根節(jié)點(diǎn)的hash值HR提取出來(lái),構(gòu)建證據(jù)proof(HR,blockId)并將其返回;
DO(激活)接收CSP返回的證據(jù)后找到對(duì)應(yīng)的未簽署文件塊,讀取其根節(jié)點(diǎn)HR并與CSP中的HR進(jìn)行對(duì)比,若兩者相等則將簽署消息ack(blockId,succeee,DOpk)發(fā)送給CSP完成區(qū)塊的簽署;
CSP在接收到簽署消息后,在區(qū)塊鏈上找到對(duì)應(yīng)的區(qū)塊,從簽署消息中提取出DOpk并寫入該區(qū)塊的簽署標(biāo)志位中。
步驟5 按以下步驟完成區(qū)塊的審計(jì)。
由DO任意抽取一個(gè)本地中存儲(chǔ)的文件塊,該區(qū)塊中IB*的數(shù)量為m個(gè),其中存儲(chǔ)文件塊的元數(shù)據(jù)及hash值的數(shù)量為n個(gè)。隨機(jī)創(chuàng)建m個(gè)集合Ii,集合中包含的元素記為Ii={si,j}1≤j≤c,數(shù)量為c個(gè)。DO從集合Ii中任意選取1個(gè)vi∈Z*p,創(chuàng)建1個(gè)子簽署要求chali=(Ii,vi)1≤j≤m,在所有同類要求得到滿足后,將其整合為完整的簽署要求chal(blockId,chali)1≤j≤m并將其發(fā)送給CSP;
DO收到證據(jù)后,對(duì)下式進(jìn)行驗(yàn)證:
(1)
若式(1)成立,則DO輸出結(jié)果“true”,否則輸出結(jié)果“false”。
所設(shè)計(jì)的模型采用了哈希算法、非對(duì)稱加密算法以及MA-MHT來(lái)保證云數(shù)據(jù)的安全性。在區(qū)塊鏈的結(jié)構(gòu)模式下,數(shù)據(jù)存儲(chǔ)在各個(gè)區(qū)塊中且數(shù)據(jù)通過(guò)哈希算法整合得到的hash值被保存在區(qū)塊頭中。當(dāng)數(shù)據(jù)面臨被篡改的威脅時(shí),區(qū)塊的哈希值會(huì)產(chǎn)生一定的變化,為了使篡改操作在整個(gè)網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)得以執(zhí)行,就必須從當(dāng)前區(qū)塊開始對(duì)所有節(jié)點(diǎn)的hash值進(jìn)行重新計(jì)算。此外,為了保證用戶的隱私不被侵犯,模型中通過(guò)數(shù)據(jù)盲化的方法處理CSP返回給DO的驗(yàn)證數(shù)據(jù),使DO無(wú)法對(duì)數(shù)據(jù)內(nèi)容進(jìn)行反向推導(dǎo)。
實(shí)驗(yàn)搭建硬件環(huán)境為3臺(tái)PC(內(nèi)存8 G、CPU3.2 GHz);系統(tǒng)采用Windows 7操作系統(tǒng)。編程環(huán)境為JXTA CMS2.4、jdk1.8、Java。其中:1臺(tái)PC用于多用戶科研項(xiàng)目數(shù)據(jù)的存儲(chǔ)和維護(hù),并生產(chǎn)區(qū)塊;另外2臺(tái)PC搭建JXTA分布式系統(tǒng)。節(jié)點(diǎn)之間地位平等、無(wú)主次之分。每個(gè)節(jié)點(diǎn)都可能成為項(xiàng)目主管用戶和普通用戶。
實(shí)驗(yàn)1:用戶單次輸入文件的大小為32 KB,每個(gè)文件分割為10個(gè)文件塊,CSP和授權(quán)用戶(激活)每成功接收5個(gè)IB即創(chuàng)建1個(gè)區(qū)塊文件,實(shí)驗(yàn)過(guò)程中用戶輸入的文件數(shù)量依次為50、100、150、200個(gè),記錄每次文件輸入后的審計(jì)時(shí)間并與第三方審計(jì)[8-10]方案的用時(shí)進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如表1所示。
表1 不同輸入文件數(shù)量條件下2種方案用時(shí)對(duì)比
實(shí)驗(yàn)2:用戶輸入文件數(shù)量為200個(gè),文件分割為10個(gè)文件塊,CSP和授權(quán)用戶(激活)每成功接收5個(gè)IB即創(chuàng)建1個(gè)區(qū)塊文件,實(shí)驗(yàn)過(guò)程中用戶輸入的文件大小依次為32、64、128、256 KB,記錄每次文件輸入后的審計(jì)時(shí)間并與第三方審計(jì)方案的用時(shí)進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如表1所示。
由表1的數(shù)據(jù)可見(jiàn):在文件大小固定的條件下,隨著用戶輸入文件數(shù)量的增加,2種方案各自的審計(jì)用時(shí)變化不大,但本文模型的審計(jì)用時(shí)比TPA方案縮短很多;在文件數(shù)量固定的條件下,隨著用戶輸入文件大小的遞增,2種方案各自的審計(jì)用時(shí)均逐漸延長(zhǎng),但本文模型的審計(jì)用時(shí)仍比TPA方案短,且兩者差異極其明顯。
實(shí)驗(yàn)3:用戶單次輸入文件的大小為32 KB,每個(gè)文件分割為10個(gè)文件塊,CSP和授權(quán)用戶(激活)每成功接收5個(gè)IB即創(chuàng)建1個(gè)區(qū)塊文件,授權(quán)用戶和普通用戶各自依次輸入200、400、800個(gè)數(shù)據(jù)文件,授權(quán)用戶(激活)依次完成40、80、160次審計(jì)操作。普通用戶的網(wǎng)絡(luò)通信主要包括向CSP發(fā)送數(shù)據(jù)和向授權(quán)用戶(激活)發(fā)送元數(shù)據(jù);授權(quán)用戶(激活)的網(wǎng)絡(luò)通信主要包括向CSP發(fā)送數(shù)據(jù)、其自身生成元數(shù)據(jù)以及區(qū)塊簽署與審計(jì)過(guò)程中的數(shù)據(jù)傳輸;CSP的網(wǎng)絡(luò)通信僅為接收審計(jì)要求后證據(jù)的傳送。在第三方審計(jì)方案中,用戶依次分2 000、4 000、8 000次輸入大小為32 KB的數(shù)據(jù)文件,分別完成40、80、160次審計(jì)操作。2種審計(jì)方案的總體網(wǎng)絡(luò)通信量對(duì)比結(jié)果,如表2所示。
表2 2種方案的總體通信量對(duì)比
由表2數(shù)據(jù)可見(jiàn),在用戶發(fā)送相同數(shù)量的文件并達(dá)到同等審計(jì)效果的條件下,本文模型所需的網(wǎng)絡(luò)通信量遠(yuǎn)遠(yuǎn)小于第三方審計(jì)方案,其原因在于本文模型首先對(duì)數(shù)據(jù)文件進(jìn)行聚合處理再集中發(fā)送,因此網(wǎng)絡(luò)傳輸?shù)膶?shí)際數(shù)據(jù)量大大減少,有效減輕了網(wǎng)絡(luò)通信的負(fù)載。
為了解決項(xiàng)目數(shù)據(jù)審計(jì)中常用的第三方審計(jì)方案所存在的性能差、單點(diǎn)失效、用戶隱私易泄露等問(wèn)題,本文提出了一種基于云技術(shù)的創(chuàng)新型科研項(xiàng)目數(shù)據(jù)審計(jì)系統(tǒng)模型。將用戶輸入的項(xiàng)目數(shù)據(jù)保存在分布式網(wǎng)絡(luò)結(jié)構(gòu)的區(qū)塊鏈上,通過(guò)文件塊信息的讀取向CSP提出驗(yàn)證要求,同時(shí)利用數(shù)據(jù)的盲化處理方法保證用戶隱私的安全性。實(shí)驗(yàn)結(jié)果表明,與第三方審計(jì)方案相比,本文所提出的模型所需審計(jì)時(shí)間更短、通信量更少,對(duì)于云數(shù)據(jù)的完整性審計(jì)具有很強(qiáng)的實(shí)用性。