劉志毅:區塊鏈技術與網絡安全

摘要: 在討論了區塊鏈技術在金融領域的應用之後,我們用兩講的內容討論區塊鏈技術在非金融領域的應用場景。作為一種新型的技術應用模式,區塊鏈被認為是“下一代互聯網”,在數字版權、身份認證和網絡安全等方面都有著非常重要的應用。正如我們之前所討論的,區塊鏈技術作為分佈式網絡、非對稱加密、共識機制、智能合約等多種技術的組合創新,它帶來的是去中心化社區、流程的可追溯化、業務透明化、網絡智能化以及決策民主化等特質,因此區塊鏈技術開創了基於信用的價值網絡,如何通過這樣的網絡形成新的商業生態模式是我們理解區塊鏈技術在非金融領域應用的重要維度。

刘志毅:区块链技术与网络安全

最後一節我們來討論區塊鏈與網絡安全之間的關係,我們從兩個方面著手建立分析框架:一方面我們分析區塊鏈技術在信息安全方面的應用,另外一方面我們分析區塊鏈技術自身安全性的問題。正如前文所說,區塊鏈有可能從提高數據完整性、更安全的數字身份認證等方面改善物聯網設備的安全,從而提升其安全性。事實上,區塊鏈可能會發揮保密性、完整性和可用性的“CIA三原則”作用,從而提高應變能力,加密、審計和透明度。正如英國愛丁堡內皮爾大學計算機學院教授比爾.布坎南所說:“區塊鏈填補了我們在安全性、可靠性方面的不足…通過區塊鏈方法,我們可以正確地驗證和簽署我們的交易。”接下來我們討論具體在網絡安全領域的應用場景和案例。

區塊鏈技術在網絡安全領域的主要場景和案例可以分為以下四種主要場景:

(1)通過數字身份認證保護邊緣設備,隨著IT技術焦點轉移到所謂的具有數據和連接性的“智能”邊緣設備,安全性也隨之提高。畢竟,網絡的擴展可能對於IT效率、生產力和功耗(即對雲計算和數據中心資源有利)而言是有利的,但這更廣泛的業務來說是一個安全挑戰。許多公司正在尋求利用區塊鏈來保護物聯網和工業物聯網(IoT)設備的方法,因為該技術能夠加強認證,改善數據歸屬和流量,並有助於記錄管理。很顯然,這裡是和物聯網領域的應用直接相關的。

例如創業公司Xage安全公司在2017年下半年推出 “防篡改”區塊鏈技術平臺通過設備網絡大規模分發私人數據和身份驗證的服務。此外,該公司表示支持任何溝通,可以在不規則連接的邊緣設備中工作,並確保各種不同的工業系統。該公司表示,已經與ABB無線公司合作開展需要分佈式安全的電力和自動化項目,以及與戴爾合作為戴爾IoT網關及其EdgeX平臺上的能源行業提供安全服務。同時,作為另一個現實世界的例子,英國馬恩島政府採取了不同的路線。它正在測試區塊鏈技術,看它是否可以防止物聯網設備的妥協(將唯一身份簽名到物理項目以確認真實性)。這些改進也正在嵌入芯片組層面。Startup Filament最近宣佈推出一款旨在使工業物聯網設備能夠使用多種區塊鏈技術的新型芯片。Blocklet芯片背後的理念是讓物聯網傳感器數據直接編碼到區塊鏈中,目標是“ 為分散交互和交換提供安全的基礎 ”。

(2)通過區塊鏈技術改進數據的隱私性和完整性。作為一種數據結構,區塊鏈網絡中的數據進行了完全加密,可以確保這些數據在運輸過程中不會被未授權的用戶訪問。例如,IBM為Watson IoT平臺提供了一個選項,用於管理整合到藍色巨人云服務中的私有區塊鏈分類賬中的物聯網數據。愛立信的區塊鏈數據完整性服務為在GE的Predix PaaS平臺中工作的應用程序開發人員提供完全可審計,合規和值得信賴的數據。 像Obsidian這樣的創業公司正在使用區塊鏈來保護在聊天,短信應用和社交媒體中交換的私人信息。與WhatsApp和iMessage採用的端到端加密不同,Obsidian的Messenger使用區塊鏈來保護用戶的元數據。用戶不必使用電子郵件或任何其他身份驗證方法來使用信使。元數據隨機分佈在整個分類賬中,因此不能用於收集在一個單一的點,從而可能會受到損害。

(3)取代公鑰基礎設施(PKI),在電子郵件、消息應用和其他形式的通信服務中提供更安全的基礎設施。目前主要的PKI都依賴於集中的第三方證書頒發機構(CA)來頒發,撤銷和存儲密鑰對,這些密鑰對可能會危及加密通信並欺騙身份。而是在區塊鏈上發佈密鑰,理論上將消除錯誤密鑰傳播的風險,並使應用程序能夠驗證與之通信的人的身份。例如愛沙尼亞已經推行很久的數字國家計劃,其中一項服務就是使用區塊鏈創建無鑰匙簽名基礎設施(KSI)來取代PKI。正如布坎南說:“目前我們依靠PKI來建立我們的信任基礎設施,但這往往是有缺陷的,尤其是在網絡犯罪分子現在正在建立他們自己的數字證書的時候。通過區塊鏈方法,我們可以使用公民生成的身份來簽署交易。”

(4)通過區塊鏈技術來提高對網絡安全攻擊的防禦性,使用區塊鏈方法的更可信的DNS基礎架構將大大地幫助互聯網的核心信任基礎設施,比如IPFS(InterPlanetary File System)就是這個領域的典型應用。所謂IPFS就是一個旨在創建持久且分佈式存儲和共享文件的網絡傳輸協議。它是一種內容可尋址的對等超媒體分發協議,在IPFS網絡中的節點將構成一個分佈式文件系統。業界普遍認為下一代互聯網的特質應該是分佈式可信任的網絡,而IPFS提供了一個非常好的解決方案。正如其官網所說,“IPFS是分佈式Web,是點對點的超媒體協議,以構建更快、更安全、更開放的網絡。IPFS旨在取代HTTP,為我們構建一個更好的web”

然後我們來討論區塊鏈技術自身所引發的安全問題,主要體現在三個方面:加密算法非安全性、協議的安全性和系統安全性。而這些安全問題會發生在區塊鏈技術的幾個主要架構中:存儲層、協議層、擴展層和應用層中。

所謂加密算法安全性指的是基於區塊鏈的公鑰算法和哈希算法的安全性。比如比特幣的算法是SHA256,通過數學算法的複雜度提升來推動其安全性,不過任何一種加密算法都存在著被破解的可能性,因此需要在底層算法尤其是區塊鏈數學相關的領域進行深入研究。所謂協議安全性指的是區塊鏈所依託的協議層的安全問題,以比特幣為例,如果能夠控制超過全網51%的算力就有能力推翻原有的既定協議,這對大多數的虛擬貨幣類型來說都存在風險。所謂系統安全性就是指區塊鏈的智能合約在創建和編寫過程的安全漏洞,這些漏洞很容易成為惡意網絡攻擊的對象。

按照區塊鏈技術架構的不同層次來說,區塊鏈技術的安全風險可以分為以下四個類別:

  • (1) 存儲層的安全風險:區塊鏈存儲層的功能通常是結合分佈式數據庫、文件系統等多種存儲形式,存儲上層應用運行過程中產生的所有交互數據。其主要存在的安全風險由基礎設施安全風險、網絡攻擊威脅以及數據丟失和洩露等,這些問題會影響區塊鏈數據文件的可靠性、完整性以及存儲數據的安全性。

除此之外,在存儲層中隨著時間的推移,區塊數據可能會爆炸式增長(節點之間惡意頻繁交互),也可能會呈線性增長,這主要取決於此區塊鏈應用的設計,依賴現有的計算機存儲技術,區塊數據若發生爆炸式增長,可能導致節點無法容納又或者使區塊鏈運轉緩慢,從而使穩定運行的節點越來越少,節點越少,則越趨於中心化,引發區塊鏈危機。 不過目前主流的區塊鏈應用譬如BTC、ETH等,都完好的解決了此問題,比特幣的解決方法為固定區塊大小為1M,防止區塊過度膨脹,區塊鏈大小呈線性增長。但是此解決方案並不優雅,限制區塊大小的同時也給比特幣帶來了交易時間長的詬病,目前比特幣的一筆交易需要確認數小時。

  • (2) 協議層安全風險:區塊鏈技術的協議層主要是結合共識機制、P2P網絡、非對稱加密機制等,用於實現區塊鏈用戶網絡的構建和安全機制的形成。協議層的安全風險主要由區塊鏈技術核心機制中存在的安全缺陷引發,包括來自協議漏洞、流量攻擊以及惡意節點的威脅。

在區塊鏈中,P2P網絡依賴附近的節點來進行信息傳輸必須要互相暴露對方的IP,若網絡中存在一個攻擊者,就很容易給其他節點帶來安全威脅,中心化的網絡不會太過擔心此問題的原因是組織的網絡中心的安全性都是極高的,即使暴露也不會有太大問題。而去中心化的公鏈網絡節點可能是普通家庭PC,可能是雲服務器等等,其安全性必然是參差不齊的,其中必有安全性較差的節點,對其進行攻擊將直接威脅節點的安全。

除此之外,區塊鏈技術的廣播機制和驗證機制也存在著一定的安全風險。在區塊鏈中,節點是與節點互相連接的。當某節點接入到區塊鏈網絡後,單個節點會與其他節點建立連接。此時該節點就具備了廣播信息的資格,在將信息傳播給其他節點後,其他節點會驗證此信息是否為有效的信息,確認無誤後再繼續向其他節點廣播。這個機制天然的存在著雙花問題,也就是如果攻擊者控制全網算力的一半以上,則前面提到的替代歷史攻擊有100%的概率成功。由於攻擊者可以比網絡的其他部分更快地生成塊,所以他可以堅持自己的私有分支,直到它比誠實節點網絡建立的分支更長,它將代替主鏈。

區塊鏈的運行為了維持其數據的有效性與真實性,必須要有相應的驗證機制來限制節點必須將真實信息寫入區塊中。驗證機制的代碼是區塊鏈應用的核心之一,一旦出現問題將直接導致區塊鏈的數據混亂,而且核心代碼的修改與升級都涉及到區塊鏈分叉的問題,所以驗證機制的嚴謹性就顯得尤為重要。必須要結合驗證機制代碼的語言特性來進行大量的白盒審計或是模糊測試,來保證驗證機制的不可繞過。

  • (3) 擴展層安全風險:目前擴展層所實現的主要就是智能合約的功能,由於智能合約的起步應用交完,相關的程序開發中的安全問題尚未得到解決,因此會造成代碼實現中的很多安全漏洞。雖然智能合約的基本要求是合約處理邏輯的正確性和完備性,但是由於開發者能力的不足以及私人利益導致的安全問題仍然很明顯,譬如在以太坊上多次發生的智能合約的程序漏洞導致的數億美金的眾籌資金被劫持的問題。

隨著區塊鏈技術的不斷升級,區塊鏈已經具備在鏈上繁衍出多種應用的功能,而實現這種功能的基礎就是合約虛擬機(用於運行各種智能合約的平臺),此技術的出現極大的提高了區塊鏈的可擴展性,是區塊鏈2.0的重要標誌。 合約虛擬機運行在區塊鏈的各個節點上,接受並部署來自節點的智能合約代碼,若虛擬機存在漏洞或相關限制機制不完善,很可能運行來自攻擊者的惡意的智能合約。這些供給方式包括可重入攻擊、調用深度攻擊、時間戳供給等方式。我們需要理解的是智能合約本質上是一份代碼程序,難免會有因為考慮不周的導致出現漏洞的情況,所以在發佈一份智能合約之前,進行大量的模糊測試與白盒審計是必不可少的。

  • (4) 應用層安全風險:區塊鏈的應用層主要用於面向用戶提供服務,涉及了不同行業領域的應用場景和用戶交互。應用層的業務類別多樣且交互頻繁,所以很多傳統安全問題都在這一層之中集中,成為了攻擊裝實施攻擊和突破區塊鏈系統的首選目標。應用層安全風險涉及了私鑰管理安全、賬戶竊取、應用軟件漏洞、DDos攻擊、環境漏洞等多種安全問題。
  • 由於區塊鏈平臺對於網絡帶寬的存在高需求,所以一旦發生DDoS攻擊,對於平臺和整個行業來說是非常嚴重的。若交易平臺被DDoS攻擊,不但交易平臺蒙受損失,區塊鏈貨幣的交易量也將大大減少,間接影響區塊鏈貨幣的漲跌,在相關統計的安全事件中,以及調查的相關案例顯示目前只要是交易平臺上線都遭受到DDOS攻擊過。

我們從上面的分析可以看到,區塊鏈技術架構本身是存在著安全風險的,且其去中心化、自治化和匿名性等特點也對現有網絡和數據安全監管帶來了新的挑戰。本質上來說,區塊鏈的安全性是由P2P網絡加上密碼學所保障的,因此它的優勢在於基本不存在單點故障所帶來的系統性的影響,不過我們也需要注意到區塊鏈技術本身由於發展尚在早期,存在著各種各樣的安全挑戰,並不是使用了區塊鏈技術就一定保障系統的安全性。

我們可以看到隨著技術的發展,區塊鏈安全問題越來越趨向於用戶、平臺層面,也就是說區塊鏈的安全問題已經延伸到了傳統的網絡安全、基礎設施、移動信息安全等問題。所以在談及區塊鏈安全的時候,不應該僅僅侷限於區塊鏈本身,它的使用者以及衍生的東西都需要我們的重點關注。因此,隨著區塊鏈技術在各個領域上的應用,我們應該正視相應的風險,加強對區塊鏈應用領域的正確引導,推動和強化區塊鏈安全產品和服務市場的發展,鼓勵自主可控的區塊鏈平臺和應用開發,打造更加符合市場需求和擁有自主產權的區塊鏈技術生態。

刘志毅:区块链技术与网络安全


分享到:


相關文章: