倪 平 中國信息通信研究院泰爾系統(tǒng)實(shí)驗(yàn)室工程師
曹 元 中國信息通信研究院泰爾系統(tǒng)實(shí)驗(yàn)室工程師
近年來,區(qū)塊鏈逐漸成為研究熱點(diǎn)。通過分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等技術(shù),區(qū)塊鏈提供了一種在不可信網(wǎng)絡(luò)中進(jìn)行信息與價(jià)值傳遞交換的可信通道,可有效解決傳統(tǒng)交易模式過程中的數(shù)據(jù)流造假行為。因其獨(dú)特的信任建立機(jī)制,區(qū)塊鏈技術(shù)可被應(yīng)用到金融、物聯(lián)網(wǎng)、智能制造以及供應(yīng)鏈管理等多個(gè)領(lǐng)域,可實(shí)現(xiàn)從現(xiàn)在的信息互聯(lián)網(wǎng)到價(jià)值互聯(lián)網(wǎng)的轉(zhuǎn)變。
區(qū)塊鏈技術(shù)通過建立一個(gè)多方共同維護(hù)且不可被篡改的數(shù)據(jù)庫來記錄過去的所有交易記錄和歷史數(shù)據(jù)。所有的數(shù)據(jù)以區(qū)塊為單位產(chǎn)生和存儲(chǔ)。區(qū)塊之間按照時(shí)間順序、結(jié)合密碼學(xué)算法構(gòu)成鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。所有區(qū)塊數(shù)據(jù)都是分布式存儲(chǔ)且公開透明的。參與到區(qū)塊鏈系統(tǒng)上的節(jié)點(diǎn),可能不屬于同一組織,彼此無需信用;通過共識(shí)機(jī)制選出記賬節(jié)點(diǎn),由該節(jié)點(diǎn)決定最新區(qū)塊的數(shù)據(jù),其他節(jié)點(diǎn)共同參與最新區(qū)塊數(shù)據(jù)的驗(yàn)證、存儲(chǔ)和維護(hù),每個(gè)參與維護(hù)的節(jié)點(diǎn)都能獲得一份完整記錄的拷貝。新區(qū)塊的創(chuàng)建通常需要得到全網(wǎng)多數(shù)(數(shù)量取決于不同的共識(shí)機(jī)制)節(jié)點(diǎn)的確認(rèn),并向各節(jié)點(diǎn)廣播實(shí)現(xiàn)全網(wǎng)同步,數(shù)據(jù)一經(jīng)確認(rèn),就難以刪除和更改,只能進(jìn)行授權(quán)查詢操作。
區(qū)塊鏈主要分為公有鏈、聯(lián)盟鏈與私有鏈。公有鏈對(duì)外公開,用戶無需授權(quán)即可訪問讀取區(qū)塊鏈信息。節(jié)點(diǎn)可自由出入網(wǎng)絡(luò)。任何人都可以發(fā)送交易并被確認(rèn),參與共識(shí)過程。因此,公有鏈?zhǔn)钦嬲饬x上的完全去中心化的區(qū)塊鏈。比特幣和以太坊等是公有鏈的典型代表。聯(lián)盟鏈僅限于聯(lián)盟成員參與,區(qū)塊鏈上的讀寫權(quán)限、參與記賬權(quán)限按照聯(lián)盟規(guī)則來制定,共識(shí)過程由預(yù)先選好的節(jié)點(diǎn)控制。聯(lián)盟鏈網(wǎng)絡(luò)由成員機(jī)構(gòu)共同維護(hù),網(wǎng)絡(luò)接入一般通過成員機(jī)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn)接入。聯(lián)盟鏈平臺(tái)應(yīng)提供成員管理、認(rèn)證、授權(quán)、監(jiān)控、審計(jì)等安全管理功能。典型代表有40多家銀行參與的區(qū)塊鏈聯(lián)盟R3和Linux基金會(huì)支持的超級(jí)賬本項(xiàng)目。私有鏈則僅在私有組織使用,區(qū)塊鏈上的讀寫權(quán)限、參與記賬權(quán)限按私有組織規(guī)則制定。私有鏈的應(yīng)用場景一般是企業(yè)內(nèi)部應(yīng)用,如數(shù)據(jù)庫管理、審計(jì)等。私有鏈的價(jià)值主要是提供安全、可追溯、不可篡改、自動(dòng)執(zhí)行的運(yùn)算平臺(tái),可以同時(shí)防范來自內(nèi)部和外部對(duì)數(shù)據(jù)的安全攻擊。
此外,美國區(qū)塊鏈科學(xué)研究所創(chuàng)始人梅蘭妮·斯萬在《區(qū)塊鏈:新經(jīng)濟(jì)藍(lán)圖及導(dǎo)圖》一書中,按照應(yīng)用范圍和發(fā)展階段將區(qū)塊鏈分為3個(gè)層次:
區(qū)塊鏈1.0——數(shù)字貨幣:區(qū)塊鏈1.0支撐虛擬貨幣應(yīng)用,解決貨幣和支付去中心化問題,典型代表是比特幣,其主要?jiǎng)?chuàng)新是創(chuàng)建了一套去中心化的、公開透明的交易記錄總賬——其數(shù)據(jù)庫由所有的網(wǎng)絡(luò)節(jié)點(diǎn)共享,由“礦工”更新,全民維護(hù)。
區(qū)塊鏈2.0——智能合約:區(qū)塊鏈2.0是區(qū)塊鏈1.0的發(fā)展,核心理念是把區(qū)塊鏈作為一個(gè)可編程的分布式信用基礎(chǔ)設(shè)施,支撐智能合約應(yīng)用,解決市場的去中心化問題,使得區(qū)塊鏈從最初的貨幣體系可以拓展到股權(quán)、債權(quán)和產(chǎn)權(quán)的登記、轉(zhuǎn)讓,證券和金融合約的交易、執(zhí)行,以及博彩和防偽等金融領(lǐng)域。典型代表是以太坊平臺(tái)。
區(qū)塊鏈3.0——區(qū)塊鏈應(yīng)用延伸:區(qū)塊鏈3.0的概念,已經(jīng)超越貨幣、金融范圍的區(qū)塊鏈應(yīng)用,涵蓋了智能化物聯(lián)網(wǎng)未來的各種應(yīng)用場景,特別是在政府、醫(yī)療、工業(yè)、文化和藝術(shù)領(lǐng)域的應(yīng)用,支持廣義資產(chǎn)、廣義交換,支持行業(yè)應(yīng)用,由此構(gòu)建一個(gè)大規(guī)模協(xié)作社會(huì)。EOS、Cosmos等是較為人知的區(qū)塊鏈3.0項(xiàng)目,但目前業(yè)界還沒有一個(gè)成熟的區(qū)塊鏈3.0平臺(tái)。
隨著基于HashNet數(shù)據(jù)結(jié)構(gòu)的區(qū)塊鏈技術(shù)的發(fā)展,也有公司率先探索區(qū)塊鏈4.0的概念。
區(qū)塊鏈4.0——完善生態(tài)體系:區(qū)塊鏈4.0將區(qū)塊鏈作為某個(gè)行業(yè)的基礎(chǔ)設(shè)施,形成基于區(qū)塊鏈的完善生態(tài)體系,從而構(gòu)建全球價(jià)值互聯(lián)網(wǎng)。但區(qū)塊鏈4.0尚未在業(yè)界達(dá)成一致共識(shí)。
目前,區(qū)塊鏈技術(shù)本身仍存在一些安全風(fēng)險(xiǎn),技術(shù)應(yīng)用過程中可能會(huì)引發(fā)一些不容忽視的安全問題,近年來,針對(duì)區(qū)塊鏈核心機(jī)制的漏洞利用、DoS攻擊等安全事件頻發(fā),造成重大經(jīng)濟(jì)損失。據(jù)BCSEC(區(qū)塊鏈安全網(wǎng),https://bcsec.org/)統(tǒng)計(jì),自2011年到2018年10月,全球范圍內(nèi)因區(qū)塊鏈安全事件造成的損失近36億美元。
區(qū)塊鏈安全事件日益增多,主要有以下3類:
(1)區(qū)塊鏈自身機(jī)制安全問題,包括智能合約問題與51%攻擊問題。2018年5月,比特幣黃金(BTG)遭遇51%雙花攻擊,損失1860萬美元。當(dāng)月,EOS智能合約也被曝出存在嚴(yán)重安全漏洞,攻擊者可利用漏洞控制和接管其上運(yùn)行的所有節(jié)點(diǎn)。
(2)區(qū)塊鏈生態(tài)安全問題,包括交易所被攻擊,礦池、網(wǎng)站等被DDoS以及錢包被DNS劫持等風(fēng)險(xiǎn)。2016年8月,全球最大的比特幣交易所之一Bitfinex因多重簽名漏洞導(dǎo)致12萬個(gè)比特幣(約6800萬美元)的損失。同年10月,以太坊遭到大量DoS攻擊,影響網(wǎng)絡(luò)正常運(yùn)行。2017年7月,以太坊多重簽名錢包Parity1.5及以上版本出現(xiàn)安全漏洞,15萬個(gè)以太坊ETH被盜。2018年1月,日本最大的數(shù)字加密貨幣交易所Coincheck被盜走價(jià)值5.34億美元的NEM。2018年3月,號(hào)稱世界第二大交易所的“幣安”被黑客攻擊,大量用戶賬戶被盜。2018年6月,韓國數(shù)字加密貨幣交易所Coinrail被攻擊,損失超過5000萬美元。
(3)使用者安全問題,包括個(gè)人賬號(hào)錢包被盜與個(gè)人被欺詐、釣魚、遭遇病毒木馬等問題。2017年7月1日,中原油田某小區(qū)居民價(jià)值280萬美元的188.31個(gè)比特幣被盜。油田警方幾個(gè)月后將位于上海的竊賊戴某抓獲。2017年10月,東莞一名imToken用戶發(fā)現(xiàn)100多個(gè)ETH(以太坊幣)被盜,最終確認(rèn)是身邊的朋友盜取他的數(shù)字加密貨幣。
因此,區(qū)塊鏈安全問題不容忽視?;谘芯恳寻l(fā)布的白皮書,本文從安全技術(shù)角度將區(qū)塊鏈面臨的風(fēng)險(xiǎn)與挑戰(zhàn)分為6個(gè)方面:基礎(chǔ)設(shè)施安全、密碼算法安全、協(xié)議安全、實(shí)現(xiàn)安全、使用安全和系統(tǒng)安全。
(1)基礎(chǔ)設(shè)施安全。區(qū)塊鏈基礎(chǔ)設(shè)施主要包括交換機(jī)、路由器等網(wǎng)絡(luò)資源、硬盤和云盤等存儲(chǔ)資源以及CPU、GPU等計(jì)算資源,為系統(tǒng)提供正常運(yùn)行所需的操作環(huán)境和硬件設(shè)施,是區(qū)塊鏈系統(tǒng)的基礎(chǔ)支持。其面臨的安全風(fēng)險(xiǎn)主要有:
●物理安全風(fēng)險(xiǎn):主要指基礎(chǔ)設(shè)施物理設(shè)備自身以及所處環(huán)境的安全風(fēng)險(xiǎn),如交換機(jī)、路由器等網(wǎng)絡(luò)設(shè)備存在高危漏洞導(dǎo)致被未經(jīng)授權(quán)的訪問和入侵,或者存放基礎(chǔ)設(shè)施設(shè)備的物理運(yùn)行、訪問環(huán)境中存在的安全風(fēng)險(xiǎn)。
●網(wǎng)絡(luò)攻擊威脅:主要指傳統(tǒng)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn),包括利用網(wǎng)絡(luò)設(shè)備軟硬件漏洞進(jìn)行攻擊、DNS污染、路由廣播劫持、DDoS攻擊、木馬病毒攻擊等。
●數(shù)據(jù)丟失和泄露:主要指區(qū)塊鏈數(shù)據(jù)或存儲(chǔ)區(qū)塊鏈數(shù)據(jù)的文件發(fā)生丟失或泄露的風(fēng)險(xiǎn),主要包括對(duì)數(shù)據(jù)或數(shù)據(jù)文件進(jìn)行破壞、竊取,或因失誤操作、設(shè)備故障、操作系統(tǒng)故障、管理不規(guī)范等導(dǎo)致的數(shù)據(jù)丟失和泄露,以及線上和線下數(shù)據(jù)存儲(chǔ)不一致等問題。
(2)密碼算法安全。密碼學(xué)是網(wǎng)絡(luò)安全的基石,在區(qū)塊鏈中也使用了大量密碼學(xué)知識(shí)來保證其安全性。但現(xiàn)有的一些密碼算法自身存在一定的缺陷,如DES加密算法因密鑰長度短易被暴力破解。使用有缺陷或易被破解的密碼算法會(huì)大大影響區(qū)塊鏈的安全。以比特幣為例,每個(gè)數(shù)據(jù)區(qū)塊都會(huì)使用SHA256計(jì)算一個(gè)哈希值。在現(xiàn)階段,該算法是安全的。由于SHA1和MD5已經(jīng)被密碼學(xué)者找到碰撞,所以不應(yīng)選取這兩個(gè)算法作為區(qū)塊鏈中的哈希算法。此外,比特幣使用橢圓曲線數(shù)字簽名算法ECDSA來確保交易的完整性。比特幣采用的是Koblitz曲線(secp256k1)而非美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)推薦的secp256r1。雖然當(dāng)前并無證據(jù),但有分析認(rèn)為secp256r1有可能是被NIST靜心挑選出的帶后門的橢圓曲線,而比特幣在無形中避開了這一風(fēng)險(xiǎn)。另外,隨著量子技術(shù)的發(fā)展,研究人員發(fā)現(xiàn)橢圓曲線密碼并不能抵抗量子攻擊。當(dāng)量子計(jì)算機(jī)與量子攻擊成為現(xiàn)實(shí)時(shí),所有不能夠抵抗量子攻擊的密碼算法都存在較大風(fēng)險(xiǎn),需要被替換。
(3)協(xié)議安全。主要指共識(shí)機(jī)制、P2P網(wǎng)絡(luò)等存在的安全隱患。此類風(fēng)險(xiǎn)主要由區(qū)塊鏈技術(shù)協(xié)議機(jī)制中存在的潛在安全缺陷引發(fā),包括共識(shí)算法漏洞、流量攻擊以及惡意節(jié)點(diǎn)的威脅等。
(4)實(shí)現(xiàn)安全。區(qū)塊鏈2.0的核心是智能合約或稱可編程合約,由于智能合約的應(yīng)用起步較晚,大量開發(fā)人員尚缺乏對(duì)智能合約的安全編碼能力,其風(fēng)險(xiǎn)主要來源于代碼實(shí)現(xiàn)中的安全漏洞。360代碼衛(wèi)士團(tuán)隊(duì)盤點(diǎn)的目前常見的智能合約安全漏洞主要包括整數(shù)溢出、越權(quán)訪問、拒絕服務(wù)、邏輯錯(cuò)誤、信息泄露和函數(shù)誤用等漏洞。由于智能合約的基石是代碼,伴隨代碼技術(shù)的演化,開發(fā)人員編碼質(zhì)量參差,未來將可能出現(xiàn)更多的安全隱患。此外,智能合約運(yùn)行環(huán)境的安全性也是區(qū)塊鏈安全的重要環(huán)節(jié)。目前,部分區(qū)塊鏈項(xiàng)目會(huì)設(shè)計(jì)并使用自己的虛擬機(jī)環(huán)境,如以太坊的EVM,一旦在運(yùn)行環(huán)境中存在虛擬機(jī)自身安全漏洞,或驗(yàn)證、控制等機(jī)制不完善等,攻擊者可通過部署惡意智能合約代碼,擾亂正常業(yè)務(wù)秩序,消耗整個(gè)系統(tǒng)中的網(wǎng)絡(luò)、存儲(chǔ)和計(jì)算資源,進(jìn)而引發(fā)各類安全威脅。
(5)使用安全。主要指使用的智能合約、數(shù)字錢包、交易所、應(yīng)用軟件以及服務(wù)器等存在的安全問題。智能合約等應(yīng)用允許自主無條件提交代碼、消息等操作容易產(chǎn)生漏洞,可被攻擊者利用。交易所的存在,容易出現(xiàn)區(qū)塊鏈資產(chǎn)、用戶隱私信息監(jiān)守自盜的問題。數(shù)字錢包主要存在3方面的安全隱患:設(shè)計(jì)缺陷、數(shù)字錢包中包含惡意代碼、電腦與手機(jī)丟失或損壞導(dǎo)致的丟失資產(chǎn)。此外,一些開源區(qū)塊鏈應(yīng)用軟件中存在大量安全漏洞。2016年10月,國家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的《開源軟件源代碼安全漏洞分析報(bào)告——區(qū)塊鏈專題》報(bào)告中指出,在25款主流區(qū)塊鏈開源軟件中存在746個(gè)高危漏洞、3497個(gè)中危漏洞,可能導(dǎo)致系統(tǒng)運(yùn)行異常、崩潰,或?qū)崿F(xiàn)越權(quán)訪問、竊取私密信息等嚴(yán)重后果。另外,區(qū)塊鏈應(yīng)用所在服務(wù)器上的惡意軟件、系統(tǒng)的安全漏洞、配置不當(dāng)?shù)陌踩芾聿呗缘榷伎赡艹蔀楣粽吖テ茀^(qū)塊鏈應(yīng)用的脆弱點(diǎn)。
(6)系統(tǒng)安全。上述基礎(chǔ)設(shè)施、密碼算法、協(xié)議、實(shí)現(xiàn)、使用安全漏洞與黑客攻擊結(jié)合,容易使區(qū)塊鏈?zhǔn)艿街旅拇驌?。社?huì)工程學(xué)手段與傳統(tǒng)攻擊方法結(jié)合使區(qū)塊鏈變得更加脆弱,有組織的攻擊行為將對(duì)區(qū)塊鏈安全造成極大的危害,譬如攻擊者可采用社會(huì)工程學(xué)方法欺騙用戶,同時(shí)利用病毒、木馬等傳統(tǒng)攻擊手段竊取用戶賬號(hào),進(jìn)而利用合法用戶賬號(hào)登錄系統(tǒng)進(jìn)行一系列非法操作。2018年3月7日,虛擬貨幣交易所幣安的大量用戶賬戶被竊取,攻擊者利用被盜賬戶登錄后,通過大量拋售等金融手段做高自己持有的虛擬貨幣種類價(jià)格,隨后賣空離場實(shí)現(xiàn)獲利。
區(qū)塊鏈作為一種戰(zhàn)略性、顛覆性技術(shù)受到各方熱烈關(guān)注。各國政府、大型金融機(jī)構(gòu)、企業(yè)集團(tuán)、以及眾多初創(chuàng)公司都紛紛投入了大量資源對(duì)區(qū)塊鏈進(jìn)行研究和開發(fā)。與此同時(shí),各種區(qū)塊鏈聯(lián)盟、區(qū)塊鏈協(xié)會(huì)、以及各大校企合作區(qū)塊鏈實(shí)驗(yàn)室也紛紛成立。與區(qū)塊鏈相關(guān)的測試也越來越多。
2017年5月16日,區(qū)塊鏈技術(shù)和應(yīng)用峰會(huì)暨中國區(qū)塊鏈開發(fā)大賽成果發(fā)布會(huì)在杭州舉行,首個(gè)區(qū)塊鏈標(biāo)準(zhǔn)《區(qū)塊鏈參考架構(gòu)》正式發(fā)布。同時(shí)大會(huì)還公布了參考架構(gòu)的首次測試結(jié)果,眾安科技、樂視鏈服、瑞卓喜投、分布信息科技與趣鏈科技成為首批通過測試的公司。測試從功能性、安全性等維度,對(duì)智能合約、節(jié)點(diǎn)管理、拜占庭容錯(cuò)、數(shù)字加密和簽名等進(jìn)行測試,檢驗(yàn)其是否符合《區(qū)塊鏈參考架構(gòu)》中的功能架構(gòu)的要求。
2017年5月,貴州市大數(shù)據(jù)發(fā)展工作領(lǐng)導(dǎo)小組辦公室對(duì)貴陽區(qū)塊鏈測試中心正式授牌。依托于貴陽區(qū)塊鏈測試中心建設(shè)的區(qū)塊鏈測試平臺(tái),現(xiàn)已開展試運(yùn)行。該中心主要由電子五所提供技術(shù)和人員的支持,并對(duì)外提供區(qū)塊鏈測評(píng)服務(wù)。
2017年5月,中國信息通信研究院對(duì)北京太一云科技有限公司的區(qū)塊鏈超導(dǎo)交易網(wǎng)絡(luò)進(jìn)行了測試,驗(yàn)證了超導(dǎo)網(wǎng)絡(luò)產(chǎn)品的完整性、擴(kuò)展性與高頻交易性能等能力。測試主要包含功能測試和性能測試兩個(gè)部分。功能測試主要測試連接、交易、結(jié)算等常見基本功能,并對(duì)各種邊界條件進(jìn)行了測試。同時(shí),對(duì)超導(dǎo)網(wǎng)絡(luò)的擴(kuò)展性進(jìn)行了測試,包含任意節(jié)點(diǎn)的加入、離開、跨多個(gè)節(jié)點(diǎn)的穿透交易等。性能測試則在10臺(tái)物理服務(wù)器上進(jìn)行了小規(guī)模的性能測試,并基于公有云環(huán)境進(jìn)行大規(guī)模測性能測試。測試中,超導(dǎo)網(wǎng)絡(luò)持續(xù)運(yùn)行1h,完成了4億筆交易,每秒鏈外交易數(shù)接近11萬筆。同年9月19日,由中國信息通信研究院主辦、數(shù)據(jù)中心聯(lián)盟承辦、中國支付清算協(xié)會(huì)金融科技專業(yè)委員會(huì)和中國物流與采購聯(lián)合會(huì)區(qū)塊鏈應(yīng)用分會(huì)支持的“2017可信區(qū)塊鏈峰會(huì)”在北京召開,會(huì)上公布了可信區(qū)塊鏈標(biāo)準(zhǔn)和測評(píng)結(jié)果。據(jù)了解,可信區(qū)塊鏈預(yù)測試基于數(shù)據(jù)中心聯(lián)盟可信區(qū)塊鏈標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是國內(nèi)首個(gè)可信區(qū)塊鏈標(biāo)準(zhǔn),設(shè)立了涵蓋功能、技術(shù)、安全、性能等14個(gè)評(píng)價(jià)指標(biāo)和54項(xiàng)評(píng)測點(diǎn)。騰訊財(cái)付通、復(fù)雜美、布比、博晨、太一云、杭州趣鏈、智鏈ChainNova、中興、聯(lián)動(dòng)優(yōu)勢等九家企業(yè)的產(chǎn)品通過了本輪預(yù)評(píng)測。
2018年6月28日,可信區(qū)塊鏈評(píng)測方案討論會(huì)在中國信息通信研究院召開。會(huì)議確定了可信區(qū)塊鏈的測試方法,確定了可信區(qū)塊鏈性能測試規(guī)范,細(xì)化了可信區(qū)塊鏈測試的信息披露項(xiàng),并對(duì)開源基準(zhǔn)測試工作組的任務(wù)安排進(jìn)行了討論。隨著評(píng)測方案的定稿,測試工作將于后續(xù)正式啟動(dòng)。
根據(jù)區(qū)塊鏈測評(píng)內(nèi)容,大體上可分為功能測試、性能測試、安全性測試、可靠性測試4大類。以上測試多偏重于功能測試、性能測試與可靠性測試,本文著重討論區(qū)塊鏈安全性測試方案?;谝陨霞夹g(shù)總結(jié)與風(fēng)險(xiǎn)分析,本文建議區(qū)塊鏈安全測試從以下幾方面著手:
(1)網(wǎng)絡(luò)設(shè)備安全測試:網(wǎng)絡(luò)基礎(chǔ)設(shè)施是區(qū)塊鏈平臺(tái)的基礎(chǔ)。對(duì)路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備進(jìn)行已知漏洞掃描、安全功能檢查、配置核查以及未知漏洞挖掘,可大大降低來自區(qū)塊鏈平臺(tái)底層的安全威脅。此項(xiàng)測試主要針對(duì)交易所或提供區(qū)塊鏈底層平臺(tái)服務(wù)的運(yùn)營商等組織機(jī)構(gòu)。
(2)數(shù)據(jù)安全測試:該項(xiàng)測試主要檢查區(qū)塊鏈數(shù)據(jù)或文件是否加密存儲(chǔ)與傳輸,以及采用的加密算法是否容易被破解,降低信息泄露或被竊取的風(fēng)險(xiǎn)。此外,還需要檢查數(shù)據(jù)備份功能是否完善,減少數(shù)據(jù)文件被破壞無法恢復(fù)造成的影響。
(3)密碼安全測試:密碼學(xué)是網(wǎng)絡(luò)安全的基石。此項(xiàng)測試主要檢查被測區(qū)塊鏈系統(tǒng)采用的密碼算法是否安全,降低加密數(shù)據(jù)被破解或簽名被偽造的概率。另外,還可以測試被測系統(tǒng)是否支持國密算法。常用的測試手段包括查閱技術(shù)開發(fā)文檔、詢問程序開發(fā)人員以及審計(jì)代碼等。
(4)P2P網(wǎng)絡(luò)機(jī)制安全測試:公有鏈允許任意節(jié)點(diǎn)或客戶端加入。對(duì)公有鏈,該項(xiàng)測試主要驗(yàn)證被測區(qū)塊鏈系統(tǒng)采用的P2P網(wǎng)絡(luò)機(jī)制是否支持抵御DDoS攻擊、女巫攻擊以及日蝕攻擊等常見的攻擊手段。對(duì)于聯(lián)盟鏈與私有鏈,該項(xiàng)則側(cè)重驗(yàn)證采用的P2P網(wǎng)絡(luò)機(jī)制是否采用加密傳輸,以及如何確??蛻舳伺c節(jié)點(diǎn)之間的信任。
(5)共識(shí)機(jī)制安全測試:共識(shí)算法目的是實(shí)現(xiàn)分布式場景下全網(wǎng)各節(jié)點(diǎn)數(shù)據(jù)的一致性和正確性。該測試項(xiàng)主要驗(yàn)證被測區(qū)塊鏈系統(tǒng)是否可以防止雙花攻擊(DoubleSpendingAttacks,指同一個(gè)數(shù)字貨幣可以花費(fèi)一次以上)或重放攻擊(對(duì)于PoS、DPoS以及PBFT等確定性算法無雙花攻擊漏洞)、分叉攻擊、女巫攻擊、賄賂攻擊、預(yù)計(jì)算攻擊與自私挖礦等常見的攻擊手段,以及是否有良好的容錯(cuò)能力。
(6)智能合約安全測試:智能合約是區(qū)塊鏈2.0的核心,用數(shù)字來定義承諾,如果邏輯不夠嚴(yán)謹(jǐn),則很容易留下隱患。該項(xiàng)測試目的是檢查智能合約代碼中是否有常見的安全漏洞、智能合約是否可信以及智能合約是否符合規(guī)范和流程。著重檢查的漏洞有:整數(shù)溢出漏洞、越權(quán)訪問漏洞、拒絕服務(wù)漏洞、邏輯錯(cuò)誤漏洞、信息泄露漏洞以及函數(shù)誤用等漏洞。如廠商允許,還可以進(jìn)行代碼審計(jì)測試工作,在代碼層次尋找可能存在的漏洞。
(7)Web與移動(dòng)客戶端應(yīng)用安全測試:面向終端用戶的區(qū)塊鏈項(xiàng)目一般都會(huì)有Web或者移動(dòng)客戶端應(yīng)用程序??梢罁?jù)開放式Web應(yīng)用程序安全項(xiàng)目OWASP TOP10提出的Web應(yīng)用系統(tǒng)面臨的最嚴(yán)重的風(fēng)險(xiǎn)進(jìn)行測試:注入、失效的身份認(rèn)證、敏感信息泄露、XML外部實(shí)體(XXE)、失效的訪問控制、安全配置錯(cuò)誤、跨站腳本(XSS)、不安全的反序列化、使用含有已知漏洞的組件、不足的日志記錄和監(jiān)控等(引用OWASPTOP10 2017內(nèi)容)。必要時(shí)還可以模擬黑客攻擊,進(jìn)行滲透評(píng)估測試,發(fā)現(xiàn)潛在的漏洞與威脅。
(8)身份認(rèn)證與鑒別測試:聯(lián)盟鏈僅限于聯(lián)盟成員參與,私有鏈則僅在私有組織使用。因此聯(lián)盟鏈與私有鏈平臺(tái)應(yīng)提供成員管理、認(rèn)證、授權(quán)、監(jiān)控、審計(jì)等安全管理功能。所以對(duì)于聯(lián)盟鏈與私有鏈平臺(tái),應(yīng)進(jìn)行身份認(rèn)證與鑒別、成員管理以及審計(jì)記錄等安全功能測試,防止出現(xiàn)非授權(quán)訪問與讀寫區(qū)塊鏈數(shù)據(jù)的情況。
此外,還可以對(duì)區(qū)塊鏈系統(tǒng)激勵(lì)機(jī)制以及其他自由協(xié)議進(jìn)行黑盒測試或白盒測試,盡量保證其安全性。
區(qū)塊鏈技術(shù)蓬勃發(fā)展,可被應(yīng)用到金融、物聯(lián)網(wǎng)、智能制造、供應(yīng)鏈管理、數(shù)據(jù)存證及資產(chǎn)交易等多個(gè)領(lǐng)域,可為云計(jì)算、大數(shù)據(jù)、移動(dòng)互聯(lián)網(wǎng)等新一代信息技術(shù)的發(fā)展帶來新的機(jī)遇。但區(qū)塊鏈安全問題亦不可忽視,本文從技術(shù)角度分析區(qū)塊鏈技術(shù)面臨的安全風(fēng)險(xiǎn),并探索區(qū)塊鏈技術(shù)安全測試方案,希望為以后區(qū)塊鏈安全測試的研究帶來一定的參考意義。