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