王 冠 丁 浩
1(北京工業(yè)大學(xué)信息學(xué)部 北京 100124) 2(可信計(jì)算北京市重點(diǎn)實(shí)驗(yàn)室 北京 100124)
在社會(huì)信息快速發(fā)展的今天,跨部門(mén)的電子政務(wù)業(yè)務(wù)協(xié)同辦公非常重要.《國(guó)務(wù)院關(guān)于加快推進(jìn)全國(guó)一體化在線(xiàn)政務(wù)服務(wù)平臺(tái)建設(shè)的指導(dǎo)意見(jiàn)》(國(guó)發(fā)〔2018〕27 號(hào))要求,加強(qiáng)頂層設(shè)計(jì),整合各類(lèi)政務(wù)服務(wù)資源,跨地區(qū)、跨部門(mén)、跨層級(jí)數(shù)據(jù)共享和業(yè)務(wù)協(xié)同,全流程網(wǎng)上辦理,推動(dòng)線(xiàn)上線(xiàn)下深度融合,推進(jìn)綜合保障一體化,推進(jìn)公共支撐一體化.推動(dòng)電子政務(wù)發(fā)展可以增強(qiáng)政府的服務(wù)能力[1],但是現(xiàn)在各政務(wù)部門(mén)仍然存在數(shù)據(jù)庫(kù)重復(fù)建設(shè)、數(shù)據(jù)資源散落在各部門(mén)從而成為數(shù)據(jù)孤島以及部門(mén)信息不互通、部門(mén)間政務(wù)服務(wù)相互分割的問(wèn)題.因此如何實(shí)現(xiàn)數(shù)據(jù)跨部門(mén)安全共享并保證數(shù)據(jù)在共享時(shí)來(lái)源可知、保證數(shù)據(jù)真實(shí)完整、防止數(shù)據(jù)隱私泄露以及避免數(shù)據(jù)使用者在使用非法數(shù)據(jù)或者數(shù)據(jù)提供者提供假冒數(shù)據(jù)后出現(xiàn)抵賴(lài)現(xiàn)象難以進(jìn)行追責(zé)等是一個(gè)亟需解決的問(wèn)題.針對(duì)跨部門(mén)間的業(yè)務(wù)協(xié)同數(shù)據(jù)共享這一應(yīng)用場(chǎng)景,本文提供一種基于區(qū)塊鏈的業(yè)務(wù)協(xié)同數(shù)據(jù)安全共享方案,該方案通過(guò)區(qū)塊鏈和IPFS結(jié)合并利用同態(tài)加密技術(shù)實(shí)現(xiàn)數(shù)據(jù)來(lái)源可知、保證數(shù)據(jù)真實(shí)、防止數(shù)據(jù)隱私泄露、避免用戶(hù)在數(shù)據(jù)共享過(guò)程中進(jìn)行抵賴(lài)等,同時(shí)通過(guò)Token授權(quán)防止數(shù)據(jù)非法使用,保證數(shù)據(jù)擁有者對(duì)數(shù)據(jù)擁有唯一控制權(quán),最終應(yīng)用于電子政務(wù)環(huán)境下實(shí)現(xiàn)跨部門(mén)間的數(shù)據(jù)安全共享.
隨著區(qū)塊鏈[2]技術(shù)的發(fā)展,區(qū)塊鏈環(huán)境下數(shù)據(jù)的安全共享得到了很大的進(jìn)展,金泳等人[3]提出基于區(qū)塊鏈的大數(shù)據(jù)安全共享需求模型架構(gòu),該模型雖然解決了數(shù)據(jù)不可篡改,保證了數(shù)據(jù)安全性和完整性,但是將數(shù)據(jù)直接存儲(chǔ)在區(qū)塊鏈上增加了區(qū)塊鏈的存儲(chǔ)壓力,降低了區(qū)塊鏈中消息傳播的速度以及消息處理的效率,同時(shí)在模型中加入了可信第三方違背了區(qū)塊鏈去中心化的初衷,從而存在中心化相應(yīng)的缺點(diǎn).余益民等人[4]研究了基于區(qū)塊鏈的政務(wù)信息資源共享模型,該模型具有實(shí)時(shí)交換、數(shù)據(jù)一致和可溯源等特點(diǎn),但是最大的遺憾就是將大量文件存儲(chǔ)在本地,沒(méi)有進(jìn)行安全防護(hù).郭乃網(wǎng)等人[5]提出了一種隱私數(shù)據(jù)共享協(xié)議,該協(xié)議實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)安全共享,但只限于用戶(hù)具有共同索引的數(shù)據(jù)交換共享,并不能得到廣泛的應(yīng)用.Diallo等人[6]運(yùn)用區(qū)塊鏈技術(shù)和分散自治組織(DAO)改進(jìn)了電子政務(wù)系統(tǒng).Hou[7]分析了當(dāng)前區(qū)塊鏈應(yīng)用于電子政務(wù)的框架、難點(diǎn)和挑戰(zhàn),探討了區(qū)塊鏈技術(shù)對(duì)電子政務(wù)和公共服務(wù)發(fā)展的貢獻(xiàn).Zheng等人[8]提出了一種基于區(qū)塊鏈的可信數(shù)據(jù)共享方案,使用區(qū)塊鏈不可篡改特性防止共享數(shù)據(jù)被篡改,使用Paillier同態(tài)加密[9]算法實(shí)現(xiàn)共享數(shù)據(jù)的保密性,然而該方案將數(shù)據(jù)直接存儲(chǔ)在區(qū)塊鏈中降低了區(qū)塊共識(shí)效率.區(qū)塊鏈[10-11]具有去中心化、集體維護(hù)、數(shù)據(jù)防篡改和分布式運(yùn)行等特點(diǎn),在數(shù)據(jù)安全共享中最大的問(wèn)題就是如何實(shí)現(xiàn)數(shù)據(jù)的隱私保護(hù)[12],OpenPDS是一個(gè)個(gè)人元數(shù)據(jù)管理框架[13],使用了SafeAnswers機(jī)制:一種在個(gè)人層面保護(hù)元數(shù)據(jù)隱私的使用方法,該方案將訪(fǎng)問(wèn)權(quán)限交給第三方失去了對(duì)數(shù)據(jù)的控制權(quán).針對(duì)個(gè)人數(shù)據(jù)的隱私保護(hù),Zyskind等人[14]提出了一種協(xié)議,實(shí)現(xiàn)在任何給定的時(shí)間數(shù)據(jù)提供者都可以更改權(quán)限集并取消對(duì)以前收集的數(shù)據(jù)的訪(fǎng)問(wèn),可是隨著數(shù)據(jù)權(quán)限集的更改增加了不必要的資源消耗.Liu等人[15]介紹了政務(wù)數(shù)據(jù)共享的隱私安全問(wèn)題,但只針對(duì)數(shù)據(jù)共享過(guò)程中的數(shù)據(jù)隱私保護(hù)卻沒(méi)有針對(duì)數(shù)據(jù)在共享后實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù).Feng等人[16]對(duì)區(qū)塊鏈的隱私加密防御機(jī)制進(jìn)行批判性的比較分析,并分析得出現(xiàn)有的隱私保護(hù)威脅.
通過(guò)對(duì)現(xiàn)有方案的分析可以發(fā)現(xiàn)區(qū)塊鏈促進(jìn)了數(shù)據(jù)安全共享.然而不能忽視的是數(shù)據(jù)隱私保護(hù)仍然是一個(gè)挑戰(zhàn).此外,數(shù)據(jù)來(lái)源、數(shù)據(jù)真實(shí)性、數(shù)據(jù)可控以及防止用戶(hù)在數(shù)據(jù)共享過(guò)程中抵賴(lài)等數(shù)據(jù)安全共享問(wèn)題都是本文所關(guān)注的.
為了保證數(shù)據(jù)擁有者可以對(duì)數(shù)據(jù)擁有可控權(quán),基于區(qū)塊鏈的業(yè)務(wù)協(xié)同數(shù)據(jù)安全共享方案除了包含數(shù)據(jù)提供者和數(shù)據(jù)使用者以外還需要數(shù)據(jù)擁有者實(shí)體.各部門(mén)在數(shù)據(jù)共享前需要經(jīng)過(guò)FabricCA進(jìn)行身份認(rèn)證,通過(guò)認(rèn)證的節(jié)點(diǎn)可以加入到區(qū)塊鏈網(wǎng)絡(luò)中,并頒布身份證書(shū).共享數(shù)據(jù)時(shí)需要將數(shù)據(jù)信息存儲(chǔ)到區(qū)塊鏈當(dāng)中,但是由于區(qū)塊的存儲(chǔ)容量有限,交易數(shù)據(jù)量大容易引起交易處理時(shí)間長(zhǎng)、共識(shí)效率低、網(wǎng)絡(luò)出現(xiàn)擁堵等問(wèn)題,所以為了避免在區(qū)塊鏈中存儲(chǔ)非必要的信息,引入了分布式的數(shù)據(jù)存儲(chǔ)網(wǎng)絡(luò)(interplanetary file system,IPFS)[17].在業(yè)務(wù)協(xié)同辦理過(guò)程中,各部門(mén)辦理業(yè)務(wù)時(shí)對(duì)共享數(shù)據(jù)處理的業(yè)務(wù)邏輯不同,所以可以通過(guò)編寫(xiě)不同智能合約實(shí)現(xiàn)不同業(yè)務(wù)邏輯.綜上可知,基于區(qū)塊鏈的業(yè)務(wù)協(xié)同數(shù)據(jù)安全共享方案模型共涉及7個(gè)實(shí)體,分別是區(qū)塊鏈、本地?cái)?shù)據(jù)庫(kù)、IPFS、智能合約和用戶(hù)實(shí)體,其中有3類(lèi)用戶(hù)實(shí)體,分別是數(shù)據(jù)擁有者、數(shù)據(jù)提供者以及數(shù)據(jù)使用者.數(shù)據(jù)擁有者是在業(yè)務(wù)辦理過(guò)程中與數(shù)據(jù)有關(guān)聯(lián)的需要進(jìn)行業(yè)務(wù)申請(qǐng)的個(gè)人或部門(mén);數(shù)據(jù)提供者是在業(yè)務(wù)辦理過(guò)程中業(yè)務(wù)材料存放的部門(mén);數(shù)據(jù)使用者是在業(yè)務(wù)辦理過(guò)程中使用數(shù)據(jù)辦理業(yè)務(wù)的部門(mén).方案模型如圖1所示:
圖1 方案模型圖
上述方案模型結(jié)合了區(qū)塊鏈、IPFS和智能合約并通過(guò)Paillier算法達(dá)到保護(hù)共享數(shù)據(jù)隱私,實(shí)現(xiàn)數(shù)據(jù)在業(yè)務(wù)協(xié)同中安全共享.該方案針對(duì)電子政務(wù)環(huán)境下跨部門(mén)間的業(yè)務(wù)協(xié)同數(shù)據(jù)共享這一應(yīng)用場(chǎng)景,構(gòu)建Fabric[18]環(huán)境,并與去中心化的IPFS結(jié)合,通過(guò)脫鏈的形式存儲(chǔ)共享數(shù)據(jù),其中原始數(shù)據(jù)存儲(chǔ)在各部門(mén)數(shù)據(jù)庫(kù)中,需要共享的數(shù)據(jù)加密后存儲(chǔ)在IPFS中,數(shù)據(jù)存儲(chǔ)地址等元數(shù)據(jù)存儲(chǔ)在Fabric聯(lián)盟鏈網(wǎng)絡(luò)中,通過(guò)這種方式實(shí)現(xiàn)數(shù)據(jù)共享,并根據(jù)業(yè)務(wù)邏輯通過(guò)智能合約完成相應(yīng)數(shù)據(jù)處理,得到數(shù)據(jù)處理結(jié)果,實(shí)現(xiàn)共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù),避免數(shù)據(jù)隱私泄露,實(shí)現(xiàn)數(shù)據(jù)跨部門(mén)安全共享.
在上述模型中,本文提出的方案主要針對(duì)3個(gè)緊密相連的場(chǎng)景.在第1個(gè)場(chǎng)景中,如果數(shù)據(jù)擁有者需要辦理某種業(yè)務(wù),則向數(shù)據(jù)提供者申請(qǐng)業(yè)務(wù)辦理所需數(shù)據(jù)信息,數(shù)據(jù)提供者判斷申請(qǐng)數(shù)據(jù)是否對(duì)應(yīng)數(shù)據(jù)擁有者身份,驗(yàn)證通過(guò)后,加密并上傳數(shù)據(jù),同時(shí)通知數(shù)據(jù)擁有者數(shù)據(jù)的存儲(chǔ)地址等信息,第2個(gè)場(chǎng)景開(kāi)始.數(shù)據(jù)擁有者將數(shù)據(jù)使用權(quán)授權(quán)給業(yè)務(wù)辦理人員,即數(shù)據(jù)使用者,數(shù)據(jù)使用者獲得授權(quán)后向數(shù)據(jù)提供者申請(qǐng)使用數(shù)據(jù),驗(yàn)證通過(guò)后調(diào)用智能合約完成數(shù)據(jù)處理共享數(shù)據(jù)處理結(jié)果,數(shù)據(jù)使用者解密得到數(shù)據(jù)處理結(jié)果完成數(shù)據(jù)共享.在第3個(gè)場(chǎng)景下,數(shù)據(jù)共享流程以交易的形式進(jìn)行分布式共識(shí),最終記錄在區(qū)塊鏈中.例如,像發(fā)票這類(lèi)數(shù)據(jù)是一次性使用的,則共享次數(shù)不能超過(guò)1次,并且數(shù)據(jù)共享流程上鏈有利于業(yè)務(wù)辦理公開(kāi)透明,提供審計(jì)等功能.
在該模型下,數(shù)據(jù)擁有者從數(shù)據(jù)使用者獲取辦理業(yè)務(wù)需要的數(shù)據(jù)后向?qū)?yīng)的數(shù)據(jù)提供者申請(qǐng)共享數(shù)據(jù),作為整個(gè)模型的交互流起點(diǎn);隨著數(shù)據(jù)提供者在共享平臺(tái)發(fā)布共享數(shù)據(jù)并將數(shù)據(jù)存儲(chǔ)到分布式的IPFS平臺(tái)中;最后在共享平臺(tái)中進(jìn)行數(shù)據(jù)授權(quán).通過(guò)實(shí)用拜占庭容錯(cuò)機(jī)制[19-20]解決分布式區(qū)塊鏈網(wǎng)絡(luò)達(dá)成一致的問(wèn)題,實(shí)現(xiàn)區(qū)塊共識(shí),保證數(shù)據(jù)共享流程不可篡改,營(yíng)造良好的跨部門(mén)間業(yè)務(wù)協(xié)同數(shù)據(jù)共享環(huán)境.該模型數(shù)據(jù)共享過(guò)程中各參與方通過(guò)FabricCA生成的公私鑰進(jìn)行信息交互,公鑰作為各部門(mén)的代號(hào)向外界公開(kāi),私鑰由各部門(mén)自行保管.用戶(hù)需要廣播信息時(shí)可以通過(guò)私鑰對(duì)信息進(jìn)行加密,從而確保交易信息的真實(shí)性.該方案數(shù)據(jù)共享過(guò)程以交易的形式寫(xiě)入?yún)^(qū)塊鏈當(dāng)中,而用戶(hù)是區(qū)塊鏈網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn),所以在實(shí)際數(shù)據(jù)共享過(guò)程中數(shù)據(jù)共享是在用戶(hù)間直接完成的,同時(shí)網(wǎng)絡(luò)中的各節(jié)點(diǎn)對(duì)該交易檢驗(yàn)達(dá)成共識(shí),保證交易不可篡改,一旦在數(shù)據(jù)共享過(guò)程中發(fā)生糾紛,可以從區(qū)塊鏈中的查詢(xún)記錄進(jìn)行追溯,維護(hù)用戶(hù)權(quán)益.本文方案模型的主要流程如下:
1)數(shù)據(jù)擁有者向數(shù)據(jù)提供者申請(qǐng)業(yè)務(wù)辦理所需的共享數(shù)據(jù);
2)數(shù)據(jù)提供者驗(yàn)證數(shù)據(jù)擁有者身份并同意申請(qǐng)后按數(shù)據(jù)擁有者需求將數(shù)據(jù)加密后通過(guò)哈希運(yùn)算得到密文摘要,然后通過(guò)上傳數(shù)據(jù)智能合約自動(dòng)存儲(chǔ)數(shù)據(jù)密文至IPFS中并返回?cái)?shù)據(jù)內(nèi)容哈希值,然后將相應(yīng)解密密鑰以及數(shù)據(jù)內(nèi)容哈希值發(fā)送給數(shù)據(jù)擁有者,同時(shí)將相關(guān)數(shù)據(jù)信息存儲(chǔ)本地?cái)?shù)據(jù)庫(kù)并將數(shù)據(jù)內(nèi)容哈希值、密文摘要和數(shù)據(jù)相關(guān)屬性上鏈存儲(chǔ)到區(qū)塊鏈當(dāng)中;
3)數(shù)據(jù)擁有者為數(shù)據(jù)使用者頒發(fā)使用數(shù)據(jù)的授權(quán)令牌Token,并通過(guò)授權(quán)令牌Token一鍵申請(qǐng)業(yè)務(wù)辦理,同時(shí)將授權(quán)令牌Token和授權(quán)部門(mén)等其他授權(quán)信息以交易的形式上傳到區(qū)塊鏈中,保證數(shù)據(jù)授權(quán)可追溯,防止數(shù)據(jù)擁有者對(duì)已授權(quán)的數(shù)據(jù)進(jìn)行授權(quán)抵賴(lài)和數(shù)據(jù)使用者使用不合法數(shù)據(jù)進(jìn)行抵賴(lài)行為產(chǎn)生;
4)數(shù)據(jù)使用者收到業(yè)務(wù)辦理申請(qǐng)后觸發(fā)業(yè)務(wù)申請(qǐng)智能合約,驗(yàn)證業(yè)務(wù)辦理所需的材料是否齊全,若驗(yàn)證成功則開(kāi)始進(jìn)行業(yè)務(wù)辦理,否則業(yè)務(wù)辦理結(jié)束并通知數(shù)據(jù)擁有者;
5)數(shù)據(jù)使用者開(kāi)始進(jìn)行業(yè)務(wù)辦理需要根據(jù)數(shù)據(jù)擁有者頒發(fā)的授權(quán)令牌Token向數(shù)據(jù)提供者申請(qǐng)使用數(shù)據(jù);
6)數(shù)據(jù)提供者得到數(shù)據(jù)使用申請(qǐng)后觸發(fā)驗(yàn)證智能合約,驗(yàn)證數(shù)據(jù)使用者身份以及授權(quán)令牌Token的真?zhèn)?,?yàn)證成功后在本地?cái)?shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)是否滿(mǎn)足共享?xiàng)l件,若滿(mǎn)足共享?xiàng)l件則向數(shù)據(jù)使用者發(fā)送相應(yīng)密鑰并觸發(fā)數(shù)據(jù)處理智能合約,同時(shí)在本地?cái)?shù)據(jù)庫(kù)中更新數(shù)據(jù)相關(guān)屬性,并將數(shù)據(jù)內(nèi)容哈希值和更新后的數(shù)據(jù)相關(guān)屬性上鏈;
7)數(shù)據(jù)使用者通過(guò)密鑰解密數(shù)據(jù)處理結(jié)果,完成跨部門(mén)間業(yè)務(wù)協(xié)同辦理.
根據(jù)上述方案針對(duì)的3個(gè)場(chǎng)景,下面分析數(shù)據(jù)上傳、數(shù)據(jù)授權(quán)、數(shù)據(jù)處理以及區(qū)塊鏈記錄4個(gè)關(guān)鍵技術(shù).
該過(guò)程中需要先對(duì)數(shù)據(jù)進(jìn)行加密后再對(duì)數(shù)據(jù)進(jìn)行上傳存儲(chǔ),方案中用到的加密算法為同態(tài)加密中的Paillier算法,數(shù)據(jù)上傳存儲(chǔ)是將加密數(shù)據(jù)存儲(chǔ)至IPFS的流程添加到upload_file智能合約中,部署upload_file智能合約并同步到區(qū)塊鏈網(wǎng)絡(luò)中,通過(guò)upload_file智能合約自動(dòng)存儲(chǔ)數(shù)據(jù)密文到IPFS中并返回相應(yīng)數(shù)據(jù)內(nèi)容哈希值,將數(shù)據(jù)內(nèi)容哈希值等信息存儲(chǔ)到區(qū)塊鏈上.
1)加密數(shù)據(jù)
以下面場(chǎng)景的數(shù)據(jù)為例介紹數(shù)據(jù)加密.場(chǎng)景:某市領(lǐng)導(dǎo)為了了解本市的薪資水平,市統(tǒng)計(jì)局機(jī)構(gòu)B對(duì)市內(nèi)產(chǎn)業(yè)結(jié)構(gòu)及各產(chǎn)業(yè)平均薪資情況進(jìn)行統(tǒng)計(jì),但是對(duì)各產(chǎn)業(yè)職工具體薪資需要進(jìn)行保密.下面以市統(tǒng)計(jì)局機(jī)構(gòu)B(以下簡(jiǎn)稱(chēng)機(jī)構(gòu)B)對(duì)機(jī)構(gòu)A的統(tǒng)計(jì)進(jìn)行分析描述數(shù)據(jù)加密.
機(jī)構(gòu)A中的薪資數(shù)據(jù)由h條記錄和k個(gè)字段組成,如下所示:
(1)
(2)
C=EncHE(D′,r,PKHE)=gD′rnmodn2.
(3)
2)上傳數(shù)據(jù)
該方案中的共享數(shù)據(jù)通過(guò)加密后由智能合約自動(dòng)完成數(shù)據(jù)上傳,下面是上傳數(shù)據(jù)upload_file智能合約:
算法1.上傳數(shù)據(jù)upload_file.
輸入:數(shù)據(jù)密文路徑和文件名;
輸出:數(shù)據(jù)內(nèi)容哈希值.
func (t*SimpleChaincode)upload_file(stub shim.ChaincodeStubInterface,args []string)pb.Response {
if len(args)!=2 {
return shim.Error(″Incorrect number
of arguments.Expecting 2″)}
String(args[0]))
if err !=nil {
fmt.Println(″上傳ipfs時(shí)錯(cuò)誤:″,err)}
return hash}
本文設(shè)計(jì)的方案模型中,數(shù)據(jù)使用者需要通過(guò)數(shù)據(jù)擁有者頒發(fā)的授權(quán)令牌Token向數(shù)據(jù)提供者申請(qǐng)使用數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)從數(shù)據(jù)提供者向數(shù)據(jù)使用者直接共享.其中數(shù)據(jù)提供者完成數(shù)據(jù)共享驗(yàn)證成功后觸發(fā)data_processing智能合約,根據(jù)授權(quán)令牌Token中的數(shù)據(jù)內(nèi)容哈希值在IPFS中得到相對(duì)應(yīng)的數(shù)據(jù)密文,然后根據(jù)data_processing智能合約的規(guī)定完成數(shù)據(jù)密文處理,得到數(shù)據(jù)處理結(jié)果,最后使用同態(tài)加密密鑰對(duì)數(shù)據(jù)處理結(jié)果進(jìn)行解密,完成數(shù)據(jù)共享.其中授權(quán)令牌Token的設(shè)計(jì)結(jié)構(gòu)如圖2所示:
圖2 授權(quán)令牌架構(gòu)圖
授權(quán)令牌是用于數(shù)據(jù)擁有者為數(shù)據(jù)使用者進(jìn)行數(shù)據(jù)使用授權(quán)的一種憑證,可以防止非授權(quán)用戶(hù)獲得共享數(shù)據(jù)辦理數(shù)據(jù)擁有者不知情的業(yè)務(wù).其中內(nèi)容哈希是數(shù)據(jù)存儲(chǔ)在IPFS中返回的存儲(chǔ)地址哈希值經(jīng)過(guò)數(shù)據(jù)提供者公鑰加密的數(shù)據(jù)內(nèi)容哈希值,保證數(shù)據(jù)存儲(chǔ)地址只由數(shù)據(jù)提供者得知,防止數(shù)據(jù)原始信息泄露.授權(quán)部門(mén)是指獲得數(shù)據(jù)使用權(quán)限的部門(mén),即數(shù)據(jù)使用者,可以驗(yàn)證數(shù)據(jù)使用者和授權(quán)令牌Token擁有者身份是否一致,保證數(shù)據(jù)只能由被授權(quán)的用戶(hù)使用.業(yè)務(wù)描述是指數(shù)據(jù)使用者使用數(shù)據(jù)的相關(guān)描述,可以了解數(shù)據(jù)用途.使用終期是指數(shù)據(jù)的共享時(shí)間限制,保證數(shù)據(jù)共享可控.時(shí)間戳是指授權(quán)令牌頒發(fā)時(shí)間,用來(lái)記錄Token頒發(fā)時(shí)間.授權(quán)者信息是指頒發(fā)授權(quán)令牌的用戶(hù)信息,也就是數(shù)據(jù)擁有者相關(guān)信息,方便數(shù)據(jù)提供者對(duì)其進(jìn)行驗(yàn)證并查找相應(yīng)數(shù)據(jù).數(shù)字簽名是對(duì)上述信息用數(shù)據(jù)授權(quán)者私鑰進(jìn)行簽名,可以防止數(shù)據(jù)使用者使用其他數(shù)據(jù)后出現(xiàn)抵賴(lài)現(xiàn)象,并防止授權(quán)令牌Token篡改.
根據(jù)2.2節(jié)場(chǎng)景分別對(duì)密文中每條記錄的k個(gè)字段進(jìn)行加法同態(tài)計(jì)算,也就是對(duì)相應(yīng)密文進(jìn)行乘積運(yùn)算,得到密文計(jì)算結(jié)果C′:
(4)
機(jī)構(gòu)B使用同態(tài)加密私鑰SKHE=(λ,μ)對(duì)密文計(jì)算結(jié)果中的每個(gè)數(shù)據(jù)項(xiàng)進(jìn)行解密,得到機(jī)構(gòu)A共享的明文結(jié)果w:
(5)
Paillier算法具有加法同態(tài)性,所以解密得到的明文結(jié)果為機(jī)構(gòu)A中全部員工按照各項(xiàng)薪資區(qū)分的總工資,即1條記錄,k個(gè)字段.接下來(lái)對(duì)工資計(jì)算平均并進(jìn)行逆整數(shù)化處理,得到w′就是最終的共享結(jié)果:
(6)
以上是對(duì)密文進(jìn)行數(shù)據(jù)處理后解密得到數(shù)據(jù)處理結(jié)果的過(guò)程,不同的業(yè)務(wù)協(xié)同數(shù)據(jù)共享場(chǎng)景下需要對(duì)數(shù)據(jù)進(jìn)行不同的運(yùn)算,不過(guò)不同場(chǎng)景下各實(shí)體所需要完成的工作和數(shù)據(jù)共享思想都是大同小異的.
本方案中,共享數(shù)據(jù)由數(shù)據(jù)提供者向數(shù)據(jù)使用者轉(zhuǎn)移后,數(shù)據(jù)提供者都會(huì)在區(qū)塊鏈上記錄共享信息,實(shí)現(xiàn)共享可追溯,區(qū)塊鏈記錄階段需要完成2個(gè)方面的記錄:首先,將存儲(chǔ)在IPFS中的共享數(shù)據(jù)返回的數(shù)據(jù)內(nèi)容哈希值記錄在區(qū)塊鏈當(dāng)中;其次,對(duì)數(shù)據(jù)擁有者為數(shù)據(jù)使用者頒發(fā)的授權(quán)令牌Token進(jìn)行記錄.Fabric平臺(tái)的區(qū)塊鏈只存儲(chǔ)由數(shù)據(jù)內(nèi)容哈希值等相關(guān)數(shù)據(jù)信息組成的Merkle樹(shù),業(yè)務(wù)協(xié)同辦理所需的共享數(shù)據(jù)存儲(chǔ)在IPFS平臺(tái)中.
方案中區(qū)塊鏈中的區(qū)塊由塊頭和塊體2個(gè)部分組成,塊頭包含版本號(hào)、前一區(qū)塊的哈希值、時(shí)間戳、Merkle根哈希值和其他信息.塊體存儲(chǔ)的是交易信息,以二叉樹(shù)的形式存儲(chǔ)共享數(shù)據(jù)的內(nèi)容哈希值,最后得到一個(gè)根哈希值就是Merkle根哈希值.本文的交易信息包括哈希值、使用終期、時(shí)間戳、使用次數(shù)、上次使用時(shí)間和數(shù)據(jù)提供者對(duì)其的數(shù)字簽名.其中哈希值是指數(shù)據(jù)提供者根據(jù)數(shù)據(jù)擁有者申請(qǐng)需求存儲(chǔ)在IPFS中的共享數(shù)據(jù)的數(shù)據(jù)內(nèi)容哈希值密文,該密文是通過(guò)數(shù)據(jù)提供者公鑰加密的信息,保證只有數(shù)據(jù)提供者能得到哈希值,防止數(shù)據(jù)泄露.使用終期是指共享數(shù)據(jù)的共享時(shí)間限制,比如房產(chǎn)證的抵押截止日期,和時(shí)間戳一起用來(lái)保證數(shù)據(jù)共享的有序性.時(shí)間戳是指數(shù)據(jù)共享開(kāi)始時(shí)間,用來(lái)保證數(shù)據(jù)共享的有序性,并且防止有共享限制的數(shù)據(jù)在同一時(shí)間段進(jìn)行多次共享,比如房產(chǎn)證1次只能共享給1個(gè)數(shù)據(jù)使用者.使用次數(shù)是指共享數(shù)據(jù)的共享次數(shù),這一屬性主要是為了防止一次性數(shù)據(jù)被多次共享,保證失效數(shù)據(jù)不會(huì)重復(fù)使用,比如發(fā)票的使用次數(shù)為1.上次使用時(shí)間是指共享數(shù)據(jù)最近1次被共享的時(shí)間,可以通過(guò)查詢(xún)區(qū)塊鏈中的記錄方便地查看數(shù)據(jù)是否在共享時(shí)間內(nèi),驗(yàn)證是否滿(mǎn)足被共享的條件.
1)機(jī)密性.本方案使用了同態(tài)加密Paillier算法對(duì)數(shù)據(jù)進(jìn)行加密后存儲(chǔ)再進(jìn)行數(shù)據(jù)共享,從根本上解決用戶(hù)得到數(shù)據(jù)密文的問(wèn)題,實(shí)現(xiàn)只對(duì)用戶(hù)共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù)密文,保證數(shù)據(jù)機(jī)密性.
2)真實(shí)性.數(shù)據(jù)在區(qū)塊鏈存儲(chǔ)過(guò)程中是與數(shù)據(jù)提供者進(jìn)行綁定的,數(shù)據(jù)密文存儲(chǔ)在IPFS中,對(duì)應(yīng)的數(shù)據(jù)內(nèi)容哈希值通過(guò)數(shù)據(jù)提供者私鑰進(jìn)行簽名后存儲(chǔ)到區(qū)塊鏈中不可變更并永久存儲(chǔ),保證數(shù)據(jù)內(nèi)容哈希值和數(shù)據(jù)提供者進(jìn)行了綁定,由于數(shù)據(jù)內(nèi)容改變會(huì)引起對(duì)應(yīng)的數(shù)據(jù)內(nèi)容哈希值改變,所以保證了數(shù)據(jù)和數(shù)據(jù)提供者進(jìn)行綁定,保證數(shù)據(jù)的真實(shí)性.
3)完整性 .數(shù)據(jù)在經(jīng)過(guò)加密后使用哈希函數(shù)運(yùn)算得到密文摘要,并將密文摘要存儲(chǔ)在區(qū)塊鏈上,當(dāng)數(shù)據(jù)完成共享后,可以通過(guò)計(jì)算共享數(shù)據(jù)密文哈希摘要,并比對(duì)區(qū)塊鏈上的密文摘要驗(yàn)證數(shù)據(jù)完整性.
4)可控性.本文通過(guò)設(shè)計(jì)授權(quán)令牌Token實(shí)現(xiàn)數(shù)據(jù)訪(fǎng)問(wèn)控制,保證數(shù)據(jù)使用者只有在獲得數(shù)據(jù)擁有者授權(quán)并頒發(fā)授權(quán)令牌Token后才能向數(shù)據(jù)提供者申請(qǐng)使用數(shù)據(jù)的權(quán)限,實(shí)現(xiàn)數(shù)據(jù)擁有者對(duì)數(shù)據(jù)擁有唯一操作權(quán),控制數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限.
5)防抵賴(lài)性.方案中業(yè)務(wù)協(xié)同數(shù)據(jù)共享的過(guò)程記錄在區(qū)塊鏈上,可對(duì)數(shù)據(jù)共享過(guò)程進(jìn)行追蹤溯源實(shí)現(xiàn)了防抵賴(lài)功能.其中包括2個(gè)方面:首先,針對(duì)數(shù)據(jù)提供者方面,如果因?yàn)閿?shù)據(jù)提供者共享的數(shù)據(jù)在業(yè)務(wù)協(xié)同辦理中產(chǎn)生了問(wèn)題,可以根據(jù)區(qū)塊鏈可追溯和不可篡改的特性防止數(shù)據(jù)提供者抵賴(lài)已共享的數(shù)據(jù);其次,針對(duì)數(shù)據(jù)使用者方面,如果數(shù)據(jù)使用者不是使用的數(shù)據(jù)提供者共享的數(shù)據(jù)信息,可以通過(guò)區(qū)塊鏈可追溯和不可篡改的特性得知,從而防止數(shù)據(jù)使用者使用不合法的數(shù)據(jù)后進(jìn)行抵賴(lài).
本文提出的方案中,性能評(píng)估主要是評(píng)估搭建的聯(lián)盟鏈性能進(jìn)行分析.所以本節(jié)主要對(duì)本文提出方案搭建的聯(lián)盟鏈網(wǎng)絡(luò)交易吞吐量進(jìn)行測(cè)試.本方案針對(duì)電子政務(wù)環(huán)境下業(yè)務(wù)協(xié)同數(shù)據(jù)共享的應(yīng)用場(chǎng)景,設(shè)計(jì)的聯(lián)盟網(wǎng)絡(luò)共有3個(gè)聯(lián)盟組織,分別代表數(shù)據(jù)提供者、數(shù)據(jù)擁有者和數(shù)據(jù)使用者,每個(gè)組織中包含1個(gè)主節(jié)點(diǎn)和1個(gè)背書(shū)節(jié)點(diǎn),主節(jié)點(diǎn)負(fù)責(zé)與Orderer節(jié)點(diǎn)進(jìn)行通信,將交易從Orderer節(jié)點(diǎn)分發(fā)到組織中的其他節(jié)點(diǎn),組織間采用單通道的形式進(jìn)行通信.測(cè)試工具為Caliper框架,實(shí)驗(yàn)中進(jìn)行了聯(lián)盟鏈寫(xiě)入壓力測(cè)試和查詢(xún)壓力測(cè)試,具體測(cè)試方法為設(shè)置1 000筆寫(xiě)入數(shù)據(jù)的交易量,目的是測(cè)試賬本寫(xiě)入性能,設(shè)置5 000筆查詢(xún)數(shù)據(jù)的交易量,目的是測(cè)試賬本讀取性能,并且控制交易的發(fā)送速度,查看數(shù)據(jù)寫(xiě)入和查詢(xún)各階段的最小響應(yīng)時(shí)間、最大響應(yīng)時(shí)間、平均響應(yīng)時(shí)間和交易處理速度,共進(jìn)行10次測(cè)試.測(cè)試結(jié)果如表1所示,從表1可知聯(lián)盟網(wǎng)絡(luò)運(yùn)行穩(wěn)定,交易完成率100%,同時(shí)隨著發(fā)送速度的提升,吞吐量受到一定影響.
表1 聯(lián)盟鏈網(wǎng)絡(luò)壓力測(cè)試結(jié)果表
下面通過(guò)折線(xiàn)圖的形式展示交易發(fā)送速度和交易響應(yīng)時(shí)間、交易發(fā)送速度和交易處理速度的關(guān)系,如圖3是寫(xiě)入壓力測(cè)試交易響應(yīng)時(shí)間和交易處理速度折線(xiàn)圖,圖4是查詢(xún)壓力測(cè)試交易響應(yīng)時(shí)間和交易處理速度折線(xiàn)圖.
圖3 寫(xiě)入壓力測(cè)試交易響應(yīng)時(shí)間和交易處理速度圖
圖4 查詢(xún)壓力測(cè)試交易響應(yīng)時(shí)間和交易處理速度圖
由圖3(a)可知,交易響應(yīng)時(shí)間在交易發(fā)送速度為50 TPS和100 TPS時(shí)處于較低的水平,但是在交易發(fā)送速度為150 TPS后交易響應(yīng)時(shí)間開(kāi)始大幅度上漲,這說(shuō)明寫(xiě)入賬本功能在150 TPS以下時(shí)響應(yīng)時(shí)間較少能夠保證高效交易.由圖3(b)可知,交易處理速度在交易發(fā)送速度為150 TPS以后開(kāi)始趨于穩(wěn)定狀態(tài),基本維持在145 TPS左右,說(shuō)明寫(xiě)入賬本功能的交易處理速度峰值為150 TPS.
由圖4所知在查詢(xún)壓力測(cè)試環(huán)境下,交易響應(yīng)時(shí)間在交易發(fā)送速度為100 TPS,200 TPS和300 TPS時(shí)處于較低的水平,并且在交易發(fā)送速度為300 TPS時(shí)交易處理速度達(dá)到峰值300 TPS.但是在交易發(fā)送速度為350 TPS開(kāi)始交易響應(yīng)時(shí)間上升至20 s,而且交易處理速度下降到250 TPS左右,這表明查詢(xún)賬本功能的交易處理速度峰值為300 TPS,并且交易發(fā)送速度達(dá)到交易處理速度峰值時(shí)交易響應(yīng)時(shí)間明顯增加.
在實(shí)際電子政務(wù)環(huán)境業(yè)務(wù)協(xié)同數(shù)據(jù)共享場(chǎng)景下,交易發(fā)送速度在150 TPS時(shí),寫(xiě)入賬本的響應(yīng)時(shí)間較快能夠保證高效交易,交易的發(fā)送速度在300 TPS時(shí)查詢(xún)賬本的效率較高,交易處理相對(duì)穩(wěn)定,交易的響應(yīng)時(shí)間也是在可接受范圍,并且聯(lián)盟網(wǎng)絡(luò)運(yùn)行穩(wěn)定,交易吞吐量也滿(mǎn)足業(yè)務(wù)需求,所以測(cè)試結(jié)果可以滿(mǎn)足跨部門(mén)業(yè)務(wù)協(xié)同數(shù)據(jù)共享要求.
電子政務(wù)場(chǎng)景下解決數(shù)據(jù)在跨部門(mén)間共享的同時(shí)保證數(shù)據(jù)的安全是一個(gè)具有挑戰(zhàn)性的問(wèn)題.本文針對(duì)該問(wèn)題提出了一種基于區(qū)塊鏈的業(yè)務(wù)協(xié)同數(shù)據(jù)安全共享方案,通過(guò)結(jié)合區(qū)塊鏈、IPFS、智能合約和Paillier達(dá)到保護(hù)共享數(shù)據(jù)隱私,實(shí)現(xiàn)數(shù)據(jù)在業(yè)務(wù)協(xié)同中安全共享.該方案通過(guò)構(gòu)建Fabric環(huán)境,并與去中心化的IPFS結(jié)合以脫鏈的形式存儲(chǔ)共享數(shù)據(jù),解決了區(qū)塊鏈存儲(chǔ)問(wèn)題,并提高了共識(shí)效率.根據(jù)業(yè)務(wù)邏輯編寫(xiě)智能合約完成相應(yīng)數(shù)據(jù)處理得到數(shù)據(jù)處理結(jié)果實(shí)現(xiàn)共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù),從根本上解決數(shù)據(jù)隱私泄露問(wèn)題.此外,通過(guò)設(shè)計(jì)授權(quán)令牌Token并將其記錄在區(qū)塊中實(shí)現(xiàn)訪(fǎng)問(wèn)控制,保證數(shù)據(jù)擁有者對(duì)數(shù)據(jù)擁有唯一控制權(quán).該方案應(yīng)用于電子政務(wù)環(huán)境下實(shí)現(xiàn)跨部門(mén)間的數(shù)據(jù)安全共享.