CN103645672B - 一种plc固件完整性验证装置及验证方法 - Google Patents

一种plc固件完整性验证装置及验证方法 Download PDF

Info

Publication number
CN103645672B
CN103645672B CN201310693356.3A CN201310693356A CN103645672B CN 103645672 B CN103645672 B CN 103645672B CN 201310693356 A CN201310693356 A CN 201310693356A CN 103645672 B CN103645672 B CN 103645672B
Authority
CN
China
Prior art keywords
firmware
plc
baseline
subelement
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310693356.3A
Other languages
English (en)
Other versions
CN103645672A (zh
Inventor
刘桂雄
钟森鸣
余中泼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201310693356.3A priority Critical patent/CN103645672B/zh
Publication of CN103645672A publication Critical patent/CN103645672A/zh
Application granted granted Critical
Publication of CN103645672B publication Critical patent/CN103645672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明公开了一种PLC固件完整性验证装置及验证方法,所述装置包括基线建立单元、PC模拟PLC截获单元和验证单元,所述基线建立单元,用于截获安全固件数据,并基于MD5哈希算法建立32位基线;PC模拟PLC截获单元,用于通过个人计算机向用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要;验证单元,用于将所述基线与所述固件摘要进行比较验证。本发明用在未知安全固件装载到PLC之前对其进行完整性验证,保证导入PLC的固件是完整的。防止不法分子或者同类竞争对手对固件的恶意破坏。

Description

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

Claims (6)

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固件完整性。
CN201310693356.3A 2013-12-16 2013-12-16 一种plc固件完整性验证装置及验证方法 Active CN103645672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310693356.3A CN103645672B (zh) 2013-12-16 2013-12-16 一种plc固件完整性验证装置及验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310693356.3A CN103645672B (zh) 2013-12-16 2013-12-16 一种plc固件完整性验证装置及验证方法

Publications (2)

Publication Number Publication Date
CN103645672A CN103645672A (zh) 2014-03-19
CN103645672B true CN103645672B (zh) 2015-12-30

Family

ID=50250904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310693356.3A Active CN103645672B (zh) 2013-12-16 2013-12-16 一种plc固件完整性验证装置及验证方法

Country Status (1)

Country Link
CN (1) CN103645672B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775716B (zh) * 2016-12-15 2020-04-17 中国科学院沈阳自动化研究所 一种基于度量机制的可信plc启动方法
CN107861729B (zh) * 2017-11-08 2021-08-24 中国信息安全测评中心 一种固件装载基址的定位方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006044035A2 (en) * 2004-10-19 2006-04-27 Echelon Corporation Method and apparatus for an electric meter
CN102955699A (zh) * 2011-08-17 2013-03-06 施耐德电器工业公司 一种软件升级包创建方法和软件升级方法
CN103414741A (zh) * 2013-07-02 2013-11-27 深圳市汇川技术股份有限公司 一种远程升级plc的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098380A1 (en) * 2006-10-18 2008-04-24 Toby Klusmeyer System, method, and device for updating programmable electronic equipment with a transport device from a deployment server via the internet or other communication medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006044035A2 (en) * 2004-10-19 2006-04-27 Echelon Corporation Method and apparatus for an electric meter
CN102955699A (zh) * 2011-08-17 2013-03-06 施耐德电器工业公司 一种软件升级包创建方法和软件升级方法
CN103414741A (zh) * 2013-07-02 2013-11-27 深圳市汇川技术股份有限公司 一种远程升级plc的方法和系统

Also Published As

Publication number Publication date
CN103645672A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
CN103546576B (zh) 一种嵌入式设备远程自动升级方法和系统
CN103905450B (zh) 智能电网嵌入式设备网络检测评估系统与检测评估方法
CN107871081A (zh) 一种计算机信息安全系统
CN105706099A (zh) 软件更新装置及软件更新程序
Pan et al. Review of PLC security issues in industrial control system
CN104184728A (zh) 一种Web应用系统的安全检测方法及安全检测装置
CN104935589A (zh) 构建可信计算池的方法及系统、认证服务器
CN103645672B (zh) 一种plc固件完整性验证装置及验证方法
Lim et al. Attack induced common-mode failures on PLC-based safety system in a nuclear power plant: practical experience report
CN109977679A (zh) 一种基于tcm芯片的工控安全设备升级包安装方法
CN106878336A (zh) 一种数据交互方法及装置
CN108933658A (zh) 基于工控设备指纹的白名单库创建方法及装置
CN102682237B (zh) 针对网络下载文件的判毒方法及系统
CN104079579A (zh) 一种配电终端通信加密协议检测的方法
CN106506764B (zh) 一种多手机远程操控系统及方法
CN104850467A (zh) 一种计算机自我保护系统及方法
CN104994085B (zh) 一种无线传感器网络中身份认证方法及系统
CN106302539A (zh) 一种嵌入式web安全认证方法
CN103384249A (zh) 网络接入认证方法、装置及系统、认证服务器
CN104461872B (zh) 一种调试信息处理方法及系统
CN106302520A (zh) 一种远控类木马清除方法及装置
CN107968764A (zh) 一种认证方法及装置
CN105956428A (zh) 一种计算机辅助检测系统
CN105530098B (zh) 一种协议指纹自动提取方法及系统
CN205039845U (zh) 一种基于云存储的数据安全管理设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant