相里朋,梅家爭,徐志范
(工業(yè)和信息化部電子第五研究所,廣州 510610)
近年來,區(qū)塊鏈技術數(shù)次被炒作、被營銷、被否定,但并不影響其逐漸成為發(fā)展數(shù)字經(jīng)濟的關鍵技術之一,其具有的去中介化、難以篡改、數(shù)據(jù)可信、來源可溯等特性,從根本上解決了信息在交換與轉(zhuǎn)移中產(chǎn)生的欺詐和“尋租”現(xiàn)象,破解了信息不對稱產(chǎn)生的不信任難題,擴大了“信任半徑”,其正以前所未有的速度發(fā)展,相關應用成果也快速融入社會各行各業(yè)當中。然而,區(qū)塊鏈技術被追捧上天,卻難以落地,行業(yè)內(nèi)鮮有真正應用場景出現(xiàn)。究其原因,在于其受到現(xiàn)有的技術局限性和面臨的安全問題的掣肘,已嚴重影響其產(chǎn)業(yè)的健康發(fā)展。
區(qū)塊鏈作為一種傳遞信任、共享價值、促進協(xié)作的底層基礎軟件,是一種全新的計算機技術應用模式,具有去中介、難篡改、可追溯、多方互信等特性,可廣泛應用于電子政務、社會征信、5G、工業(yè)互聯(lián)網(wǎng)、供應鏈金融等領域。其以時間順序?qū)^(qū)塊數(shù)據(jù)排序,并組合成一個鏈式結(jié)構,采用非對稱加密和哈希散列實現(xiàn)數(shù)據(jù)的不可篡改和不可偽造。其本質(zhì)是一種分布式賬本,采用分散和合作的方式,保證分布式數(shù)據(jù)的安全性,類似于獨立客觀的第三方公證人,不在任何個人、組織或機構的控制下,記錄和見證著所有數(shù)據(jù)與行為。區(qū)塊鏈主要使用基于橢圓曲線數(shù)學的公鑰密碼學算法,簽名人可以使用綁定身份信息的私鑰對數(shù)據(jù)電文進行簽名,之后將簽名與原始數(shù)據(jù)發(fā)送給整個網(wǎng)絡,網(wǎng)絡中的所有節(jié)點則可用公鑰對其有效性進行驗證,可解決端到端數(shù)據(jù)篡改問題,并建立基于數(shù)學、代碼和機器的信任,促使區(qū)塊鏈系統(tǒng)中的節(jié)點能在非信賴的環(huán)境下自由、安全地交換數(shù)據(jù)。
區(qū)塊鏈并非全新的前沿技術,而是一種集成了多種現(xiàn)有技術的組合式創(chuàng)新,其技術主要有分布式賬本、點對點傳輸、密碼學應用和共識機制等。
(1)分布式賬本技術。區(qū)塊鏈系統(tǒng)中的區(qū)塊就像一個個電子賬單,記錄著所有節(jié)點的交易信息。每個區(qū)塊的數(shù)據(jù)都存儲在各用戶的客戶節(jié)點中,所有節(jié)點共同構成了一個安全可靠的分布式賬本。即使任意節(jié)點的數(shù)據(jù)被銷毀,整個系統(tǒng)的賬本完整性與正確性都不會受到影響。整個系統(tǒng)具有高度的透明性和開放性,除對交易各方的私有信息進行加密外,會將可共享信息面向所有人公開,并可通過開放接口查詢到公開數(shù)據(jù)。
(2)點對點傳輸技術。點對點傳輸技術也稱為對等網(wǎng)絡,是TCP/IP的一種通信體系結(jié)構。采用點對點傳輸技術后,相互連接的節(jié)點都處于平等地位,節(jié)點可直接連接且自由進出,任意節(jié)點的權利和義務都是均等的,系統(tǒng)中的數(shù)據(jù)塊由整個系統(tǒng)中的節(jié)點來共同維護。
(3)密碼學應用技術。區(qū)塊鏈系統(tǒng)采用多種密碼學原理進行數(shù)據(jù)加密及隱私保護,尤其是非對稱加密算法和哈希散列算法(同電子簽名的主要技術)。
(4)共識機制技術。共識機制又稱為共識算法,是區(qū)塊鏈系統(tǒng)中各個節(jié)點達成一致的策略和方法,常見的有 POW、POS、DPOS、PBFT、DAG 等數(shù)十種算法,系統(tǒng)可根據(jù)不同的應用場景、系統(tǒng)情況來靈活選擇。
越來越多的行業(yè)選擇了區(qū)塊鏈,但因技術成熟度不高,特別是安全方面仍面臨諸多挑戰(zhàn),由此引發(fā)了一系列系統(tǒng)安全問題。根據(jù)中國區(qū)塊鏈測評聯(lián)盟發(fā)布的《區(qū)塊鏈與分布式記賬信息系統(tǒng)評估規(guī)范》中的系統(tǒng)參考架構來看,其主要安全風險如圖1所示。
圖1
(1)區(qū)塊鏈平臺層:提供了區(qū)塊鏈信息系統(tǒng)正常工作的運行環(huán)境和基礎組件,包括分布式賬本、對等網(wǎng)絡、密碼學技術、共識機制、跨鏈技術和智能合約(運行環(huán)境)等,面臨的安全風險如下:
●基礎設施安全風險:區(qū)塊鏈采用的分布式賬本存儲方式以及相關存儲設備可能面臨的安全風險,如MySQL、LevelDB、RocketDB數(shù)據(jù)庫的安全漏洞,可能導致未經(jīng)授權的區(qū)塊鏈存儲設備訪問和入侵,或者是存放存儲設備的物理運行、訪問環(huán)境中存在的安全風險。
●網(wǎng)絡攻擊威脅:包括DDoS攻擊、利用設備軟硬件漏洞進行的攻擊、病毒木馬攻擊、DNS污染、路由廣播劫持等傳統(tǒng)網(wǎng)絡安全風險。
●數(shù)據(jù)丟失和泄露:針對區(qū)塊數(shù)據(jù)文件的竊取、破壞,或因誤操作、系統(tǒng)故障、管理不善等問題導致的數(shù)據(jù)丟失和泄露,線上和線下數(shù)據(jù)存儲的一致性問題等。
●共識協(xié)議漏洞:針對共識機制漏洞的算力攻擊、分叉攻擊、女巫攻擊等,或采用不安全協(xié)議及協(xié)議的不安全實現(xiàn),可能導致的整個區(qū)塊鏈系統(tǒng)不一致,也可能影響區(qū)塊鏈系統(tǒng)的防篡改性。
●智能合約運行安全:虛擬機自身安全漏洞,或驗證、控制等機制不完善等,造成攻擊者部署惡意智能合約代碼,擾亂正常業(yè)務秩序,消耗整個系統(tǒng)中的網(wǎng)絡、存儲和計算資源,進而造成各類安全威脅。
●密碼學應用風險:Google、IBM相繼在量子計算機上有所突破,當前看似安全的RSA、ECC、SHA256等密碼學技術,有可能在量子運算中被破譯掉,極大威脅了區(qū)塊鏈技術的安全性、可靠性,甚至其可信系統(tǒng)也亟待一定的調(diào)整。
(2)區(qū)塊鏈中間層:提供區(qū)塊鏈信息系統(tǒng)調(diào)用平臺層基本功能的接口,并為API層提供接入管理接口,包括接入管理、節(jié)點管理、賬本管理等,面臨的安全風險如下:
●接入管理攻擊:通過進行自動程序攻擊、通信過程攻擊、非法用戶入侵、管理員密碼盜取等方式,對接入管理模塊進行入侵,獲取管理員權限。
●惡意節(jié)點:通過仿冒、漏洞利用等手段非法獲取或提升權限,進而開展攻擊,或節(jié)點間聯(lián)合作惡的情況發(fā)生,刻意擾亂區(qū)塊鏈運行秩序、破壞正常業(yè)務。
●分布式賬本漏洞:利用分布式賬本可能存在的輸入驗證、API誤用、數(shù)組越界等漏洞,造成分布式賬本系統(tǒng)運行異常、崩潰,或?qū)崿F(xiàn)越權訪問、竊取私密信息等。
(3)區(qū)塊鏈API層:調(diào)用中間層功能組件為用戶應用、管理應用和分布式應用以提供可靠和高效訪問的功能,并提供統(tǒng)一的訪問和節(jié)點管理,包括用戶API、管理API和外部API等,面臨的安全風險如下:
●API攻擊:針對API的漏洞進行重放攻擊、暴力攻擊、XSS攻擊、SQL注入、參數(shù)篡改等。
(4)區(qū)塊鏈應用層:將不同類型的API封裝成業(yè)務相關功能,供區(qū)塊鏈信息系統(tǒng)訪問和使用,包括用戶應用、管理應用和分布式應用等,面臨的安全風險如下:
●智能合約漏洞:利用智能合約安全漏洞、后門,在典型應用中可能導致合約控制流劫持、未授權訪問、拒絕服務等風險。
●私鑰管理安全:針對用戶生成并保管的私鑰開展攻擊,導致私鑰文件泄露或被竊取,威脅用戶整體安全。
●賬戶竊取:利用病毒、木馬、釣魚等傳統(tǒng)攻擊手段竊取用戶賬號,進而利用合法用戶賬號登錄系統(tǒng)進行一系列非法操作。
●系統(tǒng)環(huán)境漏洞:區(qū)塊鏈系統(tǒng)所部屬的服務器,若存在系統(tǒng)安全漏洞、病毒惡意程序,殺毒軟件缺失、防火墻或安全策略配置不當?shù)葐栴}時,有可能突發(fā)重要安全事故。
●系統(tǒng)功能缺陷:軟件功能因開發(fā)人員能力、編碼習慣及質(zhì)量、需求理解不一致、功能設計水平低、缺少第三方驗證等原因,造成的區(qū)塊鏈系統(tǒng)功能模塊存在質(zhì)量缺陷,影響系統(tǒng)的穩(wěn)定運行。
●DDoS攻擊:利用點對點協(xié)議、底層軟件協(xié)議的缺陷,開展DDoS攻擊,或在系統(tǒng)應用層發(fā)起針對業(yè)務的DDoS攻擊,影響區(qū)塊鏈+行業(yè)應用的業(yè)務可用性。
區(qū)塊鏈面臨的安全風險多種多樣,但究其原因,主要有如下幾點:
(1)相關政策并不明朗,區(qū)塊鏈安全性驗證缺乏統(tǒng)一認證。國家部委、地市政府雖高度關注,但與基于互聯(lián)網(wǎng)技術所實現(xiàn)的信息系統(tǒng)相比,基于區(qū)塊鏈技術所改造的信息系統(tǒng),其安全性如何評價、如何保障,尚未存在一個能提供完整指導的技術規(guī)范,政府“不敢用、不想用、不愿用”現(xiàn)象突出。
(2)共識機制、智能合約、分布式賬本等現(xiàn)有關鍵技術,自身存在一定的技術安全隱患。區(qū)塊鏈+行業(yè)應用也缺少工程化的理論和方法指導,系統(tǒng)性安全保障體系缺失,進而導致安全事故層出不窮。近五年,全球區(qū)塊鏈產(chǎn)業(yè)因安全事故損失高達28.64億美元。如幣安交易所于2018年遭受攻擊,損失4.2億元;EOS公鏈存在合約漏洞,黑客可利用漏洞控制和接管在線節(jié)點等。
(3)因去中介、算法自治、匿名保護等特性,區(qū)塊鏈+行業(yè)應用也對公民隱私數(shù)據(jù)的保護提出新的要求,并對虛擬網(wǎng)絡的數(shù)據(jù)安全帶來新的挑戰(zhàn)。面對層出不窮的安全事故,如何更安全、更有效地開展區(qū)塊鏈+行業(yè)應用的管理,政產(chǎn)學研用各界代表有必要給予更多關注。
(4)區(qū)塊鏈安全生態(tài)不完善,產(chǎn)業(yè)鏈各生態(tài)方仍面臨各類安全攻擊,如交易所、礦池/礦機、錢包、智能合約及用戶,依然面臨DDoS攻擊、DNS劫持、錢包被盜、個人欺詐、釣魚、病毒木馬等安全問題。
依據(jù)中國區(qū)塊鏈測評聯(lián)盟發(fā)布的《區(qū)塊鏈與分布式記賬信息系統(tǒng)評估規(guī)范》,打造區(qū)塊鏈信息安全質(zhì)量模型,主要包括保密性、完整性、抗抵賴性、真實性、可追溯性等質(zhì)量特性。
圖2
(1)保密性測試
●重點考察用戶未授權情況下訪問賬本數(shù)據(jù),數(shù)據(jù)隱私是否可保護。即檢測用戶是否可在未授權情況下,訪問賬本的隱私數(shù)據(jù)。
●重點考察系統(tǒng)對未授權的功能訪問進行控制的能力是否符合需求。即檢測系統(tǒng)是否可對未授權的功能訪問進行控制,且控制范圍和結(jié)果是否滿足用戶要求。
●重點考察系統(tǒng)對未授權的數(shù)據(jù)訪問進行控制的能力是否符合需求。即檢測系統(tǒng)是否可對未授權的數(shù)據(jù)訪問進行控制,且控制范圍和結(jié)果是否滿足用戶要求。
●重點考察系統(tǒng)對數(shù)據(jù)類型實現(xiàn)加解密的比例是否符合需求。即檢測系統(tǒng)中已實現(xiàn)加解密的數(shù)據(jù)類型個數(shù),是否符合用戶需求。
●重點考察系統(tǒng)對數(shù)據(jù)類型進行正確地加解密的能力是否符合需求。即檢測系統(tǒng)中已實現(xiàn)并已驗證正確的加解密的數(shù)據(jù)類型,是否符合用戶需求。
●重點考察系統(tǒng)使用的加解密算法是否符合需求。即檢測系統(tǒng)中已使用的加解密算法,是否符合用戶需求。
(2)完整性測試
●重點考察系統(tǒng)防止數(shù)據(jù)被訛誤的能力是否符合需求。即檢測系統(tǒng)中已實現(xiàn)的可防止數(shù)據(jù)訛誤的功能點,是否符合用戶需求。
●重點考察系統(tǒng)為防止數(shù)據(jù)被訛誤所采取的方法是否符合需求。即檢測系統(tǒng)中已實現(xiàn)的可防止數(shù)據(jù)被訛誤所采取的方法及個數(shù),是否符合用戶需求。
(3)抗抵賴性測試
●重點考察系統(tǒng)采用的數(shù)字簽名算法是否符合需求。即檢測系統(tǒng)采用的數(shù)字簽名算法正確性,是否符合用戶需求。
●重點考察系統(tǒng)預防實體否認發(fā)送事件及其行為的能力。即檢測系統(tǒng)中已實現(xiàn)的預防實體否認發(fā)送事件及行為的功能,是否符合用戶需求。
●重點考察系統(tǒng)預防實體否認接收事件及其行為的能力。即檢測系統(tǒng)中已實現(xiàn)的預防實體否認接收事件及行為的功能,是否符合用戶需求。
(4)真實性測試
●重點考察系統(tǒng)使用的身份鑒別方法是否符合需求。即檢測系統(tǒng)中采用的身份鑒別方法,是否符合用戶需求。
●重點考察系統(tǒng)實現(xiàn)的數(shù)據(jù)鑒別規(guī)則數(shù)量是否符合需求。即檢測系統(tǒng)中采用的數(shù)據(jù)鑒別規(guī)則數(shù)量,是否符合用戶需求。
(5)可追溯性測試
●重點考察日志進行安全保存的實際時間是否符合需求。即檢測系統(tǒng)中日志安全保存的實際時間,是否符合用戶需求。
●重點考察用戶訪問系統(tǒng)和數(shù)據(jù)的審計追蹤能力是否符合需求。即檢測用戶訪問系統(tǒng)功能時,系統(tǒng)的審計追蹤能力,是否符合用戶需求;用戶訪問系統(tǒng)數(shù)據(jù)時,系統(tǒng)的審計追蹤能力,是否符合用戶需求。
●重點考察用戶訪問的賬本記錄的審計追蹤能力是否符合需求。即檢測用戶訪問賬本記錄時,系統(tǒng)的審計追蹤能力,是否符合用戶需求。
(1)網(wǎng)絡設備的安全測試:重點開展網(wǎng)絡設備(如路由器、交換機等)的漏洞掃描、漏洞挖掘、安全功能檢查以及配置檢查等,減少區(qū)塊鏈信息系統(tǒng)的安全威脅。
(2)數(shù)據(jù)存儲的安全測試:重點開展區(qū)塊數(shù)據(jù)或文件的存儲和轉(zhuǎn)發(fā)測試,是否存在信息泄漏或失竊隱患,是否具備數(shù)據(jù)備份功能,以避免數(shù)據(jù)文件丟失、損壞而無法恢復。
(3)密碼學應用的安全測試:重點開展采用的哈希散列算法、加解密算法的正確性、安全性測試,以及是否采用數(shù)字簽名/驗簽算法。
(4)P2P網(wǎng)絡的安全測試:重點開展DDoS攻擊、女巫攻擊及日食攻擊防范測試,并驗證是否采用網(wǎng)絡加密傳輸方式。
(5)共識機制的安全測試:重點開展節(jié)點數(shù)據(jù)一致性和正確性測試,主要包括雙花攻擊、再生攻擊、分歧攻擊、魔女攻擊、賄賂攻擊、預期攻擊、自私挖掘等的測試,以及檢驗系統(tǒng)是否具有良好的容錯能力。
(6)智能合約的安全測試:重點開展合約代碼的安全漏洞測試和合約可靠性測試。檢查范圍包括:整數(shù)溢出、越權訪問、拒絕服務、邏輯錯誤、信息漏洞及函數(shù)誤用等。
自2016年國務院印發(fā)《“十三五”國家信息化規(guī)劃》,首次提及區(qū)塊鏈技術起,國內(nèi)各界對區(qū)塊鏈技術發(fā)展與應用的關注度持續(xù)升溫,該技術已在多個重點行業(yè)探索應用,但其存在的安全問題,已嚴重制約其應用進一步落地推廣。本文通過分析區(qū)塊鏈平臺層、中間層、API層和應用層中所面臨的安全問題,結(jié)合安全質(zhì)量模型,探討區(qū)塊鏈安全測評方法,對于區(qū)塊鏈安全測試的研究,區(qū)塊鏈應用落地質(zhì)量的保障,具有一定的參考意義。