賴業(yè)寧,封科,于同偉,王旺,唐冠軍
(1. 國網(wǎng)電力科學(xué)研究院有限公司,江蘇 南京 210003;2. 國網(wǎng)遼寧省電力有限公司電力科學(xué)研究院,遼寧 沈陽 110000)
安全穩(wěn)定控制系統(tǒng)(下簡稱安控系統(tǒng))是保障電網(wǎng)安全的第二道防線的重要部分,當(dāng)電網(wǎng)出現(xiàn)緊急狀態(tài)時,安控系統(tǒng)將通過執(zhí)行切機、切負荷、直流功率調(diào)整等緊急控制措施使電網(wǎng)恢復(fù)正常運行狀態(tài)[1]。隨著電網(wǎng)安全穩(wěn)定控制業(yè)務(wù)重要性的提升,安全穩(wěn)定控制系統(tǒng)終端(下簡稱安控終端)數(shù)目和系統(tǒng)復(fù)雜度不斷增加,終端間的信息交互頻率將顯著提升,給安控系統(tǒng)帶來了極大的網(wǎng)絡(luò)安全風(fēng)險。一旦安控命令或量測數(shù)據(jù)被篡改而導(dǎo)致安控系統(tǒng)決策錯誤,不但會使安控系統(tǒng)喪失電網(wǎng)第二道防線的能力,還會給電網(wǎng)安全穩(wěn)定運行造成更大危害。身份認證是防止終端接收和處理惡意通信報文的安全措施之一,也是其他安全措施的基礎(chǔ)。然而,由于安控終端計算資源和存儲資源十分有限,且控制實時性要求極高,傳統(tǒng)的身份認證方案難以直接應(yīng)用于安控系統(tǒng)[2],致使安控系統(tǒng)目前的通信缺乏認證機制[3]。
一些學(xué)者曾提出了基于公鑰基礎(chǔ)設(shè)施(public key infrastructure, PKI)的認證方案。如文獻 [4]提出了基于公鑰技術(shù)的電力數(shù)字證書服務(wù)系統(tǒng)以解決電力應(yīng)用系統(tǒng)網(wǎng)絡(luò)身份認證和安全傳輸?shù)葐栴};文獻[5]使用基于橢圓曲線加密理論的方案,給出了電網(wǎng)數(shù)據(jù)交互中加密通信和通信認證的解決方案;文獻[6-7]提出了面向用電信息采集系統(tǒng)的輕量級認證方案。然而,基于PKI的認證存在密鑰管理較復(fù)雜、認證時延較長等問題,難以用于電網(wǎng)安全穩(wěn)定控制認證。
針對電力資源受限應(yīng)用系統(tǒng),一些學(xué)者提出了其他認證方案。文獻[8]提出了基于區(qū)塊鏈的智能電表認證方案,將電網(wǎng)內(nèi)的智能電表信息進行處理并存儲在區(qū)塊鏈中,實現(xiàn)智能電表身份有效認證的同時保障了數(shù)據(jù)可信性;文獻[9]提出了基于S/Key一次性密碼方案的認證方案,實現(xiàn)了電力終端與智能電網(wǎng)服務(wù)器之間的相互身份驗證;文獻[10]利用物理不可克隆原理,提出了基于身份的智能電網(wǎng)環(huán)境中的電源線監(jiān)控傳感器認證協(xié)議;文獻[11]實現(xiàn)了一種匿名的安全密鑰分發(fā)方案,使電網(wǎng)終端能利用該安全密鑰實現(xiàn)快速身份認證,且抗攻擊能力優(yōu)秀。這些方案在安全性或效率上具有優(yōu)勢,但仍難以適應(yīng)存儲資源較低、實時性要求高的安控系統(tǒng)。
針對上述問題,本團隊在考慮安控終端計算和存儲資源有限、實時性要求高等限制后,將哈希鏈與區(qū)塊鏈技術(shù)結(jié)合,提出了一種符合電網(wǎng)安控終端特性的分布式身份認證方案[12]?;趨^(qū)塊鏈技術(shù)部署的身份認證哈希鏈能夠保障終端間業(yè)務(wù)通信安全,基本滿足安控系統(tǒng)通信認證的實時性需求和信任管理需求。然而,傳統(tǒng)區(qū)塊鏈系統(tǒng)中的每一個節(jié)點都需要完整地備份整條鏈的數(shù)據(jù),且每經(jīng)過一次認證,鏈高度都會增加,每個節(jié)點均需存儲新區(qū)塊[13]。安控終端生命周期較長,隨著時間推移,不斷膨脹的歷史認證數(shù)據(jù)將會占用有限的終端存儲資源,造成不必要的浪費。在文獻[12]的方案中,這一問題沒有得到很好的解決。
分布式哈希表(distributed Hash table, DHT)技術(shù)是一種基于哈希算法實現(xiàn)分布式存儲的技術(shù),能夠在較大數(shù)據(jù)總量的情況下完成快速且穩(wěn)定的查找[14]。DHT技術(shù)當(dāng)前在一些場景中已經(jīng)得到了廣泛應(yīng)用[15-16],且有學(xué)者提出了將其用于分布式存儲和信任管理的一些方案[17],但尚未針對安控系統(tǒng)的具體實施方法。本文利用基于DHT的可拓展分布式存儲方案來解決文獻[12]方案中區(qū)塊存儲伸縮性受限的問題,提出了基于區(qū)塊鏈和DHT技術(shù)的電網(wǎng)安控終端分布式認證方案,使經(jīng)過共識的認證數(shù)據(jù)分布存儲在特定終端中而非完整地備份在每一個終端上,實現(xiàn)準(zhǔn)確高效地按需查詢,進而在不影響認證實時性的同時保障認證安全性并提高存儲效率。
文獻[12]使用了基于哈希鏈的身份認證方案,是一種利用哈希算法的單向性設(shè)計的一次性密碼方案。哈希算法的單向性指給定輸入可快速計算輸出,但是從輸出計算回輸入極其困難。
(1)基于哈希鏈的身份認證關(guān)鍵過程。
(2)基于哈希鏈的身份認證技術(shù)的不足。
文獻[12]方案能夠保障安控終端間業(yè)務(wù)通信安全,基本滿足安控系統(tǒng)通信認證的實時性和信任管理需求。然而,該方案存在以下不足。
①存儲拓展性差。認證成功后,終端會更新自身的最新哈希值。終端將自身標(biāo)識和上傳到認證區(qū)塊鏈,新身份信息在區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點進行復(fù)制。在安控終端生命周期中,區(qū)塊鏈數(shù)據(jù)量將會不斷膨脹。盡管單次認證使用的數(shù)據(jù)規(guī)模較小,但從整個安控系統(tǒng)范圍和較長的周期來看,造成的存儲浪費仍難以接受。
②共識算法不適用。在電網(wǎng)安控終端認證系統(tǒng)中使用諸如工作量證明(proof of work,PoW)和權(quán)益證明(proof of stake,PoS)等共識算法是較困難的。一方面,PoW的共識效率低、計算開銷大,在安控系統(tǒng)中難以被接受;另一方面,二者均需經(jīng)過復(fù)雜的“發(fā)幣”流程,這在能源交易以外的場景下是無意義的。因此,認證系統(tǒng)需要使用開銷更低、更易于部署的共識算法。
1.2.1 DHT技術(shù)概述
DHT技術(shù)是一種數(shù)據(jù)分布式存儲技術(shù),其核心是網(wǎng)絡(luò)中的每個存儲節(jié)點生成固定結(jié)構(gòu)的身份標(biāo)識(identification, ID),系統(tǒng)中的每條數(shù)據(jù)都被映射到與節(jié)點ID的取值空間一致的空間中。進一步地,每個節(jié)點負責(zé)存儲那些被映射到其ID對應(yīng)的區(qū)域中的數(shù)據(jù)。DHT的一種典型實現(xiàn)是一致性哈希環(huán)[18],如圖1所示例子,當(dāng)哈希算法的輸出位數(shù)為q時,數(shù)據(jù)和節(jié)點ID被映射到固定大小為2q?1的哈希環(huán)中,3個節(jié)點的哈希環(huán)共分成3部分:(A,B)、 (B,C)、 (C,A),其中節(jié)點 A 存儲被映射到(C,A)部分的數(shù)據(jù),節(jié)點B、C分別存儲(A,B)、 (B,C)部分的數(shù)據(jù)。在本文中,(C,A)部分被稱為節(jié)點A的“存儲域”,相應(yīng)的,節(jié)點B、C的存儲域為(A,B) 、(B,C)部分。
圖1 哈希環(huán)示例Fig. 1 An example of the Hash ring
在進行數(shù)據(jù)查詢時,查詢者發(fā)起請求后,當(dāng)前節(jié)點將數(shù)據(jù)重新映射到該取值空間,即可判別該數(shù)據(jù)是否存在于本地。若數(shù)據(jù)未在本地存儲,節(jié)點能判斷出索引該數(shù)據(jù)存儲節(jié)點的下一跳地址,并轉(zhuǎn)發(fā)該查詢請求直至找到存儲數(shù)據(jù)的節(jié)點。
除了上述哈希環(huán)結(jié)構(gòu),DHT還有其他的實現(xiàn)方案。本文將使用跳圖(skip graph)結(jié)構(gòu)[19]實現(xiàn)的DHT完成區(qū)塊鏈數(shù)據(jù)的分布式存儲。
1.2.2 基于 skip graph 結(jié)構(gòu)的分布式存儲
skip graph 結(jié)構(gòu)是在跳表(skip list)基礎(chǔ)上延續(xù)和發(fā)展出的適用于分布式環(huán)境的數(shù)據(jù)結(jié)構(gòu)[19]。
skip list是一種使用概率均衡技術(shù)的特殊鏈表結(jié)構(gòu),其查找效率與二叉樹相近,均為[20]。skip list以層級式結(jié)構(gòu)排列,每層中的節(jié)點升序排列前后鏈接。底層(0層)包含全部節(jié)點,在第i層的每個節(jié)點以概率存在于第層中。在使用skip list查找時,較高層的鏈提供了快速查找的通道,即在查找特定數(shù)據(jù)鍵時首先從最高層向右查找,當(dāng)找到最后一個小于待查找鍵值的節(jié)點時下降一層,重復(fù)直至找到對應(yīng)節(jié)點(到達0層仍未找到時則查找失敗)。
skip graph結(jié)構(gòu)可以看作是共享底層的一系列skip list構(gòu)成的組合結(jié)構(gòu),節(jié)點所屬的 skip list由節(jié)點的成員向量控制,成員向量的前i位相同的節(jié)點在第 i層處于同一skip list中,如圖2所示。
圖2 Skip graph結(jié)構(gòu)Fig. 2 Structure of skip graphs
文獻[19]證明了skip graph的數(shù)據(jù)查詢過程時間復(fù)雜度與skip list基本一致,均為,且skip graph結(jié)構(gòu)中節(jié)點的查詢、插入和節(jié)點刪除過程均與 skip list類似[21]。
將skip graph結(jié)構(gòu)DHT應(yīng)用在基于區(qū)塊鏈的電網(wǎng)安全穩(wěn)定控制終端分布式認證方案中,完成區(qū)塊鏈上數(shù)據(jù)的分布式存儲,思路為:將經(jīng)過共識的區(qū)塊數(shù)據(jù)經(jīng)過哈希運算映射到與身份標(biāo)識一致的取值空間后,第0層距離該數(shù)據(jù)最近的兩個節(jié)點將存儲該數(shù)據(jù),同時在前層中(作為可變的系統(tǒng)冗余參數(shù)),各skip list在每一層距離該位置最近的兩個鄰居節(jié)點將冗余地備份該數(shù)據(jù)。這使得特定的區(qū)塊數(shù)據(jù)能夠僅在特定節(jié)點上進行復(fù)制而非存儲在所有節(jié)點上,提高了區(qū)塊鏈系統(tǒng)的存儲效率。
當(dāng)前安控系統(tǒng)多采用“主站-子站-執(zhí)行站”的3層架構(gòu)完成業(yè)務(wù)通信。其中,執(zhí)行站向子站、子站向主站依次上送本站狀態(tài)和可切負荷等運行信息,主站向子站、子站向執(zhí)行站依次下發(fā)切負荷輪次命令等控制信息。同時,子站之間以及主站之間將互通投停信息和跳閘信息等[22]。以上用于實現(xiàn)電網(wǎng)安全穩(wěn)定控制的主站、子站和執(zhí)行站設(shè)備均被稱為安控終端,此外,安控系統(tǒng)還包括負責(zé)監(jiān)視并記錄各終端運行信息、重要事件動作的穩(wěn)定控制集中管理系統(tǒng)(stability control management system, SCMS)。SCMS通過調(diào)度數(shù)據(jù)網(wǎng)與各安全穩(wěn)定控制站內(nèi)設(shè)備進行通信。
終端間通過調(diào)度數(shù)據(jù)網(wǎng)和SCMS的中轉(zhuǎn)能夠?qū)崿F(xiàn)點對點通信,具有部署區(qū)塊鏈系統(tǒng)的網(wǎng)絡(luò)基礎(chǔ)。在終端注冊階段,安控系統(tǒng)運維人員在終端完成哈希鏈生成、發(fā)布操作的同時分配終端標(biāo)識和成員向量;終端入網(wǎng)時,執(zhí)行查詢找到其在由安控終端構(gòu)成的skip graph中所處的位置,隨后調(diào)用插入算法。
認證階段的主要流程和2.1節(jié)所述過程類似,不同之處在于收到對方終端認證材料的終端將執(zhí)行skip graph查詢算法,找到存儲該部分區(qū)塊數(shù)據(jù)的終端并獲取相應(yīng)數(shù)據(jù),完成后續(xù)認證流程。
基于skip graph結(jié)構(gòu)的DHT優(yōu)勢是能夠?qū)崿F(xiàn)分布式存儲和相對高效的數(shù)據(jù)查詢,相對于其他分布式存儲方案,新節(jié)點的加入對存儲布局的影響較小[23]。這一特性與基于區(qū)塊鏈的安控終端身份認證方案的存儲優(yōu)化需求吻合,這使得基于skip graph結(jié)構(gòu)的安控終端分布式存儲方案能在時間復(fù)雜度較低、不影響終端間認證實時性的前提下,實現(xiàn)安全性和存儲效率平衡的區(qū)塊鏈數(shù)據(jù)存儲。
本文方案在將區(qū)塊鏈與哈希鏈技術(shù)結(jié)合實現(xiàn)安控終端認證的同時,使用基于DHT的分布式存儲提高該區(qū)塊鏈系統(tǒng)的存儲拓展性。方案的總體思路為:在基于實用拜占庭容錯算法(practical Byzantine fault tolerance,PBFT)的聯(lián)盟區(qū)塊鏈系統(tǒng)中,根據(jù)skip graph結(jié)構(gòu)對終端進行標(biāo)識和分組,使在區(qū)塊鏈系統(tǒng)中經(jīng)過共識的身份認證材料數(shù)據(jù)僅在特定終端上進行復(fù)制而非存儲在所有終端上;進行認證時,收到認證請求的終端將根據(jù)skip graph查詢算法執(zhí)行查詢,獲取區(qū)塊鏈上的身份哈希信息并根據(jù)哈希鏈認證方法完成身份認證。
方案整體架構(gòu)如圖3所示,在以安控終端業(yè)務(wù)架構(gòu)為基礎(chǔ)的點對點通信網(wǎng)絡(luò)上,基于skip graph結(jié)構(gòu)DHT劃分各終端的存儲域,形成分布式存儲結(jié)構(gòu)。根據(jù)冗余參數(shù)的不同,該存儲結(jié)構(gòu)也相應(yīng)變化。區(qū)塊鏈賬本中各區(qū)塊將根據(jù)其哈希值被映射到終端網(wǎng)絡(luò)中的對應(yīng)終端上進行存儲。下文將從終端注冊、終端入網(wǎng)和終端認證3部分闡述方案細節(jié)。
圖3 系統(tǒng)架構(gòu)Fig. 3 System architecture
終端的注冊階段一般在其入網(wǎng)前離線完成,過程分為終端標(biāo)識生成和身份哈希鏈生成2個步驟。由于此時終端尚未加入認證系統(tǒng),注冊階段信息生成操作的合規(guī)性由安控系統(tǒng)運維人員保障。
(1)終端標(biāo)識生成。
文獻[12]提出了終端的唯一身份ID結(jié)構(gòu),包含網(wǎng)絡(luò)通信地址(IP地址和端口號)、隨機驗證碼和附加字段,終端間依據(jù)此ID進行交互認證和識別。電網(wǎng)內(nèi)終端隨機驗證碼保障了該ID 在認證系統(tǒng)中的唯一性,同時網(wǎng)絡(luò)通信地址字段使得終端能夠在獲取其他終端ID后與其進行認證和通信。
為便于實現(xiàn)基于skip graph結(jié)構(gòu)的分布式存儲,本文對文獻[12]中的終端ID進行如下擴充:加入包含成員向量在內(nèi)的存儲標(biāo)識字段。擴充后的終端ID如表1所示。
表1 終端IDTable 1 Terminal ID
在電網(wǎng)安全穩(wěn)定控制這一特定應(yīng)用背景下,終端ID的成員向量字段可由運維人員進行設(shè)置而非完全依賴隨機生成,這更有利于數(shù)據(jù)查詢和監(jiān)管。
(2)身份哈希鏈生成。
當(dāng)終端注冊完成后,身份標(biāo)識和身份哈希鏈被公布,該終端將以此為基礎(chǔ)進行入網(wǎng)申請。終端入網(wǎng)過程實質(zhì)是在skip graph網(wǎng)絡(luò)中插入新節(jié)點的過程。入網(wǎng)主要流程如圖4所示。
圖4 終端入網(wǎng)流程Fig. 4 Terminal network access flow
終端入網(wǎng)過程需要進行一次skip graph查詢操作,尋找終端在skip graph底層的位置。此次查詢操作從一個初始引入節(jié)點開始進行,該節(jié)點由安控運維人員指定。
終端找到其在skip graph底層的位置后,與其在底層中的鄰居終端執(zhí)行首次連接操作,即互相記錄對方網(wǎng)絡(luò)地址并交換區(qū)塊鏈數(shù)據(jù)。隨后終端將從底層開始,向上逐層尋找鄰居節(jié)點并建立連接,直至頂層,并在層數(shù)不大于冗余參數(shù)時與其鄰居節(jié)點交換區(qū)塊鏈數(shù)據(jù)。
為提高后續(xù)認證過程的查詢速度,在終端交換區(qū)塊鏈數(shù)據(jù)的同時,它們會維護一個區(qū)塊鏈視圖[24]。該區(qū)塊鏈視圖是一個不斷更新的元組表,其中以身份標(biāo)識為索引,存儲了各終端的最新數(shù)據(jù)所在區(qū)塊的區(qū)塊頭哈希、當(dāng)前哈希鏈高度和最新身份哈希。
當(dāng)終端A向終端B發(fā)起認證請求以獲取終端B的信任時,認證流程如圖5所示。
圖5 終端認證流程Fig. 5 Terminal authentication flow
(1)認證請求發(fā)送。
(2)認證數(shù)據(jù)查詢。
終端B需要在基于skip graph結(jié)構(gòu)存儲的認證區(qū)塊鏈上查詢終端A的最新身份哈希。詳細認證數(shù)據(jù)查詢算法如下。
上列操作中,終端均指終端的存儲標(biāo)識,而非終端ID。
(3)認證結(jié)果判斷。
(4)認證結(jié)果回復(fù)。
(5)身份數(shù)據(jù)更新。
在收到認證成功的消息后,終端A在認證區(qū)塊鏈上更新認證信息和自身的身份。這一過程實質(zhì)是向當(dāng)前主節(jié)點發(fā)起新數(shù)據(jù)上鏈申請。當(dāng)此次認證過程中區(qū)塊鏈最新數(shù)據(jù)為時,終端A取新的種子,再次執(zhí)行哈希鏈生成操作,得到新哈希鏈,以為憑據(jù)將新哈希鏈的最后一項發(fā)布,并將中的各項作為后續(xù)認證的憑據(jù)。主節(jié)點將在網(wǎng)絡(luò)中收集一定時間段內(nèi)的認證數(shù)據(jù)并將其打包成區(qū)塊,基于PBFT共識算法進行全網(wǎng)共識。終端A在認證區(qū)塊鏈上的最新身份哈希將在共識成功后被更新。
本文方案使用了區(qū)塊鏈技術(shù)和基于skip graph結(jié)構(gòu)DHT的分布式存儲,具有以下安全特性。
(1)認證信息可追溯性。認證完成后,認證發(fā)起方會將本次認證時間、認證雙方標(biāo)識等信息上傳到認證區(qū)塊鏈,確保了認證信息的可追溯性。該特性提高了電網(wǎng)安控終端認證系統(tǒng)的可監(jiān)管性,降低了安控系統(tǒng)審計取證的復(fù)雜度。
(2)終端身份不可偽造性。方案使用身份哈希鏈進行基于一次性密碼的認證。各安控終端將根據(jù)隨機種子生成的身份哈希鏈與包含設(shè)備信息在內(nèi)的終端ID相互綁定,有效地防止了惡意設(shè)備使用偽造身份與合法安控終端通信。此外,根據(jù)哈希算法的單向性,即使攻擊者通過竊聽等手段獲取了某次認證中所使用的哈希秘密信息仍無法推斷出及哈希次數(shù)更低的哈希鏈數(shù)據(jù),保障了通信認證的安全性。
(3)兼具容錯性與存儲拓展性。區(qū)塊鏈系統(tǒng)通過冗余備份確保信息不會因單點故障而丟失或被惡意篡改,但冗余性導(dǎo)致系統(tǒng)的存儲拓展性較低。本方案使用了DHT技術(shù)進行數(shù)據(jù)分布式存儲,降低了數(shù)據(jù)的冗余度,但對于映射到每個位置上的數(shù)據(jù),系統(tǒng)仍在skip graph結(jié)構(gòu)的前層進行冗余備份,因此,單點故障不會破壞整個系統(tǒng)的數(shù)據(jù)完整性。綜上所述,本方案能夠在不影響區(qū)塊鏈系統(tǒng)容錯性的前提下提高其存儲拓展性。
(4)抗攻擊性。盡管安控系統(tǒng)在電網(wǎng)內(nèi)的保護級別較高,但仍可能出現(xiàn)部分終端被劫持或受到DoS攻擊等情況。本方案使用PBFT共識機制,具有33%拜占庭容錯性能[25],即只有當(dāng)攻擊者劫持了認證系統(tǒng)內(nèi)1/3終端時,共識結(jié)果才會被惡意更改,這在電網(wǎng)安全穩(wěn)定控制環(huán)境下是難以實現(xiàn)的。另一種攻擊場景是攻擊者通過被劫持的設(shè)備注入大量虛假數(shù)據(jù),影響認證數(shù)據(jù)的正常存儲,但分布式存儲方法能很好地緩解該問題,使得認證系統(tǒng)不會在短時間內(nèi)宕機,為反制攻擊提供了條件。
3.2.1 時間復(fù)雜度
設(shè)認證系統(tǒng)內(nèi)安控終端數(shù)為n。終端認證過程首先調(diào)用skip graph數(shù)據(jù)搜索算法。在該算法中,從任意節(jié)點開始的搜索將沿著該終端所在的skip list搜索路徑進行,直至找到目標(biāo)或到達0層,即在skip graph中進行搜索的時間復(fù)雜度與skip list一致。根據(jù)文獻[20]的分析,在底層節(jié)點數(shù)為n的skip list中,平均每層被搜索的節(jié)點數(shù)為個,總時間復(fù)雜度和消息復(fù)雜度均為O(ln n/((r?1)ln r)),因此,在認證系統(tǒng)中固定時,搜索算法的時間復(fù)雜度為。
終端入網(wǎng)階段執(zhí)行skip graph的節(jié)點插入算法。在該算法中,終端首先執(zhí)行一次查詢,之后在每一層對平均個終端進行訪問,在各層的查詢時間復(fù)雜度均為。系統(tǒng)共有層,因此前后時間復(fù)雜度均為。入網(wǎng)過程中終端尚未開始實際業(yè)務(wù)通信,時延要求不高,因此本方案入網(wǎng)時延能夠滿足安控系統(tǒng)實際需求。
3.2.2 空間復(fù)雜度
由于安控系統(tǒng)對設(shè)備算力和存儲資源的特殊需求,基于本文方案實現(xiàn)的認證原型系統(tǒng)使用go語言自行編寫,實現(xiàn)了輕量化和功能的定制化。部署該系統(tǒng)的實驗裝置使用了與電網(wǎng)安控終端通信模塊性能相近的嵌入式系統(tǒng)終端(運行Ubuntu 18.04的嵌入式Linux系統(tǒng))。
利用實現(xiàn)的原型系統(tǒng),進行了多次實驗并統(tǒng)計了系統(tǒng)內(nèi)不同終端數(shù)時系統(tǒng)的平均單次認證時延,如圖6所示。
圖6 認證時延與終端數(shù)量的關(guān)系Fig. 6 Relationship between authentication latency and number of terminals
由圖6可以看出,隨著終端數(shù)量的增加,單次認證時延呈現(xiàn)增長趨勢。增加的時延主要來自skip graph結(jié)構(gòu)中的數(shù)據(jù)搜索過程,實驗結(jié)果符合
3.2 節(jié)中的分析與預(yù)期。
根據(jù)調(diào)研,目前安控系統(tǒng)中需要進行相互認證的終端數(shù)不超過100臺。在實驗中,終端數(shù)為30時,系統(tǒng)內(nèi)的單次認證時延低于370 ms,同時根據(jù)方案的時間復(fù)雜度可知,在終端數(shù)達到最大的100臺時,時延不會超過570 ms,符合安控系統(tǒng)內(nèi)終端認證需求。
在固定終端數(shù)為10的情況下,實驗分別測試了本文方案在不同值下,即不同系統(tǒng)冗余參數(shù)下的終端平均存儲開銷隨認證總次數(shù)的變化,并與文獻[12]方案進行了對比,實驗結(jié)果如圖7所示。
圖7 平均存儲開銷對比Fig. 7 Comparison on average storage overhead
現(xiàn)有認證方法難以兼顧安全性、實時性和存儲效率,因此,本文提出了基于DHT和區(qū)塊鏈的安控終端分布式認證方案,從終端注冊、終端入網(wǎng)和終端認證3部分給出了認證系統(tǒng)設(shè)計和關(guān)鍵算法。本文方案使用基于skip graph結(jié)構(gòu)的DHT實現(xiàn)分布式存儲,在不影響認證安全性的同時,為安控終端分布式認證提供了高效的數(shù)據(jù)查詢能力和較強的存儲拓展性。理論分析說明,本文方案在具有安全性的同時,有較低的時間和空間復(fù)雜度;實驗結(jié)果顯示,基于本文方案實現(xiàn)的認證系統(tǒng)的平均認證時延和平均存儲開銷均能滿足安控系統(tǒng)的要求。