邵猷海, 王勇, 楊云, 王相
(1.上海電力大學(xué),計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090;2.國網(wǎng)上海市電力公司, 上海 200122)
互聯(lián)網(wǎng)通信時(shí)代,隨著海量數(shù)據(jù)的接入,電力信息普遍相互傳輸,來自各方面惡意攻擊的可能性就越大。構(gòu)建一個(gè)安全、可靠、實(shí)時(shí)、高效的智能電力用戶用電信息采集傳輸系統(tǒng)是一項(xiàng)重要研究?jī)?nèi)容,其中最基本的目標(biāo)是能夠確保數(shù)據(jù)信息的完整性、機(jī)密性和有效性,從而確保電力信息系統(tǒng)穩(wěn)定可靠高效的運(yùn)行。此外,可靠的通信網(wǎng)絡(luò)也是實(shí)現(xiàn)用戶與采集終端進(jìn)行互動(dòng)的一個(gè)重要保障。
電力信息采集系統(tǒng)由于開放性和互動(dòng)性受到很多非法控制、設(shè)備冒用等安全隱患。國外2011年的“Night Gragon”病毒攻擊SCADA系統(tǒng),導(dǎo)致其中重要數(shù)據(jù)的丟失,這些寶貴數(shù)據(jù)直接帶來的經(jīng)濟(jì)損害不可估量。2012年的“Flame”病毒攻擊中東的多個(gè)國家,致使這些地區(qū)的人們用電遭受巨大變故,與之更為難以想象的是長(zhǎng)期的經(jīng)濟(jì)低迷帶來的正常生活的開展。2019年,位于大洋彼岸的南美洲國家委內(nèi)瑞拉遭受敵方刻意用電信息安全攻擊,導(dǎo)致全國發(fā)生大范圍內(nèi)停電,全國絕大多數(shù)州電力陷入供應(yīng)中斷的癱瘓局面,長(zhǎng)期以來這些大量的惡意攻擊事件的發(fā)生引起了安全專家對(duì)電力信息安全采集防護(hù)的重視并進(jìn)行深入研究。爨玉偉等[1]通過雙重加密密鑰的方式增加密鑰強(qiáng)度,從而提出一種DES密鑰延長(zhǎng)的方法,在傳統(tǒng)DES的基礎(chǔ)上,基于三重DES算法與獨(dú)立子密鑰的混合實(shí)現(xiàn)文件加密系統(tǒng),但是該方案局限于較短密鑰長(zhǎng)度且使用多重加密會(huì)增加額外的開銷,不利于大量數(shù)據(jù)的處理。劉珺峰等[2]提出將密鑰策略的屬性訪問控制方法應(yīng)用于智能電網(wǎng)中,實(shí)現(xiàn)了對(duì)電力數(shù)據(jù)的加密控制。然而在操作中心使用該功能密鑰時(shí),需要開啟多個(gè)屬性控制權(quán)限,不同權(quán)限之間的訪問不能相互連通。王煜等[3]優(yōu)化改進(jìn)了非對(duì)稱加密算法,通過混合利用公鑰密碼體制的思想將公私鑰保護(hù)應(yīng)用到加解密的系統(tǒng)實(shí)現(xiàn)上面,實(shí)現(xiàn)了對(duì)于待處理信息路徑來源和完整信息具體內(nèi)容的加密處理,但是該方法采用公鑰進(jìn)行解密無疑降低了信息的保密程度,應(yīng)對(duì)公鑰的保密提出新的要求。董偉偉等[4]提出使用RSA-AES-HASH安全采集傳輸方案,采用混合密碼體制實(shí)現(xiàn)電表與數(shù)據(jù)中心的身份認(rèn)證,可以同時(shí)集合密鑰管理的便利、安全和速度快等多個(gè)優(yōu)點(diǎn),但是這種認(rèn)證方式整個(gè)過程因?yàn)镽SA作為簽名認(rèn)證過程,較使用國密SM2簽名算法進(jìn)行身份認(rèn)證簽名速度慢,完整通信過程的耗時(shí)較大,不利于電力信息這種敏感數(shù)據(jù)對(duì)實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)合。張京倫[5]面對(duì)公鑰基礎(chǔ)設(shè)施存在不可調(diào)和的安全問題,優(yōu)化具體加密算法AES,給出了合理的解決方案,且實(shí)驗(yàn)結(jié)果表明該方案使用的自動(dòng)化工具性能很好,能夠有效抵抗外界惡意攻擊,然而這些安全算法的基礎(chǔ)是建立在國外密碼學(xué)算法之上,對(duì)于算法關(guān)鍵部分S盒設(shè)計(jì)的具體細(xì)節(jié)至今沒有公布,對(duì)于像我國電力行業(yè)這種涉及到民生領(lǐng)域存在很大的安全隱患。駱釗等[6]通過優(yōu)化國密SM2算法并深入研究其通信協(xié)議交互過程,設(shè)計(jì)出滿足國家對(duì)電力信息行業(yè)標(biāo)準(zhǔn)自主可控的信息防護(hù)平臺(tái),實(shí)驗(yàn)表明該信息防護(hù)平臺(tái)能夠保證通信雙方身份的準(zhǔn)確無誤且對(duì)不同用戶能否正常訪問的權(quán)限進(jìn)行了隱私保護(hù),實(shí)現(xiàn)對(duì)不同角色的個(gè)性化管理控制,但該方法每次傳輸都要通過完整的TLS握手來保障通信安全,給數(shù)據(jù)的傳輸帶來過長(zhǎng)的時(shí)延這一安全隱患,當(dāng)發(fā)生故障時(shí)對(duì)現(xiàn)場(chǎng)的監(jiān)控有嚴(yán)重后果。綜上所述,針對(duì)電力信息采集傳輸?shù)陌踩芯坎荒芡A粼谀骋环N國外加密算法的簡(jiǎn)單應(yīng)用,應(yīng)當(dāng)引入基于國內(nèi)密碼學(xué)標(biāo)準(zhǔn)多重加密算法的綜合應(yīng)用,本文利用嵌入式設(shè)備主控芯片STM32F103和電能計(jì)量芯片ATT7022搭建具備高精度、實(shí)時(shí)性強(qiáng)的小型電力用電信息采集系統(tǒng),解決了傳統(tǒng)電力采集裝置實(shí)時(shí)性差、精度不夠等問題。同時(shí)優(yōu)化對(duì)稱分組密碼SM4算法,進(jìn)行安全加密傳輸,加密過程使用的密鑰利用SM2對(duì)密鑰進(jìn)行防護(hù),結(jié)合三大國際主流對(duì)稱加密算法對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了比較,結(jié)果表明本方案可以減少內(nèi)存的消耗,有效地提高了數(shù)據(jù)加密的性能,從而可以保證電力生產(chǎn)和數(shù)據(jù)可靠的安全運(yùn)行。
本文設(shè)計(jì)的系統(tǒng)主要以低功耗嵌入式設(shè)備STM32F103為控制核心,對(duì)于高精度的電能參數(shù)的采集需要大量的浮點(diǎn)運(yùn)算且存儲(chǔ)空間較大以便實(shí)時(shí)存放,具有接口豐富、功耗低、運(yùn)行穩(wěn)定等特點(diǎn)。電力信息采集系統(tǒng)硬件模塊主要構(gòu)成如圖1所示。
圖1 電力信息采集系統(tǒng)硬件設(shè)計(jì)框圖
首先,對(duì)于待處理的電力信息并不能直接通過計(jì)量芯片處理,因?yàn)閷?shí)際場(chǎng)景電能參數(shù)很大,所以本系統(tǒng)設(shè)計(jì)會(huì)先經(jīng)由電流和電壓互感器進(jìn)行轉(zhuǎn)換為可以為后續(xù)處理模塊正常使用的數(shù)據(jù),然后利用電能計(jì)量芯片完成對(duì)三相電的各種有效值測(cè)量,與嵌入式主控芯片之間通過通用串行外設(shè)接口完成參數(shù)的傳送,MCU模塊實(shí)現(xiàn)電力信息的各種處理如顯示屏顯示、串口打印輸出等。通過采用ATT7022來實(shí)現(xiàn)電壓電流信號(hào)采集,可完成以往需要多臺(tái)儀器共同的測(cè)量才能完成的工作量,而且減少了設(shè)備損壞的可能,降低了出現(xiàn)誤測(cè)量的風(fēng)險(xiǎn)。本設(shè)計(jì)方案中ATT7022和MCU之間的數(shù)據(jù)傳送依靠SPI進(jìn)行,每一個(gè)SPI通信時(shí)需要用到幾條主要的信號(hào)線,其中片選CS負(fù)責(zé)選用哪個(gè)從設(shè)備進(jìn)行通信,選中方式為將引腳電平拉低,在下降沿到來的時(shí)候負(fù)責(zé)選中。主設(shè)備產(chǎn)生時(shí)鐘信號(hào)SCLK,采集芯片在下降沿的時(shí)候接收來自外界采樣的數(shù)據(jù),然后在上升沿翻轉(zhuǎn)的時(shí)候完成數(shù)據(jù)對(duì)外的輸出。
在設(shè)計(jì)軟件部分程序時(shí),首先需要對(duì)采集芯片進(jìn)行系統(tǒng)初始化。ATT7022芯片通過SPI引腳與MCU之間進(jìn)行數(shù)據(jù)的讀寫傳送,配置好該引腳之后選擇通信讀寫函數(shù)完成電力數(shù)據(jù)的讀寫操作,然后在ATT7022芯片地址寄存器中片選信號(hào)到達(dá)下降沿的時(shí)候,開始讀寫數(shù)據(jù),在一個(gè)完整的讀寫周期內(nèi)完成多個(gè)字節(jié)的讀寫,執(zhí)行指令后,片選信號(hào)會(huì)被拉高到上升沿,經(jīng)由這樣處理完成一次完整的數(shù)據(jù)傳輸過程。
該采集終端系統(tǒng)開發(fā)過程中通過IDE Keil5實(shí)現(xiàn)編程,完成相關(guān)配置,然后燒錄程序,設(shè)備正常獲取指令之后,采集系統(tǒng)會(huì)實(shí)時(shí)進(jìn)行相應(yīng)的用電信息獲取,通過選擇顯示屏輸出或者串口打印輸出的方式輸入到上位機(jī),經(jīng)由上位機(jī)的處理保存。用電信息采集系統(tǒng)的硬件實(shí)物如圖2所示。
圖2 電力信息采集系統(tǒng)硬件實(shí)物
目前使用較多的國際對(duì)稱分組加密算法有DES、AES、IDEA等,SM4算法[7]是我國自主設(shè)計(jì)的一個(gè)分組迭代密碼算法。不同于使用feistel結(jié)構(gòu)的DES以及使用SPN結(jié)構(gòu)的AES,SM4在設(shè)計(jì)過程使用滑動(dòng)窗口結(jié)構(gòu)。對(duì)于電力信息數(shù)據(jù)實(shí)時(shí)處理、運(yùn)算性能等高要求的場(chǎng)合均可采用嵌入SM4算法的物聯(lián)網(wǎng)設(shè)備,一方面由于算法在硬件電路設(shè)計(jì)上面有良好的性能,可以有效抗側(cè)信道攻擊以及電磁故障攻擊等,另一方面算法本身計(jì)算速度非???、穩(wěn)定。
SM4對(duì)稱加密算法[8]流程圖如圖3所示。
圖3 SM4算法加密計(jì)算過程
SM4對(duì)稱加密算法描述。
step1 32輪迭代運(yùn)算,
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rKi)=
Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rKi)
step2 反序變換處理輸出解密后的信息,
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=
(X35,X34,X33,X32)
傳統(tǒng)對(duì)稱分組加密算法SM4完整部分由加解密算法和輪密鑰擴(kuò)展算法共同組成,其分組長(zhǎng)度和密鑰長(zhǎng)度都比DES長(zhǎng),選用為128 bit,其安全性主要體現(xiàn)在設(shè)計(jì)過程中使用的S盒,國際主流對(duì)稱加密算法DES的S盒至今美國方面未曾完全公開,由此可以推斷,關(guān)于此類加密算法肯定存在不可忽視的后門情況,使用該類算法機(jī)制很容易對(duì)我國敏感數(shù)據(jù)造成威脅,我國自主研發(fā)的SM4算法目前已經(jīng)得到了廣泛使用,然而以往對(duì)于該類算法應(yīng)用主要集中在無線局域網(wǎng)產(chǎn)品當(dāng)中。優(yōu)化討論密鑰擴(kuò)展算法中初始密鑰的來源,前人往往都是隨機(jī)使用密鑰,并未形成一定的可靠性保護(hù)機(jī)制。
實(shí)驗(yàn)利用硬件電路設(shè)計(jì)的部分作為數(shù)據(jù)采集來源,身份認(rèn)證的原始消息即為采集中心的數(shù)據(jù),經(jīng)由公私鑰對(duì)生成后先進(jìn)行簽名后驗(yàn)證通過后經(jīng)由通信網(wǎng)絡(luò)對(duì)稱加密傳輸,送入主站系統(tǒng)。具體實(shí)驗(yàn)設(shè)備為處理器為八核CPU、主頻為1.6 GHz、RAM為16 G、512 G的SSD,Windows 10的操作系統(tǒng)計(jì)算機(jī),STM32與ATT7022E搭建的采集終端設(shè)備,虛擬機(jī)環(huán)境配置為基于Ubuntu7的Openssl開源軟件算法庫以及各種其他必要測(cè)量設(shè)備。
用戶用電信息通過采集系統(tǒng)發(fā)送到上位機(jī)保存,同時(shí)可以通過后臺(tái)獲取的數(shù)據(jù)進(jìn)行加密處理后再進(jìn)行傳輸,不同于明文在通信信道上的直接傳輸,經(jīng)過國密SM4算法加密處理后的數(shù)據(jù)能夠有效抵抗差分攻擊、側(cè)信道攻擊等第三方攻擊,任何企圖經(jīng)由竊取的信息進(jìn)行破解難度都是很大的,在密碼學(xué)研究領(lǐng)域,當(dāng)破解難度遠(yuǎn)大于使用效率的時(shí)候,即可認(rèn)定這種加密方案是安全可靠的。
下面首先對(duì)對(duì)稱分組密碼算法SM4與其他主流對(duì)稱加密算法DES、AES等進(jìn)行性能比較,測(cè)試環(huán)境為基于Ubuntu7的Openssl開源軟件算法庫,通過命令行終端輸入相應(yīng)的指令測(cè)試對(duì)稱分組加密算法性能,測(cè)試結(jié)果如圖4所示。
圖4 不同對(duì)稱加密算法處理數(shù)據(jù)塊測(cè)試結(jié)果
從圖4中可以分析到不同算法每秒完成處理的數(shù)據(jù)量是多少KB,比如對(duì)于待處理的數(shù)據(jù)如果按照256 bit來進(jìn)行分組,使用SM4對(duì)稱分組加密算法每秒處理約112 MB,DES每秒處理約83 M。當(dāng)處理數(shù)據(jù)量非常大的時(shí)候,此類對(duì)稱加密算法優(yōu)勢(shì)體現(xiàn)的更加明顯。對(duì)于涉及到我國基礎(chǔ)民生行業(yè)的電力用戶信息數(shù)據(jù)采用國密SM4系列算法進(jìn)行加密處理能夠很好的保證數(shù)據(jù)的機(jī)密性。使用非對(duì)稱密碼算法體制SM2的公鑰加密過SM4的加密密鑰可以保護(hù)密鑰的安全性,該密鑰具有強(qiáng)隨機(jī)性,SM2公鑰加密過程引入了SM3摘要生成算法,生成的摘要隨機(jī)性能很好,接著然后對(duì)待處理信息進(jìn)行加密處理,加密明文輸出密文結(jié)果如圖5所示。
圖5 SM4加密明文輸出結(jié)果
加密出來的密文通過驗(yàn)證與解密出來的數(shù)據(jù)是否一致判斷加密信息是否準(zhǔn)確無誤,實(shí)驗(yàn)結(jié)果可以看出該算法能夠正常加解密,為電力信息的防護(hù)提供了一個(gè)很好的基礎(chǔ)。
為了進(jìn)一步驗(yàn)證該方案使用SM4加密的優(yōu)勢(shì),本文使用Java編程語言設(shè)計(jì)程序?qū)ν浑娏π畔?shù)據(jù)分別采用DES、AES和RSA等不同加密算法進(jìn)行內(nèi)存消耗測(cè)試,從圖6實(shí)驗(yàn)結(jié)果可以看出,使用不同加密算法配合相應(yīng)的工作模式對(duì)同一數(shù)據(jù)進(jìn)行加密,內(nèi)存消耗有很大差異, SM4加密算法ECB和CBC模式內(nèi)存消耗均遠(yuǎn)小于AES、RSA等,進(jìn)一步可以判斷證明,該安全防護(hù)方案能夠以消耗較少的資源條件,適合推廣使用。
圖6 加密同一電力數(shù)據(jù)算法內(nèi)存消耗對(duì)比
本文針對(duì)用電信息采集系統(tǒng)可能存在的數(shù)據(jù)竊取等安全問題,利用嵌入式ARM芯片STM32F103與電能專用計(jì)量芯片ATT7022搭建小型用電采集系統(tǒng),該終端設(shè)備采集精度高、穩(wěn)定運(yùn)行、抗干擾能力強(qiáng),進(jìn)一步基于此使用對(duì)稱分組密碼SM4算法進(jìn)行數(shù)據(jù)加密,不僅有效避免了國外AES等算法可能存在的后門泄露事件,同時(shí)有效節(jié)省了硬件開發(fā)資源,卻能夠提供同等的安全強(qiáng)度。基于SM4算法加密對(duì)用電信息采集系統(tǒng)進(jìn)行安全防護(hù),防止有害信息和惡意攻擊對(duì)電力網(wǎng)的干擾而引發(fā)的重大生產(chǎn)事故具有非常重要的意義。通過研究電力數(shù)據(jù)的采集傳輸安全問題,接下來工作重點(diǎn)可以進(jìn)一步基于此搭建云服務(wù)器實(shí)現(xiàn)在線調(diào)試監(jiān)控,實(shí)現(xiàn)與電力用戶雙向互動(dòng),從而指導(dǎo)科學(xué)合理用電,提高終端用戶安全防護(hù)意識(shí)和電網(wǎng)運(yùn)行效率。