
一种plc固件完整性验证装置及验证方法.docx
3页一种plc固件完整性验证装置及验证方法一种plc固件完整性验证装置及验证方法本发明公开了一种PLC固件完整性验证装置及验证方法,所述装置包括基线建立单元、PC模拟PLC截获单元和验证单元,所述基线建立单元,用于截获安全固件数据,并基于MD5哈希算法建立32位基线;PC模拟PLC截获单元,用于通过个人计算机向用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要;验证单元,用于将所述基线与所述固件摘要进行比较验证本发明用在未知安全固件装载到PLC之前对其进行完整性验证,保证导入PLC的固件是完整的防止不法分子或者同类竞争对手对固件的恶意破坏专利说明】—种PLC固件完整性验证装置及验证方法【技术领域】[0001]本发明涉及PLC固件完整性验证装置及验证方法,尤其涉及一种基于MD5哈希算法的PLC固件完整性验证装置及验证方法背景技术】[0002]随着网络技术和通讯技术高速发展,并广泛应用于大大小小控制系统中,安全问题也就成为了控制系统中广泛研究的对象其中,尤其以现场可编程逻辑控制器PLC安全性为重,而论及PLC安全性,则又以其固件完整性为重[0003]目前,需要将固件烧录至PLC中主要出现在以下两个情况:生产PLC和升级PLC。
当PLC生产厂家需要导入固件或者用户需要升级PLC固件的时候向PLC固件生产厂家购买PLC固件生产PLC过程中,PLC固件容易遭受不法分子或者竞争对手的攻击,一旦PLC固件没有经过完整性验证,而其本身存在缺陷或者被攻击,将导致批量生产的PLC报废,直接造成不可估量的损失;在升级过程中,通常由PLC厂家的工作人员或由用户现场升级PLC系统,然而在工作人员或者用户拿到升级固件时,并不能确定它的安全性,要是直接进行升级有可能会造成升级PLC失败,严重的话将使PLC报废[0004]但如今鲜有对PLC固件安全性进行验证,为了验证PLC固件完整性,一种新的验证方法亟待出现发明内容】[0005]为解决上述技术问题,本发明的目的是提供一种PLC固件完整性验证装置及验证方法,该装置和方法用在未知安全固件装载到PLC之前对其进行完整性验证,保证导入PLC的固件是完整的[0006]本发明的目的通过以下的技术方案来实现:[0007]一种PLC固件完整性验证装置,包括:[0008]基线建立单元、PC模拟PLC截获单元和验证单元,所述[0009]基线建立单元,用于截获安全固件数据,并基于MD5哈希算法建立32位基线;[0010]PC模拟PLC截获单元,用于通过个人计算机向用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要;[0011]验证单元,用于将所述基线与所述固件摘要进行比较验证。
[0012]一种PLC固件完整性验证方法,包括:[0013]A向PLC传输安全固件,对安全固件进行多次截获,并对截获的安全固件数据进行分析,建立基线;[0014]B向用于模拟PLC的PC传输所要烧录的未知安全固件,并对未知安全固件进行截-M-犾;[0015]C通过MD5哈希算法分别计算出安全固件与未知安全固件32位的基线与固件摘要,并对所述基线与固件摘要进行比较;[0016]D根据基线与固件摘要比较结果评估未知安全固件的安全性,增强PLC固件完整性[0017]与现有技术相比,本发明的一个或多个实施例可以具有如下优点:[0018]1、通过建立基线、提取固件、加密验证的方式来对固件进行完整性安全验证的方法,方便有效的对未知安全固件进行验证[0019]2、提出串口监听技术来截获传输数据,通过通信协议的分析来提取出固件数据的方法,解决了具有特殊性的固件数据提取难点[0020]3、通过PC模拟PLC与个人计算机传输未知安全固件数据的方法,避免了不安全固件直接导入到PLC[0021]4、对比验证采用MD5哈希算法加密,对完整性验证提供了一定的可靠性[0022]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得专利附图】【附图说明】[0023]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制在附图中:[0024]图1是PLC固件完整性验证装置结构示意图;[0025]图2是基线建立流程图;[0026]图3是基线建立不意图;[0027]图4是PC模拟PLC截获未知安全固件数据流程图;[0028]图5是基线与固件摘要对比验证流程图;[0029]图6是基线与固件摘要对比验证示意图具体实施方式】[0030]容易理解,根据本发明的技术方案,在不变更本发明的实质精神下,本领域的一般技术人员可以提出本发明的多个结构方式和制作方法因此以下【具体实施方式】以及附图仅是本发明的技术方案的具体说明,而不应当视为本发明的全部或者视为本发明技术方案的限定或限制[0031]下面结合实施例及附图对本发明作进一步详细的描述[0032]如图1所示,为是PLC固件完整性验证装置结构,包括:基线建立单元、PC模拟PLC截获单元和验证单元,所述基线建立单元,利用串口监听技术截获安全固件数据,并基于MD5哈希算法建立32位基线;PC模拟PLC截获单元,用于通过个人计算机向另一台用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要;验证单元,用于将所述基线与所述固件摘要进行比较验证。
[0033]上述基线建立单元包括基线截获子单元、基线比较子单元和MD5哈希算法基线子单元;所述基线截获子单元用于通过个人计算机向PLC传输一个安全固件,用串口监听技术对传输数据进行截获,并进行多次传输、截获得到2组以上数据;所述基线比较子单元用于将所述基线截获子单元得到的数据进行分析比较,提取出传输协议数据和完整安全的固件数据;所述MD5哈希算法基线子单元用于将所述完整安全的固件数据通过MD5哈希算法计算出32位的基线[0034]上述PC模拟PLC截获单元包括PC模拟PLC通信子单元、固件截获子单元和MD5哈希算法固件子单元;所述PC模拟PLC通信子单元是用PC来取代PLC来和个人计算机进行未知安全固件传输,目的是防止不安全固件导入到PLC所述固件截获子单元用于通过个人计算机向PC传输未知安全固件,用串口监听技术截获未知安全固件数据;所述MD5哈希算法固件子单元用于将所述截获未知安全固件数据通过MD5哈希算法计算出32位的固件摘要[0035]本实施例还提供了一种PLC固件完整性验证方法,该方法包括:[0036]向PLC传输安全固件,对安全固件进行多次截获,并对截获的安全固件数据进行分析,建立基线;[0037]向用于模拟PLC的PC传输所要烧录的未知安全固件,并对未知安全固件进行截-M-犾;[0038]通过MD5哈希算法分别计算出安全固件与未知安全固件32位的基线与固件摘要,并对所述基线与固件摘要进行比较;[0039]根据基线与固件摘要比较结果评估未知安全固件的安全性,增强PLC固件完整性。
[0040]如图2和图3所示,为本实施例提供的基线建立流程与示意图,在建立基线前要通过个人计算机将安全固件导入PLC,这个过程中用串口截获技术来截获安全固件传输过程中的全部数据在截获的全部数据里面包括了由个人计算机向PLC传输的安全固件数据和协议数据,PLC向计算机传输的通讯数据两部分[0041]为了避免数据传输的丢失和错误,得到完整的数据,上述方法提出需要进行多次截获,至少两次以上,并把安全固件数据从完整数据中提取出来,再将两次提取的数据进行比较,一致的情况下再进行基线的建立,即通过MD5哈希算法计算出32位的基线每一个版本的固件传输都要建立相应的版本固件基线[0042]基线分析其实就是在传输数据的时候对截获过来的数据位和标准协议进行对比分析而基线分析是基于安全固件的传输,所以在基线分析的时候不需要对固件数据分析图3比较形象的描述了基线分析的过程,基线分析的结束以收到152帧数据(每个版本的固件帧数可能不同)来判定基线分析结束[0043]如图4所示,为PC模拟PLC截获未知安全固件数据流程图根据传输固件时PLC回复给个人计算机的通信数据,PC模拟发出一样的通信数据和个人计算机进行通讯。
验证程序首先通过串口监听技术截获计算机向PC传输的所有数据,通过协议分析后筛选出其中的固件和协议的数据,然后对固件数据进行MD5算法计算出32位的固件摘要[0044]如图5和图6所示,为基线与固件摘要对比验证流程和示意图,将所述基线和固件摘要进行比较,只要有一点不同,那么就说明了本次传输的固件安全性未知,图6形象的表示了这一过程[0045]虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明任何本发明所属【技术领域】内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准权利要求】1.一种PLC固件完整性验证装置,其特征在于,所述装置包括基线建立单元、PC模拟PLC截获单元和验证单元,所述 基线建立单元,用于截获安全固件数据,并基于MD5哈希算法建立32位基线; PC模拟PLC截获单元,用于通过个人计算机向用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要; 验证单元,用于将所述基线与所述固件摘要进行比较验证。
2.根据权利要求1所述的PLC固件完整性验证装置,其特征在于,所述基线建立单元利用串口监听技术截获安全固件数据3.根据权利要求1所述的PLC固件完整性验证装置,其特征在于,所述基线建立单元包括基线截获子单元、基线比较子单元和MD5哈希算法子单元;所述 基线截获子单元,用于通过计算机向PLC传输一安全固件,并对传输数据进行截获,得到两组以上数据; 基线比较子单元,将截获得到的数据进行比较,提取出传输协议数据和完整安全的固件数据; MD5哈希算法子单元,用于将所述基线比较子单元对比提取的所述完整安全的固件数据通过MD5哈希算法计算出32位的基线4.根据权利要求1所述的PLC固件完整性验证装置,其特征在于,所述PC模拟PLC截获单元包括PC模拟PLC通信子单元、固件截获子单元和MD5哈希算法固件子单元;所述 PC模拟PLC通信子单元,通过PC取代PLC和个人计算机进行未知安全固件传输; 固件截获子单元,用于通过个人计算机向PC传输未知安全固件,并截获未知安全固件数据; MD5哈希算法固件子单元,用于将所述截获未知安全固件数据通过MD5哈希算法计算出32位的固件摘要5.根据权利要求1所述的PLC固件完整性验证装置,其特征在于,所述验证单元包括对比验证子单元和结果显示子单元;所述 对比验证子单元,用于将所述基线与所述固件摘要进行比较验证; 结果显示子单元,用于输出对比验证子单元的验证结果。
6.一种PLC固件完整性验证方法,其特征在于,所述方法包括: A向PLC传输安全固件,对安全固件进行多次截获,并对截获的安全固件数据进行分析,建立基线; B向用于模拟PLC的PC传输所要烧录的未知安全固件,并对未知安全固件进行截获; C通过MD5哈希算法分别计算出安全固件与未知安全固件32位的基线与固件摘要,并对所述基线与固件摘要进行比较; D根据基线与固件摘要比较结果评估未知安全固件的安全性,增强PLC固件完整性。
