安全通信协议的设计与实现
摘要:本文研究的主要内容是构建基于三模冗余仿真系统的安全通信接口,通过冗余技术和安全通信协议的融合,实现对RSSP-II安全通信协议的仿真,对RSSP-II协议的通信过程以及系统故障进行观察,对研究安全系统和安全通信有重要意义。为实现安全通信接口,本文首先分析了安全通信协议和冗余技术。然后介绍了安全通信协议使用的工作原理及关键技术,安全通信协议的安全防护流程,以及安全通信协议使用的相关算法等。接着以RSSP-II安全通信协议为基础,结合三模冗余技术,设计了安全通信接口的架构和各模块的功能。然后以VC++6.0为开发平台,实现了安全通信接口。实验结果表明,本文设计的安全通信接口实现了RSSP-II安全通信协议,并在冗余系统故障的情况下依然能够正常工作。
关键词:RSSP-II;安全通信;三模冗余
中图分类号:TN911 文献标识码:A 文章编号:1671-864X(2016)07-0278-02
一、安全通信协议的相关技术
(一)信息安全。
信息是一种资源,它的增值性、普遍性、多效用性、共享性和可处理性,使其对于我们有非常重要的意义。信息传输的方式有许多,比如分布式数据库、互联网和局域计算机网,比如电子邮件、卫星电视会议、分组交换式无线、蜂窝式无线及其它传输技术。信息在处理、交换以及存储的过程中,都存在着泄密或被截收、被窃听、被窜改和被伪造的可能性。所以,简单的保密措施已经很难保证通信的安全,必须各种保密措施综合使用,即通过各种手段,实现信源、信号、信息三个重点环节的保护,以此达到信息安全的目的。
(二)RSSP-II协议。
RSSP-II协议是欧洲列车控制系统采用的用于地面设备之间进行通信的安全通信协议,适用于封闭式传输系统和开放式传输系统。
不同于无线通信接口协议SUBSET-037基于电路交换,RSSP-II设计之初是为了有线通信,因此基于分组交换的TCP/IP协议。由于ERTMS/ETCS标准的标准化和统一化,RSSP-II借用了SUBSET-037中的欧洲无线安全层,又增加了一个SAI(Safe Application Intermediate sub-layer)安全子层。安全应用中间(SAI)层是对欧洲无线通讯安全层的补充。当然,RSSP-II也可以用于无线通信的开放式传输系统。
(三)冗余技术。
容错技术是提高系统可靠性的一种重要手段。容错系统就是指在硬件发生故障或软件存在错误的这种情况下仍然能够继续正确完成指定工作的系统。它利用“冗余”的思想“容忍”系统中的故障,屏蔽故障影响,从而达到提高系统可靠性的目的。
从冗余的形式上可以把冗余系统分为硬件冗余、软件冗余、时间冗余和信息冗余。硬件冗余的方法从资源数量上看,又可以分为双模冗余、三模冗余甚至N模冗余。现代系统中常用的冗余手段往往不是单一的一种,而是变形或多种形式的组合。
二、安全通信接口的设计
(一)系统概述。
本安全通信接口是一个安全系统,在三模冗余架构的基础上设计实现RSSP-II安全通信协议。本系统的目标是将提高安全性的冗余技术和保证信息安全的安全通信技术结合在一起,因此,采用最基础的三取二结构,完成最简的RSSP-II接口。为对本系统进行实验,在RSSP-II安全通信接口之上,设计了简单的应用程序,以触发通信的建立和断开。
(二)架构设计。
按照协议栈层次从上往下,逐层将上层的数据封装起来。应用层包作为在SAI安全子层的用户数据,增加了一个SAI包头。SAI包在欧洲无线安全层,增加了一个欧洲无线包头和MAC后缀;欧洲无线安全层包在适配层增加了一个适配层包头,最后在通信层面,封装成TCP/IP包,在两个通信设备之间进行传递。
将设计划分为三个层次,分别是冗余层、表决层和通道层。三模冗余在冗余层实现,完成三个模块相同的逻辑功能。表决器在表决层实现,完成对三个模块输出结果的表决。安全通信协议的通信功能在通道层实现,完成基础的TCP/IP通信。
(三)通道层设计。
ALE(Adaptation & redundancy management Layer Entity,适配和冗余管理层实体)层作为适配和冗余管理层,以下简单称为适配层,主要功能是维护多个冗余的TCP/IP逻辑连接,并完成TCP层和欧洲无线安全层之间的适配。
系统接收外部设备的输入数据时,适配层从多个TCP/IP连接中选取一份有效的数据上传至表决器;系统向外部设备发送输出数据时,适配层从多个TCP/IP连接传送一份相同的数据。下图描述了适配层与多个TCP/IP传输通道的关系。在适配层之上,通信双方间的连接都是唯一的;在适配层之下,建立了多个TCP/IP逻辑连接,实现了通信通道上的冗余。只要多个TCP/IP逻辑连接的其中一个能够正常通信,双方的通信就能保持,据此来提高通信通道的可用性。
(四)冗余层设计。
冗余层有三个完全相同的TMR部分。每个TMR部分根据RSSP-II协议栈的分层,安全功能模块再细分为SAI安全子层和欧洲无线安全层。
(五)表决层设计。
表决器每周期首先向三个TMR部分发送自己的周期计数。若收到适配层的输入消息,不做任何处理,分别发送给三个TMR部分。
收到TMR部分的输出时对其进行三取二多数表决。当三个TMR部分都运行时,表决器检查三个TMR部分的计算结果是否有两个以上是一致的,并将其输出给适配层;若只有两个TMR部分在运行,表决器检查这两个TMR部分的计算结果是否一致,并将其输出给适配层;若只有一个TMR部分在运行,表决器不向适配层输出任何信息。
三、安全通信接口的实现
本文使用VC++6.0在Windows平台实现三模冗余仿真系统下的安全通信接口。整个仿真系统由TMR、表决器和ALE三个程序组成,在一个统一的仿真系统人机界面下被调用。
(一)配置参数。
仿真系统初始化时,各个程序分别读取ini配置文件中的配置参数。
TMR相关的配置参数,三个TMR部分分别配置:
是否启动标识:本TMR部分是否启动。取值为是或者否,默认取值为是。
周期计数参数:本TMR部分的周期计数与表决器的周期计数之间的差值。取值为正值,默认取值为0。
RSSP-II相关的配置参数,每个外部设备分别配置:
IP地址和端口号:与某个外部设备通信时,源和目的IP地址以及端口号。源和目的分别有两组IP配置参数。
ETCS_ID:与某个外部设备通信时,自身和对方的ETCS_ID。
发起方/响应方:与某个外部设备通信时,自身作为发起方还是响应方。
KMAC:与某个外部设备通信时的KMAC密钥。
(二)流程图。
TMR、表决器和ALE三个程序之间通过套接字进行通信。TMR与表决器之间的通信,表决器作为服务器端,TMR作为客户端。表决器与ALE之间的通信,表决器作为服务器端,ALE作为客户端。
1.TMR。
TMR程序启动后,创建三个线程,每个线程分别独立完成一个TMR部分的功能。TMR线程首先创建与表决器之间通信的套接字。若本TMR部分配置为启动,TMR线程继续执行循环功能,否则运行空循环。在周期循环中,TMR部分接收从表决器来的信息,包括表决器的周期计数值和来自适配层的消息。然后依次调用应用层、SAI安全子层、欧洲无线安全层的处理函数,最后将本周期的计算结果即欧洲无线安全层消息发送给表决器进行表决。
2.表决器。
启动表决器程序后,首先创建与三个TMR线程通信的套接字,然后创建与ALE程序通信的套接字,接下来执行周期循环功能,每周期自身的周期计数加一。每周期接收从适配层来的消息,然后向三个TMR线程发送。不论本周期是否有适配层消息,都向TMR线程发送自身的周期计数。然后接收从三个TMR线程来的计算结果,根据TMR的实际个数执行表决逻辑,当三个TMR部分都运行时,表决器检查三个TMR部分的计算结果是否有两个以上是一致的,并将其输出给适配层;若只有两个TMR部分在运行,表决器检查这两个TMR部分的计算结果是否一致,并将其输出给适配层;若只有一个TMR部分在运行,表决器不向适配层输出任何信息。
3.ALE。
启动ALE程序后,首先创建与表决器通信的套接字,然后进行周期循环功能。管理所有配置的外部设备的适配层连接,接收外部设备的TCP消息,接收从表决器来的欧洲无线安全层的计算结果,执行适配层的处理,然后向外部设备发送TCP消息,并向表决器发送经过适配层处理后的信息。
四、测试方法与实验结果
(一)实验目的与环境。
对三模冗余仿真系统安全通信接口的测试包括三大部分,其一是测试单通道环境下安全通信协议通信建立的过程是否正确;其二是测试信息在多个通道上传递的情况;其三是测试TMR发生故障的时候,设备之间能否正常建立通信。
整个环境包括两套PC机和一台交换机。每台PC机配备有一个独立的有线网卡,通过交换机连接到一起。PC机上运行仿真的冗余系统,PC机的操作系统为Windows,其上安装VC++6.0和以太网抓包工具。
PC1作为设备1,PC2作为设备2。设备1和设备2的RSSP-II配置参数如下:
(二)测试过程。
1.单通道正常通信。
设备1和设备2均只配置1个有效的IP地址,组一个通信IP地址组,两个设备通过这1组IP地址建立一个TCP连接进行通信。对于设备1,配置3个TMR的周期计数均为表决器计数+0。对于设备2,配置TMR3的周期计数为表决器计数+1,其他两个TMR的周期计数为表决器计数+0。设备1是一个正常的三模冗余系统,而设备2由于其中1个TMR部分故障是一个双机比较系统。
在以上配置下,设备1和设备2在一条TCP通道上建立安全连接进行通信,可以在该TCP通道上获取安全连接建立的全部TCP消息。
(1)建立1个TCP连接。
TCP连接的建立是一个三次握手的过程。作为发起方的设备1启动TCP连接的建立,从下图可以清楚的看到设备1向设备2发送TCP连接请求SYN报文,而设备2向设备1回复ACK报文,最后设备1再向设备2发送ACK报文。至此,设备1和设备2之间的TCP连接正式建立。
(2)建立安全连接。
安全连接的建立包括9个TCP报文。首先是欧洲无线安全层建立连接的4个交互消息,然后是SAI安全子层建立连接的5个交互消息。
(3)时钟偏差更新消息。
安全连接建立成功后,每两分钟,设备1/设备2分别向对方发送空的应用消息,收到空应用消息的一方回复空的应用消息,发送方收到应答消息后,重新计算设备之间的时钟偏差。
2.多通道。
设备1和设备2均配置2个有效的IP地址,组成两个通信IP地址组,两个设备通过这两组IP地址创建两个TCP连接进行通信。对于设备1,配置3个TMR的周期计数均为表决器计数+0。对于设备2,配置3个TMR的周期计数均为表决器计数+0。设备1和设备2都是完整的三模冗余系统。
在以上配置下,设备1和设备2在两条TCP通道下建立安全连接进行通信,可以在两个TCP连接上看到设备间的消息。
3.TMR故障。
设备1和设备2均只配置1个有效的IP地址,组一个通信IP地址组,两个设备通过这1组IP地址建立一个TCP连接进行通信。对于设备1,配置3个TMR的周期计数均为表决器计数+0。对于设备2,配置TMR1的周期计数=表决器计数+0;TMR2的周期计数=表决器计数+1;TMR3的周期计数=表决器计数+2。设备2的三个TMR部分的SAI安全子层数据包中时间戳信息不一致,表决失败,无法输出SAI安全子层的消息。
在以上配置下,设备1和设备2可以成功建立无线安全层的连接,但是无法建立SAI安全子层的连接。设备1发出OffsetStart后,无法接收到OffsetAnsw1。超时后,设备1重新建立安全连接。
五、成果及结论
在本文中,作者对安全通信协议从协议功能,报文类型及其应用,层次结构,通信过程,协议状态机等角度对协议进行了分析和论证,并结合三模冗余系统的特点进行设计。最后对设计进行了实现,并依据实现做了相应的实验以证明实现的正确性。不足的是,部分RSSP-II安全通信协议中的参数并没有进行配置,而是采用了默认取值,期望进一步研究参数值的意义,并在实验中证明取值的合理性。另外,RSSP-II安全通信协议中对欧洲无线安全层的密钥采用了三级管理,本文使用了明文的密钥,后期希望对密钥管理继续进行分析,进一步保证通信的安全。
上一篇:无论多大场合全能拍照下来
下一篇:基于树莓派的温室大棚监控系统设计