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