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