一种PLC远程固件升级系统及方法与流程

文档序号:20702571发布日期:2020-05-12 15:56阅读:443来源:国知局
一种PLC远程固件升级系统及方法与流程

本发明涉及信息安全技术领域,具体涉及一种plc远程固件升级系统及方法。



背景技术:

plc(programmablelogiccontroller),即可编程逻辑控制器,它是自动化领域常见的一种控制类产品,它采用程序存储器和系统存储器,程序存储器用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程的设备;系统存储器用于存储操作系统固件程序、系统参数等。

随着计算机科学领域、网络相关技术引入plc,使得plc控制、计算能力大幅度提升,plc体积变小、可靠性高等,逐渐渗透到工业控制的各个领域。然而,plc还存在很多信息安全漏洞,震网病毒入侵西门子plc破坏设施的安全运行,就是plc工业控制领域的一个标志性事件,表明plc自身的信息安全需要有效加强,plc的系统固件程序对于plc的可靠运行至关重要,对于plc的固件程序需要进行更新升级来弥补存在的漏洞;此外,plc与上位机之间的网络通讯存在安全隐患,通信信息容易被泄露和篡改。

因此如何提升plc自身设备的安全、方便地对plc的固件程序进行远程升级、保证plc与上位机之间进行升级、通信时的信息安全是目前急需解决的问题。



技术实现要素:

本发明针对上述问题,有必要提供一种plc远程固件升级系统及方法,其能够通过上位机对plc设备的固件程序进行远程升级,还能够保证上位机与plc设备之间的信息交互的机密性、完整性,提高固件升级和plc设备自身的安全性。

本发明第一方面提出一种plc远程固件升级系统,包括:至少一个上位机、升级服务器和至少一个plc设备;所述上位机中内嵌有第一安全模块或外接内置有第一安全模块的安全存储卡,所述plc设备中包括有微处理器mcu和第二安全模块;所述升级服务器分别与所述上位机、所述plc设备通过网络进行通信连接;

所述上位机和所述plc设备将自身的设备标识信息分别发送至升级服务器进行注册和关系绑定;

所述上位机,用于通过第一安全模块进行用户授权登录认证,在认证通过后经由所述升级服务器与所述plc设备进行双向身份认证和密钥协商获得会话密钥;还用于通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理;以及用于将所述升级数据包和所述签名的摘要信息通过所述第一安全模块使用所述会话密钥进行加密处理后发送至所述升级服务器;所述升级数据包包括版本号和plc设备型号;

所述升级服务器,用于生成所述上位机和所述plc设备的关系绑定策略和存储所述加密处理后的升级数据包和签名的摘要信息;

所述plc设备,用于通过所述第二安全模块经由所述升级服务器与所述上位机进行双向身份认证和密钥协商获得会话密钥;还用于通过所述微处理器mcu从所述升级服务器获取加密处理后的升级数据包和签名的摘要信息,并发送至所述第二安全模块进行解密处理;以及用于通过所述第二安全模块使用所述会话密钥解密所述加密处理后的升级数据包和签名的摘要信息获得所述升级数据包和签名的摘要信息,并对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行。

进一步的,所述升级服务器还用于根据所述上位机授权用户的升级指令向绑定的相应plc设备发送升级数据包;所述关系绑定策略用于判断所述上位机授权用户对plc设备的升级指令是否对应绑定的plc设备。

进一步的,所述第一安全模块中至少包括所述上位机用户的数字证书、所述plc设备的数字证书和自身私钥,所述第二安全模块中至少包括所述plc设备的数字证书、所述上位机用户的数字证书和自身私钥;

所述上位机通过第一安全模块进行用户授权登录认证包括:所述上位机首先验证用户输入的pin码,在验证通过后调用所述第一安全模块中的数字证书对用户进行身份认证,认证通过表明用户合法;

所述上位机通过第一安全模块经由所述升级服务器与所述plc设备进行双向身份认证和密钥协商获得会话密钥包括:所述上位机和所述plc设备经由所述升级服务器分别将包括各自数字证书的身份信息发给对方进行身份认证,所述上位机通过所述第一安全模块和所述plc设备通过所述第二安全模块分别对其接收的对方数字证书进行认证,认证通过表明对方身份合法;待身份认证通过后,所述上位机和所述plc设备再经由所述升级服务器分别将包括各自密钥协商信息发给对方进行密钥协商,所述上位机通过所述第一安全模块和所述plc设备通过所述第二安全模块分别根据接收的密钥协商信息和预置的密钥交换协议进行密钥计算获得会话密钥。

进一步的,所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理包括:所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和使用所述第一安全模块内的私钥对所述摘要信息进行签名处理;

所述plc设备对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行包括:所述plc设备通过所述第二安全模块内的所述上位机的数字证书的公钥对签名的摘要信息进行验签,待验签通过后进行摘要信息计算,比对验证通过后,将所述升级数据包传输至所述微处理器mcu执行。

进一步的,所述内置有第一安全模块的安全存储卡至少包括usb安全存储卡、sd安全存储卡。

进一步的,所述plc设备中还包括系统存储模块,用于存储所述升级数据包和当前plc设备的固件数据包、版本号和系统参数信息。

本发明还提出一种plc远程固件升级方法,所述方法包括:准备阶段和升级阶段;

准备阶段包括:

s101,上位机和plc设备将自身的设备标识信息分别发送至升级服务器进行注册后,所述升级服务器生成所述上位机和所述plc设备的关系绑定策略;

s102,所述上位机将对所述plc设备的升级指令发送至所述远程升级服务器,所述升级服务器根据所述关系绑定策略判断是否允许所述上位机对绑定的相应plc设备发送升级指令,若允许,则将所述升级指令传输至相应的所述plc设备,所述plc设备接收所述升级指令,并向所述上位机返回应答信息,建立所述上位机和所述plc设备的通信连接。

升级阶段包括:

s201,所述上位机通过第一安全模块进行用户授权登录认证,在认证通过后经由所述升级服务器与所述plc设备通过所述第二安全模块进行双向身份认证和密钥协商获得会话密钥;

s202,所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理;

s203,所述上位机将所述升级数据包和所述签名的摘要信息通过所述第一安全模块使用所述会话密钥进行加密处理后发送至所述升级服务器;所述升级数据包包括版本号和plc设备型号;

s204,所述升级服务器存储所述加密处理后的升级数据包和签名的摘要信息并发送至所述plc设备;

s205,所述plc设备通过其的微处理器mcu从所述升级服务器获取加密处理后的升级数据包和签名的摘要信息,并发送至其的第二安全模块进行解密处理;

s206,所述plc设备通过所述第二安全模块使用所述会话密钥解密所述加密处理后的升级数据包和签名的摘要信息获得所述升级数据包和签名的摘要信息;

s207,所述plc设备通过所述第二安全模块对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行。

进一步的,所述第一安全模块中至少包括所述上位机用户的数字证书、所述plc设备的数字证书和自身私钥,所述第二安全模块中至少包括所述plc设备的数字证书、所述上位机用户的数字证书和自身私钥;

所述s201具体包括:

所述上位机首先验证用户输入的pin码,在验证通过后调用所述第一安全模块中的数字证书对用户进行身份认证,认证通过表明用户合法;

所述上位机通过所述第一安全模块将包括其自身数字证书的身份信息经由所述升级服务器发送至相应的所述plc设备进行身份认证,所述plc设备通过所述第二安全模块内的所述上位机用户的数字证书进行验证,验证通过表明所述上位机用户身份合法;

所述plc设备再通过所述第二安全模块将包括其自身数字证书的身份信息经由所述升级服务器发送至相应的所述上位机进行身份认证,所述上位机通过所述第一安全模块内的所述plc设备的数字证书进行验证,验证通过表明所述plc设备身份合法;

所述上位机通过所述第一安全模块将包括有其自身的密钥协商信息经由所述升级服务器发送给相应的所述plc设备进行密钥协商,所述plc设备通过所述第二安全模块根据接收的密钥协商信息和预置的密钥交换协议进行密钥计算获得会话密钥,并经由所述升级服务器向所述上位机返回密钥协商回复信息;

所述上位机通过所述第一安全模块根据接收的密钥协商回复信息和预置的密钥交换协议进行密钥计算获得会话密钥。

进一步的,所述s202包括:所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和使用所述第一安全模块内的私钥对所述摘要信息进行签名处理;

所述s207包括:所述plc设备通过所述第二安全模块内的所述上位机的数字证书的公钥对签名的摘要信息进行验签,待验签通过后进行摘要信息计算,比对验证通过后,将所述升级数据包传输至所述微处理器mcu执行。

进一步的,其特征在于,所述内置有第一安全模块的安全存储卡至少包括usb安全存储卡、sd安全存储卡;所述plc设备中还包括系统存储模块,用于存储所述升级数据包和当前plc设备的固件数据包、版本号和系统参数信息。

本发明具有突出的实质性特点和显著的进步,具体的说:

(1)上位机中内嵌有第一安全模块或外接内置有第一安全模块的安全存储卡,且第一安全模块中包括有上位机用户的数字证书,通过进行pin码输入和数字证书的身份认证,能够对上位机的不同用户进行授权登录认证,保证只有合法的上位机用户才能进行后续的固件升级操作;plc设备中包括第二安全模块,保证plc自身设备的安全和合法性;

(2)上位机通过第一安全模块经由升级服务器与plc设备通过第二安全模块进行双向身份认证,保证通信双方的身份合法,使得只有合法的上位机用户才能对绑定的相应plc设备进行固件升级;以及上位机通过第一安全模块经由升级服务器与plc设备通过第二安全模块进行密钥协商获得会话密钥,使用该会话密钥加解密上位机与plc设备之前传输的固件升级包,保证升级数据包传输的安全性;

(3)上位机通过第一安全模块对升级数据包进行摘要信息计算和签名处理,以及plc设备通过第二安全模块对升级数据包进行签名和摘要信息验证,保证升级数据包的完整性。

本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1示出本发明一种plc远程固件升级系统的结构框图;

图2示出本发明一种plc远程固件升级方法中升级阶段的方法流程图。

具体实施方式

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

需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

如图1所示,本发明第一方面提出一种plc远程固件升级系统,包括:至少一个上位机、升级服务器和至少一个plc设备;所述上位机中内嵌有第一安全模块或外接内置有第一安全模块的安全存储卡,所述plc设备中包括有微处理器mcu和第二安全模块;所述升级服务器分别与所述上位机、所述plc设备通过网络进行通信连接;

所述上位机和所述plc设备将自身的设备标识信息分别发送至升级服务器进行注册和关系绑定;

所述上位机,用于通过第一安全模块进行用户授权登录认证,在认证通过后经由所述升级服务器与所述plc设备进行双向身份认证和密钥协商获得会话密钥;还用于通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理;以及用于将所述升级数据包和所述签名的摘要信息通过所述第一安全模块使用所述会话密钥进行加密处理后发送至所述升级服务器;所述升级数据包包括版本号和plc设备型号;

所述升级服务器,用于生成所述上位机和所述plc设备的关系绑定策略和存储所述加密处理后的升级数据包和签名的摘要信息;

所述plc设备,用于通过所述第二安全模块经由所述升级服务器与所述上位机进行双向身份认证和密钥协商获得会话密钥;还用于通过所述微处理器mcu从所述升级服务器获取加密处理后的升级数据包和签名的摘要信息,并发送至所述第二安全模块进行解密处理;以及用于通过所述第二安全模块使用所述会话密钥解密所述加密处理后的升级数据包和签名的摘要信息获得所述升级数据包和签名的摘要信息,并对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行。

进一步的,所述升级服务器还用于根据所述上位机授权用户的升级指令向绑定的相应plc设备发送升级数据包;所述关系绑定策略用于判断所述上位机授权用户对plc设备的升级指令是否对应绑定的plc设备。

可以理解的是,升级服务器生成上位机和plc设备的关系绑定策略,判断上位机授权用户对plc设备的升级指令是否对应绑定的plc设备,保证合法的上位机用户对其有绑定关系的plc设备进行固件升级和其他访问控制操作,防止进行越权和非法操作;此外,该关系绑定策略还可以根据实际情况进行更新维护。

需要说明的是,升级服务器可以根据上位机授权用户的升级指令向绑定的相应plc设备发送升级数据包,还可以根据实际情况获取plc设备的当前固件状态、设备标识信息等,主动向相关的plc设备推送升级信息,从而进行固件升级;此外,该关系绑定策略也可以进行加密处理后存储于升级服务器中,提升其安全性。

进一步的,所述第一安全模块中至少包括所述上位机用户的数字证书、所述plc设备的数字证书和自身私钥,所述第二安全模块中至少包括所述plc设备的数字证书、所述上位机用户的数字证书和自身私钥;

所述上位机通过第一安全模块进行用户授权登录认证包括:所述上位机首先验证用户输入的pin码,在验证通过后调用所述第一安全模块中的数字证书对用户进行身份认证,认证通过表明用户合法;

所述上位机通过第一安全模块经由所述升级服务器与所述plc设备进行双向身份认证和密钥协商获得会话密钥包括:所述上位机和所述plc设备经由所述升级服务器分别将包括各自数字证书的身份信息发给对方进行身份认证,所述上位机通过所述第一安全模块和所述plc设备通过所述第二安全模块分别对其接收的对方数字证书进行认证,认证通过表明对方身份合法;待身份认证通过后,所述上位机和所述plc设备再经由所述升级服务器分别将包括各自密钥协商信息发给对方进行密钥协商,所述上位机通过所述第一安全模块和所述plc设备通过所述第二安全模块分别根据接收的密钥协商信息和预置的密钥交换协议进行密钥计算获得会话密钥。

可以理解的是,上位机中内嵌有第一安全模块或外接内置有第一安全模块的安全存储卡,且第一安全模块中包括有上位机用户的数字证书,通过进行pin码输入和数字证书的身份认证,能够对上位机的不同用户进行授权登录认证,保证只有合法的上位机用户才能进行后续的固件升级操作,防止其他恶意用户非法使用该上位机进行不合法的操作;plc设备中包括第二安全模块,保证plc自身设备的安全和合法性。

进一步的,所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理包括:所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和使用所述第一安全模块内的私钥对所述摘要信息进行签名处理;

所述plc设备对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行包括:所述plc设备通过所述第二安全模块内的所述上位机的数字证书的公钥对签名的摘要信息进行验签,待验签通过后进行摘要信息计算,比对验证通过后,将所述升级数据包传输至所述微处理器mcu执行。

进一步的,所述内置有第一安全模块的安全存储卡至少包括usb安全存储卡、sd安全存储卡。

进一步的,所述plc设备中还包括系统存储模块,用于存储所述升级数据包和当前plc设备的固件数据包、版本号和系统参数信息。

需要说明的是,plc设备中存储模块内的相关信息可以通过第二安全模块进行加密处理后进行存储,防止泄露和篡改,提升plc设备自身的安全性;以及存储的当前固件数据包可进行备份处理,以在新的升级数据包更新失败时利用备份的固件数据包进行恢复,保证plc设备的正常使用。

如图2所示,本发明还提出一种plc远程固件升级方法,所述方法包括:准备阶段和升级阶段;

准备阶段包括:

s101,所述上位机和所述plc设备将自身的设备标识信息分别发送至升级服务器进行注册后,所述升级服务器生成所述上位机和所述plc设备的关系绑定策略;

s102,所述上位机将对所述plc设备的升级指令发送至所述远程升级服务器,所述升级服务器根据所述关系绑定策略判断是否允许所述上位机对绑定的相应plc设备发送升级指令,若允许,则将所述升级指令传输至相应的所述plc设备,所述plc设备接收所述升级指令,并向所述上位机返回应答信息,建立所述上位机和所述plc设备的通信连接。

升级阶段包括:

s201,所述上位机通过第一安全模块进行用户授权登录认证,在认证通过后经由所述升级服务器与所述plc设备通过所述第二安全模块进行双向身份认证和密钥协商获得会话密钥;

s202,所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和对所述摘要信息进行签名处理;

s203,所述上位机将所述升级数据包和所述签名的摘要信息通过所述第一安全模块使用所述会话密钥进行加密处理后发送至所述升级服务器;所述升级数据包包括版本号和plc设备型号;

s204,所述升级服务器存储所述加密处理后的升级数据包和签名的摘要信息并发送至所述plc设备;

s205,所述plc设备通过所述微处理器mcu从所述升级服务器获取加密处理后的升级数据包和签名的摘要信息,并发送至所述第二安全模块进行解密处理;

s206,所述plc设备通过所述第二安全模块使用所述会话密钥解密所述加密处理后的升级数据包和签名的摘要信息获得所述升级数据包和签名的摘要信息;

s207,所述plc设备通过所述第二安全模块对所述签名的摘要信息进行验证,待签名和摘要信息验证通过后将所述升级数据包传输至所述微处理器mcu执行。

可以理解的是,上位机通过第一安全模块经由升级服务器与plc设备通过第二安全模块进行双向身份认证,保证通信双方的身份合法,使得只有合法的上位机用户才能对绑定的相应plc设备进行固件升级;以及上位机通过第一安全模块经由升级服务器与plc设备通过第二安全模块进行密钥协商获得会话密钥,使用该会话密钥加解密上位机与plc设备之前传输的固件升级包,保证升级数据包传输的安全性,使得固件升级包在传输的过程中是密文,不会被非法分子窃取和篡改。

需要说明的是,plc设备在执行升级数据包完成固件升级后,可将完成状态信息通过第二安全模块中的会话密钥加密后经由升级服务器发送至相应的上位机,所述上位机用户通过第一安全模块中的会话密钥解密后获得该完成状态信息,从而获知固件升级成功;或者固件升级过程中出现错误无法正常完成固件升级时,也需要将错误状态信息采用同样的加解密处理方式告知上位机用户。

进一步的,所述第一安全模块中至少包括所述上位机用户的数字证书、所述plc设备的数字证书和自身私钥,所述第二安全模块中至少包括所述plc设备的数字证书、所述上位机用户的数字证书和自身私钥;

所述s201具体包括:

所述上位机首先验证用户输入的pin码,在验证通过后调用所述第一安全模块中的数字证书对用户进行身份认证,认证通过表明用户合法;

所述上位机通过所述第一安全模块将包括其自身数字证书的身份信息经由所述升级服务器发送至相应的所述plc设备进行身份认证,所述plc设备通过所述第二安全模块内的所述上位机用户的数字证书进行验证,验证通过表明所述上位机用户身份合法;

所述plc设备再通过所述第二安全模块将包括其自身数字证书的身份信息经由所述升级服务器发送至相应的所述上位机进行身份认证,所述上位机通过所述第一安全模块内的所述plc设备的数字证书进行验证,验证通过表明所述plc设备身份合法;

所述上位机通过所述第一安全模块将包括有其自身的密钥协商信息经由所述升级服务器发送给相应的所述plc设备进行密钥协商,所述plc设备通过所述第二安全模块根据接收的密钥协商信息和预置的密钥交换协议进行密钥计算获得会话密钥,并经由所述升级服务器向所述上位机返回密钥协商回复信息;

所述上位机通过所述第一安全模块根据接收的密钥协商回复信息和预置的密钥交换协议进行密钥计算获得会话密钥。

进一步的,所述s202包括:所述上位机通过所述第一安全模块对升级数据包进行摘要信息计算和使用所述第一安全模块内的私钥对所述摘要信息进行签名处理;

所述s207包括:所述plc设备通过所述第二安全模块内的所述上位机的数字证书的公钥对签名的摘要信息进行验签,待验签通过后进行摘要信息计算,比对验证通过后,将所述升级数据包传输至所述微处理器mcu执行。

可以理解的是,上位机通过第一安全模块对升级数据包进行摘要信息计算和签名处理,以及plc设备通过第二安全模块对升级数据包进行签名和摘要信息验证,确保升级数据包来源的合法性和保证升级数据包的完整性。

进一步的,其特征在于,所述内置有第一安全模块的安全存储卡至少包括usb安全存储卡、sd安全存储卡;所述plc设备中还包括系统存储模块,用于存储所述升级数据包和当前plc设备的固件数据包、版本号和系统参数信息。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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