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