本發(fā)明屬于區(qū)塊鏈,具體涉及一種基于sgx(software?guardextensions,軟件防護(hù)擴(kuò)展指令)和cp-abe(ciphertext?policy?attribute?basedencryption,密文策略屬性加密)的區(qū)塊鏈bim數(shù)據(jù)共享系統(tǒng)及方法。
背景技術(shù):
1、隨著工程領(lǐng)域信息化建設(shè)的不斷推進(jìn),工程數(shù)字化得到了快速發(fā)展。建筑信息模型bim(building?information?modeling)已經(jīng)成為設(shè)計(jì)、施工、管理復(fù)雜工程項(xiàng)目的核心技術(shù)。目前bim技術(shù)已經(jīng)得到了廣泛的應(yīng)用,通過(guò)提供詳盡的建筑信息模型,不僅提高了工程項(xiàng)目的效率和質(zhì)量,還促進(jìn)了各利益相關(guān)方之間的協(xié)同工作。
2、然而,隨著bim應(yīng)用的不斷擴(kuò)大,數(shù)據(jù)可信共享的問(wèn)題日益凸顯,尤其是在保證數(shù)據(jù)可信管理和安全共享方面存在著很大的挑戰(zhàn)。例如,傳統(tǒng)的中心化bim數(shù)據(jù)共享平臺(tái)將bim數(shù)據(jù)存儲(chǔ)在中心化服務(wù)器中,通過(guò)角色劃分為用戶提供粗粒度的數(shù)據(jù)共享服務(wù),只能通過(guò)不斷新增系統(tǒng)角色的方式來(lái)處理日益增長(zhǎng)的海量bim數(shù)據(jù),導(dǎo)致系統(tǒng)角色冗余。同時(shí),傳統(tǒng)方法通常在中心服務(wù)器本地進(jìn)行bim數(shù)據(jù)加解密等操作,無(wú)法保護(hù)共享過(guò)程的數(shù)據(jù)和密鑰不被篡改,產(chǎn)生了多部門協(xié)同效率低下、出問(wèn)題無(wú)法追責(zé)等問(wèn)題。
3、區(qū)塊鏈技術(shù)具備不可篡改性、去中心化和安全性等特點(diǎn),其本質(zhì)上是一個(gè)去中心化的分布式賬本。
4、sgx(software?guard?extensions,軟件防護(hù)擴(kuò)展指令)是一套cpu指令,于2013年由英特爾公司提出。該指令可支持應(yīng)用創(chuàng)建安全區(qū)(enclave),安全區(qū)是應(yīng)用地址空間中受保護(hù)的區(qū)域,可確保終端操作系統(tǒng)環(huán)境上信息內(nèi)容的機(jī)密性和完整性。安全區(qū)中的數(shù)據(jù)只能被安全區(qū)中的代碼訪問(wèn),試圖從軟件角度訪問(wèn)enclave的內(nèi)存內(nèi)容是不被允許的,從而提供了硬件級(jí)的保護(hù)能力。
5、cp-abe(ciphertext?policy?attribute?based?encryption,密文策略屬性加密)是一種公鑰密碼體制,可根據(jù)用戶的屬性來(lái)控制其對(duì)特定資源的訪問(wèn)權(quán)限,當(dāng)且僅當(dāng)用戶的屬性滿足密文中的訪問(wèn)策略時(shí),才能夠解密數(shù)據(jù)。這種加密方式能夠?yàn)橛脩籼峁┘?xì)粒度的訪問(wèn)控制,從而保護(hù)敏感數(shù)據(jù)不被未授權(quán)的用戶訪問(wèn)。
6、基于區(qū)塊鏈技術(shù)、sgx技術(shù)和cp-abe加密方案,可構(gòu)建一套新的bim數(shù)據(jù)共享系統(tǒng),解決bim數(shù)據(jù)共享過(guò)程中權(quán)限顆粒度不足及密鑰和數(shù)據(jù)易泄漏的問(wèn)題,有效提升工程部門間協(xié)同效率。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)存在的不足,本發(fā)明提供了一種基于sgx和cp-abe的區(qū)塊鏈bim數(shù)據(jù)共享系統(tǒng)及方法,通過(guò)引入intelsgx的硬件安全機(jī)制,結(jié)合cp-abe加密方案,基于區(qū)塊鏈技術(shù)不可篡改、去中心化和智能合約自動(dòng)執(zhí)行的特性,構(gòu)建了一種細(xì)粒度且過(guò)程安全可信的bim數(shù)據(jù)共享系統(tǒng)。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
3、第一方面,本發(fā)明公開(kāi)了基于sgx和cp-abe的區(qū)塊鏈bim數(shù)據(jù)共享系統(tǒng),包括sgx可信加密系統(tǒng)、ipfs存儲(chǔ)系統(tǒng)和區(qū)塊鏈系統(tǒng);
4、所述sgx可信加密系統(tǒng)包括enclave內(nèi)存保護(hù)區(qū)域,該系統(tǒng)會(huì)接收bim數(shù)據(jù)上傳或下載請(qǐng)求;
5、接收bim數(shù)據(jù)上傳請(qǐng)求時(shí),sgx可信加密系統(tǒng)會(huì)接收待上傳的bim數(shù)據(jù)并進(jìn)行加密,再將加密后的bim數(shù)據(jù)上傳至ipfs存儲(chǔ)系統(tǒng)進(jìn)行存儲(chǔ),所述ipfs存儲(chǔ)系統(tǒng)成功存儲(chǔ)數(shù)據(jù)后會(huì)輸出該數(shù)據(jù)的唯一標(biāo)識(shí)文件cid至sgx可信加密系統(tǒng),sgx可信加密系統(tǒng)將該cid輸入至區(qū)塊鏈系統(tǒng);
6、接收bim數(shù)據(jù)下載請(qǐng)求時(shí),sgx可信加密系統(tǒng)基于該下載請(qǐng)求從區(qū)塊鏈系統(tǒng)獲得待下載的bim數(shù)據(jù)的cid,再基于該cid從ipfs存儲(chǔ)系統(tǒng)獲得待下載的bim數(shù)據(jù)并輸出;
7、所述區(qū)塊鏈系統(tǒng)包括區(qū)塊鏈網(wǎng)絡(luò)層、智能合約層和區(qū)塊鏈賬本層,區(qū)塊鏈網(wǎng)絡(luò)層用于部署區(qū)塊鏈的多個(gè)對(duì)等節(jié)點(diǎn)和多個(gè)排序節(jié)點(diǎn),智能合約層部署于對(duì)等節(jié)點(diǎn)上;對(duì)等節(jié)點(diǎn)用于承載和運(yùn)行智能合約,并驗(yàn)證對(duì)等節(jié)點(diǎn)間執(zhí)行智能合約的結(jié)果是否一致,所述排序節(jié)點(diǎn)用于確保所有節(jié)點(diǎn)對(duì)交易順序正確;所述智能合約層用于與區(qū)塊鏈網(wǎng)絡(luò)層進(jìn)行數(shù)據(jù)交互;所述區(qū)塊鏈賬本層用于存儲(chǔ)sgx可信加密系統(tǒng)輸入的信息;
8、所述ipfs存儲(chǔ)系統(tǒng)用于存儲(chǔ)bim數(shù)據(jù)并生成唯一標(biāo)識(shí)文件cid。
9、第二方面,本發(fā)明公開(kāi)了一種利用所述系統(tǒng)實(shí)現(xiàn)的共享方法,包括以下步驟:
10、進(jìn)行用戶注冊(cè)時(shí),用戶屬性控制單元接收外部輸入的用戶屬性信息,并將用戶屬性信息以鍵值對(duì)形式存儲(chǔ)到區(qū)塊鏈賬本層中,所述用戶屬性信息包括用戶名、登錄密碼和私人屬性,所述私人屬性包括工齡、職位、年齡,用戶屬性控制單元會(huì)生成該用戶的用戶id,所述鍵值對(duì)為以用戶id為鍵,以用戶屬性信息為鍵值的鍵值對(duì),全部用戶對(duì)應(yīng)的鍵值對(duì)構(gòu)成用戶屬性集合;
11、接收bim數(shù)據(jù)上傳請(qǐng)求時(shí),sgx可信加密系統(tǒng)會(huì)接收待上傳的bim數(shù)據(jù)、屬性訪問(wèn)策略,并為該bim數(shù)據(jù)生成唯一的bim數(shù)據(jù)id以及計(jì)算該bim數(shù)據(jù)的哈希值并將哈希值輸入至區(qū)塊鏈系統(tǒng)中,enclave內(nèi)存保護(hù)區(qū)域會(huì)隨機(jī)生成aes密鑰并對(duì)該bim數(shù)據(jù)進(jìn)行aes對(duì)稱加密,再將加密后的數(shù)據(jù)輸入至ipfs存儲(chǔ)系統(tǒng)進(jìn)行存儲(chǔ),所述ipfs存儲(chǔ)系統(tǒng)成功存儲(chǔ)數(shù)據(jù)后會(huì)輸出該數(shù)據(jù)的唯一標(biāo)識(shí)文件cid至sgx可信加密系統(tǒng),enclave內(nèi)存保護(hù)區(qū)域會(huì)根據(jù)屬性訪問(wèn)策略對(duì)aes密鑰和cid進(jìn)行cp-abe加密,并將bim數(shù)據(jù)id、bim數(shù)據(jù)的哈希值、屬性訪問(wèn)策略、加密后的aes密鑰和cid信息輸入至區(qū)塊鏈系統(tǒng);
12、接收bim數(shù)據(jù)下載請(qǐng)求時(shí),sgx可信加密系統(tǒng)基于請(qǐng)求bim數(shù)據(jù)下載的用戶id通過(guò)用戶屬性控制單元獲取該用戶的用戶屬性信息,并基于請(qǐng)求下載的bim數(shù)據(jù)id通過(guò)bim數(shù)據(jù)訪問(wèn)控制單元獲取bim元數(shù)據(jù)結(jié)構(gòu)體;enclave內(nèi)存保護(hù)區(qū)域根據(jù)獲取的用戶屬性信息并基于cp-abe屬性私鑰生成方法獲得屬性私鑰,并基于屬性私鑰對(duì)獲取的bim元數(shù)據(jù)結(jié)構(gòu)體解密,若解密失敗,則bim數(shù)據(jù)下載失敗;若解密成功,則得到cid、哈希值和aes密鑰,根據(jù)cid從ipfs存儲(chǔ)系統(tǒng)獲取加密后的bim數(shù)據(jù),基于aes密鑰對(duì)加密后的bim數(shù)據(jù)進(jìn)行解密,獲得待下載的bim數(shù)據(jù)并計(jì)算該數(shù)據(jù)的哈希值;若計(jì)算得到的哈希值與解密得到的哈希值一致,則將解密得到的待下載的bim數(shù)據(jù)輸出;反之,則不輸出。
13、進(jìn)一步地,sgx可信加密系統(tǒng)將待上傳的bim數(shù)據(jù)的哈希值輸入至區(qū)塊鏈系統(tǒng)后,bim數(shù)據(jù)訪問(wèn)控制單元會(huì)查詢區(qū)塊鏈賬本層中的哈希值列表,比較判斷哈希值列表是否有與當(dāng)前輸入的哈希值相同的哈希值,若有,拒絕本次上傳請(qǐng)求;若無(wú),將該哈希值存儲(chǔ)到哈希值列表中,且返回繼續(xù)上傳指令給sgx可信加密系統(tǒng)。
14、與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果有:
15、1.基于區(qū)塊鏈技術(shù)不可篡改、去中心化等特性,依托訪問(wèn)操作記錄單元,所有用戶在系統(tǒng)內(nèi)進(jìn)行的所有操作均會(huì)記錄在區(qū)塊鏈上,提供透明可靠的溯源能力。
16、2.基于cp-abe加密算法,提供基于屬性的細(xì)粒度bim數(shù)據(jù)訪問(wèn)控制服務(wù),且支持用戶屬性的更新,具備實(shí)時(shí)性。
17、3.使用sgx技術(shù)構(gòu)建硬件級(jí)enclave內(nèi)存保護(hù)區(qū)域,保證加解密過(guò)程中bim數(shù)據(jù)和密鑰的安全性和不可篡改,有效防止惡意第三方對(duì)系統(tǒng)的攻擊。
18、4.構(gòu)建基于ipfs的存儲(chǔ)系統(tǒng),擴(kuò)展了區(qū)塊鏈的存儲(chǔ)能力,提升區(qū)塊鏈上智能合約的執(zhí)行效率。