張學(xué)旺,殷梓杰,馮家琦,葉財(cái)金,付 康
(1.重慶郵電大學(xué)軟件工程學(xué)院,重慶 400065;2.重慶大學(xué)微電子與通信工程學(xué)院,重慶 400044)
隨著大數(shù)據(jù)相關(guān)技術(shù)高速發(fā)展,大數(shù)據(jù)[1]相關(guān)產(chǎn)業(yè)對(duì)數(shù)據(jù)的需求越來(lái)越大,但數(shù)據(jù)往往被少部分人掌握,許多擁有能釋放數(shù)據(jù)價(jià)值的人往往拿不到想要的數(shù)據(jù)。面對(duì)這類(lèi)問(wèn)題,數(shù)據(jù)交易的出現(xiàn)可以打破數(shù)據(jù)孤島問(wèn)題,數(shù)據(jù)的流通能夠匯聚高價(jià)值數(shù)據(jù),滿足各類(lèi)企業(yè)、高校團(tuán)體等對(duì)數(shù)據(jù)的需求,提高數(shù)據(jù)價(jià)值的利用。數(shù)據(jù)交易對(duì)各類(lèi)大數(shù)據(jù)產(chǎn)業(yè)的創(chuàng)新發(fā)展有著深遠(yuǎn)的意義,大數(shù)據(jù)的價(jià)值可以通過(guò)數(shù)據(jù)交易得以釋放[2]。
但由于數(shù)據(jù)本身的特性——數(shù)據(jù)的可復(fù)制性,加上數(shù)據(jù)的價(jià)值本身就是信息,數(shù)據(jù)的信息價(jià)值可能在數(shù)據(jù)被“閱讀”時(shí)便被獲?。?],這些特性導(dǎo)致數(shù)據(jù)交易困難。數(shù)據(jù)拷貝成本低、維權(quán)難,企業(yè)并不愿意分享重要數(shù)據(jù),且國(guó)內(nèi)數(shù)據(jù)交易的發(fā)展現(xiàn)在正處于初級(jí)階段,交易模式也尚在探索之中,目前還沒(méi)有一致的標(biāo)準(zhǔn)和規(guī)范,數(shù)據(jù)交易方案需要完善,數(shù)據(jù)交易缺乏可信、可行的實(shí)施方案導(dǎo)致交易無(wú)法安全地進(jìn)行。
目前,主流的數(shù)據(jù)交易模式為應(yīng)用程序接口(Application Programming Interface,API)交易[3]和數(shù)據(jù)包交易,如表1 所示。第一種方式解決了數(shù)據(jù)交易領(lǐng)域中的一部分問(wèn)題,例如使數(shù)據(jù)可脫敏以及在一定程度上防止數(shù)據(jù)被竊取倒賣(mài),但這種模式只能提供部分?jǐn)?shù)據(jù),無(wú)法使用完整的數(shù)據(jù)集,不方便用戶對(duì)數(shù)據(jù)進(jìn)行處理和分析;而第二種數(shù)據(jù)包交易的模式在實(shí)際交易中由于數(shù)據(jù)的特性導(dǎo)致數(shù)據(jù)確權(quán)難、數(shù)據(jù)資產(chǎn)容易流失,所以具有較大的爭(zhēng)議。
這些交易模式或多或少都存在著一些缺點(diǎn),無(wú)法滿足現(xiàn)在數(shù)據(jù)供應(yīng)與需求兩方之間對(duì)數(shù)據(jù)交易的要求。區(qū)塊鏈技術(shù)采用一系列密碼學(xué)算法在非信任節(jié)點(diǎn)之間建立信任關(guān)系,而不是依賴中心機(jī)構(gòu)的信用背書(shū),這種特殊的安全模型使得區(qū)塊鏈隱私保護(hù)不同于傳統(tǒng)的隱私保護(hù)。區(qū)塊鏈憑借不可篡改性以及可追溯性,使得其在數(shù)據(jù)資產(chǎn)交易領(lǐng)域能夠有所應(yīng)用,區(qū)塊鏈可以構(gòu)建數(shù)據(jù)資產(chǎn)交易的索引、幫助數(shù)據(jù)溯源以及確權(quán)。
表1 數(shù)據(jù)交易方式對(duì)比Tab.1 Comparison of data trading methods
本文以區(qū)塊鏈與可信計(jì)算為基礎(chǔ),非對(duì)稱加密技術(shù)為輔,針對(duì)當(dāng)前數(shù)據(jù)交易面對(duì)的困難,防止數(shù)據(jù)交易過(guò)程中造成的數(shù)據(jù)二次轉(zhuǎn)讓問(wèn)題以及數(shù)據(jù)隱私問(wèn)題,提出一種有效可行的數(shù)據(jù)交易方案。本文方案主要目的如下:
1)數(shù)據(jù)供應(yīng)方上傳數(shù)據(jù)索引信息,通過(guò)區(qū)塊鏈存儲(chǔ)數(shù)據(jù)交易索引信息;
2)數(shù)據(jù)需求方購(gòu)買(mǎi)數(shù)據(jù),通過(guò)區(qū)塊鏈記錄數(shù)據(jù)交易過(guò)程與數(shù)據(jù)使用記錄;
3)基于可信計(jì)算技術(shù),保證數(shù)據(jù)使用環(huán)境安全、數(shù)據(jù)不會(huì)被泄露;
4)基于可信計(jì)算技術(shù),保證數(shù)據(jù)使用結(jié)果無(wú)法被竊取。
區(qū)塊鏈技術(shù)在中本聰?shù)谋忍貛牛?]熱潮下,引起了眾多研究領(lǐng)域的廣泛關(guān)注。區(qū)塊鏈[5-6]技術(shù)在沒(méi)有任何可信機(jī)構(gòu)的維持下,使互不認(rèn)識(shí)、互不信任的人之間可以進(jìn)行交易。以太坊(Ethereum)區(qū)塊鏈平臺(tái)[7]的提出,首次引入智能合約,為區(qū)塊鏈提供了更多數(shù)字貨幣以外的應(yīng)用場(chǎng)景。而隨著Linux 基金會(huì)發(fā)布Hyperledger 開(kāi)源區(qū)塊鏈項(xiàng)目,其中Hyperledger Fabric 針對(duì)企業(yè)級(jí)商用區(qū)塊鏈進(jìn)行應(yīng)用設(shè)計(jì),引入成員管理服務(wù),為區(qū)塊鏈應(yīng)用提供了良好的解決方案。
區(qū)塊鏈發(fā)展過(guò)程中也誕生了許多與數(shù)據(jù)交易相關(guān)的研究。2016 年Christidis 等[8]研究了區(qū)塊鏈與物聯(lián)網(wǎng)的特性,描述了區(qū)塊鏈與物聯(lián)網(wǎng)結(jié)合發(fā)展的前景,提出了在區(qū)塊鏈上轉(zhuǎn)移數(shù)字資產(chǎn)的方法以及如何利用智能合約轉(zhuǎn)移數(shù)字資產(chǎn)。物聯(lián)網(wǎng)發(fā)展的同時(shí)也會(huì)帶來(lái)海量數(shù)據(jù),區(qū)塊鏈與物聯(lián)網(wǎng)有效結(jié)合可以提供更好的隱私保護(hù)[9-10]。2017 年劉敖迪等[11]從區(qū)塊鏈的基本框架、技術(shù)特征和應(yīng)用領(lǐng)域多個(gè)方面闡述了區(qū)塊鏈基本理論和模型,總結(jié)了區(qū)塊鏈在認(rèn)證技術(shù)、訪問(wèn)控制技術(shù)和數(shù)據(jù)保護(hù)技術(shù)方面的研究進(jìn)展。祝烈煌等[12]分析了區(qū)塊鏈技術(shù)在隱私保護(hù)方面存在的優(yōu)勢(shì)與不足,描述了現(xiàn)有研究中針對(duì)區(qū)塊鏈隱私的攻擊方法,詳細(xì)介紹了針對(duì)區(qū)塊鏈網(wǎng)絡(luò)層、交易層和應(yīng)用層的隱私保護(hù)機(jī)制。
2018 年盛念祖等[13]提出使用區(qū)塊鏈來(lái)解決物聯(lián)網(wǎng)系統(tǒng)中數(shù)據(jù)資產(chǎn)價(jià)值轉(zhuǎn)移無(wú)法高效完成等問(wèn)題,通過(guò)智能合約技術(shù)保障數(shù)據(jù)的防篡改性,為物聯(lián)網(wǎng)設(shè)備提供全生命周期的設(shè)備數(shù)據(jù)資產(chǎn)化方案,消除數(shù)據(jù)交易過(guò)程中的信任問(wèn)題。張弛[14]提出構(gòu)建一種新型的數(shù)據(jù)資產(chǎn)交易體系,引入?yún)^(qū)塊鏈技術(shù)解決數(shù)據(jù)資產(chǎn)交易平臺(tái)緩存、復(fù)制、留存交易數(shù)據(jù)的問(wèn)題,保護(hù)數(shù)據(jù)的隱私性和安全性,保障數(shù)據(jù)資產(chǎn)交易者的權(quán)益不被數(shù)據(jù)資產(chǎn)交易平臺(tái)侵占,實(shí)現(xiàn)所有權(quán)認(rèn)證、數(shù)據(jù)保密等機(jī)制,體現(xiàn)數(shù)據(jù)確權(quán)可追溯等特點(diǎn),但仍無(wú)法有效解決數(shù)據(jù)交易后的拷貝泄露問(wèn)題。
總的來(lái)說(shuō),在數(shù)據(jù)交易中利用區(qū)塊鏈的特性,能夠?yàn)榻灰滋峁┌踩c隱私保證,智能合約引入可以支持更多的業(yè)務(wù)邏輯。但由于智能合約作為區(qū)塊鏈的一部分,需要覆蓋全部節(jié)點(diǎn),這也決定了智能合約體量不易過(guò)大,邏輯不能過(guò)分復(fù)雜以免出現(xiàn)漏洞。這就意味著需要更好的鏈下協(xié)同解決方案來(lái)保證業(yè)務(wù)邏輯實(shí)現(xiàn)。
隨著互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展以及移動(dòng)互聯(lián)網(wǎng)的普及,各類(lèi)計(jì)算平臺(tái)[15]以及云平臺(tái)安全問(wèn)題也隨之增長(zhǎng),各類(lèi)惡意攻擊威脅著信息安全,也導(dǎo)致許多企業(yè)、個(gè)人遭受著隱私與財(cái)產(chǎn)被侵害的危險(xiǎn)。單純通過(guò)使用軟件的形式難以解決這些問(wèn)題,而以硬件安全芯片為信任根的可信計(jì)算[16-18]環(huán)境為此提供了一種新的解決思路。
2015 年,可信計(jì)算組織(Trusted Computing Group,TCG)發(fā)布了可信平臺(tái)模塊(Trusted Platform Module,TPM)2.0[19]規(guī)范,成為ISO/IEC 標(biāo)準(zhǔn);以CPU 作為信任根,建立從信任根到應(yīng)用程序的信用鏈。目前我國(guó)可信計(jì)算技術(shù)走在世界前沿,已經(jīng)進(jìn)入了可信3.0[20]發(fā)展階段,其核心思想是建立一套主動(dòng)免疫的計(jì)算機(jī)安全體系。
隨著云計(jì)算、5G、物聯(lián)網(wǎng)、區(qū)塊鏈、人工智能等新技術(shù)與應(yīng)用場(chǎng)景的出現(xiàn)[21],也為可信計(jì)算提供了許多融合發(fā)展的“溫床”,當(dāng)前可信計(jì)算主要的融合創(chuàng)新包括移動(dòng)可信計(jì)算、抗量子可信計(jì)算、可信物聯(lián)網(wǎng)、可信區(qū)塊鏈[21]等應(yīng)用場(chǎng)景。其中可信區(qū)塊鏈中有許多成功的案例,例如阿里云旗下的螞蟻區(qū)塊鏈的可信計(jì)算服務(wù),以自研虛擬機(jī)內(nèi)嵌可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)為基礎(chǔ),實(shí)現(xiàn)了通用鏈下智能合約為數(shù)據(jù)提供保密服務(wù),為解決區(qū)塊鏈鏈上鏈下數(shù)據(jù)協(xié)同問(wèn)題提供了一種解決方法。
可信計(jì)算的主要方法是以一個(gè)可信根為基礎(chǔ),建立一條可信鏈,然后自底向上,從底層硬件一直擴(kuò)展到應(yīng)用,通過(guò)對(duì)硬件、軟件的全面把控,增強(qiáng)整個(gè)計(jì)算系統(tǒng)的安全性。信任根可以由TPM/TCM/TPCM 的形式實(shí)現(xiàn),其安全假設(shè)不完全適用于實(shí)際網(wǎng)絡(luò)環(huán)境,但可以設(shè)計(jì)為協(xié)同工作的模塊化組件,負(fù)責(zé)獨(dú)立地實(shí)現(xiàn)業(yè)務(wù)功能。
圖1 TCM基本結(jié)構(gòu)Fig.1 Basic structure of TCM
為了防止數(shù)據(jù)信息被篡改,區(qū)塊鏈?zhǔn)且詤^(qū)塊為最小單位的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。區(qū)塊的組成結(jié)構(gòu)通常分為區(qū)塊頭與區(qū)塊體兩部分。在該交易方案區(qū)塊鏈結(jié)構(gòu)設(shè)計(jì)中,區(qū)塊頭負(fù)責(zé)存放當(dāng)前區(qū)塊Hash 值(CurHash)、上一個(gè)區(qū)塊的Hash 值(PreHash)、時(shí)間戳(Timestamp)、區(qū)塊體中包含的數(shù)據(jù)記錄數(shù)(DataRecord),詳見(jiàn)表2。
表2 區(qū)塊頭結(jié)構(gòu)Tab.2 Block header structure
區(qū)塊體中記錄數(shù)據(jù)索引信息,包括記錄編號(hào)、主體數(shù)據(jù)描述、數(shù)據(jù)內(nèi)容的Hash 值、數(shù)據(jù)提供方公鑰、數(shù)據(jù)記錄時(shí)間、數(shù)據(jù)標(biāo)價(jià)、數(shù)據(jù)交易記錄以及數(shù)據(jù)使用記錄。
區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)是一種基于哈希指針的有序單向鏈表結(jié)構(gòu),通過(guò)哈希指針的方式確保區(qū)塊鏈的不可篡改性和可追溯性。不可篡改性是通過(guò)哈希指針來(lái)實(shí)現(xiàn)的,區(qū)塊鏈的初始化生成一個(gè)創(chuàng)世區(qū)塊;由創(chuàng)世區(qū)塊開(kāi)始,每個(gè)區(qū)塊打包時(shí)都會(huì)在區(qū)塊頭生成一個(gè)CurHash 和一個(gè)PreHash,新生成的區(qū)塊PreHash 值會(huì)指向前一個(gè)區(qū)塊的CurHash,這種鏈?zhǔn)浇Y(jié)構(gòu)確保區(qū)塊鏈信息難以被更改;當(dāng)攻擊者對(duì)某個(gè)區(qū)塊進(jìn)行修改時(shí),該區(qū)塊的后一個(gè)區(qū)塊PreHash 值就不再正確,當(dāng)攻擊者對(duì)后一個(gè)區(qū)塊進(jìn)行修改時(shí),繼續(xù)往后的區(qū)塊也會(huì)不再正確。鏈?zhǔn)浇Y(jié)構(gòu)維護(hù)了區(qū)塊鏈的穩(wěn)定,確保區(qū)塊鏈無(wú)法被篡改。具體結(jié)構(gòu)如圖2所示。
圖2 交易索引鏈結(jié)構(gòu)Fig.2 Trading index chain structure
區(qū)塊體主要作為數(shù)據(jù)主體信息的記錄,主要目的是實(shí)現(xiàn)數(shù)據(jù)可追溯、數(shù)據(jù)主體可驗(yàn)證和數(shù)據(jù)交易可追溯。數(shù)據(jù)可追溯主要體現(xiàn)為:數(shù)據(jù)主體可以在更迭中產(chǎn)生更新,可以將新的數(shù)據(jù)信息索引進(jìn)行上鏈,后續(xù)產(chǎn)生的數(shù)據(jù)索引信息可以指向上一個(gè)版本的數(shù)據(jù)內(nèi)容Hash 值;數(shù)據(jù)主體可驗(yàn)證主要體現(xiàn)為:為了保證數(shù)據(jù)安全,數(shù)據(jù)主體不存放在任何第三方設(shè)備而由數(shù)據(jù)提供者保存,只有在交易完成后的使用階段才傳輸數(shù)據(jù)進(jìn)入可信計(jì)算環(huán)境,通過(guò)數(shù)據(jù)內(nèi)容Hash 可以對(duì)數(shù)據(jù)主體進(jìn)行驗(yàn)證;數(shù)據(jù)交易可追溯主要體現(xiàn)為:對(duì)數(shù)據(jù)的交易操作存儲(chǔ)在區(qū)塊鏈中,由于區(qū)塊鏈本身具有不可篡改的特性,可以保證數(shù)據(jù)交易記錄的可追溯性,可信計(jì)算環(huán)境也可通過(guò)交易記錄來(lái)驗(yàn)證交易雙方身份。
引入可信計(jì)算環(huán)境,主要解決下列兩個(gè)問(wèn)題:
1)使鏈上鏈下進(jìn)行協(xié)同,在保證數(shù)據(jù)隱私安全的前提下對(duì)鏈上業(yè)務(wù)進(jìn)行擴(kuò)展。鏈上數(shù)據(jù)主要記錄數(shù)據(jù)主體信息同時(shí)保證數(shù)據(jù)、交易的可追溯性,而可信計(jì)算則為方案中所涉及到的業(yè)務(wù)需求提供一個(gè)可信執(zhí)行環(huán)境。
2)數(shù)據(jù)流轉(zhuǎn)中會(huì)涉及到隱私保護(hù)需求,需要在不暴露用戶數(shù)據(jù)的情況下對(duì)數(shù)據(jù)進(jìn)行計(jì)算分析,并對(duì)結(jié)果進(jìn)行加密傳輸,解決數(shù)據(jù)的隱私泄露問(wèn)題。
在現(xiàn)有的數(shù)據(jù)交易模式中,通常需要中間平臺(tái)來(lái)集結(jié)數(shù)據(jù)供應(yīng)方和數(shù)據(jù),然后以接口的形式提供數(shù)據(jù);或者是直接交易數(shù)據(jù)集。這些方式都容易造成數(shù)據(jù)泄露,難以防范數(shù)據(jù)被拷貝和二次銷(xiāo)售?;趨^(qū)塊鏈與可信計(jì)算技術(shù),本文設(shè)計(jì)了一種數(shù)據(jù)交易模型,如圖3 所示。根據(jù)數(shù)據(jù)交易的需求將交易雙方抽象成兩個(gè)對(duì)象:
數(shù)據(jù)供應(yīng)方——擁有數(shù)據(jù)這一生產(chǎn)資料,希望將數(shù)據(jù)資產(chǎn)變現(xiàn),但又擔(dān)心數(shù)據(jù)資產(chǎn)可復(fù)制性導(dǎo)致交易出去的數(shù)據(jù)可能被二次轉(zhuǎn)讓?zhuān)棺约簳?huì)失去數(shù)據(jù)的主導(dǎo)權(quán)。例如工業(yè)物聯(lián)網(wǎng)中產(chǎn)生的工業(yè)數(shù)據(jù)。
數(shù)據(jù)需求方——擁有轉(zhuǎn)換、加工數(shù)據(jù)這一生產(chǎn)資料的能力,但缺乏數(shù)據(jù),需要從其他擁有數(shù)據(jù)的數(shù)據(jù)供應(yīng)方手中購(gòu)買(mǎi)數(shù)據(jù)來(lái)挖掘數(shù)據(jù)的潛在價(jià)值,但又擔(dān)心泄露技術(shù)機(jī)密。
完整的交易流程包括:
數(shù)據(jù)供應(yīng)方上傳數(shù)據(jù)索引信息,系統(tǒng)通過(guò)各節(jié)點(diǎn)共識(shí)后將數(shù)據(jù)索引信息上傳到數(shù)據(jù)索引區(qū)塊鏈中;數(shù)據(jù)需求方購(gòu)買(mǎi)數(shù)據(jù)后,將交易流程記錄到區(qū)塊鏈中,數(shù)據(jù)需求方獲得數(shù)據(jù)的使用權(quán),無(wú)法下載數(shù)據(jù),或查看完整數(shù)據(jù),斷絕數(shù)據(jù)的二次轉(zhuǎn)讓。
當(dāng)數(shù)據(jù)需求方需要使用數(shù)據(jù)時(shí),將算法代碼輸出描述以及算法代碼Hash 值上傳,發(fā)送數(shù)據(jù)調(diào)用請(qǐng)求;可信計(jì)算環(huán)境生成一個(gè)公私鑰對(duì),將公鑰發(fā)送給數(shù)據(jù)供應(yīng)方和數(shù)據(jù)需求方,數(shù)據(jù)供應(yīng)方與需求方加密數(shù)據(jù)與算法、用個(gè)人私鑰簽名后上傳至可信計(jì)算環(huán)境;可信計(jì)算環(huán)境獲取數(shù)據(jù)與算法后,用可信私鑰解鎖后驗(yàn)證數(shù)據(jù)主體與算法的Hash 值是否正確,在確定數(shù)據(jù)與算法的Hash值無(wú)誤后進(jìn)行運(yùn)算。
運(yùn)算完成后,可信計(jì)算環(huán)境將運(yùn)算結(jié)果用數(shù)據(jù)需求方的公鑰進(jìn)行加密、用可信計(jì)算環(huán)境的私鑰進(jìn)行簽名后,將加密后算法結(jié)果返回給數(shù)據(jù)需求方;同時(shí)銷(xiāo)毀可信計(jì)算環(huán)境內(nèi)數(shù)據(jù)、算法以及算法結(jié)果。
圖3 數(shù)據(jù)交易模型Fig.3 Model of data trading
基于可信芯片為核心、結(jié)合可信硬件構(gòu)建可信鏈,構(gòu)建可信操作系統(tǒng)內(nèi)核提供可信核心服務(wù),內(nèi)核啟動(dòng)后由可信應(yīng)用處理業(yè)務(wù)服務(wù)。本文提出一種可信計(jì)算框架,如圖4 所示,根據(jù)功能結(jié)構(gòu)自底向上分為物理層、中間層和應(yīng)用層。
圖4 可信計(jì)算框架Fig.4 Framework of trusted computing
物理層由可信硬件與可信芯片組成,負(fù)責(zé)可信計(jì)算環(huán)境的安全控制與運(yùn)算功能,本質(zhì)上是由存儲(chǔ)器、輸入/輸出(Input/Output,I/O)、密碼處理引擎、隨機(jī)數(shù)生成器與執(zhí)行控制引擎組成。可信平臺(tái)模塊(TPM)由可信計(jì)算組織(Trusted Computing Group,TCG)提出,使用哈希消息認(rèn)證碼(Hashbased Message Authentication Code,HMAC)引擎提供Hash 驗(yàn)證,運(yùn)用密鑰生成器與密鑰協(xié)處理器提供密鑰生成檢驗(yàn)功能,執(zhí)行引擎負(fù)責(zé)執(zhí)行程序代碼;可信密碼模塊(Trusted Cryptography Module,TCM)是由我國(guó)自主研發(fā)的基于國(guó)密算法的安全芯片,該芯片以TPM 1.2框架為基礎(chǔ)、國(guó)密算法為核心,更加符合我國(guó)安全管理策略要求;可信平臺(tái)控制模塊(Trusted Platform Control Module,TPCM)則是以可信密碼模塊為基礎(chǔ),新增主動(dòng)控制模塊。
中間層以底層可信硬件為基礎(chǔ)為應(yīng)用層提供服務(wù),是應(yīng)用層調(diào)用底層功能的接口,主要負(fù)責(zé)密鑰與證書(shū)管理、事件管理器、文件系統(tǒng)以及虛擬化容器管理。
應(yīng)用層為主要業(yè)務(wù)功能實(shí)現(xiàn),分為可信密鑰模塊、可信驗(yàn)證模塊和可信計(jì)算模塊??尚琶荑€模塊使用非對(duì)稱加密算法生成可信的公私鑰對(duì),可信私鑰存于可信存儲(chǔ)環(huán)境,用于驗(yàn)證??尚殴€則發(fā)送給用戶用于加密數(shù)據(jù)與算法,保證數(shù)據(jù)傳輸安全;可信驗(yàn)證模塊通過(guò)哈希算法與非對(duì)稱加密算法,對(duì)加密數(shù)據(jù)進(jìn)行解密,并結(jié)合鏈上信息驗(yàn)證鏈下數(shù)據(jù)、算法以及用戶簽名,保證鏈上信息與鏈下數(shù)據(jù)能夠?qū)?yīng);可信計(jì)算模塊采用虛擬化容器技術(shù),為計(jì)算提供可信的執(zhí)行環(huán)境,數(shù)據(jù)與算法在通過(guò)驗(yàn)證模塊后,轉(zhuǎn)入可信計(jì)算模塊中進(jìn)行運(yùn)算,最后將運(yùn)算結(jié)果返回給數(shù)據(jù)需求方,將交易過(guò)程記錄到鏈上后,銷(xiāo)毀內(nèi)部數(shù)據(jù)。
交易完成后,在請(qǐng)求數(shù)據(jù)使用時(shí),本文方案使用哈希算法、非對(duì)稱加密算法與可信計(jì)算來(lái)保證機(jī)密性與完整性。為了保證數(shù)據(jù)傳輸過(guò)程安全可靠,基于可信計(jì)算環(huán)境生成的公私鑰對(duì),建立如圖5所示的加密傳輸。以圖5所示的數(shù)據(jù)需求方數(shù)據(jù)加密流程為例,具體步驟描述如下:
步驟1 數(shù)據(jù)需求方發(fā)出數(shù)據(jù)使用請(qǐng)求后,可信計(jì)算環(huán)境生成公私鑰對(duì)(PK可信,SK可信),并將PK可信發(fā)送給數(shù)據(jù)供應(yīng)方與數(shù)據(jù)需求方。
步驟2 收到PK可信后,使用PK可信對(duì)原始數(shù)據(jù)Data 進(jìn)行加密,encry=encrypt(Data,PK可信),然后使用自身私鑰進(jìn)行簽名,sigEncry=sign(SK提供方,encry)。
步驟3 可信計(jì)算環(huán)境收到加密數(shù)據(jù)sigEncry 后,使用鏈上的數(shù)據(jù)提供方公鑰驗(yàn)證簽名并用可信私鑰進(jìn)行解密,decrData=decrypt(sigEncry,PK提供方,SK可信)。
步驟4 計(jì)算解密后的數(shù)據(jù)decrData 的Hash 值,與鏈上數(shù)據(jù)主體Hash 值進(jìn)行對(duì)比,valid=verify(Hash(decrData),Hash提供者),檢驗(yàn)數(shù)據(jù)完整性,驗(yàn)證成功后進(jìn)行計(jì)算。
步驟5 計(jì)算完成后,對(duì)計(jì)算結(jié)果result 進(jìn)行加密,res=encrypt(result,PK提供者),將加密后的res返回給數(shù)據(jù)需求方。
圖5 可信計(jì)算環(huán)境支撐的加密傳輸Fig.5 Encryption process supported by trusted computing environment
數(shù)據(jù)交易驗(yàn)證的主要功能是保證可信計(jì)算環(huán)境接收到的數(shù)據(jù)與算法代碼與交易時(shí)協(xié)商的一致。在請(qǐng)求數(shù)據(jù)使用前,數(shù)據(jù)使用的申請(qǐng)會(huì)被記錄在交易索引鏈中,包括算法的Hash值、算法的使用描述以及算法的輸出描述,保證計(jì)算結(jié)果不牽涉數(shù)據(jù)隱私。
在數(shù)據(jù)使用過(guò)程中,可信計(jì)算環(huán)境對(duì)解密后的數(shù)據(jù)以及算法進(jìn)行驗(yàn)證,與鏈上信息進(jìn)行比對(duì),確認(rèn)數(shù)據(jù)一致性;并且將計(jì)算結(jié)果使用數(shù)據(jù)需求方公鑰進(jìn)行加密留存,將數(shù)據(jù)使用結(jié)果Hash 值記錄在區(qū)塊鏈中,以便于出現(xiàn)數(shù)據(jù)使用糾紛時(shí)為數(shù)據(jù)使用過(guò)程提供證明。數(shù)據(jù)交易驗(yàn)證過(guò)程如圖6 所示,具體步驟如下:
步驟1 數(shù)據(jù)需求方發(fā)出數(shù)據(jù)使用請(qǐng)求時(shí),上傳算法代碼相關(guān)信息,驗(yàn)證信息包括:Hash算法、算法描述desc算法、算法結(jié)果描述desc結(jié)果。
步驟2 可信計(jì)算環(huán)境對(duì)數(shù)據(jù)和算法進(jìn)行驗(yàn)證,保證數(shù)據(jù)與算法Hash值與鏈上一致。
步驟3 將計(jì)算結(jié)果result 采用需求方公鑰PK需求方進(jìn)行加密,encry=encrypt(result,PK需求方),并在可信計(jì)算存儲(chǔ)留存。
步驟4 將計(jì)算結(jié)果Hash 上傳至交易索引鏈,記錄交易流程。
圖6 數(shù)據(jù)交易驗(yàn)證過(guò)程Fig.6 Data trading verification process
鑒于現(xiàn)有數(shù)據(jù)交易方案中存在的問(wèn)題,提出一種數(shù)據(jù)交易方案,引入?yún)^(qū)塊鏈與可信計(jì)算技術(shù)結(jié)合業(yè)務(wù)需求,構(gòu)建了一種新的數(shù)據(jù)交易渠道。相較于傳統(tǒng)的數(shù)據(jù)交易模式,通過(guò)區(qū)塊鏈和可信計(jì)算環(huán)境的構(gòu)建,能夠有效保證數(shù)據(jù)傳輸安全。在不暴露用戶數(shù)據(jù)的情況下,將交易數(shù)據(jù)的使用權(quán)提供給數(shù)據(jù)需求方來(lái)進(jìn)行計(jì)算和分析,以保證數(shù)據(jù)的隱私性和安全性。
本文方案具有以下特點(diǎn):
1)采用非中心化的模式,對(duì)數(shù)據(jù)索引信息、交易過(guò)程以及數(shù)據(jù)使用記錄進(jìn)行存儲(chǔ)。鏈上數(shù)據(jù)主要作為交易索引與鏈下數(shù)據(jù)協(xié)同,將鏈上無(wú)法實(shí)現(xiàn)的復(fù)雜業(yè)務(wù)邏輯轉(zhuǎn)移到鏈下可信計(jì)算環(huán)境進(jìn)行,在保證數(shù)據(jù)隱私安全的前提下對(duì)鏈上業(yè)務(wù)進(jìn)行擴(kuò)展。同時(shí)可采用聯(lián)盟鏈的形式,提供準(zhǔn)入機(jī)制,對(duì)節(jié)點(diǎn)成員進(jìn)行把控。
2)與現(xiàn)有的數(shù)據(jù)交易方式相比,本文方案中數(shù)據(jù)主體不在任何一方留存,數(shù)據(jù)提供方在保證數(shù)據(jù)所有權(quán)不被危害的前提下交易“數(shù)據(jù)中所包含的信息”,且不會(huì)泄露數(shù)據(jù)隱私。攻擊者如果在傳輸過(guò)程截獲數(shù)據(jù),必須計(jì)算出對(duì)應(yīng)私鑰或者攻擊可信計(jì)算環(huán)境來(lái)獲得私鑰。相較于傳統(tǒng)的數(shù)據(jù)交易方式,本文方案所交易的數(shù)據(jù)無(wú)法被竊取或者泄露。