安全問題成短板,聯盟鏈發展背後的安全如何保障?

區塊鏈技術近年來快速發展,技術應用已延伸到數字金融、物聯網、智能製造、供應鏈管理、數字資產交易等多個領域。

作為核心技術自主創新的重要突破口,安全問題被視為當前制約行業健康發展的一大短板,區塊鏈安全事件屢屢發生,甚至成為黑客攻擊的“重災區”。公鏈的安全問題對於公鏈發展的影響已經不言而喻,而聯盟鏈的安全問題也不容忽視,今天我們主要來跟大家探討下聯盟鏈的安全問題。

PART1 什麼是聯盟鏈?

安全問題成短板,聯盟鏈發展背後的安全如何保障?

聯盟鏈是由多個機構共同參與管理的區塊鏈,每個組織或機構管理一個或多個節點,其數據只允許系統內不同的機構進行讀寫和發送。 聯盟鏈的各個節點通常有與之對應的實體機構組織,通過授權后才能加入與退出網絡。各機構組織組成利益相關的聯盟,共同維護區塊鏈的健康運轉。

國內常見的聯盟鏈有:螞蟻鏈、BSN聯盟鏈、騰訊至信鏈、百度超級鏈、京東智臻鏈、新版鏈、天河鏈、趣鏈、網易星球區塊鏈、長安鏈等。

聯盟鏈優缺點

優勢

1)更高的處理效率

聯盟鏈的信任環境允許少數節點參與生態的治理,商業決策的處理能力較高。

2)可擴展性更高

聯盟鏈可以根據複雜的商業環境進行技術迭代。聯盟鏈在落地時,考慮更多的是如何將過去的數據孤島打通,同時讓聯盟中流通的數據是可信的,不用像過去一樣做頻繁的校驗。

3)智能合約應用場景更多

基本上可以實現中心化機構所有的業務邏輯,且具交易最終性。

4)可控性較強

公有鏈是一旦區塊鏈形成,就不可篡改,而聯盟鏈,只要所有機構中的大部分達成共識,即可將區塊數據進行更改。

5)具有更大的隱私性

不同於公有鏈,聯盟鏈的數據不會默認公開,只限於聯盟里的機構及其用戶才有權限進行訪問,隱私性更強。

缺點

1)容易被惡意用戶攻擊

由於聯盟鏈半中心化結構的原因,它很容易被惡意玩家所攻擊。在有限的節點內,可以假定多個參與者會出現合謀的可能性。

2)缺少行業統一標準

因為缺少行業統一標準,在解決方案上免不了會有各種障礙,但是目前整個生態距離聯盟鏈的統一框架還是很遙遠。

聯盟鏈的典型應用場景

安全問題成短板,聯盟鏈發展背後的安全如何保障?

聯盟鏈技術可以用來優化大多數傳統信息化系統的業務流程,特別適用於沒有強力中心、多方協作、風險可控的業務場景。聯盟鏈的共享賬本機制可以極大降低該類場景下的對賬成本、提高數據獲取效率、增加容錯能力、鞏固信任基礎、以及避免惡意造假。

隨着區塊鏈技術的不斷發展,越來越多的機構與企業開始加大對區塊鏈的研究與應用。相比公鏈而言,聯盟鏈具有更好的落地性,受到了許多企業與政府的支持。

目前,聯盟鏈的典型應用場景有:商品溯源、公益慈善、供應鏈金融、電子政務、互助保險、物聯網等,另外在數字版權、數字身份、教育、醫療、能源、文化娛樂及民生等垂直產業和領域也都有聯盟鏈的身影。

PART2 聯盟鏈有哪些安全問題?

聯盟鏈中存在的安全問題主要包括網絡安全、主機安全、鏈平台安全和智能合約安全。

網絡安全:聯盟鏈也易遭受到傳統的網絡安全威脅,包括網絡釣魚攻擊、DNS劫持攻擊、DDos攻擊、IP欺騙、會話劫持、域名劫持等。

主機安全:主機安全主要包括服務器基礎策略配置、防火牆配置策略、權限管控、第三方模塊安全、應用服務安全、端口安全、數據庫服務安全等。

下面重點給大家介紹下鏈平台安全和智能合約安全問題。

聯盟鏈鏈平台安全問題

聯盟鏈鏈平台安全問題包括:交易安全、共識安全、賬戶安全、合規性、RPC安全、端點安全、P2P安全等

聯盟鏈的安全事故大多發生在其算法和底層設計本身,但依然有黑客出於商業目的進行攻擊。黑客攻擊聯盟鏈的手法包括:內部威脅、DNS攻擊、MSP攻擊、51%的攻擊等。

安全問題成短板,聯盟鏈發展背後的安全如何保障?

以MSP攻擊為例:MSP是Fabric聯盟鏈中的成員服務提供商(Membership Service Provider)的簡稱,是一個提供抽象化成員操作框架的組件,MSP將頒發與校驗證書,以及用戶認證背後的所有密碼學機制與協議都抽象了出來。一個MSP可以自己定義身份,以及身份的管理(身份驗證)與認證(生成與驗證簽名)規則。

針對MSP的攻擊,一般來說,可能存在如下幾個方面:

(1)內部威脅

a)如果某個內部人員持有了可以管理MSP的證書,他將可以對Fabric網絡進行配置,比如添加或撤銷訪問權限,向CRL添加身份(本質上是列入黑名單的身份);

b)如果有傳感器等物聯網設備接入聯盟鏈,其可能傳播虛假信息到鏈上,並且因為傳感器自身可能不支持完善的安全防護,可能導致進一步的攻擊。

(2)私鑰泄露

節點或者傳感器的證書文件一般存儲在本地,可能導致私鑰泄漏,進而導致女巫攻擊、雲中間人攻擊(Man-in-the-Cloud attack)等。

(3)DNS攻擊

當創建新參與者的身份並將其添加到MSP時,在任何情況下都可能發生DNS攻擊。向區塊鏈成員創建證書的過程在許多地方都可能發生攻擊,例如中間人攻擊,緩存中毒,DDOS。

(4)CA攻擊

數字證書和身份對於MSP的運行至關重要。Hyperledger Fabric允許用戶選擇如何運行證書頒發機構並生成加密材料。選項包括Fabric CA,由Hyperledger Fabric,Cryptogen的貢獻者構建的過程,以及自己的/第三方CA。

這些CA本身的實現都有其自身的缺陷。Cryptogen在一個集中的位置生成所有私鑰,然後由用戶將其充分安全地複製到適當的主機和容器中。通過在一個地方提供所有私鑰,這有助於私鑰泄露攻擊。除了實現方面的弱點之外,MSP的整體以及因此區塊鏈的成員資格都在CA上運行,並且具有信任證書有效的能力,並且證書所有者就是他們所說的身份。

對知名第三方CA的攻擊如果成功執行,則可能會損害MSP的安全性,從而導致偽造的身份。

聯盟鏈智能合約安全問題

為了提升效率,支持更加友好的設計,各聯盟鏈在智能合約上出現了不同的發展方向。聯盟鏈智能合約相較於常規公鏈在規範性、和安全性都有一定的提升,但在以下幾個方面仍可能存在安全風險:

01 代碼語言安全性問題

一種是繼續沿用主流公鏈編程語言,並在其基礎上改進(如:BCOS使用的solidity),另一種則是以通用編程語言為基礎,指定對應的智能合約模塊(如:fabric的Go/Java/Node.js),不管使用什麼語言對智能合約進行編程,都存在其對應的語言以及相關合約標準的安全性問題。

02 合約執行帶來的安全問題

整型溢出:不管使用的何種虛擬機執行合約,各類整數類型都存在對應的存儲寬度,當試圖保存超過該範圍的數據時,有符號數就會發生整數溢出。

堆棧溢出:當定義方法參數和局部變量過多,字節過大,可能使程序出現錯誤。

拒絕服務攻擊:主要涉及到的是執行合約需要消耗資源的聯盟鏈,因資源耗盡而無法完成對應的交易。

03 系統機制導致的合約安全問題

這裡主要是指多鏈架構的聯盟鏈:

合約變量的生成如果依賴於不確定因素(如:本節點時間戳)或者某個未在賬本中持久化的變量,那麼可能會因為各節點該變量的讀寫集不一樣,導致交易驗證不通過。

全局變量不會保存在數據庫中,而是存儲於單個節點。因此,如果此類節點發生故障或重啟時,可能會導致該全局變量值不再與其他節點保持一致,影響節點交易。因此,從數據庫讀取、寫入或從合約返回的數據不應依賴於全局狀態變量。

在多鏈結構下進行外部鏈的合約調用時,可能僅會得到被調用鏈碼函數的返回結果,而不會在外部通道進行任何形式的交易提交。

合約訪問外部資源時,可能會暴露合約未預期的安全隱患,影響鏈碼業務邏輯。

04 業務安全問題

聯盟鏈的智能合約是為了完成某項業務需求執行某項業務,因此在業務邏輯和業務實現上仍是可能存在安全風險的,如:函數權限失配、輸入參數不合理、異常處理不到位。

本文鏈接:https://www.8btc.com/article/6745870

轉載請註明文章出處

(0)
上一篇 2022-04-26 09:40
下一篇 2022-04-26 09:52

相关推荐