一种配电自动化系统的通信报文安全交互方法及装置与流程

文档序号:16686363发布日期:2019-01-22 18:21阅读:472来源:国知局
一种配电自动化系统的通信报文安全交互方法及装置与流程

本发明涉及一种安全防护方法及装置,具体涉及一种配电自动化系统的通信报文安全交互方法及装置。



背景技术:

配电自动化作为提高供电可靠性的必要手段和提升配网管理的重要工具,在提高供电可靠性与供电质量、提高配电网运检效率、降低运维人员现场操作和故障查找难度、提升配电网运维管控能力方面发挥了重要作用。近年来,国家发改委、国家能源局等主管部门加大了对电力信息安全的重点监督管控,相继颁布了国家发改委〔2014〕14号令《电力监控系统安全防护规定》和国能安全〔2015〕36号文《电力监控系统安全防护总体方案》等一系列法令、制度和标准,进一步明确了电网信息安全的重要性,对能源、电力等领域的关键信息基础设施的安全防护提出了更高要求,迫切需要全面升级配电自动化系统的安全防护体系,满足国家对公司网络信息安全的各项要求。

随着配电自动化工程建设的深入开展及实用化应用,相关部门对配电自动化系统的运行质量提出了更高的要求,当前主要依据《关于加强配电网自动化系统安全防护工作的通知》(国家电网调〔2011〕168号)、《中低压配电网自动化系统安全防护补充规定》的要求执行的公司配电自动化系统的安全防护方案已不能满足国家发改委〔2014〕14号令、国能安全〔2015〕36号文对配电自动化系统的要求,主要局限性如下:

1)目前配电自动化系统中普遍支持单向认证的兼容模式,即终端对主站身份可完成可信鉴别,但却无法解决下发控制报文的保密传输问题,也无法解决接入的非法终端身份认证问题。

2)主站公钥在终端中的存储是裸公钥形式,并未使用电力调度证书系统进行签发,终端无法对公钥的真实性进行鉴别认证。

3)终端的上行数据未作安全保护措施(尤其是公网传输的上行数据),存在被人为恶意仿造或篡改上行数据的可能性。

4)大部分终端安全模块通过软件实现,密钥存储在终端设备的存储器中,缺乏安全模块所必须具备的密钥安全存储和保护机制,降低了系统安全防护能力。

5)目前主站发送的下行控制报文采用时间戳实现超时重放防护,但未对下发的时钟同步报文采取必要的防护措施,因此终端在抗重放攻击方面存在一定的安全隐患。



技术实现要素:

针对现有配电自动化系统安全防护体系中配电主站无法鉴别配电终端身份、通信报文的机密性和完整性无法保证,以及遥控/参数设置报文存在重放攻击的安全隐患等问题,本发明提出一种配电自动化系统的通信报文安全交互方法及装置,采用基于数字证书的双向认证技术实现配电主站和配电终端的身份鉴别,利用对称加密和消息认证码(mac)确保通信报文的保密性和完整性,同时在数字签名中引入随机数增强抗重放攻击能力,从而提高配电自动化系统配电主站和配电终端之间纵向通信的安全防护水平。

本发明的技术方案是:

一种配电自动化系统的通信报文安全交互方法,所述方法包括:

配电主站完成与配电终端的双向身份认证后,从配电终端获取配电终端信息,所述配电终端信息包括配电终端对称密钥版本号和用于计算消息认证码mac的初始向量iv0;

配电主站根据配电终端对称密钥版本号判断配电终端是否为首次身份认证,若非首次认证,则执行配电终端与配电主站间的报文交互;否则,更新配电终端的对称密钥后,再执行配电终端与配电主站间的报文交互;所述配电终端与配电主站间的报文交互是通过对报文的加密、以iv0为初始向量计算加密报文的消息认证码以及传输带有消息认证码的加密报文实现的。

优选的,所述配电终端包括配电安全芯片,且每个芯片携带序列号标识;所述配电主站包括加密认证装置;

所述加密认证装置将配电安全芯片序列号作为分散因子,对配电安全芯片中的对称密钥进行分散,获得配电安全芯片中的对称密钥。

优选的,所述更新配电终端对称密钥包括:配电主站向配电终端发送取密钥版本号指令,配电终端从配电安全芯片内读取对称密钥版本号,并获取随机数r5,返回给配电主站;

所述配电主站通过密钥版本号判断需要从加密认证装置中导出的对称密钥的组号;并以配电终端随机数r5作为mac初始向量,配电安全芯片序列号作为分散因子,对当前密钥组的主控密钥进行分散,得到保护传输密钥,分散导出指定组号的对称密钥数据包pk,并基于sm2算法,采用配电主站私钥对pk进行签名获得sk,将{签名密钥标识iask+pk+sk}发送给配电终端;所述配电终端接收到密钥更新报文后,将{iask+pk+sk}发送到配电安全芯片,完成密钥更新,并向配电主站返回更新结果信息;其中,

所述对称密钥数据包pk包括:密钥版本、数条密钥的密文和消息认证码。

优选的,当报文类型为遥控报文时,执行配电终端与配电主站间的报文交互包括如下步骤:配电主站对{遥控选择命令报文mcs+时间信息tc}进行签名,获得签名数据scs,用下行数据保护密钥对{mcs+tc+scs+签名密钥标识iask}进行加密得到密文ecs,并以iv0作为初始向量计算ecs的消息认证码maccs,将{ecs+maccs}发送给配电终端;

配电终端利用下行数据保护密钥对{ecs+maccs}进行消息认证码验证和解密操作,获得{mcs+tc+scs+iask};判断指令时效性,并以{mcs+tc}为明文并用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rc,利用上行数据保护密钥对{遥控选择确认报文mcsc+rc}加密,获得密文ecsc,并以iv0作为初始向量计算ecsc的消息认证码maccsc,将{ecsc+maccsc}上传至配电主站;否则返回错误信息;

配电主站对{ecsc+maccsc}进行消息认证码验证和解密操作;若验证成功,则对{遥控执行命令报文mce+tc+rc}进行签名,获得签名数据sce,用下行数据保护密钥对{mce+tc+rc+sce+iask}进行加密得到{加密结果ece+macce}发送给配电终端;其中,rc、tc用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{ece+macce}进行消息认证码验证和解密操作,获得{mce+tc+rc+sce+iask},并判断指令时效;

以{mce+tc+rc}为明文,利用配电主站证书和随机数rc验证配电主站签名的正确性;若签名正确,配电终端利用上行数据保护密钥对遥控执行确认报文mcec加密得到密文ecec,并以iv0作为初始向量,计算密文的消息认证码maccec,将{ecec+maccec}上传至配电主站,执行相应的遥控操作,并向配电主站发送遥控执行结果否则返回错误信息。

优选的,当报文类型为远程参数更新报文时,执行配电终端与配电主站间的报文交互包括如下步骤:配电主站对远程参数预置报文mps进行签名,获得签名数据sps,用下行数据保护密钥对{mps+sps+签名密钥标识iask}进行加密并计算消息认证码,获得的{加密结果eps+macps}发送给配电终端;

配电终端接收后,用下行数据保护密钥对{eps+macps}进行验证消息认证码和解密操作,获得{mps+sps+iask},并以mcs为明文,用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rp,用上行数据保护密钥对{远程参数预置确认报文mpsc+rp}加密得到密文epsc,并以iv0为初始向量计算密文的消息认证码得到macpsc,将{epsc+macpsc}上传至配电主站;否则返回错误信息;

配电主站对{epsc+macpsc}进行消息认证码验证并解密操作;若验证正确,则对{远程参数固化报文mpe+rp}签名,获得签名数据spe,用下行数据保护密钥对{mpe+rp+spe+iask}进行加密得到密文{加密结果epe+macpe}发送至配电终端;其中,rp用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{epe+macpe}进行消息认证码验证和解密操作,获得{mpe+rp+spe+iask};并以{mpe+rp}为明文,利用配电主站证书和随机数rp验证配电主站签名的正确性;若签名正确,则执行相应的参数更新操作,利用上行数据保护密钥对远程参数固化确认报文mpec加密得到密文epec,并以iv0为初始向量计算密文的消息认证码,得到macpec,将{epec+macpec}上传至配电主站;否则返回错误信息。

优选的,当报文类型为遥信/遥测报文时,所述执行配电终端与配电主站间的报文交互包括如下步骤:配电终端以iv0作为mac初始向量,将需上传的遥信/遥测报文利用上行数据保护密钥进行加密获得密{密文数据+mac}发送给配电主站;

配电主站接收报文后,利用iv0和上行数据保护密钥验证消息认证码的正确性,并解密获得明文数据。

优选的,所述执行配电终端与配电主站间的报文交互之前还包括:判断配电终端与配电主站间是否存在安全接入网关;若是,则所述配电终端先执行与安全接入网关的身份认证,再执行与配电主站的身份认证;若否,则直接执行配电终端与配电主站的身份认证。

进一步地,所述配电终端与安全接入网关的身份认证包括:安全接入网关与配电终端建立网络连接后,将自动生成的随机数r1发送给配电终端;配电终端利用在配电安全芯片选取的配电终端随机数r2对{r1+r2}签名后得到stg和it,将{r2+stg+签名密钥标识it}发送给安全接入网关;安全接入网关利用配电终端证书验证{r2+stg+签名密钥标识it}有效性,验证通过则对配电终端随机数r2签名,生成{签名结果sgt+签名密钥标识ig},发送至配电终端;配电终端利用安全接入网关证书验证{签名结果sgt+签名密钥标识ig}有效性,验证通过后完成配电终端对安全接入网关的身份认证,并返回认证确认信息。

进一步地,所述配电主站与配电终端的双向身份认证包括:配电主站从加密认证装置取随机数r3,发送给配电终端;配电终端从配电安全芯片取配电终端随机数r4,对{r3+r4}签名后得到stm和it,将{r4+stm+签名密钥标识it}发送给配电主站;

配电主站利用配电终端证书验证配电终端签名有效性,验证成功,则对配电终端随机数r4签名,生成{签名结果smt+签名密钥标识iask}并返回;

配电终端利用配电主站证书验证配电主站{签名结果smt+签名密钥标识iask}的正确性,验证无误后完成配电终端对配电主站的身份认证,并返回认证确认信息;

双向认证成功后,配电主站发送读取配电安全芯片序列号的报文,配电终端返回配电安全芯片的序列号;配电主站、配电终端利用{r3+(r3按位取反)}作为计算消息认证码的初始向量iv0。

优选的,所述执行配电终端与配电主站间的报文安全交互还包括:若交互过程中原配电主站数字证书失效,则更新数字证书;

所述更新数字证书包括:

配电主站对需下发的{证书标识n+证书内容cn+时间信息tuc}进行签名,获得签名结果suc,利用下行数据保护密钥对{n+cn+tuc+suc+iask}进行加密,将加密结果密文euc发送给配电终端;

配电终端用下行数据保护密钥对euc进行解密,获得{n+cn+tuc+suc+iask},将{n+cn+tuc}作为明文数据,用配电主站证书验证签名的正确性;若签名正确,则将证书内容下载至配电安全芯片中,并向配电主站返回证书更新结果。

优选的,所述执行配电终端与配电主站间的报文安全交互之后,还包括:

执行配电终端与运维工具的身份认证;

配电终端与运维工具通过身份认证后,对现场运维数据进行安全防护。

进一步地,所述执行配电终端与运维工具的身份认证包括:将运维工具id和数字证书发送给配电终端,向配电终端发起认证请求;配电终端取随机数r发送给运维工具,运维工具对随机数r进行签名,并将签名结果返回给配电终端;

配电终端利用运维工具数字证书验证签名有效性,并将认证结果返回给运维工具。

进一步地,所述对现场运维数据进行安全防护包括:

配电终端与运维工具通过身份认证后,用现场运维下行数据保护密钥对发送的运维数据报文mft进行加密,并计算消息认证码,获得{密文eft+macft}发送给配电终端;

配电终端以运维工具id作为分散因子,对配电安全芯片中的现场运维下行数据保护密钥进行分散,并对{eft+macft}进行消息认证码验证和解密操作,获取明文报文数据;

配电终端以运维工具id作为分散因子,对配电安全芯片中的现场运维上行数据保护密钥进行分散,对发送的运维数据报文mtf进行加密,并将通过计算消息认证码得到的{密文etf+mactf}发送给运维工具;

所述运维工具用现场运维上行数据保护密钥对{etf+mactf}进行消息认证码验证和解密操作,获取明文报文数据。

一种配电自动化系统的通信报文安全交互装置,所述装置包括:

信息获取模块,用于配电主站完成与配电终端的双向身份认证后,从配电终端获取配电终端信息,所述配电终端信息包括配电终端对称密钥版本号和用于计算消息认证码mac的初始向量iv0;

判断模块,用于配电主站根据配电终端对称密钥版本号判断配电终端是否为首次身份认证;

报文交互模块,用于若配电终端非首次认证,执行配电终端与配电主站间的报文交互;否则更新配电终端的对称密钥后,再执行配电终端与配电主站间的报文交互;所述配电终端与配电主站间的报文交互是通过对报文的加密、以iv0为初始向量计算加密报文的消息认证码以及传输带有消息认证码的加密报文实现的。

与最接近的现有技术相比,本发明的有益效果是:

本发明提出一种配电自动化系统的通信报文安全交互方法及装置,确保配电自动化系统安全防护体系中配电主站鉴别配电终端身份、通信报文的机密性和完整性。配电主站完成与配电终端的双向身份认证后,从配电终端获取配电终端信息,所述配电终端信息包括配电终端对称密钥版本号和用于计算消息认证码mac的初始向量iv0;配电主站根据配电终端对称密钥版本号判断配电终端是否为首次身份认证,若非首次认证,则执行配电终端与配电主站间的报文交互;否则,更新配电终端的对称密钥后,再执行配电终端与配电主站间的报文交互;所述配电终端与配电主站间的报文交互是通过对报文的加密、以iv0为初始向量计算加密报文的消息认证码以及传输带有消息认证码的加密报文实现的。

报文交互之后还包括配电终端与运维工具的身份认证,并在认证成功后对现场运维数据进行安全防护。特别是在安全防护的数字签名中引入随机数增强抗重放攻击能力,解决了遥控/参数设置报文存在重放攻击的安全隐患;从而提高了配电自动化系统配电主站和配电终端之间纵向通信的安全防护水平:

1)增强配电主站系统对配电终端的身份鉴别能力,可有效防止伪冒配电终端接入配电自动化系统;

2)具备对配电自动化业务数据机密性和完整性的安全防护能力,可有效防止业务数据被黑客恶意篡改、仿造或破坏;

3)增强了配电终端抵抗遥控报文、参数设置等下行报文重放攻击的能力;

4)增加了配电终端对现场运维工具的身份鉴别能力,提高了配电终端现场运维业务的安全防护水平。

附图说明

图1:本发明实施例中通信报文安全交互方法流程图;

具体实施方式

下面结合附图对本发明的具体实施方式作详细说明。

本发明提供一种配电自动化系统的通信报文安全交互方法,如图1所示,包括:

配电主站完成与配电终端的双向身份认证后,从配电终端获取配电终端信息,所述配电终端信息包括配电终端对称密钥版本号和用于计算消息认证码mac的初始向量iv0;

配电主站根据配电终端对称密钥版本号判断配电终端是否为首次身份认证,若非首次认证,则执行配电终端与配电主站间的报文交互;否则,更新配电终端的对称密钥后,再执行配电终端与配电主站间的报文交互;所述配电终端与配电主站间的报文交互是通过对报文的加密、以iv0为初始向量计算加密报文的消息认证码以及传输带有消息认证码的加密报文实现的。

其中,配电终端包括配电安全芯片,且每个芯片携带序列号标识;所述配电主站包括加密认证装置;

加密认证装置将配电安全芯片序列号作为分散因子,对配电安全芯片中的对称密钥进行分散,获得配电安全芯片中的对称密钥。

更新配电终端对称密钥包括:配电主站向配电终端发送取密钥版本号指令,配电终端从配电安全芯片内读取对称密钥版本号,并获取随机数r5,返回给配电主站;

配电主站通过密钥版本号判断需要从加密认证装置中导出的对称密钥的组号;并以配电终端随机数r5作为mac初始向量,配电安全芯片序列号作为分散因子,对当前密钥组的主控密钥进行分散,得到保护传输密钥,分散导出指定组号的对称密钥数据包pk,并基于sm2算法,采用配电主站私钥对pk进行签名获得sk,将{签名密钥标识iask+pk+sk}发送给配电终端;所述配电终端接收到密钥更新报文后,将{iask+pk+sk}发送到配电安全芯片,完成密钥更新,并向配电主站返回更新结果信息;其中,

对称密钥数据包pk包括:密钥版本、数条密钥的密文和消息认证码。

当报文类型为遥控报文时,执行配电终端与配电主站间的报文交互包括如下步骤:配电主站对{遥控选择命令报文mcs+时间信息tc}进行签名,获得签名数据scs,用下行数据保护密钥对{mcs+tc+scs+签名密钥标识iask}进行加密得到密文ecs,并以iv0作为初始向量计算ecs的消息认证码maccs,将{ecs+maccs}发送给配电终端;

配电终端利用下行数据保护密钥对{ecs+maccs}进行消息认证码验证和解密操作,获得{mcs+tc+scs+iask};判断指令时效性,并以{mcs+tc}为明文并用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rc,利用上行数据保护密钥对{遥控选择确认报文mcsc+rc}加密,获得密文ecsc,并以iv0作为初始向量计算ecsc的消息认证码maccsc,将{ecsc+maccsc}上传至配电主站;否则返回错误信息;

配电主站对{ecsc+maccsc}进行消息认证码验证和解密操作;若验证成功,则对{遥控执行命令报文mce+tc+rc}进行签名,获得签名数据sce,用下行数据保护密钥对{mce+tc+rc+sce+iask}进行加密得到{加密结果ece+macce}发送给配电终端;其中,rc、tc用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{ece+macce}进行消息认证码验证和解密操作,获得{mce+tc+rc+sce+iask},并判断指令时效;

以{mce+tc+rc}为明文,利用配电主站证书和随机数rc验证配电主站签名的正确性;若签名正确,配电终端利用上行数据保护密钥对遥控执行确认报文mcec加密得到密文ecec,并以iv0作为初始向量,计算密文的消息认证码maccec,将{ecec+maccec}上传至配电主站,执行相应的遥控操作,并向配电主站发送遥控执行结果否则返回错误信息。

当报文类型为远程参数更新报文时,执行配电终端与配电主站间的报文交互包括如下步骤:配电主站对远程参数预置报文mps进行签名,获得签名数据sps,用下行数据保护密钥对{mps+sps+签名密钥标识iask}进行加密并计算消息认证码,获得的{加密结果eps+macps}发送给配电终端;

配电终端接收后,用下行数据保护密钥对{eps+macps}进行验证消息认证码和解密操作,获得{mps+sps+iask},并以mcs为明文,用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rp,用上行数据保护密钥对{远程参数预置确认报文mpsc+rp}加密得到密文epsc,并以iv0为初始向量计算密文的消息认证码得到macpsc,将{epsc+macpsc}上传至配电主站;否则返回错误信息;

配电主站对{epsc+macpsc}进行消息认证码验证并解密操作;若验证正确,则对{远程参数固化报文mpe+rp}签名,获得签名数据spe,用下行数据保护密钥对{mpe+rp+spe+iask}进行加密得到密文{加密结果epe+macpe}发送至配电终端;其中,rp用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{epe+macpe}进行消息认证码验证和解密操作,获得{mpe+rp+spe+iask};并以{mpe+rp}为明文,利用配电主站证书和随机数rp验证配电主站签名的正确性;若签名正确,则执行相应的参数更新操作,利用上行数据保护密钥对远程参数固化确认报文mpec加密得到密文epec,并以iv0为初始向量计算密文的消息认证码,得到macpec,将{epec+macpec}上传至配电主站;否则返回错误信息。

当报文类型为遥信/遥测报文时,所述执行配电终端与配电主站间的报文交互包括如下步骤:配电终端以iv0作为mac初始向量,将需上传的遥信/遥测报文利用上行数据保护密钥进行加密获得密{密文数据+mac}发送给配电主站;

配电主站接收报文后,利用iv0和上行数据保护密钥验证消息认证码的正确性,并解密获得明文数据。

执行配电终端与配电主站间的报文交互之前还包括:判断配电终端与配电主站间是否存在安全接入网关;若是,则所述配电终端先执行与安全接入网关的身份认证,再执行与配电主站的身份认证;若否,则直接执行配电终端与配电主站的身份认证。

配电终端与安全接入网关的身份认证包括:安全接入网关与配电终端建立网络连接后,将自动生成的随机数r1发送给配电终端;配电终端利用在配电安全芯片选取的配电终端随机数r2对{r1+r2}签名后得到stg和it,将{r2+stg+签名密钥标识it}发送给安全接入网关;安全接入网关利用配电终端证书验证{r2+stg+签名密钥标识it}有效性,验证通过则对配电终端随机数r2签名,生成{签名结果sgt+签名密钥标识ig},发送至配电终端;配电终端利用安全接入网关证书验证{签名结果sgt+签名密钥标识ig}有效性,验证通过后完成配电终端对安全接入网关的身份认证,并返回认证确认信息。

配电主站与配电终端的双向身份认证包括:配电主站从加密认证装置取随机数r3,发送给配电终端;配电终端从配电安全芯片取配电终端随机数r4,对{r3+r4}签名后得到stm和it,将{r4+stm+签名密钥标识it}发送给配电主站;

配电主站利用配电终端证书验证配电终端签名有效性,验证成功,则对配电终端随机数r4签名,生成{签名结果smt+签名密钥标识iask}并返回;

配电终端利用配电主站证书验证配电主站{签名结果smt+签名密钥标识iask}的正确性,验证无误后完成配电终端对配电主站的身份认证,并返回认证确认信息;

双向认证成功后,配电主站发送读取配电安全芯片序列号的报文,配电终端返回配电安全芯片的序列号;配电主站、配电终端利用{r3+(r3按位取反)}作为计算消息认证码的初始向量iv0。

此外,执行配电终端与配电主站间的报文安全交互还包括:若交互过程中原配电主站数字证书失效,则更新数字证书;数字证书包括:内置于配电安全芯片的根ca公钥、ca二级应用证书、配电主站证书和安全接入网关证书;以及内置于所述配电主站和安全接入网关中的ca二级应用证书和多个配电终端数字证书;其中,根ca公钥,用于验证ca二级应用证书的合法性,无法更改;

ca二级应用证书,用于验证配电主站证书、配电终端证书和安全接入网关证书的合法性。

更新数字证书包括:

配电主站对需下发的{证书标识n+证书内容cn+时间信息tuc}进行签名,获得签名结果suc,利用下行数据保护密钥对{n+cn+tuc+suc+iask}进行加密,将加密结果密文euc发送给配电终端;

配电终端用下行数据保护密钥对euc进行解密,获得{n+cn+tuc+suc+iask},将{n+cn+tuc}作为明文数据,用配电主站证书验证签名的正确性;若签名正确,则将证书内容下载至配电安全芯片中,并向配电主站返回证书更新结果。

执行配电终端与配电主站间的报文安全交互之后,还包括:

执行配电终端与运维工具的身份认证;

配电终端与运维工具通过身份认证后,对现场运维数据进行安全防护。

执行配电终端与运维工具的身份认证具体包括:将运维工具id和数字证书发送给配电终端,向配电终端发起认证请求;配电终端取随机数r发送给运维工具,运维工具对随机数r进行签名,并将签名结果返回给配电终端;

配电终端利用运维工具数字证书验证签名有效性,并将认证结果返回给运维工具。

对现场运维数据进行安全防护包括:

配电终端与运维工具通过身份认证后,用现场运维下行数据保护密钥对发送的运维数据报文mft进行加密,并计算消息认证码,获得{密文eft+macft}发送给配电终端;

配电终端以运维工具id作为分散因子,对配电安全芯片中的现场运维下行数据保护密钥进行分散,并对{eft+macft}进行消息认证码验证和解密操作,获取明文报文数据;

配电终端以运维工具id作为分散因子,对配电安全芯片中的现场运维上行数据保护密钥进行分散,对发送的运维数据报文mtf进行加密,并将通过计算消息认证码得到的{密文etf+mactf}发送给运维工具;

所述运维工具用现场运维上行数据保护密钥对{etf+mactf}进行消息认证码验证和解密操作,获取明文报文数据。

具体应用的实施例如下:

1)预定义密钥与数字证书:

a.配电安全芯片经发行后,内置的对称密钥包括主控密钥k′00、配电终端与配电主站通信的上行数据保护密钥k′01和下行数据保护密钥k′02、配电终端与现场运维工具通信的上行数据保护密钥k03和下行数据保护密钥k04;k′00为更新安全芯片所有对称密钥时的保护密钥;所用对称加密算法为国密sm1算法。配电安全芯片内置1对非对称密钥用于配电终端和配电主站、安全接入安全接入网关之间的双向身份认证;所用非对称加密算法为国密sm2、sm3算法。

b.配电主站侧加密认证装置经发行后,内置2组与配电安全芯片中功能相同的对称密钥(第0组为:k00,k01,k02,k03,k04;第1组为:k10,k11,k12,k13,k14);加密认证装置利用配电安全芯片序列号作为分散因子,对其中的对称密钥进行分散可得到配电安全芯片中的对称密钥(例如:对k00,k01,k02的分散次数为1;对k03,k04的分散次数为0),实现配电主站与配电终端通信报文的对称加解密。配电主站侧加密认证装置内置4对非对称密钥,用于配电主站与配电终端身份认证、下行报文的数字签名。加密认证装置所用对称加密算法为国密sm1算法;所用非对称加密算法为国密sm2、sm3算法。

c.安全接入安全接入网关经发行后内置1对非对称密钥,用于安全接入网关与配电终端之间的双向身份认证;所用非对称加密算法为国密sm2、sm3算法。

d.配电安全芯片经发行后,内置根ca公钥、ca二级应用证书c0、4份配电主站证书(c1,c2,c3,c4)、安全接入安全接入网关证书c5。其中根ca公钥用于验证ca二级应用证书的合法性,不可更改;ca二级应用证书用于验证配电主站证书和安全接入网关证书的合法性。

e.配电主站配置c0和配电终端证书ct;安全接入安全接入网关内置c0,并从配电主站获取ct。

f.现场运维工具经发行后,内置1对非对称密钥及其数字证书cf,用于与配电终端之间的身份认证;内置配电终端与现场运维工具通信的上行数据保护密钥k′14和下行数据保护密钥k′15。现场运维工具包括手持式运维配电终端、笔记本电脑等。

2)身份认证方法。包括配电终端与安全接入安全接入网关之间双向认证方法、配电终端与配电主站之间双向认证方法、配电终端与现场运维工具之间单向认证方法。

a.若配电主站与配电终端之间存在安全接入安全接入网关,配电终端与配电主站进行安全认证之前必须通过与安全接入网关之间的双向身份认证。具体步骤为:安全接入网关与配电终端之间建立网络连接(如tcp连接)后,安全接入网关产生随机数r1,发送给配电终端;配电终端从安全芯片取配电终端随机数r2,对{r1+r2}签名后得到stg,将{r2+stg+签名密钥标识it}发送给安全接入网关(it可取1);安全接入网关用ct验证签名有效性,验证通过后完成对配电终端的身份认证,之后安全接入网关对配电终端随机数r2签名,将{签名结果sgt+签名密钥标识ig}发送给配电终端(ig可取1);配电终端用c5验证签名有效性,验证通过后完成对安全接入网关的身份认证,并返回认证确认信息。

b.在配电终端与配电主站之间建立网络连接(如tcp连接)后,配电主站向配电终端发起双向身份认证。配电主站从加密认证装置取随机数r3,发送给配电终端;配电终端从安全芯片取配电终端随机数r4,对{r3+r4}签名后得到stm,将{r4+stm+签名密钥标识it}发送给配电主站(it可取1);配电主站用ct验证配电终端签名有效性,验证通过完成配电主站对配电终端的身份,之后配电主站对配电终端随机数r4签名,将{签名结果smt+签名密钥标识iask}发送给配电终端(iask可取1,2,3,4);配电终端用配电主站证书(证书标识须与iask对应;例如iask=1时,则使用配电主站证书c1)验证配电主站签名的正确性,验证通过完成配电终端对配电主站的身份认证并返回认证确认信息。双向认证成功后,配电主站发送读取配电安全芯片序列号的报文;配电终端返回安全芯片的序列号,配电主站、配电终端利用{r3+(r3按位取反)}作为计算消息认证码的初始向量iv0。配电主站与配电终端通过安全认证后,双方之间方可传输其他应用报文,包括建立iec60870-5-101/104通信链路、配电终端对称密钥更新、数字证书更新等。

c.现场运维工具向配电终端发起认证请求,将运维工具id和数字证书发送给配电终端;配电终端取随机数r发送给运维工具;运维工具对随机数r进行签名,并将签名结果发送给配电终端;配电终端用运维工具证书验证签名有效性,并将认证结果返回给运维工具。现场运维工具通过配电终端的安全认证后,双方之间方可传输现场运维报文。

3)配电终端对称密钥更新:

配电终端投运前,其安全芯片中的对称密钥为测试密钥(版本号记为0),投运后需要通过配电主站远程更新为正式密钥(版本号大于0);配电终端返厂维修前,其安全芯片中的对称密钥需要更新为测试密钥。具体更新方法包括以下步骤:

a.配电主站向配电终端发送取密钥版本号指令;

b.配电终端从安全芯片内读取对称密钥版本号,并获取随机数r5,返回给配电主站;

c.配电主站通过密钥版本号判断需要从加密认证装置中导出的对称密钥的组号(等于版本号);例如,当版本号为0时,加密认证装置需要导出第1组对称密钥;

d.配电主站利用配电终端随机数r5作为计算mac的初始向量,利用配电安全芯片序列号作为分散因子对第0组的主控密钥k00进行1次分散得到保护传输密钥k′00,分散导出第1组对称密钥得到k′10,k′11,k′12,k13,k14(对k10,k11,k12的分散次数为1;对k13,k14的分散次数为0)的密文和mac;导出的数据包pk为:{密钥版本(即为1),k′10的密文+mac,k′11的密文+mac,…,k14的密文+mac},并利用配电主站私钥对pk进行签名得到sk,将{签名密钥标识iask+pk+sk}发送给配电终端;

e.配电终端接收到密钥更新报文后,将{iask+pk+sk}发送到安全芯片,完成密钥更新,并向配电主站返回更新结果信息。配电安全芯片中的对称密钥更新为:k′10,k′11,k′12,k13,k14。

4)遥控报文安全交互;

配电主站对配电终端下发的遥控报文基于iec60870-5-101/104规约,具体安全防护流程如下:

a.配电主站对要下发的{遥控选择命令报文mcs+时间信息tc)进行签名,获得签名数据scs,然后以iv0作为mac初始向量,用k′12对{mcs+tc+scs+签名密钥标识iask}进行加密并计算mac,获得{加密结果ecs+maccs},将{ecs+maccs}发送给配电终端。

b.配电终端接收到数据之后,用k′12对{ecs+maccs}进行验证mac和解密操作,获得{mcs+tc+scs+iask},并判断指令时效性,之后以{mcs+tc}为明文并用配电主站证书验证签名有效性。若签名正确,配电终端取随机数rc,然后用k′11对{遥控选择确认报文mcsc+rc}加密得到密文ecsc,并以iv0为初始向量对密文计算mac得到maccsc,将{ecsc+maccsc}上传至配电主站;否则返回错误信息。

c.配电主站用k′11对{ecsc+maccsc}验证mac并解密;若验证正确,配电主站对{遥控执行命令报文mce+tc+rc}进行签名,获得签名数据sce,然后以iv0为mac初始向量,用k′12对{mce+tc+rc+sce+iask}进行加密并计算mac,得到{加密结果ece+macce},将{ece+macce}发送给配电终端。其中,rc、tc用于配电终端抵抗重放攻击。

d.配电终端用k′12对{ece+macce}验证mac并解密,获得{mce+tc+rc+sce+iask},并判断指令时效,之后以{mce+tc+rc}为明文,利用配电主站证书和随机数rc验证配电主站签名的正确性。若签名正确,配电终端用k′11对遥控执行确认报文mcec加密得到密文ecec,并以iv0为初始向量对密文计算mac得到maccec,将{ecec+maccec}上传至配电主站;否则返回错误信息。配电终端发送{ecec+maccec}之后,执行相应的遥控操作,并向配电主站发送遥控执行结果。

5)远程参数更新报文交互;

配电主站对配电终端下发的远程参数更新报文基于iec60870-5-101/104规约,具体安全防护流程如下:

a.配电主站对要下发的远程参数预置报文mps进行签名,获得签名数据sps,然后以iv0为mac初始向量,用k′12对{mps+sps+签名密钥标识iask}进行加密并计算mac,获得{加密结果eps+macps},将{eps+macps}发送给配电终端。

b.配电终端接收到数据之后,用k′12对{eps+macps}进行验证mac和解密操作,获得{mps+sps+iask},之后以mcs为明文并用配电主站证书验证签名有效性。若签名正确,配电终端取随机数rp,然后用k′11对{远程参数预置确认报文mpsc+rp}加密得到密文epsc,并以iv0为初始向量对密文计算mac得到macpsc,将{epsc+macpsc}上传至配电主站;否则返回错误信息。

c.配电主站用k′11对{epsc+macpsc}验证mac并解密;若验证正确,配电主站对{远程参数固化报文mpe+rp}进行签名,获得签名数据spe,然后以iv0为mac初始向量,用k′12对{mpe+rp+spe+iask}进行加密并计算mac,得到{加密结果epe+macpe},将{epe+macpe}发送给配电终端。其中,rp用于配电终端抵抗重放攻击。

d.配电终端用k′12对{epe+macpe}验证mac并解密,获得{mpe+rp+spe+iask},之后以{mpe+rp}为明文,利用配电主站证书和随机数rp验证配电主站签名的正确性。若签名正确,配电终端执行相应的参数更新操作,并用k′11对远程参数固化确认报文mpec加密得到密文epec,并以iv0为初始向量对密文计算mac得到macpec,将{epec+macpec}上传至配电主站;否则返回错误信息。

6)遥信/遥测报文交互;

配电终端上传的遥信/遥测报文基于iec60870-5-101/104规约,具体安全防护流程如下:

a.配电终端以iv0作为mac初始向量,将要上传的遥信/遥测报文,利用k′11加密并计算消息认证码mac,将{密文数据+mac}发送给配电主站;

b.配电主站接收报文后,同样利用iv0和k′11验证mac的正确性,并解密获得明文数据。

7)数字证书更新;

当配电主站、安全接入网关或ca二级应用证书的有效期将至时,需要远程更新配电安全芯片中的数字证书,具体步骤如下(每次只更新一张证书;当更新配电主站的某张证书时,需要用配电主站另一张证书对应的私钥进行签名):

a.配电主站对要下发的{证书标识n+证书内容cn+时间信息tuc}进行签名(n可取0,1,2,3,4,5),获得签名结果suc,然后用k′12对{n+cn+tuc+suc+iask}进行加密,将加密结果密文euc发送给配电终端;

b.配电终端用k′12对euc进行解密,获得{n+cn+tuc+suc+iask},将{n+cn+tuc}作为明文数据,用配电主站证书验证签名的正确性;若签名正确则将证书内容下载到安全芯片,并向配电主站返回证书更新结果,否则返回错误信息。

8)现场运维数据交互安全防护具体过程;

a.现场运维工具与配电终端之间通过身份认证后,用k′15对发送的运维数据报文mft进行加密并计算mac得到{密文eft+macft},并将其发送给配电终端;

b.配电终端利用运维工具id作为分散因子对安全芯片中的k15进行1次分散得到k′15,并利用k′15对{eft+macft}进行验证mac和解密操作,获取明文报文数据;配电终端利用运维工具id作为分散因子对安全芯片中的k14进行1次分散得到k′14,并对发送的运维数据报文mtf进行加密、计算mac得到{密文etf+mactf},将其发送给现场运维工具;

c.现场运维工具用k′14对{etf+mactf}进行验证mac和解密操作,获取明文报文数据。

基于上述发明构思,本实施例中还提供了一种配电自动化系统的通信报文安全交互装置,包括:

信息获取模块,用于配电主站完成与配电终端的双向身份认证后,从配电终端获取配电终端信息,所述配电终端信息包括配电终端对称密钥版本号和用于计算消息认证码mac的初始向量iv0;

判断模块,用于配电主站根据配电终端对称密钥版本号判断配电终端是否为首次身份认证;

报文交互模块,用于若配电终端非首次认证,执行配电终端与配电主站间的报文交互;否则更新配电终端的对称密钥后,再执行配电终端与配电主站间的报文交互;所述配电终端与配电主站间的报文交互是通过对报文的加密、以iv0为初始向量计算加密报文的消息认证码以及传输带有消息认证码的加密报文实现的。

其中,报文交互模块,包括遥控报文交互单元,用于当报文类型为遥控报文时,配电主站对{遥控选择命令报文mcs+时间信息tc}进行签名,获得签名数据scs,用下行数据保护密钥对{mcs+tc+scs+签名密钥标识iask}进行加密得到密文ecs,并以iv0作为初始向量计算ecs的消息认证码maccs,将{ecs+maccs}发送给配电终端;

配电终端利用下行数据保护密钥对{ecs+maccs}进行消息认证码验证和解密操作,获得{mcs+tc+scs+iask};判断指令时效性,并以{mcs+tc}为明文并用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rc,利用上行数据保护密钥对{遥控选择确认报文mcsc+rc}加密,获得密文ecsc,并以iv0作为初始向量计算ecsc的消息认证码maccsc,将{ecsc+maccsc}上传至配电主站;否则返回错误信息;

配电主站对{ecsc+maccsc}进行消息认证码验证和解密操作;若验证成功,则对{遥控执行命令报文mce+tc+rc}进行签名,获得签名数据sce,用下行数据保护密钥对{mce+tc+rc+sce+iask}进行加密得到{加密结果ece+macce}发送给配电终端;其中,rc、tc用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{ece+macce}进行消息认证码验证和解密操作,获得{mce+tc+rc+sce+iask},并判断指令时效;

以{mce+tc+rc}为明文,利用配电主站证书和随机数rc验证配电主站签名的正确性;若签名正确,配电终端利用上行数据保护密钥对遥控执行确认报文mcec加密得到密文ecec,并以iv0作为初始向量,计算密文的消息认证码maccec,将{ecec+maccec}上传至配电主站,执行相应的遥控操作,并向配电主站发送遥控执行结果否则返回错误信息;

远程参数更新报文交互单元,用于当报文类型为远程参数更新报文时,配电主站对远程参数预置报文mps进行签名,获得签名数据sps,用下行数据保护密钥对{mps+sps+签名密钥标识iask}进行加密并计算消息认证码,获得的{加密结果eps+macps}发送给配电终端;

配电终端接收后,用下行数据保护密钥对{eps+macps}进行验证消息认证码和解密操作,获得{mps+sps+iask},并以mcs为明文,用配电主站证书验证签名有效性;若签名正确,配电终端取随机数rp,用上行数据保护密钥对{远程参数预置确认报文mpsc+rp}加密得到密文epsc,并以iv0为初始向量计算密文的消息认证码得到macpsc,将{epsc+macpsc}上传至配电主站;否则返回错误信息;

配电主站对{epsc+macpsc}进行消息认证码验证并解密操作;若验证正确,则对{远程参数固化报文mpe+rp}签名,获得签名数据spe,用下行数据保护密钥对{mpe+rp+spe+iask}进行加密得到密文{加密结果epe+macpe}发送至配电终端;其中,rp用于配电终端抵抗重放攻击;

配电终端利用下行数据保护密钥对{epe+macpe}进行消息认证码验证和解密操作,获得{mpe+rp+spe+iask};并以{mpe+rp}为明文,利用配电主站证书和随机数rp验证配电主站签名的正确性;若签名正确,则执行相应的参数更新操作,利用上行数据保护密钥对远程参数固化确认报文mpec加密得到密文epec,并以iv0为初始向量计算密文的消息认证码,得到macpec,将{epec+macpec}上传至配电主站;否则返回错误信息;

遥信/遥测报文交互单元,用于当报文类型为遥信/遥测报文时,配电终端以iv0作为mac初始向量,将需上传的遥信/遥测报文利用上行数据保护密钥进行加密获得密{密文数据+mac}发送给配电主站;

配电主站接收报文后,利用iv0和上行数据保护密钥验证消息认证码的正确性,并解密获得明文数据。

报文交互模块,还包括:数字证书更新单元:用于若交互过程中原配电主站数字证书失效,则更新数字证书。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1