王明輝, 王 勇, 鄧 樂
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
微電網(wǎng)(MG)是由分布式能源(Distributed Energy Resources,DER)、變電站、各種用電設(shè)備及監(jiān)控和保護(hù)裝置相連構(gòu)成的小規(guī)模的有源配電網(wǎng)絡(luò)系統(tǒng)。根據(jù)國(guó)際電工委員會(huì)(International Electrotechnical Commission,IEC)的定義,微電網(wǎng)是“一組由負(fù)載和分布式能源相互連接、具有明確定義的電氣邊界。作為相對(duì)于電網(wǎng)的單一可控實(shí)體,可以通過與電網(wǎng)連接或斷開,使其能夠在并網(wǎng)或孤島模式下運(yùn)行”[1]。微電網(wǎng)信息管理系統(tǒng)的作用是為DER、變電站和各種用電設(shè)備之間進(jìn)行居中控制,從而優(yōu)化各個(gè)分布式電源設(shè)備、用電設(shè)備和變電站之間的電能調(diào)度,使微電網(wǎng)系統(tǒng)更加經(jīng)濟(jì)的運(yùn)行。但是,由于國(guó)內(nèi)的光伏發(fā)電裝置、風(fēng)力發(fā)電機(jī)組等各種分布式電源的生產(chǎn)廠商眾多,再加上DER通信協(xié)議和通信方式的多樣化,使得目前還沒有統(tǒng)一的微電網(wǎng)數(shù)據(jù)通信標(biāo)準(zhǔn)。微電網(wǎng)分布式能源計(jì)量、保護(hù)以及監(jiān)控等裝置的生產(chǎn)廠家大多自定義設(shè)備的信息規(guī)范,且通信接口類型各異,從而使微電網(wǎng)通信管理系統(tǒng)信息交互和控制系統(tǒng)設(shè)計(jì)增加了一定難度,并使得微電網(wǎng)在運(yùn)行控制和調(diào)度管理等方面受到很多制約[2]。
由于現(xiàn)場(chǎng)試驗(yàn)在前期規(guī)劃階段會(huì)提高成本,因此網(wǎng)絡(luò)模擬工具(如OPNET建模器等)常被用來對(duì)微電網(wǎng)進(jìn)行分析[3-4]。為了提高IEC 61850通信安全性及滿足實(shí)時(shí)通信的需要,NADEEM F等[5]設(shè)計(jì)并模擬了基于IEC 61850通信配置的XMPP保護(hù)方案。LI W等人[6]研究了IEC 61850網(wǎng)絡(luò)的事件驅(qū)動(dòng)及其對(duì)隨機(jī)行為的建模和評(píng)估,描述了IEC 61850信息行為的概率數(shù)學(xué)模型,并對(duì)其進(jìn)行了性能分析。鄭欣等人[7]為主動(dòng)配電網(wǎng)中的IEC 61850通信設(shè)計(jì)了IEC 61850信息模型,為電力信息交互打下了基礎(chǔ)。上述研究的主要缺點(diǎn)是測(cè)試所有互連問題的能力有限,很少關(guān)注數(shù)據(jù)傳輸層面IEC 61850通信的安全性,無法有效反映IEC 61850通信遇到的各類安全問題。
針對(duì)這些問題,本文提出了一種基于IEC 61850標(biāo)準(zhǔn)的通信模型的建模方法,對(duì)IEC 61850規(guī)約的通信安全性進(jìn)行了實(shí)驗(yàn)分析。具體來說,為了提高微電網(wǎng)通信的安全性,解決不同的廠商設(shè)備之間的互操作性問題,根據(jù)IEC 61850 ed2.0標(biāo)準(zhǔn)以通信數(shù)據(jù)在微電網(wǎng)傳輸中的特點(diǎn)[8],基于微電網(wǎng)的通信結(jié)構(gòu),根據(jù)系統(tǒng)的應(yīng)用需要和微電網(wǎng)拓?fù)涞臅r(shí)變特性,使用對(duì)象建模技術(shù),以微電網(wǎng)中的光伏發(fā)電設(shè)備為例,提出了一種基于IEC 61850的微電網(wǎng)數(shù)據(jù)的通信模型,并用IEC 61850通信仿真軟件搭建了測(cè)試環(huán)境,對(duì)所建立的數(shù)據(jù)模型進(jìn)行了通信測(cè)試。隨后,又對(duì)IEC 61850通信系統(tǒng)進(jìn)行了安全性測(cè)試,成功實(shí)現(xiàn)地址解析協(xié)議(Address Resolution Protocol,ARP)欺騙,使得IEC 61850客戶端上服務(wù)器端連接失敗,并進(jìn)一步對(duì)GOOSE報(bào)文進(jìn)行了篡改。最后,提出了基于SHA-256和RSA防御算法的安全通信機(jī)制,加強(qiáng)了IEC 61850通信的安全性。
以DER設(shè)備中的光伏發(fā)電裝置為例,介紹了微電網(wǎng)中基礎(chǔ)設(shè)備的建模方法。微電網(wǎng)中的光伏發(fā)電裝置相應(yīng)邏輯設(shè)備稱為PV(Photovoltaic)。傳統(tǒng)的建模方法是用各種邏輯節(jié)點(diǎn)來描述光伏發(fā)電裝置中集成的各個(gè)部分的功能,將這些邏輯節(jié)點(diǎn)統(tǒng)一形成光伏發(fā)電系統(tǒng)IEC 61850模型[9]。本文采用的建模方法是將每一個(gè)DER視為一個(gè)整體,每個(gè)DER都使用3種類型的通用智能電子設(shè)備(Intelligent Electronic Device,IED)建模,即合并單元(MU)、斷路器(Curcuit Breaker)、保護(hù)與控制(P& C)。這些通用IED在IEC 61850-7-3和IEC 61850-7-4中定義的邏輯節(jié)點(diǎn)的描述如表1所示。
表1 PV單元包含邏輯節(jié)點(diǎn)介紹
在IEC 61850標(biāo)準(zhǔn)中,信息建模是向通過適當(dāng)?shù)倪壿嫻?jié)點(diǎn)實(shí)現(xiàn)在不同IED和系統(tǒng)之間交換的數(shù)據(jù)提供標(biāo)準(zhǔn)化語法、語義和分層結(jié)構(gòu)的方法。針對(duì)微電網(wǎng)通信管理系統(tǒng)中數(shù)據(jù)應(yīng)用的特點(diǎn),本文提出了一種基于DER或負(fù)載整體建模的微電網(wǎng)數(shù)據(jù)模型新思路。 該思路根據(jù)對(duì)象建模技術(shù)面向設(shè)備進(jìn)行數(shù)據(jù)建模,將每個(gè)DER設(shè)備視為一個(gè)整體,每個(gè)DER都使用3種類型的通用IED建模,描述相應(yīng)DER設(shè)備的屬性,從而構(gòu)建出微電網(wǎng)發(fā)電或用電設(shè)備的基于IEC 61850的通信數(shù)據(jù)模型。
以DER設(shè)備中的光伏發(fā)電裝置為例,用于光伏電站的合并單元、斷路器IED、保護(hù)與控制IED的建模與相關(guān)的邏輯節(jié)點(diǎn)一起進(jìn)行,具體如圖1所示。
圖1 基于IEC 61850的光伏發(fā)電系統(tǒng)建模
由圖1可知,合并單元IED包括邏輯節(jié)點(diǎn)TVTR和TCTR,分別提供電壓采樣值及電流采樣值。斷路器IED包括邏輯節(jié)點(diǎn)XCBR,負(fù)責(zé)對(duì)具有短路分?jǐn)嗄芰Φ拈_關(guān)進(jìn)行建模。保護(hù)與控制IED包含6個(gè)邏輯節(jié)點(diǎn),即PTOC,PHIZ,DPVC,DTRC,MMXU,CSWI。DER起控制作用的IED包括表示其特定特征的邏輯節(jié)點(diǎn)以及存在于其他類型DER中的一些常見邏輯節(jié)點(diǎn),如DOPA,DPST,DOPM,DCCT,DSCH,DRCT,DRCS,DRCC等。邏輯節(jié)點(diǎn)DOPA控制DER的開始或停止,其數(shù)據(jù)對(duì)象“
每個(gè)DER由3種類型的IED組成。其中具有代表性的第1個(gè)節(jié)點(diǎn)是MMXU,負(fù)責(zé)發(fā)送電源電參數(shù),以便掌握輸入和輸出到系統(tǒng)的特定電源;第2個(gè)節(jié)點(diǎn)是MMET,主要負(fù)責(zé)監(jiān)測(cè)太陽輻射、溫度和風(fēng)速等參數(shù)。此外,作為CSWI和XCBR負(fù)載,且與每個(gè)電源相關(guān)聯(lián)的邏輯節(jié)點(diǎn),這些節(jié)點(diǎn)僅與操縱設(shè)備相關(guān)聯(lián),允許在故障的情況下打開、關(guān)閉或觸發(fā)電源。與ZINV逆變器相關(guān)的節(jié)點(diǎn)是通用的,它們?cè)谒锌稍偕茉粗卸挤浅V匾_x擇與每個(gè)電源相關(guān)聯(lián)的節(jié)點(diǎn),使得頻率、功率的參數(shù)或命令控制設(shè)備可以共享信息或從其他來源接收命令。構(gòu)建出光伏發(fā)電裝置的通信數(shù)據(jù)模型后,光伏發(fā)電裝置的所有功能約束將在模型中找到相應(yīng)的信息。
與一般的建模思路相比,本文提出的面向DER或用電設(shè)備整體的通信數(shù)據(jù)模型不必建立新的邏輯節(jié)點(diǎn),更合乎IEC 61850標(biāo)準(zhǔn);通信模型的建立只需要3種類型的IED,規(guī)范了數(shù)據(jù)結(jié)構(gòu),提高了建模效率,有利于保證數(shù)據(jù)通信的時(shí)效性。
根據(jù)IEC 61850標(biāo)準(zhǔn),參考變電站中IEC 61850標(biāo)準(zhǔn)的相關(guān)經(jīng)驗(yàn),智能微電網(wǎng)中基于IEC 61850通信的總體設(shè)計(jì)框圖如圖2所示。
圖2 微電網(wǎng)中基于IEC 61850通信的總體設(shè)計(jì)
由圖2可知,智能微電網(wǎng)的雙向通信系統(tǒng)可分為3層:微電網(wǎng)設(shè)備層集成智能電子設(shè)備并將電氣或非電氣參數(shù)收集到服務(wù)器;協(xié)議轉(zhuǎn)換層是連接IEC 61850客戶端和服務(wù)器之間的橋梁,在通信系統(tǒng)中起著重要作用;微電網(wǎng)內(nèi)的IEC 61850客戶端和數(shù)據(jù)庫,以及其他電力設(shè)備共同構(gòu)成了數(shù)據(jù)采集與監(jiān)視控制(Supervisory Control and Data Acquisition,SCADA)系統(tǒng),其與多種設(shè)備連接,進(jìn)一步構(gòu)成微電網(wǎng)控制層。SCADA系統(tǒng)中的IEC 61850客戶端和協(xié)議轉(zhuǎn)換層的IEC 61850服務(wù)器之間的通信是基于IEC 61850協(xié)議的,對(duì)通信數(shù)據(jù)的實(shí)時(shí)性要求較高。因此,本文提出了基于IEC 61850的微電網(wǎng)數(shù)據(jù)通信模型。該模型通過IEC 61850服務(wù)器向客戶端發(fā)送基于此通信模型構(gòu)建的數(shù)據(jù)包,IEC 61850客戶端接收數(shù)據(jù)包后對(duì)其進(jìn)行解析并對(duì)服務(wù)器端IED進(jìn)行實(shí)時(shí)控制。
智能微電網(wǎng)的通信網(wǎng)絡(luò)具有不同的操作流程,因此有必要確定不同操作的優(yōu)先級(jí),以確保高優(yōu)先級(jí)數(shù)據(jù)的服務(wù)質(zhì)量。從變電站數(shù)據(jù)信息的分類中可知,智能微電網(wǎng)的數(shù)據(jù)信息可以分為4種類型,即故障保護(hù)信息、周期性采樣信息、實(shí)時(shí)控制信息和背景信息[11]。它們的規(guī)定延遲要求和信息描述如表2所示。
表2 微電網(wǎng)信息類型描述及其規(guī)定延遲要求
4種信息的詳細(xì)描述為:故障保護(hù)信息由外部事件觸發(fā),此類信息傳輸時(shí)間短且實(shí)時(shí)性要求最高;周期性采樣信息基于時(shí)間驅(qū)動(dòng)機(jī)制產(chǎn)生,信息大小和傳輸時(shí)間間隔是預(yù)先確定的,此類信息數(shù)據(jù)量大,實(shí)時(shí)性和準(zhǔn)確性要求高;實(shí)時(shí)控制信息服務(wù)于控制命令,控制命令由上層系統(tǒng)根據(jù)全局能量?jī)?yōu)化控制策略進(jìn)行,屬于中速信息,實(shí)時(shí)要求低于前兩種信息;背景信息主要是指輔助服務(wù),即計(jì)費(fèi)信息和歷史數(shù)據(jù)記錄,具有最大量的數(shù)據(jù)和最低的實(shí)時(shí)要求。
IEC 61850標(biāo)準(zhǔn)在以太網(wǎng)中基于TCP/IP協(xié)議進(jìn)行傳輸。針對(duì)以太網(wǎng)進(jìn)行的攻擊如SYN洪泛攻擊、ARP攻擊等技術(shù)均能用來攻擊IEC 61850的通信過程,從而對(duì)IEC 61850的正常通信造成影響。
在建立IEC 61850客戶端與IEC 61850服務(wù)器端的通信過程后,首先用Wireshark抓取IEC 61850通信數(shù)據(jù)包,驗(yàn)證IEC 61850協(xié)議通過明文傳輸。通過設(shè)置IEC 61850客戶端與服務(wù)器端的參數(shù)文件和進(jìn)行網(wǎng)絡(luò)通信參數(shù)配置,在IEC 61850客戶端和IEC 61850服務(wù)器端以端口映射的方式建立正常的通信過程后,在IEC 61850客戶端采集延時(shí)過電流、電壓及功率輸出,保護(hù)控制裝置動(dòng)作信息。實(shí)驗(yàn)采用的是力通公司研發(fā)的IEC 61850通信仿真實(shí)驗(yàn)平臺(tái),IEC 61850報(bào)文采用明文傳輸,其中IED借助不同的邏輯節(jié)點(diǎn)和數(shù)據(jù)對(duì)象進(jìn)行建模。
IEC 61850客戶端獲取IEC 61850服務(wù)器端的模型配置信息后,通過端口映射的方式建立通信過程。在IEC 61850客戶端采集到延時(shí)過電流、電壓及功率輸出,保護(hù)控制裝置動(dòng)作信息,從而保證IEC 61850通信系統(tǒng)的正常運(yùn)行。本次實(shí)驗(yàn)的拓?fù)浣Y(jié)構(gòu)如圖3所示。
圖3 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
由圖3可知,因?yàn)榇蟛糠諭ED的軟件都是針對(duì)Windows平臺(tái)開發(fā)的,因此Windows主機(jī)主要用于運(yùn)行IEC 61850服務(wù)器端IED及進(jìn)行IED設(shè)置。然后,使用連接到IEC 61850網(wǎng)絡(luò)的兩個(gè)遠(yuǎn)程主機(jī)Linux及Windows訪問IED,以便Windows主機(jī)使用IEC 61850客戶端軟件訪問服務(wù)器端IED。Linux主機(jī)主要用于發(fā)起攻擊,包括對(duì)IEC 61850通信網(wǎng)絡(luò)里的IED進(jìn)行ARP攻擊、SYN洪泛攻擊,以及PingFlood攻擊等。
3.2.1 ARP攻擊測(cè)試
由于IEC 61850通信的實(shí)現(xiàn)是基于TCP/IP的,所以網(wǎng)絡(luò)傳輸過程中的弱點(diǎn)會(huì)在IEC 61850通信的過程中表現(xiàn)出來。本文使用ARP攻擊對(duì)IEC 61850通信系統(tǒng)進(jìn)行測(cè)試,ARP欺騙成功后會(huì)導(dǎo)致IEC 61850客戶端無法采集到服務(wù)器端IED的電壓和電流等信息。
ARP位于OSI網(wǎng)絡(luò)模型的數(shù)據(jù)鏈路層。在以太網(wǎng)中,各種協(xié)議的傳輸是通過各設(shè)備的MAC地址而非IP地址,因此需要ARP協(xié)議在數(shù)據(jù)傳輸?shù)倪^程中把目標(biāo)IP地址轉(zhuǎn)換為對(duì)應(yīng)的MAC地址,從而實(shí)現(xiàn)下一步通信。
ARP欺騙的具體實(shí)現(xiàn)過程為:當(dāng)A和B處在同一個(gè)局域網(wǎng)中,A以廣播的方式傳輸自身IP地址和MAC地址間的對(duì)應(yīng)關(guān)系,與A通信的設(shè)備緩存A的IP地址和MAC地址之間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)IP地址和MAC地址之間的轉(zhuǎn)換。在系統(tǒng)運(yùn)行過程中,局域網(wǎng)中設(shè)置了中間人C進(jìn)行ARP數(shù)據(jù)包的發(fā)送,這時(shí)靶機(jī)收到ARP數(shù)據(jù)包并進(jìn)行ARP緩存的更新,但這個(gè)ARP數(shù)據(jù)包是由不合法的用戶C發(fā)送的,從而導(dǎo)致合法用戶A發(fā)送的數(shù)據(jù)包無法被B接收,A和B之間無法實(shí)現(xiàn)正常的通信。
具體攻擊過程如下。
(1) 使用ARP-a命令對(duì)當(dāng)前系統(tǒng)的ARP緩存表進(jìn)行查詢,得到當(dāng)前主機(jī)能夠進(jìn)行正常通信的目標(biāo)主機(jī)的IP地址(192.168.1.5)及相應(yīng)的MAC地址(00-0c-29-d5-21-3d)。正常通信時(shí)MAC地址與IP地址間的對(duì)應(yīng)關(guān)系如圖4所示。
圖4 正常通信時(shí)MAC地址與IP地址間的對(duì)應(yīng)關(guān)系
(2) 利用編寫的Python程序進(jìn)行ARP欺騙。設(shè)置發(fā)送方和被攻擊方的IP地址,因?yàn)橐汛_定被攻擊主機(jī)的IP地址以及對(duì)應(yīng)的MAC地址,所以可利用Scapy函數(shù)庫向被攻擊主機(jī)進(jìn)行數(shù)據(jù)包的封裝和發(fā)送。APP程序運(yùn)行過程如圖5所示。
圖5 ARP程序運(yùn)行過程
3.2.2 ARP攻擊測(cè)試結(jié)果分析
用Wireshark軟件在相應(yīng)的局域網(wǎng)中抓取到如圖6所示的ARP數(shù)據(jù)包,抓取到的數(shù)據(jù)包表明被攻擊主機(jī)(192.168.1.15)更新了與之通信主機(jī)(192.168.1.5)的IP及MAC緩存表。
圖6 ARP數(shù)據(jù)的抓取
IEC 61850客戶端所在的IP地址(192.168.1.15)的主機(jī)的MAC緩存表變化如圖7所示。
圖7 MAC緩存表變化
由于客戶端系統(tǒng)收到攻擊者發(fā)出的ARP包,從而使對(duì)應(yīng)的MAC地址緩存表中的信息發(fā)生了改變,在IEC 61850客戶端后續(xù)跟服務(wù)器端進(jìn)行連接時(shí),將會(huì)使用這個(gè)MAC地址與服務(wù)器通信。由于該緩存中的MAC地址并不存在,所以后續(xù)通信連接失敗。在IEC 61850客戶端輸入服務(wù)器端地址未得到響應(yīng),IEC 61850客戶端連接服務(wù)器失敗,對(duì)IEC 61850客戶端進(jìn)行ARP欺騙成功。
3.2.3 篡改GOOSE數(shù)據(jù)
經(jīng)過上述攻擊后,可以得到IEC 61850客戶端發(fā)送給IEC 61850服務(wù)器端的通信數(shù)據(jù),繼而可以代理轉(zhuǎn)發(fā)以及對(duì)IEC 61850通信數(shù)據(jù)進(jìn)行篡改。通過IEC 61850規(guī)約明文傳輸及校驗(yàn)安全漏洞,最終使得IED繼電器跳閘。
IEC 61850提供了數(shù)據(jù)模型及建模規(guī)則,以所有類型的IED一致的方式組織數(shù)據(jù)。面向通用對(duì)象的變電站事件(Generic Object Oriented Substation Event,GOOSE)是IEC 61850標(biāo)準(zhǔn)中用于滿足變電站自動(dòng)化系統(tǒng)快速報(bào)文需求的機(jī)制。其中GOOSE報(bào)文是構(gòu)成IEC 61850協(xié)議的一部分,發(fā)揮斷路器控制、互鎖、一般報(bào)警和監(jiān)測(cè)電力變壓器的溫度等功能。本文針對(duì)GOOSE報(bào)文進(jìn)行捕獲,更改和重新注入GOOSE報(bào)文到IEC 61850通信網(wǎng)絡(luò)中,通過將篡改過的GOOSE報(bào)文重新轉(zhuǎn)發(fā)到IEC 61850通信網(wǎng)絡(luò)進(jìn)行傳輸,利用IEC 61850現(xiàn)有的安全漏洞,展示如何使用代碼篡改GOOSE報(bào)文對(duì)IEC 61850通信安全運(yùn)行造成的影響,強(qiáng)調(diào)了在IEC 61850通信系統(tǒng)部署安全措施的必要性。
GOOSE報(bào)文傳輸?shù)闹饕康氖翘峁┮环N快速可靠的機(jī)制,允許通過IEEE 802.3網(wǎng)絡(luò)在兩個(gè)或多個(gè)IED之間交換數(shù)據(jù)。為了交換這些數(shù)據(jù)報(bào)文,IEC 61850-8-1提供了一種基于發(fā)布/訂閱模型的通信類型,其中一個(gè)IED作為發(fā)布者創(chuàng)建一條消息,向作為訂閱用戶的目的地IED進(jìn)行來自源地址的單一傳輸。
GOOSE報(bào)文通過網(wǎng)絡(luò)定期發(fā)送。當(dāng)數(shù)據(jù)集值沒有變化時(shí),報(bào)文之間的重傳時(shí)間為T0。如果發(fā)生事件,則立即生成報(bào)文。在第一個(gè)事件報(bào)文之后,發(fā)布者重新發(fā)送(T1,T2,T3,…,Tn),直到它達(dá)到穩(wěn)定的重傳時(shí)間T0。如果超過T0,則用戶可以在通信鏈路或GOOSE報(bào)文中聲明問題。
GOOSE報(bào)文的傳輸過程如圖8所示。
圖8 GOOSE報(bào)文的傳輸過程
GOOSE報(bào)文有12個(gè)字段,前2個(gè)字段為前導(dǎo)和幀起始,等于以太網(wǎng)幀的前2個(gè)字段。目的地址對(duì)應(yīng)以太網(wǎng)MAC組播地址。已為IEC 61850分配了以3個(gè)8位字節(jié)(01-0C-CD)開頭的以太網(wǎng)地址。第4個(gè)8位字節(jié)可以是01表示GOOSE,02表示GSSE,04表示多播SMV。6個(gè)中的最后2個(gè)8位字節(jié)用作每個(gè)GOOSE報(bào)文的單獨(dú)地址。源地址是單播MAC地址。VLAN優(yōu)先級(jí)標(biāo)記為IEEE 802.1Q。GOOSE報(bào)文的以太類型是88-B8。長(zhǎng)度字節(jié)數(shù)是8+m(m為APDU的長(zhǎng)度,且m<1 492)。保留1和2字段為將來標(biāo)準(zhǔn)化應(yīng)用,并默認(rèn)設(shè)置為0。最后是幀校驗(yàn)和序列。
應(yīng)用協(xié)議數(shù)據(jù)單元(Application Protocol Data Unit,APDU)描述為10個(gè)字段。DatSet是一個(gè)描述數(shù)據(jù)集名稱的字符串;GoID是IED發(fā)送者標(biāo)識(shí)符;T是屬性StNum遞增的“時(shí)間戳”;StNum是“狀態(tài)編號(hào)”,每次發(fā)送GOOSE報(bào)文時(shí),計(jì)數(shù)器的值隨數(shù)據(jù)集值變化而遞增;SqNum是“序列號(hào)”,包含每個(gè)已發(fā)送GOOSE報(bào)文時(shí)間的增量計(jì)數(shù)器;“test”表示消息是否為測(cè)試;timeAllowedtoLive是接收方必須等待下一條消息的時(shí)間;ConfRev是數(shù)據(jù)集配置更改次數(shù)的計(jì)數(shù);NumDatSetEntries是“數(shù)據(jù)集條目數(shù)”,即構(gòu)成此特定數(shù)據(jù)集的元素?cái)?shù)。IEC 61850通信過程中GOOSE報(bào)文的發(fā)送及篡改過程如圖9所示。
攻擊媒介是攻擊者獲得對(duì)計(jì)算機(jī)或網(wǎng)絡(luò)的訪問權(quán)以實(shí)現(xiàn)其最終目標(biāo)的路徑或手段。攻擊媒介可以利用系統(tǒng)漏洞或人為操作,即通過在訪問GOOSE網(wǎng)絡(luò)且無意中攜帶惡意軟件的維護(hù)操作員或在IEC 61850通信用的計(jì)算機(jī)上安裝惡意程序來獲取報(bào)文信息。
圖9 GOOSE報(bào)文的發(fā)送及篡改過程
由于IEC 61850通信的網(wǎng)絡(luò)基礎(chǔ)是以太網(wǎng),因此有幾種第2層攻擊技術(shù)可以應(yīng)用于捕獲GOOSE報(bào)文。包括ARP攻擊、MAC洪泛攻擊、生成樹攻擊和VLAN跳頻攻擊等。執(zhí)行第2層攻擊后,因GOOSE報(bào)文的主要目的是在設(shè)備之間傳送重要信息,相應(yīng)值的任何改變都可能導(dǎo)致電力系統(tǒng)故障,在電力變壓器或斷路器等現(xiàn)場(chǎng)設(shè)備中造成物理損壞。
實(shí)際的GOOSE報(bào)文欺騙攻擊可以分為4個(gè)步驟。首先,監(jiān)視物理端口上的數(shù)據(jù)包,根據(jù)以太類型識(shí)別查找GOOSE報(bào)文。其次,使用抽象語法標(biāo)記(ASN.1)和基本編碼規(guī)則(BER)解碼GOOSE報(bào)文。再次,更改每個(gè)數(shù)據(jù)集中的值,保持不同計(jì)數(shù)器和計(jì)時(shí)器的順序。最后,使用BER對(duì)數(shù)據(jù)包進(jìn)行編碼,并通過克隆源MAC地址的物理端口發(fā)送數(shù)據(jù)包。
本文GOOSE數(shù)據(jù)包的篡改通過Python程序結(jié)合Scapy庫實(shí)現(xiàn)。執(zhí)行攻擊的第一步是識(shí)別網(wǎng)絡(luò)中的GOOSE報(bào)文。使用Scapy監(jiān)控所有物理端口并捕獲原始數(shù)據(jù)包后,代碼會(huì)解析以太網(wǎng)幀,尋找特定的GOOSE Ether類型。在這里選擇的特定字段是0x88B8。其次,使用IEC 61850-8-1中規(guī)定的ASN.1定義解碼GOOSE報(bào)文。解碼后,腳本會(huì)查找3個(gè)特定字段:stNum,sqNum和數(shù)據(jù)集內(nèi)的布爾值。對(duì)于數(shù)據(jù)集內(nèi)的任何布爾值,如果值為true,則代碼將覆蓋false;反之亦然。當(dāng)數(shù)據(jù)篡改成功后,就可以使用與被攻擊用戶相同的源及目標(biāo)MAC地址轉(zhuǎn)發(fā)篡改后的數(shù)據(jù)包。
3.2.4 篡改數(shù)據(jù)結(jié)果分析
篡改后的布爾值如圖10所示。由圖10可知,GOOSE數(shù)據(jù)包的參數(shù)名“test”的布爾值已經(jīng)改為false,在此狀態(tài)下不可發(fā)送GOOSE報(bào)文,對(duì)IEC 61850服務(wù)器端IED的攻擊成功。
圖10 篡改后的布爾值
針對(duì)IEC 61850通信過程中安全性不高的問題,本文提出了基于SHA-256和RSA的防御算法的安全通信機(jī)制。ARP的最大問題是IEC 61850客戶端主機(jī)與IEC 61850服務(wù)器端交換MAC地址時(shí)缺少身份驗(yàn)證,因此,本文通過將SHA-256(安全哈希算法)和RSA相結(jié)合,加密算法提高通信的安全性。
RSA加密算法:主要用于在不安全網(wǎng)絡(luò)上傳輸數(shù)據(jù)時(shí)保護(hù)敏感數(shù)據(jù),也稱為非對(duì)稱加密。它使用2個(gè)不同的密鑰,一個(gè)公共密鑰(每個(gè)人都可以訪問)和一個(gè)私有密鑰(僅所有者可用)。
安全哈希算法(Secure Hash Algorithm,SHA):SHA-2是一組加密哈希函數(shù)(包括SHA-224,SHA-256,SHA-384,SHA-512)。由于散列的大小較大,所以SHA-2家族比其前身SHA-1家族和MD5更安全。此外,SHA-512比SHA-256更安全,但速度較慢。因此,在綜合考慮所采用的技術(shù)時(shí),最終決定采用SHA-256。
SHA-256和RSA簽名及校驗(yàn)流程如圖11所示。
圖11 SHA256和RSA簽名及校驗(yàn)流程
簽名流程:RSA使用成對(duì)的密鑰,包括公鑰和私鑰。私鑰由擁有該密鑰的使用者保密,并且可以用于創(chuàng)建加密的數(shù)字簽名。數(shù)字簽名由加密的數(shù)據(jù)塊組成。在將數(shù)據(jù)傳送給接收者之前,已使用私鑰對(duì)其進(jìn)行了加密。接收者接收后,使用公鑰解密數(shù)字簽名,從而驗(yàn)證發(fā)送者的身份。
校驗(yàn)流程:為了創(chuàng)建數(shù)字簽名,IEC 61850服務(wù)器端發(fā)送報(bào)文時(shí)可以創(chuàng)建要簽名的數(shù)據(jù)的單向哈希。哈希值與哈希數(shù)據(jù)對(duì)應(yīng),但無法從哈希中確定原始數(shù)據(jù)。將哈希函數(shù)應(yīng)用于數(shù)據(jù)時(shí),任何修改數(shù)據(jù)的嘗試都必然導(dǎo)致不同的哈希值。因此,可以通過以下方式在接收者處確認(rèn)數(shù)據(jù)的完整性。
(1) 使用簽名者的公鑰來解密哈希;
(2) 使用相同的哈希函數(shù)計(jì)算接收到的數(shù)據(jù)的哈希值;
(3) 將在接收方計(jì)算出的哈希值與發(fā)送方哈希的解密版本進(jìn)行比較,如果兩個(gè)哈希值不匹配,則接收端將知道數(shù)據(jù)已被修改,或者使用不與簽名者提供的公鑰相對(duì)應(yīng)的私鑰創(chuàng)建簽名。
綜上所述,基于SHA-256和RSA防御算法的安全通信機(jī)制可以有效地防止IEC 61850通信過程中遭受攻擊以及通信數(shù)據(jù)篡改的問題,提高了IEC 61850通信的安全性。
基于面向?qū)ο蠼5姆椒?本文提出了一種基于IEC 61850標(biāo)準(zhǔn)的微電網(wǎng)通信體系結(jié)構(gòu),將分布式電源或負(fù)荷視為整體構(gòu)建的通信數(shù)據(jù)模型,其中每個(gè)發(fā)電或用電設(shè)備都使用3種類型的通用IED建模。設(shè)計(jì)了相關(guān)實(shí)驗(yàn),驗(yàn)證了該通信模型在相應(yīng)的IEC 61850客戶端和服務(wù)器上的具體實(shí)現(xiàn)過程。采用ARP欺騙攻擊對(duì)基于此通信數(shù)據(jù)模型的IEC 61850通信過程進(jìn)行了安全性測(cè)試。針對(duì)IEC 61850通信過程中可能面臨的各種攻擊以及通信數(shù)據(jù)被篡改的風(fēng)險(xiǎn),提出了基于SHA-256和RSA防御算法的安全通信機(jī)制。