袁天弋
(北京全路通信信號研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070)
隨著國內(nèi)高速鐵路的十年發(fā)展,已全面邁入高鐵時代。為了實(shí)現(xiàn)高鐵安全、高速、高效運(yùn)營,高速鐵路控制系統(tǒng)間數(shù)據(jù)安全、穩(wěn)定、可靠的傳輸是重要基礎(chǔ)條件。在2010年中華人民共和國鐵道部發(fā)布了《RSSP-I鐵路信號安全通信協(xié)議》(以下簡稱RSSP-I通信協(xié)議),為滿足國內(nèi)高速鐵路控制系統(tǒng)間的安全通信提供了標(biāo)準(zhǔn)依據(jù)。RSSP-I通信協(xié)議參考?xì)W洲鐵路安全標(biāo)準(zhǔn)EN50159所定義的封閉式傳輸可能存在的威脅,從接受方設(shè)計(jì)算法進(jìn)行防護(hù),以差錯檢查控制為核心,采取對應(yīng)的糾錯手段,嚴(yán)格控制由于誤碼導(dǎo)致設(shè)備的錯誤操作。RSSP-I通信協(xié)議規(guī)定了系統(tǒng)間數(shù)據(jù)完成通信交互時所必須遵循的規(guī)則,為高速鐵路運(yùn)營提供重要的通信保障。RSSP-I通信協(xié)議現(xiàn)廣泛應(yīng)用在國內(nèi)高速鐵路控制系統(tǒng)的系統(tǒng)間安全通信接口,例如:TCC與聯(lián)鎖,TCC與LEU等。因此,保證安全通信接口間數(shù)據(jù)的正確是非常重要的,而測試是確保安全通信接口信息正確的有效手段。研究RSSP-I通信協(xié)議的測試內(nèi)容和測試方法,是提高測試有效性的重要途徑,也為RSSP-I通信協(xié)議的安全防御提供了支持依據(jù)。
RSSP-I通信協(xié)議規(guī)定了鐵路信號安全設(shè)備之間通過封閉式傳輸系統(tǒng)進(jìn)行安全相關(guān)信息交互的功能結(jié)構(gòu)和協(xié)議。本協(xié)議規(guī)定在安全通信交互中使用的3種報(bào)文,如表1所示,各種報(bào)文的具體格式定義可參見《RSSP-I鐵路信號安全通信協(xié)議》。同時該協(xié)議規(guī)定了針對 GB/T 24339.2中對于傳輸系統(tǒng)上的安全設(shè)備之間的安全通信可能面對的威脅情形所采用的防護(hù)技術(shù)進(jìn)行了說明,如表2所示。RSSP-I通信協(xié)議定義的通信威脅在控制系統(tǒng)間正常報(bào)文通信過程中均可能發(fā)生,必須采取相應(yīng)的防御技術(shù)規(guī)避通信風(fēng)險。
表1 RSSP-I通信協(xié)議報(bào)文類型Tab.1 Telegram type of RSSP-1
報(bào)文重復(fù):報(bào)文周期性發(fā)送,接收端收到了與上一周期重復(fù)的報(bào)文,判定為報(bào)文重復(fù)。
報(bào)文丟失:根據(jù)應(yīng)用層需求,接收端可以允許一定時間范圍內(nèi)報(bào)文的丟失,但超過閾值時間后接收端仍未能收到最新報(bào)文,判定為報(bào)文丟失。
報(bào)文插入:接收端在接收兩包正確報(bào)文中間,收到了一條來源于其他發(fā)送方合法格式的報(bào)文,判定為報(bào)文插入。
報(bào)文次序混亂:在通信時接收端在接收兩包報(bào)文時,發(fā)生報(bào)文次序改變情況。若接收端將無法判斷最新接收到報(bào)文的有效性,接收端系統(tǒng)將存在安全風(fēng)險。
報(bào)文錯誤:接收端接收了一包報(bào)文,報(bào)文在傳輸時發(fā)生內(nèi)部數(shù)據(jù)被意外改變,判定為報(bào)文錯誤。
報(bào)文傳輸超時:接收端收到的最新報(bào)文超過了可以容忍的時間閾值,判定為報(bào)文傳輸超時。
序列號:在通信雙方交互的每條報(bào)文上增加一個32位的序列號,序列號采用順序編號的方式,用于接收端校驗(yàn)發(fā)送端提供的報(bào)文順序。
時間戳:時間戳是一個32位的線性反饋移位寄存器值,初始值T(0)=SID(本地ID號), 按系統(tǒng)周期左移32位,并使用固定多項(xiàng)式作附加干擾輸入。時間戳與序列號同步遞增,用于安全校驗(yàn)通道值的計(jì)算。
超時:發(fā)送端生成報(bào)文時添加時序有效值,接收端與上一條正確接收的報(bào)文進(jìn)行時序有效值的校驗(yàn),判斷此條報(bào)文是否具有時效性。
源標(biāo)識:通信發(fā)送端和接收端雙方分別存在唯一的32位長ID號作為源地址和目的地址,并在每條報(bào)文上增加地址標(biāo)識,用于告知此條報(bào)文的來源及去向。接收端校驗(yàn)此條報(bào)文的源地址和目的地址的合法性。
反饋報(bào)文:若接收端校驗(yàn)接收的最新報(bào)文的時序有效值發(fā)生了非預(yù)期內(nèi)的增量,則接收端發(fā)起時序校正請求,發(fā)送端響應(yīng)時序校正進(jìn)行回復(fù)。接收端判斷發(fā)送端的時序校驗(yàn)回復(fù)報(bào)文有效后,接收端更新時序有效值,再次開始正常通信。
雙重校驗(yàn):使用兩個獨(dú)立通道,各自進(jìn)行獨(dú)立計(jì)算安全校驗(yàn)通道值,來保證報(bào)文內(nèi)容的正確性。兩個通道分別采用兩個不同的本地ID號,不同生成多項(xiàng)式生成的時間戳,不同生成多項(xiàng)式生成的32位CRC,不同的固定校驗(yàn)值進(jìn)行計(jì)算,最終得到兩個不同的安全校驗(yàn)通道值,隨同安全數(shù)據(jù)一并發(fā)送。
為核對RSSP-I通信信息,以往的測試環(huán)境都是搭建兩套使用了相同版本軟件、配置不同數(shù)據(jù)的系統(tǒng)進(jìn)行測試,具有操作不便,觀察困難等缺點(diǎn)。為解決以上問題,需要對測試平臺擴(kuò)展,主要是研制相應(yīng)的接口模擬軟件,通過接口模擬軟件測試RSSP-I通信信息的正確性。測試環(huán)境框架如圖1所示。
左側(cè)方框?yàn)榧扔械臏y試試驗(yàn)平臺,右側(cè)方框?yàn)樵黾拥慕涌谀M軟件,用于核對RSSP-I通信信息有效性。陪測系統(tǒng)和接口模擬軟件根據(jù)不同測試場景選擇使用。
被測系統(tǒng)搭配的測試環(huán)境應(yīng)為陪測系統(tǒng)(雙系通信)或仿真機(jī)(PC機(jī)),兩者之間使用網(wǎng)線連接。接口模擬軟件運(yùn)行在通用的 PC 機(jī)上,為測試時方便操作和觀察,接口模擬軟件顯示界面宜設(shè)計(jì)為分屏幕顯示。
被測系統(tǒng)應(yīng)能與接口模擬軟件建立通信。在功能方面:1)接口模擬軟件人機(jī)界面應(yīng)實(shí)時顯示接口接收和發(fā)送報(bào)文信息,以及通信狀態(tài)。2)接口模擬軟件應(yīng)能初步解析相應(yīng)報(bào)文信息內(nèi)容,并在人機(jī)界面實(shí)時顯示。3)接口模擬軟件應(yīng)可改變發(fā)送給被測系統(tǒng)報(bào)文通信信息內(nèi)容。4)接口模擬軟件應(yīng)可向被測系統(tǒng)不同通信端口發(fā)送相應(yīng)報(bào)文通信信息。
RSSP-I通信協(xié)議測試是一種功能測試。從測試人員的角度看,被測對象是RSSP-I通信協(xié)議軟件,是一個控制系統(tǒng)的一部分,而整個控制系統(tǒng)內(nèi)部的實(shí)現(xiàn)邏輯是未知的,已知的只有控制系統(tǒng)軟件依據(jù)的RSSP-I通信協(xié)議,實(shí)現(xiàn)了在一定的輸入條件下所應(yīng)該具備的動作和行為,因此RSSP-I通信協(xié)議測試采用黑盒測試的方式進(jìn)行,通過控制輸入、檢查輸出的方法來判斷軟件協(xié)議實(shí)現(xiàn)是否與協(xié)議標(biāo)準(zhǔn)相一致,所有的威脅情形已通過相應(yīng)的技術(shù)手段進(jìn)行了防御。
使用接口模擬軟件監(jiān)測網(wǎng)絡(luò)中的網(wǎng)絡(luò)通信數(shù)據(jù),驗(yàn)證RSD、SSE、SSR報(bào)文格式正確性。被測系統(tǒng)和接口模擬軟件正常通信后開始測試。1)被測系統(tǒng)向接口模擬軟件發(fā)送RSD報(bào)文,網(wǎng)絡(luò)中的RSD報(bào)文包格式應(yīng)正確,接口模擬軟件解析校驗(yàn)通過;2)接口模擬軟件向被測系統(tǒng)發(fā)送RSD報(bào)文,網(wǎng)絡(luò)中的RSD報(bào)文包格式應(yīng)正確,被測系統(tǒng)解析校驗(yàn)通過;3)接口模擬軟件重啟,被測系統(tǒng)向接口模擬軟件發(fā)送SSE報(bào)文,網(wǎng)絡(luò)中的SSE報(bào)文包格式應(yīng)正確;SSE報(bào)文接口模擬軟件解析校驗(yàn)通過,接口模擬軟件向接收端發(fā)送SSR報(bào)文,網(wǎng)絡(luò)中的SSR報(bào)文包格式應(yīng)正確,SSR報(bào)文被測系統(tǒng)解析校驗(yàn)通過,被測系統(tǒng)校時完成,被測系統(tǒng)和接口模擬軟件恢復(fù)正常通信,互相發(fā)送RSD報(bào)文。
被測系統(tǒng)和接口模擬軟件正常通信后開始測試,接口模擬軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號變化,驗(yàn)證被測系統(tǒng)觸發(fā)時序校正的邏輯可以正確執(zhí)行。1)接口模擬軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號大于上一包報(bào)文序列號且差值小于設(shè)置的序列容忍差值,被測系統(tǒng)解析校驗(yàn)通過,不觸發(fā)時序校正;2)接口模擬軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號大于上一包報(bào)文序列號且差值大于設(shè)置的序列容忍差值,被測系統(tǒng)解析校驗(yàn)不通過,觸發(fā)時序校正;3)模擬接口軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號與上一包報(bào)文序列號一致,被測系統(tǒng)解析校驗(yàn)不通過,觸發(fā)時序校正;4)模擬接口軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號小于上一包報(bào)文序列號,被測系統(tǒng)解析校驗(yàn)不通過,觸發(fā)時序校正。
使用兩套真實(shí)系統(tǒng)測試,模擬發(fā)送端某一系向接收端某一系發(fā)送失效,驗(yàn)證接收端和發(fā)送端冗余設(shè)備通信邏輯可以正確執(zhí)行。1)陪測系統(tǒng)主系發(fā)送的RSD報(bào)文序列號失效,被測系統(tǒng)雙系向陪測系統(tǒng)主系發(fā)送SSE報(bào)文,陪測系統(tǒng)主系向被測系統(tǒng)雙系發(fā)送SSR報(bào)文;2)陪測系統(tǒng)備系發(fā)送的RSD報(bào)文序列號失效,被測系統(tǒng)雙系不校驗(yàn),直接拋棄,不觸發(fā)時序校正;3)被測系統(tǒng)主系發(fā)送的RSD報(bào)文序列號失效,設(shè)置僅陪測系統(tǒng)主系向被測系統(tǒng)主系發(fā)送SSE報(bào)文,應(yīng)僅被測系統(tǒng)主系向陪測系統(tǒng)主系發(fā)送SSR報(bào)文;4)被測系統(tǒng)主系發(fā)送的RSD報(bào)文序列號失效,設(shè)置僅陪測系統(tǒng)備系向陪測系統(tǒng)主系發(fā)送SSE報(bào)文,應(yīng)僅被測系統(tǒng)主系向接收端備系發(fā)送SSR報(bào)文。
接口模擬軟件向被測系統(tǒng)發(fā)送RSD報(bào)文序列號錯誤,觸發(fā)時序校正邏輯,驗(yàn)證時序校正過程可以正常執(zhí)行。1)被測系統(tǒng)觸發(fā)時序校正發(fā)送SSE報(bào)文后,被測系統(tǒng)收到的SSR報(bào)文小于被測系統(tǒng)的等待計(jì)時,并通過報(bào)文校驗(yàn),接收端更新時序有效值;2)被測系統(tǒng)觸發(fā)時序校正發(fā)送SSE報(bào)文后,被測系統(tǒng)收到的SSR報(bào)文大于被測系統(tǒng)的等待計(jì)時,不更新時序有效值,被測系統(tǒng)重新發(fā)送SSE報(bào)文,并重新開始進(jìn)行等待計(jì)時。
接口模擬軟件向被測系統(tǒng)發(fā)送報(bào)文的報(bào)文頭或SVC校驗(yàn)錯誤,驗(yàn)證安全校驗(yàn)功能正確。1)被測系統(tǒng)接收的報(bào)文頭任一項(xiàng)錯誤,則丟棄報(bào)文,觸發(fā)時序校正邏輯。報(bào)文頭包含協(xié)議類型、報(bào)文類型、源地址、目的地址。2)被測系統(tǒng)的報(bào)文序列號測試參照報(bào)文時序性測試方法,這里不再贅述。3)被測系統(tǒng)接收的RSD報(bào)文雙SVC通道任一通道值與被測系統(tǒng)根據(jù)報(bào)文內(nèi)容計(jì)算接收到的報(bào)文值不一致,則丟棄報(bào)文,觸發(fā)時序校正邏輯。
作為發(fā)送端時冗余處理測試方法:使用接口模擬軟件監(jiān)測網(wǎng)絡(luò)中的網(wǎng)絡(luò)通信數(shù)據(jù),驗(yàn)證被測系統(tǒng)主系所有通道的RSD、SSE、SSR報(bào)文內(nèi)容相同,備系所有通道的RSD、SSE報(bào)文內(nèi)容相同。
作為接收端時冗余處理測試方法: 被測系統(tǒng)和接口模擬軟件正常通信后開始測試,接口模擬軟件向被測系統(tǒng)發(fā)送RSD、SSE、SSR報(bào)文的報(bào)文尾錯誤,則丟棄報(bào)文。若是RSD報(bào)文,還應(yīng)觸發(fā)時序校正邏輯。報(bào)尾是根據(jù)報(bào)文頭、安全校驗(yàn)域、用戶數(shù)據(jù)包生成的16位CRC校驗(yàn)值。
在所有測試中,數(shù)據(jù)一直在發(fā)送端和接收端之間進(jìn)行雙向傳輸,且在發(fā)送端冗余處理測試和接收端冗余處理測試中驗(yàn)證了軟件冗余處理方式,故不再贅述。
本文闡述了對RSSP-I通信協(xié)議測試方法的研究與實(shí)施,對有效提高RSSP-I通信協(xié)議測試效率有指導(dǎo)意義。目前,該測試方法和模擬工具已應(yīng)用于海外聯(lián)鎖的科研項(xiàng)目中,驗(yàn)證了項(xiàng)目產(chǎn)品RSSP-I相關(guān)通信功能的實(shí)現(xiàn),完善了測試工具和測試內(nèi)容,為后面的項(xiàng)目做積累,有效地減少案例重復(fù)設(shè)計(jì),節(jié)約測試成本。未來RSSP-I通信協(xié)議仍將廣泛使用在國內(nèi)軌道交通的各個系統(tǒng)間,針對RSSP-I通信協(xié)議測試內(nèi)容和測試方法的研究,對驗(yàn)證安全通信接口信息正確性將會發(fā)揮重要作用。