樊玉明, 劉 琦, 咸曉雨, 王 劍
(1. 北京交通大學電子信息工程學院, 北京 100044;2. 中車工業研究院, 北京 100160;3. 北京交通大學軟件學院, 北京 100044;4. 北京航空航天大學交通科學與工程學院, 北京 100191)
隨著我國“一帶一路”倡議以及“交通強國”“新基建”等國家戰略的制定和實施,軌道交通作為核心基礎設施得到了前所未有的巨大發展機遇,而信息化、智能化的鐵路裝備是鐵路系統提升其運營效率和運營安全的核心載體。新興技術如物聯網、5G、大數據、人工智能及邊緣計算等被逐步應用到鐵路裝備中,使“安全可靠、便捷舒適、經濟高效、綠色節能”的智能化鐵路有了實現基礎。而鐵路裝備智能化落地應用帶來大量復雜的數據交互共享的需求與場景,同時也帶來很多安全隱患,亟需提供一套可信的身份服務體系來保障智能裝備系統的通信安全[1-2]。智能鐵路裝備是一個典型的物聯系統,其中的交互兼具集中式和分布式特征,大量數據與信令運行其中,裝備及其產生的數據信令在系統中的可信數字身份標識是其重要安全基礎[3],也是要解決的一個關鍵問題,對此業界多有研究。
區塊鏈技術作為一種新興的分布式網絡數據管理技術,在解決交互可信化問題方面有其獨有的優勢和應用空間。利用區塊鏈機制進行安全交互設計、身份認證設計和授權機制設計,可以有效提升物聯網安全管理能力。W3C主導研制了一套通過去中心化的分布式身份標識(decentralized identifier,DID)來進行用戶身份自主管理的方案[4]。Faísca等[5]提出一種基于區塊鏈的身份認證方案,進行去中心化身份管理,用區塊鏈來實現用戶的標識和權屬。焦英楠等[6]從物聯網的三層體系結構和系統整體架構入手,采用區塊鏈去中心化、信任機制、數據加密和時間序列等特點解決物聯網存在的數據安全、隱私泄露及中心化等問題。Rana[7]等針對應用區塊鏈進行身份證明的安全化隱私化進行了研究。通過區塊鏈技術提取裝備或消息信令的獨特特征構建身份標識,并納入區塊鏈管理,建立數字身份體系,可以應用于全鏈條可信追溯、信息信任流轉及設備可信訪問。
北斗三號全球衛星導航系統(BDS-3)2020年建成并投入使用,是我國完全自主可控的全球時空服務基礎設施,也是國家綜合定位導航與授時(positioning,navigation,and timing,PNT)體系的重要組成部分[8],為不同物理域的各類用戶提供滿足需求的高精度時空信息服務。目前鐵路裝備正在逐步應用北斗替代GPS系統,可有效解決PNT系統自主可控問題,但是應用場景仍較單一,需要進一步釋放“+北斗”的賦能空間。BDS-3可以提供的公共服務包括水平10 m、高程10 m、計時精度20 ns的高精度時空信息[9-10],且具有如下特征:1)服務泛在,全球可用能夠普及;2)基準統一,單點單次結果唯一;3)時空自洽,序貫邏輯可驗證推理;4)秩序嚴謹,單向信息不可逆轉[11-12]。利用此信息能夠為鐵路裝備提供具有時空可信性的標簽,將其作為裝備主體或其產生及流轉的消息信令當前時刻和生命周期流轉過程的重要特征,結合區塊鏈的去中心化安全存儲、傳輸和加密功能與特性,可以生成更可靠的數字身份標識,具有自主性、規范性、時空關聯性、唯一性及可認證性的特性優勢。
本文結合北斗三號全球衛星導航系統PNT技術與基于區塊鏈方案的DID技術,提出了基于區塊鏈+北斗的可信數字身份服務,并將其應用于鐵路裝備身份標識(railway DID,RDID)。該方法采用合理的設計架構,可以有效提升裝備及其產生的數據信令的規范安全性,保證標識身份全局唯一、可追溯認證,從而提高智能裝備系統通信與數據的完整性與可靠性。
區塊鏈技術基于分布式系統,是一種綜合運用密碼學、數據庫和計算機技術的數據記錄管理技術,其核心在于在不完全可信的環境中構建分布式賬本解決現有中心化系統存在的許多問題[13]。區塊鏈中的數據具有開放性、透明性,數據源的透明度解決了信息不對稱的問題。通過密碼學的方法確保交易無法抵賴和破壞,并盡量保護用戶信息和記錄的隱私性,在分布式系統中設計共識機制與鏈式數據管理體系,通過所有節點共同存儲、管理和監督數據,參與到系統上的節點可能不屬于同一組織,彼此互不信任但地位相當,系統運行不受單一節點約束,使得整個系統具有數據信息不可偽造篡改、信息操作可追溯的特點。
以太坊是第二代區塊鏈的代表和基礎,其引入智能合約設計,可提供更靈活的合約功能,執行更為復雜的操作,從而超越了單純數據記錄的功能,實際上帶有“普適計算”的功用[14]。智能合約通過具有圖靈完備的語言編寫代碼,理論上可以解決任何可計算的問題。通過智能合約可以實現操作的去中心化可信,例如進行身份認證、協議簽訂等,降低分布式系統的信任成本。
簡化的區塊鏈基礎模型如圖1所示。

圖1 簡化區塊鏈基礎模型Fig.1 Simplified blockchain foundation model
利用區塊鏈技術進行數字身份設計,通過密碼學加密、分布式存儲等特性,可以對主體的隱私、數據安全進行全方位的保護,簡化身份管理流程。分布式信任是數字身份的基礎,其核心是基于區塊鏈去中心化、不可篡改的特性而創建的DID。然后,多方通過接入工具接入分布式信任網,以區塊鏈為依據,建立不同身份標識之間的安全交互,為可驗證聲明(基于DID體系的一類證書)的流轉建立前提,保證數字身份信息準確,防止偽造、冒用。DID技術基于區塊鏈及智能合約構建標識,能夠實現標識的自動生成和自分配。相對于傳統的基于公鑰基礎設施(public key infrastructure,PKI)的身份體系,基于區塊鏈建立的分布式數字身份系統具有保證數據真實可信、保護主體隱私安全和可移植性強等特征[15],其優勢在于:1)去中心化,基于區塊鏈,避免了身份數據被單一的中心化權威機構所控制;2)身份自主可控,基于分布式公鑰基礎設施(distributed public key infrastructure,DPKI),每個主體的身份不是由可信第三方控制,而是由其所有者控制,單元能自主管理擁有的身份;3)可信的數據交換,身份相關數據錨定在區塊鏈上,認證的過程不需要依賴于提供身份的應用方。
主體的DID不是單一中心賦予的,而是主體根據規范的算法生成的且完全自主控制。生成DID的同時,也會生成對應的公私鑰,公鑰與DID的綁定關系會被發布在分布式存儲上,私鑰由主體保管,身份相關數據會被錨定在區塊鏈上。應用方驗證主體身份信息時,要根據分布式系統中形成共識的主體的公鑰進行驗證計算,驗證用戶的真實性。
DID技術框架如圖2所示。

圖2 DID技術框架Fig.2 DID architecture
基于DID技術設計應用于鐵路裝備的可信數字身份服務RDID,應著重管理兩類主體的身份:設備數字身份和虛擬對象數字身份。其中,虛擬對象特指整個通信體系中流轉執行的消息、信令與操作歷史。對于每個主體,根據服務準則可以自己產生身份,并更新身份特征,請求身份驗證。服務主要包括身份生成與解析、身份共識與上鏈、身份特征聲明及身份驗證應用4個模塊。
當前的鐵路裝備適應智能化發展,應用了大量的感知通信技術,在智能鐵路的總體技術框架中[16],基礎設施、智慧列車和智能運維三大系統建立了復雜的網絡通信機制,構建成為鐵路裝備物聯網(以下簡稱“鐵路物聯網”),用于進行數據交互與信息共享。每個大系統有自己的子系統,子系統后擴展終端節點,大系統和子系統均不是唯一孤立,而是呈分布式共存,同一類型系統存在多個地位對等的系統節點。
從通信網絡總的對象劃分來講,主要有車車通信、車路通信和車管通信,從網絡角色劃分來講,可以分為狀態感知層、數據傳輸層、技術應用層、智能管理層,而基礎設施、智慧列車及智能運維又各自有各自的子網,進行系統內通信,系統抽象如圖3。
總結來看,鐵路物聯網是一個完整的分布式應用環境,典型應用特點如下:

圖3 子系統結構示意Fig.3 Schematic of subsystem structure
1)網絡連接拓撲復雜,終端設備海量異構,而且整個網絡具有地理分布式、架構分布式及業務分布式的特性,適合應用部署區塊鏈基礎設施。
2)規模龐大,節點眾多,場景廣泛,物理設備節點角色豐富,數字對象模態內容豐富,作為物聯網結合大數據高效應用與協同共享,需要進行全局身份管理,建立全局唯一的統一標識并進行數字化映射。
3)面臨眾多安全挑戰,如設備缺乏物理安全控制、受限于資源的安全能力不足、惡意節點攻擊、后門漏洞、不安全的組件或接口、難以監管的用戶等,而安全防護對策中最基礎的信任建立條件就是要提供魯棒的可信身份與訪問控制方法,包括不可篡改可認證的身份標識、安全高效的認證機制。
作為廣域交通設施所用的物聯網,地理位置信息是其中網絡、設備、虛擬對象的關鍵屬性,是分布式實體身份標識全局唯一的重要信息構成。對于網絡中的實體,按照位置信息來源可以分為有獨立個體位置信息源的實體、可以獲取相關位置信息的實體、沒有位置信息的實體;按照位置信息動態可以分為長期固定位置的實體、可移動位置的實體。精確時間信息也是分布式網絡的關鍵屬性和應用資源,而且對安全應用、實時應用、同步應用以及數據的共享、記錄與追溯具有重要的價值。將時空信息結合,可以有效輔助鐵路物聯網的可信身份服務應用。
根據實際網絡的拓撲特性、實體在網絡中的角色及信息數據地位對等性,結合可信數字身份應用環境需求,將鐵路裝備分布式物聯網實體抽象見圖4。

圖4 鐵路裝備分布式物聯網實體抽象Fig.4 Railway equipment distributed IoT entity abstraction
如圖4所示,網絡呈樹狀擴展,其中核心設備指在網絡中處于關鍵信息交換位置的設備,運算與業務處理能力較強;子設備指核心設備的下屬設備,負責單一業務,具有簡單運算處理能力;終端特指最末端的設備,不具有運算處理能力,是信息的來源;主網指由核心設備組成的網絡,系統間信息交互需要通過主網進行;子網指核心設備與其轄下的子設備共同組建的子系統內部網絡,子系統內信息主要在子網內交互。核心設備既可以作為身份信息的生產者也可以作為身份信息的消費者,子設備主要作為身份的生產者,也可以作為消費者,終端通過子設備鏈接身份信息。需要注意的是,在不同的網絡和業務層面,一個設備既可以是核心設備也可以是子設備。
根據2.1節所述的網絡拓撲抽象,RDID的服務架構如圖5設計所示。

圖5 RDID服務架構Fig.5 Service architecture of RDID
其中,服務共分為3層:
L1區塊鏈層是RDID方案的基礎設施,包括區塊鏈和去中心化的分布式存儲。其可以部署在現有的主網核心設備中,也可以作為獨立業務與服務系統部署。分布式存儲中保存的是整個系統完整的數字身份信息,即DID文檔(DID Document)。在區塊鏈上則錨定著這些數字身份信息的對應關系。
L2是去中心化的二層網絡,是由物理網絡與設備構成,主要由網絡中的核心設備和運行于其上的RDID節點(R-S)組織而成。由于RDID服務只是這些設備的一部分業務,且不是其主體目標業務,所以R-S設計為輕量化服務單元,節點間依賴底層區塊鏈共識機制來保證其一致性。節點主要業務是處理其負責的子網主體RDID操作請求,并將操作數據同步至L1的分布式存儲,并將同步信息、引用信息在LI創建交易上鏈,這一操作可以通過區塊鏈的智能合約接口完成。通過加入RDID節點分開主網與子網業務,提升系統業務的整體處理性能。同時在L2上還提供統一的DID解析業務(DID Resolver),與W3C定義的DID Resolver兼容,能夠根據RDID查詢其對應的DID Document。
L3是可信交換層,是RDID系統中各個主體互相建立安全數字身份認證與數字身份信息的數據交換層。Holder是RDID的主體,其中RDID Agent是Holder使用的DID客戶端,能夠處理主體的RDID相關的業務,包括但不限于創建DID、提交可驗證聲明請求等。Identity Hub用于保存和管理用戶的數據,嚴格在本地使用并使用安全加密機制。基于BDS-3的位置應用在L3會被RDID Agent調用,經過處理注入RDID中。Issuer是發證方,在L3中負責為主體簽發可驗證聲明,為主體DID所包含的具體身份屬性與信息背書;Verifier應用方是使用DID的第三方主體,如應用、數據中心等。
RDID是主體的數字身份表達,遵從W3C的DIDs V1.0標準。主體(Holder)分類中的設備指鐵路物聯網中存在的實體主體,虛擬對象是指鐵路物聯網中流轉的數據主體, RDID由上文所述運行于設備本體、上一級設備或虛擬對象生產主體中的R-S服務調用DID Agent和BDS-PNT Service生成并賦予,其生成方法如下所述:
1)獲取Holder的特征信息K,通過BDS-PNT Service得到BDS時空信息tp。
2)DID Agent生成私鑰與對應的RDID,并將其注入Holder。
私鑰通過改進的哈希函數H計算生成,函數基礎算法為SM3,基于BDS時空信息進行優化。哈希函數的輸入為特征信息K,將BDS時空信息tp進行如式(1)的處理,得到16個8位二進制串,按照圖6的流程作為SM3消息擴展過程的添加因子,計算H(K,tp)得到第一私鑰串,計算H(H(K,tp),tp)得到第二私鑰串,進一步通過Secp256k1算法派生計算得到兩個私鑰對應的公鑰key1與key2,應對不同的應用場景。
bin_str=
[MD5(tp)[i:i+8]foriinrange(0, 128, 8)]
(1)
RDID格式定義為did:rdid:
ripemd160(MainID):SubID
(2)
MainID定義為主體的出生ID,生成式為
base58(sha256 (
(3)
在base DID Document中需要包含key1,key2;SubID定義為主體的生命周期ID,包含其生命周期狀態信息st和流轉的BDS時空信息tp-update的摘要。

圖6 SM3消息擴展因子添加流程Fig.6 SM3 message extension factor addition process
3)生成DID Document并上鏈。
結合初始和流轉節點的BDS時空信息做摘要生成MD5(tp),MD5(tp-update),與RDID一起擴展base DID Document得到DID Document,并通過合約進行上鏈操作,將DID Document置入分布式存儲。
4)適時更新RDID與DID Document。
在流轉過程中如果有生命周期狀態變化或者流轉節點變更,需要更新RDID中的SubID和對應的DID Document。
RDID生成流程如圖7所示,所有的生成過程都在主體框架內完成。實體的DID由Holder自主生成,虛擬對象的DID由虛擬對象的生產節點(子設備以上層級)生成,流轉節點更新。主體采用北斗提供的PNT時空信息,在初始化和適時更新兩個層面保障RDID的唯一性、追溯性。

圖7 RDID生成流程Fig.7 Service architecture of RDID
RDID的流轉由用戶、發證方和應用方共同參與,映射到實體系統,就是擁有標識的主體(即所有鐵路物聯網中的設備與設備產生的需要標識的信息流)、給主體的標識簽發可驗證聲明的可信主體(鐵路物聯網系統內的核心設備,可以是主網設備,也可以是子網設備)、需要檢驗主體身份的環節(數據信息的應用設備,需要驗證所收到的信息來源可信,需要驗證接入的設備是合法設備)。
在分布式信任的鐵路物聯網中,需要使用RDID驗證授權的操作有兩種(見圖8):1)無需可驗證聲明即可承認授權的操作,例如一般狀態信息流轉;2)需要指定可驗證聲明才能承認授權的操作,例如進行安全相關的控制操作。在第一種情況中,應用方只需驗證主體是RDID的擁有者即可。在第二種情況中,主體首先需要去向發證方比如數據中心,申請一個證明自己的操作有授權的聲明,然后向應用方出示此聲明才能完成RDID的驗證。這里的可驗證聲明(verifiable claim)是一個 RDID 給另一個 RDID 的某些屬性做背書而發出的描述性聲明,并附加自己的數字簽名,用以證明這些屬性的真實性,可以認為是一種數字證書。可簽發Claim的RDID必須具有公信力。因為可驗證聲明是RDID簽發出來的,所以應用方只需要去鏈上獲得此RDID的公鑰即可驗證聲明的真偽。

圖8 RDID流轉Fig.8 RDID flow
身份驗證過程中使用基于北斗時空信息的公私鑰,執行挑戰——響應機制,數據發送方或者身份驗證方獲取到接收方或者被驗證方的RDID,在區塊鏈檢索獲取到其DID Document,即可得到對應的公鑰key和北斗時空信息的摘要MD5(tp-update),同時可通過北斗系統獲取到當前時空信息的摘要MD5(tp-now),用公鑰對MD5(tp-update) ?MD5(tp-now)進行加密,發送給接收方或者被驗證方。接收方需要有正確的私鑰與tp-update才能進行解密,并將解得的信息返回與MD5(tp-now) 比對,如果返回值正確,則表明接收方或者被驗證方是RDID的合法持有者,實現身份的安全認證。時空信息是可以定時更新的,而且更新連續有規律,非法的第三方由于無法獲取正確的時空信息和私鑰,不能進行正確解密,也不能冒用身份。
以列車故障預測與健康管理 (prognostic and health management,PHM)系統為例,系統由列車子系統、地面子系統構成。列車子系統包括列車網控與車載PHM系統,負責收集車輛運行狀態信息;地面子系統包括1)地面感知系統,負責收集地面數據;2)地面PHM系統,負責統籌PHM信息,進行數據分析,調度各系統;3)管理系統,根據獲取到的車路態勢提供決策功能。整個系統通過收集列車、地面設備等鐵路裝備的大量運行狀態數據,結合模型分析,提出設備故障預測和全生命周期管理策略,所以數據的來源和安全性對于決策來說至關重要。系統如圖9所示[17]。

圖9 列車PHM系統Fig.9 PHM system of train
系統各部分的角色和獲取時空信息的方式如下:
1)車載PHM系統、地面感知系統、地面PHM系統及管理系統是核心設備,構成主網,在主網上搭建區塊鏈網絡,分布式數據存儲,負責管理存儲RDID與DID Document,在核心設備上部署2.2節所定義的R-S節點,主網單元各自的北斗時空信息是其關鍵信息,會隨區塊鏈在網間同步;
2)配置地面PHM系統為發證方,地面PHM系統的時空信息從地面站系統的北斗接收機或等效信源獲取,屬于自主定位信源;
3)列車網控與車載PHM系統構成子網,列車網控角色為終端,配置車載PHM系統為應用方,子網的時空信息引用列車的車載北斗接收機的時空信息,屬于共享定位信源,全車共享車輛的BDS信息;
4)地面感知系統構成子網,子網的時空信息引用地面感知系統北斗接收機或等效信源的時空信息,屬于自主定位信源。
在此系統中:
1)各設備單元RDID依照2.3節定義的規則自主生成,且定期更新,由于列車為移動裝備,其SubID對應的
2)消息的RDID由其生產者生成,例如由車載PHM系統收集而來的狀態信息需要打包傳送給地面PHM系統時,車載PHM系統負責利用當前時空信息生成消息包的RDID及DID Document,將消息的RDID與自身的RDID作為消息頭一并打包發送,在數據流和數據存儲中,此RDID就包含消息的追溯信息。
3)車載PHM系統收到地面感知系統來源的數據時,可向地面PHM系統申請身份驗證,地面感知系統也可向地面PHM系統申請可驗證聲明附加在其數據包中,供車載PHM系統驗證。
在實驗室環境采用3臺服務器(Ubuntu環境,16vCPU,32GB內存),1臺工控機(Ubuntu環境,4vARM64CPU,8GB內存),6臺RaspberryPi-CM4(Debian環境,4vARM64CPU,2GB內存)搭建了模擬驗證環境如圖10,其中服務器模擬管理系統、地面PHM系統和地面感知系統,工控機模擬車載PHM系統,樹莓派模擬終端。采用以太坊Ethereum部署底層區塊鏈網絡,采用IPFS作為底層的分布式持久化存儲文件系統,開發智能合約完成打包上鏈功能。BDS系統采用移遠RM500Q提供的定位消息,部署在一臺服務器和一臺工控機上,從$GBGGA報文提取時空信息并以100ms周期間隔進行更新,由此產生和更新設備和消息的RDID。實測由于采用了L2分布式信任網絡機制,RDID服務獨立于業務運行,摘要上鏈的方法,系統開銷較小,與不采用RDID的數據生成與傳輸模式沒有可見的性能下降,如表1。

表1 RDID服務工作效率

圖10 測試環境實景Fig.10 Test environment
在Ubuntu環境下基于Python編寫模擬程序,引入基于聲譽的信任度計算模型[18-19]構建仿真測試環境,對比具有BDS PNT信息的節點和沒有該信息的節點。BDS PNT信息可以用于數據一致性校驗和時空邏輯校驗,從而增加直接信任值的信息維度和計算參數復雜度;推薦節點可基于BDS PNT信息生成相關系數作為推薦權重,動態調整推薦信任因子,以提高推薦信任值的可靠性。添加50個模擬節點,其中25個沒有BDS信源、25個有BDS信源,并且兩類節點中各有5個節點被設置為惡意節點,惡意節點會隨機偽造BDS PNT信息,生成惡意隨機數據。設定所有節點的初始信任值為0.5,按照每秒2次信息交互的速率,進行信任值迭代。統計如圖11,可見加入BDS PNT信息的節點相對于沒有此信息的節點,信任度能夠更加迅速地響應調整,信任評估更加敏感,系統整體可信度提高。

圖11 節點類平均信任值仿真Fig.11 Node average trust value simulation
由模擬試驗和仿真可見,采用RDID服務的系統整體加解密機制運行良好,使用方可以通過RDID服務驗證所收到的信息的所有者,驗證響應的系統用時在100 ms以內,保障系統可信安全。
1)本文創新性地利用區塊鏈去中心化身份管理、信息不可篡改、可追溯和不可抵賴等特性結合DID技術設計了用于鐵路物聯網的可信數字身份服務RDID,以期利用鐵路物聯網本身的分布式特性為其信息安全防護提供重要工具。
2)本文根據W3C標準,結合實際應用需求設計了RDID的服務架構、生成流程、流轉流程和驗證流程,并結合BDS提供的時空信息優化了DID組成和驗證方法,提高了RDID的可驗證性和安全性。
3)后續研究會進一步優化拓展BDS的PNT時空信息在整個身份標識安全系統中的應用,包括短報文機制、精確授時和差分定位的應用。
面向鐵路物聯網應用對大體量設備進行分布式自主管理的需求,區塊鏈具有的分布式計算和群體可信協作機制可以為物聯網安全挑戰提供有效解決方案,也可為在網設備和主體的身份認證與訪問控制、全生命周期全鏈條的數據安全可信追溯等提供有效技術手段。