馮 松(北京經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院,河北 廊坊 065202)
?
安全通信協(xié)議的設(shè)計與實現(xiàn)
馮松
(北京經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院,河北廊坊065202)
摘要:本文研究的主要內(nèi)容是構(gòu)建基于三模冗余仿真系統(tǒng)的安全通信接口,通過冗余技術(shù)和安全通信協(xié)議的融合,實現(xiàn)對RSSP-II安全通信協(xié)議的仿真,對RSSP-II協(xié)議的通信過程以及系統(tǒng)故障進(jìn)行觀察,對研究安全系統(tǒng)和安全通信有重要意義。為實現(xiàn)安全通信接口,本文首先分析了安全通信協(xié)議和冗余技術(shù)。然后介紹了安全通信協(xié)議使用的工作原理及關(guān)鍵技術(shù),安全通信協(xié)議的安全防護(hù)流程,以及安全通信協(xié)議使用的相關(guān)算法等。接著以RSSP-II安全通信協(xié)議為基礎(chǔ),結(jié)合三模冗余技術(shù),設(shè)計了安全通信接口的架構(gòu)和各模塊的功能。然后以VC++6.0為開發(fā)平臺,實現(xiàn)了安全通信接口。實驗結(jié)果表明,本文設(shè)計的安全通信接口實現(xiàn)了RSSP-II安全通信協(xié)議,并在冗余系統(tǒng)故障的情況下依然能夠正常工作。
關(guān)鍵詞:RSSP-II;安全通信;三模冗余
(一)信息安全。
信息是一種資源,它的增值性、普遍性、多效用性、共享性和可處理性,使其對于我們有非常重要的意義。信息傳輸?shù)姆绞接性S多,比如分布式數(shù)據(jù)庫、互聯(lián)網(wǎng)和局域計算機(jī)網(wǎng),比如電子郵件、衛(wèi)星電視會議、分組交換式無線、蜂窩式無線及其它傳輸技術(shù)。信息在處理、交換以及存儲的過程中,都存在著泄密或被截收、被竊聽、被竄改和被偽造的可能性。所以,簡單的保密措施已經(jīng)很難保證通信的安全,必須各種保密措施綜合使用,即通過各種手段,實現(xiàn)信源、信號、信息三個重點環(huán)節(jié)的保護(hù),以此達(dá)到信息安全的目的。
(二)RSSP-II協(xié)議。
RSSP-II協(xié)議是歐洲列車控制系統(tǒng)采用的用于地面設(shè)備之間進(jìn)行通信的安全通信協(xié)議,適用于封閉式傳輸系統(tǒng)和開放式傳輸系統(tǒng)。
不同于無線通信接口協(xié)議SUBSET-037基于電路交換,RSSP-II設(shè)計之初是為了有線通信,因此基于分組交換的TCP/IP協(xié)議。由于ERTMS/ETCS標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化和統(tǒng)一化,RSSP-II借用了SUBSET-037中的歐洲無線安全層,又增加了一個SAI(SafeApplication Intermediatesub-layer)安全子層。安全應(yīng)用中間(SAI)層是對歐洲無線通訊安全層的補(bǔ)充。當(dāng)然,RSSP-II也可以用于無線通信的開放式傳輸系統(tǒng)。
(三)冗余技術(shù)。
容錯技術(shù)是提高系統(tǒng)可靠性的一種重要手段。容錯系統(tǒng)就是指在硬件發(fā)生故障或軟件存在錯誤的這種情況下仍然能夠繼續(xù)正確完成指定工作的系統(tǒng)。它利用“冗余”的思想“容忍”系統(tǒng)中的故障,屏蔽故障影響,從而達(dá)到提高系統(tǒng)可靠性的目的。
從冗余的形式上可以把冗余系統(tǒng)分為硬件冗余、軟件冗余、時間冗余和信息冗余。硬件冗余的方法從資源數(shù)量上看,又可以分為雙模冗余、三模冗余甚至N模冗余?,F(xiàn)代系統(tǒng)中常用的冗余手段往往不是單一的一種,而是變形或多種形式的組合。
(一)系統(tǒng)概述。
本安全通信接口是一個安全系統(tǒng),在三模冗余架構(gòu)的基礎(chǔ)上設(shè)計實現(xiàn)RSSP-II安全通信協(xié)議。本系統(tǒng)的目標(biāo)是將提高安全性的冗余技術(shù)和保證信息安全的安全通信技術(shù)結(jié)合在一起,因此,采用最基礎(chǔ)的三取二結(jié)構(gòu),完成最簡的RSSP-II接口。為對本系統(tǒng)進(jìn)行實驗,在RSSP-II安全通信接口之上,設(shè)計了簡單的應(yīng)用程序,以觸發(fā)通信的建立和斷開。
(二)架構(gòu)設(shè)計。
按照協(xié)議棧層次從上往下,逐層將上層的數(shù)據(jù)封裝起來。應(yīng)用層包作為在SAI安全子層的用戶數(shù)據(jù),增加了一個SAI包頭。SAI包在歐洲無線安全層,增加了一個歐洲無線包頭和MAC后綴;歐洲無線安全層包在適配層增加了一個適配層包頭,最后在通信層面,封裝成TCP/IP包,在兩個通信設(shè)備之間進(jìn)行傳遞。
將設(shè)計劃分為三個層次,分別是冗余層、表決層和通道層。三模冗余在冗余層實現(xiàn),完成三個模塊相同的邏輯功能。表決器在表決層實現(xiàn),完成對三個模塊輸出結(jié)果的表決。安全通信協(xié)議的通信功能在通道層實現(xiàn),完成基礎(chǔ)的TCP/IP通信。
(三)通道層設(shè)計。
ALE(Adaptation&redundancymanagementLayerEntity,適配和冗余管理層實體)層作為適配和冗余管理層,以下簡單稱為適配層,主要功能是維護(hù)多個冗余的TCP/IP邏輯連接,并完成TCP層和歐洲無線安全層之間的適配。
系統(tǒng)接收外部設(shè)備的輸入數(shù)據(jù)時,適配層從多個TCP/IP連接中選取一份有效的數(shù)據(jù)上傳至表決器;系統(tǒng)向外部設(shè)備發(fā)送輸出數(shù)據(jù)時,適配層從多個TCP/IP連接傳送一份相同的數(shù)據(jù)。下圖描述了適配層與多個TCP/IP傳輸通道的關(guān)系。在適配層之上,通信雙方間的連接都是唯一的;在適配層之下,建立了多個TCP/IP邏輯連接,實現(xiàn)了通信通道上的冗余。只要多個TCP/IP邏輯連接的其中一個能夠正常通信,雙方的通信就能保持,據(jù)此來提高通信通道的可用性。
(四)冗余層設(shè)計。
冗余層有三個完全相同的TMR部分。每個TMR部分根據(jù)RSSP-II協(xié)議棧的分層,安全功能模塊再細(xì)分為SAI安全子層和歐洲無線安全層。
(五)表決層設(shè)計。
表決器每周期首先向三個TMR部分發(fā)送自己的周期計數(shù)。若收到適配層的輸入消息,不做任何處理,分別發(fā)送給三個TMR部分。
收到TMR部分的輸出時對其進(jìn)行三取二多數(shù)表決。當(dāng)三個TMR部分都運行時,表決器檢查三個TMR部分的計算結(jié)果是否有兩個以上是一致的,并將其輸出給適配層;若只有兩個TMR部分在運行,表決器檢查這兩個TMR部分的計算結(jié)果是否一致,并將其輸出給適配層;若只有一個TMR部分在運行,表決器不向適配層輸出任何信息。
本文使用VC++6.0在Windows平臺實現(xiàn)三模冗余仿真系統(tǒng)下的安全通信接口。整個仿真系統(tǒng)由TMR、表決器和ALE三個程序組成,在一個統(tǒng)一的仿真系統(tǒng)人機(jī)界面下被調(diào)用。
(一)配置參數(shù)。
仿真系統(tǒng)初始化時,各個程序分別讀取ini配置文件中的配置參數(shù)。
TMR相關(guān)的配置參數(shù),三個TMR部分分別配置:
◆是否啟動標(biāo)識:本TMR部分是否啟動。取值為是或者否,默認(rèn)取值為是。
◆周期計數(shù)參數(shù):本TMR部分的周期計數(shù)與表決器的周期計數(shù)之間的差值。取值為正值,默認(rèn)取值為0。
RSSP-II相關(guān)的配置參數(shù),每個外部設(shè)備分別配置:
◆IP地址和端口號:與某個外部設(shè)備通信時,源和目的IP地址以及端口號。源和目的分別有兩組IP配置參數(shù)。
◆ETCS_ID:與某個外部設(shè)備通信時,自身和對方的ETCS_ID。
◆發(fā)起方/響應(yīng)方:與某個外部設(shè)備通信時,自身作為發(fā)起方還是響應(yīng)方。
◆KMAC:與某個外部設(shè)備通信時的KMAC密鑰。
(二)流程圖。
TMR、表決器和ALE三個程序之間通過套接字進(jìn)行通信。TMR與表決器之間的通信,表決器作為服務(wù)器端,TMR作為客戶端。表決器與ALE之間的通信,表決器作為服務(wù)器端,ALE作為客戶端。
1.TMR。
TMR程序啟動后,創(chuàng)建三個線程,每個線程分別獨立完成一個TMR部分的功能。TMR線程首先創(chuàng)建與表決器之間通信的套接字。若本TMR部分配置為啟動,TMR線程繼續(xù)執(zhí)行循環(huán)功能,否則運行空循環(huán)。在周期循環(huán)中,TMR部分接收從表決器來的信息,包括表決器的周期計數(shù)值和來自適配層的消息。然后依次調(diào)用應(yīng)用層、SAI安全子層、歐洲無線安全層的處理函數(shù),最后將本周期的計算結(jié)果即歐洲無線安全層消息發(fā)送給表決器進(jìn)行表決。
2.表決器。
啟動表決器程序后,首先創(chuàng)建與三個TMR線程通信的套接字,然后創(chuàng)建與ALE程序通信的套接字,接下來執(zhí)行周期循環(huán)功能,每周期自身的周期計數(shù)加一。每周期接收從適配層來的消息,然后向三個TMR線程發(fā)送。不論本周期是否有適配層消息,都向TMR線程發(fā)送自身的周期計數(shù)。然后接收從三個TMR線程來的計算結(jié)果,根據(jù)TMR的實際個數(shù)執(zhí)行表決邏輯,當(dāng)三個TMR部分都運行時,表決器檢查三個TMR部分的計算結(jié)果是否有兩個以上是一致的,并將其輸出給適配層;若只有兩個TMR部分在運行,表決器檢查這兩個TMR部分的計算結(jié)果是否一致,并將其輸出給適配層;若只有一個TMR部分在運行,表決器不向適配層輸出任何信息。
3.ALE。
啟動ALE程序后,首先創(chuàng)建與表決器通信的套接字,然后進(jìn)行周期循環(huán)功能。管理所有配置的外部設(shè)備的適配層連接,接收外部設(shè)備的TCP消息,接收從表決器來的歐洲無線安全層的計算結(jié)果,執(zhí)行適配層的處理,然后向外部設(shè)備發(fā)送TCP消息,并向表決器發(fā)送經(jīng)過適配層處理后的信息。
(一)實驗?zāi)康呐c環(huán)境。
對三模冗余仿真系統(tǒng)安全通信接口的測試包括三大部分,其一是測試單通道環(huán)境下安全通信協(xié)議通信建立的過程是否正確;其二是測試信息在多個通道上傳遞的情況;其三是測試TMR發(fā)生故障的時候,設(shè)備之間能否正常建立通信。
整個環(huán)境包括兩套PC機(jī)和一臺交換機(jī)。每臺PC機(jī)配備有一個獨立的有線網(wǎng)卡,通過交換機(jī)連接到一起。PC機(jī)上運行仿真的冗余系統(tǒng),PC機(jī)的操作系統(tǒng)為Windows,其上安裝VC++6.0和以太網(wǎng)抓包工具。
PC1作為設(shè)備1,PC2作為設(shè)備2。設(shè)備1和設(shè)備2的RSSP-II配置參數(shù)如下:
表4-1 RSSP-II配置參數(shù)
(二)測試過程。
1.單通道正常通信。
設(shè)備1和設(shè)備2均只配置1個有效的IP地址,組一個通信IP地址組,兩個設(shè)備通過這1組IP地址建立一個TCP連接進(jìn)行通信。對于設(shè)備1,配置3個TMR的周期計數(shù)均為表決器計數(shù)+0。對于設(shè)備2,配置TMR3的周期計數(shù)為表決器計數(shù)+1,其他兩個TMR的周期計數(shù)為表決器計數(shù)+0。設(shè)備1是一個正常的三模冗余系統(tǒng),而設(shè)備2由于其中1 個TMR部分故障是一個雙機(jī)比較系統(tǒng)。
在以上配置下,設(shè)備1和設(shè)備2在一條TCP通道上建立安全連接進(jìn)行通信,可以在該TCP通道上獲取安全連接建立的全部TCP消息。
(1)建立1個TCP連接。
TCP連接的建立是一個三次握手的過程。作為發(fā)起方的設(shè)備1啟動TCP連接的建立,從下圖可以清楚的看到設(shè)備1向設(shè)備2發(fā)送TCP連接請求SYN報文,而設(shè)備2向設(shè)備1回復(fù)ACK報文,最后設(shè)備1再向設(shè)備2發(fā)送ACK報文。至此,設(shè)備1和設(shè)備2之間的TCP連接正式建立。
(2)建立安全連接。
安全連接的建立包括9個TCP報文。首先是歐洲無線安全層建立連接的4個交互消息,然后是SAI安全子層建立連接的5個交互消息。
(3)時鐘偏差更新消息。
安全連接建立成功后,每兩分鐘,設(shè)備1/設(shè)備2分別向?qū)Ψ桨l(fā)送空的應(yīng)用消息,收到空應(yīng)用消息的一方回復(fù)空的應(yīng)用消息,發(fā)送方收到應(yīng)答消息后,重新計算設(shè)備之間的時鐘偏差。
2.多通道。
設(shè)備1和設(shè)備2均配置2個有效的IP地址,組成兩個通信IP地址組,兩個設(shè)備通過這兩組IP地址創(chuàng)建兩個TCP連接進(jìn)行通信。對于設(shè)備1,配置3個TMR的周期計數(shù)均為表決器計數(shù)+0。對于設(shè)備2,配置3個TMR的周期計數(shù)均為表決器計數(shù)+0。設(shè)備1和設(shè)備2都是完整的三模冗余系統(tǒng)。
在以上配置下,設(shè)備1和設(shè)備2在兩條TCP通道下建立安全連接進(jìn)行通信,可以在兩個TCP連接上看到設(shè)備間的消息。
3.TMR故障。
設(shè)備1和設(shè)備2均只配置1個有效的IP地址,組一個通信IP地址組,兩個設(shè)備通過這1組IP地址建立一個TCP連接進(jìn)行通信。對于設(shè)備1,配置3個TMR的周期計數(shù)均為表決器計數(shù)+0。對于設(shè)備2,配置TMR1的周期計數(shù)=表決器計數(shù)+0;TMR2的周期計數(shù)=表決器計數(shù)+1;TMR3的周期計數(shù)=表決器計數(shù)+2。設(shè)備2的三個TMR部分的SAI安全子層數(shù)據(jù)包中時間戳信息不一致,表決失敗,無法輸出SAI安全子層的消息。
在以上配置下,設(shè)備1和設(shè)備2可以成功建立無線安全層的連接,但是無法建立SAI安全子層的連接。設(shè)備1發(fā)出OffsetStart后,無法接收到OffsetAnsw1。超時后,設(shè)備1重新建立安全連接。
在本文中,作者對安全通信協(xié)議從協(xié)議功能,報文類型及其應(yīng)用,層次結(jié)構(gòu),通信過程,協(xié)議狀態(tài)機(jī)等角度對協(xié)議進(jìn)行了分析和論證,并結(jié)合三模冗余系統(tǒng)的特點進(jìn)行設(shè)計。最后對設(shè)計進(jìn)行了實現(xiàn),并依據(jù)實現(xiàn)做了相應(yīng)的實驗以證明實現(xiàn)的正確性。不足的是,部分RSSP-II安全通信協(xié)議中的參數(shù)并沒有進(jìn)行配置,而是采用了默認(rèn)取值,期望進(jìn)一步研究參數(shù)值的意義,并在實驗中證明取值的合理性。另外,RSSP-II安全通信協(xié)議中對歐洲無線安全層的密鑰采用了三級管理,本文使用了明文的密鑰,后期希望對密鑰管理繼續(xù)進(jìn)行分析,進(jìn)一步保證通信的安全。
中圖分類號:TN911
文獻(xiàn)標(biāo)識碼:A
文章編號:1671-864X(2016)07-0278-02