全部类别

现场总线通信安全的设计与实现

现场总线通信安全的设计与实现

2017年4月12日
现场总线的特点是开放、互联,这是它优于其它形式系统的根本原因。但是这种开放互联的性质也给现场总线系统带来了不安全因素。讨论了现场总线系统的通信安全问题,指出这一问题的重要性,提出了在设备层实现通信安全的方案。根据现场总线技术的特点和发展现

现场总线的特点是开放、互联,这是它优于其它形式系统的根本原因。但是这种开放互联的性质也给现场总线系统带来了不安全因素。讨论了现场总线系统的通信安全问题,指出这一问题的重要性,提出了在设备层实现通信安全的方案。根据现场总线技术的特点和发展现状提出了模块化的加密方案,并且对这一方案的适用性进行了分析,同时也探讨了其对总线通信性能的影响。 
关键字:现场总线、通信安全、加密、自动化系统、设备层通信、层式结构 

  前言

 我国已经提出了“以信息化推动工业化”的战略。在生产自动化系统中实现信息交换和共享并以此为基础实施企业CIMS工程已成为人们的共识,这必将成为自动化系统未来发展的方向。现场总线在这一系统中扮演了重要的角色,它为底层的智能设备提供了开放的通信平台,使之能够实时地进行数据交换。而且便于自动化系统与企业局域网互联,从而实现任意时刻、任意地点的控制,进而推进整个企业的自动化、信息化进程。

  1 问题的提出

  图1(略)为某中药生产厂的自动化系统。该系统实现了中药生产中的配料工作的自动化,能够提高生产效率,而且增加保密性,同时便于远程管理。
  在生产一线上采用基于现场总线的控制系统。当中药配料落人秤斗中时,Panther仪表就可以检测出这个变化,经过A/D转换变成以数字表示的称重数值。通过RIO接口,PLC程序可直接读取Panther的称重数值。智能仪表与控制器作为总线节点,依托总线进行相互通信,协调工作。
  可以看到基于现场总线的这一系统结构简单,成本较低,可以有灵活的控制,可扩展性强。而且能够方便地与企业局域网进行通信,从而满足远程控制的要求。
  可是我们发现,在现场总线一级的设备之间的通信是不安全的,如图2中,监听者可以获取信道中的数据。现场总线协议标准是公开的,这些数据很容易被解释为有意义的信息,那么各个节点之间的通信就没有任何保密性可言。
  现场总线数据交换中的这种不安全因素来自于协议本身。现场总线采用类似局域网的广播报文方式进行通信,那么上面的这种窃听就可以获取总线上通信的所有信息。对于一个中药制药厂来说,药品的配方就是企业的生命,如果这些信息被窃取,后果将不堪设想。
推而广之,现代企业的许多关键技术都会在生产一线的仪器工作参数中体现出来,那么随着企业的自动化、信息化程度的提高,信息的不安全性也越来越高。企业的现代化进程是不可避免的,在这一过程中,必须对信息安全提出越来越高的要求,对于采用现场总线构建的生产自动化系统,应该考虑总线网段的通信安全。

  2 解决方案

  我们提出的是一种进行设备问通信加密的方案,来解决上面提出的问题。
现场总线网段上设备的通信加密不同于目前通常的网络通信加密,需要考虑实现加密的层次、实现方法以及对性能影响等诸多因素。
 
 

2.1实现安全的层次

  加密层次的选择是相当关键的。这不仅涉及到对系统性能的影响,也决定着方案是否具有可行性。加密与解密应在同一层次进行。如图3所示,通常有几种可能的选择:
  (1)在应用层实现。这需要由用户选择加密算法进行编程,然后利用智能仪表和控制器的运算能力将数据转化为密文,交给下层处理。同时,应用层也要负责解密。
  在应用层实现的最大问题是对性能的影响。设备的运算能力是有限的,在设计运算能力的时候只是针对普通数据的处理而没有考虑到实现较为复杂的算法(加密、解密)。所以,利用现有的协议和软硬件去实现加密是不适宜的。而且,应用层的基本功能是控制与管理,把加密解密放到这个层次,会使其功能复杂化,不利于其管理控制任务的进行。
 

(2)集成于逻辑链路控制子层(LLC子层)或介质访问控制子层(MAC子层)。这两种选择都需要对现有的LLC或MAC层的协议进行改动,是相当复杂的工作。因为现场总线的协议还没有完全标准化,各种协议在底层的实现不同,进行集成的工作会影响各类总线,而且这种改动既涉及到协议制定者,又影响到设备生产者,不会是一件容易的事情。这种方案也会使原有的LLC和MAC层的协议更加复杂。
  (3)在LLC与MAC之间插入一层独立的加密栈,它对上(LLC子层)提供加密解密服务,对下(MAC子层)调用数据传送服务。这一加密栈功能单一,只涉及加密解密起始位置的判定和加密解密的具体实现。它避免了在其它层次集成加密解密功能时对原有协议功能的干扰与破坏,所以这是一种简单有效的方案。因此我们选择本方案。
  下面我们分析一下嵌入加密栈后的数据流程,如图4所示。
  加密栈只对数据进行加密,而不改变标识符和控制码。对MAC层而言,它不会察觉数据已被加密,只将密文作为通常的数据而与标识符、控制符一同分帧、校验,交给物理层传输。在接收方的数据流动与之相反,加密钱此时行使解密功能,对上下层仍然是透明的。可见,加密模块的加入,并不影响其它层次的工作,它的这种透明对于保持现有的协议完整性相当重要。
 

目前现场总线的层次结构不是标准的OSI七层结构,有很多层并没有被实现,所以选择LLC以上的层次不具有通用性。对于各类总线,MAC层是一定存在的,加密栈一定可以调用MAC层的数据传输服务。虽然不同的总线协议有所不同,但是加密栈的概念对所有类型的总线都是适用的,因此这种方案具有通用性。
  对于我们刚才提出的系统,要求每一节点实现加密通信。这样,即使是从总线上窃取了数据,也无法得到有用的信息,于是通信安全得到了保障。

  2.2方案的实现

  我们选择在LLC与 MAC之间进行加密,具体的实现是利用硬件进行加密。硬件加密的优点在于速度快,同时硬件的保密性更强,算法不容易被破解,当然硬件应当能支持多种加密算法以便于用户选择。
关于硬件加密的实现,可以参阅文献。文献对文的不足之处进行了补充,文献提出了构造伪随机数进行加密的方法。

  3 更深入的问题

  3.1密钥的分配
  加密通信中,密钥的分配与管理是相当重要的环节。现场总线系统是为单一用户所拥有管理的,密钥的分配管理较为容易。系统管理员可以采用多种策略,不过由于设备的运算能力有限,而且‘硬件具有良好的保密性,选取对称的密钥体系应该是足够了,即一段总线上采用同一密钥,既用于加密也用于解密,所有的节点都用这把密钥进行加密解密。对称密钥系统有结构简单、实现方便的优点。但是系统应当定期更换密钥,根据运行情况调整密钥长度和算法,这样可以保证密钥的安全。
  3.2性能分析
  对于现场总线系统性能的要求主要是实时性。毫无疑问,增加了数据加密解密环节会增加设备响应时间,但是这种延迟是不是一定会影响工业所需的实时性呢?答案是未必,因为我们提出的方案是基于硬件加密的。硬件的运算速度可以满足工业实时控制的需要,只要选择适合系统需求的算法,方案的强健性与实时性都可以得到保障。
 

加密过程中,不增加报文的长度,没有额外的数据流量,就不会增加总线的负担。
  3.3混合系统与系统互联
混合系统指的是一个系统中既有需加密的节点又存在不加密的节点。例如一条总线上,关键设备通信时数据需要加密,而非关键设备数据不进行加密,于是信道上既有明文又有密文,这时就需要有一个预先的约定,使关键设备能识别所接收的数据是明文还是密文,并进行相应处理。对于明文则将解密栈屏蔽而把明文直接向上层传送(这里体现出栈式加密结构的优点——功能独立、可以选择实现)。注意此时非关键设备不能接收关键设备数据(密文)。这实际上是一种分级的安全策略,需要在通信协议中规定标识位指明这种优先级别。
  混合系统的另一种情形是对不具有加密能力的设备也有通信加密需求,此时可通过提供硬件接口方式提供加密功能,这样就能够提供对原有系统的兼容,只要增加少量投资就可大大提高敏感区域的安全性。基于接口的安全通信方案如图5所示。
  添加接口之后,总线网段上的数据便成为了密文。这样,没有加密功能的设备能利用接口进行密文通信,在混合系统中也能实现统一的加密通信。采用添加接口的方法,成本会提高,时延也会有所增加,但对于需要保护原有投资而又有较强安全需求的用户,却是一种有效的解决方案。 
  不同的现场总线网段之间,可以通过网桥相联,系统的结构与图5相似。网桥中需要有两条总线的加密接口,之上才是协议的确认与转换过程。由于加密是在LLC以下实现的,所以它不会影响到协议转换。
现场总线可以通过通信控制器与工厂内部网相联,通信控制器作为一个以太网的节点接人以太网,数据通过通信控制器时不做解密工作,直接按原密文传送,上位机作为另一个节点与通信控制器进行密文通信,这就大大提高了以太网段上总线数据的安全性。与之相逆的过程中,上位机信息必须加密后才能进入以太网段,经过通信控制器进入总线。这样就能实现安全的远程控制。
  现场总线系统的通信安全问题有其自身的特点,一个完整的解决方案不是短时间内能够提出并实现的。虽然目前总线的信息安全问题还没有得到广泛的关注,但是,现场总线系统的开放互联是未来发展的趋势。所以,通信安全是企业现代化进程中不能不考虑的重要环节,而只有从协议与实现两个方面共同努力,才能得到尽可能好的解决方案。