李一清
(沈阳化工大学 计算机科学与技术学院,辽宁 沈阳 110000)
Modbus/TCP协议是属于应用层的传输协议,通信模式是主从式。在工业控制系统中,Modbus主站与Modbus从站对应的拓扑结构为一对多或多对多。通信时,Modbus主站向从站传输Modbus操作控制指令报文或Modbus数据报文,Modbus从站按照Modbus/TCP协议约定好的规范做出相应的应答响应。Modbus/TCP协议是一种通用语言,能实现工业现场控制器和控制器之间的通信。工业控制器和其他工业设备间,也可以利用Modbus/TCP协议实现通信[1]。
Modbus/TCP协议是一种以太网协议,用来规定数据的交换方式。Modbus/TCP协议传输的通信报文应用数据单元,主要由Modbus应用协议报文和协议数据单元(Protocol Data Unit,PDU)组成。ISO模型的应用层基于Modbus/TCP协议。Modbus从站收到报文会将其拆解,从而获得Modbus/TCP数据帧,按照Modbus/TCP协议解析数据帧,将应答响应报文封装到TCP协议帧中传送到主站。Modbus/TCP协议本身没有设计校验机制,所以Modbus/TCP协议的安全性可能会受到严重威胁[2]。Modbus/TCP协议通信的报文由Modbus应用报文头、MBAP以及协议数据单元PDU组成。其中,TCP/IP传输的Modbus应用数据单元由Modbus应用报文头MBAP辨别。Modbus/TCP协议通信的报文的MBAP包含事务处理标识、协议标识符、长度以及单元标识符。PDU包含功能码和数据。
在信息学中,量子通信根据量子力学特性可实现信息的安全传输,且有着信息通信所需要的特性要求。量子通信是无条件安全的,具有很好的保密性,遇到阻碍的可能性较小。在信息传输过程中,如果信息被任意窃听或复制都会破坏量子态。在没有阻碍的传输中,无论两个分离的量子离得有多远,当一个量子发生变化时,另一个也会产生相应的变化。
量子密钥分发能保证信息通信的安全性,能使信息通信的双方都产生无条件安全的密钥,且一次一密,每次密钥都是随机不固定的。发送方用密钥进行加密,接收方用密钥进行解密。量子通信运用量子纠缠效应进行信息通信,是一种将量子学运用到信息学的新兴通信方式。光量子通信是运用量子纠缠态,信息的传输以量子隐形传态的方式完成。
光量子通信是首先创造一对纠缠态粒子,其中一个放在通信的发送方,另一个放在通信的接收方。联合测量有未知量子态的粒子和发送方的粒子,接收方的粒子会立刻发生变化。这种变化是某种状态,且接收方的状态和发送方粒子变化的状态是对称的。发送方把联合测量的信息通过经典信道传给对方,对方按照接收到的信息对变化的粒子进行幺正变换(相当于逆转变换),最终得到和发送方一样的未知量子态。量子通信中,消息编码不是比特,而是量子状态(量子比特)。光子常被用来制备量子状态。通常,测量一个未知的量子状态会以某种形式改变此量子的状态。在通信过程中出现窃听就会有测量,从而改变量子的状态,可以检测通信过程中的任意窃听,还能计算被截获信息的数量[3]。
量子密码通信网络的体系结构一般由密钥管理层、应用层以及量子层组成。量子层的功能是完成端到端的量子密钥分发,此层生成的密钥会上传至密钥管理层;密钥管理层负责储存传送到该层的密钥,并挑选合适的路由;应用层的功能是访问各种事务。密钥管理层储存的量子密钥用来加密量子通信网络中的通信信息,保障通信网络的安全性。
在量子密码通信网络模型中运用软件定义网络架构技术,采用可信控制中心的量子密钥中继方案。其中,终端节点和中继节点构成网络的节点。终端节点由应用层、网络层以及量子层构成。网络层的功能是实现创建网络的连接,完成信息的路由和转发,为上层提供服务。
提出一种基于量子密码通信的Modbus/TCP协议加密传输方法。量子密码通信有较好的抗干扰能力、良好的隐蔽性能以及较低的噪音比,且在信息传输过程中不会被窃听、截取或复制。基于量子密码通信的工业控制网络不仅绝对无条件安全,而且还能实现工业控制网络的实时性。
为找到模拟通信中的链路,了解该链路中的目的地址、源地址以及链路上别的密钥数量信息,提供以下方案。由密钥管理层链路发现模块,负责开启一个线程监控整个网络拓扑,且此线程会周期性地工作。密钥管理层通过链路发现协议(LLDP)得知链路状态,链路发现模块按照储存在密钥管理层上每条链路的密钥状态的变化立即更新密钥状态,同时显示在控制台上。管理层则能全面获知整个链路的状态[4]。
通常来讲,QKD对量子态的传输是通过对光子进行编码、传输以及测量完成的。利用激光脉冲抽运40 m的色散平坦光子晶体光纤产生光子,利用四波混频效应得到质量高且计数率高的纠缠光子源。通过实验测得信号与闲频光分别处于1 545 nm和1 555 nm处。实验结果与理论基本吻合,该系统能作为量子密钥分发系统的光源,误码率小于6%。
现有Modbus/TCP对通信信息安全问题没有防护,为此提出一种基于量子密码通信的Modbus/TCP协议的信息加密防护模型,通过以量子密钥分发实现密钥对工业控制系统通信信息的加密。Modbus/TCP报文以密文形式进行通信传输,实现Modbus/TCP报文在通信主站和从站间传输的安全性。
工业控制网络和传统互联网对效率、安全性以及实时性的要求不同。在高安全性和高效率的双重标准下,Modbus/TCP信息加密模型采用一次性密钥的量子密码。在量子密码通信中,这种方式可保证通信双方拥有一致的、随机的以及安全的密钥。通信双方利用一致的密钥实现对消息的加密和解密,实现信息的安全传输。
通信双方建立通信后,通过通信双方的一系列操作会产生一个安全的量子密钥。产生的过程就是传递的过程,可以说是“随制随用”。运用量子力学,能使双方同时产生一串随机数,并且不用参考对方的数据就能保证双方产生的随机数序列一模一样,通信双方产生的这串随机数序列就是量子密钥。以这种形式产生量子密钥的同时也实现了密钥的分发,不用再去传送密钥,保证了密钥的安全性。
通信双方产生的量子密钥是一串随机的字符串,长度可以任意设定。每次传输信息数据时都会产生新的一串密钥,这种方式产生的密钥完全满足香农定理的3个要求,即密钥的随机性、密钥长度不小于明文以及一次一密。用量子密钥加密通信信息后,密文是不能被破译的。
将产生的纠缠光子对以E91协议的流程来产生量子密钥。E91协议实现的具体流程如下:
(3)在多次测量后,发送方和接收方公布自己的测量基的结果,用来检测粒子对是否是纠缠的。
(4)当检测到粒子对并无关联时,就可以认定该纠缠对是无效的或者是存在窃听者,放弃该次通信;当判定粒子对是相互纠缠的且不存在窃听者,则选用相同测量基的测量结果用来产生密钥。
按照E91协议流程获得随机的、安全的字符串(量子密钥),每次数据的传输截取两组56位(即共112位)用作本次传输的密钥。生成的112位密钥用3DES算法对信息进行加密,3DES使用2条不同的56位的密钥对数据信息进行3次加密。3DES即Triple DES是DES向AES过渡的信息加密算法。设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES应用的密钥,M则代表明文,C来代表密文,则3DES的加密过程和解密过程分别为:
为验证Modbus/TCP协议的信息加密模型功能的实现,采用Modbus Slave模拟Modbus的主站和Modbus的从站,验证过程如下。首先,由Modbus的主站向Modbus的从站传送Modbus信息操作控制指令。其次,假定操作控制指令写入的值和写入的地址分别是1和0进行测试,在加密模块后抓取相应的Modbus数据包,并保证在解密模块之前和之后检测抓到的数据包,查看有没有对其进行加密。再次,从Modbus的从站检测有没有实现对Modbus操作控制指令的解密。最后,通过Modbus的从站查看解密后的Modbus通信报文是否正确。具体采用Wire-shark在Modbus的从站和Modbus的主站间实施抓包操作。如果抓包操作的结果是密文,那么基于量子密码通信的Modbus/TCP协议的信息加密防护模型实现了对系统的加密操作,完成了对Modbus/TCP协议通信报文的安全性操作[5]。
Modbus/TCP协议属于通用型工业以太网协议,如今广泛应用于工业控制系统。改进Modbus/TCP协议可实现工业控制网络的信息安全,对整个工控系统的信息安全研究有着重要意义。因此,介绍Modbus/TCP协议在工控网络中具有的价值,研究Modbus/TCP协议的安全性十分必要。第一章主要描述了Modbus/TCP协议的控制网络结构、应用数据单元以及功能码。第二章描述了量子通信、量子密钥分发和量子密码通信网络的体系结构。第三章描述了量子密钥管理、量子加密通信网络中纠缠光子对的产生和结合量子密钥分配和一次性密钥的量子密码通信网络实现信息的安全传输,之后针对其缺乏机密性保护工业控制网络问题,提出了一种基于量子密码通信的Modbus/TCP协议加密传输的方案,保证了Modbus通信报文的无条件安全高效传输,而量子密钥分发防止了第三方窃听特性,从而防护了Modbus/TCP协议的安全问题。第四章主要针对Modbus/TCP协议的信息安全加密传输系统进行功能性上的验证。验证结果表明,Modbus/TCP协议信息安全加密传输系统不仅满足工业控制系统可用性和实时性的要求,而且实现了对工业控制系统的安全防护。