鄭 藝,孫 可,孫 野,沈 濤
(湖南中車時代通信信號有限公司北京分公司,北京 100079)
ETCS系統[1]是歐洲鐵路運輸管理系統(ERTMS)的重要組成部分,在歐洲乃至全球廣泛應用,為了實現中國高鐵技術“走出去”的戰略,有必要對ETCS系統進行深入研究開發。
ETCS系統的車載設備部署于列車內部,其與車輛的TCMS系統通過列車接口連接,列車接口同時采用并行連接和串行連接兩類。其中,并行連接主要是繼電器接口,串行連接主要是總線/網絡接口[2]。ETCS車載設備通過總線/網絡接口掛載到列車通信網絡(TCN),實現與TCMS系統的信息交互,因此ETCS車載設備的列車接口符合TCN的通信規約。當前TCN主要有多功能車輛總線(MVB)、CAN總線、以太網編組網(ECN)等多種形式。國際電工委員會(IEC)根據技術的發展相繼推出了一系列TCN技術標準,即IEC 61375系列標準[3]。其中2015年7月頒布的IEC 61375-2-3標準[4]詳細規定了TCN網絡的安全數據傳輸(SDT)協議。歐盟Shift2Rail計劃所研究的下一代TCMS對數據安全性有更高的需求,在該計劃支持下的Safe4RAIL研究計劃中,一些研究機構對如何將IEC 61375-2-3標準規范的SDT協議的安全完整性等級由目前的SIL2級提高至SIL4級進行初步研究[5-6]。近些年國內的TCN技術有了長足發展,為了實現與國際標準的接軌,并為“走出去”戰略奠定基礎,2020年3月國家鐵路局在參照IEC 61375-2-3標準的基礎上頒布了GB/T 28029.4-2020標準[7]。
隨著通信技術的發展和研究的逐漸深入,為實現TCN網絡中數據傳輸具備更高安全性提供了新的可能性。本文首先對安全數據傳輸進行概述,介紹標準規定的協議所采用的安全措施,設計并實現了符合IEC 61375-2-3標準的SDT協議,并通過搭建自動測試環境對SDT協議功能進行測試。
本文介紹的SDT協議為安全相關的信源與信宿之間提供了安全的通信通道,這個通道稱為安全數據傳輸通道,SDT協議所在網絡結構如圖1所示。SDT協議作為安全應用與通信通道的數據傳輸的媒介,其具有兩個接口:安全應用層接口與通信通道接口。安全應用層接口是SDT協議從安全應用中獲取和向安全應用傳輸過程數據的接口。通信通道接口由列車實時數據協議(TRDP)構成,該協議定義了發送到TCN和從TCN接收的SDT協議數據單元的規則。SDT協議層主要功能是添加和解析本層的協議信息。在接收來自通信層的數據時,通過SDT協議來判斷接收的信息是否有效,以及是否上傳至應用層。SDT協議層是本文主要研究對象。

圖1 SDT協議在網絡結構中的位置示意圖Fig.1 Location diagram of SDT protocol in network structure
對于數據傳輸系統中的安全通信問題,EN50159標準[8-9]中規定了要對以下的安全威脅進行識別和防范:
1) 報文重復;
2) 報文丟失;
3) 報文插入;
4) 報文次序混亂;
5) 報文錯誤;
6) 報文傳輸超時。
針對上述安全威脅,SDT協議采用下述多種措施對數據的安全性進行檢查,以實現識別防范安全威脅的目的。
1) 報文序列號;
2) 數據接收端的時間監督;
3) 報文CRC校驗;
4) 源標識符;
5) 時延監控;
6) 信道監控。
SDT協議的威脅/防御矩陣如表1所示。

表1 SDT協議威脅/防御矩陣Tab.1 Threat / Defense Matrix of the SDT Protocol
由表1可知,SDT協議通過綜合采用多種安全防御措施,可以完全覆蓋通信的各種安全威脅。
SDT協議是應用于TCN網絡的通用安全數據傳輸協議,不僅適用于ETB也適用于MVB。應用于兩者的SDT協議工作原理完全一致,只是其中部分字段的取值和報文尾部附加數據長度有差別。鑒于ETCS車載設備與車輛之間的通信連接為MVB總線,本文主要研究MVB總線上的SDT協議。
SDT協議的重要數據包(VDP)由兩部分組成,分別是來自安全應用層下發的重要過程數據(Vital Process Data)和尾部附加數據(Trailer),報文格式示意如圖2所示。

圖2 MVB總線上的VDP結構示意圖Fig.2 Schematic diagram of VDP over MVB telegram structure
SDT協議數據包的Trailer結構如圖3所示。其中Safe Sequ Count(SSC)字段取值是數據包的安全序號,同一端口每發送一包數據該字段值增加1;Safety Code取值是32位CRC運算后的計算結果,運算的種子值是源標識符(SID),計算范圍是數據包起始位置到安全序號之間的數據;User Data Main Version字段指的用戶數據主版本號。

圖3 SDT協議報文Trailer部分數據結構圖Fig.3 SDT protocol telegram Trailer part data structure diagram
SID是通過對圖4的數據結構進行32位的CRC運算后的結果。

圖4 計算SID的數據結構圖Fig.4 Data structure diagram for calculating SID
圖4中的SMI表示的是安全消息標識符,每個MVB的源端口設置一個唯一的數值。字段SDTProtVers表示的SDT協議版本號。當SDT協議應用于MVB總線時,其他字段都置為零。
數據包完整性檢查的目的是過濾掉不準確的VDP,即損壞的VDP和用戶數據主版本號不正確的VDP都被認為是無效的數據,不會提交給應用軟件處理。
SDT協議從通信通道接口讀取VDP后,首先檢查該VDP的SafetyCode計算是否正確;其次,接收端判斷該VDP是否為新VDP。若檢查存在字段值錯誤或者VDP不是新的VDP,那么SDT協議層不向上層應用傳遞該VDP數據。
信宿時間監督的目的是識別通信中斷的錯誤。信宿的接收端口在收到初始VDP后,開啟時間監督定時器,若信宿時間監督定時器直到超時都未收到準確并且新的VDP,則認為安全通信中斷,即便此后收到符合要求的VDP,SDT協議層也不能立即恢復安全通信,而要將新收到的VDP作為初始VDP,重新完成安全通信建立的流程后才向應用層再次上傳數據。信宿時間監督原理示意圖如圖5所示。

圖5 信宿時間監督原理示意圖Fig.5 Schematic diagram of the principle of sink time supervision
圖5中信宿在收到SSC=01的VDP后連續4個VDP丟失,導致信宿時間監督定時器大于超時閾值Trx_safe,SDT協議層判定安全通信中斷,即便此后收到正確的SSC=06的VDP,也不能立即恢復安全通信。
時延監控的目的是監督VDP傳輸的延遲,VDP的時延指的是從安全信源到安全信宿的時延。網絡發生擁塞時,接收端的時延會快速增大。如果信息傳輸時延超過時延閾值,則認為安全通信中斷。時延監控原理示意如圖6所示。
圖6中的SSCE表示的是信宿期望接收到的VDP包安全序號,SSCS表示的是信宿實際收到的VDP包安全序號,Tlatency表示VDP包的時延,Trx_safe表示的是時延超時閾值。
SSCE可以用式(1)計算得出,

式中,SSC0表示安全數據通信建立的初始VDP的SSC,t表示信宿當前時間,t0表示信宿收到初始VDP的時間,Ttx_period表示信源發送周期。
當接收端滿足公式(2)條件時,置安全通信狀態丟失。式中,{SSCE(t)- SSCS(t)}|mod(2^k)表示信宿在t時刻的期望收到的SSC和實際采樣的SSC之間的差值。

通道監控旨在檢測到SDT通道內部傳輸失敗率的突然增加,這可能會是屬于SDT通道的某個組件中發生硬件或軟件故障。隨著傳輸故障率的增加,損壞的VDP通過CRC校驗程序而未被檢測到的可能性增加,并且可能變得不可接受。信道監控通過設置每小時發生CRC校驗失敗的次數作為判斷閾值來防御該類危險。
但是上述方式具體實現效率較低,IEC 61375-2-3標準給出了一種信道監控算法。即通過式(3)設置信道監控閾值。

式中,fm表示信源發送端口每小時發送VDP的頻率;K3表示每小時發生的CRC校驗失敗次數的閾值,一般置為43;參數K4因K3數值變化而變化,當K3置為43時,K4置為36。
設置一個CRC校驗失敗次數的計數器Z,當發生校驗失敗時,計數加1,當校驗成功時,計數減1,如果發生計數值Z大于監控閾值CM_thr,則認為安全通信中斷。發生該錯誤后,當計數值Z數值再次變為0時,解除安全通信中斷狀態,重新建立安全通信。

圖6 信宿時間監控原理示意圖Fig.6 Schematic diagram of the principle of sink time supervision
在實現SDT協議基礎上,有必要搭建協議測試平臺,對開發的SDT協議進行功能測試。本文通過構建故障注入模塊,完成SDT協議的安全數據傳輸功能相關測試工作。
SDT協議故障注入模塊是處于陪測設備與測試設備之間的故障注入設備。故障注入設備接收陪測設備發送的準確VDP數據后,按照設置的故障注入方案,對報文進行相應操作處理,繼而將處理后的VDP報文通過MVB總線發送至測試設備。SDT協議測試系統架構示意如圖7所示。

圖7 SDT協議測試系統架構示意圖Fig.7 Schematic diagram of SDT protocol test system architecture
SDT協議測試功能點和故障注入點的對應關系如表2所示。

表2 SDT協議測試功能點及故障注入Tab.2 SDT Protocol Test Function Points and Fault Injection
使用故障注入模塊,可以對MVB總線傳輸的報文損壞、重復、亂序、丟失、超時、插入、信道錯誤等多種故障類型進行全面的測試驗證,對SDT協議的開發驗證具有重要意義。
TCN的通信規約對于車載機電設備之間的互操作和數據共享具有重要意義,其中安全數據傳輸協議是實現安全通信的重要保障。ETCS車載設備與車輛TCMS之間的通信關系著列車控制系統的安全性,其數據傳輸的安全尤為重要,設計實現SDT協議也更為必要,相關設計、開發、測試工作在工程中有廣泛深遠的價值。本文簡述了安全傳輸協議研究的國內外現狀,概述了SDT協議及其采用的安全防御措施,在此基礎上詳細描述了SDT協議的設計方案,并對SDT協議進行了故障注入測試以驗證協議功能性。本文的研究工作對ETCS車載設備在海外動車組/機車上的部署創造了基本條件,所設計實現的SDT協議已在多個海外ETCS項目中實現了工程應用,通過了各項相關列車接口測試,為后續更深入的研究安全數據傳輸協議奠定了基礎。