基于Cortex-A8的工业以太网安全协议栈开发
2013-09-08万跃鹏秦元庆周纯杰
万跃鹏,黄 双,秦元庆,周纯杰
(华中科技大学 控制科学与工程系,湖北 武汉430074)
0 引 言
在工业控制系统现场级,工业以太网已成为现场总线发展的未来趋势[1]。基于工业以太网的控制系统,不仅要在受到外界的恶意攻击时,保证信息的机密性和完整性等信息安全要求,而且要求系统内部以安全、可靠、高效的方式进行监测或者控制,保证系统的功能安全要求[2]。工业以太网协议栈,作为工业以太网控制系统的连接枢纽,已成为系统安全性研究的重点。
目前国内外学者对于工业以太网控制系统的安全问题已经开展了很多研究工作。文献 [3]列举了多种标准工业以太网的功能安全方案,文献 [4]详述了Powerlink工业以太网的功能安全。文献 [5]研究了控制系统的安全自动化,文献 [6]分析了控制系统的安全威胁及安全问题对系统的影响,文献 [7]则提出了对应于网络各层次的信息安全措施。但是,对于工业以太网功能安全和信息安全问题综合考虑的研究相对较少。
本文基于TI最新推出的 ARM Cortex-A8工业以太网开发套件,设计了综合功能安全和信息安全的协议栈。利用AM3359处理器中与ARM内核分离的工业通信子系统、Cortex-A8的高速处理能力和低功耗,高效地实现了工业以太网协议栈。
1 工业以太网安全分析
如图1所示,工业以太网控制系统分为信息管理层、过程控制层和现场设备层。现场设备层通过工业以太网将各种现场设备连接起来,过程控制层主要有网络连接设备、数据库和控制台,用于连接上下两层,信息管理层完成整个网络的信息管理、监控和安全处理等[8]。由于信息管理层的安全问题可以归属于IT领域的信息安全,目前已有很多相关的研究[9];过程控制层的相关设备自身都有相应的安全保护措施[10];而现场设备层,现场环境恶劣,安全问题突出,所以需要采取相应的安全解决方案。
图1 工业以太网控制系统结构
在现场设备层复杂的工业自动化环境中,工业以太网通信中常伴有电磁、高温、静电、机械振动等外部干扰,会引发各种功能安全问题,如信息的篡改和破坏、数据重传、插入、乱序、伪装延时和寻址出错等。网络中的设备可能遭到入侵、毁坏、重放攻击等安全威胁,威胁大致可以分为三类:外部攻击、内部攻击和物理攻击[8]。信息安全相关的威胁和可能遭受的攻击包括访问授权的非法获取、控制信息的非法获取、控制信息的篡改和破坏、未授权的网络连接、重放攻击、拒绝提供服务、病毒感染引起的系统崩溃和数据损坏和抵赖等。针对工业以太网存在的这些安全威胁,需要设计综合功能安全和信息安全的解决方案。
2 基于Cortex-A8的工业以太网安全协议栈设计
TI最新推出的 ARM Cortex-A8的工业以太网开发套件,可帮助用户便捷地集成工业通信标准。套件中的处理器AM3359集成了Cortex-A8微处理器和各种必需的外设,支持智能能源管理技术以及先进的高级泄漏控制技术。Cortex-A8处理器得到了大量ARM技术的支持,从而能够实现快速的系统设计。安全协议栈的设计基于Cortex-A8的架构特性,底层采用了TI提供的工业以太网快速实现方案。
2.1 基于Cortex-A8的工业以太网开发平台
安全协议栈的实现,选择了开源ARM开发板Beaglebone作为开发平台。由于是开源平台,参考TI提供的工业以太网开发软件包,Beaglebone开发板也可快速便捷地添加工业通信功能。图2为开发平台的结构框图,主处理器为AM3359,其中包含有用于实现工业以太网的可编程实时单元和工业通信子系统。开发平台从功能上可分为基于Cortex-A8构架的AM3359基本电路模块、以太网通讯电路模块、AM3359外扩存储器电路模块、输入输出模块以及CAN、串口通讯、电源管理等模块。
图2 基于Cortex-A8的工业以太网开发平台
2.2 工业以太网安全协议栈结构及分析
工业以太网安全协议栈综合考虑功能安全和信息安全,针对可能出现的功能故障,采用序列号、关系密钥、时间戳、时间预期和CRC校验等安全措施保障功能安全;为实现信息安全采用的措施有设备鉴别、访问控制和信息加密。
工业以太网安全协议栈是一个整体概念,按照网络层次结构,分层设计。如图3所示,通过基于Cortex-A8的微处理器AM3359的可编程实时单元和工业通信子系统(PRU子系统),可以快速实现数据链路层。为保证工业以太网的实时性,在数据链路层之上设计了调度层。安全协议栈的应用层设计成安全层,协议栈软件在ARM Cortex-A8中实现。
3 基于Cortex-A8的工业以太网安全协议栈实现
如图3所示,工业以太网安全协议栈软件按照层次结构,分为调度层、功能安全层和信息安全层,协议栈各层的实现建立在物理层和PRU子系统实现的数据链路层基础上。
图3 安全协议栈结构
3.1 工业通信子系统
基于Cortex-A8的处理器 AM3359的可编程实时单元和工业通信子系统 (PRU_ICSS)从ARM Cortex-A8核分离,从而实现了针对更大效率和灵活性的独立运行和时钟控制。
通过PRU_ICSS可以快速实现工业以太网的数据链路层,只需移植PRU固件程序。PRU驱动程序移植到Cortex-A8核中,用于协议栈对底层硬件的操作。Cortex-A8微处理器的高速处理能力和低功耗体现在协议栈各层实现部分。
3.2 工业以太网调度实现
网络通信调度模型采用集中式基于表的调度方法。整个系统通信宏周期分为周期报文发送阶段和非周期报文发送阶段,周期报文发送阶段主要用于从节点发送周期报文,非周期报文发送阶段用于处理网络中的非周期性事件。主节点首先发送综合各从节点信息生成的调度表,每个从节点在收到调度表后,找到自己需要发送报文的编号和时刻,按照指定时间发送。所以,主从节点的时间精度对调度的影响很大。
网络中只能有一个主节点用于监控和调度,若有5个从节点,经过计算若调度宏周期为1ms,时间槽为100us,非周期阶段为200us。于是,在周期阶段,5个从节点每隔100us发送一次周期报文,不会产生冲突;非周期阶段200us用于处理一次优先级最高的非周期事件。
调度实现包括主从节点的状态机、主节点集中调度和从节点服从调度。主从节点状态机转换表示了整个主从节点组建网络和处理网络事件的状态变换过程。整个调度主要包括主节点的调度表构建及发送,和从节点的解析调度表和发送周期报文。为确保时间精度,主节点在linux下使用了POSIX高精度定时器,理论定时精度为1ns,实际为10us左右;从节点使用AM3359内部的32位通用定时器。调度的实现,避免了报文冲突,实时性在一定程度上得到了保证。
3.3 工业以太网功能安全实现
工业以太网通信过程中,由于电磁干扰、机械振动等因素可能导致报文破坏、非预期重传、延时、寻址出错等故障,结合Cortex-A8的结构功能特性,采用序列号、关系密钥、时间戳、时间预期和CRC校验这五项安全措施对这些故障进行检测和防范。功能安全层在调度层之上,包括安全发送和接收过程。安全发送之前只需在报文中加上序列号、时间戳,获取关系密钥及CRC校验值。安全接收则需要对安全报文进行解析,解析过程如图4所示,Cortex-A8的高速处理能力能够减小安全报文处理造成的延时。
图4 安全解析流程
3.4 工业以太网信息安全实现
由于工业以太网与现有信息网络的无缝结合,使得以往相对独立的工业控制网络出现了信息安全问题。针对常见的安全问题,采取了常用的设备鉴别、访问控制和信息加密措施,为在基于Cortex-A8微处理器上进行实现,对这些措施都做了适应性的修改。
3.4.1 基于器件识别号的设备鉴别
为了能够有效地防止由于外部设备的非法接入而产生的对整个控制网络的威胁,在现场设备初次接入网络,或者掉电后重新接入时,都必须和监控主节点完成设备鉴别过程。
设备鉴别过程包括现场设备产生鉴别码并发送和监控节点接收鉴别码并解析。为提高安全性,使用了功能安全部分的序列号,加上密钥,与设备属性三者异或加密成鉴别码。鉴别码解析如图5所示,解密过程仍然要用到序列号和密钥,密钥可从时间戳中获取,安全头部用于功能安全部分。将基于Cortex-A8的 AM3359器件识别号作为设备属性,设备属性列表包含了所有的设备属性。若解密出来的设备属性标识在属性列表中有相同的,则通过设备鉴别,可允许接入控制网络。
图5 设备鉴别接收过程
3.4.2 基于高速缓存的访问控制
访问控制是针对越权使用资源或非法操作的防御措施。访问控制就是要对访问的申请,批准和撤销的全过程进行有效的控制,以确保只有合法用户的合法访问才能得到批准,而且被批准的访问只能进行授权的操作。
访问控制表是以文件为中心建立的访问权限表。访问控制的实现主要在于动态维护一个访问控制表,所有用户初始分配普通访问权限。只有经过权限申请,并得到监控节点同意后才能使用特殊权限。访问控制表存放在基于Cortex-A8的AM3359的片载存储器,片载存储器为共享高速缓存,可提高访问速度。访问控制过程如图6所示,用户生成访问控制字段,提供用于匹配访问控制列表的信息,若条件不匹配则拒绝访问。
图6 访问控制过程
3.4.3 基于超标量流水线的信息加密
信息加密能有效防止机密控制信息的泄露及篡改等。加密方法主要是加密算法的选择,在性能允许的的前提下,选择了对称分组加密算法DES。采用线性同余算法从时间戳字段获取关系密钥,利用Cortex-A8的超标量流水线,包括双算术逻辑单元流水线、乘法器和加载存储流水线,提高运算速度,以减小对网络实时性的影响。
DES加密算法的实现包括生成密钥和数据加密。生成密钥又分为取得密钥,等分密钥,密钥移位和密钥选取。数据加密包括取得数据,初始换位,数据扩展,数据压缩,数据换位,交换数据迭代和数据整理。数据解密和加密算法相同,区别在于数据扩展时所使用的密钥不同,加密时用第i次迭代密钥,解密时用17-i次迭代密钥。
4 实验结果及分析
为验证工业以太网安全协议栈的作用,根据现有资源,搭建了相应的实验平台,实验平台基于章节1中提到的工业以太网控制系统。系统中一共包含三个Beaglebone开发板作为从节点,PC机作为主节点,另一台PC机作为测试机,通过交换机连接在一起,如图7所示。实验时采用两组网络对比测试的方法,一组为普通网络,协议栈不包含安全部分;另一组采用了安全协议栈,称为安全网络。
图7 测试实验平台实物
测试时由测试机向系统注入不同的故障,由于不具备实际工业环境,所以通过使用群脉冲干扰仪产生强烈外部干扰来简单模拟。通过插入相关故障生成代码模拟插入、重传、丢失、破坏、乱序和延时故障。对于插入、重传,一次按键注入一次故障;而丢失、破坏、乱序和延时则是一次按键注入5次故障。
入侵攻击测试通过在现场控制层接入非法设备 (FPGA开发板),频繁接入或接入多个。对主节点连续进行强行口令攻击,口令攻击通过在测试机上用嗅探器sniffer软件发送报文来模拟,设置一位口令密码。测试机注入冰河木马病毒,通过网络感染主节点,进而窃取整个网络的控制信息。
表1列出了实际测试时注入的故障和模拟的攻击类型,以及通过抓包软件wireshark分析后的测试结果。测试过程中记录两组网络在发生不同故障和攻击时网络的具体状态,以及安全协议栈造成的网络延时,测试结果见表1。由表中内容可知,在同样的测试环境下,当发生功能故障时,使用了安全协议栈的网络能够即时处理,使得网络故障概率降至5%以下,而普通网络出现故障的概率在95%以上。不过,安全协议的加入使得网络产生了一定的延时,若实时性要求非常高,还需要对协议进行相应的优化。当发生网络攻击时,安全网络能将攻击成功次数从普通网络的90%以上降至10%以下。从实验结果可以看出采用安全协议之后,有效地提高了网络的安全防御性能。
表1 实际测试结果
5 结束语
本文综合考虑工业以太网的功能安全和信息安全,结合Cortex-A8的架构特性,设计了工业以太网安全协议栈。利用基于Cortex-A8的AM3359处理器的工业通信子系统、高速处理能力和低功耗,高效地实现了协议栈。在故障注入和模拟入侵的情况下,对协议栈进行了相关的实验,实验结果表明,安全协议栈能有效地减少系统故障和防御入侵攻击。下一步将分析工业以太网控制系统安全与实时性的关系,并通过优化安全协议栈提高系统实时性能。
:
[1]MA Shiping.The current standards of fieldbus and industrial Ethernet technology [J].Mechatronics,2007,13 (3):6-13(in Chinese).[马世平.现场总线标准的现状和工业以太网技术 [J].机电一体化,2007,13(3):6-13.]
[2]RUAN Dongru,XIE Dongguang.Security of industrial Ethernet[J].Control Engineering of China,2006,13(Suppl):112-114(in Chinese).[阮冬茄,谢东光.工业以太网中的安全问题 [J].控制工程,2006,13(增刊):112-114.]
[3]Hiroo Kanamaru,Taro Harima.Safety field network technology and its implementation[C]//Tokyo:SICE Annual Conference,2008:1487-1490.
[4]YU Shujun.The research of key technology in EPA security[D].Chongqing:Chongqing University of Posts and Telecommunications,2006:11-21 (in Chinese).[余淑军.EPA 系统的关键安全技术的研究 [D].重庆:重庆邮电大学,2006:11-21.]
[5]Thomas Novak,Andreas Gerstinger.Safety and security-critical services in building automation and control systems[J].IEEE Transactions on Industrial Electronics,2010,57 (11):3614-3621.
[6]JIE Peng,LI Liu.Security of industrial control system [C]//Nanchang:International Conference on Electric and Electronics,2011:959-964.
[7]WANG Hao,CHEN Minna,WANG Ping.Information security technology of EPA system [J].Process Automation Instrumentation,2006,27(9):9-12 (in Chinese).[王浩,陈敏娜,王平.EPA的信息安全技术 [J].自动化仪表,2006,27(9):9-12.]
[8]WANG Hao,MI Mingrui,LIU Jie,et al.Design and implementation of security solution in EPA network[J].Automation&Instrumentation,2011,26(3):24-30 (in Chinese).[王浩,秘明睿,刘杰,等.EPA网络安全方案的设计与实现 [J].自动化与仪表,2011,26(3):24-30.]
[9]LIU Quan.Information security research of networked control system[J].Control & Manament,2006,22(18):87-90 (in Chinese).[刘全.网络控制系统的信息安全研究 [J].微计算机信息,2006,22(18):87-90.]
[10]ZHENG Yanping.Network equipment security measure and realization [J].Coal Technology,2011,30 (12):206-207(in Chinese).[郑彦平.网络设备安全措施与实现 [J].煤炭技术,2011,30(12):206-207.]