封保占,張 喆,趙學(xué)智,姜 帆,王世林,鄧思陽(yáng)
(1.國(guó)網(wǎng)思極網(wǎng)安科技(北京)有限公司,北京 102211;2.國(guó)網(wǎng)信息通信產(chǎn)業(yè)集團(tuán)有限公司,北京 100052)
隨著電力需求的不斷增長(zhǎng),電網(wǎng)系統(tǒng)蓬勃發(fā)展。智能電網(wǎng)步入了飛速發(fā)展時(shí)期[1-2]。通信網(wǎng)絡(luò)[3-4]是實(shí)現(xiàn)智能配電網(wǎng)絡(luò)的關(guān)鍵部分。只有通過(guò)安全的通信網(wǎng)絡(luò),配電網(wǎng)絡(luò)才能將控制中心的命令準(zhǔn)確地傳送到眾多遠(yuǎn)程終端設(shè)備。然而,通信網(wǎng)絡(luò)也帶來(lái)了許多潛在的危險(xiǎn),如現(xiàn)有配電終端的安全性不足,而待投資的新終端的安全性無(wú)法保證。目前,配電網(wǎng)絡(luò)的通信方式有光纖網(wǎng)絡(luò)通信、無(wú)線網(wǎng)絡(luò)通信等[5-6]。其中,光纖網(wǎng)絡(luò)應(yīng)用廣泛、開放性強(qiáng)。數(shù)據(jù)傳輸在封閉環(huán)境中,不易被攻擊,因此安全性強(qiáng)。但是,光纖網(wǎng)絡(luò)的布線工作量大,物理電路容易損壞,成本也更高。無(wú)線網(wǎng)絡(luò)能靈活調(diào)整組網(wǎng)要求,工作量小,改造成本低,移動(dòng)性和靈活性高于光纖網(wǎng)絡(luò)。
長(zhǎng)期以來(lái),配電網(wǎng)絡(luò)安全防護(hù)措施相對(duì)薄弱,網(wǎng)絡(luò)黑客的攻擊手段層出不窮,使得配電網(wǎng)絡(luò)安全受到極大的威脅。
為此,國(guó)內(nèi)外眾多學(xué)者對(duì)配電網(wǎng)絡(luò)安全防護(hù)進(jìn)行了研究,并取得了眾多成果。陳來(lái)軍等[7]探討了信息網(wǎng)絡(luò)安全對(duì)電力系統(tǒng)生存性的影響,并提出了加強(qiáng)智能電網(wǎng)信息安全的具體建議。李增鵬等[8]提出了基于全同態(tài)加密技術(shù)的加密系統(tǒng),通過(guò)公鑰加密保護(hù)智能電網(wǎng)的安全。楊鵬等[9]提出了針對(duì)智能電網(wǎng)的態(tài)勢(shì)評(píng)估模型,可以有效地描述網(wǎng)絡(luò)安全的態(tài)勢(shì)發(fā)展情況。
面對(duì)網(wǎng)絡(luò)安全泄密或隨機(jī)的黑客網(wǎng)絡(luò)攻擊,單純的網(wǎng)絡(luò)安全防護(hù)很難保障配電網(wǎng)絡(luò)的安全。為此,本文提出了一種基于改進(jìn)SM3的配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)。
配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)適用于10 kV及以下中低壓電網(wǎng)的遠(yuǎn)程監(jiān)控和配電網(wǎng)絡(luò)的安全保護(hù),包括配電主站、垂直通信、配電終端安全防護(hù)措施等。其中,配電終端安全防護(hù)措施包括安全分區(qū)、橫向隔離、物理安全防護(hù)等。
配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)架構(gòu)如圖1所示。系統(tǒng)主要包括3個(gè)子系統(tǒng):配電網(wǎng)絡(luò)防護(hù)終端子系統(tǒng)、配電網(wǎng)絡(luò)交互網(wǎng)關(guān)接入?yún)^(qū)子系統(tǒng)、配電網(wǎng)絡(luò)主站防護(hù)區(qū)子系統(tǒng)。
圖1 配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)架構(gòu)Fig.1 Distribution network security gateway system architecture
配電網(wǎng)絡(luò)防護(hù)終端子系統(tǒng)通過(guò)配電加密認(rèn)證算法,對(duì)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,以確保系統(tǒng)數(shù)據(jù)安全。配電網(wǎng)絡(luò)交互網(wǎng)關(guān)接入?yún)^(qū)子系統(tǒng)利用計(jì)算機(jī)防火墻、數(shù)據(jù)網(wǎng)關(guān)等將配電網(wǎng)絡(luò)防護(hù)終端與配電網(wǎng)絡(luò)主站相連,保證數(shù)據(jù)流通的安全性要求。配電網(wǎng)絡(luò)主站防護(hù)區(qū)子系統(tǒng)采用基于數(shù)字證書的認(rèn)證技術(shù)和基于國(guó)內(nèi)商用密碼算法的加密技術(shù),對(duì)接收到的數(shù)據(jù)進(jìn)行過(guò)濾,從而達(dá)到安全防護(hù)的目的。
配電網(wǎng)絡(luò)防護(hù)終端中發(fā)送的所有數(shù)據(jù)均采用改進(jìn)SM3加密算法進(jìn)行加密,從而確保數(shù)據(jù)流通的安全性要求。
在配電網(wǎng)絡(luò)交互網(wǎng)關(guān)接入?yún)^(qū)子系統(tǒng)配置功率專用的水平單向安全隔離裝置(正、反向隔離裝置),在安全分區(qū)配置數(shù)據(jù)服務(wù)器,并基于認(rèn)證算法提升系統(tǒng)安全性要求。通過(guò)操作系統(tǒng)、用戶名/強(qiáng)密碼、動(dòng)態(tài)密碼、物理設(shè)備、生物特征識(shí)別、數(shù)字證書等方式,可實(shí)現(xiàn)用戶身份認(rèn)證和賬戶管理。
此外,配電網(wǎng)絡(luò)防護(hù)終端與配電網(wǎng)絡(luò)主站之間通過(guò)物理隔離方式滿足網(wǎng)絡(luò)通信要求,即采用專用光纖網(wǎng)絡(luò)或無(wú)線網(wǎng)絡(luò)通信。
配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)利用安全芯片實(shí)現(xiàn)主站與終端之間的雙向傳輸,從而在物理上滿足數(shù)據(jù)傳輸?shù)陌踩砸?。身份?yàn)證過(guò)程主要是防止以惡意破壞和攻擊配電主站系統(tǒng)等為目的、以偽造終端身份和重放攻擊為形式的非法操作,從而防止由此引發(fā)的配電網(wǎng)絡(luò)事故。
在配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng)中集成了加密認(rèn)證安全模塊,且終端主控芯片與安全芯片之間采用串行外設(shè)接口(serial peripheral interface,SPI)通信。通信速度在10 Mbit/s以上,且TTL串口穩(wěn)定通信速度不低于500 kbit/s;在配電網(wǎng)絡(luò)終端軟件中增加了安全芯片的驅(qū)動(dòng)接口和應(yīng)用接口,使安全芯片可以通過(guò)網(wǎng)絡(luò)端口接收和解密配電網(wǎng)絡(luò)主站的下行數(shù)據(jù),并將解密后的數(shù)據(jù)通過(guò)SPI或晶體管-晶體管邏輯(transistor-transistor logic,TTL)發(fā)送到配電網(wǎng)絡(luò)終端主控芯片。同時(shí),配電網(wǎng)絡(luò)終端主控芯片向SPI或TTL串口發(fā)送上行數(shù)據(jù)。安全芯片對(duì)上行數(shù)據(jù)進(jìn)行簽名和加密,并將簽名和加密后的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)端口發(fā)送給配電網(wǎng)絡(luò)主站。
配電網(wǎng)絡(luò)終端支持國(guó)密算法。此外,在接入?yún)^(qū)內(nèi)建立專用通道,實(shí)現(xiàn)雙向身份認(rèn)證。主站的控制命令和遠(yuǎn)程參數(shù)設(shè)置采用數(shù)字簽名及數(shù)據(jù)校驗(yàn),從而確保數(shù)據(jù)的唯一性及可靠性。
經(jīng)典SM3算法中,壓縮函數(shù)主要用于在數(shù)據(jù)寄存器中完成數(shù)據(jù)變量的賦值、數(shù)據(jù)移位和數(shù)據(jù)讀寫等操作。然而,隨著中間變量和寄存器個(gè)數(shù)的增加,讀寫數(shù)據(jù)寄存器所耗費(fèi)的時(shí)間將呈幾何倍數(shù)增長(zhǎng)。為此,本文將優(yōu)化中間變量、減少讀寫數(shù)據(jù)寄存器的次數(shù),從而減少壓縮函數(shù)的運(yùn)算時(shí)間。需注意:該方法在提高運(yùn)行效率的同時(shí)不會(huì)改變壓縮函數(shù)的結(jié)構(gòu)。算法具體過(guò)程如下所述。
定義布爾函數(shù)F(X,Y,Z)和G(X,Y,Z),以及位移函數(shù)P0(X,Y,Z)和P1(X,Y,Z),如式(1)~式(4)所示。
F(X,Y,Z)=
(1)
G(X,Y,Z)=
(2)
P0(X)=X⊕(X<<<9)⊕(X<<<17)
(3)
P0(X)=X⊕(X<<<15)⊕(X<<<23)
(4)
式中:X、Y和Z均為32 位的字符串。
為歸一化數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行填充。首先,在數(shù)據(jù)最后的位置上添加1。接著,在數(shù)據(jù)中引入k個(gè)0。需注意:k為一非負(fù)整數(shù),根據(jù)式(5)求得。接下來(lái),在數(shù)據(jù)中添加長(zhǎng)度為l的64位二進(jìn)制字符串?dāng)?shù)組,最終將數(shù)據(jù)長(zhǎng)度填充為512的倍數(shù)。
l+1+k≡448mod512
(5)
填充的消息被分組,每組長(zhǎng)度為512位。分組消息的編號(hào)為B(0)B(1)…B(n-1)。其中,n=(l+l+65)÷512。分組填充的消息按以下方式進(jìn)行迭代。
for i=0 to n-1
V(i+1)=CF(V(i),B(i))//CF為程序中是壓縮函數(shù),V0是初始值,長(zhǎng)度為256位
end for
for j=16 to 67
Wj=P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕
(Wj-13<7)⊕Wj-6
end for
for j=0 to 63
end for
壓縮函數(shù)執(zhí)行過(guò)程如下所示。其中:A~H為壓縮函數(shù)的中間變量;SS1、SS2、TT1、TT2為數(shù)據(jù)寄存器。256位的輸出哈希值為y=ABCDEFGH。
TT1←FFj(A,B,C)+D+((((A<<<12)+E+(Tj<< if j≥16 TT2←GGj(E,F,G)+H+(((A<<<12)+E+(Tj<< else TT2←GGj(E,F,G)+H+(((A<<<12)+E+(Tj<< D←C C←B<<<9 … 本文采用Go語(yǔ)言提供的測(cè)試工具對(duì)SM3算法性能進(jìn)行了測(cè)試。采用Go語(yǔ)言中內(nèi)置的性能分析工具pprof顯示性能測(cè)試過(guò)程。首先,在SM3算法的5個(gè)函數(shù)(即操作函數(shù)、數(shù)據(jù)填充函數(shù)、迭代壓縮函數(shù)、消息擴(kuò)展函數(shù)、壓縮函數(shù))中,壓縮函數(shù)由于存在大量寄存器變量讀寫操作,故耗時(shí)最大。如果壓縮函數(shù)僅執(zhí)行單次,考慮到其他函數(shù)與壓縮函數(shù)運(yùn)行時(shí)間不在同一量級(jí),故函數(shù)總耗時(shí)可忽略其他函數(shù);若多次執(zhí)行,則函數(shù)總耗時(shí)不可忽略其他函數(shù)運(yùn)行時(shí)間,且隨著壓縮函數(shù)執(zhí)行次數(shù)增多,函數(shù)總耗時(shí)不斷增長(zhǎng)。此外,算法總執(zhí)行時(shí)間定義為函數(shù)總耗時(shí)其他耗時(shí)之和。其中,其他耗時(shí)包括函數(shù)之間相互調(diào)用與寄存器間變量讀寫耗時(shí)。為此,研究選取單次壓縮函數(shù)耗時(shí)、函數(shù)總耗時(shí)以及算法總執(zhí)行時(shí)間為指標(biāo),對(duì)經(jīng)典SM3算法和改進(jìn)SM3算法進(jìn)行對(duì)比分析。研究測(cè)試了30次算法執(zhí)行結(jié)果。在測(cè)試結(jié)束后,使用top命令獲取耗時(shí)和耗資源排名前8的函數(shù)。經(jīng)典SM3算法與改進(jìn)SM3算法的性能統(tǒng)計(jì)如表1所示。 表1 不同算法的性能統(tǒng)計(jì) 與經(jīng)典SM3算法的運(yùn)行情況相比,改進(jìn)SM3算法的總運(yùn)行時(shí)間減少了約26.9%,壓縮函數(shù)的耗時(shí)減少了約28.7%。仿真結(jié)果證明,改進(jìn)方案能有效提高SM3算法的運(yùn)行效率。 本文通過(guò)模擬網(wǎng)絡(luò)攻擊(黑客入侵、木馬病毒等),對(duì)該系統(tǒng)安全性能進(jìn)行測(cè)試。由于系統(tǒng)運(yùn)行過(guò)程中的認(rèn)證碼及密文都是由改進(jìn)SM3算法明文生成的,故假定攻擊者會(huì)同時(shí)截獲密文和身份認(rèn)證。如果認(rèn)證碼與改進(jìn)SM3算法密文之間存在某種相關(guān)性,攻擊者可以通過(guò)統(tǒng)計(jì)分析猜測(cè)明文。因此,在測(cè)試中對(duì)密文進(jìn)行了不同程度的篡改攻擊,并利用統(tǒng)計(jì)方法分析了密文與認(rèn)證碼的相關(guān)性。具體操作如下。 首先,對(duì)長(zhǎng)度為1 326 B的信息進(jìn)行篡改測(cè)試,每次篡改50 B的密文,直到密文完全被篡改為止。認(rèn)證碼變化曲線如圖2所示。 圖2 認(rèn)證碼變化曲線Fig.2 Authentication code change curve 由圖2可知,改進(jìn)SM3算法受輸入長(zhǎng)度的限制,無(wú)法一次性完成消息認(rèn)證操作。因此,本文采用4個(gè)并行算法完成認(rèn)證操作。由于4個(gè)并行操作不允許相互關(guān)聯(lián),所以圖2中的曲線顯示為逐步上升。每個(gè)步驟之間的數(shù)據(jù)關(guān)聯(lián)越小,數(shù)據(jù)就越安全。 然后,應(yīng)用各種網(wǎng)絡(luò)攻擊來(lái)驗(yàn)證系統(tǒng)的安全性。 最后,對(duì)比了正常通信情況及存在網(wǎng)絡(luò)安全威脅情況下,系統(tǒng)運(yùn)行時(shí)主站和終端分別發(fā)送和接收驗(yàn)證包的數(shù)量。網(wǎng)絡(luò)安全威脅情況下攻擊方式包括偽造主站、偽造終端以及數(shù)據(jù)截獲這3種。網(wǎng)絡(luò)安全驗(yàn)證包的比較如表2所示。 由表2可知,正常數(shù)據(jù)情況下,主站和終端可有效進(jìn)行通信。當(dāng)存在網(wǎng)絡(luò)安全威脅時(shí),由于加密算法及數(shù)字認(rèn)證機(jī)制,使得主站與終端無(wú)法進(jìn)行數(shù)據(jù)傳輸,從而保證了網(wǎng)絡(luò)數(shù)據(jù)信息安全。 表2 網(wǎng)絡(luò)安全驗(yàn)證包的比較 本文研究了配電網(wǎng)絡(luò)中通信網(wǎng)絡(luò)的安全問(wèn)題,并提出基于改進(jìn)SM3算法的配電網(wǎng)絡(luò)安全網(wǎng)關(guān)系統(tǒng),以提高配電系統(tǒng)的網(wǎng)絡(luò)安全性。該系統(tǒng)結(jié)合光纖網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)的通信優(yōu)點(diǎn),并通過(guò)改進(jìn)的國(guó)密算法對(duì)通信內(nèi)容進(jìn)行加密,以確保數(shù)據(jù)的機(jī)密性和完整性。通過(guò)測(cè)試分析,改進(jìn)SM3算法的總運(yùn)行時(shí)間減少了約26.9%,壓縮函數(shù)的耗時(shí)減少了約28.7%,證明了改進(jìn)方案能有效提高SM3算法的運(yùn)行效率。同時(shí),本文對(duì)比了正常通信情況及網(wǎng)絡(luò)安全威脅情況下,系統(tǒng)運(yùn)行時(shí)主站和終端發(fā)送和接收驗(yàn)證包的數(shù)量,證明所提系統(tǒng)能夠應(yīng)對(duì)網(wǎng)絡(luò)攻擊來(lái)驗(yàn)證系統(tǒng)的安全性。測(cè)試結(jié)果驗(yàn)證了所提系統(tǒng)在安全方面的有效性及改進(jìn)SM3算法的運(yùn)行效率提升。4 驗(yàn)證及評(píng)估
4.1 算法運(yùn)行效率測(cè)試
4.2 系統(tǒng)安全性能測(cè)試
5 結(jié)論