一种GOOSE报文完整性认证方法技术

技术编号:11494927 阅读:74 留言:0更新日期:2015-05-21 18:47
本发明专利技术公开了一种GOOSE报文完整性认证方法,以更好地适应电力系统高实时性要求。为了适应GOOSE报文需要不间断发送的特性,该方法是:提取GOOSE报文APDU中的UtcTime、stNum、sqNum这三个关键数据内容,并判断APDU其余数据是否与前一报文一致:若一致,则根据前一GOOSE报文APDU的非关键信息的Hash结果,将上述关键信息附加在其末端后进行Hash运算得最终认证码;若不一致则首先对APDU非关键信息进行Hash运算得认证码C1,随后将APDU关键信息附加于C1末端并再次进行Hash运算得最终认证码。本发明专利技术的认证方法效率远高于HMAC直接应用于GOOSE报文的认证方法。

【技术实现步骤摘要】
一种GOOSE报文完整性认证方法
本专利技术属于电力系统信息安全领域,具体涉及一种高效的GOOSE报文完整性认证方法。
技术介绍
电力通信网络从独立的封闭系统,逐步发展为广域互联的开放系统,其边界范围和地理分布不断扩大,接入方式更加灵活,报文数据的安全性问题也日趋突出。尤其像GOOSE这类直接影响电力系统状态的重要报文,当其报文受到篡改时,可能带来灾难性的后果。在电力系统通信网络中,面向通用对象的变电站事件(GOOSE,GenericObjectOrientedSubstationEvent)报文主要用于表征断路器的跳、合闸等操作命令和断路器位置信息等重要场合,其安全性、准确性、实时性很大程度上影响着电力系统运行的可靠性。而且,在以数字化变电站为代表的智能电网中得到越来越广泛的应用的背景下,GOOSE电力报文有可能跨区域、跨电网传输,使得其更可能遭受窃听、攻击、篡改等入侵事件,其在电力信息安全方面的重要性愈发突出。电力信息安全标准IEC62351建议对GOOSE报文采用HMAC认证或数字签名以保障GOOSE报文的完整性。但结合当前智能电子设备实际的运算和存储能力,基于非对称加密环节的数字签名方法难以满足GOOSE等电力报文的4ms延时要求。因此,目前的GOOSE安全算法研究主要选择采用HMAC认证保障完整性。HMAC认证算法通过引入密钥并设置两轮Hash运算实现认证运算,可有效保障报文的完整性,但对GOOSE这类短报文而言效率并不高,并非最优的选择。不同于一般的网络报文,GOOSE报文定义了严格的帧结构,包括细致的帧格式、APDU中所具有的显性长度域和同步性参数等。GOOSE报文独特的报文结构,有助于避免一般带密钥HASH算法遭受长度扩展等攻击。结合GOOSE报文域的特点以及表征的意义,寻求一种GOOSE报文更有效的认证方法具有重要研究价值。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种GOOSE报文完整性认证方法,以提高认证效率,更好地适应电力系统高实时性要求。本专利技术方法基于选定的HASH函数(SHA256或MD5等函数),以密钥和消息作为输入,直接HASH运算生成消息摘要输出作为认证码。算法中只用到密钥和带认证消息的HASH运算,效率比HMAC更高。为了达到上述目的,本专利技术采用的技术方案是:一种GOOSE报文完整性认证方法,包括以下步骤:S1、GOOSE报文发送端认证过程:S11、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,根据UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P2;S12、删除GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息以及CRC校验码域,形成非关键信息报文段P1;S13、判断非关键信息报文段P1是否与前一GOOSE报文非关键信息一致,若一致则跳至步骤S15,否则执行步骤S14;S14、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S12所述报文段P1进行Hash运算得Hash码C1,将步骤S11所述报文段P2附加到C1末端,并再次进行Hash运算,得到最终Hash认证码C2,然后执行步骤S16;S15、将步骤S11所述报文段P2附加到前一GOOSE报文APDU认证计算所得Hash码C1`末端,利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对其进行Hash运算得到最终Hash认证码C2,然后执行步骤S16;S16、将Hash认证码C2作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其填充于GOOSE报文的CRC校验码域;S2、GOOSE报文接收端认证过程:S21、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,根据UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P4;S22、删除GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息以及CRC校验码域,形成非关键信息报文段P3;S23、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S22所述报文段P3进行Hash运算得Hash码C3,将步骤S21所述报文段P4附加到C3末端,并再次进行Hash运算,得到最终Hash认证码C4;S24、将步骤S23所得Hash认证码C4作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其与接收到的GOOSE报文的CRC校验码域进行对比,若二者一致则认证成功,否则认证失败。具体的,所述GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息是时间以及报文发送序号相关信息。在认证算法和密钥长度一定时,降低GOOSE报文认证运算耗时的核心在于减少所需进行加密运算的报文的长度。分析GOOSE报文发送机制,GOOSE报文需重复、不定间隔发送,其中除了stNum、sqNum等参数,GOOSE报文其他数据不变。再结合HASH运算算法按512bit长度对待运算数据进行分组,固定输入情况下输入不变,因此,可将变化的数据放与待运算数据末端,即可避免前面相同数据的HASH运算过程。具体的,所述步骤S14中,得到最终Hash认证码C2的计算过程是:C1=Hash(key,P1);C2=Hash(C1,P2);其中,key表示发送端和接收端预先约定好的任意长度的密钥。具体的,所述步骤S15中,得到最终Hash认证码C2的计算过程是:C2=Hash(C1`,P2);其中,C1`是前一GOOSE报文非关键信息段P1对应的Hash运算结果。具体的,所述步骤S23中,得到最终Hash认证码C4的计算过程是:C3=Hash(key,P3);C4=Hash(C3,P4);其中,key表示发送端和接收端预先约定好的任意长度的密钥。本专利技术与现有技术相比,具有如下优点和有益效果:本专利技术通过分析GOOSE报文特点以及发送机制,提取GOOSE报文APDU的UtcTime、stNum、sqNum关键信息,判断APDU其余非关键信息是否与前一GOOSE报文APDU非关键信息一致,若一致,则根据前一GOOSE报文APDU的非关键信息Hash结果,仅对上述关键信息进行Hash运算,在不降低报文信息安全性的前提下,避免对整个GOOSE报文的加解密,减少加解密算法的耗时。附图说明图1是本专利技术GOOSE报文发送端认证过程流程图。图2是本专利技术GOOSE报文接收端认证过程流程图。图3是GOOSE报文结构示意图。具体实施方式下面结合实施例及附图对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。实施例1GOOSE报文结构如图3所示,本实施例一种高效的GOOSE报文认证方法是针对GOOSE报文APDU域的认证,其余报文域不属于认证内容,此方法包括GOOSE报文发送端认证过程以及GOOSE报文接收端认证过程,下面分别结合图1、2对其进行具体说明。1、GOOSE报文发送端认证过程参见图1,包括步骤如下:S11、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,这里关键信息是指时间以及报文发送序号相关信息。然后根据UtcTime、stNum、sqNum顺序依次连接,本文档来自技高网
...
一种GOOSE报文完整性认证方法

【技术保护点】
一种GOOSE报文完整性认证方法,其特征在于,包括以下步骤:S1、GOOSE报文发送端认证过程:S11、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,根据UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P2;S12、删除GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息以及CRC校验码域,形成非关键信息报文段P1;S13、判断非关键信息报文段P1是否与前一GOOSE报文非关键信息一致,若一致则跳至步骤S15,否则执行步骤S14;S14、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S12所述报文段P1进行Hash运算得Hash码C1,将步骤S11所述报文段P2附加到C1末端,并再次进行Hash运算,得到最终Hash认证码C2,然后执行步骤S16;S15、将步骤S11所述报文段P2附加到前一GOOSE报文APDU认证计算所得Hash码C1`末端,利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对其进行Hash运算得到最终Hash认证码C2,然后执行步骤S16;S16、将Hash认证码C2作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其填充于GOOSE报文的CRC校验码域;S2、GOOSE报文接收端认证过程:S21、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,根据UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P4;S22、删除GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息以及CRC校验码域,形成非关键信息报文段P3;S23、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S22所述报文段P3进行Hash运算得Hash码C3,将步骤S21所述报文段P4附加到C3末端,并再次进行Hash运算,得到最终Hash认证码C4;S24、将步骤S23所得Hash认证码C4作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其与接收到的GOOSE报文的CRC校验码域进行对比,若二者一致则认证成功,否则认证失败。...

【技术特征摘要】
1.一种GOOSE报文完整性认证方法,其特征在于,包括以下步骤:S1、GOOSE报文发送端认证过程:S11、提取GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息,根据UtcTime、stNum、sqNum顺序依次连接,形成关键信息报文段P2;S12、删除GOOSE报文APDU中的UtcTime、stNum、sqNum关键信息以及CRC校验码域,形成非关键信息报文段P1;S13、判断非关键信息报文段P1是否与前一GOOSE报文非关键信息段一致,若一致则跳至步骤S15,否则执行步骤S14;S14、利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对步骤S12所述报文段P1进行Hash运算得Hash码C1,将步骤S11所述报文段P2附加到C1末端,并再次进行Hash运算,得到最终Hash认证码C2,然后执行步骤S16;S15、将步骤S11所述报文段P2附加到前一GOOSE报文APDU认证计算所得Hash码C1`末端,利用发送端和接收端预先约定好的任意长度的密钥及Hash算法,对其进行Hash运算得到最终Hash认证码C2,然后执行步骤S16;得到最终Hash认证码C2的计算过程是:C2=Hash(C1`,P2);其中,C1`是前一GOOSE报文非关键信息段对应的Hash运算结果;S16、将Hash认证码C2作循环冗余校验CRC32运算,得到32比特长度的循环冗余校验码,将其填充于GOOSE报文的CRC校验码域;S2、GOOSE报文接收端认证过程:S21、提取GOOSE报文APDU中的U...

【专利技术属性】
技术研发人员:王智东黎永昌刘飘
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1