馮 松(北京經濟技術職業學院,河北 廊坊 065202)
?
安全通信協議的設計與實現
馮松
(北京經濟技術職業學院,河北廊坊065202)
摘要:本文研究的主要內容是構建基于三模冗余仿真系統的安全通信接口,通過冗余技術和安全通信協議的融合,實現對RSSP-II安全通信協議的仿真,對RSSP-II協議的通信過程以及系統故障進行觀察,對研究安全系統和安全通信有重要意義。為實現安全通信接口,本文首先分析了安全通信協議和冗余技術。然后介紹了安全通信協議使用的工作原理及關鍵技術,安全通信協議的安全防護流程,以及安全通信協議使用的相關算法等。接著以RSSP-II安全通信協議為基礎,結合三模冗余技術,設計了安全通信接口的架構和各模塊的功能。然后以VC++6.0為開發平臺,實現了安全通信接口。實驗結果表明,本文設計的安全通信接口實現了RSSP-II安全通信協議,并在冗余系統故障的情況下依然能夠正常工作。
關鍵詞:RSSP-II;安全通信;三模冗余
(一)信息安全。
信息是一種資源,它的增值性、普遍性、多效用性、共享性和可處理性,使其對于我們有非常重要的意義。信息傳輸的方式有許多,比如分布式數據庫、互聯網和局域計算機網,比如電子郵件、衛星電視會議、分組交換式無線、蜂窩式無線及其它傳輸技術。信息在處理、交換以及存儲的過程中,都存在著泄密或被截收、被竊聽、被竄改和被偽造的可能性。所以,簡單的保密措施已經很難保證通信的安全,必須各種保密措施綜合使用,即通過各種手段,實現信源、信號、信息三個重點環節的保護,以此達到信息安全的目的。
(二)RSSP-II協議。
RSSP-II協議是歐洲列車控制系統采用的用于地面設備之間進行通信的安全通信協議,適用于封閉式傳輸系統和開放式傳輸系統。
不同于無線通信接口協議SUBSET-037基于電路交換,RSSP-II設計之初是為了有線通信,因此基于分組交換的TCP/IP協議。由于ERTMS/ETCS標準的標準化和統一化,RSSP-II借用了SUBSET-037中的歐洲無線安全層,又增加了一個SAI(SafeApplication Intermediatesub-layer)安全子層。安全應用中間(SAI)層是對歐洲無線通訊安全層的補充。當然,RSSP-II也可以用于無線通信的開放式傳輸系統。
(三)冗余技術。
容錯技術是提高系統可靠性的一種重要手段。容錯系統就是指在硬件發生故障或軟件存在錯誤的這種情況下仍然能夠繼續正確完成指定工作的系統。它利用“冗余”的思想“容忍”系統中的故障,屏蔽故障影響,從而達到提高系統可靠性的目的。
從冗余的形式上可以把冗余系統分為硬件冗余、軟件冗余、時間冗余和信息冗余。硬件冗余的方法從資源數量上看,又可以分為雙模冗余、三模冗余甚至N模冗余。現代系統中常用的冗余手段往往不是單一的一種,而是變形或多種形式的組合。
(一)系統概述。
本安全通信接口是一個安全系統,在三模冗余架構的基礎上設計實現RSSP-II安全通信協議。本系統的目標是將提高安全性的冗余技術和保證信息安全的安全通信技術結合在一起,因此,采用最基礎的三取二結構,完成最簡的RSSP-II接口。為對本系統進行實驗,在RSSP-II安全通信接口之上,設計了簡單的應用程序,以觸發通信的建立和斷開。
(二)架構設計。
按照協議棧層次從上往下,逐層將上層的數據封裝起來。應用層包作為在SAI安全子層的用戶數據,增加了一個SAI包頭。SAI包在歐洲無線安全層,增加了一個歐洲無線包頭和MAC后綴;歐洲無線安全層包在適配層增加了一個適配層包頭,最后在通信層面,封裝成TCP/IP包,在兩個通信設備之間進行傳遞。
將設計劃分為三個層次,分別是冗余層、表決層和通道層。三模冗余在冗余層實現,完成三個模塊相同的邏輯功能。表決器在表決層實現,完成對三個模塊輸出結果的表決。安全通信協議的通信功能在通道層實現,完成基礎的TCP/IP通信。
(三)通道層設計。
ALE(Adaptation&redundancymanagementLayerEntity,適配和冗余管理層實體)層作為適配和冗余管理層,以下簡單稱為適配層,主要功能是維護多個冗余的TCP/IP邏輯連接,并完成TCP層和歐洲無線安全層之間的適配。
系統接收外部設備的輸入數據時,適配層從多個TCP/IP連接中選取一份有效的數據上傳至表決器;系統向外部設備發送輸出數據時,適配層從多個TCP/IP連接傳送一份相同的數據。下圖描述了適配層與多個TCP/IP傳輸通道的關系。在適配層之上,通信雙方間的連接都是唯一的;在適配層之下,建立了多個TCP/IP邏輯連接,實現了通信通道上的冗余。只要多個TCP/IP邏輯連接的其中一個能夠正常通信,雙方的通信就能保持,據此來提高通信通道的可用性。
(四)冗余層設計。
冗余層有三個完全相同的TMR部分。每個TMR部分根據RSSP-II協議棧的分層,安全功能模塊再細分為SAI安全子層和歐洲無線安全層。
(五)表決層設計。
表決器每周期首先向三個TMR部分發送自己的周期計數。若收到適配層的輸入消息,不做任何處理,分別發送給三個TMR部分。
收到TMR部分的輸出時對其進行三取二多數表決。當三個TMR部分都運行時,表決器檢查三個TMR部分的計算結果是否有兩個以上是一致的,并將其輸出給適配層;若只有兩個TMR部分在運行,表決器檢查這兩個TMR部分的計算結果是否一致,并將其輸出給適配層;若只有一個TMR部分在運行,表決器不向適配層輸出任何信息。
本文使用VC++6.0在Windows平臺實現三模冗余仿真系統下的安全通信接口。整個仿真系統由TMR、表決器和ALE三個程序組成,在一個統一的仿真系統人機界面下被調用。
(一)配置參數。
仿真系統初始化時,各個程序分別讀取ini配置文件中的配置參數。
TMR相關的配置參數,三個TMR部分分別配置:
◆是否啟動標識:本TMR部分是否啟動。取值為是或者否,默認取值為是。
◆周期計數參數:本TMR部分的周期計數與表決器的周期計數之間的差值。取值為正值,默認取值為0。
RSSP-II相關的配置參數,每個外部設備分別配置:
◆IP地址和端口號:與某個外部設備通信時,源和目的IP地址以及端口號。源和目的分別有兩組IP配置參數。
◆ETCS_ID:與某個外部設備通信時,自身和對方的ETCS_ID。
◆發起方/響應方:與某個外部設備通信時,自身作為發起方還是響應方。
◆KMAC:與某個外部設備通信時的KMAC密鑰。
(二)流程圖。
TMR、表決器和ALE三個程序之間通過套接字進行通信。TMR與表決器之間的通信,表決器作為服務器端,TMR作為客戶端。表決器與ALE之間的通信,表決器作為服務器端,ALE作為客戶端。
1.TMR。
TMR程序啟動后,創建三個線程,每個線程分別獨立完成一個TMR部分的功能。TMR線程首先創建與表決器之間通信的套接字。若本TMR部分配置為啟動,TMR線程繼續執行循環功能,否則運行空循環。在周期循環中,TMR部分接收從表決器來的信息,包括表決器的周期計數值和來自適配層的消息。然后依次調用應用層、SAI安全子層、歐洲無線安全層的處理函數,最后將本周期的計算結果即歐洲無線安全層消息發送給表決器進行表決。
2.表決器。
啟動表決器程序后,首先創建與三個TMR線程通信的套接字,然后創建與ALE程序通信的套接字,接下來執行周期循環功能,每周期自身的周期計數加一。每周期接收從適配層來的消息,然后向三個TMR線程發送。不論本周期是否有適配層消息,都向TMR線程發送自身的周期計數。然后接收從三個TMR線程來的計算結果,根據TMR的實際個數執行表決邏輯,當三個TMR部分都運行時,表決器檢查三個TMR部分的計算結果是否有兩個以上是一致的,并將其輸出給適配層;若只有兩個TMR部分在運行,表決器檢查這兩個TMR部分的計算結果是否一致,并將其輸出給適配層;若只有一個TMR部分在運行,表決器不向適配層輸出任何信息。
3.ALE。
啟動ALE程序后,首先創建與表決器通信的套接字,然后進行周期循環功能。管理所有配置的外部設備的適配層連接,接收外部設備的TCP消息,接收從表決器來的歐洲無線安全層的計算結果,執行適配層的處理,然后向外部設備發送TCP消息,并向表決器發送經過適配層處理后的信息。
(一)實驗目的與環境。
對三模冗余仿真系統安全通信接口的測試包括三大部分,其一是測試單通道環境下安全通信協議通信建立的過程是否正確;其二是測試信息在多個通道上傳遞的情況;其三是測試TMR發生故障的時候,設備之間能否正常建立通信。
整個環境包括兩套PC機和一臺交換機。每臺PC機配備有一個獨立的有線網卡,通過交換機連接到一起。PC機上運行仿真的冗余系統,PC機的操作系統為Windows,其上安裝VC++6.0和以太網抓包工具。
PC1作為設備1,PC2作為設備2。設備1和設備2的RSSP-II配置參數如下:

表4-1 RSSP-II配置參數
(二)測試過程。
1.單通道正常通信。
設備1和設備2均只配置1個有效的IP地址,組一個通信IP地址組,兩個設備通過這1組IP地址建立一個TCP連接進行通信。對于設備1,配置3個TMR的周期計數均為表決器計數+0。對于設備2,配置TMR3的周期計數為表決器計數+1,其他兩個TMR的周期計數為表決器計數+0。設備1是一個正常的三模冗余系統,而設備2由于其中1 個TMR部分故障是一個雙機比較系統。
在以上配置下,設備1和設備2在一條TCP通道上建立安全連接進行通信,可以在該TCP通道上獲取安全連接建立的全部TCP消息。
(1)建立1個TCP連接。
TCP連接的建立是一個三次握手的過程。作為發起方的設備1啟動TCP連接的建立,從下圖可以清楚的看到設備1向設備2發送TCP連接請求SYN報文,而設備2向設備1回復ACK報文,最后設備1再向設備2發送ACK報文。至此,設備1和設備2之間的TCP連接正式建立。
(2)建立安全連接。
安全連接的建立包括9個TCP報文。首先是歐洲無線安全層建立連接的4個交互消息,然后是SAI安全子層建立連接的5個交互消息。
(3)時鐘偏差更新消息。
安全連接建立成功后,每兩分鐘,設備1/設備2分別向對方發送空的應用消息,收到空應用消息的一方回復空的應用消息,發送方收到應答消息后,重新計算設備之間的時鐘偏差。
2.多通道。
設備1和設備2均配置2個有效的IP地址,組成兩個通信IP地址組,兩個設備通過這兩組IP地址創建兩個TCP連接進行通信。對于設備1,配置3個TMR的周期計數均為表決器計數+0。對于設備2,配置3個TMR的周期計數均為表決器計數+0。設備1和設備2都是完整的三模冗余系統。
在以上配置下,設備1和設備2在兩條TCP通道下建立安全連接進行通信,可以在兩個TCP連接上看到設備間的消息。
3.TMR故障。
設備1和設備2均只配置1個有效的IP地址,組一個通信IP地址組,兩個設備通過這1組IP地址建立一個TCP連接進行通信。對于設備1,配置3個TMR的周期計數均為表決器計數+0。對于設備2,配置TMR1的周期計數=表決器計數+0;TMR2的周期計數=表決器計數+1;TMR3的周期計數=表決器計數+2。設備2的三個TMR部分的SAI安全子層數據包中時間戳信息不一致,表決失敗,無法輸出SAI安全子層的消息。
在以上配置下,設備1和設備2可以成功建立無線安全層的連接,但是無法建立SAI安全子層的連接。設備1發出OffsetStart后,無法接收到OffsetAnsw1。超時后,設備1重新建立安全連接。
在本文中,作者對安全通信協議從協議功能,報文類型及其應用,層次結構,通信過程,協議狀態機等角度對協議進行了分析和論證,并結合三模冗余系統的特點進行設計。最后對設計進行了實現,并依據實現做了相應的實驗以證明實現的正確性。不足的是,部分RSSP-II安全通信協議中的參數并沒有進行配置,而是采用了默認取值,期望進一步研究參數值的意義,并在實驗中證明取值的合理性。另外,RSSP-II安全通信協議中對歐洲無線安全層的密鑰采用了三級管理,本文使用了明文的密鑰,后期希望對密鑰管理繼續進行分析,進一步保證通信的安全。
中圖分類號:TN911
文獻標識碼:A
文章編號:1671-864X(2016)07-0278-02