本发明涉及工控系统软件安装技术领域,具体涉及一种工控主机及其软件升级的方法、装置及移动存储介质。
背景技术:
在工业控制系统(简称工控系统)网络安全实践中,由于工业控制系统的软件和设备更新频率低,进程、通讯和数据相对单一、稳定,工业控制系统对业务的可靠性、连续性有严格要求,因此工业控制环境下的白名单技术被引入进来。尽管工业控制系统的软件和设备更新频率低,但也避免不了需要对他们进行升级或维护。针对工控现场主机,如果当前主机配置了白名单保护或其他文件保护策略,用于升级的文件或目录将受到白名单保护或文件保护策略的限制,或是被识别为对系统存在威胁的文件,这都将限制升级文件的运行,影响软件的正常升级。
对于当前主机配置了白名单保护或其他文件保护策略,进行软件升级时,通常是在软件升级时,直接将软件升级程序放入临时白名单列表,从而软件升级时不受当前主机的白名单保护或者其他文件保护策略的限制。但这种软件升级的方法,通常不对软件升级程序的合法性和安装权限进行控制,容易造成安全漏洞。
技术实现要素:
有鉴于此,本发明实施例提供了一种工控主机及其软件升级的方法、装置及移动存储介质,以解决工控主机软件升级时,不对软件升级程序的合法性和安装权限进行控制,容易造成安全漏洞的问题。
根据第一方面,本发明实施例提供了一种工控主机软件升级的方法,包括:获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间;获取与公钥配对的私钥;根据私钥对公钥加密后的硬件信息及配置信息进行解密;根据解密后的硬件信息判断本地主机磁盘硬件序列号是否在磁盘硬件序列号列表内;如果本地主机磁盘硬件序列号在磁盘硬件序列号列表内,根据解密后的配置信息判断当前时间是否在授权时间内;如果当前时间在授权时间内,获取移动存储介质通用区存储的软件升级包,并执行预设安全策略;运行软件升级包,对工控主机软件进行升级。
可选地,如果本地主机磁盘硬件序列号不在授权文件的磁盘硬件序列号列表内,则结束升级。
可选地,如果当前时间不在授权时间内,则结束升级。
可选地,在运行软件升级包之后,工控主机软件升级的方法还包括:跟踪软件升级包的行为,将软件升级包释放的动态库、可执行程序放入临时白名单列表。
可选地,在根据运行软件升级包的结果对工控主机软件进行升级之后,工控主机软件升级的方法还包括:将临时白名单列表中的动态库、可执行程序放入白名单列表。
根据第二方面,本发明实施例提供了一种工控主机软件升级的装置,包括:第一获取模块,用于获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间;第二获取模块,用于获取与公钥配对的私钥;解密模块,用于根据私钥对公钥加密后的硬件信息及配置信息进行解密;第一判断模块,用于根据解密后的硬件信息判断本地主机磁盘硬件序列号是否在磁盘硬件序列号列表内;第二判断模块,用于如果本地主机磁盘硬件序列号在磁盘硬件序列号列表内,根据解密后的配置信息判断当前时间是否在授权时间内;第三获取模块,用于如果当前时间在授权时间内,获取移动存储介质通用区存储的软件升级包,并执行预设安全策略;升级模块,用于运行软件升级包,对工控主机软件进行升级。
根据第三方面,本发明实施例提供了一种工控主机,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任意实施方式中的工控主机软件升级的方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如第一方面或第一方面任意实施方式中的工控主机软件升级的方法。
根据第五方面,本发明实施例提供了一种移动存储介质,移动存储介质存储包括加密区与通用区,加密区存储有通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间,通用区存储有软件升级包。
本发明实施例提供的工控主机及其软件升级的方法、装置及移动存储介质,通过对移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息进行解密,得到解密后的磁盘硬件序列号列表和授权时间,再将本地主机磁盘硬件序列号与解密后的磁盘硬件序列号列表进行比对,可以确定本地主机是否具有该软件升级的权限,并通过对比授权时间与当前时间,可以确定当前时间是否能够进行软件升级,从而可以控制软件升级程序的合法性,在这两个条件都达到的情况下,才对软件进行升级,从而在对本地主机进行软件升级时,增加了升级程序的合法性和升级权限校验,可以避免随意的不受控住的软件安装、升级行为,从而进一步增强系统的安全性。且硬件信息和配置信息通过公钥加密后存储在移动存储介质的加密区,有效保证了硬件信息和配置信息的完整性,可以避免硬件信息和配置信息被恶意破坏。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例中工控主机软件升级的方法的流程图;
图2示出了本发明实施例中工控主机软件升级的装置的结构框图;
图3示出了本发明实施例的工控主机结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在软件升级时,为了对软件升级程序的合法性和安装权限进行控制,本发明实施例提供了一种工控主机及其软件升级的方法、装置及移动存储介质。本发明实施例先介绍一种移动存储介质,移动存储介质包括加密区与通用区,加密区存储有通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间,通用区存储有软件升级包。
具体地,移动存储介质的制作过程如下:使用白名单控制软件获取目标操作系统的系统硬件信息,目标操作系统是指需要安装或者升级应用软件的操作系统,硬件信息是指磁盘序列号列表。在具有管理权限的白名单控制软件上制作移动存储介质,移动存储介质是指存储安装软件或者升级软件、存储上述的硬件信息和配置信息的存储设备,所谓配置信息是指为了进一步加强安全性,设置软件升级的授权时间,即只有在指定的操作时间段内,指定的安装或者升级软件才能在指定的操作系统上不受白名单控制软件的限制进行安装或者升级操作。上述配置信息和硬件信息经过公钥加密后一起存储在移动存储介质的加密区,加密区是指区别于移动存储介质,在操作系统上不可见。将软件升级包或者软件安装包存储到专用移动存储介质的通用区,之后设置移动存储介质属性为只读,以保证安装或者升级软件的完整性,避免恶意软件进入使用白名单控制软件保护的操作系统中。
本发明实施例还提供了一种工控主机软件升级的方法,如图1所示,包括:
s101.获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间;具体地,在工控主机上插入移动存储介质后,工控主机上的白名单控制软件读取移动存储介质的加密区中的通过公钥加密后的硬件信息和配置信息,并读取本地主机上的磁盘硬件序列号。
s102.获取与公钥配对的私钥;具体地,可以将与公钥配对的私钥预先存储在需要进行软件升级的本地主机上或通过具有管理权限的主机直接下发与公钥配对的私钥至需要进行软件升级的本地主机上。
s103.根据私钥对公钥加密后的硬件信息及配置信息进行解密;具体地,白名单控制软件根据获取的私钥对公钥加密后的硬件信息和配置信息进行解密,从而得到解密后的磁盘硬件序列号列表和授权时间。
s104.根据解密后的硬件信息判断本地主机磁盘硬件序列号是否在磁盘硬件序列号列表内;具体地,白名单控制软件将本地主机磁盘硬件序列号与磁盘硬件序列号列表进行比对,判断本地主机磁盘硬件序列号是否在磁盘硬件序列号列表内,如果本地主机磁盘硬件序列号在磁盘硬件序列号列表内,进入步骤s105,如果本地主机磁盘硬件序列号不在授权文件的磁盘硬件序列号列表内,进入步骤s108。
s105.根据解密后的配置信息判断当前时间是否在授权时间内;具体地,如果本地主机磁盘硬件序列号在磁盘硬件序列号列表内,则当前本地主机具有软件升级的权限。此时,再对比当前时间是否在配置信息中授权时间范围内,从而可以知道当前时间下软件升级的行为是否合法。如果当前时间在授权时间内,进入步骤s106。如果当前时间不在授权时间内,则进入步骤s108。
s106.获取移动存储介质通用区存储的软件升级包,并执行预设安全策略;具体地,白名单控制软件从移动存储介质的通用区内拷贝或读取软件升级包,并执行预设的安全策略。所谓预设的安全策略是指无论上述软件升级包是否在本地白名单列表内,都允许软件升级包运行。
s107.运行软件升级包,对工控主机软件进行升级。具体地,在预设安全策略下,可以运行软件升级包,对工控主机软件进行升级。
s108.结束升级。具体地,如果本地主机磁盘硬件序列号不在授权文件的磁盘硬件序列号列表内,则本地主机不具有软件升级的权限,无法运行软件升级包,结束升级。如果当前时间不在授权时间内,则无法运行软件升级包,结束升级。
本发明实施例提供的工控主机软件升级的方法,通过对移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息进行解密,得到解密后的磁盘硬件序列号列表和授权时间,再将本地主机磁盘硬件序列号与解密后的磁盘硬件序列号列表进行比对,可以确定本地主机是否具有该软件升级的权限,并通过对比授权时间与当前时间,可以确定当前时间是否能够进行软件升级,从而可以控制软件升级程序的合法性,在这两个条件都达到的情况下,才对软件进行升级,从而在对本地主机进行软件升级时,增加了升级程序的合法性和升级权限校验,从而有效的控制了软件安装或者升级行为,可以避免随意的不受控住的软件安装、升级行为,从而进一步增强系统的安全性。且硬件信息和配置信息通过公钥加密后存储在移动存储介质的加密区,有效保证了硬件信息和配置信息的完整性,可以避免硬件信息和配置信息被恶意破坏。
在可选的实施例中,在运行软件升级包后,软件升级包会释放一些动态库、可执行程序等,这些动态库、可执行程序可能受本地白名单列表的限制,因此,在运行软件升级包之后,工控主机软件升级的方法还包括:跟踪软件升级包的行为,将软件升级包释放的动态库、可执行程序放入临时白名单列表。将软件升级包释放的动态库、可执行程序放入临时白名单列表,可以保证动态库、可执行程序执行时,不受本地白名单列表的限制。
在可选的实施例中,为了在软件升级后,保证升级后的软件能够正常运行,需要将软件升级过程中释放的动态库、可执行程序放入本地白名单列表。具体地,在根据运行软件升级包的结果对工控主机软件进行升级之后,工控主机软件升级的方法还包括:将临时白名单列表中的动态库、可执行程序放入白名单列表。
本发明实施例提供了一种工控主机软件升级的装置,如图2所示,包括:
第一获取模块21,用于获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,硬件信息包括磁盘硬件序列号列表,配置信息包括授权时间;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s101的描述,在此不再赘述。
第二获取模块22,用于获取与公钥配对的私钥;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s102的描述,在此不再赘述。
解密模块23,用于根据私钥对公钥加密后的硬件信息及配置信息进行解密;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s103的描述,在此不再赘述。
第一判断模块24,用于根据解密后的硬件信息判断本地主机磁盘硬件序列号是否在磁盘硬件序列号列表内;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s104的描述,在此不再赘述。
第二判断模块25,用于如果本地主机磁盘硬件序列号在磁盘硬件序列号列表内,根据解密后的配置信息判断当前时间是否在授权时间内;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s105的描述,在此不再赘述。
第三获取模块26,用于如果当前时间在授权时间内,获取移动存储介质通用区存储的软件升级包,并执行预设安全策略;具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s106的描述,在此不再赘述。
升级模块27,用于运行软件升级包,对工控主机软件进行升级。具体的实施方式详见上述实施例工控主机软件升级的方法中步骤s107的描述,在此不再赘述。
本发明实施例提供的工控主机软件升级的装置,通过对移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息进行解密,得到解密后的磁盘硬件序列号列表和授权时间,再将本地主机磁盘硬件序列号与解密后的磁盘硬件序列号列表进行比对,可以确定本地主机是否具有该软件升级的权限,并通过对比授权时间与当前时间,可以确定当前时间是否能够进行软件升级,从而可以控制软件升级程序的合法性,在这两个条件都达到的情况下,才对软件进行升级,从而在对本地主机进行软件升级时,增加了升级程序的合法性和升级权限校验,可以避免随意的不受控住的软件安装、升级行为,从而进一步增强系统的安全性。且硬件信息和配置信息通过公钥加密后存储在移动存储介质的加密区,有效保证了硬件信息和配置信息的完整性,可以避免硬件信息和配置信息被恶意破坏。
本发明实施例还提供了一种工控主机,如图3所示,该工控主机可以包括处理器21和存储器22,其中处理器21和存储器22可以通过总线或者其他方式连接,图2中以通过总线连接为例。
处理器21可以为中央处理器(centralprocessingunit,cpu)。处理器21还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器22作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的工控主机软件升级的方法对应的程序指令/模块。处理器21通过运行存储在存储器22中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的工控主机软件升级的方法。
存储器22可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器21所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的一个或者多个模块存储在存储器22中,当被处理器21执行时,执行如图1所示实施例中的工控主机软件升级的方法。
上述工控主机具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本发明实施例提供的工控主机,通过对移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息进行解密,得到解密后的磁盘硬件序列号列表和授权时间,再将本地主机磁盘硬件序列号与解密后的磁盘硬件序列号列表进行比对,可以确定本地主机是否具有该软件升级的权限,并通过对比授权时间与当前时间,可以确定当前时间是否能够进行软件升级,从而可以控制软件升级程序的合法性,在这两个条件都达到的情况下,才对软件进行升级,从而在对本地主机进行软件升级时,增加了升级程序的合法性和升级权限校验,可以避免随意的不受控住的软件安装、升级行为,从而进一步增强系统的安全性。且硬件信息和配置信息通过公钥加密后存储在移动存储介质的加密区,有效保证了硬件信息和配置信息的完整性,可以避免硬件信息和配置信息被恶意破坏。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
1.一种工控主机软件升级的方法,其特征在于,包括:
获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,所述硬件信息包括磁盘硬件序列号列表,所述配置信息包括授权时间;
获取与所述公钥配对的私钥;
根据所述私钥对公钥加密后的所述硬件信息及配置信息进行解密;
根据解密后的所述硬件信息判断所述本地主机磁盘硬件序列号是否在所述磁盘硬件序列号列表内;
如果所述本地主机磁盘硬件序列号在所述磁盘硬件序列号列表内,根据解密后的所述配置信息判断当前时间是否在所述授权时间内;
如果当前时间在所述授权时间内,获取所述移动存储介质通用区存储的软件升级包,并执行预设安全策略;
运行所述软件升级包,对工控主机软件进行升级。
2.根据权利要求1所述的工控主机软件升级的方法,其特征在于,如果所述本地主机磁盘硬件序列号不在所述授权文件的磁盘硬件序列号列表内,则结束升级。
3.根据权利要求1所述的工控主机软件升级的方法,其特征在于,如果当前时间不在所述授权时间内,则结束升级。
4.根据权利要求1所述的工控主机软件升级的方法,其特征在于,在所述运行所述软件升级包之后,还包括:
跟踪所述软件升级包的行为,将所述软件升级包释放的动态库、可执行程序放入临时白名单列表。
5.根据权利要求4所述的工控主机软件升级的方法,其特征在于,在根据运行所述软件升级包的结果对工控主机软件进行升级之后,还包括:
将所述临时白名单列表中的所述动态库、所述可执行程序放入白名单列表。
6.一种工控主机软件升级的装置,其特征在于,包括:
第一获取模块,用于获取本地主机磁盘硬件序列号及移动存储介质加密区存储的通过公钥加密后的硬件信息及配置信息,所述硬件信息包括磁盘硬件序列号列表,所述配置信息包括授权时间;
第二获取模块,用于获取与所述公钥配对的私钥;
解密模块,用于根据所述私钥对公钥加密后的所述硬件信息及配置信息进行解密;
第一判断模块,用于根据解密后的所述硬件信息判断所述本地主机磁盘硬件序列号是否在所述磁盘硬件序列号列表内;
第二判断模块,用于如果所述本地主机磁盘硬件序列号在所述磁盘硬件序列号列表内,根据解密后的所述配置信息判断当前时间是否在所述授权时间内;
第三获取模块,用于如果当前时间在所述授权时间内,获取所述移动存储介质通用区存储的软件升级包,并执行预设安全策略;
升级模块,用于运行所述软件升级包,对工控主机软件进行升级。
7.一种工控主机,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-5任意一项所述的工控主机软件升级的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-5任意一项所述的工控主机软件升级的方法。
9.一种移动存储介质,其特征在于,所述移动存储介质存储包括加密区与通用区,所述加密区存储有通过公钥加密后的硬件信息及配置信息,所述硬件信息包括磁盘硬件序列号列表,所述配置信息包括授权时间,所述通用区存储有软件升级包。
技术总结