鄭漢杰,柯金發(fā),邵海明,陳宇琦,王桂彬,林海平
(1.國網(wǎng)南平供電公司,福建 南平 353000;2.國網(wǎng)信通億力科技有限責任公司,福建 福州 350003)
北斗衛(wèi)星導航系統(tǒng)正在逐步實現(xiàn)全球化,民用領(lǐng)域應用不斷擴充,“北斗+電力”逐步成為民用北斗應用的一大領(lǐng)域。在我國部分偏遠地區(qū),用電信息遠程自動化采集面臨著有線通信鏈路建設(shè)成本高、無線公網(wǎng)信號尚未覆蓋等問題[1-2]。為實現(xiàn)智能電網(wǎng)全面建設(shè),本文提出一種基于北斗短報文安全傳輸?shù)挠秒娦畔⒉杉到y(tǒng)。由于電力用電信息涉及到商業(yè)信息安全,為進一步提高傳輸安全性,本文設(shè)計針對北斗短報文信息的加密機制。該系統(tǒng)可作為“北斗+”用電信息采集服務的一種有效技術(shù)補充方案,對實現(xiàn)用電信息的采集全覆蓋起到了重要作用,具有較高的推廣意義。
目前電力行業(yè)的數(shù)據(jù)通信應用方式中,主要采用光纖、運營商無線公網(wǎng)通道與電力線載波等形式[3]。而在偏遠或復雜地形的位置難以實現(xiàn)全覆蓋,只能靠人工抄表。目前北斗系統(tǒng)應用于電力用電信息采集已有相關(guān)研究成果[4-6],均實現(xiàn)北斗與電力用采系統(tǒng)的結(jié)合,但還未在北斗短報文信息安全方面做另外處理,本文將對這部分問題進行擴展優(yōu)化與補充,提出解決方案。
北斗衛(wèi)星系統(tǒng)除了導航與授時外還具備短報文雙向通信功能,已廣泛應用于軍用以及民用領(lǐng)域,傳輸?shù)男畔踩砸苍絹碓奖恢匾?。因此有必要對北斗短報文?shù)據(jù)進行加密。國內(nèi)已有相關(guān)研究[7-8],本文采用硬件加密方式,硬件加密相比軟件加密方式具有處理效率與安全性更高的優(yōu)勢。使用的加密方式為國密SM1、SM2、SM3算法[9-11]。國密算法為我國密碼局認定的國產(chǎn)商用密碼算法,可擺脫對國外技術(shù)的過度依賴,高效安全。本方案在密鑰協(xié)商與報文加密階段組合使用這三類算法。
圖2 北斗前置軟件架構(gòu)與數(shù)據(jù)流向圖
圖3 前置軟件服務示意圖
北斗用電信息安全傳輸系統(tǒng)主要包含兩大部分:北斗用電信息加密采集主站與加密采集終端,如圖1所示。主站端通過架設(shè)北斗多卡機群組成北斗收發(fā)通道,北斗前置服務器運行前置軟件,并連接加密網(wǎng)關(guān),負責將北斗協(xié)議數(shù)據(jù)轉(zhuǎn)換為已加密的電力376.1協(xié)議[12]數(shù)據(jù),并轉(zhuǎn)發(fā)至加解密設(shè)備進行處理,提取出有效的應用層數(shù)據(jù)。同時在通信初始階段也負責進行密鑰協(xié)商操作?,F(xiàn)場采集終端通過北斗電力轉(zhuǎn)接盒將集中器或?qū)W兘K端與北斗加密終端連接,終端內(nèi)嵌有加密模塊,可對采集數(shù)據(jù)進行加解密處理,通過這種結(jié)構(gòu)實現(xiàn)現(xiàn)場設(shè)備與主站的互通互聯(lián),遠程抄表與控制等一系列功能。
圖1 北斗用電信息采集安全傳輸系統(tǒng)結(jié)構(gòu)
北斗前置軟件是一個數(shù)據(jù)中轉(zhuǎn)站,運行在北斗主站前置服務器中,北斗數(shù)據(jù)通過前置軟件處理后傳入現(xiàn)有的用電信息采集系統(tǒng)。北斗前置是北斗設(shè)備接入用電信息采集主站的適配器,軟件總體分為4大部分,架構(gòu)如圖2所示。軟件物理層包括了對串口、以太網(wǎng)接口的適配與數(shù)據(jù)處理,同時管理物理接口的狀態(tài);數(shù)據(jù)傳輸層包含了對電力376.1協(xié)議、北斗用戶機協(xié)議的處理以及數(shù)據(jù)的加解密管理,負責數(shù)據(jù)在北斗設(shè)備、主站、加密設(shè)備與數(shù)據(jù)庫間的轉(zhuǎn)發(fā);持久層包含了數(shù)據(jù)庫管理;應用層包含了北斗設(shè)備管理、集中器設(shè)備管理、補召管理、日志管理。
當電力用電采集主站系統(tǒng)發(fā)起對某臺集中器的數(shù)據(jù)查詢時,一般的集中器將會通過GPRS網(wǎng)絡(luò)實時回傳至系統(tǒng)[13]。主站監(jiān)控集中器的在線情況是通過保持TCP長連接。但當采用北斗通信模式后,將受到北斗通信頻度限制,無法實現(xiàn)與主站直接保持實時連接,這將導致主站與集中器超時連接而斷開,無法監(jiān)控到集中器狀態(tài)且查詢數(shù)據(jù)時會出現(xiàn)查詢超時等問題。北斗前置軟件作為數(shù)據(jù)緩存及協(xié)議轉(zhuǎn)換功能網(wǎng)關(guān),通過模擬集中器機制與主站進行交互,可有效地解決上述問題。同時,前置軟件還負責管理日凍結(jié)數(shù)據(jù)的預召與補召。整體過程如圖3所示。
本系統(tǒng)中的北斗設(shè)備內(nèi)嵌有加密模塊,軟硬件結(jié)構(gòu)如圖4與圖5所示。
主控DSP模塊實現(xiàn)核心控制管理功能;安全模塊主要實現(xiàn)與智能密碼鑰匙的交互訪問,完成身份認
圖4 密碼模塊硬件結(jié)構(gòu)圖
圖5 密碼模塊軟件結(jié)構(gòu)圖
圖8 密鑰協(xié)商流程
證與部分密鑰管理功能;接口模塊實現(xiàn)數(shù)據(jù)傳輸方式,完成密碼模塊與主機的高速數(shù)據(jù)交換;存儲模塊由FLASH和SDRAM組成,F(xiàn)LASH存放DSP程序及部分固化的設(shè)備信息,SDRAM用于系統(tǒng)運行時程序和數(shù)據(jù)的存儲;算法模塊由高性能密碼芯片組成,實現(xiàn)對稱、非對稱和雜湊等算法。
密碼模塊的軟件部分可分為嵌入式操作系統(tǒng)層、API應用編程接口層兩大部分。嵌入式系統(tǒng)負責密碼模塊硬件資源系統(tǒng),控制密碼模塊與外部設(shè)備間的數(shù)據(jù)交互和加解密運算;API應用編程接口層,即密碼模塊提供的API函數(shù)編程接口,支持國內(nèi)、國外多種標準算法接口。
本系統(tǒng)對北斗短報文的加密與解密過程分別在主站端的加密網(wǎng)關(guān)與北斗加密終端內(nèi)的加密模塊中完成,加密數(shù)據(jù)的流向如圖6所示。
圖6 北斗用采系統(tǒng)加密數(shù)據(jù)流向圖
短報文加密的主要過程分為兩大部分,分別是協(xié)商過程與加密過程,如圖7所示。協(xié)商過程主要目的是生成回話密鑰,在密鑰協(xié)商完成之前不進行任何其他非密鑰協(xié)商數(shù)據(jù)信息的發(fā)送,否則數(shù)據(jù)將會被丟棄。協(xié)商好回話密鑰之后,進行數(shù)據(jù)通信時,需要對應用層的報文使用加密算法進行加解密處理。
圖7 數(shù)據(jù)加密整體流程
北斗短報文在發(fā)送加密數(shù)據(jù)之前需要進行密鑰協(xié)商,協(xié)商過程詳細流程如圖8所示。
密鑰協(xié)商成功后,需要對應用層的數(shù)據(jù)報文使用SM1算法進行加解密。加密過程如圖9所示。步驟如下:
(1)數(shù)據(jù)填充。首先對原始數(shù)據(jù)進行字節(jié)填充,使數(shù)據(jù)長度固定為64 B,如原始數(shù)據(jù)長度已為64 B,則不填充。填充內(nèi)容的第一個字節(jié)為0x80,后續(xù)填充字節(jié)內(nèi)容為0x00。
(2)添加頭部信息。數(shù)據(jù)填充后需加入頭部信息,頭部信息包括報文類型、長度、校驗字節(jié)等字段,如圖10所示。
(3)數(shù)據(jù)加密。對附加信息與填充報文使用之前協(xié)商好的回話密鑰進行SM1加密。
圖9 數(shù)據(jù)加密過程
圖10 北斗加密報文協(xié)議格式
北斗在傳輸協(xié)商報文以及加密報文時都需遵循北斗傳輸?shù)念l度規(guī)律,對于協(xié)商報文中較長的數(shù)據(jù)項需要進行分包與組包處理。由于北斗在傳輸過程中可能出現(xiàn)丟包,在協(xié)商過程中如果出現(xiàn)任何丟包都將導致協(xié)商失敗,北斗設(shè)備針對這種情況設(shè)計了協(xié)商報文補傳機制,一旦進入?yún)f(xié)商模式每一步協(xié)商步驟都有反饋超時判斷,當一方發(fā)送完協(xié)商報文后在2 min后未收到任何反饋則判定為丟包,并自動向另一方重發(fā)上一步的協(xié)商報文,這個過程將持續(xù)至協(xié)商結(jié)束,協(xié)商的整個過程至少持續(xù)5 min。
當協(xié)商成功后,在通信過程中任何一方回話密鑰丟失都將直接進入?yún)f(xié)商狀態(tài)。安全傳輸機制示意如圖11所示。
圖11 安全傳輸機制
為驗證系統(tǒng)的可行性,本次測試采用北斗卡均為三級民用卡,發(fā)送頻度為78.5 B/min。測試環(huán)境示意如圖12所示。
為驗證北斗安全傳輸用電信息采集數(shù)據(jù)的有效性與成功率,北斗加密采集終端向集中器與專變采集終端召測上述數(shù)據(jù)項并回傳給前置軟件存入前置數(shù)據(jù)庫中,再通過用電采集仿真主站軟件向北斗前置軟件召測并解析顯示數(shù)據(jù)項,如圖13所示顯示了召測集中器下2號測量點的正向有功電能示值日凍結(jié)數(shù)據(jù)的返回結(jié)果,2號測量點11月26日凍結(jié)的正向有功電能總量為15 478.16 KWh。該結(jié)果與人工抄表的結(jié)果一致,證明本系統(tǒng)召測的數(shù)據(jù)能夠成功加密并解密且正確有效。當召測專變的曲線數(shù)據(jù)時,由于曲線數(shù)據(jù)項種類較多,本文以召測A相電壓曲線為例,用采主站仿真軟件召測的結(jié)果如圖14所示,顯示了專變終端凍結(jié)三相表中A相電壓11月26日每15 min的電壓值。
圖12 測試環(huán)境結(jié)構(gòu)
圖13 召測集中器下掛用戶正向有功電能示值歷史值結(jié)果
為測試該系統(tǒng)數(shù)據(jù)召測的成功率以及加密環(huán)節(jié)是否對召測過程有影響,本文設(shè)置不同分組實驗,每組實驗均連續(xù)測試10天,結(jié)果如表1所示。
通過表1可以對比分析出:
(1)采用加密傳輸?shù)谋倍吩O(shè)備與普通北斗設(shè)備的通信成功率基本一致,可驗證加密設(shè)備在完成加密的同時保證北斗通信的正常運行;
(2)集中器、專變終端與北斗設(shè)備均能正常對接,并根據(jù)不同下掛電表類型傳輸不同的指定數(shù)據(jù),成功率基本一致;
圖14 召測專變終端三相表A相電壓曲線結(jié)果
測試類型北斗傳輸成功率/%召測數(shù)據(jù)完整率/%平均耗時/h電力設(shè)備北斗設(shè)備傳輸1遍傳輸2遍傳輸1遍傳輸2遍傳輸1遍傳輸2遍集中器專變終端普通98.0898.4295.381002.294.5998.3397.9594.671001.172.32集中器專變終端加密98.4298.3895.631002.394.7998.2897.9792.701001.252.51
(3)雖然專變終端北斗傳輸成功率與集中器基本一致,采用每個數(shù)據(jù)包傳輸2遍的方式可有效使數(shù)據(jù)召測完整率達到100%。但傳輸耗時為傳輸1遍方式的2倍;
(4)使用北斗加密設(shè)備的平均耗時比普通北斗設(shè)備稍高,由于加密設(shè)備需要有部分時間進行密鑰協(xié)商,且本測試為每日都進行協(xié)商,協(xié)商中的丟包重傳機制也會一定程度影響耗時。
通過測試可驗證本文提出的技術(shù)可行且成功率較高。
北斗短報文安全傳輸?shù)挠秒娦畔⒉杉到y(tǒng)將北斗設(shè)備與國密加密模塊融合,進一步加強北斗短報文傳輸?shù)男畔踩?,采用外部加密設(shè)備取代軟件加密方式,提高了密鑰協(xié)商與數(shù)據(jù)加解密效率,經(jīng)過測試表明采用該技術(shù)的數(shù)據(jù)采集成功率高,且可無縫接入原有系統(tǒng)并拓展功能。該系統(tǒng)具有良好的社會和經(jīng)濟效益,有較好的應用前景。