摘要:IPFS是借助BitTorrent傳輸技術(shù)、自我驗證文件系統(tǒng)和P2P網(wǎng)絡(luò)技術(shù)實現(xiàn)的一種新型數(shù)據(jù)傳輸協(xié)議,其優(yōu)勢在于存儲成本低、運行效率高,不受寬帶資源限制。本文基于IPFS技術(shù)分析如何有效設(shè)計區(qū)塊鏈物聯(lián)網(wǎng)安全模型,結(jié)果顯示,基于IPFS所設(shè)計的區(qū)塊鏈物聯(lián)網(wǎng)安全模型,可降低跨網(wǎng)信任成本,以IPFS為底層數(shù)據(jù)庫,同時為區(qū)塊鏈提供隱私保護。
關(guān)鍵詞:區(qū)塊鏈;IPFS;物聯(lián)網(wǎng);安全模型;設(shè)計
一、引言
物聯(lián)網(wǎng)是隨著互聯(lián)網(wǎng)和移動通信網(wǎng)絡(luò)的成熟而產(chǎn)生的第三波信息波,而且是國家大力發(fā)展的一個重要產(chǎn)業(yè)。但在物聯(lián)網(wǎng)發(fā)展進程中,也面臨著嚴峻的安全問題,嚴重威脅著用戶信息資產(chǎn)和生命安全。物聯(lián)網(wǎng)和區(qū)塊鏈有著相似的分布情況,采用區(qū)塊鏈技術(shù),能使物聯(lián)網(wǎng)數(shù)據(jù)實現(xiàn)分布式傳輸與處理,通過打破云物聯(lián)網(wǎng)架構(gòu),實現(xiàn)依賴第三方云端的桎梏得以解除,解決物聯(lián)網(wǎng)服務(wù)體系存在的安全問題[1]。星際文件傳輸系統(tǒng)(英文簡稱IPFS)屬于點對點文件分布系統(tǒng),其主要目標是通過一個統(tǒng)一的文件體系來完成各臺電腦之間的互聯(lián)。從技術(shù)上來看,IPFS是借助BitTorrent傳輸技術(shù)、自我驗證文件系統(tǒng)和P2P網(wǎng)絡(luò)技術(shù)實現(xiàn)的一種新型數(shù)據(jù)傳輸協(xié)議,其優(yōu)勢在于存儲成本低、運行效率高,不受寬帶資源限制,而且文件能夠永久存儲,基于IPFS的互聯(lián)網(wǎng),可抵抗自然災(zāi)害、中心服務(wù)器宕機以及戰(zhàn)爭情況,不會過度依賴互聯(lián)網(wǎng)主干網(wǎng),達到高并發(fā)訪問、文件版本管理目標。本文基于IPFS技術(shù),分析如何有效設(shè)計區(qū)塊鏈物聯(lián)網(wǎng)安全模型。
二、技術(shù)需求和設(shè)計原則
隨著物聯(lián)網(wǎng)的不斷擴張,智能設(shè)備形成的數(shù)據(jù)量隨之增加,集中式數(shù)據(jù)存儲與管理隱患重重,再加上有限的寬帶,很難對大量數(shù)據(jù)進行及時處理,物聯(lián)網(wǎng)設(shè)備數(shù)量、樣式持續(xù)增長,嚴峻挑戰(zhàn)以往互聯(lián)網(wǎng)架構(gòu),必須及時解決物聯(lián)網(wǎng)設(shè)備高可用性、安全性、低時延、可擴展以及網(wǎng)絡(luò)彈性等問題[2]?;贗PFS技術(shù)的區(qū)塊鏈物聯(lián)網(wǎng)安全模型需求包括:有效資源利用、分布式云存儲、完全隱私、提升服務(wù)質(zhì)量等。從根本上說,物聯(lián)網(wǎng)以資源高效管理、可擴展和安全為目標,但該目標實現(xiàn)的前提,在于去中心化分布式云存儲。為符合物聯(lián)網(wǎng)服務(wù)所需,區(qū)塊物聯(lián)網(wǎng)安全模型在借助IPFS技術(shù)設(shè)計過程中,必須遵循安全性、網(wǎng)絡(luò)彈性、可擴展性以及性能表現(xiàn)等原則。
三、模塊架構(gòu)和服務(wù)流程
基于區(qū)塊鏈技術(shù)特性,與以往物聯(lián)網(wǎng)結(jié)構(gòu)模型相結(jié)合,設(shè)計出基于IPFS技術(shù)的區(qū)塊鏈物聯(lián)網(wǎng)安全模型(見圖1),IPFS技術(shù)下所構(gòu)建的區(qū)塊物聯(lián)網(wǎng)安全模型內(nèi)含三種身份,即物聯(lián)網(wǎng)設(shè)備、服務(wù)提供商、區(qū)塊鏈節(jié)點。
圖1 IPFS技術(shù)下的區(qū)塊鏈物聯(lián)網(wǎng)安全模型
基于 IPFS的區(qū)塊鏈物聯(lián)網(wǎng)服務(wù)流程如下:第一,物聯(lián)網(wǎng)設(shè)備利用設(shè)備的私有密鑰對服務(wù)請求進行簽名,其中包括設(shè)備公鑰、服務(wù)請求數(shù)據(jù)和服務(wù)提供者公鑰。裝置簽署,將所有的事務(wù)進行封裝,并將其傳送給維持該節(jié)點的區(qū)塊鏈。其次,服務(wù)商通過公共鑰查詢區(qū)塊的業(yè)務(wù)信息,并接受業(yè)務(wù)需求。同樣,業(yè)務(wù)提供者將業(yè)務(wù)應(yīng)答的內(nèi)容以同樣的方法記錄在區(qū)塊鏈上。最后,物聯(lián)網(wǎng)設(shè)備通過公鑰獲取服務(wù)內(nèi)容。服務(wù)流程內(nèi),私鑰對數(shù)據(jù)信息所有權(quán)進行了標識,而公鑰則指明數(shù)據(jù)交易對象。
本項目以 POS和 PBFT的價值證明機制為基礎(chǔ),將終端產(chǎn)生的業(yè)務(wù)加入該區(qū)塊的網(wǎng)絡(luò)中,并利用該協(xié)議和終端的公開密鑰對該交易進行認證。經(jīng)過確認的交易才能被合并。當成交量達到臨界值時,由網(wǎng)絡(luò)中的所有節(jié)點通過投票產(chǎn)生一個新的數(shù)據(jù)塊。與產(chǎn)生事務(wù)相似,一個新的塊包含了一個合法事務(wù)的主要公共密鑰,散列值和簽名。成鏈區(qū)塊包含區(qū)塊上的區(qū)塊散列值及區(qū)塊識別資訊,確保區(qū)塊產(chǎn)生的資訊可以追蹤。
例如,物聯(lián)網(wǎng)的請求服務(wù)過程與服務(wù)提供者服務(wù)過程十分相似。物聯(lián)網(wǎng)設(shè)備提供的服務(wù)請求、服務(wù)過程及協(xié)議驗證如圖2所示。
圖2 物聯(lián)網(wǎng)驗證流程
(一)交易生成
針對區(qū)塊鏈節(jié)點、物聯(lián)網(wǎng)設(shè)備和服務(wù)提供商,采用不對稱密碼技術(shù)產(chǎn)生一組可識別的密鑰,并采用 ECC密碼學(xué)方法保存設(shè)備的私有密鑰,并將設(shè)備的公開密鑰保存在 IPFS數(shù)據(jù)庫中。它可以作為一個網(wǎng)絡(luò)的識別標志,用來進行信息的查詢和發(fā)送。服務(wù)請求、內(nèi)容由交易模塊生成,交易基礎(chǔ)信息主要包括交易發(fā)送主體公鑰、服務(wù)請求、接收者公鑰和時間戳,借助SHA256加密算法實現(xiàn)交易ID的自動生成,由交易ID利用FuncSig算法與發(fā)送私鑰形成交易簽名。
(二)區(qū)塊打包
物聯(lián)網(wǎng)設(shè)備向網(wǎng)絡(luò)節(jié)點傳播交易信息,節(jié)點先驗證交易,若和交易簽名匹配,必須驗證該交易的發(fā)出者,是不是發(fā)送主體所發(fā)。設(shè)定交易打包閾值,當網(wǎng)上的貿(mào)易達到一定的數(shù)額時,主端就會將貿(mào)易的內(nèi)容進行封裝。與事務(wù)產(chǎn)生模塊一樣,產(chǎn)生的塊主節(jié)點首先將公共密鑰包含到新區(qū)塊中,確保區(qū)塊信息的真實性[3]。利用FuncSig算法對區(qū)塊信息、節(jié)點私鑰生成簽名、區(qū)塊ID、簽名以及區(qū)塊信息共同組成新區(qū)塊。
(三)區(qū)塊鏈生成
組合前區(qū)塊和當前區(qū)塊的哈希值,從而產(chǎn)生區(qū)塊鏈。發(fā)送主體的所有交易都會在區(qū)塊鏈儲存,不能被更改。
(四)交易查詢
相關(guān)服務(wù)商借助公鑰實現(xiàn)服務(wù)請求的實時查詢,設(shè)備通過公鑰查詢區(qū)塊鏈中的相關(guān)服務(wù)內(nèi)容。區(qū)塊鏈表、公鑰檢索表、區(qū)塊表以及交易表共同組成系統(tǒng)數(shù)據(jù)庫。數(shù)據(jù)選擇JSON格式儲存,交易表主要用于保存提供商與設(shè)備群的交易信息,公鑰檢索表主要用于保存區(qū)塊鏈節(jié)點公鑰,區(qū)塊鏈包含了數(shù)據(jù)塊的成鏈資訊,而區(qū)塊表則包含了產(chǎn)生的數(shù)據(jù)塊的資訊。該數(shù)據(jù)庫結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)庫結(jié)構(gòu)
四、系統(tǒng)模型功能的實現(xiàn)
(一)環(huán)境部署
由于該模式是基于區(qū)塊鏈技術(shù)的,所以在該體系中存在大量的哈希運算,而每一塊和每一筆交易都要經(jīng)過哈希值來進行識別,所以;對于基層的數(shù)據(jù)庫,通常選用基值,并實現(xiàn)網(wǎng)絡(luò)的全局同步。因為要與物聯(lián)網(wǎng)相融合,因此采用分布式的數(shù)據(jù)庫是比較合理的。為了驗證以 IPFS為基礎(chǔ)的區(qū)塊鏈物聯(lián)網(wǎng)系統(tǒng)的安全性,可使用MongoDB作為基礎(chǔ),對其進行了性能驗證。它是一個具有很強的、可快速檢索的分布式數(shù)據(jù)庫,它以面向?qū)ο蟮姆绞酱鎯Γ⑼ㄟ^增加其他的結(jié)點來擴展數(shù)據(jù)庫;并對云計算水平的可擴展性提供了支持。利用Paxos算法來實現(xiàn)數(shù)據(jù)的分散控制,以應(yīng)對不斷增加的數(shù)據(jù),負載,在區(qū)塊鏈上得到了普遍的應(yīng)用,MongoDB和IPFS與模式的設(shè)計原理是一致的。該系統(tǒng)建模的一個物理試驗環(huán)境是一個路由器和三個主機,主機是Inteli7,內(nèi)存是DDR3內(nèi)存,在Maven平臺上使用JAVA語言編寫而成。通過路由器將實體主機連接起來,就構(gòu)成三個主要LAN部分,以對物聯(lián)網(wǎng)設(shè)備和服務(wù)商所在區(qū)域進行模擬,服務(wù)內(nèi)容與請求在模型內(nèi)部實現(xiàn)鏈上查詢,所以無需區(qū)分服務(wù)商與設(shè)備所在網(wǎng)段。通過主機對網(wǎng)絡(luò)節(jié)點進行部署,從而組成各節(jié)點集群,以對區(qū)塊鏈P2P網(wǎng)絡(luò)傳輸結(jié)構(gòu)進行模擬。在各分區(qū)中加入結(jié)點,構(gòu)成P2P網(wǎng)絡(luò)。試驗中將網(wǎng)絡(luò)的結(jié)點數(shù)量設(shè)定為6、9、12,并將分布式數(shù)據(jù)庫MongoDB與 IPFS放置于各個結(jié)點下。例如,對于MongoDB,在一個實體計算機上建立4個進程,其中客戶機1個,segment 2個,configuration server 1個。MongoDB差分片簇具有2個拷貝集和3個切片,最后得到6個點。對于 IPFS,在一個實體計算機上建立2個用戶和2個IPFS Serving進程,構(gòu)成等節(jié)點P2P網(wǎng)絡(luò)共計6個。
(二)模塊開發(fā)
為了與模型適配,修改IPFS源碼,先修改Config模塊,保證試驗節(jié)點可以使用 IPFS訪問函數(shù),然后對 IPFS中的 Swarm和存儲組件進行修正,保證操作對象的讀取和存儲可以從試驗節(jié)點獲取,以解決操作對象在本地數(shù)據(jù)庫中的訪問和存儲需要。在引導(dǎo)中設(shè)置引導(dǎo)節(jié)點的地址,所有網(wǎng)絡(luò)節(jié)點都是受信任的,創(chuàng)建可信局域網(wǎng)。再刪除IPFS內(nèi)部線程數(shù)量限制,避免實驗內(nèi)出現(xiàn)線程上限。評價指數(shù)是指在相同的運算條件下,在不同的試驗條件下,該模型的吞吐率和延遲時間的平均值,通過YCSB展開模擬仿真實驗,更改YCSB的數(shù)據(jù)接口層與工作負載模塊,其中工作負載模塊主要用于構(gòu)建測試與交易環(huán)境[4]。
五、性能評估
基于所設(shè)測試環(huán)境,通過對系統(tǒng)的吞吐率和時延等參數(shù)的對比來評價算法的性能,以防止出現(xiàn)實驗誤差。
假設(shè)區(qū)塊打包交易閾值是100,依照YCSB所得反饋數(shù)據(jù),如果測試環(huán)境是S1,節(jié)點數(shù)目統(tǒng)計是6、9以及12的交易延時均值。結(jié)果發(fā)現(xiàn),隨著交易量持續(xù)增加,相同節(jié)點系統(tǒng)模型延時也表現(xiàn)為上升趨勢,并呈現(xiàn)非線性特征[5]。超過1000單的交易,延遲平均呈現(xiàn)出指數(shù)增長的趨勢。當成交量很小時,比如,一個結(jié)點系統(tǒng)模式的100個交易延遲是比較小的,但在超過1000筆交易之后,會增加各節(jié)點時延,彼此差異也非常顯著。例如,交易量為5000筆的情況下,不同節(jié)點系統(tǒng)模型交易時延為33.12s、30.12s以及27.24s。IPFS的體系模式總體上和MongoDB是一致的。當交易量增多時, IPFS中相同節(jié)點數(shù)下的交易延遲明顯增大。當交易量很小時,在不同的結(jié)點個數(shù)下,系統(tǒng)中的平均交易延遲是相近的。在100個單的情況下, IPFS模式的交易延遲為0.96秒、0.88秒、0.69秒。當交易量增大時,此差別快速擴大,表現(xiàn)為:隨著節(jié)點數(shù)的增多,平均延遲變短。在5000個業(yè)務(wù)中, IPFS模式的交易延遲為27.87秒、24.01秒和16.34秒。相對于MongoDB, IPFS模式下,隨著交易量和節(jié)點數(shù)的增加,其交易延遲變得更短。在5000次的情況下,MongoDB中6個結(jié)點個數(shù)比12個結(jié)點個數(shù)的系統(tǒng)模式大了1.22, IPFS的數(shù)值達到了1.71。研究結(jié)果顯示,隨著網(wǎng)絡(luò)中節(jié)點數(shù)量的增加, IPFS架構(gòu)下的網(wǎng)絡(luò)安全模式具有較低的交易延遲和較高的系統(tǒng)性能。與此同時,由于區(qū)塊鏈技術(shù)是在以降低系統(tǒng)運行效率為代價的基礎(chǔ)上,因此,當交易量無限增加的時候,系統(tǒng)的運行速度就會變得非常緩慢。然而,相對于 IPFS的體系模式,MongoDB的體系結(jié)構(gòu)在交易量增長的同時,也在加速衰退。在同樣12個節(jié)點的情況下,MongoDB模式5000次交易的平均延遲為46.15次, IPFS模式下5000次交易的平均延遲為46.15次, IPFS模式為23.68次??傮w而言,對于產(chǎn)生的交易, IPFS在相同的節(jié)點數(shù)下,當交易量增大時,平均延遲也隨之增大,直至達到了模型中的最高值,從而導(dǎo)致系統(tǒng)性能下降。當結(jié)點數(shù)量變化時,隨著結(jié)點數(shù)量的增加,平均事務(wù)延遲降低。相對于MongoDB,該方法在處理事務(wù)的產(chǎn)生上更具優(yōu)越性,因為它是在讀數(shù)據(jù)時進行的。
六、結(jié)束語
該研究基于物聯(lián)網(wǎng)安全技術(shù)需求,設(shè)計基于IPFS技術(shù)的區(qū)塊鏈物聯(lián)網(wǎng)安全模型,IPFS在資源高效利用、服務(wù)質(zhì)量提升和保護隱私等方面的研究中,對 IPFS的可擴展性、安全性和可伸縮性提出了更高的要求。在 IPFS基礎(chǔ)上構(gòu)建區(qū)塊鏈的物聯(lián)網(wǎng)安全模式,在 IPFS基礎(chǔ)上實現(xiàn)對區(qū)塊鏈的隱私保護,減少網(wǎng)絡(luò)間的可信開銷。IPFS的安全性模塊主要包括:生成交易、生成區(qū)塊鏈、打包交易和交易詢問等,其中,從物聯(lián)網(wǎng)終端向供應(yīng)商發(fā)送一個要求,到供應(yīng)商交易詢問,再到終端收到業(yè)務(wù)內(nèi)容為止。IPFS技術(shù)下的區(qū)塊鏈物聯(lián)網(wǎng)安全系統(tǒng)模塊應(yīng)該具有的功能已經(jīng)被實現(xiàn),為模型功能的優(yōu)化完善奠定了基礎(chǔ)。實驗結(jié)果表明,基于IPFS技術(shù)的區(qū)塊鏈物聯(lián)網(wǎng)安全模型符合設(shè)計原則和技術(shù)需求。
作者單位:孫成衛(wèi) 西藏職業(yè)技術(shù)學(xué)院
參考文獻
[1]谷超.基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)安全共享模型與關(guān)鍵機制研究與實現(xiàn)[D].北京:北京工業(yè)大學(xué),2020.
[2]王國明,張?zhí)鞂?區(qū)塊鏈技術(shù)在增強物聯(lián)網(wǎng)安全方面的實踐及應(yīng)用前景[J].長江信息通信,2022,35(3):44-47.
[3]馮綺航.考慮屬性加密的物聯(lián)網(wǎng)隱私數(shù)據(jù)跨域安全共享模型[J].現(xiàn)代電子技術(shù),2023,46(1):91-95.
[4]郎為民,張漢,趙毅豐,等.一種基于區(qū)塊鏈的物聯(lián)網(wǎng)行為監(jiān)控和活動管理方案[J].信息網(wǎng)絡(luò)安全,2020(2):22-29.
[5]孫躍,楊晟,龔鋼軍,等.基于可信計算和區(qū)塊鏈的配電物聯(lián)網(wǎng)內(nèi)生安全研究[J].華電技術(shù),2020,42(8):61-67.