黃敏
(四川托普信息技術(shù)職業(yè)學(xué)院,四川 成都 611743)
船舶是我國海上或河流貨物運(yùn)輸、渡海渡河的交通工具,然而保證所有船舶的安全航行,船舶信息的安全訪問是首要任務(wù)。本文針對(duì)目前區(qū)塊鏈中船舶信息訪問用戶的身份隱私和船舶信息存取隱私的需求,設(shè)計(jì)了一套從身份識(shí)別和訪問控制兩個(gè)方面基于區(qū)塊鏈中的聯(lián)盟鏈隱私保護(hù)方案。在用戶身份隱私方面,該方案實(shí)現(xiàn)了用戶在網(wǎng)絡(luò)中匿名,實(shí)現(xiàn)船舶信息存取和用戶的不可關(guān)聯(lián)性;通過驗(yàn)證,本方案實(shí)現(xiàn)了對(duì)船舶信息的安全訪問控制,最大程度防止了非法用戶截取或篡改船舶的機(jī)密信息,保證了船舶信息安全,為船舶安全航行奠定了基礎(chǔ),對(duì)船舶信息的安全訪問研究具有重要意義。以下就現(xiàn)有的聯(lián)盟鏈進(jìn)行優(yōu)化,以提高船舶信息訪問的安全性、以及對(duì)船舶信息進(jìn)行有效訪問控制。
通過分析發(fā)現(xiàn),現(xiàn)有Fabric中二級(jí)證書機(jī)制存在以下兩個(gè)問題:一是生成TcertPub_Key公匙時(shí)的密鑰派生算法較復(fù)雜。二是現(xiàn)有可追溯的方式存在一定的問題。監(jiān)管者或者是用戶需要通過一種安全的方式獲取加密密鑰pre-k,所以這會(huì)增加方案的復(fù)雜性。為了解決現(xiàn)有方案中存在的問題,提出了如下優(yōu)化方案。
此改進(jìn)方案從TcertPub_Key公匙的生成過程著手,采用優(yōu)化后的復(fù)雜密鑰派生算法。此改進(jìn)過程不僅提高了密鑰派生算法的效率,而且減少了Tcert證書的存儲(chǔ)空間,降低了數(shù)據(jù)庫密鑰存儲(chǔ)的壓力。
改進(jìn)的Tcert包括三部分:Tcert的私匙TcertPriv_Key、Tcert的公匙TcertPub_Key和extension的生成。改進(jìn)后的Tcert結(jié)構(gòu)如下:1.TcertID:Tcert的ID;2.DerivationID:認(rèn)證上事務(wù)的派生 ID;3.EncDerivationID:派生ID的密文;4.TcertPub_Key:Tcert的公匙;5.Extension:證書擴(kuò)展域;6.ValidityPeriod:證書的有效期。
改進(jìn)后的交易證書同樣是標(biāo)準(zhǔn)的X509證書,與原方案不同的是在改進(jìn)的方案中交易證書Tcert的擴(kuò)展域部分不需要存儲(chǔ)TcertIndex加密之后的密文,同時(shí)也不需要存儲(chǔ)EnrollmentID的密文信息,但是需要存儲(chǔ)Tcert的派生ID(DerivationID)的密文信息EncDerivationID[1]。
改進(jìn)后Tcert的生成過程,包含三部分:證書公鑰(TcertPub_Key)的生成和私鑰(TcertPriv_Key)的生成以及證書擴(kuò)展域(Extension)的生成。
首先是證書公鑰的生成,在接收到用戶的請(qǐng)求后生成TcertPub_Key的步驟如下:1.TCA生成隨機(jī)數(shù)nonce;2.TCA計(jì)算派生IDDerivationID=Hash(nonce);3.TCA利 用DerivationID和 注 冊(cè) 證書公鑰EnrollPub_Key生成簽名公鑰TcertPub_Key=EnrollPub_Key+DerivationID*G。
與此同時(shí),利用加密密鑰EncryptKey對(duì)DerivationID進(jìn)行加密,并將密文存儲(chǔ)在證書的擴(kuò)展域部分,拓展域的生成步驟如下:1.TCA生成自己的根密鑰TCA_KDF_Key,并利用所要生成的交易證書Tcert中的序列號(hào)TcertID產(chǎn)生派生密鑰KeyDF_Key;2.TCA生成加密DerivationID的加密密鑰EncryptKey;3.TCA計(jì)算密文enDerivationID;4.將密文存儲(chǔ)在證書的擴(kuò)展域extension部分。
將批量生成的交易證書Tcerts以及派生密鑰KeyDF_Key通過安全信道發(fā)送給用戶,用戶用以恢復(fù)出簽名私鑰及發(fā)起交易。
最后是改進(jìn)后Tcert私鑰的生成。用戶在接收到傳送過來的Tcerts證書以及KeyDF_Key后生成Tcerts證書對(duì)應(yīng)的簽名私鑰。
改進(jìn)之后的方案優(yōu)化了生成公鑰TcertPub_Key過程中的密鑰派生算法以及證書擴(kuò)展域extension部分,而且能夠?qū)崿F(xiàn)了前臺(tái)匿名后臺(tái)可追溯的需求,優(yōu)化了Tcert生成過程中的密鑰派生算法,降低了數(shù)據(jù)庫密鑰存儲(chǔ)的壓力。
聯(lián)盟鏈提供了節(jié)點(diǎn)的準(zhǔn)入機(jī)制,很大程度限制了惡意節(jié)點(diǎn),使區(qū)塊鏈網(wǎng)絡(luò)更加安全,但是聯(lián)盟鏈中所有節(jié)點(diǎn)依然共享同一賬本,因此提出對(duì)聯(lián)盟鏈網(wǎng)絡(luò)進(jìn)行粒度更小的劃分,使其隱私性更高[2]的方案。
賬本可以理解為一串經(jīng)過加密的區(qū)塊的鏈條,每一個(gè)區(qū)塊包含著transactions和當(dāng)前world state等信息。區(qū)塊中除了包含常規(guī)信息,還包含一些交易數(shù)據(jù)相關(guān)信息,這些信息可以被同一通道中所有成員節(jié)點(diǎn)獲取,這些信息雖然不能明確的表示交易內(nèi)容,但是有鏈碼執(zhí)行能力的節(jié)點(diǎn)可以根據(jù)己知的信息運(yùn)行相應(yīng)的鏈碼得出交易輸出結(jié)果,結(jié)合讀寫集合推測(cè)交易內(nèi)容。本論文設(shè)計(jì)了一種基于賬本內(nèi)容的訪問控制策略。下面介紹了改造后Fabric網(wǎng)絡(luò)的交易流程,該步驟如下所示:
1.利用支持SDK的應(yīng)用程序生成對(duì)稱密鑰Key,并加密交易提案。2.應(yīng)用程序?qū)⒔灰滋岚复虬鼮檫m當(dāng)?shù)募軜?gòu)格式,并使用用戶私鑰簽名生成交易提案。3.應(yīng)用程序?qū)⒔灰滋岚赴l(fā)送給預(yù)置的背書節(jié)點(diǎn)。4.背書節(jié)點(diǎn)處理交易提案,使用對(duì)稱密鑰Key解密輸入數(shù)據(jù)。5.背書節(jié)點(diǎn)模擬執(zhí)行交易,產(chǎn)生讀寫集。6.背書節(jié)點(diǎn)發(fā)送背書結(jié)果。7.應(yīng)用程序驗(yàn)證背書策略。8.應(yīng)用程序SDK將交易提案和響應(yīng)廣播到到排序服務(wù)。9.排序服務(wù)將交易按時(shí)間順序排序,并打包成塊。改造后的區(qū)塊整體結(jié)構(gòu)根本沒有改變,因此改造方案可適應(yīng)原方案的數(shù)據(jù)結(jié)構(gòu)和接口。最后由于賬本數(shù)據(jù)保存在PC的文件系統(tǒng)中,為了避免文件數(shù)據(jù)被惡意攻擊或竊取,可在文件系統(tǒng)層次上對(duì)賬本數(shù)據(jù)進(jìn)行加密。
船舶信息的安全訪問與存儲(chǔ)直接關(guān)系著船舶航行方向的正確與船舶自身的安全,控制船舶信息被非法人員竊取和篡改、可有效防止船舶在航行中失去原有的航行方向,在航行過程中直接關(guān)系到船上人員、貨物的安全。本文對(duì)fabric平臺(tái)優(yōu)化了交易證書Tcert的表結(jié)構(gòu)以及Tcert證書生成過程中的密鑰派生算法;最后經(jīng)過實(shí)驗(yàn)證明提出的優(yōu)化方案明顯大大降低了非法人員的非法訪問,為船舶的安全航行奠定了基礎(chǔ)。