背景技术
随着信息化与工业化深度融合的快速发展,越来越多的IT技术应用到工业控制系统行业,工业控制系统的信息安全问题日益突出。当前最突出的前三位安全威胁是:恶意代码攻击、信息非法窃取、数据和系统非法破坏,其中以用户私密信息以及数据为目标的恶意代码攻击超过传统病毒成为最大安全威胁。在工业控制场景中,控制组态存档包括了控制系统关键的参数配置信息,涉及到现场工艺、控制策略、产品质量、人员考核等一些列敏感数据。为保证存档数据的安全性,即防止无效篡改、无效访问,业内普遍的做法是对其进行加密存储、解密访问。
工业控制系统运行过程中数据复杂且相对封闭,配置信息数据在存储过程中需要可靠的数据加密认证机制。数据加密作为一项基本技术是所有通信安全的基础,在多数情况下,数据加密是保证数据机密性的唯一方法。据不完全统计,到目前为止,已经公开发表的各种加密算法多达数百种,可以分对称密钥加密和非对称密钥加密。
对称加密技术的优点:算法效率高,较高的保密强度;缺点:加解密的密钥要么必须通过安全途径传送,或者固化在软件内部,不但不便于软件更新,而且一旦被逆向、破解,将导致信息泄露、数据篡改等严重的信息安全事故。
非对称加密技术的优点:安全性高。算法使用一对完全匹配的秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。因此非对称加密算法更安全,密钥越长,它就越难破解。缺点是加密和解密花费时间长、速度慢。
常见三种加密、解密实现方法如下:
方法一:采用存档原始数据;生成指定长度的随机内容,并将生成的所述随机内容添加至所述原始数据中,以形成新数据;基于所述新数据的长度以及所述预设冗余数据,生成所述新数据的加密密钥;利用所述加密密钥对所述新数据进行加密。对应解密方法是识别加密后的数据的长度,并基于识别出的所述长度以及所述预设冗余数据,生成所述加密后的数据所使用的加密密钥;利用所述加密密钥对所述加密后的数据进行解密,得到解密后的数据;从所述解密后的数据中去除所述数据加密装置添加的具备指定长度的随机内容,得到原始数据。该方法的缺点是对等加密的密钥以及预设冗余数据均为软件内置,可能被非法获取。同时它们是固化在软件产品内部,一旦被获取会造成大规模的数据泄密事件发生。
方法二:接收存储设备发送的密钥信息;其中,所述密钥信息中携带有标识以及第一加密信息,所述标识用于表示出所述唯一第二加密设备;利用所述标识判断本端是否与所述存储设备匹配;当与所述存储设备匹配时,提取所述第一加密信息;基于所述第一加密信息对所述待加密数据进行加密,以得到加密数据。通过对带有标识的数据信息进行匹配加密,保证了数据从存储设备到本端的数据安全性,进而能够保证在使用生产智能设备进行远程控制时的安全性问题。该方法虽然增加了可信验证的环节,但是其传输的标识信息仍是明文,存在被截获、篡改的可能性。同时针对组态存档的多样性应用要求,设计不合理的可信验证的环节会增加加密、解密的复杂度,导致效率下降。
方法三:一般采用数据原文采用对称加密,加密的密码采用非对称加密组合加密机制。该组合技术的优点:即利用了对称加密原始存档数据的高效特点,又利用了非对称加密对称加密密码的高安全性特点。缺点是:一般公/私密钥由软件内部自动生成,然后参与存档数据的加解密,但是该公/私钥也必须进行加密存档保存,否则软件重启后将无法对既有存档的组态配置信息进行读写操作,而公/私钥的保存又将成为新的信息安全隐患,一旦公/私钥被窃取,后续所有安全措施都面临严重安全事故。
发明内容
针对上述问题,本发明的目的是提供一种组态存档加密及解密方法、装置存储介质及设备,其能实现工程组态配置数据的安全可靠、抵抗非法篡改,保证数据的完整、一致性。
为实现上述目的,本发明采取以下技术方案:一种组态存档加密及解密装置,其包括硬件授权控制器、加密模块和解密验证模块;所述硬件授权控制器,部署在计算机上,过USB/或并口与计算机进行连接,用于生成公私密钥对;所述加密模块,根据所述硬件授权控制器生成的公私密钥对对原始组态存档数据进行加密、签名,生成加密组态存档数据;所述解密验证模块,利用私钥对所述加密组态存档数据进行存档解密,解密成功,表明组态存档数据可靠;再使用签名时公开的公钥进行验证,验证通过后,表明组态存档数据可信。
进一步,所述硬件授权控制器默认内置硬件物理唯一标识码信息,根据该标识码信息生成不重复的公私密钥对。
进一步,所述加密组态存档数据包括摘要数据和数字签名。
进一步,所述摘要数据是对原始组态存档数据通过哈希函数进行计算后得出的值;所述数字签名是通过私钥对所述摘要数据进行加密后的签名信息。
一种组态存档加密及解密方法,其基于上述装置实现,包括:
步骤S110:获取硬件授权控制器唯一物理标识信息;
步骤S120:判断是否存在N对非对称密钥对,存在,则读取硬件授权控制器中的非对称密钥对信息;反之进入步骤S130;
步骤S130:创建产生N对公私密钥;
步骤S140:对组态存档信息进行散列计算生成摘要信息;
步骤S150:利用私钥对组态存档的摘要信息进行加密;
步骤S160:组态程序利用公开的密钥进行组态存档加密;
步骤S170:组态程序利用自身的私钥进行组态存档解密;
步骤S180:组态程序利用公开的公钥对组态存档中“数字签名”信息进行解密和验证;当解密后摘要与步骤S170中计算出的摘要一致,则表示验证通过。
进一步,所述硬件授权控制器通过计算机串口或并口连接,作为“即插即用”外置物理设备,具备唯一标识信息,作为公私密钥创建的“种子”信息。
进一步,所述步骤S120中,如果创建过非对称密钥对,则会保存再硬件授权控制器中,供使用时读取;如果没有创建过,读取不到时,则需要创建非对称密钥对。
进一步,所述步骤S140中,采用哈希函数先生成组态存档的摘要信息。
一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述方法中的任一方法。
一种计算设备,其包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述方法中的任一方法的指令。
本发明由于采取以上技术方案,其具有以下优点:1、本发明能够结合工业控制场景应用要求,利用移动“即插即用”外置物理设备(如:硬件授权控制器)实现更加安全的存档加密保护,以提升系统安全性。2、本发明能实现工程组态配置数据的安全可靠、抵抗非法篡改,保证数据的完整、一致性,同时结合工业控制场合的技术特点,利用工控软件常用的硬件加密授权狗,针对非对称加密算法中公私密钥产生、保存及传递过程中的不安全因素,获取硬件加密狗特征码,生成公私密钥对,对组态存档进行加解密。3、本发明采用硬件外置设备进行密钥生成、保存和使用,可以用于不同类型的“即插即用”外置物理设备。4、本发明通过移动“即插即用”外置物理设备,实现对密钥的访问控制,确保不会被恶意软件盗取并用于对组态文件非法访问和篡改。5、本发明利用工控软件特点,采用移动“即插即用”外置物理设备,实现对工控软件组态存档进行加、解密保护,确保工业监控场景下的信息安全。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
工控软件在使用过程中的组态配置信息需要进行归档处理。组态存档中包含了关键的生成控制、监视参数等配置信息。基于信息安全的要求,需要保证组态存档不能被非法应用访问及篡改,否则会造成生产监控过程不可信,导致生产事故发生。故本发明提供了一种基于硬件加密狗特征码的组态存档加、解密方法和装置,该方法实现步骤:获取硬件加密狗特征码,生成公私密钥对,对组态存档生成摘要,并用私钥进行加密方签名;对组态存档采用公钥加密,保存归档。利用私钥对加密后存档进行解密,获得原始组态存档,同时针对原始组态存档的摘要进行公钥解密,获取加密方的签名,进行有效性认证。
在本发明的第一实施方式中,如图1所示,为实现本发明方法的装置,该装置内的硬件授权控制器,创建、保存公私密钥并用于工业软件组态存档加、解密即签名验证的基本系统组成。本发明的对组态存档加、解密和签名、验证方法,在工控软件进行组态存档操作时即开始执行了,其加、解密过程和签名、验证过程。具体的,本实施例的组态存档加密及解密装置包括:硬件授权控制器、加密模块和解密验证模块。其中:
硬件授权控制器,部署在计算机上,可以通过USB/或并口与计算机进行连接,该硬件授权控制器为“即插即用”外置物理设备;正常情况下,硬件授权控制器除了提供针对工控软件的授权控制外,在本实施例中还能够提供基于其硬件物理标识,生成公私密钥对,配合工控软件进行组态存档的安全访问。
如图1中所示,硬件授权控制器默认内置硬件物理唯一标识码信息,该标识码信息是每个控制器特有的标识,不会发生重复。正是因为它不会重复,所以可以根据该标识码信息生成不会重复的公私密钥对。
其中,公私密钥对根据工控组态软件的应用要求可以是1对或多对,以实现不同应用之间的加、解密和签名验证。公私密钥对是工控软件读取标识码信息后,采用算法生成后保存在硬件授权控制器内,在后续过程中提供工控软件的访问。在本实施例中,算法可以采用现有成熟算法即可,在此不再赘述。
加密模块,根据硬件授权控制器生成的公私密钥对对原始组态存档数据进行加密、签名,生成加密组态存档数据。
具体的,加密组态存档数据包括两部分:摘要数据和数字签名。摘要数据是对原始组态存档数据通过哈希函数进行计算后得出的值。哈希函数是是一种从任何一种数据中创建小的数字“指纹”的方法,哈希函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来;就是根据数据内容计算得到相应的"摘要",根据这个摘要可以区分该数据与其他数据。数字签名是通过私钥对摘要数据进行加密后的签名信息。
解密验证模块,利用私钥对加密组态存档数据进行存档解密,解密成功,表明组态存档数据可靠;再使用签名时公开的公钥进行验证,验证通过后,表明组态存档数据可信。
在本发明的第二实施方式中,如图2所示,为本发明基于硬件授权控制器特征码对组态文档进行加、解密以及签名和验证的方法实现流程图。具体的,本实施例中的组态存档加密及解密方法包括以下步骤:
步骤S110:获取硬件授权控制器唯一物理标识信息。
硬件授权控制器通过计算机串口或并口连接,作为“即插即用”外置物理设备,具备唯一标识信息,可作为公私密钥创建的“种子”信息,因为其唯一性,不会重复,这样创建的密钥也是完全唯一的。同时由于硬件授权控制器属于移动设备,可以根据需要断开与计算机的连接,进而实现加密数据无法被破解和篡改。
步骤S120:判断是否存在N对非对称密钥对,存在,则读取硬件授权控制器中的非对称密钥对信息;反之进入步骤S130。
具体为:如果创建过非对称密钥对,则会保存再硬件授权控制器中,供使用时读取;如果没有创建过,读取不到时,则需要创建非对称密钥对。其中,公私密钥是成对创建并保存在硬件授权控制器预先设定的存储区,掉电也不会丢失。
步骤S130:创建产生N对公私密钥。
具体的,公私密钥的生成算法可采用RSA、Elgamal或ECC;
通过RSA算法先生成一对RSA密钥,其中之一是保密密钥,由在第一组态应用程序A保存;另一个为公开密钥,可对外公开,可在应用服务器中注册供其它组态程序(如:B)使用。为提高保密强度,RSA密钥至少为500位长,优选使用1024位。同样,其它组态应用程序B也可以根据需要生成一对保密密钥。
步骤S140:对组态存档信息进行散列计算生成摘要信息。
因为加密后的组态文档,要确保其加密方的可信,即要对其进行“身份”验证,所以要对加密后信息进行“数字签名”。但是不能对全部的加密文档进行签名,那要效率很低,无法满足应用的时效性要求,所以本实施例中采用哈希函数先生成组态存档的摘要信息。
步骤S150:利用私钥对组态存档的摘要信息进行加密。
例如第一组态应用程序A利用A的私钥对摘要进行进行加密,生成带有A“电子签名”的存档信息。
步骤S160:组态程序利用公开的密钥进行组态存档加密。
例如第一组态应用程序A利用其它组态应用程序B公开的公钥进行加密,生成加密后存档。
步骤S170:组态程序利用自身的私钥进行组态存档解密。
例如其它组态应用程序B针对第一组态应用程序A用其它组态应用程序B公开的公钥加密的存档,采用其它组态应用程序B的私钥进行解密。
步骤S180:组态程序利用公开的公钥对组态存档中“数字签名”信息进行解密和验证;当解密后摘要与步骤S170中计算出的摘要一致,则表示验证通过。
例如其它组态应用程序B利用第一组态应用程序A公开的公钥,对组态存档中“数字签名”信息进行解密、验证。
在本发明的第三实施方式中,提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当由计算设备执行时,使得计算设备执行如第二实施方式中的任一方法。
在本发明的第四实施方式中,提供一种计算设备,其包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为一个或多个处理器执行,一个或多个程序包括用于执行如第二实施方式中中的任一方法的指令。
实施例:
如图3所示,以实际应用加、解密过程为例,描述在组态存档加、解密过程中的授权状态变化对组态访问的影响。图3中分别包含:初始硬件授权控制器状态1;硬件控制器含有加解密公私密钥对信息状态并在线2;硬件控制器离线状态3;硬件控制器再次在线状态4。下图针对四个阶段的状态做进一步的说明:
在初始硬件授权控制器状态1的阶段:硬件授权控制器作为便携设备连接至计算机,内部仅包含提供工控组态软件授权控制等信息外,还提供物理设备唯一标识码,类似硬件“指纹”信息,用以标识设备的唯一性、不可复制性。
在硬件控制器含有加解密公私密钥对信息状态并在线2的阶段:组态应用程序获取硬件授权控制器物理信息,采集硬件“指纹”采信息后,利用多个加密算法生成公私密钥对,并根据硬件控制器的读写要求,保存在内部Flash区域,该区域具备掉电让保存的特点。公私密钥对最少2个,例如第一组态应用程序A用私钥签名,用其它组态应用程序B的公钥加密;其它组态应用程序B用私钥解密,用第一组态应用程序A公钥验证。该阶段持续存在组态软件的使用期间,根据需要进行读写操作。因为密钥并未保存在计算机上的任何区域,不易被恶意程序非法访问,具备较高安全性;
在硬件控制器离线状态3的阶段:将硬件授权控制器取出,断开与计算机的连接,将使应用程序无法获取到公私密钥,导致加解密失效,从而保证组态存档无法被访问和篡改,实现公私密钥的高可靠性;
在硬件控制器再次在线状态4的阶段:将硬件授权控制器重新连接到计算机,组态应用可以正常访问其内部公私密钥对信息,可以对组态存档进行加、解密操作。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。