安全通信与安全通信标准EN50159

摘要:EN50159是欧洲铁路通信信号领域信息传输系统中安全通信标准。本文对安全通信基本知识进行一般介绍,对最新版本EN50159:2010标准内容进行了简单解读,并结合自身实践,对安全通信协议软件开发相关经验要点进行了介绍。

 

Abstract: EN50159 is the standard for safety-relatedcommunication in transmission of railway communication, signaling andprocessing application. Basic knowledge and terms are introduced in thisarticle, EN50159:2010 is then illustrated. The points of development of safety communicationstack software is noted as well, which comes from the experiences of theauthor.

 

关键词:安全通信,EN50159,安全软件开发

 

1.     引言

众所周知,铁路通信信号设备和系统的安全性可靠性会对旅客的人身安全带来极其重大的影响,铁路通信信号设备产品的开发必须符合相关的安全标准和规范。安全通信是在传输系统中传输承载安全相关业务的信息,安全相关信息的通信必须遵循安全通信相关标准。本文拟结合作者在安全通信相关产品领域的研究和开发经验,给出作者对安全通信相关基本概念的理解,对最新版本安全通信标准EN50159:2010内容进行简单解读,并介绍作者对于安全通信协议软件开发相关经验总结。

2.     安全与安全通信

顾名思义,安全通信由安全和通信两个元素组成。

所谓通信(Communication),是指信息在实体之间的传输。通信的要素包括通信实体、消息、通信协议以及传输的介质或者通道。通信实体类型是很宽泛的,可以是人与人、设备与设备甚至进程与进程。在铁路通信信号领域,所关注的是设备之间或进程之间的消息传递。

对于安全,则应辨识Safety与Security的区别。相关国际标准中引入的对于安全(Safety)的概念是指使一种状态,在这种状态下人不会受到不可接受的伤害。而安全(Security)同样是指一种状态,在此状态下人或事物不会受到故意且恶意造成的伤害或损失。可以看出,安全(Security)在主观上带有更严格的限制条件,强调了伤害的故意性和恶意性,而客观上又扩大了伤害的受众,可以是财产的损失。而安全(Safety)则仅强调对于人的伤害,而且该伤害还必须达到一定的程度。在铁路通信信号安全通信领域所关注的安全是指Safety,即考虑通信过程中所引入的风险是否会对人员造成伤害。

3.     安全通信标准EN50159:2010

安全通信标准EN50159属于欧洲铁路信号安全标准系列之一,与RAMS标准EN50126,安全硬件EN50129互相关联。IEC国际标准IEC62280和国/铁标GB/T24339均源于EN50159。三者互为等价标准,三者所记述的条款内容也完全一致。

EN50159标准到目前为止已经发展了多个版本,曾经广泛被引用的版本为2001版,包括现行的GB/T24339标准也是源于该版本。EN50159:2001版本被分为两个部分,其中,EN50159-1约束了封闭传输系统的安全要求,EN50159-2约束了开放传输系统的安全要求。2010年9月,CELENEC发布了新版的EN50159:2010,该版本标准把2001版的两个部分合二为一,对相关内容进行了合并,并进行了适当的修订。下文将基于EN50159:2010版本对该标准进行解读。

首先,标准规定了其自身所约束的范围和制定的目的。EN50159只关注了在安全相关系统中借助于非安全设计的通信系统的安全信息传输过程中所涉及的安全问题。它归纳了与通信相关的安全需求,用于指导为功能安全和技术安全分析提出证据。标准中也列出了一些排除条款。EN50159在信息安全(IT Security)方面只关注借助消息方式对于安全应用的攻击,不考虑消息私密性、网络负载攻击等一般性的信息安全问题。对于安全相关设备的设计,安全通信的安全管理证据和质量管理要求,EN50159不做规范,应当参照EN50129。

接下来,标准列举了在通信系统中常见的可能存在的安全危害,其涉及的方面包括来自传输系统的失效,来自传输过程中的环境骚扰,以及自然灾害等等,并将多种危害可能产生的后果归纳为7种消息错误威胁:重复、删除、插入、重排序、损坏、延迟和伪装。

因不同的传输系统由于具有不同的特征,所面临的安全威胁也有不同,因此,标准将各种不同的传输系统分类为三种类型。划分传输系统类型所依据的准则共有三条,分别为:

准则1:要求接入通信系统的所有设备和传输系统本身全部已知且固定

准则2:传输系统特征(如传输介质、最坏情况下的环境等)在全生命周期已知且固定

准则3:非授权接入的风险足够低,且可接受。

依据以上三条准则,传输系统可以分为三类:

第1类传输系统(封闭):满足准则1、准则2和准则3。具体实例包括近距离的通信传输系统(如应答器A接口)、专用内部总线(如满足准则1及准则2的MVB、CAN和Profibus等)以及满足准则1与准则2的设备内部的工业以太网;

第2类传输系统(开放):不满足准则1和准则2,但满足准则3。具体实例包括不满足准则1和准则2的专用内部总线(如不满足准则1及准则2的MVB、CAN和Profibus等)、不满足准则1与准则2的设备内部的工业以太网、内部专用广域网(如铁路信号专网)、偶尔且不定时使用的公用电话交换网和带严格访问限制的无线传输网络(如漏缆、波导管等);

第3类传输系统(开放):3条准则全部不满足。具体实例包括电路/分组交换数据网(如GSM-R、GPRS、LTE-R等)、近距离广播网络(如wifi等)以及无接入限制的其他网络。

其中,第1类传输系统被归类为封闭传输系统。第2类和第3类传输系统被归类为开放传输系统。

通过划分系统类别,可以有效的指导安全通信开发人员识别通信风险,并针对可能存在的风险选取相应的防护手段。

标准在接下来的章节中,推荐了一系列的防御方法,用于对抗安全通信中存在的7种威胁。下表所示为常见的威胁-防御矩阵:

表1 常见防御方法的威胁-防御矩阵

威胁

防御

序列号

时间戳

超时防护

源和目的标志

消息反馈

认证流程

安全码

密码术

重复

X

X

 

 

 

 

 

 

删除

X

 

 

 

 

 

 

 

插入

X

 

 

X

X

X

 

 

重排序

X

X

 

 

 

 

 

 

损坏

 

 

 

 

 

 

X

X

超时

 

X

X

 

 

 

 

 

伪装

 

 

 

 

X

X

 

X

针对每一种防御方法,标志给出了具体的应用条件和应用方法

标准在下图中描述了危害、威胁和防御的关系


图1 危害、威胁与防御的关系

如图所示,对于安全通信系统的风险分析可以分为3个层次,外部环境层、网络层和用户层。

对于外部环境层,描述了由于各种环境现象和故障引入的危害事件。在这个层面上,系统分析者需要列举安全通信系统在运行时可能发生的各种可能导致风险的危害。

在网络层上,用户需要将所有外部危害事件逐一对应到7种消息错误威胁上。有些危害事件经过分析可能不会导致消息错误,于是,该危害事件经过网络层分析后,可以不再被考虑。对于第1类和第2类网络,由于不存在非授权接入的可能性,于是伪装威胁可以不再被考虑。在经过该层的威胁分析后,需要在消息逻辑结构上采用特殊的设计,已实现针对该威胁的防御。

在用户层,需要再次识别经过消息逻辑结构防御后,仍然残存的威胁,并将该威胁输出为总体的残留危害,并通过系统和用户应用的方法来对该残留危害进行防御。

以上方法是安全通信安全分析的一般性流程和方法,针对不同的具体应用,还应当进一步进行具体的考虑和分析,例如,针对不同程度的消息损坏威胁,所采用的安全码长度应当采用标准附录C中给出的指导方法进行分析计算。

4.     安全通信软件及开发经验

目前,铁路上常用的安全通信协议包括C3车地安全通信协议(UNISIGSubset-037)、C3地面安全通信协议(UNISIG Subset-098,即RSSP-II)、Profibus总线安全通信协议(UNISIG Subset-056/057)和封闭网络安全通信协议(RSSP-I)等等。针对具体应用系统中应选择使用何种安全通信协议,应结合具体的系统应用环境,并参考该安全协议给出的威胁防御矩阵进行。

针对安全通信协议栈软件的开发,在开展需求分析时,除去要实现现有协议所规定的预设功能外,还要实现软件的通用性,保证协议栈在不同的硬件平台上的可移植性和可复用能力。同时软件在设计过程中,还应考虑到开发、调试以及测试的便利性,并最大可能性的保证软件的可用性。软件的开发过程应采用EN50128所要求的安全软件开发方法和流程,在软件开发的整个过程中识别风险、防御风险、跟踪风险,并考虑到软件在使用和维护中的风险管理,要“在软件的全生命周期中与风险做斗争”。

5.     结论

本文围绕安全通信原理和安全通信标准EN50159进行了概括性的介绍。并结合实践,对安全通信协议软件开发相关经验进行了总结。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为AI语言模型,我没有能力编写具体的程序。但是我可以给您提供一些基础知识和参考资料,希望对您有所帮助。 STC32G是一款单片机芯片,支持多种通信协议,包括UART、SPI、I2C、RS485等。RS485是一种全双工通信协议,可实现多点通信和长距离传输。 下面是一个简单的STC32G与RS485通信的程序框架,供您参考: ``` #include <reg52.h> //头文件 #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit RS485_EN = P1^0; //RS485使能引脚 void Delay5us() //延时函数 { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } void SendData(uchar *buf, uchar len) //发送数据函数 { RS485_EN = 1; //使能RS485发送模式 for (uchar i = 0; i < len; i++) { SBUF = buf[i]; //发送数据 while (!TI); //等待发送完成 TI = 0; //清除发送完成标志位 Delay5us(); //延时 } RS485_EN = 0; //关闭RS485发送模式 } void ReceiveData(uchar *buf, uchar len) //接收数据函数 { uchar i = 0; while (i < len) { if (RI) //接收到数据 { buf[i] = SBUF; //保存数据 RI = 0; //清除接收标志位 i++; //累加接收计数器 } } } void main() { uchar buf[10] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A}; //要发送的数据 uchar recv_buf[10] = {0}; //接收缓存区 EA = 1; //开启总中断 ES = 1; //开启串口中断 TMOD = 0x20; //定时器1工作在方式2 TH1 = 0xFD; //设置波特率为9600 TL1 = 0xFD; TR1 = 1; //启动定时器1 while (1) { SendData(buf, 10); //发送数据 ReceiveData(recv_buf, 10); //接收数据 } } void Serial_ISR() interrupt 4 using 1 //串口中断服务函数 { if (TI) //发送中断 { TI = 0; } if (RI) //接收中断 { RI = 0; } } ``` 需要注意的是,以上代码仅为框架,具体实现还需要根据具体需求进行修改。同时,还需要根据实际情况选择合适的通信协议、波特率等参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值