APP下载

一种基于变电站通信的GOOSE报文认证机制

2020-03-27牛津文

通信电源技术 2020年22期
关键词:字符串接收端报文

牛津文

(许继集团有限公司,河南 许昌 461000)

0 引 言

与其他工业控制系统不同,电力系统运行控制面临的通信认证问题具有一定的特殊性[1]。目前,大部分通信认证策略是用于防范来自互联网的黑客攻击,而电力系统运行控制环境与公用互联网环境具有非常大的差别。将公用互联网的认证通信技术照搬到电力系统运行控制环境中,显然缺乏对电力系统运行控制通信认证需求的深刻理解。当前的主流认证服务和产品主要是面向普通工业用户而设计的,可能无法满足电力系统运行控制环境下的严苛性能和可靠性要求。

变电站网络系统容易受到多种形式的攻击破坏,不同的攻击模式会产生不同的威胁,进而破坏变电站信息的完整性、保密性、有效性以及不可否认性。因此,分析变电站的初始攻击形式是解决报文安全性的首要任务。常见的攻击形式有窃听、中断、截获以及篡改等[2-4]。相应地,针对变电站报文的各类攻击主要造成以下几种威胁。一是违反授权。变电站控制系统人员利用授权身份或设备,执行非授权操作。二是篡改。报文在传输过程中被第三方截获后,经删除、插入、修改、改变次序以及重放等操作后再发给接收方,以达到损坏报文的目的。三是拒绝服务。向变电站网络发送大量数据,造成网络或监控系统瘫痪。四是抵赖。接入信息系统并进行操作,但事后却拒绝承认事实。针对上述4种威胁可使用相应的防范措施,设计相应的认证机制便成为报文在传输过程中的重中之重,必须采取相应的防范措施[5]。

1 GOOSE报文认证原理

本文提供一种基于变电站GOOSE报文的认证机制,该认证机制引入身份认证、消息认证以及密钥管理的概念,有效地解决目前GOOSE报文在网络传输过程中所面临的威胁,而且能够保证GOOSE信息对于实时性的要求[6-9]。

为了实现GOOSE报文网络传输的认证机制,需要对原始报文的格式进行扩展。扩展的GOOSE报文格式不仅符合IEC 61850-9-2的规定,而且满足ISO/IEC 8802-3帧结构和ASN.1基本编码规则。同时利用原有GOOSE报文格式中的保留1和保留2两个字段,对认证机制及扩展字段进行补充说明。

首先,对于GOOSE报文格式的扩展字段由两部分组成,第一部分用于身份认证,第二部分用于消息认证。其中,第一部分身份认证的内容包括用户名、密码以及密钥管理服务器定期更新的密钥信息,随后将以上3种信息通过DES算法进行置换操作,生成相应的密文字符串,作为报文的身份认证信息加入到原始GOOSE报文进行传输。第二部分的消息认证是对GOOSE报文中的数据信息进行压缩操作,采用的是MD5算法,数据被压缩后生成定长的信息摘要字符串。最后,与身份认证生成的字符串组成扩展字段的内容,通过发送端发送到网络上。

对于GOOSE报文的接收端来说,收到网络上过来的GOOSE报文后首先判断是否为GOOSE认证扩展报文,如果是则先进行身份认证,将接收到的身份认证字符串通过DES算法进行置换操作,然后将置换后的字符串,即用户名、密码、密钥信息以及自身的对应信息进行比对,如果用户名和密码一致,而且密钥信息与密钥池中的密钥信息也一致,则通过GOOSE报文的身份认证[10]。身份认证通过后继续将接收到的数据信息通过MD5算法生成信息摘要字符串,然后与接收到的信息摘要字符串进行比对,如果一致则通过消息认证。

当身份认证与消息认证全部通过后则认为此帧报文通过认证,接收端随即发送一帧确认报文确定认证通过。发送端收到确认报文后,将在协商的认证通信时间段T内进行原始GOOSE报文的通信,即GOOSE报文收发过程中不再进行认证操作。当通信时间超过协商认证通信时间段T后,则需要重新发送包含身份认证与消息认证的GOOSE认证报文进行再次认证。

其中,对于密钥池的生成则由密钥服务器单独完成,并且定期更新,每次更新的密钥池都会发送给GOOSE报文的发送端与接收端,收到密钥池后实时更新自己维护的密钥池,以达到提高GOOSE报文安全性的目的。

2 GOOSE报文扩展机制

实现GOOSE报文的认证机制,需要对原始报文格式进行扩展,并加入身份认证与消息认证信息以实现正常交互前的认证流程,GOOSE原始报文及扩展报文格式由图1所示。

图1 GOOSE原始报文与扩展报文格式

认证扩展报文包括身份认证与消息认证两部分内容,总共占用40 Byte大小。其中身份认证占用36 Byte,消息认证占用4 Byte。身份认证由用户名、密码以及密钥3部分组成,通过DES算法对以上内容进行置换操作,置换后生成的字符串长度不得超过36 Byte,也就是说置换前的用户名、密码以及密钥3者加起来的字符串长度不得超过36 Byte。

消息认证由GOOSE报文格式中的APDU报文组成,通过MD5算法对APDU报文进行压缩操作,压缩后生成的字符串长度不得超过4 Byte。

另外原始报文中的保留字段Reserved1(2 Byte)和Reserved2(2 Byte)也作为GOOSE认证扩展报文内容的一部分进行使用。其中,Reserved1作为判断是否为GOOSE认证扩展报文的唯一标示,即当保留字段的值为FEFE时,则接收端认为此报文为GOOSE认证扩展报文,除此以外均为原始GOOSE报文。Reserved2则记录认证扩展报文的实际长度,其大小应小于最大占用空间40 Byte。

3 GOOSE扩展认证流程

GOOSE扩展认证流程由可由任一方主动发起,发送端将要发送GOOSE认证扩展报文时,首先置换身份认证信息,将置换后的字符串添加到认证扩展报文的身份认证字段中,其次压缩认证信息,将压缩后的字符串添加到认证扩展报文的消息认证字段中,最后将身份认证信息、消息认证信息、保留字段1、保留字段2以及GOOSE原始报文组成GOOSE认证报文发送给接收端。

接收端收到GOOSE报文后判断是否为认证报文,如果是则先读取报文中的身份认证信息,进行身份认证。身份认证通过后接着读取消息认证信息,进行消息认证。当消息认证通过后则认为收到的GOOSE报文是安全且可靠的,随后向发送端发送认证确认报文,告知对方认证通过,随后便进行正常原始GOOSE报文的通信。

当通信时间超过协商认证通信时段T时,发送端需要再次发送认证扩展报文进行认证,认证通过后才可以继续进行正常的原始GOOSE报文通信。认证流程如图2所示。

图2 GOOSE扩展认证流程图

3.1 GOOSE扩展身份认证流程。

为防止抗抵赖攻击,GOOSE扩展身份认证需要对通信双方身份的合法性进行校验与确认,即数字签名,双方确认通过后方可进行下一步操作,身份认证流程图如图3所示。

图3 GOOSE扩展身份认证流程图

GOOSE认证扩展报文进行身份认证时,发送端首先读取本地的用户名、密码以及密钥信息,将以上3组信息组成一组明文字符串M,然后使用DES算法将字符串M进行置换生成新的密文字符串M1,将M1添加到认证扩展报文中的消息认证字段发送给接收端。

当接收端收到身份认证报文时首先读取GOOSE认证扩展报文的身份认证字段,然后将读取到的身份认证密文字符串M1通过DES算法还原生成新的明文字符串M2,然后将字符串M2与本机读取到的用户名、密码以及密钥信息进行比对,如果比对结果一致则认为身份认证通过,继续进行消息认证操作。

3.2 GOOSE扩展消息认证流程

为防篡改与中间人攻击,需要对通信双方进行消息认证,并通过不可逆算法对发送的随机字符串进行校验,以保证网络数据的完整性和可靠性。消息认证流程如图4所示。

图4 GOOSE扩展消息认证流程图

GOOSE认证扩展报文进行消息认证时,发送端首先读取GOOSE原始报文中的APDU信息字符串S,然后使用MD5算法将字符串S进行压缩生成定长的信息摘要字符串S1,将S1添加到认证扩展报文中消息认证字段中发送给接收端。当接收端收到消息认证报文时先读取GOOSE认证扩展报文的消息认证字段,将读取到的APDU信息S同样使用MD5算法生成信息摘要字符串S2,然后将字符串S1与字符串S2进行比对,如果比对结果一致则认为消息认证通过。当消息认证通过后则确定GOOSE认证扩展报文通过认证,随即发送确认帧给发送端告知对方认证成功。

4 结 论

针对变电站间隔层通信网络安全隐患,引入身份认证、消息认证以及密钥管理等概念,使用GOOSE报文中的保留字段及扩展字段,将身份认证、消息认证及密钥信息加入其中与原始报文一起发送,实现GOOSE报文发送与接收的认证机制。其中,字段的变换不仅满足ASN.1基本编码规则的TLV转换语法,还使得原始报文和认证报文能够在变电站自动化通信系统中兼容,符合IEC 62351标准。通过实现以上认证机制,实现了防止黑客进行非法认证、篡改、重放以及抵赖等攻击手段,从而保证了基于变电站的GOOSE报文通信过程中的保密性、完整性、可用性以及不可抵赖性。

猜你喜欢

字符串接收端报文
基于J1939 协议多包报文的时序研究及应用
基于扰动观察法的光通信接收端优化策略
基于多接收线圈的无线电能传输系统优化研究
低轨星座短报文通信中的扩频信号二维快捕优化与实现
基于文本挖掘的语词典研究
手机无线充电收发设计
浅析反驳类报文要点
SQL server 2008中的常见的字符串处理函数
倍增法之后缀数组解决重复子串的问题
最简单的排序算法(续)