劉秋明, 許澤峣, 姚哲鑫, 謝敏, 朱松挺
(1.江西理工大學(xué)軟件工程學(xué)院, 南昌 330013; 2.南昌市虛擬數(shù)字工廠(chǎng)與文化傳播重點(diǎn)實(shí)驗(yàn)室, 南昌 330013;3.江西省防汛信息中心, 南昌 330009)
隨著互聯(lián)網(wǎng)時(shí)代和數(shù)字社會(huì)的到來(lái),全球各地以及各行各業(yè)都在積極進(jìn)行數(shù)字化轉(zhuǎn)型,而區(qū)塊鏈作為一種新興的互聯(lián)網(wǎng)信息技術(shù),在全球各種應(yīng)用中的普及程度正在激增,為水利行業(yè)的數(shù)字轉(zhuǎn)型、技術(shù)集成和創(chuàng)新應(yīng)用帶來(lái)了新的發(fā)展機(jī)遇和挑戰(zhàn)[1]。2020年3月,水利部發(fā)布的《水利部關(guān)于開(kāi)展智慧水利先行先試工作的通知》指出[2],加強(qiáng)在不同流域和區(qū)域先行開(kāi)展水利業(yè)務(wù)與物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)、區(qū)塊鏈等技術(shù)深度融合,推動(dòng)全國(guó)智慧水利快速健康發(fā)展。2021年6月,水利部印發(fā)了《關(guān)于加快推進(jìn)智慧水利的指導(dǎo)意見(jiàn)》[3],明確在未來(lái)的一段時(shí)間將大力推進(jìn)水利工作的智能化發(fā)展。
中國(guó)智慧水利信息多采用物聯(lián)網(wǎng)傳感器采集數(shù)據(jù),水利數(shù)據(jù)呈現(xiàn)監(jiān)測(cè)數(shù)據(jù)多樣、數(shù)據(jù)量大、更新頻率快以及跨部門(mén)使用頻次高等特點(diǎn)[4]。技術(shù)發(fā)展帶來(lái)海量數(shù)據(jù)的同時(shí)也暴露出一些明顯的行業(yè)短板,數(shù)據(jù)不精確限制數(shù)據(jù)分析提供的決策,未實(shí)現(xiàn)統(tǒng)一、分類(lèi)、分層管理而導(dǎo)致數(shù)據(jù)“孤島”問(wèn)題,以及水利數(shù)據(jù)價(jià)值認(rèn)知度低[5]。水利數(shù)據(jù)的價(jià)值最大化是現(xiàn)階段研究的最終目標(biāo),而高效安全的水利數(shù)據(jù)訪(fǎng)問(wèn)是實(shí)現(xiàn)這一目標(biāo)的基本保障。Qian等[6]借助浙江省水利數(shù)字化轉(zhuǎn)型總技術(shù)框架,設(shè)計(jì)了集整合、開(kāi)發(fā)、處理以及服務(wù)為一體的水利數(shù)據(jù)中間平臺(tái),實(shí)現(xiàn)省、市、縣業(yè)務(wù)協(xié)同,打破水利數(shù)據(jù)物理孤島,但文獻(xiàn)未對(duì)設(shè)計(jì)的數(shù)據(jù)平臺(tái)進(jìn)行模擬實(shí)驗(yàn),僅從功能性角度進(jìn)行理論上的評(píng)估和探討。陳根發(fā)等[7]利用區(qū)塊鏈技術(shù)的特點(diǎn),提出解決水利數(shù)據(jù)交互過(guò)程中的信任、管理、交互等難的技術(shù)方案,并就區(qū)塊鏈結(jié)合水資源管理提出建議,但該文獻(xiàn)僅從理論角度探討了區(qū)塊鏈在水資源管理中的應(yīng)用前景,并未結(jié)合區(qū)塊鏈技術(shù)開(kāi)展實(shí)際研究。鄒秀清等[8]利用超級(jí)賬本技術(shù)搭建“河長(zhǎng)制”水質(zhì)信息系統(tǒng),將水質(zhì)信息直接保存在區(qū)塊鏈中,實(shí)現(xiàn)信息的防篡改以及溯源功能,系統(tǒng)能夠保持良好的運(yùn)行性能。但該研究未考慮區(qū)塊鏈存儲(chǔ)能力有限的缺點(diǎn),若水質(zhì)數(shù)據(jù)量超過(guò)存儲(chǔ)界限,系統(tǒng)性能會(huì)急劇下降。從上述有關(guān)水利數(shù)據(jù)的研究中可以發(fā)現(xiàn),水利行業(yè)已經(jīng)開(kāi)始邁入數(shù)據(jù)時(shí)代,區(qū)塊鏈技術(shù)已融入水利數(shù)據(jù)領(lǐng)域,但領(lǐng)域整體的數(shù)字信息化水平與先進(jìn)技術(shù)之間還具有一定的距離。
區(qū)塊鏈作為近段時(shí)間來(lái)頻頻被提及的熱門(mén)技術(shù),憑借其顯著的去中心化、數(shù)據(jù)共享優(yōu)勢(shì),已在金融、醫(yī)療等領(lǐng)域具有良好的應(yīng)用。雖然區(qū)塊鏈存在存儲(chǔ)容量有限、數(shù)據(jù)隱私保護(hù)以及數(shù)據(jù)訪(fǎng)問(wèn)控制等問(wèn)題,但若能夠結(jié)合其他技術(shù)工具針對(duì)性地加以改進(jìn),取長(zhǎng)補(bǔ)短,區(qū)塊鏈具有更廣泛的應(yīng)用場(chǎng)景。張國(guó)潮等[9]針對(duì)區(qū)塊鏈存在的存儲(chǔ)問(wèn)題,提出了一種利用改進(jìn)Shamir門(mén)限秘密共享分片存儲(chǔ)模型,將數(shù)據(jù)分成n片存儲(chǔ)于n個(gè)不同驗(yàn)證節(jié)點(diǎn),僅利用k個(gè)節(jié)點(diǎn)即可完成數(shù)據(jù)復(fù)原,節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)量?jī)H為傳統(tǒng)方法的1/(k-1),減少了數(shù)據(jù)存儲(chǔ)量且保證數(shù)據(jù)的隱私性、安全性。該模型雖然解決了區(qū)塊鏈存儲(chǔ)能力問(wèn)題,但對(duì)于數(shù)據(jù)的訪(fǎng)問(wèn)控制方面的研究有所欠缺。葛紀(jì)紅等[10]提出了一種支持屬性加密外包的能源數(shù)據(jù)訪(fǎng)問(wèn)控制模型,結(jié)合外包的屬性加密和區(qū)塊鏈多鏈結(jié)構(gòu),實(shí)現(xiàn)能源數(shù)據(jù)的隔離,且避免數(shù)據(jù)孤島問(wèn)題。該模型雖然采用的屬性基加密能夠?qū)崿F(xiàn)更高細(xì)粒度的訪(fǎng)問(wèn)控制,但是其將加密文件保存在本地?cái)?shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)交互效率大大降低。同時(shí),在加密文件預(yù)解密的過(guò)程中會(huì)占用更多節(jié)點(diǎn)資源。蘆效峰等[11]提出屬性基加密與區(qū)塊鏈結(jié)合的訪(fǎng)問(wèn)控制方案,利用分布式存儲(chǔ),解決區(qū)塊鏈存儲(chǔ)瓶頸。但該方案的密鑰分發(fā)工作完全由一個(gè)授權(quán)中心承擔(dān),造成授權(quán)中心負(fù)擔(dān)過(guò)重。王海勇等[12]設(shè)計(jì)了一種基于區(qū)塊鏈和用戶(hù)信用度的訪(fǎng)問(wèn)控制(role-based access control based on blockchain and user credit, BC-RBAC)模型,以區(qū)塊鏈為基礎(chǔ)結(jié)合用戶(hù)信用度計(jì)算,實(shí)現(xiàn)用戶(hù)角色級(jí)別的訪(fǎng)問(wèn)控制,文獻(xiàn)根據(jù)角色訪(fǎng)問(wèn)不同的權(quán)限,提升了訪(fǎng)問(wèn)權(quán)限管理的動(dòng)態(tài)性,同時(shí)融入信用度評(píng)估保障模型運(yùn)行的安全性。張杰等[13]針對(duì)物聯(lián)網(wǎng)邊緣節(jié)點(diǎn)與海量異構(gòu)設(shè)備的動(dòng)態(tài)接入問(wèn)題,設(shè)計(jì)了一種基于區(qū)塊鏈與邊緣計(jì)算的物聯(lián)網(wǎng)訪(fǎng)問(wèn)控制模型,結(jié)合區(qū)塊鏈智能合約,實(shí)現(xiàn)了物聯(lián)網(wǎng)數(shù)據(jù)的有效訪(fǎng)問(wèn)控制和管理。但該方案僅使用非對(duì)稱(chēng)加密算法加密數(shù)據(jù),當(dāng)數(shù)據(jù)量大時(shí)會(huì)快速消耗系統(tǒng)資源,加解密效率較低,且不同實(shí)體間的密鑰管理也會(huì)帶來(lái)挑戰(zhàn)。王靜宇等[14]提出了一種基于區(qū)塊鏈和策略分級(jí)的訪(fǎng)問(wèn)控制模型,利用智能合約實(shí)現(xiàn)用戶(hù)訪(fǎng)問(wèn)控制權(quán)限的動(dòng)態(tài)分級(jí),提高了訪(fǎng)問(wèn)控制的效率、靈活性和安全性。但該方案未實(shí)現(xiàn)細(xì)粒度的用戶(hù)行為評(píng)估,用戶(hù)當(dāng)前信用度需由一段時(shí)間的歷史行為累積確認(rèn),無(wú)法對(duì)用戶(hù)惡意行為實(shí)現(xiàn)及時(shí)監(jiān)測(cè)和快速響應(yīng)。
綜合現(xiàn)有文獻(xiàn)對(duì)區(qū)塊鏈訪(fǎng)問(wèn)控制的研究,現(xiàn)針對(duì)以上研究的不足進(jìn)行改進(jìn)和完善,在水利領(lǐng)域應(yīng)用區(qū)塊鏈技術(shù),采用多鏈架構(gòu),提出融合屬性基加密和信用度的水利數(shù)據(jù)訪(fǎng)問(wèn)控制模型,具體的,提出對(duì)稱(chēng)加密與屬性基加密結(jié)合的加密方法。數(shù)據(jù)對(duì)稱(chēng)加密后經(jīng)星際文件系統(tǒng)(interplanetary file system, IPFS)分布式存儲(chǔ),提升交互效率與避免單點(diǎn)故障問(wèn)題。利用屬性加密策略加密對(duì)稱(chēng)密鑰,將加密后的密鑰存儲(chǔ)至區(qū)塊鏈,通過(guò)管理對(duì)稱(chēng)密鑰實(shí)現(xiàn)數(shù)據(jù)訪(fǎng)問(wèn)控制,提升數(shù)據(jù)加解密效率與訪(fǎng)問(wèn)的安全性。提出將用戶(hù)分層的信用度評(píng)估模型。利用用戶(hù)行為檢測(cè)值計(jì)算用戶(hù)信用度,區(qū)分不同信用值層級(jí)用戶(hù)的操作權(quán)限,對(duì)用戶(hù)行為進(jìn)行細(xì)粒度的加權(quán)分類(lèi),及時(shí)阻止惡意操作,實(shí)現(xiàn)動(dòng)態(tài)訪(fǎng)問(wèn)權(quán)限控制。針對(duì)水利數(shù)據(jù)多部門(mén)協(xié)同共享的訪(fǎng)問(wèn)需求,提出數(shù)據(jù)鏈與訪(fǎng)問(wèn)鏈結(jié)合的多鏈架構(gòu)。采用公證人跨鏈技術(shù),實(shí)現(xiàn)不同部門(mén)之間的數(shù)據(jù)隔離、跨部門(mén)數(shù)據(jù)訪(fǎng)問(wèn)控制,對(duì)跨鏈訪(fǎng)問(wèn)請(qǐng)求記錄留痕,提升系統(tǒng)安全性和透明性。
區(qū)塊鏈由區(qū)塊構(gòu)成,后一個(gè)區(qū)塊保存前一個(gè)區(qū)塊的哈希值,構(gòu)成一條完整的鏈?zhǔn)浇Y(jié)構(gòu)。區(qū)塊的本質(zhì)為一個(gè)賬本,由區(qū)塊頭和區(qū)塊體構(gòu)成,區(qū)塊頭主要存儲(chǔ)區(qū)塊號(hào)、區(qū)塊哈希值、前一個(gè)區(qū)塊哈希值和時(shí)間戳等;區(qū)塊體主要存儲(chǔ)交易記錄、數(shù)字簽名等[15]。水利數(shù)據(jù)在實(shí)際應(yīng)用中具有一定的行業(yè)門(mén)檻,為合理保護(hù)數(shù)據(jù)的隱私,選擇基于超級(jí)賬本(hyperledger fabric)應(yīng)用框架的聯(lián)盟鏈作為模型基礎(chǔ),該框架具有一定的去中心化特性[16],其通道維護(hù)各自的賬本,能夠保障數(shù)據(jù)的隔離與隱私。
星際文件系統(tǒng)(IPFS)是一種分布式文件系統(tǒng)[17],通過(guò)多節(jié)點(diǎn)備份原數(shù)據(jù),避免出現(xiàn)單機(jī)故障問(wèn)題。IPFS網(wǎng)絡(luò)將數(shù)據(jù)保存在256 KB的數(shù)據(jù)塊中,若數(shù)據(jù)文件大于256 KB,則分割后存儲(chǔ),對(duì)同一文件的數(shù)據(jù)塊進(jìn)行哈希運(yùn)算,組成數(shù)組,再對(duì)數(shù)組進(jìn)行二次哈希運(yùn)算,數(shù)組的哈希值作為最終的文件檢索信息。哈希值與文件信息對(duì)應(yīng),若文件遭遇篡改,則運(yùn)算得到的哈希值與源文件哈希值會(huì)出現(xiàn)較大差異,達(dá)到防篡改的目的。
屬性基加密方法(attribute-based encryption, ABE)首先由Sahai等[18]提出,隨后Bethencourt等[19]提出基于密文策略的屬性加密方法(ciphertext-policy attribute-based encryption, CP-ABE),該方法將訪(fǎng)問(wèn)策略嵌入密文中,將屬性集放入密鑰中,只有當(dāng)訪(fǎng)問(wèn)用戶(hù)的屬性條件滿(mǎn)足訪(fǎng)問(wèn)策略時(shí),才能夠?qū)崿F(xiàn)解密。當(dāng)前屬性基加密有隱藏訪(fǎng)問(wèn)結(jié)構(gòu)、多屬性權(quán)威機(jī)構(gòu)、屬性或用戶(hù)可撤銷(xiāo)等方面的研究[20],其中多屬性中心加密中用戶(hù)屬性集由不同屬性中心管理,且承擔(dān)各自管理用戶(hù)的密鑰分發(fā)工作。各屬性中心向授權(quán)中心注冊(cè)獲得唯一的標(biāo)識(shí)(Aid),初始化生成自己的公私鑰對(duì)。用戶(hù)向各自的屬性中心發(fā)送屬性集,生成屬性私鑰。由于各屬性中心相互獨(dú)立且負(fù)責(zé)的屬性集不同,即使屬性中心合謀也無(wú)法破壞破解加密文件。
水利數(shù)據(jù)在實(shí)際工作中經(jīng)常會(huì)遇到不同區(qū)域、部門(mén)的訪(fǎng)問(wèn)需求,要求能夠有效地對(duì)訪(fǎng)問(wèn)權(quán)限進(jìn)行細(xì)分,實(shí)現(xiàn)細(xì)粒度訪(fǎng)問(wèn)控制;系統(tǒng)的安全控制是另一個(gè)關(guān)注問(wèn)題,要求系統(tǒng)能夠及時(shí)發(fā)現(xiàn)參與用戶(hù)的風(fēng)險(xiǎn)請(qǐng)求,并拒絕風(fēng)險(xiǎn)用戶(hù)的相關(guān)請(qǐng)求。為滿(mǎn)足以上要求,提出基于區(qū)塊鏈的水利數(shù)據(jù)訪(fǎng)問(wèn)控制模型,將屬性基加密算法和用戶(hù)信用度評(píng)估相結(jié)合,實(shí)現(xiàn)更加高效、安全的數(shù)據(jù)訪(fǎng)問(wèn)控制。模型結(jié)構(gòu)如圖1所示,主要由數(shù)據(jù)所有者、數(shù)據(jù)使訪(fǎng)問(wèn)者、數(shù)據(jù)鏈、訪(fǎng)問(wèn)鏈、IPFS分布式網(wǎng)絡(luò)、授權(quán)中心以及屬性中心組組成,其中數(shù)據(jù)所有者既可以上傳數(shù)據(jù),也可以進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)。
Uid為用戶(hù)唯一身份標(biāo)識(shí);Aid為屬性中心唯一標(biāo)識(shí)圖1 水利數(shù)據(jù)訪(fǎng)問(wèn)控制模型Fig.1 Water conservancy data access control mode
數(shù)據(jù)所有者(data owner, DO),代表水利數(shù)據(jù)的所屬部門(mén),是系統(tǒng)中的數(shù)據(jù)上傳者。其在模型中的主要職責(zé)為對(duì)原數(shù)據(jù)進(jìn)行對(duì)稱(chēng)加密,設(shè)置訪(fǎng)問(wèn)策略,以及相應(yīng)的屬性基加密步驟,并將加密數(shù)據(jù)上傳至IPFS系統(tǒng)。最后將數(shù)據(jù)哈希值、IPFS地址哈希值以及訪(fǎng)問(wèn)策略上傳至數(shù)據(jù)鏈。
數(shù)據(jù)訪(fǎng)問(wèn)者(data user, DU),代表需要訪(fǎng)問(wèn)數(shù)據(jù)的用戶(hù),包括水利部門(mén)以及其他職能的政府部門(mén)。若訪(fǎng)問(wèn)用戶(hù)的屬性集滿(mǎn)足需要訪(fǎng)問(wèn)數(shù)據(jù)設(shè)定的訪(fǎng)問(wèn)策略,且用戶(hù)信用度也滿(mǎn)足要求,則能夠進(jìn)行后續(xù)數(shù)據(jù)訪(fǎng)問(wèn)。
數(shù)據(jù)鏈(data blockchain, DB),該區(qū)塊鏈負(fù)責(zé)存儲(chǔ)通道內(nèi)用戶(hù)的數(shù)據(jù)哈希值、IPFS哈希值、數(shù)據(jù)訪(fǎng)問(wèn)策略以及通道內(nèi)用戶(hù)訪(fǎng)問(wèn)信息等信息。
訪(fǎng)問(wèn)鏈(access blockchain, AB),該區(qū)塊鏈負(fù)責(zé)存儲(chǔ)跨通道數(shù)據(jù)訪(fǎng)問(wèn)的信息。由于不同區(qū)域的水利數(shù)據(jù)歸屬權(quán)不同,通道將不同組織的數(shù)據(jù)隔離,組織間用戶(hù)進(jìn)行數(shù)據(jù)交互時(shí),必須通過(guò)中間節(jié)點(diǎn),并在訪(fǎng)問(wèn)鏈上留痕。
IPFS分布式網(wǎng)絡(luò),由于區(qū)塊鏈的存儲(chǔ)能力受限,模型引入IPFS系統(tǒng),能夠有效減少區(qū)塊鏈的存儲(chǔ)負(fù)擔(dān)。數(shù)據(jù)所有者將加密后的數(shù)據(jù)上傳至IPFS系統(tǒng),IPFS返回?cái)?shù)據(jù)的地址哈希值。IPFS地址哈希值最終寫(xiě)入數(shù)據(jù)鏈,實(shí)現(xiàn)鏈上記錄鏈下存儲(chǔ),由于IPFS的存儲(chǔ)原理,可以實(shí)現(xiàn)數(shù)據(jù)的防篡改。
授權(quán)中心(certificate authority, CA),基礎(chǔ)功能為參與用戶(hù)頒發(fā)可信證書(shū)、唯一的Uid以及用戶(hù)身份密鑰。在模型中,授權(quán)中還需生成屬性加密所需的全局參數(shù)以及標(biāo)記各屬性中心的Aid。
屬性中心組(attribute authority, AA),由若干個(gè)屬性中心組成,分別管理下屬用戶(hù)的屬性集。每個(gè)屬性中心有自己的公私鑰對(duì),并在屬性加密過(guò)程中,負(fù)責(zé)生成用戶(hù)的屬性私鑰。
在傳統(tǒng)政務(wù)系統(tǒng)中,文件的訪(fǎng)問(wèn)控制權(quán)往往需要向某個(gè)部門(mén)申請(qǐng),水利數(shù)據(jù)也不例外,因此往往數(shù)據(jù)的訪(fǎng)問(wèn)效率低下,數(shù)據(jù)所有部門(mén)對(duì)文件的控制權(quán)很低。而屬性基加密可以實(shí)現(xiàn)所有權(quán)的細(xì)粒度劃分,并且訪(fǎng)問(wèn)策略由文件所有者設(shè)定,訪(fǎng)問(wèn)效率高。
本模型采用多屬性中心的屬性基加密算法,其基本架構(gòu)如圖2所示。
圖2 屬性基加密架構(gòu)Fig.2 The structure of attribute encryption
主要由授權(quán)中心初始化、屬性中心初始化、屬性密鑰生成、數(shù)據(jù)加密以及數(shù)據(jù)解密5個(gè)步驟構(gòu)成,具體加密算法流程如下。
步驟1授權(quán)中心初始化(CA_Setup):該步驟在CA執(zhí)行,輸入安全參數(shù)c,通過(guò)初始化算法(隨機(jī)化算法)輸出系統(tǒng)的全局唯一參數(shù)GP,即CA_Setup(1c)→(GP)。
步驟2屬性中心初始化(AA_Setup):在屬性中心獲得全局參數(shù)后,輸入全局參數(shù)GP,運(yùn)行隨機(jī)算法,輸出屬性中心的公私鑰對(duì),即AA_Setup(GP)→(APK,ASK)。
步驟3屬性密鑰生成(Key_Prod):該步驟在各屬性中心執(zhí)行,輸入請(qǐng)求用戶(hù)的Uid,屬性集Att,全局參數(shù)GP以及當(dāng)前屬性中心的屬性私鑰ASK,輸出用戶(hù)的私鑰,即Key_Prod(Uid,Att,GP,ASK)→sks,uid。
步驟4數(shù)據(jù)加密(Enc_Data):該步驟由數(shù)據(jù)所有者執(zhí)行,輸入需要加密的數(shù)據(jù)文件D,自定義訪(fǎng)問(wèn)策略(A,ρ),全局參數(shù)GP以及所屬屬性中心的公鑰APK,輸出密文ED,即Enc_Data[D,(A,ρ),GP,APK]→ED。
步驟5數(shù)據(jù)解密(Dec_Data):該步驟由數(shù)據(jù)訪(fǎng)問(wèn)用戶(hù)執(zhí)行,輸入全局參數(shù)GP,密文ED以及用戶(hù)屬性私鑰sks,uid。若私鑰的屬性滿(mǎn)足密文的訪(fǎng)問(wèn)策略,則訪(fǎng)問(wèn)成功讀取到明文D,即Dec_Data(GP,ED,sks,uid)→D。
用戶(hù)的風(fēng)險(xiǎn)行為會(huì)對(duì)系統(tǒng)的穩(wěn)定造成嚴(yán)重威脅,因此,如果能夠檢測(cè)到用戶(hù)的風(fēng)險(xiǎn)操作,阻止后續(xù)行為,能夠避免巨大損失。模型通過(guò)對(duì)每個(gè)參與節(jié)點(diǎn)標(biāo)記信用度來(lái)評(píng)判其是否屬于惡意用戶(hù),若評(píng)判為惡意用戶(hù),則系統(tǒng)應(yīng)拒絕其相關(guān)請(qǐng)求。
2.3.1 信用度計(jì)算模型
采用模糊層次分析法(fuzzy analytic hierarchy process, FAHP),將選擇對(duì)象的行為劃分為若干個(gè)特征,再把每個(gè)特征劃分成有參考意義的多個(gè)因素,經(jīng)過(guò)一系列數(shù)值轉(zhuǎn)換之后,將抽象的用戶(hù)行為轉(zhuǎn)換為明確的數(shù)值加權(quán)問(wèn)題。
為了避免給系統(tǒng)產(chǎn)生額外的壓力,選取方便檢測(cè)、具有代表性的行為因素,再利用FAHP進(jìn)行數(shù)值轉(zhuǎn)換。以圖3為例,將用戶(hù)行為分為3種特征:安全特征S、服務(wù)特征P以及可靠特征R。每種行為特征再劃分成若干種行為因素,安全特征由嘗試越權(quán)訪(fǎng)問(wèn)次數(shù)(負(fù)面)s1以及文件數(shù)據(jù)錯(cuò)誤(負(fù)面)s2組成,服務(wù)特征由水利文件上傳數(shù)p1、區(qū)塊貢獻(xiàn)數(shù)p2以及所屬文件受訪(fǎng)問(wèn)次數(shù)p3組成,可靠特性由資源占用率r1、訪(fǎng)問(wèn)成功數(shù)r2以及上傳無(wú)效文件數(shù)(負(fù)面)r3組成。
圖3 行為特征分類(lèi)Fig.3 Classification of behavior characteristics
步驟1以行為因素作為參照,建立特征矩陣T=[tij]n×m,其中n為特征個(gè)數(shù),m為因素劃分最大個(gè)數(shù),不足m列的行以零值填充。選取n=3,m=3。此時(shí)的數(shù)據(jù)為原始數(shù)據(jù),離散且不確定。若直接作為參數(shù)計(jì)算無(wú)法得出準(zhǔn)確結(jié)果。因此,通過(guò)式(1)對(duì)數(shù)據(jù)需規(guī)范化處理,將離散值轉(zhuǎn)換成值域在[0,1],且單調(diào)遞增的無(wú)量綱值。
f(x)=(ex-e-x)/(ex+e-x)
(1)
步驟2特征矩陣T轉(zhuǎn)化為規(guī)范化特征矩陣E=[eij]n×m后,構(gòu)造初始判斷矩陣EQ。以服務(wù)特征P為例,將其行為因素進(jìn)行兩兩比較得到初始判斷矩陣EQ=[eqij]v×v,其中v為在服務(wù)特征下的因素個(gè)數(shù),取v=3,因素之間的比較規(guī)則為
(2)
步驟3將判斷矩陣轉(zhuǎn)換成模糊判斷一致矩陣。由于研究問(wèn)題的復(fù)雜性以及數(shù)據(jù)收集者認(rèn)識(shí)上的偏差,導(dǎo)致構(gòu)造的判斷矩陣EQ不具有一致性,因此使用式(3)進(jìn)一步將判斷矩陣轉(zhuǎn)換成模糊一致性矩陣Q=[qij]v×v,其中:
(3)
步驟4使用式(4)計(jì)算各行為因素的權(quán)重值,組成所屬特征的行為因素權(quán)重向量W=[w1,w2,…,wv]T,其中:
(4)
按照式(1)~式(4)計(jì)算得到安全特征S的行為因素權(quán)重向量WS=[ws1,ws2]T,服務(wù)特征P的行為因素權(quán)重向量WP=[wp1,wp2,wp3]T,可靠特征R的行為因素權(quán)重向量WR=[wr1,wr2,wr3]T,3個(gè)合成因素權(quán)重矩陣Wd=[WS,WP,WR]n×m=[wij]n×m,其中n為特征個(gè)數(shù),m為因素劃分最大個(gè)數(shù),不足m列的行以零值填充。
步驟5由規(guī)范化特征矩陣E與因素權(quán)重矩陣Wd根據(jù)式(5)計(jì)算得到當(dāng)前信用度。由于選取的行為因素包含
(5)
正面因素與負(fù)面因素,則在總信用度中應(yīng)減去負(fù)面因素,如在本文中,用戶(hù)發(fā)生行為s1時(shí)信用度會(huì)相應(yīng)減小。其中,wfi∈Wf=[wf1,wf2,…,wfn]T,Wf為行為特征的權(quán)重向量,n為特征劃分個(gè)數(shù)。
步驟6用戶(hù)剛進(jìn)入系統(tǒng)時(shí),行為因素值無(wú)法檢測(cè),故用戶(hù)當(dāng)前的用戶(hù)度為0,采用式(6)來(lái)計(jì)算用戶(hù)綜合信用度,即
Final_Value=1+Credit_Value
(6)
通過(guò)式(6)實(shí)現(xiàn)信用度的歸一化,可以得到用戶(hù)剛加入系統(tǒng)時(shí)默認(rèn)信用度為1。
2.3.2 信用數(shù)組
用戶(hù)登入系統(tǒng)后,會(huì)自動(dòng)計(jì)算用戶(hù)的信用度,并將其發(fā)布至區(qū)塊鏈交易池,由區(qū)塊鏈系統(tǒng)中的排序節(jié)點(diǎn)(礦工)負(fù)責(zé)將信用度打包成信用數(shù)組,生成數(shù)據(jù)區(qū)塊,結(jié)構(gòu)如圖4所示。區(qū)塊鏈中交易單以Merkle樹(shù)結(jié)構(gòu)存儲(chǔ),交易單中包括文件數(shù)據(jù)信息,以及信用數(shù)組。信用數(shù)組設(shè)計(jì)為Map數(shù)據(jù)格式,用戶(hù)Uid作為鍵(Key)。
圖4 區(qū)塊數(shù)據(jù)結(jié)構(gòu)Fig.4 Data structure of block
系統(tǒng)運(yùn)行過(guò)程中會(huì)不斷有用戶(hù)加入與離開(kāi),為提高存儲(chǔ)空間利用效率,設(shè)定每隔30個(gè)區(qū)塊,通道清除當(dāng)前所有用戶(hù)的行為因素累計(jì)監(jiān)測(cè)值,調(diào)用智能合約重新計(jì)算用戶(hù)信用度。礦工在交易池進(jìn)行信用度打包時(shí),根據(jù)前一個(gè)區(qū)塊的信用數(shù)組,刪除已經(jīng)離開(kāi)的用戶(hù),組成新的信用數(shù)組。
2.3.3 信用度分級(jí)
為防范用戶(hù)誤操作而導(dǎo)致信用度下降,系統(tǒng)應(yīng)具有一定的容錯(cuò)能力。模型將用戶(hù)分為3個(gè)層級(jí):惡意用戶(hù),信用度小于δ;風(fēng)險(xiǎn)用戶(hù),信用度在δ~1;安全用戶(hù),信用度大于1。其中δ的取值范圍在0~1。
根據(jù)2.3.1節(jié)的信用度評(píng)估模型,選擇1作為信用度分界嶺。若安全用戶(hù)正常操作過(guò)程中,偶然產(chǎn)生負(fù)面行為,信用度會(huì)降低,但高于1,不會(huì)對(duì)其他權(quán)限產(chǎn)生影響。若用戶(hù)產(chǎn)生負(fù)面操作達(dá)到一定次數(shù),導(dǎo)致信用度低于1,但大于δ,系統(tǒng)會(huì)限制該用戶(hù)的上鏈權(quán)限,并且權(quán)威中心將其列入風(fēng)險(xiǎn)列表。風(fēng)險(xiǎn)用戶(hù)仍可進(jìn)行查鏈操作,且可向權(quán)威中心提交身份安全申請(qǐng),審核通過(guò)后可移出風(fēng)險(xiǎn)列表。若用戶(hù)持續(xù)進(jìn)行負(fù)面操作,使得信用度低于δ,系統(tǒng)會(huì)禁止該用戶(hù)的所有權(quán)限,權(quán)威中心將其列入惡意列表,且無(wú)法移除。
2.3.4 信用模型應(yīng)用方案
信用度評(píng)估模型保障系統(tǒng)運(yùn)行的安全,監(jiān)測(cè)用戶(hù)的操作行為,分析了在用戶(hù)在數(shù)據(jù)操作過(guò)程中,信用度模型的具體應(yīng)用。
(1)水利數(shù)據(jù)用戶(hù)初入系統(tǒng)時(shí),無(wú)法評(píng)估其行為因素值,故由2.3.1節(jié)評(píng)估模型計(jì)算得到用戶(hù)信用度值為1,評(píng)判為安全用戶(hù)。系統(tǒng)運(yùn)行過(guò)程中,用戶(hù)信用度隨著與系統(tǒng)的交互產(chǎn)生變化,用戶(hù)信用度值與數(shù)據(jù)信息一起發(fā)布至交易池,并最終由區(qū)塊鏈礦工負(fù)責(zé)打包上鏈。
(2)數(shù)據(jù)用戶(hù)上傳水利數(shù)據(jù)時(shí),在本地預(yù)處理之后,將上鏈數(shù)據(jù)發(fā)布至交易池。礦工打包數(shù)據(jù)時(shí),先查詢(xún)最新區(qū)塊的信用數(shù)組,若數(shù)據(jù)發(fā)布者信用度低于1,則不打包該數(shù)據(jù)。數(shù)據(jù)成功上鏈以及發(fā)布新區(qū)塊發(fā)布均屬于積極行為因素,相關(guān)用戶(hù)的信用度會(huì)增長(zhǎng)。信用評(píng)估模型限制風(fēng)險(xiǎn)用戶(hù)以及惡意用戶(hù)的上鏈行為,保證水利數(shù)據(jù)的正確性,而隨著風(fēng)險(xiǎn)用戶(hù)其他積極行為因素的增長(zhǎng),又可恢復(fù)上鏈權(quán)限,起到動(dòng)態(tài)控制系統(tǒng)安全的目的。
(3)數(shù)據(jù)用戶(hù)查詢(xún)水利數(shù)據(jù)時(shí),向?qū)傩灾行慕M申請(qǐng)屬性私鑰,即水利部門(mén)屬性管理節(jié)點(diǎn)查詢(xún)數(shù)據(jù)用戶(hù)所在通道最新區(qū)塊的信用數(shù)組,若數(shù)據(jù)用戶(hù)信用度至不低于設(shè)定值δ,則分發(fā)屬性私鑰,否則,拒絕用戶(hù)申請(qǐng)。數(shù)據(jù)用戶(hù)需訪(fǎng)問(wèn)其他區(qū)域水利數(shù)據(jù)或跨部門(mén)訪(fǎng)問(wèn)水利數(shù)據(jù)時(shí),即需要跨通道訪(fǎng)問(wèn)數(shù)據(jù),此時(shí)監(jiān)管組織節(jié)點(diǎn)審核用戶(hù)信用度,過(guò)程同上。信用模型僅允許安全用戶(hù)與風(fēng)險(xiǎn)用戶(hù)訪(fǎng)問(wèn)數(shù)據(jù),且在訪(fǎng)問(wèn)過(guò)程中,越權(quán)訪(fǎng)問(wèn)、訪(fǎng)問(wèn)數(shù)據(jù)無(wú)效等為負(fù)面行為因素,相應(yīng)用戶(hù)信用度值減?。挥行?shù)據(jù)成功訪(fǎng)問(wèn)次數(shù)增加,數(shù)據(jù)發(fā)布者信用度值也會(huì)增長(zhǎng)。
水利數(shù)據(jù)的訪(fǎng)問(wèn)對(duì)象可以分為兩類(lèi):同一部門(mén)的其他用戶(hù)和其他部門(mén)的用戶(hù),后者又可以分為水利領(lǐng)域不同專(zhuān)業(yè)的部門(mén)、不同區(qū)域的水利部門(mén)以及其他領(lǐng)域的部門(mén)。而Fabric聯(lián)盟鏈中的通道結(jié)構(gòu)能夠有效地進(jìn)行數(shù)據(jù)隔離,每個(gè)通道維護(hù)自己的區(qū)塊鏈結(jié)構(gòu),用戶(hù)不能直接訪(fǎng)問(wèn)其他通道的區(qū)塊鏈數(shù)據(jù)。在本模型中將各地方水利部門(mén)視作不同通道內(nèi)的組織,各組織選擇節(jié)點(diǎn)維護(hù)自己通道內(nèi)的數(shù)據(jù)鏈,而將上級(jí)水利部門(mén)以及其他監(jiān)管部門(mén)組成監(jiān)管組織,存在于各通道的交叉通道中,負(fù)責(zé)維護(hù)交叉通道的訪(fǎng)問(wèn)鏈。
跨通道訪(fǎng)問(wèn)的主要技術(shù)為跨鏈訪(fǎng)問(wèn)技術(shù),當(dāng)前主流的跨鏈技術(shù)有公證人機(jī)制、側(cè)鏈/中繼和哈希鎖定3種[21]。利用公證人機(jī)制,選出權(quán)威個(gè)人或者群體充當(dāng)公證人角色,被選舉的公證人擔(dān)有監(jiān)聽(tīng)、查看、驗(yàn)證等職能[22]。選取監(jiān)管組織(即上級(jí)水利部門(mén)以及其他監(jiān)管部門(mén))充當(dāng)跨鏈過(guò)程中公證人角色的訪(fǎng)問(wèn)流程如圖5所示。當(dāng)組織O1中有用戶(hù)想要請(qǐng)求數(shù)據(jù)鏈L2上的數(shù)據(jù)時(shí),聯(lián)絡(luò)節(jié)點(diǎn)負(fù)責(zé)收集訪(fǎng)問(wèn)請(qǐng)求,將訪(fǎng)問(wèn)請(qǐng)求提交給交叉通道中的監(jiān)管組織O3。監(jiān)管節(jié)點(diǎn)審核訪(fǎng)問(wèn)請(qǐng)求發(fā)起用戶(hù)的權(quán)限資格,審核通過(guò)后,向組織O2的聯(lián)絡(luò)節(jié)點(diǎn)申請(qǐng)數(shù)據(jù)請(qǐng)求。聯(lián)絡(luò)節(jié)點(diǎn)調(diào)用數(shù)據(jù)查詢(xún)智能合約,將目標(biāo)數(shù)據(jù)返回給監(jiān)管節(jié)點(diǎn),監(jiān)管節(jié)點(diǎn)成功獲得數(shù)據(jù)后,返回給組織O1聯(lián)絡(luò)節(jié)點(diǎn),再返回給發(fā)起用戶(hù),完成此次跨鏈訪(fǎng)問(wèn)。訪(fǎng)問(wèn)過(guò)程中,監(jiān)管組織更新維護(hù)訪(fǎng)問(wèn)鏈L3,將用戶(hù)的訪(fǎng)問(wèn)信息記錄至訪(fǎng)問(wèn)鏈。
圖5 跨鏈訪(fǎng)問(wèn)模型Fig.5 Model of cross-blockchain access
水利數(shù)據(jù)存儲(chǔ)過(guò)程的主要參與者包含:數(shù)據(jù)所有者 DO、屬性中心組AA、數(shù)據(jù)鏈DB和IPFS分布式網(wǎng)絡(luò),存儲(chǔ)流程如圖6所示。
圖6 數(shù)據(jù)存儲(chǔ)流程Fig.6 The process of data storage
數(shù)據(jù)所有者選擇文件file,用AES算法進(jìn)行對(duì)稱(chēng)加密,得到密文enc_file,同時(shí)利用SHA256算法取文件的哈希值hash_file。對(duì)稱(chēng)加密完成后,利用IPFS算法將加密文件上傳至IPFS分布式系統(tǒng),系統(tǒng)返回文件地址的哈希值hash_ipfs。數(shù)據(jù)所有者將文件哈希值hash_file、IPFS地址哈希值hash_ipfs以及設(shè)置的文件訪(fǎng)問(wèn)策略(A,ρ)打包,發(fā)布至區(qū)塊鏈交易池,等待寫(xiě)入數(shù)據(jù)鏈。模型采用鏈下文件存儲(chǔ)鏈上存儲(chǔ)地址信息方式,能夠高效地利用區(qū)塊鏈存儲(chǔ)容量。文件加密后,再對(duì)AES密鑰進(jìn)行屬性基加密。數(shù)據(jù)所有者利用屬性基加密算法,以全局參數(shù)GP、訪(fǎng)問(wèn)策略P、以及對(duì)應(yīng)屬性中心公鑰APK作為輸入,得到加密后的AES密鑰,并保存至系統(tǒng)數(shù)據(jù)庫(kù)。
在文件存儲(chǔ)過(guò)程中,用戶(hù)的信用度會(huì)發(fā)生變化,根據(jù)信用度的分層機(jī)制,風(fēng)險(xiǎn)用戶(hù)以及惡意用戶(hù)無(wú)法進(jìn)行上鏈操作與上傳加密密鑰的權(quán)限。若風(fēng)險(xiǎn)用戶(hù)需要恢復(fù)完整權(quán)限,可以向權(quán)威中心提交身份證明,審核通過(guò)后,恢復(fù)權(quán)限;而惡意用戶(hù)被列入惡意列表,限制其所有權(quán)限,防止產(chǎn)生更多負(fù)面行為。
在水利數(shù)據(jù)的訪(fǎng)問(wèn)階段,參與對(duì)象有:數(shù)據(jù)使用者DU、授權(quán)中心CA、屬性中心組AA、IPFS分布式網(wǎng)絡(luò)、數(shù)據(jù)鏈DB以及訪(fǎng)問(wèn)鏈AB,數(shù)據(jù)訪(fǎng)問(wèn)流程如圖7所示。
圖7 數(shù)據(jù)訪(fǎng)問(wèn)流程Fig.7 The process of data access
數(shù)據(jù)訪(fǎng)問(wèn)過(guò)程分為相同通道訪(fǎng)問(wèn)與跨通道訪(fǎng)問(wèn),且訪(fǎng)問(wèn)過(guò)程中由授權(quán)中心與屬性中心共同承擔(dān)審核訪(fǎng)問(wèn)用戶(hù)信用度的職責(zé)。
在相同通道數(shù)據(jù)請(qǐng)求情況下,數(shù)據(jù)用戶(hù)發(fā)起訪(fǎng)問(wèn)請(qǐng)求,通道調(diào)用智能合約,返回文件的hash_file以及hash_ipfs信息,并將用戶(hù)訪(fǎng)問(wèn)信息打包,進(jìn)行上鏈。數(shù)據(jù)訪(fǎng)問(wèn)用戶(hù)向?qū)傩灾行陌l(fā)送自己的屬性集與用戶(hù)ID,屬性中心查詢(xún)用戶(hù)所在數(shù)據(jù)鏈最近區(qū)塊的信用數(shù)組,若信用度滿(mǎn)足條件,則屬性中心返回用戶(hù)的屬性私鑰sk;否則,拒絕用戶(hù)請(qǐng)求。若數(shù)據(jù)用戶(hù)的信用度符合要求,則訪(fǎng)問(wèn)控制系統(tǒng)查詢(xún)文件的加密后的AES密鑰,同時(shí),用戶(hù)通過(guò)IPFS檢索算法,利用hash_ipfs值獲得文件密文。同時(shí),數(shù)據(jù)用戶(hù)利用屬性私鑰sk以及全局參數(shù)進(jìn)行屬性基解密,若用戶(hù)屬性集滿(mǎn)足數(shù)據(jù)所有者設(shè)定的訪(fǎng)問(wèn)策略,則成功解密獲得AES密鑰;否則,解密失敗。最后,利用AES密鑰對(duì)密文進(jìn)行機(jī)密,獲得文件明文。數(shù)據(jù)用戶(hù)可對(duì)明文進(jìn)行SHA256運(yùn)算,獲得值與hash_file值進(jìn)行比較,若兩值相同,則訪(fǎng)問(wèn)成功。
在跨通道數(shù)據(jù)請(qǐng)求情況下,模型采用公證人跨鏈技術(shù),默認(rèn)將上級(jí)水利部門(mén)選為公證人,構(gòu)成授權(quán)中心。數(shù)據(jù)用戶(hù)發(fā)起授權(quán)中心發(fā)起訪(fǎng)問(wèn)請(qǐng)求,授權(quán)中心查詢(xún)相應(yīng)數(shù)據(jù)鏈最新區(qū)塊的信用數(shù)組,若用戶(hù)信用度符合要求則授權(quán)中心向目標(biāo)通道發(fā)起訪(fǎng)問(wèn)請(qǐng)求,目標(biāo)通道調(diào)用查詢(xún)智能合約返回文件信息hash_file以及hash_ipfs。授權(quán)中心將文件信息發(fā)送給訪(fǎng)問(wèn)用戶(hù),并將訪(fǎng)問(wèn)信息打包,等待記錄到訪(fǎng)問(wèn)鏈。若用戶(hù)信用度不滿(mǎn)足要求,或者其他原因造成的訪(fǎng)問(wèn)失敗,用戶(hù)訪(fǎng)問(wèn)信息也會(huì)被記錄到訪(fǎng)問(wèn)鏈中。用戶(hù)獲得文件信息,模型后續(xù)流程與上文一致。
在數(shù)據(jù)訪(fǎng)問(wèn)過(guò)程中,用戶(hù)的信用度會(huì)產(chǎn)生變化,信用度分層機(jī)制規(guī)定,對(duì)于風(fēng)險(xiǎn)用戶(hù)不進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)類(lèi)權(quán)限限制,防止正常用戶(hù)誤操作導(dǎo)致信用度下降,但限制其寫(xiě)入權(quán)限;而惡意用戶(hù)限制所有權(quán)限,無(wú)法訪(fǎng)問(wèn)數(shù)據(jù)。
為驗(yàn)證基于區(qū)塊鏈的水利數(shù)據(jù)訪(fǎng)問(wèn)控制模型的可行性,利用HyperLedger Fabric1.4開(kāi)源框架搭建區(qū)塊鏈平臺(tái),測(cè)試不同節(jié)點(diǎn)個(gè)數(shù)情況下區(qū)塊鏈的讀寫(xiě)性能情況,比較在不同加密方案下文件的加密與解密時(shí)間,并模擬信用度評(píng)估模型的流程。
實(shí)驗(yàn)配置電腦搭載Window10操作系統(tǒng)、Intel Core i5處理器、8 GB內(nèi)存、DDR4,利用Centos7虛擬機(jī)為區(qū)塊鏈提供運(yùn)行環(huán)境,用Docker容器模擬不同數(shù)量的節(jié)點(diǎn)情況。
模型首先與相關(guān)訪(fǎng)問(wèn)控制方案進(jìn)行功能性比較。如表1所示,評(píng)估數(shù)據(jù)不同操作階段的功能。數(shù)據(jù)上鏈前,本文方案用戶(hù)將數(shù)據(jù)AES加密后上傳至IPFS,利用屬性訪(fǎng)問(wèn)策略加密AES密鑰,而文獻(xiàn)[10]以SM4算法加密數(shù)據(jù),且將密文保存在本地?cái)?shù)據(jù)庫(kù),相較于IPFS的分布式存儲(chǔ),單節(jié)點(diǎn)存儲(chǔ)方式的安全性和穩(wěn)定性更差。數(shù)據(jù)上鏈階段,本文方案設(shè)計(jì)有信用度評(píng)估模型,起到監(jiān)控用戶(hù)行為,限制風(fēng)險(xiǎn)用戶(hù)以及惡意用戶(hù)的上鏈請(qǐng)求,保障系統(tǒng)數(shù)據(jù)安全,而文獻(xiàn)[10-11]均未對(duì)用戶(hù)行為進(jìn)行評(píng)估,系統(tǒng)安全性漏洞較大。數(shù)據(jù)查鏈階段,本文方案設(shè)計(jì)多鏈架構(gòu),采用公證人技術(shù)實(shí)現(xiàn)跨鏈訪(fǎng)問(wèn)控制,較文獻(xiàn)[10]采用中繼技術(shù)方式更為簡(jiǎn)潔,且由信用度評(píng)估模型動(dòng)態(tài)控制數(shù)據(jù)訪(fǎng)問(wèn),限制惡意用戶(hù)訪(fǎng)問(wèn)權(quán)限。此外,本文方案采用多屬性中心,避免文獻(xiàn)[11]存在單個(gè)屬性中心計(jì)算負(fù)載過(guò)重問(wèn)題,減輕屬性解密的計(jì)算開(kāi)銷(xiāo)。
表1 方案功能性比較Table 1 Functional comparison of different model
區(qū)塊鏈網(wǎng)絡(luò)測(cè)試環(huán)境運(yùn)行在單個(gè)主機(jī)上,利用Java語(yǔ)言開(kāi)發(fā)區(qū)塊鏈客戶(hù)端,利用Go語(yǔ)言編寫(xiě)智能合約,分別模擬在兩個(gè)組織分別含單個(gè)節(jié)點(diǎn)、2個(gè)組織分別含2個(gè)節(jié)點(diǎn)以及3個(gè)組織分別含2個(gè)節(jié)點(diǎn)情況下數(shù)據(jù)鏈以及訪(fǎng)問(wèn)鏈的上鏈與查鏈時(shí)延,每個(gè)組織均有一個(gè)成員服務(wù)提供者(member service provider, MSP)列表,排序方法采用單節(jié)點(diǎn)通信(SOLO)模式,實(shí)驗(yàn)結(jié)果如圖8、圖9所示。
圖8 數(shù)據(jù)鏈操作時(shí)延Fig.8 Delay of operation on data blockchain
圖9 訪(fǎng)問(wèn)鏈操作時(shí)延Fig.9 Delay of operation on access blockchain
從實(shí)驗(yàn)結(jié)果可知,兩種區(qū)塊鏈的上鏈時(shí)間隨著節(jié)點(diǎn)數(shù)以及組織數(shù)的增加也近乎成倍的增長(zhǎng),而查鏈時(shí)間增長(zhǎng)速度稍緩并區(qū)域穩(wěn)定。數(shù)據(jù)上鏈時(shí),區(qū)塊鏈的交易單在可信節(jié)點(diǎn)的背書(shū)后才允許上鏈,而智能合約默認(rèn)情況下將交易單發(fā)送給盡可能多的節(jié)點(diǎn)進(jìn)行背書(shū)驗(yàn)證,因而隨著節(jié)點(diǎn)數(shù)量增大,驗(yàn)證造成的延遲也會(huì)越大。此外,排序結(jié)點(diǎn)打包區(qū)塊后發(fā)送給各個(gè)組織形成共識(shí)也會(huì)隨著規(guī)模的增加,產(chǎn)生延遲。而進(jìn)行查鏈時(shí),節(jié)點(diǎn)維護(hù)賬本的內(nèi)容都是相同的,故只需向某個(gè)節(jié)點(diǎn)發(fā)起請(qǐng)求即可,故查鏈的延遲時(shí)間受節(jié)點(diǎn)規(guī)模增長(zhǎng)的影響很小。
通過(guò)分析屬性基加密過(guò)程,可知文件的大小以及屬性的數(shù)量是加密效率的最大影響因素,實(shí)驗(yàn)分別測(cè)試在不同文件大小以及不同屬性個(gè)數(shù)情況下屬性基加密以及解密的時(shí)間。
對(duì)于文件大小的影響,實(shí)驗(yàn)對(duì)比僅屬性基加密情況下的加/解密時(shí)間,文獻(xiàn)[10]方案的加/解密時(shí)間以及本方案的加/解密時(shí)間,實(shí)驗(yàn)結(jié)果如圖10所示,其中縱坐標(biāo)為加密與解密時(shí)間之和。從結(jié)果可知,文件體積較小時(shí),3種方案的加/解密時(shí)間之和相差不大,而文件大小一旦超過(guò)一定值,3種方案逐漸展開(kāi)差距。實(shí)驗(yàn)中,直接采用屬性基加密和解密文件的方法,當(dāng)文件超過(guò)10 MB時(shí),由于文件體積過(guò)大,算法效率變差。而本文方案與文獻(xiàn)[10]方案均采用先對(duì)文件進(jìn)行對(duì)稱(chēng)加密,然后再對(duì)對(duì)稱(chēng)密鑰進(jìn)行屬性基加密,因此,加/解密時(shí)間受文件大小影響較小。文獻(xiàn)[10]采用SM4對(duì)稱(chēng)加密算法,該算法加密時(shí)間隨文件大小增長(zhǎng)以較緩的速度增長(zhǎng),而本文方案采用的AES對(duì)稱(chēng)加密算法幾乎不受文件大小的影響,故較另兩種方案,本文方案的加/解密效率更高。
圖10 不同文件大小加/解密時(shí)間比較Fig.10 Encryption time and decryption time comparison with different file size
實(shí)驗(yàn)設(shè)置不同屬性個(gè)數(shù)情況下,固定文件大小為2 MB,本文方案與文獻(xiàn)[10]以及文獻(xiàn)[11]方案加密與解密時(shí)間的對(duì)比,實(shí)驗(yàn)結(jié)果如圖11所示。實(shí)驗(yàn)結(jié)果表明,3種方案的加/解密時(shí)間均逐步增加,且本文方案的加密與解密效率最優(yōu)。實(shí)驗(yàn)中,設(shè)置的屬性個(gè)數(shù)越多,目標(biāo)數(shù)據(jù)的訪(fǎng)問(wèn)策略結(jié)構(gòu)就越復(fù)雜,雖提高了數(shù)據(jù)的訪(fǎng)問(wèn)細(xì)粒度的,但增加了加/解密時(shí)消耗的時(shí)間,而本文方案先采用AES對(duì)稱(chēng)加密,再利用多中心的屬性加密技術(shù),在3種方案中效率最高。
圖11 不同屬性數(shù)量加/解密時(shí)間比較Fig.11 Encryption time and decryption time comparison with different attribute number
以2.3.1節(jié)的信用度模型的劃分方法,檢測(cè)用戶(hù)的行為因素值,通過(guò)程序進(jìn)行規(guī)范化及后續(xù)操作,計(jì)算出安全特征、服務(wù)特征以及可靠特征的數(shù)值。根據(jù)水利系統(tǒng)的實(shí)際應(yīng)用情況對(duì)行為特征以及行為因素權(quán)重進(jìn)行重要程度劃分:行為特征權(quán)重S>R>P,安全特征S行為因素權(quán)重s1>s2,服務(wù)特征P行為因素權(quán)重p1>p2>p3,可靠特征R行為因素權(quán)重r3>r1>r2。實(shí)驗(yàn)?zāi)M節(jié)點(diǎn)在產(chǎn)生不同負(fù)面行為下,用戶(hù)信用度值得變化情況,結(jié)果如圖12所示。正常運(yùn)行情況下,用戶(hù)的信用度隨著正面行為慢慢增長(zhǎng),而在運(yùn)行時(shí)間至100 s時(shí),實(shí)驗(yàn)分別模擬產(chǎn)生3種負(fù)面行為的情況,用戶(hù)的信用度立即下降。運(yùn)行至120 s時(shí),停止負(fù)面行為,此時(shí)隨著正常行為比重的上升,用戶(hù)信用度開(kāi)始回升。
模型按照信用度不同,將用戶(hù)分為3類(lèi),模擬實(shí)驗(yàn)取信用度閾值δ=0.8,當(dāng)用戶(hù)信用度低于0.8時(shí)被列為惡意用戶(hù),結(jié)果如圖13所示。運(yùn)行至100 s時(shí),系統(tǒng)檢測(cè)到用戶(hù)2與用戶(hù)3的負(fù)面行為,調(diào)整信用度,用戶(hù)2信用度降至1~δ,判定為風(fēng)險(xiǎn)用戶(hù),而用戶(hù)3降至δ以下,判定為惡意用戶(hù)。正常用戶(hù)1與風(fēng)險(xiǎn)用戶(hù)2在運(yùn)行30個(gè)區(qū)塊后即200 s左右時(shí)信用度更新為1,由于風(fēng)險(xiǎn)用戶(hù)被列入風(fēng)險(xiǎn)列表,僅有查鏈權(quán)限,信用度增長(zhǎng)較慢。
圖12 不同負(fù)面行為下信用度比較Fig.12 The comparison of credit value under different negative actions
圖13 三類(lèi)用戶(hù)信用度比較Fig.13 The comparison of credit value among three users
本文模型以數(shù)據(jù)鏈與訪(fǎng)問(wèn)鏈組合的多鏈架構(gòu)為基礎(chǔ),將文件對(duì)稱(chēng)加密之后,上傳至IPFS系統(tǒng),且利用屬性加密技術(shù)加密對(duì)稱(chēng)密鑰。系統(tǒng)將IPFS的哈希地址、文件摘要以及屬性加密策略上傳至數(shù)據(jù)鏈,數(shù)據(jù)上鏈日志如圖14所示。
圖14 數(shù)據(jù)上鏈日志Fig.14 The log of data upload to blockchain
用戶(hù)發(fā)起跨鏈請(qǐng)求時(shí),觸發(fā)訪(fǎng)問(wèn)鏈智能合約。訪(fǎng)問(wèn)鏈合約審核用戶(hù)權(quán)限后跨通道調(diào)用數(shù)據(jù)鏈合約完成查詢(xún)操作,將查詢(xún)結(jié)果返回給用戶(hù),再將用戶(hù)跨鏈操作過(guò)程記錄到訪(fǎng)問(wèn)鏈中作為操作留痕,訪(fǎng)問(wèn)鏈智能合約調(diào)用如圖15所示。
圖15 訪(fǎng)問(wèn)鏈智能合約調(diào)用Fig.15 Access chain smart contract invocation
系統(tǒng)運(yùn)行過(guò)程中,用戶(hù)信用度按照信用度評(píng)估模型變化,不同負(fù)面行為下變化情況如圖12所示,且每隔30個(gè)區(qū)塊重置信用度值,更新情況如圖13所示,用戶(hù)一旦評(píng)估為惡意用戶(hù),系統(tǒng)將限制其所有權(quán)限。用戶(hù)進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)時(shí),滿(mǎn)足數(shù)據(jù)所有者的屬性訪(fǎng)問(wèn)策略,才可屬性解密文件,其中加密屬性個(gè)數(shù)設(shè)置越多即訪(fǎng)問(wèn)策略越復(fù)雜,加/解密消耗時(shí)間越多,時(shí)間消耗情況如圖11所示。在文件訪(fǎng)問(wèn)過(guò)程中,模擬系統(tǒng)的區(qū)塊鏈網(wǎng)絡(luò)運(yùn)行情況如圖7所示,系統(tǒng)運(yùn)行良好。
在日益重視數(shù)據(jù)的高效訪(fǎng)問(wèn)以及價(jià)值最大化的背景下,數(shù)據(jù)的安全訪(fǎng)問(wèn)控制對(duì)于行業(yè)的發(fā)展具有重要作用,而水利領(lǐng)域正在經(jīng)歷智能化大變革,實(shí)現(xiàn)高效安全的數(shù)據(jù)訪(fǎng)問(wèn)十分迫切。根據(jù)水利數(shù)據(jù)的訪(fǎng)問(wèn)特點(diǎn),提出基于區(qū)塊多鏈的訪(fǎng)問(wèn)模型,利用區(qū)塊鏈通道的特性有效的分隔數(shù)據(jù),以屬性基加密技術(shù)實(shí)現(xiàn)數(shù)據(jù)的細(xì)粒度訪(fǎng)問(wèn)控制,并利用信用度模型評(píng)估用戶(hù)的安全性,提高數(shù)據(jù)訪(fǎng)問(wèn)的高效性和可靠性。實(shí)驗(yàn)結(jié)果表明,該模型能夠根據(jù)用戶(hù)行為動(dòng)態(tài)更新用戶(hù)信用度,并能夠根據(jù)信用度閾值對(duì)用戶(hù)進(jìn)行分層。同時(shí),對(duì)稱(chēng)加密技術(shù)與屬性基加密技術(shù)結(jié)合的方法能夠?qū)崿F(xiàn)數(shù)據(jù)的隱私保護(hù)以及屬性級(jí)訪(fǎng)問(wèn)控制。