李秀峰 李 勝 梁妙元 馬瑋駿 張 欣
1(云南電力調(diào)度控制中心 云南 昆明 650011) 2(南京金水尚陽信息技術有限公司 江蘇 南京 210046) 3(南京津碼智能科技有限公司 江蘇 南京 210046)
由于電網(wǎng)數(shù)據(jù)的重要性和機密性,電網(wǎng)公司和發(fā)電企業(yè)必須按照國家信息安全等級保護制度的相關要求,采取相應的技術手段來確保電網(wǎng)數(shù)據(jù)采集和匯聚過程中數(shù)據(jù)能夠安全準確地送達到接收端。為此,需要將信息安全納入電網(wǎng)生產(chǎn)安全體系,嚴格遵循“雙網(wǎng)雙機、分區(qū)分域、等級防護、多層防御”的安全策略來建立完善的信息安全機制。例如通過動態(tài)密鑰的方式對數(shù)據(jù)進行加密傳輸[1-2]、設計新的數(shù)據(jù)傳輸協(xié)議上報信息[3]、利用雙網(wǎng)互備和隧道傳輸進行安全保證[4]等。
根據(jù)信息安全等級的劃分以及具體電網(wǎng)信息系統(tǒng)所承載的數(shù)據(jù)重要性程度,現(xiàn)有的電網(wǎng)信息系統(tǒng)可以分為兩類:一類是電網(wǎng)實時控制業(yè)務系統(tǒng);另一類是電網(wǎng)非控制業(yè)務系統(tǒng)或管理信息系統(tǒng)。相對來說,第一類系統(tǒng)對信息的采集傳輸要求和對故障可容忍時長都更為嚴苛,但是對于部分第二類系統(tǒng)來說,其數(shù)據(jù)關系到整個電網(wǎng)公司和發(fā)電企業(yè)的發(fā)電計劃,也需要采取必要的技術來確保數(shù)據(jù)采集和傳輸過程中的安全性和準確性。
以云南電網(wǎng)為例,由于水資源比較豐富,云南電網(wǎng)公司在各處建立了眾多小型水電站(簡稱小水電),然而這些小水電很多都地處偏遠,沒有條件建立專網(wǎng)與公司內(nèi)網(wǎng)進行聯(lián)通,因此不得不依靠互聯(lián)網(wǎng)甚至是移動網(wǎng)絡、LoRa[5-6]、窄帶物聯(lián)網(wǎng)[7-8]、北斗[9]、Wi-Fi[10]等技術進行傳輸,然而由于網(wǎng)絡安全相關規(guī)定明確要求禁止跨區(qū)互聯(lián),小水電數(shù)據(jù)無法直接通過互聯(lián)網(wǎng)(即安全IV區(qū))匯入到小水電管理系統(tǒng)數(shù)據(jù)庫所在的安全III區(qū)中。此外,傳統(tǒng)的IEC60870-5-104(簡稱IEC104)[11]和DNP3[12]等規(guī)約也不適合偏遠水電站進行數(shù)據(jù)上報,因此需要研究和設計切實可行的數(shù)據(jù)采集傳輸方法,既滿足網(wǎng)絡安全防護要求,又符合云南電網(wǎng)小水電管理的實際情況,確保數(shù)據(jù)能夠可靠地上傳到管理系統(tǒng)數(shù)據(jù)庫中。
為了滿足云南電網(wǎng)小水電管理系統(tǒng)中數(shù)據(jù)采集傳輸過程的安全性和及時性要求,必須采取多種手段來對小水電數(shù)據(jù)進行安全傳輸。為此,采用了基于多通道的水電數(shù)據(jù)安全采集傳輸機制來確保數(shù)據(jù)能順利送至管理系統(tǒng)數(shù)據(jù)庫中。該機制的總體設計思路如下:
(1) 對于通過電網(wǎng)公司內(nèi)網(wǎng)采集的小水電遙測數(shù)據(jù),通過IEC60870-5-104協(xié)議來對小水電數(shù)據(jù)進行傳輸。由于內(nèi)網(wǎng)可以依托較為可靠的有線網(wǎng)絡進行傳輸,因此利用傳統(tǒng)的IEC104規(guī)約提供的電網(wǎng)數(shù)據(jù)傳輸機制,即可實現(xiàn)數(shù)據(jù)的可靠傳輸,同時為了進一步保證數(shù)據(jù)在長距離傳輸過程中的機密性,采用縱向加密設備在收發(fā)兩端的主站和子站提供安全信道,從而確保數(shù)據(jù)在內(nèi)網(wǎng)傳輸?shù)陌踩浴?/p>
(2) 對于無法連通電網(wǎng)公司內(nèi)網(wǎng)的小水電數(shù)據(jù),采用另外兩種方式來作為備份:① 基于短信的數(shù)據(jù)上報方法,采用離線的短信發(fā)送工具,電廠用戶本地安裝后,通過該工具生成固定格式的短信,短信經(jīng)由信息中心的短信網(wǎng)關發(fā)送至小電系統(tǒng)的通信服務器,從而利用短信網(wǎng)關來滿足最嚴格的網(wǎng)絡安全防護要求;② 基于App的數(shù)據(jù)上報方法,開發(fā)相應的手機App,部署在信息中心的移動云網(wǎng)上,電廠用戶在移動云網(wǎng)上下載小電系統(tǒng)App,并通過移動云網(wǎng)身份認證、小電系統(tǒng)身份認證兩道認證程序登錄小電系統(tǒng)并上報數(shù)據(jù)。
(3) 在采用短信和App兩種方式上報時,小水電數(shù)據(jù)采用電站側多通道數(shù)據(jù)上報優(yōu)化控制機制及其相關通信協(xié)議,通過手機后臺對App移動云網(wǎng)接入和短信性能的測試,自動選取最佳方式,根據(jù)可靠數(shù)據(jù)傳輸機制形成相應格式的報文,將數(shù)據(jù)送至安全IV區(qū)的數(shù)據(jù)接收服務器。
(4) 數(shù)據(jù)接收服務器通過隔離設備將數(shù)據(jù)從安全IV單向?qū)胫涟踩獻II區(qū)的數(shù)據(jù)匯集平臺后,與經(jīng)內(nèi)網(wǎng)傳輸?shù)男∷姅?shù)據(jù)一道通過數(shù)據(jù)匯總模塊進行質(zhì)量控制和歸并后,存儲到小水電管理數(shù)據(jù)庫中。
整個小水電數(shù)據(jù)采集傳輸與匯集的工作流程如圖1所示。
圖1 MSLR算法的鏈式結構
在圖1中,連接到內(nèi)網(wǎng)的小水電數(shù)據(jù)首先通過防火墻送到就近的IEC104子站,完成數(shù)據(jù)從安全I區(qū)至安全II區(qū),然后利用縱向加密設備的數(shù)據(jù)加密處理后,通過調(diào)度數(shù)據(jù)網(wǎng)將數(shù)據(jù)傳輸?shù)竭h端的IEC104主站進行數(shù)據(jù)緩存和同步,最后利用單向隔離設備將數(shù)據(jù)從安全II區(qū)轉移到安全III區(qū)的小水電管理數(shù)據(jù)庫中;通過公用網(wǎng)絡信道進行傳輸?shù)臄?shù)據(jù)采用相關技術將數(shù)據(jù)安全可靠地上報給安全IV區(qū)的接收服務器,服務器通過單向隔離設備將數(shù)據(jù)傳輸?shù)桨踩獻II區(qū),最終形成整個電網(wǎng)的運行與計劃數(shù)據(jù)資源池。
為了實現(xiàn)數(shù)據(jù)上報控制機制中的安全可靠數(shù)據(jù)傳輸,設計了相應的通信控制協(xié)議來確保數(shù)據(jù)能夠正確有序送至接收端,并確保傳輸過程中數(shù)據(jù)的機密性和完整性,協(xié)議格式如圖2所示。
圖2 通信控制協(xié)議格式
整個通信控制協(xié)議格式的設計一方面借鑒了經(jīng)典TCP可靠數(shù)據(jù)傳輸機制[13]中所采用的發(fā)送號、接收號等內(nèi)容,來確保小水電數(shù)據(jù)能夠準確上報至管理數(shù)據(jù)庫中,另一方面參考了電網(wǎng)數(shù)據(jù)傳輸協(xié)議IEC104來確保傳輸?shù)臄?shù)據(jù)能夠被正確解析。圖2中各個字段的作用和說明如下:
(1) 協(xié)議起始符:用于標識小水電傳輸報文的開始部分,長度為1個字節(jié),在IEC104中采用68H來進行標識,為了與其加以區(qū)分,本協(xié)議采樣的起始符為69H。
(2) 啟動標識:用于收發(fā)雙方開始建立連接的過程,長度為2個比特,其中:第一個比特為1表示啟動生效,用于發(fā)起連接;第二個比特為1表示啟動確認,用于接受連接。
(3) 停止標識:用于收發(fā)雙方拆除連接的過程,長度為2個比特,其中:第一個比特為1表示停止生效,用于發(fā)起拆除連接請求;第二個比特為1表示停止確認,用于接受拆除連接請求。
(4) 類型標識:用于標識報文的類型,長度為2個比特,該值為00表示為數(shù)據(jù)傳輸幀,傳輸?shù)臄?shù)據(jù)為實際有效數(shù)據(jù),該值為01表示為控制報文幀,用于收發(fā)雙方啟動或者停止連接,該值為11表示為測試幀,用于收發(fā)雙方對信道進行測試。
(5) 信道標識:用于標識數(shù)據(jù)傳輸所采用的信道類型,長度為2個比特,該值為00表示采用App形式進行傳輸,該值為01表示采用短信形式進行傳輸,通過對信道的標識,接收服務器可以感知各個站點的聯(lián)網(wǎng)情況,并對網(wǎng)絡問題進行診斷。
(6) 發(fā)送號:用于發(fā)送方標識所發(fā)送數(shù)據(jù)的序號,長度為1個字節(jié),與TCP可靠傳輸所不同的是,序號的值是對報文數(shù)目進行累加,而非對報文字節(jié)數(shù)進行累加。
(7) 接收號:用于接收方對接收到的數(shù)據(jù)進行確認的序號,長度為1個字節(jié),采用累積確認方式對接收到的報文數(shù)進行累計,即如果接收到的發(fā)送號為N,則返回的接收號應為N+1。
(8) 站點標識:用于接收方對發(fā)送方身份進行確認,長度為2個字節(jié),結合前期通過其他方式下發(fā)的非對稱密鑰可以實現(xiàn)身份鑒別。
(9) 長度:用于對后續(xù)數(shù)據(jù)部分的長度進行標識,長度為2個字節(jié),從而協(xié)助程序?qū)?shù)據(jù)部分內(nèi)容進行解析。
(10) CRC16校驗值:利用CRC技術[14]對整個報文的內(nèi)容進行校驗,長度為2個字節(jié),從而確保接收到的報文內(nèi)容在傳輸過程中不會出現(xiàn)錯誤。
(11) 加密數(shù)據(jù):用于承載需要傳輸?shù)募用軘?shù)據(jù),長度可變,最長為65 535字節(jié)。在連接建立階段,該字段用于傳輸用于對數(shù)據(jù)進行加密的RSA對稱密鑰[15],且該密鑰采用私鑰進行加密,接收方可以通過發(fā)送方的公鑰解密后確保密鑰的機密性和可鑒別性。在數(shù)據(jù)傳輸階段,該字段用戶傳輸經(jīng)對稱密鑰加密過的數(shù)據(jù)。
圖2中的發(fā)送號和接收號的交互流程參考TCP可靠傳輸機制中的停等協(xié)議,結合超時重傳機制可以有效滿足數(shù)據(jù)的監(jiān)測和上報功能,保證數(shù)據(jù)能夠可靠地傳輸給小水電管理數(shù)據(jù)庫中。實際的移動網(wǎng)絡相對來說較為復雜,可能會出現(xiàn)連續(xù)較長時間信道信號較差的情況,這種情況可能會導致傳輸協(xié)議失效,為此數(shù)據(jù)傳輸控制機制還設計了定時重啟機制,在數(shù)據(jù)傳輸連續(xù)多次失敗的情況下,每隔5分鐘對信道情況進行一次檢查,并在信號恢復時對數(shù)據(jù)進行上報。
由于連接建立過程采用了與TCP連接管理機制不同的協(xié)議格式,因此對通信連接的建立和拆除過程進行了重新設計,具體工作流程如圖3所示。
圖3 通信連接的建立和拆除過程
在圖3所描述的連接建立過程中,發(fā)送方首先通過App利用移動網(wǎng)絡向接收方發(fā)起連接請求,由于該報文為啟動幀,因此啟動生效標識為1,同時報文類型為控制報文幀,因此第二個字節(jié)的結果為84H,同時數(shù)據(jù)字段的內(nèi)容為后續(xù)通信數(shù)據(jù)所使用的對稱加密密鑰,并且發(fā)送方利用自己的私鑰對該對稱密鑰進行了加密處理。接收方在收到連接請求后,接受該請求,同時提取出其中的數(shù)據(jù)部分,然后利用發(fā)送方的公鑰進行解密,并向發(fā)送方回復啟動確認幀,因此啟動確認標識為1,同時接收號需要進行累加處理,所以返回報文中第二個字節(jié)為44H,第四個字節(jié)為01H,隨后用自己的私鑰對解密得到的對稱密鑰進行加密,并附加在數(shù)據(jù)字段中。發(fā)送方在收到接收方的連接響應報文后,利用接收方的公鑰對其進行解密,并通過對解密后的結果與原始的對稱密鑰進行比對,即可完成接收方的身份鑒定。完成連接之后,發(fā)送端即可開始發(fā)送數(shù)據(jù)。
在拆除連接的過程中,發(fā)送方在完成數(shù)據(jù)上報之后,通過App利用移動網(wǎng)絡向接收方發(fā)送拆除連接請求,由于該報文為停止幀,因此停止生效標識為1,同時報文類型為控制報文幀,因此第二個字節(jié)的結果為24H。接收方在收到拆除請求后,向發(fā)送方回復停止確認幀,因此停止確認標識為1,而第二個字節(jié)的結果也就為14H。
由于收發(fā)雙方在通信過程中利用了對稱加密、非對稱加密、CRC校驗、發(fā)送號和接收號等機制,可以有效保證電網(wǎng)數(shù)據(jù)能夠安全可靠地傳輸至管理系統(tǒng)數(shù)據(jù)庫中。同時,小水電數(shù)據(jù)在上報時,通常不會連續(xù)傳輸大批量數(shù)據(jù),因此不需要采用流水線、滑動窗口和擁塞控制等復雜機制,從而簡化了傳輸協(xié)議的實現(xiàn)難度。
由于各個小型水電站的聯(lián)網(wǎng)情況各不相同,可能會依靠內(nèi)網(wǎng)VPN通過Web、依靠移動網(wǎng)絡通過App或短信等方式進行電網(wǎng)數(shù)據(jù)的上報,因此系統(tǒng)具備對站點聯(lián)網(wǎng)情況的感知,然后根據(jù)聯(lián)網(wǎng)實際自動選擇合適的信道傳輸數(shù)據(jù)。具體來說,系統(tǒng)根據(jù)安裝的若干種數(shù)據(jù)上報工具,通過后臺運行的通信信道的性能測試結果,推薦和選擇一種最佳方式,經(jīng)由該方式將擬發(fā)送數(shù)據(jù)自動發(fā)送出去。如果暫時沒有可用的方式,系統(tǒng)設置重試窗口,等待一個時間窗后繼續(xù)重試,指導完成上報,減輕電廠用戶填報負擔,提高到報率。
為了達到上述目的,設計一種多通道性能檢測與調(diào)度算法(Multiple Channel Performance Checking &Scheduling,MCPCS),保證電網(wǎng)數(shù)據(jù)在多種傳輸模式下的上報。MCPCS算法流程如圖4所示。
MCPCS算法設置了兩個時鐘值tp和tw,分別表示輪訓時間和等待時間,tp>tw。其中:tp指系統(tǒng)測試通信信號強度的周期;tw指系統(tǒng)等待服務器應答的時間。假設Web方式和App方式都是經(jīng)由VPN信道傳輸,使用的用戶協(xié)議相同,封裝的協(xié)議數(shù)據(jù)單元用Dv表示。而實用短信方式通常借助于GMS移動通信信道,受短信平臺服務限制,一般以文本數(shù)據(jù)傳輸為主,封裝的協(xié)議數(shù)據(jù)單元用Dm表示,作為備份方式,截取重要的數(shù)據(jù),實現(xiàn)及時上報。
圖4所示的流程以VPN信道發(fā)送為主,一旦發(fā)現(xiàn)信號Sm超過可靠通信的最低閾值要求,首先嘗試建立App連接,失敗后再嘗試建立Web連接。Web連接失敗時,考慮可能的臨時擁堵,等待tw后,檢查嘗試次數(shù)是否到達預先設置的限制次數(shù)N,只要沒有到達,就重新嘗試建立App連接。一旦達到預先設置的次數(shù)限制N,就放棄此輪發(fā)送,重新進入新的周期。
當發(fā)現(xiàn)信號Sm小于可靠通信的最低閾值要求時,直接采用短信方式發(fā)送重要數(shù)值。此時也需要判斷服務器的短信平臺是否有確認,只要沒有確認,又在同一發(fā)送測試周期內(nèi),還是優(yōu)先選擇VPN信道。
因此,MCPCS控制機制具有以下優(yōu)勢:
(1) 充分發(fā)揮VPN的3G、4G、5G的寬帶優(yōu)勢,只要通信條件滿足要求,就能優(yōu)先選擇。
(2) 充分考慮App和Web服務器在2 000個以上的電廠并發(fā)發(fā)送數(shù)據(jù)的響應擁堵,可由發(fā)送端根據(jù)應答信息的類型,自主選擇合適的方式,合理分流,有效利用寬帶通信資源。
(3) 在寬帶信號較弱的情況下,可及時切換到短信方式,確保重要數(shù)據(jù)先到。
(4) 與App、Web和短信實際發(fā)送程序的接口簡單,松耦合,只傳遞狀態(tài)標示,便于今后擴展新的數(shù)據(jù)通信方式。
為了對上述機制進行分析,本文對數(shù)據(jù)傳輸過程進行了仿真實驗,實驗主要圍繞電網(wǎng)數(shù)據(jù)上報的時延和到報率兩個方面的性能指標進行測試,由于數(shù)據(jù)傳輸控制協(xié)議能夠保證數(shù)據(jù)的安全和正確到達,因此本部分內(nèi)容重點對信道自動選擇機制能夠?qū)?shù)據(jù)傳輸帶來的效率優(yōu)化水平進行評估。仿真工具采用了OPNET來完成,并對通過App傳輸和短信傳輸?shù)囊苿泳W(wǎng)絡信道的通信鏈路性能進行設置,其中App傳輸信道的丟包率為2%,時延為均值為50 ms的負指數(shù)分布,短信傳輸信道的丟包率為5%,時延為均值為200 ms的負指數(shù)分布,性能的測試結果以連續(xù)發(fā)送1 000組電網(wǎng)數(shù)據(jù)并根據(jù)測試結果來計算獲得。進行性能對比的傳輸機制包括:
(1) 方法1:采用了前文提出的信道自動選擇機制的電網(wǎng)數(shù)據(jù)采集傳輸方法。
(2) 方法2:僅采用App方式對數(shù)據(jù)進行上報。
(3) 方法3:僅采用短信方式對數(shù)據(jù)進行上報。
表1顯示了三種方法在到報率和時延方面的仿真結果。
表1 三種方法的仿真實驗結果
通過對表1中的數(shù)據(jù)進行分析可知,在采用了信道自動選擇機制后,雖然會對平均時延產(chǎn)生一定的影響,但是電網(wǎng)數(shù)據(jù)的到報率可以顯著提高,這是因為多個信道同時出現(xiàn)信號問題的概率相對更小。同時,平均時延相對于僅采用短信的方式還是要提高很多,這也是因為信道自動選擇算法會優(yōu)先選擇傳輸效率更高的信道進行數(shù)據(jù)的上報。
對各個水電站的運行情況進行監(jiān)控是電網(wǎng)公司重要的業(yè)務工作,然而由于水電站散布在各個偏遠區(qū)域,對于電力數(shù)據(jù)采集傳輸?shù)陌踩院涂煽啃詭砹藝谰奶魬?zhàn)。本文以云南電網(wǎng)小電管理系統(tǒng)所面臨的實際問題為背景,設計了面向小電系統(tǒng)實際需求的多通道電網(wǎng)數(shù)據(jù)安全采集傳輸框架,通過參考IEC104規(guī)約和計算機網(wǎng)絡中的TCP可靠傳輸機制,并結合不同的加密方法和數(shù)據(jù)校驗技術,實現(xiàn)了收發(fā)雙方身份的可鑒別性、數(shù)據(jù)的機密性和實現(xiàn)了電網(wǎng)數(shù)據(jù)的安全可靠上報。同時針對水電站的聯(lián)網(wǎng)現(xiàn)狀,提出一種多通道的性能檢測與調(diào)度算法,通過對多個信道的性能進行實時感知,優(yōu)先選擇更好的信道進行數(shù)據(jù)傳輸,從而有效提升了電網(wǎng)數(shù)據(jù)上報的效率。