首页> 中国专利> PLC设备身份认证系统和PLC设备身份认证方法

PLC设备身份认证系统和PLC设备身份认证方法

摘要

本发明提供一种PLC设备身份认证系统和PLC设备身份认证方法,其中PLC设备身份认证系统,包括:上位机设备,用于发起通信协议Modbus,并且具有计算KDF、国产对称密码算法和解密的功能;PLC下位机设备,用于响应由所述上位机设备发起的通信协议Modbus,并且具有国产对称密码算法和解密的功能;后台管理单元,用于管理所述上位机设备和所述PLC下位机设备,并且具有计算KDF的功能;密钥管理单元,与所述后台管理单元连接,具有生成和管理密钥的功能;其中,所述KDF为密钥导出函数。根据本发明的PLC设备身份认证系统,结构简单,简单的配置即可完成复杂的通信及计算过程,而且验证可靠性高,功能稳定。

著录项

说明书

技术领域

本发明涉及工业控制安全技术领域,尤其涉及一种PLC设备身份认证系统以及PLC设备身份认证方法。

背景技术

民用运输机场供油自控系统包括长输管道输油自动化控制系统、油库供油自动化控制系统、航空加油站加油自动化控制系统等。该系统中以PLC为代表的工控设备关键核心部件面临的安全形势正在日益加剧,大量的PLC安全事件的发生,证明尽管国际主流品牌PLC功能稳定、可靠性高,但缺乏必要的安全设计,存在较高的安全风险,特别是PLC设备的身份认证问题。这导致任意设备都可接入或者设备被篡改为非法设备也不能识别等,从而对整个民用运输机场供油自控系统的安全运行造成危害。

传统的民用运输机场供油自控系统是封闭系统,很多厂商也就默认和接收了这样的风险;其次,该系统中使用的Modbus协议中也不提供设备认证功能。但是现在工业互联网的引入使得民用运输机场供油自控系统成为一个开放的环境,这就使得该问题成为一个迫在眉睫的严重问题。

发明内容

本发明的目的在于解决上述背景技术中的至少一个问题,提供一种PLC设备身份认证系统和PLC设备身份认证方法。

为实现上述目的,本发明提供一种PLC设备身份认证系统,包括:

上位机设备,用于发起通信协议Modbus,并且具有计算KDF、国产对称密码算法和解密的功能;

PLC下位机设备,用于响应由所述上位机设备发起的通信协议Modbus,并且具有国产对称密码算法和解密的功能;

后台管理单元,用于管理所述上位机设备和所述PLC下位机设备,并且具有计算KDF的功能;

密钥管理单元,与所述后台管理单元连接,具有生成和管理密钥的功能;

其中,所述KDF为密钥导出函数。

为实现上述目的,本发明还提供一种PLC设备身份认证方法,包括以下步骤:

所述上位机设备发送认证命令;

所述PLC下位机设备响应所述认证命令,并发起应答命令;

所述上位机设备根据所述后台管理单元管理的所述PLC下位机设备信息和所述密钥管理单元生成的所述PLC下位机设备的密钥验证所述PLC下位机设备的所述应答命令是否等于所述认证命令,若是,则认证通过。

根据本发明的一个方面,所述上位机设备生成随机数R,所述上位机设备发送所述随机数R,所述随机数R的长度RLen为14字节。

根据本发明的一个方面,所述上位机设备向所述后台管理单元请求随机数R,所述上位机设备发送所述随机数R,所述随机数R的长度RLen为14字节。

根据本发明的一个方面,所述上位机设备发送所述随机数R时的Modbus数据报文包括:

地址:所述PLC下位机设备地址;

功能码:采用自定义码FCODE1,该自定义码表明所述上位机设备要求所述PLC下位机设备响应身份验证请求;

数据:所述随机数R,长度为RLen字节;

CRC:按Modbus协议执行CRC计算。

根据本发明的一个方面,所述PLC下位机设备收到所述随机数R时,解析所述随机数R,验证所述CRC和所述功能码FCODE1,正确后利用所述PLC下位机设备地址SD-ADDR、自定义码FCODE2和所述PLC下位机设备的唯一标识SDID值计算CD值:

CD = CRC(SD-ADDR|| FCODE2||SDID);

其中,自定义码FCODE2为所述上位机设备要求所述PLC下位机设备响应身份验证请求,CD为CRC计算结果的记号,其长度为2字节。

根据本发明的一个方面,所述PLC下位机设备发送所述SDID值和密文CT值,其中,CT = ENC

其中,密文CT长度CTLen为16字节,ENC为密文导出函数,ENC

根据本发明的一个方面,所述PLC下位机设备发送所述SDID值和所述CT值时的Modbus数据报文包括:

地址:所述PLC下位机设备地址;

功能码:采用所述自定义码FCODE2,该自定义码表明所述PLC下位机设备响应身份验证请求;

数据:所述SDID值和所述CT值;

CRC:按Modbus协议执行CRC计算。

根据本发明的一个方面,所述上位机设备验证所述Modbus协议的有效性,验证所述CRC值和所述功能码FCODE2,验证通过则进入下一步,否则,所述PLC下位机设备身份认证失败。

根据本发明的一个方面,所述上位机设备验证所述PLC下位机设备的唯一标识SDID是否有效,所述上位机设备向所述后台管理单元确认所述SDID是否有效或被吊销,若反馈无效或被吊销,则所述PLC下位机设备身份认证失败,若验证通过则进入下一步。

根据本发明的一个方面,所述上位机设备利用所述PLC下位机设备的唯一标识SDID生成所述PLC下位机设备的密钥,该密钥为128比特的密钥SK,SK=KDF(GK, SDID),其中,KDF是密钥导出函数,KDF(GK, SDID)表示用密钥GK和SDID值执行密钥导出函数计算,得到指定长度派生密钥。

根据本发明的一个方面,所述上位机设备用所述密钥SK解密所述CT得到明文PT,PT = DEC

根据本发明的一个方面,所述上位机设备计算所述CD值,然后检查所述CD与所述PT的前16比特是否相等,若相等,则进入下一步;否则,所述PLC下位机设备身份认证失败;

其中,式中CRC表示对数据SD-ADDR|| FCODE2||SDID执行Modbus的CRC计算,得到16比特校验码。

根据本发明的一个方面,所述上位机设备将解密得到的明文PT丢弃前16比特,保留16比特后的数据,记为R`,比较所述随机数R与R`是否相等,若相等,则所述PLC下位机设备身份认证通过;否则,所述PLC下位机设备身份认证失败。

根据本发明的一个方案,PLC设备身份认证系统的结构简单,上下位设备通过后台管理单元管理设备信息、通过密钥管理单元生成并管理密钥以及通过ModBus协议完成的通信即可完成PLC设备的身份验证,使得整个系统通过简单的配置即可完成复杂的通信及计算过程,而且验证可靠性高,功能稳定。

根据本发明的一个方案,因为CD||R共16=14+2个字节,ENCSK(CD||R)可以直接使用ECB(电码本)模式加密,仅调用一次国产对称密码算法,加密得到的密文CT的长度CTLen为16个字节。其中,国产分组密码算法优选SM7算法,该算法是轻量级分组密码算法,在PLC下位机设备中使用此算法会进一步减小PLC下位机设备的资源开销。

根据本发明的一个方案,对密文CT(长度CTLen为16个字节)做解密的计算PT =DECSK(CT)也是直接使用ECB(电码本)模式解密,仅调用一次国产对称密码算法,并且国产分组密码算法优选SM7算法,该算法是轻量级分组密码算法,在PLC下位机设备中使用此算法会进一步减小PLC下位机设备的资源开销。

根据本发明的认证方法,实现了设备的身份认证,确保设备接入安全。设备认证中全部采用国产密码算法实现,从算法层面保证了系统的安全可靠。设备认证中采用分组密码算法减少了计算能力不强的下位机设备的计算资源消耗。不仅如此,使用轻量级密码算法SM7,可以更进一步减少下位机设备的计算资源消耗。

并且本发明兼容Modbus协议,协议格式无改动,采用Modbus允许的自定义功能码方式告知协议指令功能。而且有良好的健壮性,即使有不识别自定义功能码的下位机设备存在,也不会对导致设备或系统异常。

同时安全性高,且兼顾安全性与系统适用性。上位机设备可以计算出任意下位机设备的密钥,只要知道PLC下位机设备的唯一标识SDID,就可以派生出下位机设备密钥。每一个PLC下位机设备只知道自己的下位机设备密钥,无法计算出其它设备的密钥。

附图说明

图1示意性表示根据本发明的一种实施方式的PLC设备身份认证系统的结构组成框图;

图2示意性表示根据本发明的一种实施方式的PLC设备身份认证方法的流程图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护范围。

图1示意性表示根据本发明的一种实施方式的PLC设备身份认证系统的结构组成框图。如图1所示,根据本发明的一种实施方式PLC设备身份认证系统,包括:上位机设备、PLC下位机设备、后台管理单元和密钥管理单元。其中,上位机设备用于发起通信协议Modbus,并且具有计算KDF、国产对称密码算法和解密的功能。PLC下位机设备用于响应由上位机设备发起的通信协议Modbus,并且具有国产对称密码算法和解密的功能。后台管理单元用于管理上位机设备和PLC下位机设备,并且具有计算KDF的功能。密钥管理单元与后台管理单元连接,具有生成和管理密钥的功能。在本实施方式中,KDF为密钥导出函数。在本实施方式中,国产对称密码算法包括SM4算法、SM1算法和SM7算法。

根据本发明的上述设置,PLC设备身份认证系统的结构简单,上下位设备通过后台管理单元管理设备信息、通过密钥管理单元生成并管理密钥以及通过ModBus协议完成的通信即可完成PLC设备的身份验证,使得整个系统通过简单的配置即可完成复杂的通信及计算过程,而且验证可靠性高,功能稳定。

根据本发明的上述PLC设备身份认证系统,初始化过程如下:

首先添加上位机设备,向后台管理单元注册和添加上位机设备,后台管理单元从密钥管理单元处申请上位机设备密钥GK(为对称密钥,比如为128比特至256比特。),并以安全形式将上位机设备密钥GK注入上位机设备。

然后添加PLC下位机设备,PLC下位机设备向后台管理单元申请添加和注册,后台管理单元读取PLC下位机设备唯一标识SDID,派生SK=KDF(GK, SDID),注入PLC下位机设备。SK为下位机设备密钥,128比特,不同的PLC下位机设备有不同的PLC下位机设备密钥,它由上位机设备密钥GK派生。KDF是密钥导出函数,KDF(GK, SDID)表示用密钥GK和数据SDID执行密钥导出函数计算,得到指定长度派生密钥;本发明中无特殊说明时,使用KDF派生得到的密钥长度为128比特。

图2示意性表示根据本发明的一种实施方式的PLC设备身份认证方法的流程图。如图2所示,根据本发明的一种实施方式的PLC设备身份认证方法,包括以下步骤:

a. 上位机设备发送认证命令;

b.PLC下位机设备响应上述认证命令,并发起应答命令;

c. 上位机设备根据后台管理单元中管理的PLC下位机设备信息和密钥管理单元生成的PLC下位机设备的密钥来验证PLC下位机设备发起的应答命令是否等于所述认证命令,若是,则认证通过。

在上述a步骤中,根据本发明的一种实施方式,上位机设备生成随机数R作为认证命令,上位机设备发送该随机数R,该随机数R的长度RLen为14字节。

在上述a步骤中,根据本发明的另一种实施方式,上位机设备向后台管理单元请求随机数R作为认证命令,然后上位机设备发送该随机数R,该随机数R的长度RLen为14字节。

根据以上a步骤中的两种实施方式中任一种,上位机设备发送随机数R时的Modbus数据报文包括:

地址:PLC下位设备地址;

功能码:采用自定义码FCODE1,该自定义码表明上位机设备要求PLC下位机设备响应身份验证请求;

数据:随机数R,长度为RLen字节;

CRC:按Modbus协议执行CRC计算。CRC为循环冗余校验码。

根据本发明的一种实施方式,在上述b步骤中,PLC下位机设备收到认证命令随机数R时,解析随机数R,验证CRC和功能码FCODE1正确,正确后利用PLC下位机设备地址SD-ADDR、自定义码FCODE2和PLC下位机设备的唯一标识SDID(SDID为每个PLC下位机设备具有的唯一标识符,其公开值和长度不限,具体值由例如民用运输机场供油自控系统决定。)值计算CD值:

CD = CRC(SD-ADDR|| FCODE2||SDID);

其中,自定义码FCODE2为上位机设备要求所述PLC下位机设备响应身份验证请求,CD的长度为2字节。

在本实施方式中,PLC下位机设备发送SDID值和密文CT值作为应答命令,其中,CT= ENC

其中,密文CT长度CTLen为16字节,ENC为密文导出函数,ENC

在本实施方式中,因为CD||R共16=14+2个字节,ENCSK(CD||R)可以直接使用ECB(电码本)模式加密,仅调用一次国产对称密码算法,加密得到的密文CT的长度CTLen为16个字节。其中,国产分组密码算法优选SM7算法,该算法是轻量级分组密码算法,在PLC下位机设备中使用此算法会进一步减小PLC下位机设备的资源开销。

在本实施方式中,PLC下位机设备发送SDID值和所述CT值时的Modbus数据报文包括:

地址:PLC下位机设备地址;

功能码:采用自定义码FCODE2,该自定义码表明PLC下位机设备响应身份验证请求;

数据:SDID值和CT值;

CRC:按Modbus协议执行CRC计算。

根据本发明的一种实施方式,在上述c步骤中,上位机设备验证Modbus协议的有效性,验证CRC值的正确性并验证功能码为自定义码FCODE2,验证通过则进入下一步,否则,PLC下位机设备身份认证失败。

进一步地,上位机设备验证PLC下位机设备的唯一标识SDID是否有效,上位机设备向后台管理单元确认SDID是否有效或被吊销,若反馈无效或被吊销,则PLC下位机设备身份认证失败,若验证通过则进入下一步。

进一步地,上位机设备利用PLC下位机设备的唯一标识SDID生成PLC下位机设备的密钥,该密钥为128比特的密钥SK,SK=KDF(GK, SDID),其中,KDF是密钥导出函数,KDF(GK,SDID)表示用密钥GK和SDID值执行密钥导出函数计算,得到指定长度派生密钥。

进一步地,上位机设备用密钥SK解密CT得到明文PT,PT = DEC

在本实施方式中,对密文CT(长度CTLen为16个字节)做解密的计算PT = DECSK(CT)也是直接使用ECB(电码本)模式解密,仅调用一次国产对称密码算法,并且国产分组密码算法优选SM7算法,该算法是轻量级分组密码算法,在PLC下位机设备中使用此算法会进一步减小PLC下位机设备的资源开销。

进一步地,上位机设备计算CD值,然后检查CD与PT的前16比特是否相等,若相等,则进入下一步;否则,PLC下位机设备身份认证失败;

其中,CD = CRC(SD-ADDR|| FCODE2||SDID),式中CRC表示对数据SD-ADDR|| FCODE2||SDID执行Modbus的CRC计算,得到16比特校验码。

进一步地,上位机设备将解密得到的明文PT丢弃前16比特,保留16比特后的数据,记为R`,比较随机数R与R`是否相等,若相等,则PLC下位机设备身份认证通过;否则,PLC下位机设备身份认证失败。

不仅如此,下位机设备因为异常、故障等原因需要注销时,后台管理单元将该下位机设备的唯一标识加入到无效标识列表中。后续上位机设备向后台管理单元请求验证PLC下位机设备唯一标识时,若PLC下位机设备唯一标识在无效标识列表中,则后台管理系统向上位机设备反馈“下位机设备唯一标识无效”。

根据本发明的上述设置,例如在小型民用运输机场供油自控系统中,可以将上位机设备、后台管理单元、密钥管理单元进行一定程度的合并,比如第一种情况是后台管理单元和密钥管理单元合并,第二种情况是将后台管理单元和密钥管理单元都合并到上位机设备中。这样在小型系统中减少了设备开销和部署复杂度。

根据本发明的上述设置,实现了设备的身份认证,确保设备接入安全。设备认证中全部采用国产密码算法实现,从算法层面保证了系统的安全可靠。设备认证中采用分组密码算法减少了计算能力不强的下位机设备的计算资源消耗。不仅如此,使用轻量级密码算法SM7,可以更进一步减少下位机设备的计算资源消耗。

并且本发明兼容Modbus协议,协议格式无改动,采用Modbus允许的自定义功能码方式告知协议指令功能。而且有良好的健壮性,即使有不识别自定义功能码的下位机设备存在,也不会对导致设备或系统异常。

同时安全性高,且兼顾安全性与系统适用性。上位机设备可以计算出任意下位机设备的密钥,只要知道PLC下位机设备的唯一标识SDID,就可以派生出下位机设备密钥。每一个PLC下位机设备只知道自己的下位机设备密钥,无法计算出其它设备的密钥。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号