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