光伏发电系统IEC 61850的通信安全性研究

2022-02-11 02:53王明辉
上海电力大学学报 2022年1期
关键词:服务器端哈希报文

王明辉, 王 勇, 邓 乐

(上海电力大学 计算机科学与技术学院, 上海 200090)

微电网(MG)是由分布式能源(Distributed Energy Resources,DER)、变电站、各种用电设备及监控和保护装置相连构成的小规模的有源配电网络系统。根据国际电工委员会(International Electrotechnical Commission,IEC)的定义,微电网是“一组由负载和分布式能源相互连接、具有明确定义的电气边界。作为相对于电网的单一可控实体,可以通过与电网连接或断开,使其能够在并网或孤岛模式下运行”[1]。微电网信息管理系统的作用是为DER、变电站和各种用电设备之间进行居中控制,从而优化各个分布式电源设备、用电设备和变电站之间的电能调度,使微电网系统更加经济的运行。但是,由于国内的光伏发电装置、风力发电机组等各种分布式电源的生产厂商众多,再加上DER通信协议和通信方式的多样化,使得目前还没有统一的微电网数据通信标准。微电网分布式能源计量、保护以及监控等装置的生产厂家大多自定义设备的信息规范,且通信接口类型各异,从而使微电网通信管理系统信息交互和控制系统设计增加了一定难度,并使得微电网在运行控制和调度管理等方面受到很多制约[2]。

由于现场试验在前期规划阶段会提高成本,因此网络模拟工具(如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规约的通信安全性进行了实验分析。具体来说,为了提高微电网通信的安全性,解决不同的厂商设备之间的互操作性问题,根据IEC 61850 ed2.0标准以通信数据在微电网传输中的特点[8],基于微电网的通信结构,根据系统的应用需要和微电网拓扑的时变特性,使用对象建模技术,以微电网中的光伏发电设备为例,提出了一种基于IEC 61850的微电网数据的通信模型,并用IEC 61850通信仿真软件搭建了测试环境,对所建立的数据模型进行了通信测试。随后,又对IEC 61850通信系统进行了安全性测试,成功实现地址解析协议(Address Resolution Protocol,ARP)欺骗,使得IEC 61850客户端上服务器端连接失败,并进一步对GOOSE报文进行了篡改。最后,提出了基于SHA-256和RSA防御算法的安全通信机制,加强了IEC 61850通信的安全性。

1 系统模型

1.1 光伏发电系统逻辑节点描述

以DER设备中的光伏发电装置为例,介绍了微电网中基础设备的建模方法。微电网中的光伏发电装置相应逻辑设备称为PV(Photovoltaic)。传统的建模方法是用各种逻辑节点来描述光伏发电装置中集成的各个部分的功能,将这些逻辑节点统一形成光伏发电系统IEC 61850模型[9]。本文采用的建模方法是将每一个DER视为一个整体,每个DER都使用3种类型的通用智能电子设备(Intelligent Electronic Device,IED)建模,即合并单元(MU)、断路器(Curcuit Breaker)、保护与控制(P& C)。这些通用IED在IEC 61850-7-3和IEC 61850-7-4中定义的逻辑节点的描述如表1所示。

表1 PV单元包含逻辑节点介绍

1.2 基于IEC 61850的光伏发电系统建模

在IEC 61850标准中,信息建模是向通过适当的逻辑节点实现在不同IED和系统之间交换的数据提供标准化语法、语义和分层结构的方法。针对微电网通信管理系统中数据应用的特点,本文提出了一种基于DER或负载整体建模的微电网数据模型新思路。 该思路根据对象建模技术面向设备进行数据建模,将每个DER设备视为一个整体,每个DER都使用3种类型的通用IED建模,描述相应DER设备的属性,从而构建出微电网发电或用电设备的基于IEC 61850的通信数据模型。

以DER设备中的光伏发电装置为例,用于光伏电站的合并单元、断路器IED、保护与控制IED的建模与相关的逻辑节点一起进行,具体如图1所示。

图1 基于IEC 61850的光伏发电系统建模

由图1可知,合并单元IED包括逻辑节点TVTR和TCTR,分别提供电压采样值及电流采样值。断路器IED包括逻辑节点XCBR,负责对具有短路分断能力的开关进行建模。保护与控制IED包含6个逻辑节点,即PTOC,PHIZ,DPVC,DTRC,MMXU,CSWI。DER起控制作用的IED包括表示其特定特征的逻辑节点以及存在于其他类型DER中的一些常见逻辑节点,如DOPA,DPST,DOPM,DCCT,DSCH,DRCT,DRCS,DRCC等。逻辑节点DOPA控制DER的开始或停止,其数据对象“DEROpMode”提供DER的当前操作模式;逻辑节点DPST的数据对象“ECPConn”和“TotWh”提供ECP的实时连接状态和测量信息;逻辑节点DOPM具备与DER不同操作模式的设置相对应的DO;DCCT和DSCH节点用于DER经济调度参数和能量服务调度的设置,而DRCT,DRCS,DRCC分别用于设置DER单元的控制器特性、状态和控制动作[10]。因为希望该建模能在不同的IEC 61850网络中使用,所以尽量保持其通用性使其应用于不同的方案。

每个DER由3种类型的IED组成。其中具有代表性的第1个节点是MMXU,负责发送电源电参数,以便掌握输入和输出到系统的特定电源;第2个节点是MMET,主要负责监测太阳辐射、温度和风速等参数。此外,作为CSWI和XCBR负载,且与每个电源相关联的逻辑节点,这些节点仅与操纵设备相关联,允许在故障的情况下打开、关闭或触发电源。与ZINV逆变器相关的节点是通用的,它们在所有可再生能源中都非常重要。选择与每个电源相关联的节点,使得频率、功率的参数或命令控制设备可以共享信息或从其他来源接收命令。构建出光伏发电装置的通信数据模型后,光伏发电装置的所有功能约束将在模型中找到相应的信息。

与一般的建模思路相比,本文提出的面向DER或用电设备整体的通信数据模型不必建立新的逻辑节点,更合乎IEC 61850标准;通信模型的建立只需要3种类型的IED,规范了数据结构,提高了建模效率,有利于保证数据通信的时效性。

2 基于IEC 61850的光伏发电系统数据通信结构

根据IEC 61850标准,参考变电站中IEC 61850标准的相关经验,智能微电网中基于IEC 61850通信的总体设计框图如图2所示。

图2 微电网中基于IEC 61850通信的总体设计

2.1 基于IEC 61850标准的3层通信结构

由图2可知,智能微电网的双向通信系统可分为3层:微电网设备层集成智能电子设备并将电气或非电气参数收集到服务器;协议转换层是连接IEC 61850客户端和服务器之间的桥梁,在通信系统中起着重要作用;微电网内的IEC 61850客户端和数据库,以及其他电力设备共同构成了数据采集与监视控制(Supervisory Control and Data Acquisition,SCADA)系统,其与多种设备连接,进一步构成微电网控制层。SCADA系统中的IEC 61850客户端和协议转换层的IEC 61850服务器之间的通信是基于IEC 61850协议的,对通信数据的实时性要求较高。因此,本文提出了基于IEC 61850的微电网数据通信模型。该模型通过IEC 61850服务器向客户端发送基于此通信模型构建的数据包,IEC 61850客户端接收数据包后对其进行解析并对服务器端IED进行实时控制。

2.2 数据消息类型

智能微电网的通信网络具有不同的操作流程,因此有必要确定不同操作的优先级,以确保高优先级数据的服务质量。从变电站数据信息的分类中可知,智能微电网的数据信息可以分为4种类型,即故障保护信息、周期性采样信息、实时控制信息和背景信息[11]。它们的规定延迟要求和信息描述如表2所示。

表2 微电网信息类型描述及其规定延迟要求

4种信息的详细描述为:故障保护信息由外部事件触发,此类信息传输时间短且实时性要求最高;周期性采样信息基于时间驱动机制产生,信息大小和传输时间间隔是预先确定的,此类信息数据量大,实时性和准确性要求高;实时控制信息服务于控制命令,控制命令由上层系统根据全局能量优化控制策略进行,属于中速信息,实时要求低于前两种信息;背景信息主要是指辅助服务,即计费信息和历史数据记录,具有最大量的数据和最低的实时要求。

3 安全性测试

IEC 61850标准在以太网中基于TCP/IP协议进行传输。针对以太网进行的攻击如SYN洪泛攻击、ARP攻击等技术均能用来攻击IEC 61850的通信过程,从而对IEC 61850的正常通信造成影响。

3.1 实验环境

在建立IEC 61850客户端与IEC 61850服务器端的通信过程后,首先用Wireshark抓取IEC 61850通信数据包,验证IEC 61850协议通过明文传输。通过设置IEC 61850客户端与服务器端的参数文件和进行网络通信参数配置,在IEC 61850客户端和IEC 61850服务器端以端口映射的方式建立正常的通信过程后,在IEC 61850客户端采集延时过电流、电压及功率输出,保护控制装置动作信息。实验采用的是力通公司研发的IEC 61850通信仿真实验平台,IEC 61850报文采用明文传输,其中IED借助不同的逻辑节点和数据对象进行建模。

IEC 61850客户端获取IEC 61850服务器端的模型配置信息后,通过端口映射的方式建立通信过程。在IEC 61850客户端采集到延时过电流、电压及功率输出,保护控制装置动作信息,从而保证IEC 61850通信系统的正常运行。本次实验的拓扑结构如图3所示。

图3 网络拓扑结构

由图3可知,因为大部分IED的软件都是针对Windows平台开发的,因此Windows主机主要用于运行IEC 61850服务器端IED及进行IED设置。然后,使用连接到IEC 61850网络的两个远程主机Linux及Windows访问IED,以便Windows主机使用IEC 61850客户端软件访问服务器端IED。Linux主机主要用于发起攻击,包括对IEC 61850通信网络里的IED进行ARP攻击、SYN洪泛攻击,以及PingFlood攻击等。

3.2 安全性测试

3.2.1 ARP攻击测试

由于IEC 61850通信的实现是基于TCP/IP的,所以网络传输过程中的弱点会在IEC 61850通信的过程中表现出来。本文使用ARP攻击对IEC 61850通信系统进行测试,ARP欺骗成功后会导致IEC 61850客户端无法采集到服务器端IED的电压和电流等信息。

ARP位于OSI网络模型的数据链路层。在以太网中,各种协议的传输是通过各设备的MAC地址而非IP地址,因此需要ARP协议在数据传输的过程中把目标IP地址转换为对应的MAC地址,从而实现下一步通信。

ARP欺骗的具体实现过程为:当A和B处在同一个局域网中,A以广播的方式传输自身IP地址和MAC地址间的对应关系,与A通信的设备缓存A的IP地址和MAC地址之间的对应关系,实现IP地址和MAC地址之间的转换。在系统运行过程中,局域网中设置了中间人C进行ARP数据包的发送,这时靶机收到ARP数据包并进行ARP缓存的更新,但这个ARP数据包是由不合法的用户C发送的,从而导致合法用户A发送的数据包无法被B接收,A和B之间无法实现正常的通信。

具体攻击过程如下。

(1) 使用ARP-a命令对当前系统的ARP缓存表进行查询,得到当前主机能够进行正常通信的目标主机的IP地址(192.168.1.5)及相应的MAC地址(00-0c-29-d5-21-3d)。正常通信时MAC地址与IP地址间的对应关系如图4所示。

图4 正常通信时MAC地址与IP地址间的对应关系

(2) 利用编写的Python程序进行ARP欺骗。设置发送方和被攻击方的IP地址,因为已确定被攻击主机的IP地址以及对应的MAC地址,所以可利用Scapy函数库向被攻击主机进行数据包的封装和发送。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缓存表变化

由于客户端系统收到攻击者发出的ARP包,从而使对应的MAC地址缓存表中的信息发生了改变,在IEC 61850客户端后续跟服务器端进行连接时,将会使用这个MAC地址与服务器通信。由于该缓存中的MAC地址并不存在,所以后续通信连接失败。在IEC 61850客户端输入服务器端地址未得到响应,IEC 61850客户端连接服务器失败,对IEC 61850客户端进行ARP欺骗成功。

3.2.3 篡改GOOSE数据

经过上述攻击后,可以得到IEC 61850客户端发送给IEC 61850服务器端的通信数据,继而可以代理转发以及对IEC 61850通信数据进行篡改。通过IEC 61850规约明文传输及校验安全漏洞,最终使得IED继电器跳闸。

IEC 61850提供了数据模型及建模规则,以所有类型的IED一致的方式组织数据。面向通用对象的变电站事件(Generic Object Oriented Substation Event,GOOSE)是IEC 61850标准中用于满足变电站自动化系统快速报文需求的机制。其中GOOSE报文是构成IEC 61850协议的一部分,发挥断路器控制、互锁、一般报警和监测电力变压器的温度等功能。本文针对GOOSE报文进行捕获,更改和重新注入GOOSE报文到IEC 61850通信网络中,通过将篡改过的GOOSE报文重新转发到IEC 61850通信网络进行传输,利用IEC 61850现有的安全漏洞,展示如何使用代码篡改GOOSE报文对IEC 61850通信安全运行造成的影响,强调了在IEC 61850通信系统部署安全措施的必要性。

GOOSE报文传输的主要目的是提供一种快速可靠的机制,允许通过IEEE 802.3网络在两个或多个IED之间交换数据。为了交换这些数据报文,IEC 61850-8-1提供了一种基于发布/订阅模型的通信类型,其中一个IED作为发布者创建一条消息,向作为订阅用户的目的地IED进行来自源地址的单一传输。

GOOSE报文通过网络定期发送。当数据集值没有变化时,报文之间的重传时间为T0。如果发生事件,则立即生成报文。在第一个事件报文之后,发布者重新发送(T1,T2,T3,…,Tn),直到它达到稳定的重传时间T0。如果超过T0,则用户可以在通信链路或GOOSE报文中声明问题。

GOOSE报文的传输过程如图8所示。

图8 GOOSE报文的传输过程

GOOSE报文有12个字段,前2个字段为前导和帧起始,等于以太网帧的前2个字段。目的地址对应以太网MAC组播地址。已为IEC 61850分配了以3个8位字节(01-0C-CD)开头的以太网地址。第4个8位字节可以是01表示GOOSE,02表示GSSE,04表示多播SMV。6个中的最后2个8位字节用作每个GOOSE报文的单独地址。源地址是单播MAC地址。VLAN优先级标记为IEEE 802.1Q。GOOSE报文的以太类型是88-B8。长度字节数是8+m(m为APDU的长度,且m<1 492)。保留1和2字段为将来标准化应用,并默认设置为0。最后是帧校验和序列。

应用协议数据单元(Application Protocol Data Unit,APDU)描述为10个字段。DatSet是一个描述数据集名称的字符串;GoID是IED发送者标识符;T是属性StNum递增的“时间戳”;StNum是“状态编号”,每次发送GOOSE报文时,计数器的值随数据集值变化而递增;SqNum是“序列号”,包含每个已发送GOOSE报文时间的增量计数器;“test”表示消息是否为测试;timeAllowedtoLive是接收方必须等待下一条消息的时间;ConfRev是数据集配置更改次数的计数;NumDatSetEntries是“数据集条目数”,即构成此特定数据集的元素数。IEC 61850通信过程中GOOSE报文的发送及篡改过程如图9所示。

攻击媒介是攻击者获得对计算机或网络的访问权以实现其最终目标的路径或手段。攻击媒介可以利用系统漏洞或人为操作,即通过在访问GOOSE网络且无意中携带恶意软件的维护操作员或在IEC 61850通信用的计算机上安装恶意程序来获取报文信息。

图9 GOOSE报文的发送及篡改过程

由于IEC 61850通信的网络基础是以太网,因此有几种第2层攻击技术可以应用于捕获GOOSE报文。包括ARP攻击、MAC洪泛攻击、生成树攻击和VLAN跳频攻击等。执行第2层攻击后,因GOOSE报文的主要目的是在设备之间传送重要信息,相应值的任何改变都可能导致电力系统故障,在电力变压器或断路器等现场设备中造成物理损坏。

实际的GOOSE报文欺骗攻击可以分为4个步骤。首先,监视物理端口上的数据包,根据以太类型识别查找GOOSE报文。其次,使用抽象语法标记(ASN.1)和基本编码规则(BER)解码GOOSE报文。再次,更改每个数据集中的值,保持不同计数器和计时器的顺序。最后,使用BER对数据包进行编码,并通过克隆源MAC地址的物理端口发送数据包。

本文GOOSE数据包的篡改通过Python程序结合Scapy库实现。执行攻击的第一步是识别网络中的GOOSE报文。使用Scapy监控所有物理端口并捕获原始数据包后,代码会解析以太网帧,寻找特定的GOOSE Ether类型。在这里选择的特定字段是0x88B8。其次,使用IEC 61850-8-1中规定的ASN.1定义解码GOOSE报文。解码后,脚本会查找3个特定字段:stNum,sqNum和数据集内的布尔值。对于数据集内的任何布尔值,如果值为true,则代码将覆盖false;反之亦然。当数据篡改成功后,就可以使用与被攻击用户相同的源及目标MAC地址转发篡改后的数据包。

3.2.4 篡改数据结果分析

篡改后的布尔值如图10所示。由图10可知,GOOSE数据包的参数名“test”的布尔值已经改为false,在此状态下不可发送GOOSE报文,对IEC 61850服务器端IED的攻击成功。

图10 篡改后的布尔值

4 防御机制

4.1 基于IEC 61850的SHA256和RSA防御机制

针对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。

4.2 基于SHA256和RSA的IEC 61850通信流程

SHA-256和RSA签名及校验流程如图11所示。

图11 SHA256和RSA签名及校验流程

签名流程:RSA使用成对的密钥,包括公钥和私钥。私钥由拥有该密钥的使用者保密,并且可以用于创建加密的数字签名。数字签名由加密的数据块组成。在将数据传送给接收者之前,已使用私钥对其进行了加密。接收者接收后,使用公钥解密数字签名,从而验证发送者的身份。

校验流程:为了创建数字签名,IEC 61850服务器端发送报文时可以创建要签名的数据的单向哈希。哈希值与哈希数据对应,但无法从哈希中确定原始数据。将哈希函数应用于数据时,任何修改数据的尝试都必然导致不同的哈希值。因此,可以通过以下方式在接收者处确认数据的完整性。

(1) 使用签名者的公钥来解密哈希;

(2) 使用相同的哈希函数计算接收到的数据的哈希值;

(3) 将在接收方计算出的哈希值与发送方哈希的解密版本进行比较,如果两个哈希值不匹配,则接收端将知道数据已被修改,或者使用不与签名者提供的公钥相对应的私钥创建签名。

综上所述,基于SHA-256和RSA防御算法的安全通信机制可以有效地防止IEC 61850通信过程中遭受攻击以及通信数据篡改的问题,提高了IEC 61850通信的安全性。

5 结 语

基于面向对象建模的方法,本文提出了一种基于IEC 61850标准的微电网通信体系结构,将分布式电源或负荷视为整体构建的通信数据模型,其中每个发电或用电设备都使用3种类型的通用IED建模。设计了相关实验,验证了该通信模型在相应的IEC 61850客户端和服务器上的具体实现过程。采用ARP欺骗攻击对基于此通信数据模型的IEC 61850通信过程进行了安全性测试。针对IEC 61850通信过程中可能面临的各种攻击以及通信数据被篡改的风险,提出了基于SHA-256和RSA防御算法的安全通信机制。

猜你喜欢
服务器端哈希报文
基于J1939 协议多包报文的时序研究及应用
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
低轨星座短报文通信中的扩频信号二维快捕优化与实现
Linux环境下基于Socket的数据传输软件设计
文件哈希值处理一条龙
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计