APP下载

基于Hash算法嵌入式系统固件安全验证方法

2014-03-03刘桂雄余中泼洪晓斌谭文胜

中国测试 2014年5期
关键词:固件通信协议完整性

刘桂雄,余中泼,洪晓斌,谭文胜

(1.华南理工大学机械与汽车工程学院,广东 广州 510640;2.广州柏诚智能科技有限公司,广东 广州 511442)

基于Hash算法嵌入式系统固件安全验证方法

刘桂雄1,余中泼1,洪晓斌1,谭文胜2

(1.华南理工大学机械与汽车工程学院,广东 广州 510640;2.广州柏诚智能科技有限公司,广东 广州 511442)

针对多样化攻击对终端设备嵌入式系统安全造成的严重威胁,设计一种嵌入式系统固件安全验证方法。基于固件安全分析和可信根完整性度量,提出基于Hash算法嵌入式系统固件安全验证方法,在验证计算机上设计安全验证软件,通过通信协议分析、串口侦听,实现固件二进制数据提取、安全固件Hash值建立、未知安全固件Hash建立等功能,完成嵌入式系统固件载入或者升级过程的完整性验证,并设计基于MD5算法的PLC固件验证软件进行对比实验。实验结果表明:该方法可以正确判断PLC系统固件完整性,可推广应用到其他具有固件的嵌入式系统设备中。

嵌入式系统;固件;安全验证;Hash算法

0 引 言

工业控制系统是数据采集与监控系统、分布式控制系统、现场总线控制系统的总称[1],为国家关键基础设施提供安全可靠的数据采集、通信、控制、监测等功能,其受到的各种安全威胁也日益严重[2-3]。从计算机系统中裁剪并发展起来的嵌入式系统固件(embedded system firmware,ESF),是工业控制系统的重要部分,研究开发适用于ESF的安全防范技术意义重大。目前主流ESF包括嵌入式操作系统、嵌入式PLC系统,国内外关于嵌入式系统安全固件研究成果较少,第一代Adept-50操作系统[4]、AT&T与MIT联合开发的Multics系统与美国Trusted Information Symtems公司的Tmach操作系统是代表性安全系统,成果突出于各种安全模型及访问控制框架。由于攻击方式多样化,增加ESF复杂程度有利于提高其安全性;但由于能源、体积、价格等因素,现有计算机安全技术难以直接用于嵌入式系统,提取嵌入式系统中固件代码并对其进行安全验证至今还没有很好的解决方法[5]。基于以上背景,本文研究一种基于Hash算法[6]的嵌入式系统固件安全验证方法,提高嵌入式系统固件源的安全性。

1 基于Hash算法固件安全验证方法

根据ANSI/ISA-99等标准,控制系统分层参考模型的第1层(即本地或基本控制层)直接对第0层(即现场被控设备的物理空间层)控制、监测[1],若第1层受到攻击而发出错误指令,则第0层现场被控设备可能异常运行。第1层主要包含可编程逻辑控制器(programmable logic controller,PLC)、远程终端、智能电子设备等嵌入式设备;增强嵌入式系统本身安全可从电路安全、硬件(处理器、内存、加密处理器等)安全、软件(操作系统、虚拟机[7]等)安全、应用(应用程序[8]、网络安全协议等)安全等分层框架以及层次间相互安全协议[9-10]来实现。

固件作为可信根,具有隐蔽性强、难以检测、不易清除、破坏性强等特点[11],隐藏于固件芯片中的恶意代码能受到攻击者的远程控制,进行诸如删除数据、信息窃取、摧毁系统等破坏活动。验证固件完整性,最直接办法就是提取二进制代码和已知安全固件代码进行一一对比验证[12]。Hash算法作为将任意长度输入变换成固定长度输出的散列压缩算法广泛应用于数据加密技术,在可信计算中以可信平台模块TPM为可信根[13],计算公式为

New PCR[i]=Hash(Old PCR[i]||New Value)

其中,PCR是在TPM中用于保存完整性度量摘要值的平台配置寄存器,New PCR[i]代表当前平台的完整性状态,Old PCR[i]代表上一次TPM平台启动时的完整性状态,符号||表示连接,Old PCR[i]||New Value表示将上一次Hash值和当前新值相连。具体要求是每次在TPM启动时PCR以一种新迭代计算Hash值的方式被赋值,用摘要的形式存储在PCR中,并将新计算Hash值作为新的完整性度量值替换原来的值。

本文Hash算法用来生成每个固件的识别序列。基于Hash算法的固件安全验证方法包括串口侦听、模拟通信、固件二进制代码提取、安全固件Hash值建立、未知安全固件Hash值建立、验证未知安全固件完整性等部分。图1为实现该方法的终端嵌入式系统设备固件安全验证系统架构图,在工作计算机传输嵌入式设备固件外部增加验证计算机,进行安全固件传输(标号①)建立安全固件Hash值和未知安全固件传输(标号②)验证,对固件进行安全验证。

图1 嵌入式设备固件安全验证系统架构图

1.1 安全固件Hash值建立

安全固件Hash值建立由厂家完成,当用户需要烧入固件或者升级固件时,厂家不仅提供固件(该固件从厂家到用户手中过程可能受到攻击,故下文也称未知安全固件),同时提供安全固件Hash值。

图2是安全固件Hash值建立流程图。其中,通信协议分析、串口侦听是建立固件Hash值的准备环节,通信协议分析得到该嵌入式设备异步串行接口使用的数据传输协议;串口侦听通过读串口截取传输数据。通过串口侦听截获安全固件传输过程的二进制数据,基于通信协议分析提取安全固件二进制数据并对其进行Hash,重复获得2次以上Hash值后进行对比验证,通过后建立安全固件Hash值。

图2 安全固件Hash值建立流程图

1.2 未知安全固件Hash及验证

未知安全固件Hash和对比验证由用户完成。用户烧入固件或者升级固件时,从厂家获得未知安全固件、安全固件Hash值后,通过下面方法开发的验证软件对未知安全固件进行验证。未知安全固件不能直接载入到嵌入式设备中,而需基于通信协议分析建立一个模拟嵌入式设备的通信软件,与计算机通信。

图3为Hash验证流程图。计算机通过JTAG等接口将未知安全固件烧写到该软件,得到传输过程的二进制数据,去掉截获数据中通信协议部分,提取未知安全固件二进制数据,并进行Hash值计算;再将未知安全固件Hash值、安全固件Hash值进行对比,若两者相同则通过验证,否则不通过。

图3 未知安全固件截获Hash值建立流程图

2 实例分析

利用C#语言开发一个基于信息摘要算法(Message-Digest Algorithm 5,MD5)的PLC固件验证软件,MD5是计算方便、碰撞概率极低的Hash算法之一。采用信捷XC3系列14-T-C型号PLC,并采用该公司提供的V3.2、V3.3版本安全固件。

2.1 通信协议分析

信捷公司未提供固件通信协议,需对信捷PLC异步串行接口的数据传输协议进行分析:查看产品使用手册确定其异步串行传输规程RS-232线路基本参数:57600波特率、8位数据位、1位停止位和偶校验方式;利用串口侦听截获传输数据,得到通信协议是Modbus串行通信协议;对多次截获的传输数据进行相关性、规律性分析,找出协议数据段、固件数据段,剖析其数据链路层传输协议。图4是对传输数据进行分析得到的数据摘要。

图4 传输数据的分析摘要

2.2 安全固件MD5值建立实验设计

图5、图6分别为安全固件MD5值建立实验的软件设计流程图和软件界面图。单击“串口侦听(第1次)”按钮,进入串口侦听模式,截获传输过程的数据;单击“提取安全固件”按钮,分析截获数据,分离出通信协议数据段、固件数据段,保存安全固件数据;单击“串口侦听(第2次)”按钮,进行第2次安全固件截获,单击对应“提取安全固件”提取安全固件数据;单击“校对并计算MD5值”,将两次提取的安全固件数据进行按位检验,若校验成功,则计算安全固件MD5值,否则重新进行。

2.3 未知安全固件截获及验证实验设计

图7为未知安全固件截获及验证实验的软件界面图。单击“未知安全固件传输数据”按钮,显示未知安全固件传输数据;单击“提取固件”按钮,分离出固件数据段;单击“计算固件MD5”按钮,根据固件数据计算得到32位MD5值;单击“读取安全固件MD5”按钮,再单击“基于MD5验证”按钮,将未知安全固件MD5值和安全固件MD5值进行检验,若校验成功,则固件完整,否则固件安全性未知。

图5 安全固件MD5值建立软件流程图

图6 安全固件MD5值建立实验软件界面

图7 未知安全固件截获及验证软件界面

2.4 对比实验分析

设计4组试验,分别为增加、减少、替换和完整的固件数据试验。固件版本统一选择为信捷PLC固件V3.2。表1是4组试验结果。

表1 4组试验结果

试验都准确识别,前3组不完整、第4组完整,结果表明该方法通过验证固件源完整性有效提高其安全性。

3 结束语

1)基于Hash算法的嵌入式系统固件安全验证方法具有较好的应用性,用一台外部验证计算机来对固件进行安全验证,提高固件安全性同时不必对现有固件进行更改。

2)该方法基于通信协议分析、串口侦听技术,实现固件二进制数据提取、安全固件Hash值建立、未知安全固件Hash建立、对比验证等功能,进行嵌入式系统固件载入或者升级过程的完整性验证,从而提高嵌入式系统固件源的安全性。

3)用C#开发一个基于MD5算法的PLC固件验证软件,对信捷PLC进行固件验证,实验结果证明该方法可正确判断PLC系统固件完整性,且可以应用到其他具有固件的嵌入式系统设备。

[1]彭勇,江常青,谢丰,等.工业控制系统信息安全研究进展[J].清华大学学报:自然科学版,2012(10):1396-1408.

[2]张彤.电力可信网络体系及关键技术的研究[D].北京:华北电力大学,2013.

[3]Chen K.Reversing and exploiting an Apple firmware update[C]∥ Proceedings ofthe IEEE Symposinm on Security and Privacy.Oakland,2009.

[4]Weissman C.Security controls in the ADEPT-50 time sharing system[C]∥Proceedings of the 1069 AFIPS Fall Joint Computer Conference,1969:119-133.

[5]McMinn L,Butts J,Robinson D,et al.Exploiting the critical infrastructure via nontraditional system inputs[J]. Association for Computing Machinery,2011:37-39.

[6]刘桂雄,张龙,徐钦桂.基于改进SHA-1物联网监测节点完整性验证与增强方法[J].中国测试,2013,39(1):80-83.

[7]徐钦桂.虚拟仪器网络化测控系统可信分析及增强方法研究[D].广州:华南理工大学,2012.

[8]徐钦桂,刘桂雄.应用程序作弊型后门防御模型[J].计算机工程与设计,2010(11):2423-2426,2438.

[9]Department of Homeland Security(DHS).Cyber security assessments of industrial control system[S].Washington DC,2010.

[10]The European Network and Information Security Agency(ENISA).Protecting industrial control systems,recommenda tions for europe and member state[R].Heraklion,Greece:Recommendations for Europe and Member States,2011.

[11]黄华强.嵌入式系统程序完整性验证技术研究与实现[D].广州:华南理工大学,2010.

[12]刘桂雄,钟森鸣,余中泼.一种PLC固件完整性验证装置及验证方法:中国,103645672A[P].2014-03-19.

[13]沈昌祥,张焕国,王怀民,等.可信计算的研究与发展[J].中国科学,2010,40(2):139-166.

Embedded system firmware security verification method based on Hash algorithm

LIU Gui-xiong1,YU Zhong-po1,HONG Xiao-bin1,TAN Wen-sheng2
(1.School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510640,China;2.Basic Intelligence Technology Co.,Ltd.,Guangzhou 511442,China)

Aimed at the challenge that the diverse attacks defy the terminal equipment embedded system security seriously,an embedded system firmware security verification method is studied. According to firmware safety analysis and the measurement method of trusted root integrity,an embedded system firmware security verification method based on Hash algorithm is proposed.It designs a security authentication software on the computer and implements the function of firmware binary data extraction,safety firmware Hash value establishment,unknown security firmware Hash value establishment and so on through the communication protocol analysis and serial port monitor. The embedded system firmware integrity is verified in loading or upgrading process.Meanwhile,firmware authentication software for PLC based on MD5 algorithm is designed to conduct an acontrast experiment.Experimental results indicate that the method can judge firmware integrity of PLC system exactly and it can be applied to other embedded system firmware.

embedded system;firmware;security verification;Hash algorithm

TP301.6;O224;TP311.522;TP309

:A

:1674-5124(2014)05-0092-04

10.11857/j.issn.1674-5124.2014.05.024

2014-04-18;

:2014-06-12

国家科技型中小企业技术创新基金(12C26214405145)广州市科技计划项目(2013J4400064)

刘桂雄(1968-),男,广东揭阳市人,教授,博士生导师,主要从事先进传感与网络化控制研究。

猜你喜欢

固件通信协议完整性
石油化工企业设备完整性管理
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
车载网络通信协议标准化问题研究
基于SHA1的SCADA系统PLC固件完整性验证方法
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
电动汽车充电接口及通信协议新国标发布
基于固件的远程身份认证
精子DNA完整性损伤的发生机制及诊断治疗
英特尔发布免费固件引擎
提取ROM固件中的APP