乔全胜 邢双云 尚文利 赵剑明 赵雪峰
(沈阳建筑大学信息与控制工程学院1,辽宁 沈阳 110168;中国科学院沈阳自动化研究所2,辽宁 沈阳 110016;中科院网络化控制系统重点试验室3,辽宁 沈阳 110016)
可信PLC的设计与实现
乔全胜1,2,3邢双云1尚文利2,3赵剑明2,3赵雪峰2,3
(沈阳建筑大学信息与控制工程学院1,辽宁 沈阳 110168;中国科学院沈阳自动化研究所2,辽宁 沈阳 110016;中科院网络化控制系统重点试验室3,辽宁 沈阳 110016)
针对目前工控终端设备易受远程代码攻击、系统固件缺乏安全校验的问题,以PLC为例,通过软硬件结合的方式构建可信的安全防护体系。采用Xilinx Zynq-7000工业级芯片搭建硬件环境,并通过嵌入式系统移植,在可信计算技术基础上,以协同处理的方式实现了快速加解密验证。用哈希(Hash)算法对PLC系统启动文件进行了完整性验证,保证了PLC系统的可信启动。 试验结果验证了利用该方法保证终端设备安全的正确性及可行性,其能够为工业嵌入式设备构建安全可信的运行环境。
智能制造 工业4.0 工业控制系统 信息安全 网络安全 安全防护体系 Hash算法 嵌入式 PLC
在智能制造与工业4.0战略的背景下,对工业控制系统信息安全的关注正达到前所未有的高度和广度[1-3]。通过Woo-yun平台、ICS-CERT以及国家信息安全漏洞共享平台,可以看到包括ABB、Schneider Electric、Siemens、Rockwell Automation等知名厂商产品的各种安全漏洞[4-5]。
工业控制系统外部网络安全威胁主要表现在外部攻击者通过非授权方式进入控制系统,篡改控制命令、伪造状态信息、传播病毒、关键时刻阻塞控制信道并导致系统不能正常运转等[6-7]。而产生内部威胁的原因主要是由于现有平台架构是开放式的,恶意程序很容易植入软件系统中[8-9]。其表现形式为隐藏在终端设备固件芯片中的恶意代码被攻击者远程控制,对工业控制系统进行诸如信息窃取、删除数据、破坏系统等攻击行为[10-12]。
针对工业控制系统终端安全的研究方面,国内外研究人员已提出了一些解决方案来加强现场嵌入式设备的主动防御能力。如Audun Jsang等人针对移动的现场嵌入式设备,提出了基于传统PIN码的身份认证、基于生物特征的身份认证[13];A.K.Das利用智能卡技术,实现了基于口令和指纹的双因素认证[14];李建、何永忠、沈昌祥提出了基于移动可信模块(mobile trusted module,MTM)的可信移动平台体系结构[15]。
本文在研究了可信计算技术的基础上,设计并实现了嵌入式PLC的可信启动。在系统启动阶段,采用可信芯片作为信任度量根,并结合哈希(Hash)算法,通过信任链的传递实现了系统的可信启动,最终为工业嵌入式设备构建了可信、安全的运行环境,保障了工业控制系统的安全稳定运行。
本文以PLC作为工业控制系统终端设备为例,选择工业级芯片Zynq-7000作为可信芯片搭建硬件环境,并通过嵌入式系统移植,采用Hash算法对系统启动文件进行完整性校验,实现了PLC系统启动的可信。
鉴于本研究内容基于国家863课题“可编程嵌入式电子设备的安全技术”,要求在可信操作系统的基础上研发具有启动时安全检测和硬件快速安全计算功能的安全处理单元(secure processing unit,SPU),并将一些由C语言编写的复杂加解密算法转化成硬件语言Verilog运行于FPGA上。这就需要FPGA去实现一些控制,以配合操作系统使用。因此,从软、硬件协同设计方面考虑,选用第一款将ARM Cortex A9双核与FPGA紧密集成在一起的Xilinx Zynq-7000全可编程片上系统(All Programmable SoC),作为可信芯片。
2.1 Zynq-7000 架构
Xilinx Zynq具有同构多核的处理器,且包含了用于专用硬件加速的FPGA,使得Xilinx Zynq在通用性方面和能量效率方面功能强大。其处理系统(processing system,PS)为ARM Cortex A9双核,可编程逻辑(programmable logic,PL)为FPGA部分。该部分的资源随SoC芯片级别高低不同而变化,最低的是Artix-7(Zynq-7010和Zynq-7020),最高的是Kintex-7(Zynq-7030和Zynq-7045)。
在Zynq-7000中,集成了FPGA和ARM,使用硬核处理器;在处理器要求较高的工业环境中,其处理能力相较软核有大幅度提升。FPGA与ARM之间通过AXI_ACP、AXI_GP、AXI_HP这3种接口通信,带宽达到1 Gbit/s,可实现高速通信。总线共有4种9条:2条32位Master总线接口,2条32位的Slave总线接口,4条32位/64位可配置的高性能Slave接口,1条64位的Slave ACP接口。
2.2 资源分配
研究中选用Zynq-7030芯片作为片上系统SoC,并在其基础上提供嵌入式操作系统启动时的安全检测和算法加速器等硬件模块,以及驱动接口等功能,其结构框架如图1所示。
由图1可知,系统启动的可信验证主要通过一些加解密算法实现,为了实现算法的硬件加速,需要将算法以硬件语言运行于RAM IP核和Flash IP核。另一部分身份认证、数字签名等运行于ARM cortex A9,以软件的形式给PLC提供安全保护。
图1 Zynq-7030功能结构图
Fig.1 Functional structure of Zynq-7030
3.1 可信PLC认证机制
可信PLC主要体现在PLC控制系统启动所需文件的完整性校验。PLC嵌入式操作系统启动需要的文件有启动引导文件BOOT.BIN、设备树devicetree.dtb、内核文件uImage和文件系统uramdisk.image。
信任链传递机制主要被用来进行可信启动的完整性度量。信任链默认是在以固件代码BL0为信任基础的条件下,由该启动环节去评估下一个启动环节的安全性。只有下一个启动环节的可信度达到标准,上一个启动环节才会将控制权转交给下一个环节,然后依次向后推进;否则即度量失败,通过日志警告报告管理员。为了保证过程中的每一个环节都是安全可信的,就必须在每一步控制权移交之前完成对下一个环节进行量化的判断,判断下一个环节的客体是否受到篡改。由当前阶段的代码度量下一阶段即将要执行的代码段,然后将度量值扩展到PCR中。这样逐级传递信任,就构成了信任链。
系统上电后,首先系统启动硬件环境会被初始化,系统启动环境中配置了各文件的加载地址;然后按照预定的执行顺序调用各文件中的Hash代码段,进行完整性校验。待所有文件均被校验成功后,系统才启动;如果校验失败,则该文件会被删除,同时也就导致了系统因丢失启动所必需的文件而不能正常启动。
3.2 完整性校验
Hash函数被广泛应用于密码学中,如消息完整性检测、数字签名、消息认证等[16]。事实上,Hash函数主要用来检测篡改和证明消息真实性。因此,如果受到攻击时得到的摘要值与已存储的摘要值不完全匹配,则说明文件不可信,系统存在被攻击的可能性。
当文件读取成功后,系统调用相应文件中的Hash函数,通过计算摘要值查看与之前存储的标准值是否相同。如果相同,说明文件是完整的,给予文件授权可执行;如果不相同,说明文件被修改过,可能存在潜在的攻击。这时相应的处理机制是直接删除该文件,然后继续验证下一个文件的完整性。待所有文件完成完整性验证之后,如果有文件被修改,系统会因为缺少启动所必需文件而无法启动,需要等待管理员重新加载文件,进行新一轮校验,直至校验成功,方可启动。
在PLC扫描用户程序之前,首先应保证自身系统的完好性。基于Zynq的可信PLC的设计宗旨是从控制网的源端来保证PLC的安全启动,构建从硬件到软件的、完全可信的系统环境。
本文以PLC作为工业控制系统终端设备,选择工业级芯片Zynq-7030搭建硬件环境,并进行嵌入式系统移植。具体操作方式为设置Picozed 7030启动方式为SD启动,复制BOOT.BIN、devicetree.dtb、uImage、uramdisk.image这4个文件到SD卡中。打开终端Tera Term并设置端口为COM4(不同机器端口可能不同),波特率为115 200 bit/s,data为8位,打开开关启动。
系统启动过程中,输出使用Hash验证内核文件和设备树文件的完整性的内容,使用的Hash算法为crc32,验证成功后会输出crc32+ OK。试验表明,以基于工业级芯片Zynq-7030作为硬件平台,结合Hash算法,能够准确地验证系统启动文件的完整性,从而实现PLC启动的安全、可信。
本文针对工业控制系统信息安全威胁的来源,以可编程逻辑控制器(PLC)为例,重点研究了工业控制系统的终端安全。采用行业内首款将ARM与FPGA集成在一起的工业级芯片Zynq-7000为核心,通过搭建硬件环境并利用Hash算法验证嵌入式PLC系统启动所必需文件的完整性,确保了PLC可信启动,为动态、复杂的工业控制系统终端安全提供了一种新的解决方案,具有较好的应用价值。
[1] 石菲.工业 4.0 下的安全蓝图[J].中国信息化,2015 (3):72-75.
[2] 罗文.德国工业 4.0 战略对我国推进工业转型升级的启示[J].工业经济论坛,2014,1(4):52-59.
[3] 王小山,杨安,石志强.工业控制系统信息安全新趋势[J].信息网络安全,2015 (1):6-11.
[4] 彭勇,江长青,谢丰.工业控制系统信息安全研究进展[J].清华大学学报(自然科学版),2012,52(10):1396-1405.
[5] GOLDENBERG N,WOOL A.Accurate modeling of Modbus/TCP for intrusion detection in SCADA systems[J].International Journal of Critical Infrastructure Protection,2013,6(2):63-75.
[6] MORRIS T,VAUGHN R,DANDASS Y.A retrofit network intrusion detection system for MODBUS RTU and ASCII industrial control systems[C]//2013 46th Hawaii International Conference on System Sciences,2013:2338 -2345.
[7] YASAKETHU S,JIANG J.Intrusion detection via machine learning for SCADA system protection[C]//The 1st International Symposium for ICS& SCADA Cyber Security Research,2013:101-105.
[8] 李彬.基于 MD5 算法的 PLC 固件完整性增强方法研究[D].广州:华南理工大学,2013.
[9] 邱公伟.可编程控制器网络通信及应用[M].北京:清华大学出版社有限公司,2000.
[10]沈昌祥,张焕国,王怀民.可信计算的研究与发展[J].中国科学 信息科学 (中文版),2010,40(2):139-166.
[11]CHEN L,MITCHELL C J,MARTIN A.Trusted compating [J].Trusted Couputing Number in Lee Professional Applications of Computing,2005(6):13-15.
[12]尚文利,万明,赵剑明,等.面向工业嵌入式设备的漏洞分析方法研究[J].自动化仪表,2015,36(10):63-67.
[13]JOSANG A,ROSENBERGER C,MIRALABE L,et al.Local user-centric identity management[J].Journal of Trust Management,2015,2(1):1-28.
[14]DAS A K.Analysis and improvement on an efficient biometric-based remote user authentication scheme using smart cards[J].Iet Information Security,2011,5(3):145-151.
[15]李建,何永忠,沈昌祥.基于可信移动平台的跨身份标志域访问模型倡[J].计算机应用研究,2009,26(1):321-324.
[16]兰昆,唐林,张晓.密码技术在工业控制系统中的应用研究[J].自动化仪表,2015,36(10):72-76.
Design and Implementation of the Trusted PLC
Aiming at the problems of current industrial control terminal equipment,such as vulnerable to remote code attacks and the system firmware lacks a security check,etc.,taking PLC as an example;the trusted security protection architecture is built through combining the hardware and software. By using Xilinx Zynq-7000 industrial-grade chip,the hardware environment is established; and through transplanting the embedded system,with the co-processing mode,the fast encryption and decryption verification are achieved on the basis of the trusted computing technology.Hash algorithm is used for checking the boot file integrity of PLC system,to ensure credible startup of PLC system.The test results verify the correctness and feasibility of using this method to ensure the safety of terminal equipment and to build a safe and reliable operating environment for industrial embedded devices.
Intelligent manufacturing Industry 4.0 Industrial control system Information security Network security Safety protection system Hash algorithm Embedded PLC
国家高新技术研究发展计划(“863”计划)基金资助项目(编号:2015AA043901-01);
国家住房和城乡建设部科学技术计划基金资助项目(编号:2016-K8-062)。
乔全胜(1989—),男,现为中国科学院沈阳自动化研究所与沈阳建筑大学在读联合培养硕士研究生;主要从事嵌入式系统、工业控制系统信息安全方向的研究。
TH86;TP29
A
10.16086/j.cnki.issn 1000-0380.201612019
修改稿收到日期:2016-07-04。