当前位置:首页 期刊杂志

CAN总线中的一种安全协议

时间:2024-05-04

李超赢 李秦伟

摘要:针对现有CAN总线中存在的安全问题,给出了一种解决方案。即在原有CAN总线中新嵌入一层,包括认证部分和加密部分,为总线中的消息提供私密性和完整性保护。给出认证协议后,用BAN逻辑对协议进行了形式化分析,分析结果证明协议是正确可行的;然后加密部分采用了一次一密的加密方法和对称加密算法;最后讨论了此方案的性能与展望。

关键词:CAN总线;认证协议;BAN逻辑;密钥序列;负载率

中图分类号:TP309.2

文献标识码:A

1 引言

随着信息技术和网络技术的迅猛发展,国家安全边界已经超越地理空间限制,延伸到了信息网络。一直以来被认为相对安全的工业控制系统已经成为黑客攻击的目标,而且工业控制系统安全漏洞及攻击方式已经成为“黑市”热销商品,甚至被作为“特殊武器”列入“瓦森纳协定”的控制清单[1]。

控制器局域网(Controller Area Network,CAN)是由德国Bosch公司为汽车应用而开发的多主机局部网络。德国Bosch公司开发CAN总线的最初目的是解决汽车上数量众多的电子设备之间的通信问题,减少电子设备之间繁杂的信号线,于是设计了一个单一的网络总线,使所有的外围期间可以挂在该总线上。现在CAN总线主要被应用与工业控制网络。

CAN总线采用的是一种基于报文而不是基于节点地址的通信方式,这就允许不同的信息以“广播”的形式发送到所有节点。CAN总线上报文所包含的内容只有优先级标志区和预传递的数据内容。所有节点都会接收到在总线上传送的报文,至于该报文是否要做进一步的处理或被丢弃将完全取决于接收节点本身。CAN只具有ISO国际标准组织定义的七层结构中的三层——物理层、数据链路层和应用层,并且整个系统的数据传送都是公开透明的,数据很容易受到窃取甚至破会其完整些,对整个系统造成不可预知的后果[2][3]。

2 CANSec协议设计

由于总线结构单一,如果需要攻击总线,只需在总线上接入一个新的节点,就能接受到总线上的所有报文,并且这些数据未经过任何加密等保护措施,如图1所示。所以为了解决上述问题,本文给出一种解决方案。就是在数据链路层之上加入CANSec层,对数据的保密性与完整性进行保护,防止整个系统受到攻击。

CAN总线早已经形成了国际标准。因此,要想解决上面的问题,实现加密与认证,修改原有的CAN协议是特别困难甚至不可能的。所以就选择在原有的CAN的基础上新嵌入一层(包括CANSec协议与加密解密系统),原有的结构不变,简要结构如图2所示。

一个CAN总线系统中有许多个节点,图2中以两个节点与一个入外来节点为代表来说明系统结构。其中节点和总线不做任何更改,CANSec协议主要负责:协商握手、初始化、故障诊断和工作模式;加密系统负责加密重装从节点发出的报文,解密还原从总线上接受到的密文。

CANSec协议中的初始化是防止攻击最重要的部分,在总线工作之前,首先要对个节点进行认证,以防外来节点攻击,也就是要设计认证协议;其次,加密系统将采用对称分组密码的输出反馈模式,并且采用输出反馈模式(OFB),密钥序列的产生需要一个IV和一个DES加密的,所以总线工作之前还需要对这两项初始化或者重新分配[4]。

CANSec协议的参与者为各个节点,各节点是同等的关系,没有主从关系,也没有为之服务的认证服务器。所以就要在所有节点中选出一个节点作为主节点,然后由这个主节点对其他节点逐个进行认证。协商握手和初始化的过程即CANSec认证协议。

2.1 主节点的選举

主节点必须是具有以下特点的节点:

拥有其他所有节点的标识ID及与之对应的共享密钥Kmj,i;

节点物理位置安全,与上位机连接,或者就是上位机;

该节点由施工方设定好,具有主动发起认证协议的权限。

其中ID是各个节点的唯一标识(但不是地址),Kmj,i是候选主节点与其他节点对应的会话共享密钥,也叫做主密钥,Kmj,i表示第j个候选主节点与第i个从节点的共享密钥。初始状态都是由施工方设定。其中ID的不同也是区分候选主节点与从节点的标识。

这样的主节点可以设定多个,就算有一个出错不能正常工作,候选主节点自动形成新的主节点,也不会影响整个系统的正常运行,本文讨论的都以3个候选主节点为例。

主节点和从节点所存ID和对应的共享密钥的情况可以用表1和表2表示。在表1中,Gm2和Gm3是另外两个候选主节点,

2.2 CANSec认证协议

经过选举,假设Gm1成为了主节点,那么协议的参与者就是1个主节点Gm1和n个从节点,称此认证协议为CANSec认证协议。

下面以一个具体的单个节点的认证为例子,对认证协议进行描述,其中Gm1为主节点,Gi为从节点,Kmj,i,,是Gm1和G1的共享密钥,该共享密钥的初始值由施工方完成,以后如果需要更改也可以由主节点完成。对节点G1的认证及密钥建立过程如图3所示。

3 分析CANSec认证协议

BAN逻辑是认证协议的形式化分析中最具影响的有效的一种工具,对CANsec认证协议的形式化分析也采用BAN逻辑[7]。

3.1 预期目的

4 报文设计与加密

4.1 原CAN协议报文格式

CAN总线上的信息是以报文的形式传递的。并且定义了四种帧报文,分别为数据帧、远程帧、出错帧和超载帧,其中数据帧用来传递信息,远程帧则用于某个节点请求其他节点发送信息。后两种用于错误处理。以数据帧为例,一个标准数据帧如表3所示,一共有11个字节,前3个字节为帧描述部分,后8个字节为数据部分,如表3所示[9][10]。

其中前三个字节已经用于帧描述(比如ID,数据长度等),每一位都不能少,因此要实现CANsec协议,一种解决方案就是在数据段中的8个字节中取用第一个字节用来表示CANsec协议的中各事项。比如初始化、协商握手、工作模式、故障诊断和数据帧等。在这里有一个问题就是,有些数据帧本来就要8个字节的数据,由于实现CANsec协议占用了一个字节,因此8个字节的数据帧就需要用两帧来表示,可以称另外一帧为续帧。

4.2 CANSec协议中的报文设计

将报文的第四个字节用作CANSec协议各事项的标识,就可以按表4来确定各事项,可以称这8位为CSC段。

4.3 加密算法

通过前面的认证协议初始化后,所有节点的密钥序列生成器状态都是一样的,加密算法选择对称加密算法。密钥上采用一次一密,因为一个数据帧中最多只有8个字节需要加密,采用单钥加密很不安全[11]。

密钥序列的产生采用输出反馈模式(OFB),IV和DES加密的由前面的认证协议完成,每次输出的密钥长度为64位,与数据帧中需加密的64位进行异或,得到64位的密文;其他节点接收到64位的密文后,通过对称密钥解密得到64位明文,而其中的加密解密变换均采用异或[12]。其中最重要的就是密钥序列的生成,而且所有节点的当前密钥必须是同步的,只要有一个节点的密钥出错,就得发送报错帧,请求重新初始化。

5 兼容性与性能分析

5.1 兼容性分析

原CAN协议的通信图如图4所示:

在CAN協议中加入了CANSec层后的通信图如图5所示:

原CAN协议在加入CANSec层后,应用层之间的收发消息没有变化,所以不会对应用层产生影响;数据链路层处理的只是帧头前,而CANSec加密的只是后面的数据段,所以对数据链路层来说也没有影响。以上分析说明该方案具有良好的兼容性。

物理层上传送的数据流已经加密,保证了数据的私密性,而外来设备由于没认证,也不能伪造出有效的消息,保证了数据的不可伪造性。

5.2 性能分析

网络负载率是Is内网络总线传输数据所占带宽的百分率,根据以往的工程经验,CAN总线负载率超过30%就会造成报文延时的概率增大。但是根据近几年的研究,CAN总线的负载率不再局限于30%。2012年,菲亚特利用时间分析软件Symtavi-sion使CAN总线负载率达到70%,并且总线仍然能正常工作[13]。本方案对CAN总线负载率会有所提高,以我校研制的混合动力车油气混合控制装置中的通信为例,具体分析本方案对负载率的影响。

混合动力汽车中CAN负载率约为9%~13%之间。本方案导致CAN总线负载率的提高主要来自于一些8字节数据的帧要改为两帧。混合动力汽车系统中包含三种8字节数据:日期(年月日)、累计油耗、与累计气耗;一种24字节数据:ECU信息;15种低于8字节的数据。各种数据同等概率的情况下,平均每21 (3+24/8+15)帧经过CANSec层后变为25帧,负载率将会提升到原负载率的25/21倍,约提高19%[14]。因此,对于混合动力汽车来说,加入本方案后负载率约为10.7%—15.5%,仍然远低于30%,CAN通信仍然能够正常工作。对于其他系统中的CAN总线来说,同样也不影响其正常工作,况且现在很多CAN总线负载率已经不再局限于30%。

6 总结与展望

CAN总线从最初的汽车应用,到现在的工业控制,都扮演者重要的角色。在所有的现场总线中,它具有己开发性,低成本性,网络节点之间的数据通信实时性强,并且已经形成了国际标准,在很多地方还是可以得到应用的。但是,在这个信息化时代CAN总线的安全性很有必要提高。本文针对CAN总线存在的安全问题,提出了一套解决方案,通过认证协议,对每个节点认证和初始化,保证了信息的的完整性;通过对数据进行加密,保证了信息的保密性,并且具有良好的兼容性。这套方案很容易在CAN总线中实现,并且还可以在其它现场总线中采用同样的技术手段。

参考文献

[1]佚名.2016工控安全态势报告发布[J].自动化应用,2017, (1):2-5.

[2]鲍官军,计时鸣,张利,等.CAN总线技术、系统实现及发展趋势[J].浙江工业大学学报,2003,31(1):58-61.

[3]韩成浩,高晓红.CAN总线技术及萁应用[J].制造业自动化,2010,32(2):146-149.

[4]宫大力,流密码算法的研究与设计[D].南京航空航天大学,2011.

[5]刘跃军,王红旗,杨强.Andrew Secure RPC协议的一种组合分析方法[J].四川理工学院学报:自然科学版,2008,21 (4):43-46.

[6]王剑,张子键,袁坚.应用于CAN总线的广播认证系统[J].北京邮电大学学报,2015,38(4):24-27.

[7] 白汉利,蔡红柳,郑广.基于形式方法的Andrew RPC认证协议的分析与改进[J].计算机工程与设计,2005,26 (7):1886- 1888.

[8]卿斯汉.安全协议[M].北京:清华大学出版社,2005.

[9]李童华,陈立定.基于CAN总线的能源管理系统通信研究[C]//中国自动化学会,2012.

[10]龙志强.CAN总线技术与应用系统设计[M].北京:机械工业出版社,2013.

[11] WANC T J,YAO GANC L I,LIU X D.Intelligent Waste WaterTreatment System Base on CAN Bus Technology [J].Environ-mental Technology, 2004, (3): 32-33.

[12] JUKL M,CUPERA J,Using of tiny encryption algorithm inCAN-Bus communication [J].Res.Agr.Eng.,2016, (2):50-55

[13]佚名.菲亚特利用时间分析软件Symtavision使CAN总线负载率达到70% [EB/OL].http://www.21ic.e om/app/auto/201203/108515.htm,2012-03-05.

[14]韩江洪,刘征宇,崔世辉,等.混合动力汽车CAN网络通信协议的应用研究[J],汽车工程,2011,33 (12):1062-1066.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!