鄭 藝,孫 可,孫 野,沈 濤
(湖南中車(chē)時(shí)代通信信號(hào)有限公司北京分公司,北京 100079)
ETCS系統(tǒng)[1]是歐洲鐵路運(yùn)輸管理系統(tǒng)(ERTMS)的重要組成部分,在歐洲乃至全球廣泛應(yīng)用,為了實(shí)現(xiàn)中國(guó)高鐵技術(shù)“走出去”的戰(zhàn)略,有必要對(duì)ETCS系統(tǒng)進(jìn)行深入研究開(kāi)發(fā)。
ETCS系統(tǒng)的車(chē)載設(shè)備部署于列車(chē)內(nèi)部,其與車(chē)輛的TCMS系統(tǒng)通過(guò)列車(chē)接口連接,列車(chē)接口同時(shí)采用并行連接和串行連接兩類(lèi)。其中,并行連接主要是繼電器接口,串行連接主要是總線(xiàn)/網(wǎng)絡(luò)接口[2]。ETCS車(chē)載設(shè)備通過(guò)總線(xiàn)/網(wǎng)絡(luò)接口掛載到列車(chē)通信網(wǎng)絡(luò)(TCN),實(shí)現(xiàn)與TCMS系統(tǒng)的信息交互,因此ETCS車(chē)載設(shè)備的列車(chē)接口符合TCN的通信規(guī)約。當(dāng)前TCN主要有多功能車(chē)輛總線(xiàn)(MVB)、CAN總線(xiàn)、以太網(wǎng)編組網(wǎng)(ECN)等多種形式。國(guó)際電工委員會(huì)(IEC)根據(jù)技術(shù)的發(fā)展相繼推出了一系列TCN技術(shù)標(biāo)準(zhǔn),即IEC 61375系列標(biāo)準(zhǔn)[3]。其中2015年7月頒布的IEC 61375-2-3標(biāo)準(zhǔn)[4]詳細(xì)規(guī)定了TCN網(wǎng)絡(luò)的安全數(shù)據(jù)傳輸(SDT)協(xié)議。歐盟Shift2Rail計(jì)劃所研究的下一代TCMS對(duì)數(shù)據(jù)安全性有更高的需求,在該計(jì)劃支持下的Safe4RAIL研究計(jì)劃中,一些研究機(jī)構(gòu)對(duì)如何將IEC 61375-2-3標(biāo)準(zhǔn)規(guī)范的SDT協(xié)議的安全完整性等級(jí)由目前的SIL2級(jí)提高至SIL4級(jí)進(jìn)行初步研究[5-6]。近些年國(guó)內(nèi)的TCN技術(shù)有了長(zhǎng)足發(fā)展,為了實(shí)現(xiàn)與國(guó)際標(biāo)準(zhǔn)的接軌,并為“走出去”戰(zhàn)略奠定基礎(chǔ),2020年3月國(guó)家鐵路局在參照IEC 61375-2-3標(biāo)準(zhǔn)的基礎(chǔ)上頒布了GB/T 28029.4-2020標(biāo)準(zhǔn)[7]。
隨著通信技術(shù)的發(fā)展和研究的逐漸深入,為實(shí)現(xiàn)TCN網(wǎng)絡(luò)中數(shù)據(jù)傳輸具備更高安全性提供了新的可能性。本文首先對(duì)安全數(shù)據(jù)傳輸進(jìn)行概述,介紹標(biāo)準(zhǔn)規(guī)定的協(xié)議所采用的安全措施,設(shè)計(jì)并實(shí)現(xiàn)了符合IEC 61375-2-3標(biāo)準(zhǔn)的SDT協(xié)議,并通過(guò)搭建自動(dòng)測(cè)試環(huán)境對(duì)SDT協(xié)議功能進(jìn)行測(cè)試。
本文介紹的SDT協(xié)議為安全相關(guān)的信源與信宿之間提供了安全的通信通道,這個(gè)通道稱(chēng)為安全數(shù)據(jù)傳輸通道,SDT協(xié)議所在網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。SDT協(xié)議作為安全應(yīng)用與通信通道的數(shù)據(jù)傳輸?shù)拿浇椋渚哂袃蓚€(gè)接口:安全應(yīng)用層接口與通信通道接口。安全應(yīng)用層接口是SDT協(xié)議從安全應(yīng)用中獲取和向安全應(yīng)用傳輸過(guò)程數(shù)據(jù)的接口。通信通道接口由列車(chē)實(shí)時(shí)數(shù)據(jù)協(xié)議(TRDP)構(gòu)成,該協(xié)議定義了發(fā)送到TCN和從TCN接收的SDT協(xié)議數(shù)據(jù)單元的規(guī)則。SDT協(xié)議層主要功能是添加和解析本層的協(xié)議信息。在接收來(lái)自通信層的數(shù)據(jù)時(shí),通過(guò)SDT協(xié)議來(lái)判斷接收的信息是否有效,以及是否上傳至應(yīng)用層。SDT協(xié)議層是本文主要研究對(duì)象。
圖1 SDT協(xié)議在網(wǎng)絡(luò)結(jié)構(gòu)中的位置示意圖Fig.1 Location diagram of SDT protocol in network structure
對(duì)于數(shù)據(jù)傳輸系統(tǒng)中的安全通信問(wèn)題,EN50159標(biāo)準(zhǔn)[8-9]中規(guī)定了要對(duì)以下的安全威脅進(jìn)行識(shí)別和防范:
1) 報(bào)文重復(fù);
2) 報(bào)文丟失;
3) 報(bào)文插入;
4) 報(bào)文次序混亂;
5) 報(bào)文錯(cuò)誤;
6) 報(bào)文傳輸超時(shí)。
針對(duì)上述安全威脅,SDT協(xié)議采用下述多種措施對(duì)數(shù)據(jù)的安全性進(jìn)行檢查,以實(shí)現(xiàn)識(shí)別防范安全威脅的目的。
1) 報(bào)文序列號(hào);
2) 數(shù)據(jù)接收端的時(shí)間監(jiān)督;
3) 報(bào)文CRC校驗(yàn);
4) 源標(biāo)識(shí)符;
5) 時(shí)延監(jiān)控;
6) 信道監(jiān)控。
SDT協(xié)議的威脅/防御矩陣如表1所示。
表1 SDT協(xié)議威脅/防御矩陣Tab.1 Threat / Defense Matrix of the SDT Protocol
由表1可知,SDT協(xié)議通過(guò)綜合采用多種安全防御措施,可以完全覆蓋通信的各種安全威脅。
SDT協(xié)議是應(yīng)用于TCN網(wǎng)絡(luò)的通用安全數(shù)據(jù)傳輸協(xié)議,不僅適用于ETB也適用于MVB。應(yīng)用于兩者的SDT協(xié)議工作原理完全一致,只是其中部分字段的取值和報(bào)文尾部附加數(shù)據(jù)長(zhǎng)度有差別。鑒于ETCS車(chē)載設(shè)備與車(chē)輛之間的通信連接為MVB總線(xiàn),本文主要研究MVB總線(xiàn)上的SDT協(xié)議。
SDT協(xié)議的重要數(shù)據(jù)包(VDP)由兩部分組成,分別是來(lái)自安全應(yīng)用層下發(fā)的重要過(guò)程數(shù)據(jù)(Vital Process Data)和尾部附加數(shù)據(jù)(Trailer),報(bào)文格式示意如圖2所示。
圖2 MVB總線(xiàn)上的VDP結(jié)構(gòu)示意圖Fig.2 Schematic diagram of VDP over MVB telegram structure
SDT協(xié)議數(shù)據(jù)包的Trailer結(jié)構(gòu)如圖3所示。其中Safe Sequ Count(SSC)字段取值是數(shù)據(jù)包的安全序號(hào),同一端口每發(fā)送一包數(shù)據(jù)該字段值增加1;Safety Code取值是32位CRC運(yùn)算后的計(jì)算結(jié)果,運(yùn)算的種子值是源標(biāo)識(shí)符(SID),計(jì)算范圍是數(shù)據(jù)包起始位置到安全序號(hào)之間的數(shù)據(jù);User Data Main Version字段指的用戶(hù)數(shù)據(jù)主版本號(hào)。
圖3 SDT協(xié)議報(bào)文Trailer部分?jǐn)?shù)據(jù)結(jié)構(gòu)圖Fig.3 SDT protocol telegram Trailer part data structure diagram
SID是通過(guò)對(duì)圖4的數(shù)據(jù)結(jié)構(gòu)進(jìn)行32位的CRC運(yùn)算后的結(jié)果。
圖4 計(jì)算SID的數(shù)據(jù)結(jié)構(gòu)圖Fig.4 Data structure diagram for calculating SID
圖4中的SMI表示的是安全消息標(biāo)識(shí)符,每個(gè)MVB的源端口設(shè)置一個(gè)唯一的數(shù)值。字段SDTProtVers表示的SDT協(xié)議版本號(hào)。當(dāng)SDT協(xié)議應(yīng)用于MVB總線(xiàn)時(shí),其他字段都置為零。
數(shù)據(jù)包完整性檢查的目的是過(guò)濾掉不準(zhǔn)確的VDP,即損壞的VDP和用戶(hù)數(shù)據(jù)主版本號(hào)不正確的VDP都被認(rèn)為是無(wú)效的數(shù)據(jù),不會(huì)提交給應(yīng)用軟件處理。
SDT協(xié)議從通信通道接口讀取VDP后,首先檢查該VDP的SafetyCode計(jì)算是否正確;其次,接收端判斷該VDP是否為新VDP。若檢查存在字段值錯(cuò)誤或者VDP不是新的VDP,那么SDT協(xié)議層不向上層應(yīng)用傳遞該VDP數(shù)據(jù)。
信宿時(shí)間監(jiān)督的目的是識(shí)別通信中斷的錯(cuò)誤。信宿的接收端口在收到初始VDP后,開(kāi)啟時(shí)間監(jiān)督定時(shí)器,若信宿時(shí)間監(jiān)督定時(shí)器直到超時(shí)都未收到準(zhǔn)確并且新的VDP,則認(rèn)為安全通信中斷,即便此后收到符合要求的VDP,SDT協(xié)議層也不能立即恢復(fù)安全通信,而要將新收到的VDP作為初始VDP,重新完成安全通信建立的流程后才向應(yīng)用層再次上傳數(shù)據(jù)。信宿時(shí)間監(jiān)督原理示意圖如圖5所示。
圖5 信宿時(shí)間監(jiān)督原理示意圖Fig.5 Schematic diagram of the principle of sink time supervision
圖5中信宿在收到SSC=01的VDP后連續(xù)4個(gè)VDP丟失,導(dǎo)致信宿時(shí)間監(jiān)督定時(shí)器大于超時(shí)閾值Trx_safe,SDT協(xié)議層判定安全通信中斷,即便此后收到正確的SSC=06的VDP,也不能立即恢復(fù)安全通信。
時(shí)延監(jiān)控的目的是監(jiān)督VDP傳輸?shù)难舆t,VDP的時(shí)延指的是從安全信源到安全信宿的時(shí)延。網(wǎng)絡(luò)發(fā)生擁塞時(shí),接收端的時(shí)延會(huì)快速增大。如果信息傳輸時(shí)延超過(guò)時(shí)延閾值,則認(rèn)為安全通信中斷。時(shí)延監(jiān)控原理示意如圖6所示。
圖6中的SSCE表示的是信宿期望接收到的VDP包安全序號(hào),SSCS表示的是信宿實(shí)際收到的VDP包安全序號(hào),Tlatency表示VDP包的時(shí)延,Trx_safe表示的是時(shí)延超時(shí)閾值。
SSCE可以用式(1)計(jì)算得出,
式中,SSC0表示安全數(shù)據(jù)通信建立的初始VDP的SSC,t表示信宿當(dāng)前時(shí)間,t0表示信宿收到初始VDP的時(shí)間,Ttx_period表示信源發(fā)送周期。
當(dāng)接收端滿(mǎn)足公式(2)條件時(shí),置安全通信狀態(tài)丟失。式中,{SSCE(t)- SSCS(t)}|mod(2^k)表示信宿在t時(shí)刻的期望收到的SSC和實(shí)際采樣的SSC之間的差值。
通道監(jiān)控旨在檢測(cè)到SDT通道內(nèi)部傳輸失敗率的突然增加,這可能會(huì)是屬于SDT通道的某個(gè)組件中發(fā)生硬件或軟件故障。隨著傳輸故障率的增加,損壞的VDP通過(guò)CRC校驗(yàn)程序而未被檢測(cè)到的可能性增加,并且可能變得不可接受。信道監(jiān)控通過(guò)設(shè)置每小時(shí)發(fā)生CRC校驗(yàn)失敗的次數(shù)作為判斷閾值來(lái)防御該類(lèi)危險(xiǎn)。
但是上述方式具體實(shí)現(xiàn)效率較低,IEC 61375-2-3標(biāo)準(zhǔn)給出了一種信道監(jiān)控算法。即通過(guò)式(3)設(shè)置信道監(jiān)控閾值。
式中,fm表示信源發(fā)送端口每小時(shí)發(fā)送VDP的頻率;K3表示每小時(shí)發(fā)生的CRC校驗(yàn)失敗次數(shù)的閾值,一般置為43;參數(shù)K4因K3數(shù)值變化而變化,當(dāng)K3置為43時(shí),K4置為36。
設(shè)置一個(gè)CRC校驗(yàn)失敗次數(shù)的計(jì)數(shù)器Z,當(dāng)發(fā)生校驗(yàn)失敗時(shí),計(jì)數(shù)加1,當(dāng)校驗(yàn)成功時(shí),計(jì)數(shù)減1,如果發(fā)生計(jì)數(shù)值Z大于監(jiān)控閾值CM_thr,則認(rèn)為安全通信中斷。發(fā)生該錯(cuò)誤后,當(dāng)計(jì)數(shù)值Z數(shù)值再次變?yōu)?時(shí),解除安全通信中斷狀態(tài),重新建立安全通信。
圖6 信宿時(shí)間監(jiān)控原理示意圖Fig.6 Schematic diagram of the principle of sink time supervision
在實(shí)現(xiàn)SDT協(xié)議基礎(chǔ)上,有必要搭建協(xié)議測(cè)試平臺(tái),對(duì)開(kāi)發(fā)的SDT協(xié)議進(jìn)行功能測(cè)試。本文通過(guò)構(gòu)建故障注入模塊,完成SDT協(xié)議的安全數(shù)據(jù)傳輸功能相關(guān)測(cè)試工作。
SDT協(xié)議故障注入模塊是處于陪測(cè)設(shè)備與測(cè)試設(shè)備之間的故障注入設(shè)備。故障注入設(shè)備接收陪測(cè)設(shè)備發(fā)送的準(zhǔn)確VDP數(shù)據(jù)后,按照設(shè)置的故障注入方案,對(duì)報(bào)文進(jìn)行相應(yīng)操作處理,繼而將處理后的VDP報(bào)文通過(guò)MVB總線(xiàn)發(fā)送至測(cè)試設(shè)備。SDT協(xié)議測(cè)試系統(tǒng)架構(gòu)示意如圖7所示。
圖7 SDT協(xié)議測(cè)試系統(tǒng)架構(gòu)示意圖Fig.7 Schematic diagram of SDT protocol test system architecture
SDT協(xié)議測(cè)試功能點(diǎn)和故障注入點(diǎn)的對(duì)應(yīng)關(guān)系如表2所示。
表2 SDT協(xié)議測(cè)試功能點(diǎn)及故障注入Tab.2 SDT Protocol Test Function Points and Fault Injection
使用故障注入模塊,可以對(duì)MVB總線(xiàn)傳輸?shù)膱?bào)文損壞、重復(fù)、亂序、丟失、超時(shí)、插入、信道錯(cuò)誤等多種故障類(lèi)型進(jìn)行全面的測(cè)試驗(yàn)證,對(duì)SDT協(xié)議的開(kāi)發(fā)驗(yàn)證具有重要意義。
TCN的通信規(guī)約對(duì)于車(chē)載機(jī)電設(shè)備之間的互操作和數(shù)據(jù)共享具有重要意義,其中安全數(shù)據(jù)傳輸協(xié)議是實(shí)現(xiàn)安全通信的重要保障。ETCS車(chē)載設(shè)備與車(chē)輛TCMS之間的通信關(guān)系著列車(chē)控制系統(tǒng)的安全性,其數(shù)據(jù)傳輸?shù)陌踩葹橹匾O(shè)計(jì)實(shí)現(xiàn)SDT協(xié)議也更為必要,相關(guān)設(shè)計(jì)、開(kāi)發(fā)、測(cè)試工作在工程中有廣泛深遠(yuǎn)的價(jià)值。本文簡(jiǎn)述了安全傳輸協(xié)議研究的國(guó)內(nèi)外現(xiàn)狀,概述了SDT協(xié)議及其采用的安全防御措施,在此基礎(chǔ)上詳細(xì)描述了SDT協(xié)議的設(shè)計(jì)方案,并對(duì)SDT協(xié)議進(jìn)行了故障注入測(cè)試以驗(yàn)證協(xié)議功能性。本文的研究工作對(duì)ETCS車(chē)載設(shè)備在海外動(dòng)車(chē)組/機(jī)車(chē)上的部署創(chuàng)造了基本條件,所設(shè)計(jì)實(shí)現(xiàn)的SDT協(xié)議已在多個(gè)海外ETCS項(xiàng)目中實(shí)現(xiàn)了工程應(yīng)用,通過(guò)了各項(xiàng)相關(guān)列車(chē)接口測(cè)試,為后續(xù)更深入的研究安全數(shù)據(jù)傳輸協(xié)議奠定了基礎(chǔ)。