CN104639328A - 一种goose报文认证方法及系统 - Google Patents
一种goose报文认证方法及系统 Download PDFInfo
- Publication number
- CN104639328A CN104639328A CN201510047772.5A CN201510047772A CN104639328A CN 104639328 A CN104639328 A CN 104639328A CN 201510047772 A CN201510047772 A CN 201510047772A CN 104639328 A CN104639328 A CN 104639328A
- Authority
- CN
- China
- Prior art keywords
- message
- authentication code
- goose
- key
- goose message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的目的在于提供一种高效的GOOSE报文认证方法,以更好适应电力系统高实时性要求。为了适应GOOSE报文需要不间断发送的特性,提取GOOSE报文中应用服务数据单元APDU的顺序计数sqNum域作为关键信息报文段,并判断APDU其余数据是否与前一报文一致:若一致,则根据前一GOOSE报文APDU的非关键信息的HMAC结果,将上述关键信息附加在其末端后进行HMAC运算得整体认证码;若不一致则首先对非关键信息进行HMAC运算得认证码,随后将关键信息附加于认证码末端并再次进行HMAC运算得整体认证码。本发明的认证方法效率远高于经典的对整个APDU内容直接进行HAMC认证的方法。
Description
技术领域
本发明属于电力系统信息安全领域,具体涉及IEC61850所定义的GOOSE报文的认证方法。
背景技术
电力通信网络从独立的封闭系统,逐步发展为广域互联的开放系统,其边界范围和地理分布不断扩大、接入方式更加灵活,报文数据的安全性问题也日趋突出。
在电力系统通信网络中,面向通用对象的变电站事件(GOOSE,GenericObject Oriented Substation Event)报文主要用于表征断路器的跳、合闸等操作命令和断路器位置信息等重要场合,其安全性、准确性、实时性很大程度上影响着电力系统运行的可靠性。而且,在以数字化变电站为代表的智能电网中得到越来越广泛的应用的背景下,GOOSE电力报文有可能跨区域、跨电网传输,使得其更可能遭受窃听、攻击、篡改等入侵事件,其在电力信息安全方面的重要性愈发突出。像GOOSE这类直接影响电力系统状态的重要报文,当其报文受到篡改时,可能带来灾难性的后果。
电力信息安全标准IEC62351建议对GOOSE报文采用HMAC认证或数字签名以保障GOOSE报文的完整性。但结合当前智能电子设备实际的运算和存储能力,基于非对称加密环节的数字签名方法难以满足GOOSE等电力报文的4ms延时要求。因此,目前的GOOSE安全算法研究主要选择采用密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code,以下简称HMAC)进行认证以保障完整性。其中HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
GOOSE报文发送采用心跳报文机制,即同一心跳报文经一定时间间隔重复发送。同一系列的GOOSE心跳报文,其发送内容基本相同,差别仅在于顺序计数SqNum信息域。其中顺序计数SqNum用于记录该心跳报文至今已发出报文数目。这种情况下,对每个发送出去的GOOSE报文整体直接进行HMAC运算其认证效率不高。
发明内容
本发明的目的在于克服现有技术的缺点与不足,针对GOOSE心跳报文的特点,提供一种GOOSE报文认证方法,本发明提出的方法依据避免心跳报文中相同内容的重复认证计算的思想提出一种高效的GOOSE报文认证方法,可提高认证计算效率和更好适应电力系统高实时性要求。
本发明的另一个目的在于,提供一种GOOSE报文认证系统。
本发明的第一个目的通过下述技术方案实现:
一种GOOSE报文认证方法,包括下列步骤:
创建GOOSE认证报文,判断当前GOOSE报文与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文,首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
进一步的,所述创建GOOSE认证报文的步骤具体为:
S11、提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2;
S12、删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
S13、判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至S15,否则转入步骤S14;
S14、利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S15、将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用步骤S14中所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S16、将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
进一步的,所述验证GOOSE认证报文的步骤具体为:
S21、提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4;
S22、删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
S23、利用步骤S14中所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用步骤S14中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
S24、将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
进一步的,所述关键信息包括顺序计数sqNum域。
进一步的,所述密钥是长度在16至128Byte之间的字符串。
进一步的,所述哈希函数是MD2或MD4或MD5或SHA-1或SHA-224或SHA-256或SHA-384或SHA-512。
本发明的另一个目的通过下述技术方案实现:
一种GOOSE报文认证系统,包括下列模块:
创建GOOSE认证报文模块,该模块用于判断当前GOOSE报文与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文模块,该模块首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
进一步的,所述创建GOOSE认证报文模块包括:
第一关键信息报文段生成单元,该单元用于提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2;
第一非关键信息报文段生成单元,该单元用于删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
第一判断单元,该单元用于判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至整体认证码第二生成单元,否则转入整体认证码第一生成单元;
整体认证码第一生成单元,该单元利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
整体认证码第二生成单元,该单元用于将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
校验码填充单元,该单元用于将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
进一步的,所述验证GOOSE认证报文模块包括:
第二关键信息报文段生成单元,该单元用于提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4;
第二非关键信息报文段生成单元,该单元用于删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
整体认证码第三生成单元,该单元利用所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
第二判断单元,该单元用于将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明在不降低报文信息安全性的前提下,减少了GOOSE心跳报文中相同内容的重复性HMAC认证计算,提高了HMAC认证计算的效率。
(2)本发明提出一种高效的GOOSE报文认证方法,可更好地适应电力系统高实时性要求。
附图说明
图1是本发明实施例一中创建GOOSE认证报文的过程图;
图2是本发明实施例一中验证GOOSE认证报文的过程图;
图3是本发明中GOOSE报文的结构示意图;
图4是本发明实施例二中GOOSE报文案例1;
图5是本发明实施例二中GOOSE报文案例2;
图6是本发明实施例二中GOOSE报文案例3;
图7是实施例三中GOOSE认证报文系统的组成框图;
图8是实施例三中创建GOOSE认证报文模块的组成框图;
图9是实施例三中验证GOOSE认证报文模块的组成框图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
请参见图1和图2,图1和图2分别是本实施例中的关于创建GOOSE认证报文和验证GOOSE认证报文的过程图。
本实施例中公开的一种高效的GOOSE报文认证方法,具体包括创建GOOSE认证报文和验证GOOSE认证报文两个步骤。
其中,创建GOOSE认证报文的过程如图1所示,该步骤首先判断当前GOOSE报文(GOOSE报文的结构示意图如图3所示)与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建。
其中,验证GOOSE认证报文的过程如图2所示,该步骤首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
HMAC是密钥相关的哈希运算消息认证码(Hash-based MessageAuthentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
HMAC是基于散列函数的消息认证码。它需要一个加密用散列函数(表示为H,可以是MD5或者SHA-1)和一个密钥K用以计算消息认证码。
计算HMAC需要一个散列函数hash(可以是MD2或MD4或MD5或SHA-1或SHA-224或SHA-256或SHA-384或SHA-512)和一个密钥key(密钥key可以是长度在16至128Byte之间的字符串)。用L表示hash函数输出字符串长(md5是16),用B表示数据块的长度(md5和sha-1的分割数据块长都是64)。密钥key的长度可以小于等于数据块长B,如果大于数据块长度,可以使用hash函数对key进行转换,结果就是一个L长的key。
然后创建两个B长的不同字符串:
innerpad=长度为B的0×36;
outterpad=长度为B的0×5C;
计算输入字符串str的HMAC:
hash(key^outterpad,hash(key^innerpad,str))。
如图1所示,其中创建GOOSE认证报文的步骤具体为:
S11、提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2;此实施例中所述关键信息为顺序计数sqNum域。
S12、删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
S13、判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至S15,否则转入步骤S14;
S14、利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S15、将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用步骤S14中所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S16、将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
如图2所示,验证GOOSE认证报文的步骤具体为:
S21、提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4;
S22、删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
S23、利用步骤S14中所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用步骤S14中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
S24、将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
在GOOSE报文认证算法和密钥长度一定时,降低GOOSE报文认证运算耗时的核心在于减少所需进行加密运算的内容的长度。分析GOOSE报文发送机制,GOOSE报文需重复、不定间隔发送,其中除了sqNum参数,GOOSE报文APDU中的其他数据不变。再结合HASH运算算法按512bit长度对待运算数据进行分组,固定输入情况下输入不变,因此,可将变化的数据放与待运算数据末端,即可避免前面相同数据的HASH运算过程。
实施例二
本实施例公开了本发明高效的GOOSE报文认证方法的具体实施例。该实施例二中哈希算法采用的密钥为字符串:“qazwsxedcrfvtgbyhnujmik,ol.p;/”,哈希函数采用SHA-1,循环冗余校验采用32位循环冗余校验CRC32。
图4-图6为3个GOOSE报文,其中图4所示GOOSE报文发出后发生开关量变位,形成新的GOOSE报文心跳系列,图5和图6即为新的GOOSE报文心跳系列的第一以及第二GOOSE报文。
1、对于图4中的GOOSE报文,其报文发送方认证码生成步骤如下:
根据GOOSE报文生成关键报文段P2以及非关键报文段P1,当前非关键报文段P1与前一报文非关键报文段进行对比,二者不一致(stNum域、t域以及allData域内容不一致),故直接对非关键报文段P1进行HMAC运算,得第一认证码C1(16进制形式):
88580e829232f09be7e3ba60b883cc083506e5a1(Hex);
随后将第一认证码与关键报文段P2合并得第二认证码C2:
88580e829232f09be7e3ba60b883cc083506e5a1860100(Hex);
对C2进行HMAC运算得第一完整认证码C01:
d995a3b16b79f3334bf0c6d81512c1f929bde8e0(Hex);
随后对C01进行循环冗余运算得校验码:
30A15AB6;
将校验码填充于GOOSE报文的帧校验域,即完成图4中GOOSE报文认证码生成。
2、对于图5中的GOOSE报文,其报文接收方认证步骤如下:
根据接收到的GOOSE报文生成关键报文段P3以及非关键报文段P4,对非关键报文段P3进行HMAC运算,得第五认证码C5(16进制形式):
88580e829232f09be7e3ba60b883cc083506e5a1(Hex);
随后将第一认证码与关键报文段P4合并得第六认证码C2:
88580e829232f09be7e3ba60b883cc083506e5a1860100(Hex);
对C2进行HMAC运算得第二整体认证码C02:
d995a3b16b79f3334bf0c6d81512c1f929bde8e0(Hex);
随后对C02进行循环冗余运算得校验码:
30A15AB6;
将校验码与GOOSE报文的帧校验域进行对比一致,判断认证通过。
3、对于图6中的GOOSE报文,其报文发送方认证码生成步骤如下:
根据GOOSE报文生成关键报文段P2以及非关键报文段P1,当前非关键报文段P1与前一报文非关键报文段进行对比,二者一致,故第三认证码C3与前一GOOSE报文的第一认证码一致,无需进行计算(16进制形式):
88580e829232f09be7e3ba60b883cc083506e5a1(Hex);
随后将第三认证码与关键报文段P2合并得第四认证码C4:
88580e829232f09be7e3ba60b883cc083506e5a1860101(Hex);
对C4进行HMAC运算得最终认证码C0:
11af0d95c4aadc568dfa0f414fd229562b8503f4(Hex);
随后对C0进行循环冗余运算得校验码:
087CDED7;
将校验码填充于GOOSE报文的帧校验域,即完成图4中GOOSE报文认证码生成。
4、对于图6中的GOOSE报文,其报文接收方验证步骤如下:
根据接收到的GOOSE报文生成关键报文段P2以及非关键报文段P1,对非关键报文段P1进行HMAC运算,得第五认证码C5(16进制形式):
88580e829232f09be7e3ba60b883cc083506e5a1(Hex);
随后将第五认证码与关键报文段P2合并得第六认证码C6:
88580e829232f09be7e3ba60b883cc083506e5a1860101(Hex);
对C6进行HMAC运算得第二最终认证码C02:
11af0d95c4aadc568dfa0f414fd229562b8503f4(Hex);
随后对C02进行循环冗余运算得校验码:
087CDED7;
将校验码与GOOSE报文的帧校验域进行对比一致,判断认证通过。
实施例三
本实施例公开了一种GOOSE报文认证系统,具体如附图7中GOOSE认证报文系统的组成框图所示,该系统包括创建GOOSE认证报文模块和验证GOOSE认证报文模块两个模块。
其中,创建GOOSE认证报文模块,该模块用于判断当前GOOSE报文与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建。
其中,验证GOOSE认证报文模块,该模块首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
如图8中创建GOOSE认证报文模块组成框图所示,该创建GOOSE认证报文模块包括:
第一关键信息报文段生成单元,该单元用于提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2。
第一非关键信息报文段生成单元,该单元用于删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1。
第一判断单元,该单元用于判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至整体认证码第二生成单元,否则转入整体认证码第一生成单元。
整体认证码第一生成单元,该单元利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元。
整体认证码第二生成单元,该单元用于将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元。
校验码填充单元,该单元用于将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
如图9中验证GOOSE认证报文模块组成框图所示,该验证GOOSE认证报文模块包括:
第二关键信息报文段生成单元,该单元用于提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4。
第二非关键信息报文段生成单元,该单元用于删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3。
整体认证码第三生成单元,该单元利用所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02。
第二判断单元,该单元用于将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
值得注意的是,上述系统实施例中,所包括的各个装置和单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各装置和单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种GOOSE报文认证方法,其特征在于,包括下列步骤:
创建GOOSE认证报文,判断当前GOOSE报文与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文,首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
2.根据权利要求1所述的一种GOOSE报文认证方法,其特征在于,所述创建GOOSE认证报文的步骤具体为:
S11、提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2;
S12、删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
S13、判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至S15,否则转入步骤S14;
S14、利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S15、将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用步骤S14中所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至步骤S16;
S16、将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
3.根据权利要求1所述的一种GOOSE报文认证方法,其特征在于,所述验证GOOSE认证报文的步骤具体为:
S21、提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4;
S22、删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
S23、利用步骤S14中所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用步骤S14中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
S24、将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
4.根据权利要求2或3所述的一种GOOSE报文认证方法,其特征在于,所述关键信息包括顺序计数sqNum域。
5.根据权利要求2或3所述的一种GOOSE报文认证方法,其特征在于,所述密钥是长度在16至128Byte之间的字符串。
6.根据权利要求2或3所述的一种GOOSE报文认证方法,其特征在于,所述哈希函数是MD2或MD4或MD5或SHA-1或SHA-224或SHA-256或SHA-384或SHA-512。
7.一种GOOSE报文认证系统,其特征在于,包括下列模块:
创建GOOSE认证报文模块,该模块用于判断当前GOOSE报文与前一GOOSE报文中应用服务数据单元ASDU的非关键信息是否一致,若一致则直接引用前一GOOSE报文中应用服务数据单元ASDU的非关键信息的对应认证码配合当前GOOSE报文中应用服务数据单元ASDU的关键信息通过HMAC运算生成整体认证码;若不一致则首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,随后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码;将所述整体认证码作循环冗余校验后生成校验码填充于当前GOOSE报文的帧校验码域后完成GOOSE认证报文创建;
验证GOOSE认证报文模块,该模块首先生成当前GOOSE报文中应用服务数据单元ASDU的非关键信息对应认证码,然后利用该认证码配合当前GOOSE报文关键信息通过HMAC运算生成整体认证码,将整体认证码做循环冗余检验生成校验码后与当前GOOSE报文帧校验码域内容进行对比,若二者一致则认证通过,否则认证失败。
8.根据权利要求7所述的一种GOOSE报文认证系统,其特征在于,所述创建GOOSE认证报文模块包括:
第一关键信息报文段生成单元,该单元用于提取GOOSE报文中应用服务数据单元ASDU的关键信息,生成第一关键信息报文段P2;
第一非关键信息报文段生成单元,该单元用于删除所述GOOSE报文中的所述关键信息,生成第一非关键信息报文段P1;
第一判断单元,该单元用于判断所述第一非关键信息报文段P1是否与前一GOOSE报文中应用服务数据单元ASDU的非关键信息一致,若一致则跳至整体认证码第二生成单元,否则转入整体认证码第一生成单元;
整体认证码第一生成单元,该单元利用事先选定的密钥及哈希函数,对所述第一非关键信息报文段P1进行HMAC运算得到第一认证码C1,将所述第一关键信息报文段P2附加到所述第一认证码C1末端形成第二认证码C2,利用所述密钥及哈希函数对所述第二认证码C2进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
整体认证码第二生成单元,该单元用于将所述第一关键信息报文段P2附加到前一GOOSE报文中应用服务数据单元ASDU的非关键信息报文段进行HMAC运算所得第三认证码C3末端形成第四认证码C4,利用所述密钥及哈希函数对所述第四认证码C4进行HMAC运算得到第一整体认证码C01,跳至校验码填充单元;
校验码填充单元,该单元用于将所述第一整体认证码C01作循环冗余校验,并将所得校验码K01填充于所述GOOSE报文的帧校验码域,完成GOOSE认证报文的创建。
9.根据权利要求7所述的一种GOOSE报文认证系统,其特征在于,所述验证GOOSE认证报文模块包括:
第二关键信息报文段生成单元,该单元用于提取待验证的GOOSE认证报文中应用服务数据单元ASDU的所述关键信息,生成第二关键信息报文段P4;
第二非关键信息报文段生成单元,该单元用于删除所述待验证的GOOSE认证报文中的所述关键信息,生成第二非关键信息报文段P3;
整体认证码第三生成单元,该单元利用所述密钥及哈希函数,对所述第二非关键信息报文段P3进行HMAC运算得到第五认证码C5,将第二关键信息报文段P4附加到所述第五认证码C5末端形成第六认证码C6,利用中所述密钥及哈希函数对所述第六认证码C6进行HMAC运算得到第二整体认证码C02,
第二判断单元,该单元用于将所述第二整体认证码C02做循环冗余校验得校验码K02,校验码K02与所述待验证的GOOSE认证报文的帧校验码域进行对比,若二者一致则验证成功,否则验证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047772.5A CN104639328B (zh) | 2015-01-29 | 2015-01-29 | 一种goose报文认证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047772.5A CN104639328B (zh) | 2015-01-29 | 2015-01-29 | 一种goose报文认证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639328A true CN104639328A (zh) | 2015-05-20 |
CN104639328B CN104639328B (zh) | 2018-04-13 |
Family
ID=53217686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510047772.5A Expired - Fee Related CN104639328B (zh) | 2015-01-29 | 2015-01-29 | 一种goose报文认证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639328B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162594A (zh) * | 2015-07-31 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种快速签名方法及签名设备 |
CN108366055A (zh) * | 2018-02-05 | 2018-08-03 | 国电南瑞科技股份有限公司 | 一种goose报文签名及认证的方法 |
CN109075977A (zh) * | 2016-04-27 | 2018-12-21 | 日立汽车系统株式会社 | 运算装置、认证系统、认证方法 |
CN113541955A (zh) * | 2021-06-03 | 2021-10-22 | 国电南瑞科技股份有限公司 | 一种安控系统2m通信的加密方法及装置 |
US11418432B1 (en) * | 2021-04-22 | 2022-08-16 | Schweitzer Engineering Laboratories, Inc. | Automated communication flow discovery and configuration in a software defined network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130179687A1 (en) * | 2010-09-14 | 2013-07-11 | Rainer Falk | Method and apparatus for authenticating multicast messages |
CN103746962A (zh) * | 2013-12-12 | 2014-04-23 | 华南理工大学 | 一种goose电力实时报文加解密方法 |
CN103873461A (zh) * | 2014-02-14 | 2014-06-18 | 中国南方电网有限责任公司 | 基于iec62351的goose报文的安全交互方法 |
-
2015
- 2015-01-29 CN CN201510047772.5A patent/CN104639328B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130179687A1 (en) * | 2010-09-14 | 2013-07-11 | Rainer Falk | Method and apparatus for authenticating multicast messages |
CN103746962A (zh) * | 2013-12-12 | 2014-04-23 | 华南理工大学 | 一种goose电力实时报文加解密方法 |
CN103873461A (zh) * | 2014-02-14 | 2014-06-18 | 中国南方电网有限责任公司 | 基于iec62351的goose报文的安全交互方法 |
Non-Patent Citations (4)
Title |
---|
I.H.LIM等: "Applying Security Algorithms against Cyber Attacks in the Distribution Automation System", 《IEEE》 * |
I.H.LIM等: "Security Protocols Against Cyber Attacks in the Distribution Automation System", 《IEEE TRANS ON POWER DELIVERY》 * |
周蓉等: "面向变电站数据通信的安全防护机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
周静: "基于IEC 62351-6 的电力控制系统通信安全防护探讨", 《2012年电力通信管理暨智能电网通信技术论坛论文集》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162594A (zh) * | 2015-07-31 | 2015-12-16 | 飞天诚信科技股份有限公司 | 一种快速签名方法及签名设备 |
CN105162594B (zh) * | 2015-07-31 | 2018-03-30 | 飞天诚信科技股份有限公司 | 一种快速签名方法及签名设备 |
CN109075977A (zh) * | 2016-04-27 | 2018-12-21 | 日立汽车系统株式会社 | 运算装置、认证系统、认证方法 |
CN108366055A (zh) * | 2018-02-05 | 2018-08-03 | 国电南瑞科技股份有限公司 | 一种goose报文签名及认证的方法 |
US11418432B1 (en) * | 2021-04-22 | 2022-08-16 | Schweitzer Engineering Laboratories, Inc. | Automated communication flow discovery and configuration in a software defined network |
CN113541955A (zh) * | 2021-06-03 | 2021-10-22 | 国电南瑞科技股份有限公司 | 一种安控系统2m通信的加密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104639328B (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107249009B (zh) | 一种基于区块链的数据校验方法及系统 | |
Ustun et al. | A novel approach for mitigation of replay and masquerade attacks in smartgrids using IEC 61850 standard | |
CN107846282A (zh) | 一种基于区块链技术的电子数据分布式保管方法及系统 | |
CN104702466B (zh) | 一种基于iec62351的过程层安全测试系统及方法 | |
CN110008757A (zh) | 一种物联网终端固件更新中数据保护方法及系统 | |
CN103746962B (zh) | 一种goose电力实时报文加解密方法 | |
CN110830251B (zh) | 一种泛在电力物联网环境下用电信息安全传输的方法 | |
CN104639328A (zh) | 一种goose报文认证方法及系统 | |
CN112511304A (zh) | 一种基于混合加密算法的电力数据隐私通信方法 | |
CN110224823B (zh) | 变电站报文安全防护方法、装置、计算机设备和存储介质 | |
CN104506500A (zh) | 一种基于变电站的goose报文认证方法 | |
CN102137095A (zh) | 工业控制系统数据交换安全保护方法、系统和装置 | |
CN108123934A (zh) | 一种面向移动端的数据完整性校验方法 | |
WO2024027070A1 (zh) | 一种基于标识公钥的终端设备认证方法、系统及计算机可读存储介质 | |
CN104639330B (zh) | 一种goose报文完整性认证方法 | |
CN110912877B (zh) | 变电站内基于iec61850模型的数据发送、接收方法及装置 | |
CN111177265A (zh) | 一种区块链分域方法 | |
CN104079408A (zh) | 一种工业控制系统中增强通信安全性的方法 | |
CN111490874B (zh) | 一种配网安全防护方法、系统、装置及存储介质 | |
CN111435389A (zh) | 一种配电终端运维工具安全防护系统 | |
CN109040120A (zh) | 一种基于iec61850标准的sv报文加密及解密方法 | |
CN112398655B (zh) | 一种文件传输方法、服务器及计算机存储介质 | |
CN113766007B (zh) | 基于多源异构数据解析协议的认证前置系统及认证方法 | |
CN113570321B (zh) | 氢能数据管理系统 | |
CN109039841A (zh) | 加入级联组网的方法、装置及刀箱 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Liang Mei Inventor after: Li Yongchang Inventor after: Wang Zhidong Inventor before: Li Yongchang Inventor before: Wang Zhidong |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180413 Termination date: 20220129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |