李秀峰 李 勝 梁妙元 馬瑋駿 張 欣
1(云南電力調度控制中心 云南 昆明 650011) 2(南京金水尚陽信息技術有限公司 江蘇 南京 210046) 3(南京津碼智能科技有限公司 江蘇 南京 210046)
由于電網數據的重要性和機密性,電網公司和發電企業必須按照國家信息安全等級保護制度的相關要求,采取相應的技術手段來確保電網數據采集和匯聚過程中數據能夠安全準確地送達到接收端。為此,需要將信息安全納入電網生產安全體系,嚴格遵循“雙網雙機、分區分域、等級防護、多層防御”的安全策略來建立完善的信息安全機制。例如通過動態密鑰的方式對數據進行加密傳輸[1-2]、設計新的數據傳輸協議上報信息[3]、利用雙網互備和隧道傳輸進行安全保證[4]等。
根據信息安全等級的劃分以及具體電網信息系統所承載的數據重要性程度,現有的電網信息系統可以分為兩類:一類是電網實時控制業務系統;另一類是電網非控制業務系統或管理信息系統。相對來說,第一類系統對信息的采集傳輸要求和對故障可容忍時長都更為嚴苛,但是對于部分第二類系統來說,其數據關系到整個電網公司和發電企業的發電計劃,也需要采取必要的技術來確保數據采集和傳輸過程中的安全性和準確性。
以云南電網為例,由于水資源比較豐富,云南電網公司在各處建立了眾多小型水電站(簡稱小水電),然而這些小水電很多都地處偏遠,沒有條件建立專網與公司內網進行聯通,因此不得不依靠互聯網甚至是移動網絡、LoRa[5-6]、窄帶物聯網[7-8]、北斗[9]、Wi-Fi[10]等技術進行傳輸,然而由于網絡安全相關規定明確要求禁止跨區互聯,小水電數據無法直接通過互聯網(即安全IV區)匯入到小水電管理系統數據庫所在的安全III區中。此外,傳統的IEC60870-5-104(簡稱IEC104)[11]和DNP3[12]等規約也不適合偏遠水電站進行數據上報,因此需要研究和設計切實可行的數據采集傳輸方法,既滿足網絡安全防護要求,又符合云南電網小水電管理的實際情況,確保數據能夠可靠地上傳到管理系統數據庫中。
為了滿足云南電網小水電管理系統中數據采集傳輸過程的安全性和及時性要求,必須采取多種手段來對小水電數據進行安全傳輸。為此,采用了基于多通道的水電數據安全采集傳輸機制來確保數據能順利送至管理系統數據庫中。該機制的總體設計思路如下:
(1) 對于通過電網公司內網采集的小水電遙測數據,通過IEC60870-5-104協議來對小水電數據進行傳輸。由于內網可以依托較為可靠的有線網絡進行傳輸,因此利用傳統的IEC104規約提供的電網數據傳輸機制,即可實現數據的可靠傳輸,同時為了進一步保證數據在長距離傳輸過程中的機密性,采用縱向加密設備在收發兩端的主站和子站提供安全信道,從而確保數據在內網傳輸的安全性。
(2) 對于無法連通電網公司內網的小水電數據,采用另外兩種方式來作為備份:① 基于短信的數據上報方法,采用離線的短信發送工具,電廠用戶本地安裝后,通過該工具生成固定格式的短信,短信經由信息中心的短信網關發送至小電系統的通信服務器,從而利用短信網關來滿足最嚴格的網絡安全防護要求;② 基于App的數據上報方法,開發相應的手機App,部署在信息中心的移動云網上,電廠用戶在移動云網上下載小電系統App,并通過移動云網身份認證、小電系統身份認證兩道認證程序登錄小電系統并上報數據。
(3) 在采用短信和App兩種方式上報時,小水電數據采用電站側多通道數據上報優化控制機制及其相關通信協議,通過手機后臺對App移動云網接入和短信性能的測試,自動選取最佳方式,根據可靠數據傳輸機制形成相應格式的報文,將數據送至安全IV區的數據接收服務器。
(4) 數據接收服務器通過隔離設備將數據從安全IV單向導入至安全III區的數據匯集平臺后,與經內網傳輸的小水電數據一道通過數據匯總模塊進行質量控制和歸并后,存儲到小水電管理數據庫中。
整個小水電數據采集傳輸與匯集的工作流程如圖1所示。

圖1 MSLR算法的鏈式結構
在圖1中,連接到內網的小水電數據首先通過防火墻送到就近的IEC104子站,完成數據從安全I區至安全II區,然后利用縱向加密設備的數據加密處理后,通過調度數據網將數據傳輸到遠端的IEC104主站進行數據緩存和同步,最后利用單向隔離設備將數據從安全II區轉移到安全III區的小水電管理數據庫中;通過公用網絡信道進行傳輸的數據采用相關技術將數據安全可靠地上報給安全IV區的接收服務器,服務器通過單向隔離設備將數據傳輸到安全III區,最終形成整個電網的運行與計劃數據資源池。
為了實現數據上報控制機制中的安全可靠數據傳輸,設計了相應的通信控制協議來確保數據能夠正確有序送至接收端,并確保傳輸過程中數據的機密性和完整性,協議格式如圖2所示。

圖2 通信控制協議格式
整個通信控制協議格式的設計一方面借鑒了經典TCP可靠數據傳輸機制[13]中所采用的發送號、接收號等內容,來確保小水電數據能夠準確上報至管理數據庫中,另一方面參考了電網數據傳輸協議IEC104來確保傳輸的數據能夠被正確解析。圖2中各個字段的作用和說明如下:
(1) 協議起始符:用于標識小水電傳輸報文的開始部分,長度為1個字節,在IEC104中采用68H來進行標識,為了與其加以區分,本協議采樣的起始符為69H。
(2) 啟動標識:用于收發雙方開始建立連接的過程,長度為2個比特,其中:第一個比特為1表示啟動生效,用于發起連接;第二個比特為1表示啟動確認,用于接受連接。
(3) 停止標識:用于收發雙方拆除連接的過程,長度為2個比特,其中:第一個比特為1表示停止生效,用于發起拆除連接請求;第二個比特為1表示停止確認,用于接受拆除連接請求。
(4) 類型標識:用于標識報文的類型,長度為2個比特,該值為00表示為數據傳輸幀,傳輸的數據為實際有效數據,該值為01表示為控制報文幀,用于收發雙方啟動或者停止連接,該值為11表示為測試幀,用于收發雙方對信道進行測試。
(5) 信道標識:用于標識數據傳輸所采用的信道類型,長度為2個比特,該值為00表示采用App形式進行傳輸,該值為01表示采用短信形式進行傳輸,通過對信道的標識,接收服務器可以感知各個站點的聯網情況,并對網絡問題進行診斷。
(6) 發送號:用于發送方標識所發送數據的序號,長度為1個字節,與TCP可靠傳輸所不同的是,序號的值是對報文數目進行累加,而非對報文字節數進行累加。
(7) 接收號:用于接收方對接收到的數據進行確認的序號,長度為1個字節,采用累積確認方式對接收到的報文數進行累計,即如果接收到的發送號為N,則返回的接收號應為N+1。
(8) 站點標識:用于接收方對發送方身份進行確認,長度為2個字節,結合前期通過其他方式下發的非對稱密鑰可以實現身份鑒別。
(9) 長度:用于對后續數據部分的長度進行標識,長度為2個字節,從而協助程序對數據部分內容進行解析。
(10) CRC16校驗值:利用CRC技術[14]對整個報文的內容進行校驗,長度為2個字節,從而確保接收到的報文內容在傳輸過程中不會出現錯誤。
(11) 加密數據:用于承載需要傳輸的加密數據,長度可變,最長為65 535字節。在連接建立階段,該字段用于傳輸用于對數據進行加密的RSA對稱密鑰[15],且該密鑰采用私鑰進行加密,接收方可以通過發送方的公鑰解密后確保密鑰的機密性和可鑒別性。在數據傳輸階段,該字段用戶傳輸經對稱密鑰加密過的數據。
圖2中的發送號和接收號的交互流程參考TCP可靠傳輸機制中的停等協議,結合超時重傳機制可以有效滿足數據的監測和上報功能,保證數據能夠可靠地傳輸給小水電管理數據庫中。實際的移動網絡相對來說較為復雜,可能會出現連續較長時間信道信號較差的情況,這種情況可能會導致傳輸協議失效,為此數據傳輸控制機制還設計了定時重啟機制,在數據傳輸連續多次失敗的情況下,每隔5分鐘對信道情況進行一次檢查,并在信號恢復時對數據進行上報。
由于連接建立過程采用了與TCP連接管理機制不同的協議格式,因此對通信連接的建立和拆除過程進行了重新設計,具體工作流程如圖3所示。

圖3 通信連接的建立和拆除過程
在圖3所描述的連接建立過程中,發送方首先通過App利用移動網絡向接收方發起連接請求,由于該報文為啟動幀,因此啟動生效標識為1,同時報文類型為控制報文幀,因此第二個字節的結果為84H,同時數據字段的內容為后續通信數據所使用的對稱加密密鑰,并且發送方利用自己的私鑰對該對稱密鑰進行了加密處理。接收方在收到連接請求后,接受該請求,同時提取出其中的數據部分,然后利用發送方的公鑰進行解密,并向發送方回復啟動確認幀,因此啟動確認標識為1,同時接收號需要進行累加處理,所以返回報文中第二個字節為44H,第四個字節為01H,隨后用自己的私鑰對解密得到的對稱密鑰進行加密,并附加在數據字段中。發送方在收到接收方的連接響應報文后,利用接收方的公鑰對其進行解密,并通過對解密后的結果與原始的對稱密鑰進行比對,即可完成接收方的身份鑒定。完成連接之后,發送端即可開始發送數據。
在拆除連接的過程中,發送方在完成數據上報之后,通過App利用移動網絡向接收方發送拆除連接請求,由于該報文為停止幀,因此停止生效標識為1,同時報文類型為控制報文幀,因此第二個字節的結果為24H。接收方在收到拆除請求后,向發送方回復停止確認幀,因此停止確認標識為1,而第二個字節的結果也就為14H。
由于收發雙方在通信過程中利用了對稱加密、非對稱加密、CRC校驗、發送號和接收號等機制,可以有效保證電網數據能夠安全可靠地傳輸至管理系統數據庫中。同時,小水電數據在上報時,通常不會連續傳輸大批量數據,因此不需要采用流水線、滑動窗口和擁塞控制等復雜機制,從而簡化了傳輸協議的實現難度。
由于各個小型水電站的聯網情況各不相同,可能會依靠內網VPN通過Web、依靠移動網絡通過App或短信等方式進行電網數據的上報,因此系統具備對站點聯網情況的感知,然后根據聯網實際自動選擇合適的信道傳輸數據。具體來說,系統根據安裝的若干種數據上報工具,通過后臺運行的通信信道的性能測試結果,推薦和選擇一種最佳方式,經由該方式將擬發送數據自動發送出去。如果暫時沒有可用的方式,系統設置重試窗口,等待一個時間窗后繼續重試,指導完成上報,減輕電廠用戶填報負擔,提高到報率。
為了達到上述目的,設計一種多通道性能檢測與調度算法(Multiple Channel Performance Checking &Scheduling,MCPCS),保證電網數據在多種傳輸模式下的上報。MCPCS算法流程如圖4所示。
MCPCS算法設置了兩個時鐘值tp和tw,分別表示輪訓時間和等待時間,tp>tw。其中:tp指系統測試通信信號強度的周期;tw指系統等待服務器應答的時間。假設Web方式和App方式都是經由VPN信道傳輸,使用的用戶協議相同,封裝的協議數據單元用Dv表示。而實用短信方式通常借助于GMS移動通信信道,受短信平臺服務限制,一般以文本數據傳輸為主,封裝的協議數據單元用Dm表示,作為備份方式,截取重要的數據,實現及時上報。
圖4所示的流程以VPN信道發送為主,一旦發現信號Sm超過可靠通信的最低閾值要求,首先嘗試建立App連接,失敗后再嘗試建立Web連接。Web連接失敗時,考慮可能的臨時擁堵,等待tw后,檢查嘗試次數是否到達預先設置的限制次數N,只要沒有到達,就重新嘗試建立App連接。一旦達到預先設置的次數限制N,就放棄此輪發送,重新進入新的周期。
當發現信號Sm小于可靠通信的最低閾值要求時,直接采用短信方式發送重要數值。此時也需要判斷服務器的短信平臺是否有確認,只要沒有確認,又在同一發送測試周期內,還是優先選擇VPN信道。
因此,MCPCS控制機制具有以下優勢:
(1) 充分發揮VPN的3G、4G、5G的寬帶優勢,只要通信條件滿足要求,就能優先選擇。
(2) 充分考慮App和Web服務器在2 000個以上的電廠并發發送數據的響應擁堵,可由發送端根據應答信息的類型,自主選擇合適的方式,合理分流,有效利用寬帶通信資源。
(3) 在寬帶信號較弱的情況下,可及時切換到短信方式,確保重要數據先到。
(4) 與App、Web和短信實際發送程序的接口簡單,松耦合,只傳遞狀態標示,便于今后擴展新的數據通信方式。
為了對上述機制進行分析,本文對數據傳輸過程進行了仿真實驗,實驗主要圍繞電網數據上報的時延和到報率兩個方面的性能指標進行測試,由于數據傳輸控制協議能夠保證數據的安全和正確到達,因此本部分內容重點對信道自動選擇機制能夠對數據傳輸帶來的效率優化水平進行評估。仿真工具采用了OPNET來完成,并對通過App傳輸和短信傳輸的移動網絡信道的通信鏈路性能進行設置,其中App傳輸信道的丟包率為2%,時延為均值為50 ms的負指數分布,短信傳輸信道的丟包率為5%,時延為均值為200 ms的負指數分布,性能的測試結果以連續發送1 000組電網數據并根據測試結果來計算獲得。進行性能對比的傳輸機制包括:
(1) 方法1:采用了前文提出的信道自動選擇機制的電網數據采集傳輸方法。
(2) 方法2:僅采用App方式對數據進行上報。
(3) 方法3:僅采用短信方式對數據進行上報。
表1顯示了三種方法在到報率和時延方面的仿真結果。

表1 三種方法的仿真實驗結果
通過對表1中的數據進行分析可知,在采用了信道自動選擇機制后,雖然會對平均時延產生一定的影響,但是電網數據的到報率可以顯著提高,這是因為多個信道同時出現信號問題的概率相對更小。同時,平均時延相對于僅采用短信的方式還是要提高很多,這也是因為信道自動選擇算法會優先選擇傳輸效率更高的信道進行數據的上報。
對各個水電站的運行情況進行監控是電網公司重要的業務工作,然而由于水電站散布在各個偏遠區域,對于電力數據采集傳輸的安全性和可靠性帶來了嚴峻的挑戰。本文以云南電網小電管理系統所面臨的實際問題為背景,設計了面向小電系統實際需求的多通道電網數據安全采集傳輸框架,通過參考IEC104規約和計算機網絡中的TCP可靠傳輸機制,并結合不同的加密方法和數據校驗技術,實現了收發雙方身份的可鑒別性、數據的機密性和實現了電網數據的安全可靠上報。同時針對水電站的聯網現狀,提出一種多通道的性能檢測與調度算法,通過對多個信道的性能進行實時感知,優先選擇更好的信道進行數據傳輸,從而有效提升了電網數據上報的效率。