• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于區(qū)塊鏈的工業(yè)控制系統(tǒng)數(shù)據(jù)完整性保護(hù)

      2022-10-11 08:33:26孫彥棨張正道
      關(guān)鍵詞:哈希攻擊者共識(shí)

      孫彥棨,張正道,2+

      (1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122;2.江南大學(xué) 教育部物聯(lián)網(wǎng)技術(shù)應(yīng)用工程中心,江蘇 無(wú)錫 214122)

      0 引言

      工業(yè)控制系統(tǒng)(Industrial Control System, ICS)是工業(yè)物聯(lián)網(wǎng)的主要形式之一,已廣泛應(yīng)用于航天、能源、運(yùn)輸?shù)阮I(lǐng)域[1-3]。隨著ICS的開(kāi)放性與日俱增,其面臨的安全隱患也大大增加,主要是攻擊者通過(guò)內(nèi)部攻擊破壞數(shù)據(jù)的完整性以達(dá)到操控工業(yè)過(guò)程的目的。因此,與其他工業(yè)物聯(lián)網(wǎng)系統(tǒng)相比,工業(yè)控制系統(tǒng)受到攻擊后,不僅會(huì)造成其信息系統(tǒng)部分的破壞,還將導(dǎo)致其物理系統(tǒng)部分出現(xiàn)嚴(yán)重故障,進(jìn)而造成人員和財(cái)產(chǎn)損失[4]。因此,工業(yè)控制系統(tǒng)的安全性保護(hù)是一個(gè)值得研究的問(wèn)題。

      目前,數(shù)據(jù)完整性攻擊包括:虛假數(shù)據(jù)注入攻擊(False Data Injection attack, FDI)、拒絕服務(wù)攻擊(Denial-of-Service attack, DoS)、中間人攻擊(Man-in-the-Middle attack, MITM)和重放攻擊(Replay Attacks),是工業(yè)控制系統(tǒng)面臨的主要攻擊類(lèi)型[5]。現(xiàn)有的數(shù)據(jù)完整性保護(hù)方案則可以分為基于模型的方案、基于數(shù)據(jù)的方案和基于密碼學(xué)的方案3類(lèi)。其中基于模型的方案需要對(duì)ICS建立精確的數(shù)學(xué)模型;基于數(shù)據(jù)的方案一般需要大量精確而有效的系統(tǒng)采樣數(shù)據(jù),易受系統(tǒng)和環(huán)境噪聲的影響;而基于密碼學(xué)的方案則要求設(shè)備具有足夠的計(jì)算資源以執(zhí)行復(fù)雜的密碼學(xué)運(yùn)算。而ICS不但精確建模困難,數(shù)據(jù)受噪聲影響大,而且計(jì)算資源有限?,F(xiàn)有方案在應(yīng)用時(shí)均存在局限性。

      區(qū)塊鏈技術(shù)是一種全新的去中心化基礎(chǔ)架構(gòu)和分布式計(jì)算范式[6],且具有不可篡改的特性,因此可實(shí)現(xiàn)數(shù)據(jù)完整性保護(hù)[7]。文獻(xiàn)[8]將區(qū)塊鏈與車(chē)輛和電網(wǎng)(V2G)相結(jié)合,提出一種能源交易認(rèn)證方案。通過(guò)哈希函數(shù)與非對(duì)稱(chēng)密鑰對(duì)交易實(shí)體進(jìn)行多方認(rèn)證。文獻(xiàn)[9]提出一種私有的區(qū)塊鏈架構(gòu)管理工業(yè)物聯(lián)網(wǎng)數(shù)據(jù),將數(shù)據(jù)通過(guò)非對(duì)稱(chēng)密鑰進(jìn)行加密并存儲(chǔ)在區(qū)塊鏈上以保證數(shù)據(jù)的完整性。然而,上述方案需要大量計(jì)算資源,難以在ICS中進(jìn)行部署。文獻(xiàn)[10]結(jié)合區(qū)塊鏈與無(wú)證書(shū)密碼學(xué)技術(shù)提出一種物聯(lián)網(wǎng)數(shù)據(jù)分布式存儲(chǔ)方案,利用區(qū)塊鏈礦工存儲(chǔ)與審計(jì)物聯(lián)網(wǎng)數(shù)據(jù),消除了傳統(tǒng)的中心服務(wù)器,避免了單點(diǎn)故障問(wèn)題。文獻(xiàn)[11]提出一種名為ICS-BlockOpS的新型區(qū)塊鏈架構(gòu),以保護(hù)智能工廠中歷史數(shù)據(jù)的安全性,并通過(guò)完整性檢查機(jī)制和數(shù)據(jù)冗余提高了歷史數(shù)據(jù)的安全性與魯棒性。然而上述方案沒(méi)有考慮數(shù)據(jù)傳輸過(guò)程中的安全性,無(wú)法保證數(shù)據(jù)在存儲(chǔ)到區(qū)塊鏈分類(lèi)賬之前的真實(shí)性。文獻(xiàn)[12]提出一種基于區(qū)塊鏈的移動(dòng)邊緣計(jì)算物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)與共享方案,通過(guò)邊緣節(jié)點(diǎn)管理區(qū)塊鏈網(wǎng)絡(luò),采用鏈上鏈下雙重存儲(chǔ)模式,將數(shù)據(jù)存儲(chǔ)地址與其數(shù)字簽名存儲(chǔ)在區(qū)塊鏈中,數(shù)據(jù)以分布式的方式存儲(chǔ)在鏈下數(shù)據(jù)庫(kù)中,提高了數(shù)據(jù)的安全性與容錯(cuò)性。結(jié)合基于屬性的數(shù)字簽名算法,文獻(xiàn)[13]提出一種霧環(huán)境下的基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)安全分享方案,通過(guò)將區(qū)塊鏈操作卸載到霧節(jié)點(diǎn)上,提高了方案的可用性與可拓展性,增強(qiáng)了數(shù)據(jù)傳輸過(guò)程中的可信性。上述方案雖然考慮了物聯(lián)網(wǎng)設(shè)備資源的受限性并作了相應(yīng)的改進(jìn),然而方案所需的通信量較大,在達(dá)成共識(shí)時(shí)存在較大的延遲,難以滿足工業(yè)生產(chǎn)的實(shí)時(shí)性要求。

      目前區(qū)塊鏈在工業(yè)控制系統(tǒng)安全的研究主要集中于控制臺(tái)到服務(wù)器的網(wǎng)絡(luò)級(jí),很少涉及從控制臺(tái)到現(xiàn)場(chǎng)單元的現(xiàn)場(chǎng)級(jí)。相比較而言,從控制臺(tái)到現(xiàn)場(chǎng)單元的部分具有以下特點(diǎn):①計(jì)算資源更為受限。工業(yè)控制系統(tǒng)中的設(shè)備普遍存在計(jì)算資源受限問(wèn)題。而在現(xiàn)場(chǎng)級(jí),參與運(yùn)行的主要是傳感器、智能儀表、可編程邏輯控制器和少量工業(yè)控制計(jì)算機(jī),它們擁有的計(jì)算資源無(wú)法支持復(fù)雜計(jì)算。②通信能力受限?,F(xiàn)場(chǎng)級(jí)的通信一般依托現(xiàn)場(chǎng)總線完成,不但缺乏安全性措施,而且通信速率低、通信延時(shí)大。因此,現(xiàn)有區(qū)塊鏈方案難以滿足ICS中的安全性需求與可用性需求。為此,本文提出一種用于保護(hù)ICS數(shù)據(jù)完整性的區(qū)塊鏈方案。首先,為降低系統(tǒng)的計(jì)算與通信開(kāi)銷(xiāo),提出一種隨機(jī)驗(yàn)證機(jī)制,從網(wǎng)絡(luò)中隨機(jī)選擇部分節(jié)點(diǎn)參與區(qū)塊鏈共識(shí)過(guò)程。該機(jī)制利用隨機(jī)局部節(jié)點(diǎn)取代了全體節(jié)點(diǎn)參與共識(shí)過(guò)程,在降低計(jì)算與通信開(kāi)銷(xiāo)的同時(shí)還給攻擊者帶來(lái)了不確定性。其次,提出一種新型共識(shí)模型,按照共識(shí)節(jié)點(diǎn)的狀態(tài)采用不同的共識(shí)策略。該模型進(jìn)一步節(jié)約了系統(tǒng)通信資源,有效避免了節(jié)點(diǎn)之間的無(wú)效通信,最大程度降低了共識(shí)過(guò)程的延遲與通信量。通過(guò)安全分析以及在半實(shí)物仿真平臺(tái)進(jìn)行性能仿真驗(yàn)證了本文方案對(duì)于ICS的有效性。

      1 方案概述

      本文討論的工業(yè)控制系統(tǒng)模型如圖1所示,其中現(xiàn)場(chǎng)級(jí)主要包括現(xiàn)場(chǎng)儀表與傳感器、控制器和控制臺(tái)3類(lèi)實(shí)體。具體描述如下:

      (1)現(xiàn)場(chǎng)儀表與傳感器 由各種控制儀表或傳感器組成,用于獲取實(shí)時(shí)工業(yè)數(shù)據(jù)并上傳控制器。

      (2)控制器(Control Unit, CU) 如可編程邏輯控制器(Programmable Logic Controller, PLC)等,獲取現(xiàn)場(chǎng)儀表與傳感器的測(cè)量數(shù)據(jù),并進(jìn)行數(shù)據(jù)預(yù)處理。

      (3)控制臺(tái)(Industrial Control Console, ICC) 一般為工業(yè)控制計(jì)算機(jī),是擬議模型的中心節(jié)點(diǎn)。通過(guò)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)與控制器相連接,并接收控制器預(yù)處理測(cè)量數(shù)據(jù)與下達(dá)控制命令。

      由于傳統(tǒng)區(qū)塊鏈方案資源要求高、通信量大,不適用于資源有限、實(shí)時(shí)性要求高的工業(yè)生產(chǎn)環(huán)境。對(duì)此,本文基于授權(quán)的方式構(gòu)建了一個(gè)許可的私有區(qū)塊鏈網(wǎng)絡(luò)[14]。根據(jù)設(shè)備資源的多少,設(shè)置資源較少的控制器作為輕節(jié)點(diǎn),資源較強(qiáng)的控制臺(tái)作為全節(jié)點(diǎn)?,F(xiàn)場(chǎng)儀表與傳感器僅用于采集工業(yè)數(shù)據(jù),并不實(shí)現(xiàn)區(qū)塊鏈邏輯。在許可的私有區(qū)塊鏈網(wǎng)絡(luò)中,輕節(jié)點(diǎn)負(fù)責(zé)將所屬現(xiàn)場(chǎng)儀表與傳感器上傳的數(shù)據(jù)生成區(qū)塊鏈交易并在網(wǎng)絡(luò)中廣播,同時(shí)驗(yàn)證網(wǎng)絡(luò)中廣播的區(qū)塊鏈交易。全節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證網(wǎng)絡(luò)中廣播的區(qū)塊鏈交易,并生成區(qū)塊鏈賬本。

      2 方案詳細(xì)設(shè)計(jì)

      本文提出的基于區(qū)塊鏈數(shù)據(jù)完整性保護(hù)方案主要包括區(qū)塊鏈網(wǎng)絡(luò)初始化、區(qū)塊鏈交易生成、動(dòng)態(tài)隨機(jī)驗(yàn)證、共識(shí)過(guò)程以及區(qū)塊鏈分類(lèi)賬更新5個(gè)階段,方案的具體執(zhí)行邏輯如算法1所示。

      算法1擬議方案的執(zhí)行邏輯。

      1:for all CUs, ICC do

      2: 執(zhí)行區(qū)塊鏈網(wǎng)絡(luò)初始化過(guò)程

      3:end for

      4:for CUs do

      5: 執(zhí)行區(qū)塊鏈交易生成過(guò)程

      6: for VNs, ICC do//驗(yàn)證節(jié)點(diǎn)(VNs)

      7: 執(zhí)行動(dòng)態(tài)隨機(jī)驗(yàn)證過(guò)程與共識(shí)過(guò)程

      8: for ICC do

      9: 執(zhí)行區(qū)塊鏈賬本更新過(guò)程

      10: end for

      11: end for

      12:end for

      2.1 區(qū)塊鏈網(wǎng)絡(luò)初始化

      擬議方案首先需要初始化。ICC為注冊(cè)中心,節(jié)點(diǎn)在加入?yún)^(qū)塊鏈網(wǎng)絡(luò)之前,需要在ICC進(jìn)行注冊(cè)以獲取數(shù)字證書(shū)。假設(shè)網(wǎng)絡(luò)中有N個(gè)節(jié)點(diǎn),即{ICC,CU1,CU2,…,CUN-1}。采用文獻(xiàn)[15]的密鑰分發(fā)機(jī)制,每個(gè)節(jié)點(diǎn)需要一對(duì)非對(duì)稱(chēng)密鑰來(lái)收發(fā)信息。因此,在初始化之前,網(wǎng)絡(luò)中的節(jié)點(diǎn)在本地生成一對(duì)公私鑰,其中CUi的密鑰對(duì)表示為(PKi,SKi),ICC密鑰對(duì)表示為(ICCPK,ICCSK)。

      首先,CUi(i=1,…,N-1)利用自身MAC地址和隨機(jī)數(shù)組合的哈希值生成唯一的身份標(biāo)識(shí)符OIDi。然后,CUi向ICC發(fā)送注冊(cè)請(qǐng)求(Mi),即

      Mi=EncICCPK{signSKi(OIDi,TS,noncei)}。

      (1)

      式中:EncICCPK表示Mi通過(guò)ICC的公鑰ICCPK進(jìn)行加密;signSKi表示CUi的私鑰簽名;TS表示時(shí)間戳;noncei表示隨機(jī)值,其用于發(fā)起回應(yīng)挑戰(zhàn),如果ICC可以回應(yīng)正確的隨機(jī)值,則認(rèn)為ICC已經(jīng)成功解密了Mi。隨后,ICC接收Mi并解密。若CUi尚未注冊(cè),則ICC將為CUi生成數(shù)字證書(shū)Certi=ICCSK(OIDi);否則,ICC將忽略CUi的注冊(cè)請(qǐng)求。ICC在完成所有CUi注冊(cè)后,基于各CUi的Mi和Certi生成白名單Whitelist。如表1所示,其主要包括OIDi,Certi,Timei,其中Timei表示CUi生成的最新區(qū)塊鏈交易的時(shí)間戳。在初始化階段,由于區(qū)塊鏈交易還未生成,因此Timei設(shè)置為0。ICC的數(shù)字證書(shū)設(shè)置為Cert0=ICCSK(OID0),其中OID0為ICC的身份標(biāo)識(shí)符,生成機(jī)制與OIDi相同。由于ICC不參與生成區(qū)塊鏈交易,白名單中ICC對(duì)應(yīng)的Timei設(shè)為null。

      表1 白名單

      接著,ICC發(fā)送AMi到網(wǎng)絡(luò)中的CUi,即

      AMi=EncPKi{signICCSK(Whitelist,noncei,

      TS,nonceb)}。

      (2)

      式中nonceb同樣是一個(gè)回應(yīng)挑戰(zhàn)。CUi解密AMi并從中提取白名單,白名單將保存在CUi的本地,并隨著區(qū)塊鏈交易的生成而實(shí)時(shí)更新。之后,CUi通過(guò)FMi向ICC反饋nonceb以完成初始化,其中

      FMi=EncICCPK{signSKi(TS,nonceb)}。

      (3)

      由于初始化僅執(zhí)行一次,其中涉及到的密碼學(xué)操作也僅執(zhí)行一次,不會(huì)影響擬議方案整體性能。

      2.2 區(qū)塊鏈交易生成過(guò)程

      CUi依據(jù)數(shù)據(jù)采集周期從現(xiàn)場(chǎng)儀表與傳感器獲取測(cè)量數(shù)據(jù)并進(jìn)行預(yù)處理。之后,CUi基于測(cè)量數(shù)據(jù)生成區(qū)塊鏈交易。區(qū)塊鏈交易結(jié)構(gòu)為:

      TXi={OIDi,indexk,TStx,data,

      HASH(OIDi,indexk,TStx,data,Certi)}。

      (4)

      式中:indexk為交易索引,TStx為交易時(shí)間戳,data為測(cè)量數(shù)據(jù),HASH(OIDi,indexk,TStx,data,Certi)為交易哈希值,HASH()表示MD5哈希函數(shù)。CUi將TXi在區(qū)塊鏈網(wǎng)絡(luò)中廣播。

      2.3 動(dòng)態(tài)隨機(jī)驗(yàn)證過(guò)程

      接收到廣播的區(qū)塊鏈交易之后,輕節(jié)點(diǎn)將執(zhí)行驗(yàn)證過(guò)程。為了降低驗(yàn)證過(guò)程的計(jì)算與通信開(kāi)銷(xiāo),本文提出一種動(dòng)態(tài)隨機(jī)驗(yàn)證機(jī)制。具體來(lái)說(shuō),每個(gè)輕節(jié)點(diǎn)在本地維護(hù)一個(gè)定時(shí)器。當(dāng)節(jié)點(diǎn)執(zhí)行驗(yàn)證過(guò)程時(shí),若在定時(shí)器時(shí)間范圍內(nèi)完成驗(yàn)證,則節(jié)點(diǎn)被視為驗(yàn)證節(jié)點(diǎn);若超出了定時(shí)器時(shí)間范圍,節(jié)點(diǎn)沒(méi)有完成驗(yàn)證,則節(jié)點(diǎn)直接丟棄交易。由于節(jié)點(diǎn)的驗(yàn)證速度與區(qū)塊鏈交易傳輸時(shí)間和節(jié)點(diǎn)實(shí)時(shí)可用資源有關(guān),上述機(jī)制可以動(dòng)態(tài)地隨機(jī)選擇部分節(jié)點(diǎn)參與交易驗(yàn)證過(guò)程,節(jié)約開(kāi)銷(xiāo)的同時(shí)也給攻擊者引入了不確定性。

      由于網(wǎng)絡(luò)中所有數(shù)據(jù)都需要發(fā)送至ICC。因此,ICC將驗(yàn)證網(wǎng)絡(luò)中廣播的所有交易且不受定時(shí)器的約束。區(qū)塊鏈交易校驗(yàn)規(guī)則如下:

      規(guī)則1交易中的時(shí)間戳(TStx)與白名單中的Timei之差應(yīng)大于預(yù)設(shè)的閾值Te,即

      TStx-Whitelist(Timei)>Te。

      (5)

      規(guī)則2交易中的時(shí)間戳(TStx)與驗(yàn)證節(jié)點(diǎn)的系統(tǒng)當(dāng)前時(shí)間戳(TSC)之差小于系統(tǒng)最大延遲ΔT,即

      TSC-TStx<ΔT。

      (6)

      規(guī)則3交易中的哈希值應(yīng)滿足:

      RHash=HASH(OIDi,indexk,TStx,

      data,Certi)。

      (7)

      式中RHash為驗(yàn)證節(jié)點(diǎn)重新計(jì)算的交易哈希值。

      規(guī)則1用于限制CUi生成交易的速度,防止攻擊者不斷生成虛假的交易而淹沒(méi)網(wǎng)絡(luò);規(guī)則2規(guī)定了交易廣播的最大延遲時(shí)間,可防止攻擊者發(fā)起重放攻擊;規(guī)則3通過(guò)重新計(jì)算交易哈希值RHash以驗(yàn)證交易完整性。驗(yàn)證節(jié)點(diǎn)檢索白名單獲取CUi的數(shù)字證書(shū)Certi,并利用交易中的信息重新計(jì)算RHash。若RHash與交易中的哈希值相等,則驗(yàn)證通過(guò)。若區(qū)塊鏈交易滿足以上驗(yàn)證規(guī)則,則交易有效;否則,交易無(wú)效。

      2.4 共識(shí)過(guò)程

      假設(shè)驗(yàn)證過(guò)程中驗(yàn)證節(jié)點(diǎn)的數(shù)量為P,則驗(yàn)證節(jié)點(diǎn)集表示為{VN1,VN2,…,VNi,…,VNP-1,ICC}。ICC依據(jù)多數(shù)節(jié)點(diǎn)的驗(yàn)證結(jié)果判定交易合法性以達(dá)成共識(shí)。根據(jù)區(qū)塊鏈交易驗(yàn)證結(jié)果,共識(shí)過(guò)程可分為以下4種情況,根據(jù)不同的情況將采取不同的策略。

      情況1驗(yàn)證節(jié)點(diǎn)集{VN1,VN2,…,VNi,…,VNP-1,ICC}中的節(jié)點(diǎn)均驗(yàn)證成功。

      此時(shí),{VN1,VN2,…,VNi,…,VNP-1}無(wú)需向ICC反饋驗(yàn)證結(jié)果。ICC等待預(yù)設(shè)時(shí)間閾值TW后,未收到驗(yàn)證失敗的結(jié)果反饋,則執(zhí)行交易更新過(guò)程。

      情況2ICC驗(yàn)證失敗,{VN1,VN2,…,VNi,…,VNP-1}驗(yàn)證成功。

      此時(shí),ICC在等待預(yù)設(shè)時(shí)間閾值TW之后,未收到反饋。因此,ICC廣播一則交易轉(zhuǎn)發(fā)請(qǐng)求Req,即

      Req={TSm,OIDi,indexk,Oid=1,

      HASH(TSm,OIDi,indexk,Oid=1,Cert0)}。

      (8)

      式中:TSm為時(shí)間戳,Oid表示操作標(biāo)識(shí)符,1表示轉(zhuǎn)發(fā)操作。

      VNi接收Req并驗(yàn)證其合法性。首先,VNi生成當(dāng)前時(shí)間戳(TSC)并與Req中的時(shí)間戳TSm做差。若兩者之差小于系統(tǒng)最大延遲ΔT,即TSC-TSm<ΔT,則驗(yàn)證通過(guò)。接著,VNi利用Req中的信息重新計(jì)算哈希值RHash,即

      RHash=HASH(TSm,OIDi,

      indexk,Oid=1,Cert0)。

      (9)

      式中Cert0為ICC的數(shù)字證書(shū),可通過(guò)檢索本地白名單獲得。若RHash與Req中的哈希值相等,則驗(yàn)證通過(guò)。若Req滿足以上兩條驗(yàn)證規(guī)則,則Req有效;否則,Req無(wú)效。本文中所有信息的驗(yàn)證均遵循上述規(guī)則。

      若Req驗(yàn)證成功,VNi根據(jù)其中的身份標(biāo)識(shí)符OIDi和交易索引indexk轉(zhuǎn)發(fā)對(duì)應(yīng)的區(qū)塊鏈交易;否則,VNi忽略Req。當(dāng)VNi執(zhí)行轉(zhuǎn)發(fā)操作時(shí),將構(gòu)建一則反饋信息(Feedback)發(fā)送給ICC。Feedback數(shù)據(jù)結(jié)構(gòu)如下:

      Feedback={TSm,TXi,

      (10)

      Stop={TSm,OIDi,indexk,Oid=0,

      HASH(TSm,OIDi,indexk,Oid=0,Cert0)}。

      (11)

      式中Oid=0表示停止轉(zhuǎn)發(fā)操作。VNi接收并驗(yàn)證Stop的有效性。若驗(yàn)證通過(guò),VNi停止轉(zhuǎn)發(fā)交易到ICC;否則,驗(yàn)證節(jié)點(diǎn)忽略Stop。若Feedback驗(yàn)證失敗,ICC忽略Feedback,等待其余的驗(yàn)證節(jié)點(diǎn)轉(zhuǎn)發(fā)交易。

      情況3ICC驗(yàn)證成功,{VN1,VN2,…,VNi,…,VNP-1}中存在節(jié)點(diǎn)驗(yàn)證失敗。

      此時(shí),驗(yàn)證失敗的節(jié)點(diǎn)將驗(yàn)證結(jié)果(Fail)反饋給ICC。Fail的數(shù)據(jù)結(jié)構(gòu)如下:

      Fail={TSm,OIDi,indexk,VR=00,

      (12)

      式中:VR表示驗(yàn)證結(jié)果,00表示驗(yàn)證失敗。ICC接收并驗(yàn)證Fail。若驗(yàn)證通過(guò),ICC廣播一則信息(Report),要求其余驗(yàn)證節(jié)點(diǎn)反饋驗(yàn)證結(jié)果,即

      Report={TSm,OIDi,indexk,Rt=01,

      HASH(TSm,OIDi,indexk,Rt=01,Cert0)}。

      (13)

      式中Rt=01表示驗(yàn)證節(jié)點(diǎn)需要向ICC報(bào)告驗(yàn)證結(jié)果。驗(yàn)證節(jié)點(diǎn)接收Report并驗(yàn)證。若驗(yàn)證通過(guò),則驗(yàn)證節(jié)點(diǎn)發(fā)送信息(Success1)到ICC,即

      Success1={TSm,OIDi,indexk,VR=11,

      (14)

      式中VR=11代表交易驗(yàn)證成功。ICC驗(yàn)證Success1的有效性并統(tǒng)計(jì)驗(yàn)證節(jié)點(diǎn)的數(shù)量P,即

      P=number(Fail)+number(Success1)+1。

      (15)

      式中:number(Fail)和number(Success1)分別表示ICC接收并驗(yàn)證通過(guò)的Fail與Success1的數(shù)量,1表示ICC自身的驗(yàn)證結(jié)果。若滿足number(Success1)>P/2,則交易合法,ICC執(zhí)行交易更新過(guò)程;否則,ICC將丟棄該交易。

      情況4ICC驗(yàn)證失敗,{VN1,VN2,…,VNi,…,VNP-1}中也存在節(jié)點(diǎn)驗(yàn)證失敗。

      與情況3類(lèi)似,唯一不同的地方在于驗(yàn)證節(jié)點(diǎn)向ICC報(bào)告驗(yàn)證結(jié)果時(shí),報(bào)告信息Success2的結(jié)構(gòu)變化如下:

      Success2={TSm,OIDi,indexk,VR=11,TXi,

      (16)

      ICC接收并驗(yàn)證Success2。與式(15)類(lèi)似,驗(yàn)證節(jié)點(diǎn)的數(shù)量

      P=number(Fail)+number(Success2)+1。

      (17)

      式中number(Success2)表示ICC驗(yàn)證通過(guò)的Success2的數(shù)量。若滿足number(Success2)>P/2,則交易合法。ICC從Success2中提取TXi以執(zhí)行交易更新過(guò)程。

      2.5 區(qū)塊鏈賬本更新過(guò)程

      ICC判定區(qū)塊鏈交易為合法交易之后,將其放入交易池中,并執(zhí)行交易更新過(guò)程。首先,ICC廣播一則更新信息(Update),即

      Update={OIDi,TStx,TSm,

      HASH(OIDi,TStx,TSm,Cert0)}。

      (18)

      網(wǎng)絡(luò)中所有輕節(jié)點(diǎn)接收Update并驗(yàn)證。若Update有效,輕節(jié)點(diǎn)從中提取TStx,以更新白名單中OIDi對(duì)應(yīng)的Timei;若驗(yàn)證失敗,則直接忽略Update。同時(shí),ICC也利用TXi中的TStx更新其本地白名單。

      當(dāng)交易池中的交易數(shù)量達(dá)到預(yù)設(shè)的閾值時(shí),ICC將交易池中的交易打包成一個(gè)區(qū)塊,其結(jié)構(gòu)如圖2所示。區(qū)塊由頭與主體組成。區(qū)塊頭中包含5個(gè)參數(shù),即區(qū)塊版本號(hào)(version number)、前一個(gè)區(qū)塊的哈希值(PreHASH)、區(qū)塊哈希值(BlockHASH)、時(shí)間戳(TSBlock)和區(qū)塊簽名(SignSK=ICCSK(Block))。區(qū)塊體用于存儲(chǔ)交易列表。生成區(qū)塊之后,ICC將區(qū)塊添加到區(qū)塊鏈中,并清空交易池,完整的區(qū)塊鏈將存儲(chǔ)在ICC的本地磁盤(pán)中。

      3 安全分析

      3.1 風(fēng)險(xiǎn)概率模型

      現(xiàn)有區(qū)塊鏈技術(shù)都存在51%攻擊的問(wèn)題[14]。本文方案中,攻擊者可對(duì)網(wǎng)絡(luò)中廣播的信息進(jìn)行惡意操作,如攔截并篡改驗(yàn)證節(jié)點(diǎn)反饋給控制臺(tái)的驗(yàn)證結(jié)果,重放控制臺(tái)的轉(zhuǎn)發(fā)請(qǐng)求等。但是受攻擊的信息將被合法節(jié)點(diǎn)識(shí)別而不會(huì)被計(jì)入共識(shí)過(guò)程。然而,若攻擊者對(duì)廣播的區(qū)塊鏈交易進(jìn)行惡意攻擊而導(dǎo)致其無(wú)法通過(guò)合法節(jié)點(diǎn)的驗(yàn)證,此時(shí)被攻擊的區(qū)塊鏈交易的驗(yàn)證結(jié)果將計(jì)入?yún)^(qū)塊鏈交易的投票過(guò)程,從而干擾區(qū)塊鏈共識(shí)。為此,若網(wǎng)絡(luò)中的區(qū)塊鏈節(jié)點(diǎn)接收到的交易無(wú)法通過(guò)其合法性校驗(yàn),則認(rèn)為該交易為虛假交易。此時(shí),該區(qū)塊鏈節(jié)點(diǎn)為受損節(jié)點(diǎn)。若驗(yàn)證節(jié)點(diǎn)集{VN1,VN2,…,VNi,…,VNP-1,ICC}中超過(guò)一半的節(jié)點(diǎn)為受損節(jié)點(diǎn),區(qū)塊鏈方案將失效。

      若區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量為N,受損節(jié)點(diǎn)數(shù)量為CA,驗(yàn)證節(jié)點(diǎn)數(shù)量為P,受損驗(yàn)證節(jié)點(diǎn)的數(shù)量為PA,則:

      PA≤CA≤N,PA≤P≤N。

      (19)

      區(qū)塊鏈?zhǔn)У南孪蘅梢员硎緸椋?/p>

      P*=P/2。

      (20)

      式中P/2為上取整函數(shù)。若滿足PA≥P*,此時(shí)區(qū)塊鏈方案將失效。利用離散概率分布中的超幾何分布原理,區(qū)塊鏈方案失敗率fd可由以下4種情況計(jì)算得出:

      (1)CA

      由式(19)可知PA≤CA,因此有PA

      (2)P*≤CA

      在該情況下,區(qū)塊鏈?zhǔn)璧氖軗p驗(yàn)證節(jié)點(diǎn)數(shù)最小為P*。又因?yàn)镃A

      (21)

      (3)P≤CA≤N-P*

      此時(shí),受損驗(yàn)證節(jié)點(diǎn)數(shù)最大為P。區(qū)塊鏈方案失敗率

      (22)

      (4)N-P*

      由于N-P*P/2

      對(duì)于大規(guī)模的ICS網(wǎng)絡(luò),其滿足P≤CA

      表2 區(qū)塊鏈方案成功率sd %

      3.2 抗攻擊能力分析

      (1)虛假數(shù)據(jù)注入攻擊(FDI)和中間人攻擊(MITM)

      攻擊者通過(guò)向ICS中注入虛假數(shù)據(jù)或截獲并篡改測(cè)量數(shù)據(jù)達(dá)到破壞工業(yè)過(guò)程的目的。例如,在擬議方案中,攻擊者可能會(huì)通過(guò)構(gòu)建虛假區(qū)塊鏈交易以將惡意數(shù)據(jù)注入到網(wǎng)絡(luò)中,或攔截并篡改網(wǎng)絡(luò)中廣播的Req,F(xiàn)eedback,Stop,Verify,Report和Update信息以干擾方案共識(shí)過(guò)程。

      本文中,網(wǎng)絡(luò)中廣播的交易和信息都包含唯一的哈希值,該哈希值是通過(guò)將交易或信息與數(shù)字證書(shū)拼接在一起獲得的。例如,區(qū)塊鏈交易的哈希值為HASH(OIDi,indexk,TStx,data,Certi),Req的哈希值為HASH(TSm,OIDi,indexk,Oid=1,Cert0)。由于節(jié)點(diǎn)的數(shù)字證書(shū)(Certi)保存在本地白名單中,攻擊者無(wú)法獲取,也就無(wú)法計(jì)算有效的哈希值。攻擊者對(duì)交易或信息的任何更改都將造成哈希值變化,從而被合法節(jié)點(diǎn)識(shí)別。因此,擬議方案可有效防止虛假數(shù)據(jù)注入與中間人攻擊。

      (2)拒絕服務(wù)攻擊(DoS)

      攻擊者可能會(huì)在網(wǎng)絡(luò)中廣播大量無(wú)效區(qū)塊鏈交易,消耗節(jié)點(diǎn)的計(jì)算與通信資源,致使其無(wú)法處理合法的區(qū)塊鏈?zhǔn)聞?wù),從而使網(wǎng)絡(luò)癱瘓。在擬議方案中,區(qū)塊鏈網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)均在本地維護(hù)一份白名單,其中包含區(qū)塊鏈節(jié)點(diǎn)生成的最新交易的時(shí)間戳(Timei)。當(dāng)區(qū)塊鏈節(jié)點(diǎn)執(zhí)行交易驗(yàn)證過(guò)程時(shí),首先檢查當(dāng)前交易的時(shí)間戳(TStx)與白名單(Whitelist)中對(duì)應(yīng)的最新交易時(shí)間戳Timei的差是否大于預(yù)設(shè)的閾值Te,若滿足TStx-Whitelist(Timei)>Te,節(jié)點(diǎn)繼續(xù)執(zhí)行驗(yàn)證過(guò)程;否則,節(jié)點(diǎn)將直接忽略該交易。該規(guī)則規(guī)定了節(jié)點(diǎn)廣播交易的頻率,可防止攻擊者不斷生成虛假的區(qū)塊鏈交易而淹沒(méi)網(wǎng)絡(luò)。因此擬議方案可有效緩解DoS攻擊。

      (3)重放攻擊

      攻擊者可能記錄并重放網(wǎng)絡(luò)中廣播的交易或信息。例如,攻擊者可能會(huì)假扮CUi在網(wǎng)絡(luò)中重放先前記錄的區(qū)塊鏈交易,假扮ICC重放Req,Stop,Report和Update,假扮VNi重放Feedback,F(xiàn)ail,Success1和Success2,從而使節(jié)點(diǎn)接收不準(zhǔn)確的結(jié)果,降低ICS性能。然而,時(shí)間戳的存在將有效地防止重放攻擊。在擬議方案中,網(wǎng)絡(luò)中廣播的每條交易和信息中都包含時(shí)間戳,只有當(dāng)交易或信息中的時(shí)間戳與當(dāng)前系統(tǒng)時(shí)間戳的差小于系統(tǒng)最大延遲ΔT時(shí),驗(yàn)證節(jié)點(diǎn)才認(rèn)定該交易或信息是正常狀態(tài);否則,即認(rèn)為發(fā)生了重放攻擊。

      4 仿真實(shí)驗(yàn)分析

      為了檢測(cè)本文方案的性能,在一個(gè)半實(shí)物仿真平臺(tái)上進(jìn)行了區(qū)塊鏈部署。仿真平臺(tái)由1臺(tái)筆記本計(jì)算機(jī)和6個(gè)樹(shù)莓派Raspberry 3B組成,模擬了一個(gè)鍋爐控制系統(tǒng)。其中,6個(gè)樹(shù)莓派分別作為6個(gè)控制器,筆記本模擬控制臺(tái),其主要配置Intel(R) Core(TM) i5-5200U處理器,4 GB RAM?,F(xiàn)場(chǎng)總線協(xié)議為Modbus-TCP協(xié)議。仿真中1次數(shù)據(jù)采集的數(shù)據(jù)量為32字節(jié)。

      4.1 擬議方案性能

      半實(shí)物仿真平臺(tái)測(cè)量不同區(qū)塊鏈操作的時(shí)間如表3所示。從表中可以看出,區(qū)塊鏈操作的時(shí)間成本與區(qū)塊鏈操作中需要傳輸?shù)臄?shù)據(jù)量有關(guān)。傳輸數(shù)據(jù)量越大,其操作所需的時(shí)間成本越高。例如,Req操作包含的數(shù)據(jù)量較少,其時(shí)間成本約為68.57 ms;Success2操作需要傳輸?shù)臄?shù)據(jù)量較大,其時(shí)間成本高達(dá)141.35 ms;而Verify操作無(wú)需通信,其時(shí)間成本最低,為1.43 ms。

      表3 不同區(qū)塊鏈操作的時(shí)間成本

      設(shè)置仿真中驗(yàn)證節(jié)點(diǎn)的個(gè)數(shù)為3,表4列舉了本文4種共識(shí)過(guò)程情況的時(shí)間開(kāi)銷(xiāo)。在情況1中,共識(shí)過(guò)程需要執(zhí)行1次TXi,1次Verify和1次Update,時(shí)間成本約為167.42 ms;在情況2中,共識(shí)過(guò)程比情況1增加1次Req,1次Feedback和1次Stop,時(shí)間開(kāi)銷(xiāo)為417.59 ms;對(duì)于情況3,設(shè)置驗(yàn)證節(jié)點(diǎn)集中有1個(gè)受損驗(yàn)證節(jié)點(diǎn),與情況1相比,共識(shí)過(guò)程需增加1次Fail,1次Report和1次Success1,時(shí)間開(kāi)銷(xiāo)為377.05 ms;對(duì)于情況4,仿真過(guò)程中除設(shè)置控制臺(tái)為受損節(jié)點(diǎn)之外,還設(shè)置1個(gè)受損驗(yàn)證節(jié)點(diǎn),此時(shí)共識(shí)過(guò)程比情況1增加了1次Fail,1次Report和1次Success2,時(shí)間開(kāi)銷(xiāo)為446.87 ms。從仿真結(jié)果可以看出,共識(shí)過(guò)程中包含的區(qū)塊鏈操作越復(fù)雜,傳輸?shù)臄?shù)據(jù)量越多,時(shí)間成本就越高。

      表4 不同共識(shí)過(guò)程情況下的時(shí)間開(kāi)銷(xiāo)

      4.2 性能比較

      為評(píng)估擬議方案性能,與文獻(xiàn)[9]、文獻(xiàn)[11]和文獻(xiàn)[12]所提方案的安全性能、時(shí)間與通信成本進(jìn)行比較。

      (1)安全性能

      表5展示了4種方案的安全性能比較。文獻(xiàn)[9]和文獻(xiàn)[11]僅可防御拒絕服務(wù)攻擊,對(duì)于其余的攻擊類(lèi)型不提供防御機(jī)制。而文獻(xiàn)[12]除可抵御拒絕服務(wù)攻擊外還可抵御虛假數(shù)據(jù)注入攻擊與中間人攻擊。本文方案除了可抵御工控系統(tǒng)中常見(jiàn)的4種攻擊類(lèi)型之外,還有可能抵御51%攻擊。因此,本文方案安全性能優(yōu)于現(xiàn)有方案。

      表5 安全性能比較

      (2)時(shí)間和通信成本

      利用仿真平臺(tái)模擬采集1次數(shù)據(jù)后執(zhí)行相應(yīng)區(qū)塊鏈操作并達(dá)成共識(shí)的時(shí)間成本,并與文獻(xiàn)[9]、文獻(xiàn)[11]和文獻(xiàn)[12]方案的時(shí)間成本比較,結(jié)果如圖3所示。文獻(xiàn)[11]采用輕量級(jí)的數(shù)據(jù)驗(yàn)證框架,其系統(tǒng)延遲較低,為569.41 ms。而文獻(xiàn)[9]利用非對(duì)稱(chēng)密鑰對(duì)數(shù)據(jù)進(jìn)行加密并存儲(chǔ)到區(qū)塊鏈,計(jì)算復(fù)雜,時(shí)間成本最高,為837.53 ms。本文方案采用動(dòng)態(tài)隨機(jī)驗(yàn)證機(jī)制和新型共識(shí)模型,減少了共識(shí)過(guò)程中的驗(yàn)證開(kāi)銷(xiāo)與通信次數(shù),共識(shí)過(guò)程最高時(shí)間成本為446.87 ms,最低時(shí)間成本為167.42 ms。時(shí)間開(kāi)銷(xiāo)低于同類(lèi)方法,且區(qū)塊鏈網(wǎng)絡(luò)規(guī)模越大,本文方案的時(shí)間成本優(yōu)勢(shì)越明顯。

      如圖4所示為不同區(qū)塊鏈方案中共識(shí)過(guò)程的通信成本。本文定義共識(shí)過(guò)程中節(jié)點(diǎn)廣播的數(shù)據(jù)包的數(shù)量為其通信成本。仿真過(guò)程中節(jié)點(diǎn)總數(shù)量N=7,擬議方案驗(yàn)證節(jié)點(diǎn)的數(shù)量P=3。本文采用一種新型共識(shí)模型,根據(jù)共識(shí)節(jié)點(diǎn)的狀態(tài)選擇不同的共識(shí)策略。由于共識(shí)情況1中沒(méi)有數(shù)據(jù)包傳輸,ICC僅需等待預(yù)定時(shí)間之后執(zhí)行交易更新過(guò)程,其通信成本為0;共識(shí)情況2中需要執(zhí)行1次Req,1次Feedback和1次Stop,因此其通信成本為3;共識(shí)情況3與4中僅有廣播的數(shù)據(jù)包數(shù)據(jù)結(jié)構(gòu)不同,其余均相同,因此,其通信成本為P,即共識(shí)情況3與共識(shí)情況4的通信成本驗(yàn)證節(jié)點(diǎn)數(shù)均為3。然而,文獻(xiàn)[9]、文獻(xiàn)[11]和文獻(xiàn)[12]中均采用了傳統(tǒng)的區(qū)塊鏈共識(shí)機(jī)制,即網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都參與共識(shí),因此其通信成本節(jié)點(diǎn)總數(shù)為7。顯然,本文方案相較于同類(lèi)型方法,具有較低的通信成本。而且,新型共識(shí)模型保證了擬議方案的通信成本不會(huì)隨著區(qū)塊鏈網(wǎng)絡(luò)規(guī)模的增加而顯著增加,進(jìn)一步保證了擬議方案的可用性。

      5 結(jié)束語(yǔ)

      本文針對(duì)計(jì)算資源與通信帶寬有限的工業(yè)控制系統(tǒng)提出一種基于區(qū)塊鏈的數(shù)據(jù)完整性保護(hù)方案。為降低設(shè)備計(jì)算與通信開(kāi)銷(xiāo),采用一種私有區(qū)塊鏈網(wǎng)絡(luò),并根據(jù)節(jié)點(diǎn)的計(jì)算資源與通信能力分配不同的區(qū)塊鏈職能。采用一種動(dòng)態(tài)隨機(jī)驗(yàn)證機(jī)制和一種新型共識(shí)機(jī)制,很大程度上降低了擬議區(qū)塊鏈方案達(dá)成共識(shí)的計(jì)算開(kāi)銷(xiāo)與通信延遲。安全分析與仿真結(jié)果表明,本文方案在滿足工業(yè)控制系統(tǒng)安全性的前提下,與同類(lèi)型方法相比具有較低的時(shí)間成本與較少的通信量。未來(lái)將探討工業(yè)控制系統(tǒng)中現(xiàn)場(chǎng)級(jí)與網(wǎng)絡(luò)級(jí)交互的區(qū)塊鏈方案,以構(gòu)建完整的工業(yè)控制系統(tǒng)區(qū)塊鏈架構(gòu),為工業(yè)數(shù)據(jù)完整性提供更加完善的保護(hù)機(jī)制。

      猜你喜歡
      哈希攻擊者共識(shí)
      基于微分博弈的追逃問(wèn)題最優(yōu)策略設(shè)計(jì)
      共識(shí) 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
      論思想共識(shí)凝聚的文化向度
      商量出共識(shí)
      正面迎接批判
      愛(ài)你(2018年16期)2018-06-21 03:28:44
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      基于維度分解的哈希多維快速流分類(lèi)算法
      別讓“PX共識(shí)”在爆炸中瓦解
      基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
      弥勒县| 清涧县| 衡阳县| 太和县| 刚察县| 察哈| 石门县| 滨州市| 英德市| 丹阳市| 庆城县| 山阴县| 上饶市| 江山市| 定陶县| 叙永县| 梁河县| 准格尔旗| 正蓝旗| 大英县| 洞口县| 盐津县| 延津县| 邢台市| 正宁县| 兰考县| 家居| 岐山县| 满城县| 旬阳县| 汪清县| 曲周县| 多伦县| 兖州市| 韶山市| 商洛市| 蕉岭县| 定结县| 砀山县| 勃利县| 荔浦县|