高艷芳, 姚 蘭, 馬衍崧, 李鳳云
(東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 遼寧 沈陽(yáng) 110169)
無(wú)線體域網(wǎng)(wireless body area network,WBAN)是以人體為中心的小型網(wǎng)絡(luò)[1].WBAN通過(guò)在人體的皮膚表面、衣物、人體周圍嵌入的傳感器節(jié)點(diǎn)收集人體生理信息.WBAN收集的人體血壓、心電、體溫、腦電波甚至血液參數(shù)等各種信息,被視為個(gè)人敏感數(shù)據(jù)[2],這些數(shù)據(jù)被醫(yī)院、學(xué)校、政府部門、疾病研究機(jī)構(gòu)等許多行業(yè)使用.隨著WBAN的發(fā)展,WBAN產(chǎn)生了大量的數(shù)據(jù),但WBAN節(jié)點(diǎn)的存儲(chǔ)能力有限,將WBAN數(shù)據(jù)上傳到云服務(wù)器存儲(chǔ)可以解決WBAN不能存儲(chǔ)大量數(shù)據(jù)的問(wèn)題[3-4].
WBAN數(shù)據(jù)上傳到云存儲(chǔ)服務(wù)器時(shí),數(shù)據(jù)被多用戶共享,數(shù)據(jù)不再是本地存儲(chǔ)和計(jì)算,完全受控于云服務(wù)器,使得存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)面臨著以下嚴(yán)重的安全挑戰(zhàn).
1) 數(shù)據(jù)在上傳到云服務(wù)器的過(guò)程中,可能受到惡意的攔截和篡改.
2) 人體參數(shù)的各項(xiàng)數(shù)據(jù)通常具有隱私性,數(shù)據(jù)存儲(chǔ)在云上時(shí),需要保證數(shù)據(jù)對(duì)云存儲(chǔ)服務(wù)商的不可見,否則云存儲(chǔ)服務(wù)商可能會(huì)對(duì)數(shù)據(jù)惡意傳播,數(shù)據(jù)隱私性將遭到破壞.
3) 假設(shè)云存儲(chǔ)服務(wù)商不可信,可能由于自身利益等原因,對(duì)云服務(wù)器上使用頻率低的數(shù)據(jù)進(jìn)行修改和刪除,使數(shù)據(jù)的完整性遭到破壞.
4) 對(duì)于未授權(quán)的機(jī)構(gòu)要避免其訪問(wèn)數(shù)據(jù).云存儲(chǔ)數(shù)據(jù)由于多方共享,授權(quán)的不同機(jī)構(gòu)對(duì)數(shù)據(jù)處理有著不同的要求,如何多方協(xié)調(diào)處理數(shù)據(jù),避免單獨(dú)機(jī)構(gòu)在未經(jīng)多方同意的情況下修改數(shù)據(jù)也是當(dāng)前面臨的重要問(wèn)題之一.
區(qū)塊鏈技術(shù)革命性地解決了“拜占庭將軍問(wèn)題”,具有不可更改、不可偽造、完全可追溯的安全特性,實(shí)現(xiàn)了一種無(wú)信任的共識(shí)網(wǎng)絡(luò)系統(tǒng)[5-6].區(qū)塊鏈系統(tǒng)一般由應(yīng)用層、合約層、激勵(lì)層、共識(shí)層、網(wǎng)絡(luò)層、數(shù)據(jù)層等5個(gè)部分組成[7].區(qū)塊鏈技術(shù)具有分布式存儲(chǔ)和共識(shí)機(jī)制,對(duì)于解決訪問(wèn)控制和完整性驗(yàn)證兩方面的安全問(wèn)題都具有優(yōu)勢(shì).
針對(duì)數(shù)據(jù)的訪問(wèn)控制問(wèn)題,基于區(qū)塊鏈技術(shù)設(shè)計(jì)了如圖1所示的訪問(wèn)控制框架.框架中有數(shù)據(jù)上傳者(DUP)、數(shù)據(jù)訪問(wèn)者(DAP)、數(shù)據(jù)操作授權(quán)中心(DAAC)、區(qū)塊鏈網(wǎng)絡(luò)(BCN)、云存儲(chǔ)服務(wù)商(CSSP)等5種角色.BCN邏輯上是由集合U={U1,U2,U3,…,Un}構(gòu)成的區(qū)塊鏈網(wǎng)絡(luò);物理上,Ui是已經(jīng)被DAAC授予云存儲(chǔ)服務(wù)的用戶節(jié)點(diǎn),Ui使用區(qū)塊鏈存儲(chǔ)訪問(wèn)請(qǐng)求,Ui具有DUP和DAP的雙重身份,能夠進(jìn)行數(shù)據(jù)上傳和訪問(wèn),Ui可提出訪問(wèn)請(qǐng)求、進(jìn)行訪問(wèn)控制和驗(yàn)證BCN對(duì)訪問(wèn)請(qǐng)求的控制結(jié)果.
在本框架中,各節(jié)點(diǎn)密鑰的生成及簽名方式,采用無(wú)可信中心的數(shù)字簽名方法[8].密鑰生成首先需要進(jìn)行數(shù)據(jù)初始化,H為一個(gè)單向哈希函數(shù),(P,P′)為兩個(gè)安全的大素?cái)?shù),g為GF(P)階,為P′的生成元,2511
圖1 基于BCN的訪問(wèn)控制框架
各節(jié)點(diǎn)收到訪問(wèn)請(qǐng)求時(shí),生成子簽名,Uj發(fā)送訪問(wèn)請(qǐng)求O到BCN,BCN的用戶節(jié)點(diǎn)Ui查看訪問(wèn)請(qǐng)求O,生成隨機(jī)數(shù)di,并計(jì)算ri=αdi,發(fā)送ri到BCN,表示同意此訪問(wèn)請(qǐng)求.同意訪問(wèn)請(qǐng)求O的用戶節(jié)點(diǎn)構(gòu)成集合U={U1,U2,U3,…,Uw},如果w≥n/2+1表示BCN中超過(guò)50%的節(jié)點(diǎn)同意此訪問(wèn)請(qǐng)求.同意訪問(wèn)請(qǐng)求O的節(jié)點(diǎn)Ui利用自己的密鑰SKi和各個(gè)節(jié)點(diǎn)收到的αfj(Idi)來(lái)生成子簽名,子簽名si如式(1)所示:
(1)
Ui生成子簽名后,選取隨機(jī)數(shù)ki,滿足gcd(ki,P′)=1,并計(jì)算zi,si′,zi=gkimodP,si′=ki-1(si-αfi(0)×zi)modP′,此時(shí)Ui可將消息{O,si,ri,zi,si′}發(fā)送給Uj.Uj收到各節(jié)點(diǎn)發(fā)來(lái)的子簽名后,計(jì)算(R,S),式(2)計(jì)算R,式(3)計(jì)算S.
(2)
(3)
此時(shí)Uj生成自己對(duì)訪問(wèn)請(qǐng)求O的數(shù)字簽名,Uj在區(qū)間[1,P-1]生成隨機(jī)數(shù)ej,計(jì)算lj,zj,lj=gejmodP,zj=(αfj(0)×O′-ej×lj)mod(P-1),其中zi∈[1,P-2],O′=H(O).隨后BCN各節(jié)點(diǎn)可通過(guò)gS≡y(O′)n/2+1×RmodP驗(yàn)證群簽名的真實(shí)性,驗(yàn)證成功,則將訪問(wèn)請(qǐng)求存儲(chǔ)到自己的區(qū)塊中.
BCN中的共識(shí)機(jī)制是通過(guò)改進(jìn)Raft算法實(shí)現(xiàn)的.首先通過(guò)心跳機(jī)制交互信息選取出記賬人(Leader節(jié)點(diǎn)),記賬人隨后通過(guò)區(qū)塊鏈長(zhǎng)度和區(qū)塊鏈中最后一個(gè)區(qū)塊的哈希值進(jìn)行一致性判斷,如果不相同,則進(jìn)行區(qū)塊補(bǔ)充,最終使得各節(jié)點(diǎn)區(qū)塊鏈達(dá)到一致.Leader節(jié)點(diǎn)使得BCN中各個(gè)節(jié)點(diǎn)的區(qū)塊鏈達(dá)到一致后,當(dāng)添加區(qū)塊時(shí),需要BCN各節(jié)點(diǎn)利用區(qū)塊的哈希值對(duì)區(qū)塊進(jìn)行驗(yàn)證,如果BCN中大部分節(jié)點(diǎn)區(qū)塊驗(yàn)證成功,則將區(qū)塊記錄.Leader節(jié)點(diǎn)隨后將區(qū)塊發(fā)送至云存儲(chǔ)服務(wù)器.
在本文設(shè)計(jì)的框架中,BCN中各節(jié)點(diǎn)均可對(duì)請(qǐng)求進(jìn)行投票,協(xié)同控制請(qǐng)求的有效性,并且通過(guò)區(qū)塊記錄請(qǐng)求.BCN中通過(guò)改進(jìn)的Raft算法,使得各節(jié)點(diǎn)的區(qū)塊鏈一致,隨后對(duì)區(qū)塊的真實(shí)性進(jìn)行驗(yàn)證,保證了上傳到云存儲(chǔ)服務(wù)中的區(qū)塊是真實(shí)可信的.
WBAN數(shù)據(jù)上傳到CSSP進(jìn)行存儲(chǔ),WBAN感知數(shù)據(jù)的存儲(chǔ)格式舉例如表1所示.體溫、血氧、心率這些信息是BCN用戶節(jié)點(diǎn)在某一時(shí)刻收集的,數(shù)據(jù)D表示為(數(shù)據(jù)號(hào),用戶號(hào),體溫,血氧,心率).
表1 WBAN感知數(shù)據(jù)格式
CSSP存儲(chǔ)WBAN數(shù)據(jù)是通過(guò)數(shù)組節(jié)點(diǎn)之間數(shù)據(jù)號(hào)的間隔為M的有序數(shù)組和Merkle樹相結(jié)合的方式.有序數(shù)組每個(gè)位置對(duì)應(yīng)1棵Merkle樹,添加數(shù)據(jù)時(shí)只需修改數(shù)組節(jié)點(diǎn)對(duì)應(yīng)的Merkle樹即可;有序數(shù)組節(jié)點(diǎn)存儲(chǔ)的是(數(shù)據(jù)號(hào),Merkle樹根節(jié)點(diǎn)指針),M表示Merkle樹存儲(chǔ)葉子節(jié)點(diǎn)數(shù)量的上限.Mekle樹節(jié)點(diǎn)分為內(nèi)部節(jié)點(diǎn)和葉子節(jié)點(diǎn),內(nèi)部節(jié)點(diǎn)使用的哈希算法為MD5,葉子節(jié)點(diǎn)使用的哈希算法為同態(tài)哈希算法.內(nèi)部節(jié)點(diǎn)包含的信息是(R,哈希值),葉子節(jié)點(diǎn)包含的信息是(R,哈希值,加密數(shù)據(jù)D′),葉子節(jié)點(diǎn)的R為(D′的數(shù)據(jù)號(hào)-對(duì)應(yīng)有序數(shù)組節(jié)點(diǎn)數(shù)據(jù)號(hào)),內(nèi)部節(jié)點(diǎn)的R為子節(jié)點(diǎn)中較大的R.葉子節(jié)點(diǎn)同態(tài)哈希值是使用文獻(xiàn)[9]的同態(tài)哈希算法計(jì)算的.
數(shù)據(jù)D(數(shù)據(jù)號(hào),用戶號(hào),體溫,血氧,心率)經(jīng)過(guò)SHK加密后為數(shù)據(jù)D′(數(shù)據(jù)號(hào),用戶號(hào),SHK(體溫),SHK(血氧),SHK(心率)),SHK為BCN各節(jié)點(diǎn)使用的數(shù)據(jù)共享密鑰用來(lái)加密數(shù)據(jù),數(shù)據(jù)D′的數(shù)據(jù)部分SHK(體溫),SHK(血氧),SHK(心率),這三項(xiàng)數(shù)據(jù)可通過(guò)1×m的矩陣FD表示,由于數(shù)據(jù)號(hào)、用戶號(hào)作為主要唯一標(biāo)識(shí),不對(duì)其進(jìn)行加密,所以初始化m=3,F(xiàn)D表示如式(4)所示:
(4)
其中,修改請(qǐng)求X(數(shù)據(jù)號(hào),SHK(血壓),SHK(體溫),SHK(心率))的數(shù)據(jù)部分可通過(guò)矩陣FX表示,如式(5)所示:
(5)
當(dāng)CSSP處理修改請(qǐng)求X時(shí),根據(jù)X中的數(shù)據(jù)號(hào)找到加密數(shù)據(jù)D′后,計(jì)算D′+X=D″,數(shù)據(jù)部分相加如式(6)所示:
FD+FX=(d1+x1,d2+x2,d3+x3).
(6)
可證明得到hK(FD+FX)=hK(FD)×hK(FX),即算法滿足乘法同態(tài),其中K為同態(tài)哈希密鑰.當(dāng)CSSP設(shè)置M為4時(shí),存儲(chǔ)結(jié)構(gòu)如圖2所示.
圖2 CSSP存儲(chǔ)結(jié)構(gòu)圖
區(qū)塊鏈由區(qū)塊鏈?zhǔn)竭B接而成.區(qū)塊頭部分包含父哈希——上一區(qū)塊哈希值;時(shí)間戳——區(qū)塊確實(shí)存在某一時(shí)刻;Merkle樹根節(jié)點(diǎn)哈?!獏^(qū)塊中的Merkle樹經(jīng)過(guò)運(yùn)算得到的根節(jié)點(diǎn)哈希值;當(dāng)前區(qū)塊哈?!狹D5(父哈希+時(shí)間戳+Merkle樹根節(jié)點(diǎn)哈希).每次區(qū)塊生成時(shí),首先將上一個(gè)區(qū)塊的哈希作為父哈希,然后計(jì)算當(dāng)前區(qū)塊哈希,通過(guò)父哈希與上一個(gè)區(qū)塊相連,形成鏈?zhǔn)浇Y(jié)構(gòu).
區(qū)塊體包含Merkle樹——當(dāng)要將區(qū)塊加入到區(qū)塊鏈中時(shí),通過(guò)哈希表中存儲(chǔ)的訪問(wèn)請(qǐng)求生成Merkle樹;哈希表——訪問(wèn)請(qǐng)求經(jīng)過(guò)BCN驗(yàn)證成功后將被放入到區(qū)塊的哈希表;認(rèn)證路徑數(shù)組——Merkle樹葉子節(jié)點(diǎn)的認(rèn)證路徑的二維數(shù)組表示.Merkle樹的葉子節(jié)點(diǎn)存儲(chǔ)訪問(wèn)請(qǐng)求.初始區(qū)塊被稱為創(chuàng)世區(qū)塊,即每個(gè)BCN用戶節(jié)點(diǎn)區(qū)塊鏈的第一個(gè)區(qū)塊.其中Merkle樹為空,父哈希值為空,時(shí)間戳為BCN統(tǒng)一規(guī)定的時(shí)間,哈希值為MD5算法處理時(shí)間戳后得到的哈希值.區(qū)塊鏈結(jié)構(gòu)如圖3所示.
圖3 區(qū)塊鏈結(jié)構(gòu)
針對(duì)BCN的區(qū)塊結(jié)構(gòu)和CSSP存儲(chǔ)WBAN數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),利用同態(tài)哈希算法的同態(tài)特性對(duì)上傳到CSSP的WBAN數(shù)據(jù)進(jìn)行完整性驗(yàn)證.本文中,由于BCN用戶節(jié)點(diǎn)均存儲(chǔ)訪問(wèn)請(qǐng)求,BCN用戶節(jié)點(diǎn)不需要委托可信第三方,即可對(duì)數(shù)據(jù)進(jìn)行完整性驗(yàn)證,同時(shí)支持?jǐn)?shù)據(jù)的動(dòng)態(tài)操作.
1) 數(shù)據(jù)完整性驗(yàn)證模型. 數(shù)據(jù)完整性驗(yàn)證模型中的角色有上傳節(jié)點(diǎn)Uj使用密鑰SHK加密數(shù)據(jù),使用同態(tài)哈希密鑰K生成加密數(shù)據(jù)的哈希值,BCN驗(yàn)證節(jié)點(diǎn)Ui隨機(jī)選取數(shù)據(jù)號(hào),進(jìn)行數(shù)據(jù)驗(yàn)證,CSSP存儲(chǔ)加密數(shù)據(jù),BCN節(jié)點(diǎn)Uk返回認(rèn)證路徑,保證修改請(qǐng)求的可靠性.數(shù)據(jù)驗(yàn)證模型如圖4所示.
圖4 完整性驗(yàn)證模型
2) 數(shù)據(jù)完整性驗(yàn)證方案.數(shù)據(jù)完整性驗(yàn)證方案由生成密鑰(KeyGen),標(biāo)簽生成(TagBlock),挑戰(zhàn)(Challenge),證據(jù)生成(ProofGen)和證據(jù)驗(yàn)證(Verify)5部分組成,說(shuō)明如下:
① 密鑰生成階段:密鑰生成算法DAAC采用同態(tài)加密算法Paillier完成對(duì)密鑰(PHK,SHK)的生成;
② 標(biāo)簽生成階段:數(shù)據(jù)上傳時(shí),上傳節(jié)點(diǎn)對(duì)加密后的數(shù)據(jù)D′進(jìn)行同態(tài)哈希運(yùn)算,生成標(biāo)簽hK(D′).云存儲(chǔ)服務(wù)器對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),生成標(biāo)簽PD(PD1,PD2,PD3,…),PD為在CSSP存儲(chǔ)結(jié)構(gòu)中數(shù)據(jù)D′的Merkle樹的認(rèn)證路徑.BCN用戶節(jié)點(diǎn)Uk存儲(chǔ)修改請(qǐng)求X時(shí),生成標(biāo)簽hK(X),PX(PX1,PX2,PX3,…),PX為修改請(qǐng)求X在區(qū)塊結(jié)構(gòu)的Merkle樹中的認(rèn)證路徑;
③ 挑戰(zhàn)階段:驗(yàn)證節(jié)點(diǎn)Ui選取數(shù)據(jù)號(hào)NM,并發(fā)送NM到數(shù)據(jù)上傳節(jié)點(diǎn)Uj,Uk,CSSP;
④ 證據(jù)生成階段:CSSP收到NM后,查找標(biāo)簽PD(PD1,PD2,PD3,…),將PD發(fā)回到Ui,上傳節(jié)點(diǎn)Uj收到NM后,查找標(biāo)簽hK(D′),將hK(D′)發(fā)回給Ui,BCN用戶節(jié)點(diǎn)Uik收到NM時(shí),查找修改請(qǐng)求數(shù)據(jù)號(hào)為NM認(rèn)證路徑PX,發(fā)送PX到Ui;
⑤ 證據(jù)驗(yàn)證階段:驗(yàn)證節(jié)點(diǎn)Ui收到PX后,Uk可驗(yàn)證查找的標(biāo)簽hK(X)是否可靠.假設(shè)PX是3維向量(PX1,PX2,PX3),PX3為區(qū)塊中Merkle樹根哈希,通過(guò)式(7)驗(yàn)證PX是否正確.
PX3=MD5(MD5(hK(X)+PX1)+PX2).
(7)
如果式(7)成立,說(shuō)明Ui查找的請(qǐng)求標(biāo)簽hK(X)正確,隨后對(duì)數(shù)據(jù)完整性進(jìn)行驗(yàn)證,假設(shè)PD是三維向量(PD1,PD2,PD3),PD3為CSSP存儲(chǔ)結(jié)構(gòu)中Merkle樹根哈希,通過(guò)式(8)可對(duì)數(shù)據(jù)完整性進(jìn)行驗(yàn)證.
PD3=MD5(MD5(hK(X)×hK(D′)+PD1)+PD2).
(8)
如果式(8)成立,說(shuō)明CSSP存儲(chǔ)的數(shù)據(jù)沒(méi)有被惡意篡改,數(shù)據(jù)完整.
本文設(shè)計(jì)的框架主要是保證BCN用戶節(jié)點(diǎn)能夠協(xié)同控制對(duì)云存儲(chǔ)數(shù)據(jù)的訪問(wèn),保證云存儲(chǔ)數(shù)據(jù)的安全.下面針對(duì)框架的訪問(wèn)控制能力進(jìn)行實(shí)驗(yàn)和安全分析,并對(duì)本文提出的數(shù)據(jù)完整性驗(yàn)證方案進(jìn)行評(píng)估.
3.1.1 實(shí)驗(yàn)環(huán)境
本文的編程軟件主要使用了Pycharm,以Linux系統(tǒng)為平臺(tái),通過(guò)Docker容器模擬分布式環(huán)境的搭建,編程語(yǔ)言采用Python,通過(guò)Redis數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ).
3.1.2 實(shí)驗(yàn)數(shù)據(jù)
本文的實(shí)驗(yàn)數(shù)據(jù)集使用的是已經(jīng)脫敏的北京市某醫(yī)院通過(guò)WBAN采集的病人生理信息數(shù)據(jù),其數(shù)據(jù)構(gòu)成如表2所示.
表2 人體生理數(shù)據(jù)
表2所示的是部分病人的身體信息,由于這些數(shù)據(jù)只是單點(diǎn)采集,而本文討論的是多個(gè)節(jié)點(diǎn)收集的WBAN感知數(shù)據(jù)的云存儲(chǔ),所以針對(duì)分布式的環(huán)境對(duì)數(shù)據(jù)格式進(jìn)行了調(diào)整(格式見表1),其中用戶號(hào)表示收集、使用數(shù)據(jù)節(jié)點(diǎn)節(jié)點(diǎn)號(hào),數(shù)據(jù)號(hào)為數(shù)據(jù)在云存儲(chǔ)中的唯一表示.
數(shù)據(jù)隱私性:BCN各節(jié)點(diǎn)將數(shù)據(jù)上傳到CSSP時(shí),利用共享密鑰SHK對(duì)數(shù)據(jù)進(jìn)行加密,保證數(shù)據(jù)對(duì)CSSP不可見.
抗單點(diǎn)安全:本文設(shè)計(jì)的框架保證了BCN用戶節(jié)點(diǎn)提出的訪問(wèn)請(qǐng)求被多個(gè)BCN用戶節(jié)點(diǎn)的協(xié)同控制,通過(guò)無(wú)可信中心的門限簽名方法實(shí)現(xiàn)了控制權(quán)限的分配,訪問(wèn)請(qǐng)求只有通過(guò)BCN網(wǎng)絡(luò)中大多數(shù)節(jié)點(diǎn)的同意才能被CSSP處理.
問(wèn)責(zé)機(jī)制:BCN用戶節(jié)點(diǎn)提出訪問(wèn)請(qǐng)求時(shí)需要進(jìn)行數(shù)字簽名,訪問(wèn)請(qǐng)求經(jīng)過(guò)多數(shù)BCN用戶節(jié)點(diǎn)同意后,需要將訪問(wèn)請(qǐng)求和數(shù)字簽名一起存儲(chǔ)到區(qū)塊中.通過(guò)數(shù)字簽名可以知道BCN網(wǎng)絡(luò)中的哪個(gè)用戶節(jié)點(diǎn)提出的訪問(wèn)請(qǐng)求.
區(qū)塊驗(yàn)證:BCN采用改進(jìn)的Raft算法,Leader節(jié)點(diǎn)維護(hù)BCN各用戶節(jié)點(diǎn)區(qū)塊鏈的一致,如果Leader節(jié)點(diǎn)偽造訪問(wèn)請(qǐng)求,則區(qū)塊無(wú)法通過(guò)BCN其他用戶節(jié)點(diǎn)的驗(yàn)證,驗(yàn)證失敗,Leader節(jié)點(diǎn)自動(dòng)放棄記賬權(quán).區(qū)塊驗(yàn)證保證了BCN網(wǎng)絡(luò)中Leader節(jié)點(diǎn)無(wú)法偽造訪問(wèn)請(qǐng)求,BCN用戶節(jié)點(diǎn)驗(yàn)證區(qū)塊的基礎(chǔ)是節(jié)點(diǎn)區(qū)塊鏈長(zhǎng)度保持一致,圖5為BCN在選舉出Leader節(jié)點(diǎn)后,BCN各節(jié)點(diǎn)區(qū)塊鏈長(zhǎng)度隨著時(shí)間的變化情況.
圖5表明在Leader選舉后的100 ms內(nèi),就能保證BCN各節(jié)點(diǎn)區(qū)塊鏈的一致.BCN節(jié)點(diǎn)區(qū)塊鏈長(zhǎng)度一致,說(shuō)明各節(jié)點(diǎn)均參與了訪問(wèn)控制.結(jié)果表明,設(shè)計(jì)的框架能夠有效地保證數(shù)據(jù)的隱私性、訪問(wèn)請(qǐng)求的合理性,惡意的訪問(wèn)請(qǐng)求和未授權(quán)的訪問(wèn)請(qǐng)求均不能對(duì)云存儲(chǔ)的數(shù)據(jù)加以訪問(wèn),并且方便了追蹤問(wèn)責(zé).
圖5 一致性維護(hù)
在數(shù)據(jù)完整性驗(yàn)證的實(shí)驗(yàn)中,選取了多個(gè)節(jié)點(diǎn)對(duì)多條數(shù)據(jù)進(jìn)行完整性驗(yàn)證,并對(duì)完整性驗(yàn)證結(jié)果進(jìn)行統(tǒng)計(jì).圖6是BCN用戶節(jié)點(diǎn)對(duì)隨機(jī)選取數(shù)據(jù)號(hào)進(jìn)行完整性驗(yàn)證的結(jié)果,其中圓形節(jié)點(diǎn)表示驗(yàn)證成功,菱形節(jié)點(diǎn)表示驗(yàn)證失敗.實(shí)驗(yàn)結(jié)果表明,不同BCN用戶節(jié)點(diǎn)對(duì)數(shù)據(jù)的完整性驗(yàn)證結(jié)果一致,表明完整性驗(yàn)證方案支持各用戶均能進(jìn)行完整性驗(yàn)證.
圖6 BCN節(jié)點(diǎn)的數(shù)據(jù)完整性驗(yàn)證
針對(duì)WBAN數(shù)據(jù)存儲(chǔ)在云服務(wù)器中存在的諸多安全問(wèn)題,本文設(shè)計(jì)了基于區(qū)塊鏈技術(shù)的訪問(wèn)控制框架,限制了多用戶對(duì)云存儲(chǔ)中WBAN感知數(shù)據(jù)的訪問(wèn),之后在框架的基礎(chǔ)上提出了數(shù)據(jù)完整性驗(yàn)證方案.最后,對(duì)框架的安全性進(jìn)行了實(shí)驗(yàn)和分析,并對(duì)所提出的數(shù)據(jù)完整性驗(yàn)證方案進(jìn)行了實(shí)驗(yàn)評(píng)估,實(shí)驗(yàn)分析結(jié)果表明了方案的正確性、可行性,具有一定的理論和實(shí)用價(jià)值.