王 棟,楊 珂,王 瑜,玄佳興,陳 亞,5,許洪華
(1. 國網(wǎng)電子商務(wù)有限公司,北京市 100053;2. 國網(wǎng)區(qū)塊鏈科技(北京)有限公司,北京市 100053;3. 國家電網(wǎng)有限公司區(qū)塊鏈技術(shù)實驗室,北京市 100053;4. 中國科學院信息工程研究所,北京市 100093;5. 中國科學院大學網(wǎng)絡(luò)空間安全學院,北京市 100093;6. 國網(wǎng)江蘇省電力有限公司南京供電分公司,江蘇省 南京市 210019)
電力業(yè)務(wù)融合5G、邊緣計算、物聯(lián)網(wǎng)、人工智能等前沿技術(shù),推動了充電樁、智能家居、電費金融等眾多新電力業(yè)務(wù)的快速發(fā)展。各新業(yè)務(wù)系統(tǒng)終端與用戶量持續(xù)增加,出現(xiàn)海量接入、異構(gòu)認證、頻繁交互[1]等新的需求。數(shù)字身份認證體系作為防護電力行業(yè)網(wǎng)絡(luò)安全的第一道關(guān)口,既要滿足新業(yè)務(wù)跨域統(tǒng)一身份認證需求,又要應(yīng)對前沿技術(shù)帶來的問題和挑戰(zhàn)[2]。
面對中國電力行業(yè)新業(yè)務(wù)規(guī)模越來越大、分布越來越廣的情景,現(xiàn)有電力業(yè)務(wù)身份認證系統(tǒng)大多停留在中心化身份或聯(lián)盟式身份階段,運用分布式認證技術(shù)建立統(tǒng)一、適應(yīng)新業(yè)務(wù)的安全身份認證體系的探索剛剛開始[3-4],仍存在諸多問題。一是傳統(tǒng)基于中心式的數(shù)字證書認證體系中[5-7]用戶身份難以可信高效互通,分布式業(yè)務(wù)系統(tǒng)上架設(shè)單一身份認證服務(wù)器使得數(shù)據(jù)完全被中心機構(gòu)管理控制,無法實現(xiàn)用戶身份主權(quán)自我控制。二是隨著電力物聯(lián)網(wǎng)建設(shè)過程中微服務(wù)、微應(yīng)用的發(fā)展,身份管理不只是考慮人的認證,設(shè)備和服務(wù)同樣需要身份認證[8-10]。因此,需要將人、設(shè)備、服務(wù)等建立統(tǒng)一身份標識庫進行管理。三是實際應(yīng)用中使用頻次較高的電力應(yīng)用通常安全風險低,重便攜性,而安全風險高的通常使用頻次低,重安全性[11-12],各應(yīng)用間的認證交互較差。
針對電力新型業(yè)務(wù)提出的更高需求,基于區(qū)塊鏈的新型分布式數(shù)字身份引起了電力行業(yè)高度關(guān)注。目前,分布式數(shù)字身份已取得了一些成果,如MicrosoftDID[13]、HyperLedger Indy[14]、uPort[15]、Civic[16]、SelfKey[17]等分布式數(shù)字認證驗證原型。此外,萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C)、全球去中心化身份聯(lián)盟(Decentralized Identity Foundation,DIF)以及結(jié)構(gòu)化信息標準促進組 織(Organization for the Advancement of Structured Information Standards,OASIS)[18-19]等國際組織也正加緊制定相關(guān)標準規(guī)范。這些方案實現(xiàn)了用戶完全自主控制身份信息,但缺乏對用戶身份的嚴格審核和監(jiān)管,存在惡意用戶注冊為合法身份的重大隱患,并且危害服務(wù)系統(tǒng)后,因用戶完全自主控制身份生成的特點造成難以追蹤。新型電力系統(tǒng)的新業(yè)態(tài)、新服務(wù)模式具有大規(guī)模分布式能源主體接入、設(shè)備種類繁多、交互頻繁等特點,需要嚴格管控接入電力業(yè)務(wù)實體,最大限度地保證電力業(yè)務(wù)系統(tǒng)的安全,上述基于區(qū)塊鏈的身份認證技術(shù)難以滿足電力行業(yè)可監(jiān)管自主控制和安全可移植的身份認證要求。此外,區(qū)塊鏈在支撐能源電力行業(yè)新業(yè)態(tài)、新服務(wù)模式上成為重要的創(chuàng)新方向[20-22]。針對能源區(qū)塊鏈業(yè)務(wù),該體系可以采用雙鏈模式或與原有能源區(qū)塊鏈集成等方式[23-25]部署,在不影響原有業(yè)務(wù)的情況下提供更為安全、靈活可靠的身份認證服務(wù)。
本文構(gòu)建了基于區(qū)塊鏈的電力行業(yè)聯(lián)盟信任分布式數(shù)字身份認證體系,建立了電力行業(yè)數(shù)字身份,根據(jù)業(yè)務(wù)模式詳細闡述了系統(tǒng)架構(gòu)與運行機制,同時設(shè)計了涵蓋聯(lián)盟數(shù)字身份注冊、驗證、更新、撤銷等環(huán)節(jié)的全生命周期彈性管控機制。最后,設(shè)計和實現(xiàn)了該認證系統(tǒng),并對聯(lián)盟分布式身份認證的3 個典型應(yīng)用場景提出實施思路。
電力行業(yè)業(yè)務(wù)系統(tǒng)身份認證體系由中心化身份、聯(lián)盟式身份、以用戶為中心數(shù)字身份逐漸向聯(lián)盟去中心化身份體系演進。以下從網(wǎng)絡(luò)架構(gòu)、用戶身份控制、隱私保護角度分析區(qū)塊鏈聯(lián)盟分布式身份認證在電力系統(tǒng)的適用性。
1)網(wǎng)絡(luò)架構(gòu)
目前,電力行業(yè)中不少業(yè)務(wù)系統(tǒng)采用微服務(wù)架構(gòu)[26-27],將單體結(jié)構(gòu)系統(tǒng)轉(zhuǎn)換為分布式系統(tǒng),大多使用中心化統(tǒng)一身份認證體系[3,5]。然而,中心化身份認證服務(wù)器易遭受惡意攻擊[28],比如分布式拒絕服務(wù)(distributed denial of service,DDoS)攻擊、單點故障等。區(qū)塊鏈技術(shù)的分布式架構(gòu)[29-30]契合身份認證需求,多個組織構(gòu)建可信聯(lián)盟網(wǎng)絡(luò)[31],去中心化節(jié)點在多個服務(wù)器上運行,消除了對集中化服務(wù)器的依賴。該技術(shù)可為電力行業(yè)實體建立身份標識庫,實現(xiàn)身份跨域統(tǒng)一安全管理。
2)用戶身份控制
用戶對身份信息的控制要求愈加細化[32],但中心化數(shù)字身份的第三方機構(gòu)和聯(lián)盟數(shù)字身份的超級中心使用戶無法實現(xiàn)身份控制。區(qū)塊鏈將信息上鏈存儲過程記錄進分布式賬本,根據(jù)智能合約自動執(zhí)行策略,實現(xiàn)用戶身份的注冊管理[33],身份控制權(quán)由第三方機構(gòu)或組織轉(zhuǎn)移到用戶手中,并保證記錄的可追溯、防篡改,安全性較高。根據(jù)電力業(yè)務(wù)場景的需求,本文設(shè)計了用戶身份監(jiān)管機制,可促進跨部門、跨地域的身份認證和數(shù)據(jù)協(xié)同。
3)隱私保護
異構(gòu)分布式網(wǎng)絡(luò)中任意系統(tǒng)的暴露都會泄露其他系統(tǒng)用戶隱私,區(qū)塊鏈分布式身份認證利用隱私保護策略改變用戶數(shù)字身份數(shù)據(jù)的所有權(quán),采用零知識證明和同態(tài)加密[34]技術(shù)有選擇地共享用戶身份信息,以實現(xiàn)隱私保護。
綜上所述,聯(lián)盟分布式身份認證技術(shù)依托區(qū)塊鏈實現(xiàn)電力行業(yè)實體的數(shù)字身份全生命周期管理、安全交互以及彈性管控,保障身份信息的可信存儲、可追溯和防篡改[35],并確保電力業(yè)務(wù)系統(tǒng)的安全。此外,身份認證的去中心化特點可以避免服務(wù)器因受到攻擊而造成全網(wǎng)癱瘓。
電力行業(yè)數(shù)字身份的標準化是電力行業(yè)實現(xiàn)統(tǒng)一身份認證的基礎(chǔ)。本文采用聯(lián)盟分布式數(shù)字身份作為電力行業(yè)數(shù)字身份,其由聯(lián)盟分布式數(shù)字身份標識符(以下簡稱聯(lián)盟ID)和聯(lián)盟數(shù)字身份憑證(以下簡稱憑證)組成。前者為聯(lián)盟內(nèi)實體的唯一標識,后者本質(zhì)上是與實體相關(guān)聯(lián)的身份屬性聲明集合,以證明實體身份真實性。數(shù)字身份相關(guān)信息由聯(lián)盟分布式身份賬本存儲。
聯(lián)盟ID 用來代表電力系統(tǒng)中實體的一個數(shù)字身份,由標識符以及與之關(guān)聯(lián)的公私鑰對[18]組成,其中,公私鑰用于控制身份和簽署身份證明。聯(lián)盟ID 具有聯(lián)盟內(nèi)公開唯一、分布式與自主可控等特點。電力服務(wù)系統(tǒng)或設(shè)備、業(yè)務(wù)或監(jiān)管部門、安全管理人員、上下游單位、外部第三方(如銀行金融機構(gòu))等各類實體可以自主完成聯(lián)盟ID 的注冊、解析、更新或撤銷操作。
單個電力系統(tǒng)中的實體可擁有多個數(shù)字身份,結(jié)合電力行業(yè)標識規(guī)范可以分配多個聯(lián)盟ID,在不同場景下?lián)碛信c之對應(yīng)的身份憑證,如圖1 所示。聯(lián)盟ID 及其公鑰存儲在賬本上,同一實體的不同身份標識符之間沒有關(guān)聯(lián)信息,攻擊者難以分析聯(lián)盟ID 和實體之間的聯(lián)系,有效避免信息歸集造成隱私泄露。聯(lián)盟ID 雖然對全局公開,但是不包括和實體真實身份相關(guān)的信息,需依賴實體的憑證[19]驗證身份。
圖1 用戶的多個數(shù)字身份示意圖Fig.1 Schematic diagram of multiple digital identities of a user
憑證是電力系統(tǒng)中實體身份信息真實性的證明,也是電力行業(yè)聯(lián)盟信任分布式數(shù)字身份認證體系架構(gòu)對接入電力系統(tǒng)實體進行監(jiān)管的手段。該憑證核心是一組實體身份屬性的集合,并附上了頒發(fā)者的簽名及憑證元數(shù)據(jù)。憑證用于描述實體的某些身份屬性,聯(lián)盟ID 持有者通過憑證向其他實體證明自己的屬性可信。憑證由用戶保存,數(shù)據(jù)結(jié)構(gòu)由賬本存儲。
1)憑證數(shù)據(jù)結(jié)構(gòu)
憑證的數(shù)據(jù)結(jié)構(gòu)包括3 個部分:元數(shù)據(jù)、屬性定義集合和頒發(fā)者相關(guān)簽名信息。元數(shù)據(jù)包括憑證名稱、頒發(fā)者、頒發(fā)日期等;屬性定義集合包含用戶具體身份屬性信息,內(nèi)容可包括人員姓名、性別、編號、所屬部門、職稱等;簽名信息包括頒發(fā)者使用的簽名算法、憑證創(chuàng)建時間、創(chuàng)建者、數(shù)字簽名信息等。
2)業(yè)務(wù)交互流程
憑證的業(yè)務(wù)交互流程如圖2 所示,包括憑證頒發(fā)者、持有者和驗證者3 類角色,三者在業(yè)務(wù)交互前根據(jù)場景需求注冊聯(lián)盟ID 并將其上鏈存儲。業(yè)務(wù)交互雙方須完成對雙方聯(lián)盟ID 的解析和驗證,建立可信連接進行業(yè)務(wù)交互,實現(xiàn)一種以身份持有者為主導(dǎo),憑證頒發(fā)者和驗證者不需要直接通信的憑證流轉(zhuǎn)與驗證方式。
圖2 基于憑證的業(yè)務(wù)交互示意圖Fig.2 Schematic diagram of certificate-based business interaction
頒發(fā)者是指審核電力系統(tǒng)中實體身份信息真實性并能開具憑證的實體,如電力業(yè)務(wù)管理或監(jiān)管部門;持有者即實體用戶,如電力系統(tǒng)或設(shè)備、安全管理人員、上下游單位、外部第三方機構(gòu)等。電力系統(tǒng)中實體用戶向頒發(fā)者請求頒發(fā)身份憑證,接受頒發(fā)者對其身份信息的審核,向驗證者出示憑證,身份憑證由用戶保存,便于“一次頒發(fā)、多次使用”。驗證者接受憑證并進行匿名或最小化披露驗證,若通過則為該用戶提供后續(xù)服務(wù)。該用戶在聯(lián)盟ID 的基礎(chǔ)上完成憑證的認證從而進行跨域業(yè)務(wù)應(yīng)用。
聯(lián)盟鏈作為底層技術(shù)[29]符合電力行業(yè)可信交互、無縫對接需求,具有性能較優(yōu)、監(jiān)管友好等特性。各電力業(yè)務(wù)組織機構(gòu)都有記賬權(quán),維護同一份賬本實現(xiàn)身份互認。智能合約作為區(qū)塊鏈的跨域服務(wù)協(xié)議[36],完成不同應(yīng)用間高效認證交互。認證體系編寫智能合約實現(xiàn)聯(lián)盟ID 和憑證的業(yè)務(wù)邏輯處理,包括聯(lián)盟ID 的注冊、查詢、更新和撤銷操作,以及身份憑證數(shù)據(jù)結(jié)構(gòu)的定義、查詢、更新和撤銷操作。
聯(lián)盟分布式身份賬本用于維護存儲聯(lián)盟ID 的數(shù)據(jù)庫及各憑證的數(shù)據(jù)結(jié)構(gòu),在聯(lián)盟內(nèi)公開可見。憑證中包含用戶身份屬性信息,由用戶自身保存,若存到賬本中聯(lián)盟內(nèi)全局可見,易產(chǎn)生隱私泄露問題。
基于區(qū)塊鏈的電力行業(yè)聯(lián)盟信任分布式認證體系架構(gòu)如圖3 所示。架構(gòu)分為基礎(chǔ)層、服務(wù)層及應(yīng)用層?;A(chǔ)層主要由不同的電力業(yè)務(wù)組織機構(gòu)共同搭建底層聯(lián)盟分布式身份網(wǎng)絡(luò),各區(qū)塊鏈節(jié)點通過共識機制維護同一份賬本。服務(wù)層的中間代理程序作為身份層協(xié)議接收上層用戶接口請求,進行業(yè)務(wù)邏輯處理,根據(jù)隱私保護策略為用戶提供存儲方案。憑證協(xié)議提供數(shù)字身份憑證的頒發(fā)、更新、驗證以及撤銷過程的處理邏輯。應(yīng)用層面向電力業(yè)務(wù)系統(tǒng)構(gòu)建應(yīng)用程序,支持用戶進行聯(lián)盟分布式數(shù)字身份的全生命周期管理,提供必要的應(yīng)用程序管理服務(wù),其中,身份錢包存儲用戶的聯(lián)盟ID 和身份憑證。
圖3 基于區(qū)塊鏈的電力行業(yè)聯(lián)盟信任分布式認證的體系架構(gòu)Fig.3 Architecture of blockchain-based distributed authentication with alliance trust in power industry
基于區(qū)塊鏈的電力行業(yè)聯(lián)盟信任分布式認證體系運行機制如圖4 所示。運行機制包括4 個部分。
1)聯(lián)盟ID 生成:電力業(yè)務(wù)用戶注冊聯(lián)盟ID 及其公私鑰對,進行Hash 計算與數(shù)字簽名后發(fā)送到賬本。
2)聯(lián)盟身份憑證生成:憑證頒發(fā)者將憑證的數(shù)據(jù)結(jié)構(gòu)進行簽名后發(fā)送到賬本。頒發(fā)者在自身數(shù)據(jù)庫中創(chuàng)建身份注冊表,檢索身份注冊表后關(guān)聯(lián)憑證與申請者線下角色。頒發(fā)者基于該憑證的數(shù)據(jù)結(jié)構(gòu)、身份注冊表與申請者基本信息為用戶頒發(fā)憑證。
3)聯(lián)盟數(shù)字身份區(qū)塊生成:接收用戶聯(lián)盟ID 以及憑證數(shù)據(jù)結(jié)構(gòu),驗證電子簽名,通過后生成新區(qū)塊并廣播至全網(wǎng),達成共識后寫入賬本。
4)聯(lián)盟數(shù)字身份驗證:查詢賬本上的用戶聯(lián)盟ID 和憑證數(shù)據(jù)結(jié)構(gòu),如果用戶聯(lián)盟ID 和憑證都通過驗證,則用戶身份驗證通過,否則驗證不通過。
目前,電力信息系統(tǒng)認證體系多采用由獨立認證服務(wù)器來處理系統(tǒng)認證請求的方案,存在依賴于中心服務(wù)器以及隱私泄露、難以應(yīng)對DDoS 攻擊等安全風險?;趨^(qū)塊鏈的聯(lián)盟信任分布式身份認證系統(tǒng)在電力行業(yè)場景下的優(yōu)勢如表1 所示。
表1 電力系統(tǒng)聯(lián)盟信任分布式認證體系和傳統(tǒng)身份認證體系的對比Table 1 Comparison of blockchain-based distributed authentication system with alliance trust and traditional identity authentication system for power system
電力行業(yè)聯(lián)盟分布式身份認證系統(tǒng)示意圖如圖5 所示,主要由聯(lián)盟分布式數(shù)字身份賬本、聯(lián)盟分布式身份協(xié)議節(jié)點和分布式身份客戶端3 個部分組成。底層構(gòu)建聯(lián)盟鏈賬本,存儲聯(lián)盟ID 和憑證數(shù)據(jù)結(jié)構(gòu)信息。此外,聯(lián)盟鏈網(wǎng)絡(luò)支持各組織節(jié)點動態(tài)進入與退出。聯(lián)盟分布式身份協(xié)議節(jié)點連接賬本和客戶端,與下層用戶相關(guān)聯(lián),接收用戶客戶端請求。各節(jié)點運行同一組智能合約,通過聯(lián)盟ID 協(xié)議和憑證協(xié)議提供業(yè)務(wù)邏輯處理??蛻舳藶橛脩籼峁┞?lián)盟ID 及憑證管理、消息通知等服務(wù)。用戶在客戶端自主生成聯(lián)盟ID,經(jīng)協(xié)議節(jié)點在對應(yīng)的賬本上鏈存儲。用戶通過客戶端可向相關(guān)權(quán)威機構(gòu)申請憑證,實現(xiàn)憑證與聯(lián)盟ID 的綁定,以適應(yīng)不同應(yīng)用場景的跨域身份認證需求。
圖5 分布式身份認證系統(tǒng)示意圖Fig.5 Schematic diagram of distributed identity authentication system
全生命周期管理包括聯(lián)盟ID 全生命周期管理和憑證管理2 個部分。
4.2.1 聯(lián)盟ID 全生命周期管理
聯(lián)盟ID 全生命周期管理如附錄A 圖A1(a)所示,包括聯(lián)盟ID 的注冊、驗證、更新與撤銷流程。
首先,根據(jù)聯(lián)盟ID 的數(shù)據(jù)結(jié)構(gòu)定義,各類電力業(yè)務(wù)系統(tǒng)用戶根據(jù)自身類型進行注冊。聯(lián)盟ID 的頭部信息固定,用戶選擇對應(yīng)的類型綁定相應(yīng)公私鑰對。用戶將信息發(fā)送給賬本上鏈存儲,并存儲在本地身份錢包中。其次,用戶利用聯(lián)盟ID 及私鑰,附以時間戳與數(shù)字簽名后發(fā)送驗證請求,接收方查詢發(fā)送方聯(lián)盟ID 及公鑰,利用該公鑰信息進行驗證。
當用戶需要更新時,將變更請求發(fā)送至服務(wù)節(jié)點,經(jīng)查詢賬本審核通過后在賬本上更新聯(lián)盟ID,標識舊聯(lián)盟ID 不可用,同步更新身份錢包。最后,用戶可以提交撤銷請求,審核后將聯(lián)盟ID 標識為已撤銷。錢包中已撤銷聯(lián)盟ID相應(yīng)變?yōu)橛脩舨豢捎脿顟B(tài)。
4.2.2 憑證全生命周期管理
1)憑證頒發(fā)
憑證頒發(fā)流程如附錄A 圖A1(b)所示。頒發(fā)者向電力業(yè)務(wù)系統(tǒng)合法用戶頒發(fā)憑證,該用戶能夠在系統(tǒng)中取得信任。第1 階段:用戶與頒發(fā)者相互驗證。以頒發(fā)者驗證用戶的聯(lián)盟ID 為例,頒發(fā)者收到用戶消息后,查詢賬本中用戶的聯(lián)盟ID 及其對應(yīng)公鑰,驗證消息的簽名,通過后頒發(fā)者與用戶建立起初步可信連接。第2 階段:用戶向頒發(fā)者請求獲取憑證,并向賬本發(fā)出請求,頒發(fā)者驗證請求消息的簽名。通過后頒發(fā)者識別參與實體角色,設(shè)置特定權(quán)限,為用戶頒發(fā)數(shù)字身份憑證,用戶接受憑證并存儲在本地身份錢包中。
2)憑證驗證
憑證驗證流程如附錄A 圖A1(c)所示。首先,擁有者與驗證者進行聯(lián)盟ID 與公鑰的驗證,具體過程類似憑證頒發(fā)的第1 階段。驗證通過則擁有者從錢包中取出憑證,向賬本請求憑證的數(shù)據(jù)結(jié)構(gòu)。擁有者創(chuàng)建證明消息,將消息發(fā)送給驗證者。驗證者接收證明消息,向賬本請求得到憑證數(shù)據(jù)結(jié)構(gòu),對擁有者的憑證進行驗證,通過則提供后續(xù)服務(wù)。
為實現(xiàn)隱私保護,憑證擁有者利用隱私保護策略有選擇地暴露部分身份屬性信息。隱私保護策略結(jié)合同態(tài)加密與零知識證明技術(shù)保證數(shù)據(jù)的安全性和隱私性。憑證驗證協(xié)議采用Feige-Fiat-Shamir 零知識身份認證協(xié)議,參與方為憑證擁有者和驗證者,聯(lián)盟鏈為可信第三方。憑證擁有者計算自己某些身份屬性的零知識證明值用以驗證,驗證者通過驗證后將自身聯(lián)盟ID 寫入Merkle 樹中,并廣播到整個聯(lián)盟鏈所有節(jié)點。同時,零知識證明中的zk-SNARK 密碼技術(shù)包含同態(tài)加密思想,使用zk-SNARK 加密身份數(shù)據(jù),僅有通過認證的機構(gòu)或組織,即擁有解密密鑰者,才能夠查看數(shù)據(jù),實現(xiàn)數(shù)據(jù)安全共享。
3)憑證更新與撤銷
憑證更新與撤銷流程如附錄A 圖A1(d)所示。首先,憑證擁有者與頒發(fā)者進行聯(lián)盟ID 與公鑰的驗證,過程類似憑證頒發(fā)的第1 階段。頒發(fā)者更新賬本上的憑證數(shù)據(jù)結(jié)構(gòu),向擁有者發(fā)出通知。擁有者向賬本請求數(shù)據(jù)結(jié)構(gòu),請求更新憑證。頒發(fā)者接收請求對用戶進行驗證,通過則頒發(fā)者更新憑證發(fā)送給用戶,用戶接受更新憑證并存儲在身份錢包中。撤銷操作中,當憑證到達有效期即視為撤銷。
為驗證本文提出的基于區(qū)塊鏈的電力行業(yè)聯(lián)盟信任分布式數(shù)字身份認證體系的有效性,本節(jié)將身份認證系統(tǒng)部署在聯(lián)盟鏈上,針對分布式電力交易場景開展仿真驗證。
聯(lián)盟鏈中服務(wù)器的操作系統(tǒng)均為Linux 6.8,內(nèi)存容量為32 GB,CPU 核心個數(shù)為16,智能合約采用Solidity 語言編寫,在HyperEVM 上執(zhí)行。該仿真場景包括1 個電力交易中心節(jié)點、6 個電力用戶節(jié)點(購電方或售電方)和2 個電網(wǎng)企業(yè)節(jié)點,1 組認證合約,并選取權(quán)威電力機構(gòu)的節(jié)點作為5 個魯棒拜占庭容錯(robust Byzantine fault tolerance,RBFT)共識節(jié)點,包括1 個電力交易中心節(jié)點、2 個電網(wǎng)企業(yè)節(jié)點與2 個信用強的電力用戶節(jié)點。其中,RBFT 共識算法是本文對實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)的改進算法,具有通信開銷小、吞吐量高、可擴展性強、容錯性強等優(yōu)點[37-40],更適用于大規(guī)模分布式電力節(jié)點網(wǎng)絡(luò)。分布式電力交易流程如下:首先,電力用戶在電力交易中心節(jié)點通過身份認證后在區(qū)塊鏈上發(fā)布售電信息或購電信息,按照符合交易條件就近匹配機制完成匹配;然后,與電網(wǎng)企業(yè)節(jié)點經(jīng)過身份認證后簽訂三方供用電電子合同;最后,再次通過身份認證完成付款。
設(shè)計一組售電和購電數(shù)據(jù)如表2 所示,在電力交易平臺上通過主流性能測試工具Loadrunner 11(該客戶端運行在性能測試機上,測試機的操作系統(tǒng)為Windows7,內(nèi)存容量為16 GB,CPU 型號為Intel Core i5),運行完成1 000 次身份認證測試過程。仿真測試在2 種情形下分別執(zhí)行一次。情形1:全部采用基于證書頒發(fā)機構(gòu)(certification authority,CA)頒發(fā)證書的身份認證;情形2:全部采用基于區(qū)塊鏈的分布式身份認證。分別計算2 種情形下1 000 次驗證的平均值,身份認證驗證耗時結(jié)果如表3 所示。聯(lián)盟分布式身份認證平均驗證耗時為86 ms/次,比一般系統(tǒng)的CA 證書認證時間效率提高約13.1%,能夠滿足電力行業(yè)各參與主體之間的認證需求。此外,進一步測試了該分布式電力交易仿真場景中基于區(qū)塊鏈的身份認證系統(tǒng)的性能。如表4 所示,針對不同并發(fā)用戶數(shù),基于區(qū)塊鏈的身份認證平均響應(yīng)時間隨并發(fā)用戶數(shù)的增加而逐漸增加,認證吞吐量先增加后降低,其中認證平均響應(yīng)時間不超過93 ms,認證吞吐量約為500 筆/s。而應(yīng)用服務(wù)器CPU 利用率不高于9%,內(nèi)存利用率穩(wěn)定在35.6%左右,事務(wù)通過率均為100%。可見,基于區(qū)塊鏈的身份認證能夠滿足分布式電力交易下的業(yè)務(wù)需求。
表2 電力用戶購售電信息Table 2 Information on purchase and sale of electricity by electricity users
表3 身份認證驗證耗時對比Table 3 Time-consumption comparison of identity authentication verification
表4 基于區(qū)塊鏈的身份認證系統(tǒng)性能分析Table 4 Performance analysis of blockchain-based identity authentication system
從法律可行性角度分析,文獻[41]明確指出當事人提交的證據(jù)通過區(qū)塊鏈技術(shù)存證,并經(jīng)技術(shù)核驗推定該證據(jù)材料上鏈后未經(jīng)篡改,人民法院可確認該證據(jù)的真實性,為區(qū)塊鏈證據(jù)的法律效力提供了依據(jù)。
從技術(shù)可行性角度分析,區(qū)塊鏈具有不可篡改、多方共識、集體維護、防抵賴等特性,基于區(qū)塊鏈的聯(lián)盟信任分布式身份認證體系由高可信區(qū)塊鏈生成身份憑證,共同背書其身份和公鑰的綁定關(guān)系,能夠代替CA 證書,與基于CA 證書的身份認證體系具有同等級別的保密性、認證性、完整性、防篡改性和安全性,同時節(jié)約CA 機構(gòu)高額的第三方服務(wù)費,成本更低,使用也更加便捷。
從可擴展性分析,區(qū)塊鏈身份認證體系可以通過標準接口提供服務(wù),在監(jiān)管前提下支持自由擴展節(jié)點和自定義智能合約,集成開發(fā)工作量小,具有優(yōu)秀的可擴展性。
充電樁運營商多采用中心化身份認證管理方式,充電樁和用戶身份數(shù)據(jù)難以在生態(tài)圈內(nèi)全局公開易形成孤島,導(dǎo)致充電樁接入認證難,抵御單點攻擊能力弱[42]。而聯(lián)盟分布式身份認證可構(gòu)建起統(tǒng)一、安全、互信的充電樁身份認證生態(tài)圈。
充電樁業(yè)務(wù)的應(yīng)用結(jié)構(gòu)示意圖如附錄B 圖B1所示。管理部門作為身份憑證頒發(fā)者,通過憑證全生命周期管理實現(xiàn)對各類充電樁有效管理。充電樁作為憑證持有者,出示憑證提供充電服務(wù)。充電用戶作為驗證者,也是電力最終消費者。認證過程的4 個階段如下:
身份初始化:參與主體通過客戶端調(diào)用聯(lián)盟ID協(xié)議生成聯(lián)盟ID,將其存儲在身份錢包中。
身份注冊:參與主體將聯(lián)盟ID 通過共識和身份隱私保護存儲在賬本中,保證其身份安全共享互通。
憑證頒發(fā):管理部門根據(jù)客戶端接入請求及各運營商的申請資料,統(tǒng)一對接入電網(wǎng)的充電樁做聯(lián)盟ID 驗簽和可信性審核,頒發(fā)用電服務(wù)的憑證。客戶端將憑證以加密方式保存于本地身份錢包中。憑證中包含頒發(fā)日期、參考電價信息、頒發(fā)者簽名信息等,管理部門借助憑證頒發(fā)管理防止不可信充電樁接入。
數(shù)字身份驗證:電動汽車在不同運營商的充電樁充電時,充電樁客戶端出示憑證給電動汽車用戶客戶端進行驗證。通過后電動汽車充電結(jié)算,監(jiān)督企業(yè)定價合理性,反饋給管理部門。
電力調(diào)度業(yè)務(wù)中各部門子業(yè)務(wù)需要跨部門、跨工區(qū)協(xié)同完成。各部門工作人員身份認證系統(tǒng)根據(jù)自身業(yè)務(wù)需求獨立建設(shè)而無法共享,造成身份盜用和冒用、行為難以追溯。聯(lián)盟分布式身份認證采用身份標識跨鏈復(fù)用,具有可擴展、安全性高等特點。
電網(wǎng)人員安全管理結(jié)構(gòu)示意圖如附錄B 圖B2 所示。同一部門身份數(shù)據(jù)注冊保存于同一份身份賬本,與其他部門的身份數(shù)據(jù)安全隔離。如人員A 要跨部門進入工區(qū)2操作設(shè)備,其認證管理的3個階段如下:
跨鏈身份注冊:首先,人員A 通過客戶端攜帶自身聯(lián)盟ID 向協(xié)議節(jié)點1 發(fā)送請求,A 在身份賬本1 驗證后,轉(zhuǎn)發(fā)認證請求給公證人模塊;然后,該模塊采用多重簽名機制對請求校驗并簽名,公證人可由各工區(qū)及上級管理部門組成,都擁有一對公私密鑰。當該認證請求獲得2/3 以上公證人簽名后,該簽名結(jié)果轉(zhuǎn)發(fā)給節(jié)點2;最后,人員A 通過節(jié)點2 完成在賬本2 中跨鏈聯(lián)盟ID 的注冊。
數(shù)字身份憑證頒發(fā):節(jié)點2 申請頒發(fā)人員A 憑證。工區(qū)2 管理部門根據(jù)賬本2 中憑證數(shù)據(jù)結(jié)構(gòu)給A 頒發(fā)憑證,憑證認證可細粒度到具體門禁和某一設(shè)備。該憑證發(fā)送到人員A 分布式身份客戶端。
數(shù)字身份驗證:人員A 進入工區(qū)2 或操作工區(qū)2的設(shè)備時,驗證通過,獲得該設(shè)備的訪問權(quán)限,否則拒絕訪問。
不同地域多業(yè)務(wù)主體參與、身份認證不統(tǒng)一和信用機制不完善等問題給電網(wǎng)供應(yīng)鏈安全增加風險。金融機構(gòu)不能有效獲取上下游供應(yīng)商的商業(yè)信用情況[43]。
電網(wǎng)供應(yīng)鏈金融結(jié)構(gòu)示意圖如附錄B 圖B3 所示。數(shù)據(jù)上鏈實現(xiàn)數(shù)字身份聯(lián)盟內(nèi)全局公開、分布式和自主可控的互聯(lián)互通。認證響應(yīng)過程分為如下5 個階段。1)申請憑證:上下游供應(yīng)商向電網(wǎng)核心企業(yè)申請貸款許可相關(guān)憑證;2)頒發(fā)憑證:企業(yè)查詢供應(yīng)商的債權(quán)交易信息頒發(fā)憑證;3)申請貸款:供應(yīng)商向金融機構(gòu)申請貸款出示憑證;4)驗證憑證:金融機構(gòu)查詢賬本,驗證聯(lián)盟ID 和憑證;5)授權(quán)放貸:驗證通過后金融機構(gòu)為供應(yīng)商發(fā)放貸款,不通過則拒絕貸款。
應(yīng)用場景對比如表5 所示。在技術(shù)可行性方面,不改變原有電力業(yè)務(wù),僅將身份認證平滑移植到基于區(qū)塊鏈的聯(lián)盟分布式身份認證系統(tǒng),可增強系統(tǒng)安全性。在經(jīng)濟可行性方面,由于該身份認證系統(tǒng)的擴展性良好,部署一套基于區(qū)塊鏈的身份認證體系,可應(yīng)用于多個業(yè)務(wù)場景,解決了一個業(yè)務(wù)系統(tǒng)需要建設(shè)一套身份認證系統(tǒng)以及各個企業(yè)需要獨立建設(shè)和維護自身的身份認證體系的難題,可節(jié)約百萬甚至千萬級的系統(tǒng)建設(shè)和維護成本。此外,相較于CA 機構(gòu)的第三方服務(wù)費與用戶規(guī)模成正比的情況,即用戶數(shù)量越多,成本越高,而基于區(qū)塊鏈的身份認證系統(tǒng)具有規(guī)模效應(yīng),用戶數(shù)量越大,人均成本越低。
表5 應(yīng)用場景對比Table 5 Comparison of application scenarios
基于區(qū)塊鏈的聯(lián)盟分布式認證體系包括聯(lián)盟ID 協(xié)議、憑證協(xié)議以及上層應(yīng)用程序。相比傳統(tǒng)身份認證體系,能夠?qū)崿F(xiàn)用戶身份數(shù)據(jù)的安全共享與自主控制,但是仍存在向原有電力業(yè)務(wù)系統(tǒng)快速遷移實施難的問題。下一步,將研究電力行業(yè)基于區(qū)塊鏈的聯(lián)盟信任分布式認證所涉及的隱私保護方案改進與認證機制的效率優(yōu)化等方向,推動分布式認證技術(shù)在更多場景的應(yīng)用落地。
本文在研究過程中得到中國科學院信息工程研究所科研人員的支持,尤其是王雅哲副研究員、呂朋輝博士研究生和劉超碩士研究生對本研究的方案設(shè)計提出了寶貴的意見,特此感謝!
附錄見本刊網(wǎng)絡(luò)版(http://www.aeps-info.com/aeps/ch/index.aspx),掃英文摘要后二維碼可以閱讀網(wǎng)絡(luò)全文。