车联网的发展要求车内网安全可靠, 控制器局域网是车内网最常用的通信协议.为增强控制器局域网总线的安全, 提出一种适用于控制器局域网总线通信特点的广播认证算法, 并描述了认证系统的结构.该算法采用序列加密的方式在所有电子控制单元中建立起相同的消息认证码列表, 数据帧发送者只需要将相应的消息认证码序列插入数据域, 其他电子控制单元会在接收到数据帧后将其中的消息认证码序列与消息认证码表中的消息认证码序列进行比较.最后分析了算法的安全性能、漏检率、延时和总线开销.
The development of vehicular Ad hoc networks (VANETs) require a secure in-vehicle network. Controller area network (CAN) is a popular protocol applied in in-vehicle network. In order to enhance CAN bus security, abroadcast authentication algorithm, which establishesthe samemessage authentication code(MAC) list among all the electronic control unit (ECUs) with stream ciphers, was proposed. The senderjust needs to attach a MAC sequence to the data frame and the receiver compares the received MAC sequence with the corresponding one in the established list. This algorithm can be adapt to the characteristic ofthe CAN bus communication. The structure of the authentication system was described in detail. Finally, the security and delay performance was analyzed. The probability of miss and the bus overhead was provided.
车联网(VANETs,vehicular Ad hoc networks)是构建智能交通系统的关键,具有广泛的应用前景.车联网包括车内网和车外网,车内网的安全是车联网发展的基础.目前有多种车内联网协议,其中控制器局域网(CAN,controller area network)协议的应用最为广泛.笔者关注CAN总线的安全问题.
车联网的发展攻击者能够访问CAN总线,威胁汽车安全[1-3].已有的研究关注异常检测技术[4]和认证技术[5-8],但异常检测的方法不适应快速变化的车联网通信环境,已有的认证技术忽视了信道的广播特性,通信效率低.
笔者提出应用于CAN总线的广播认证算法,设计了认证系统的结构,最后分析了算法性能.笔者提出的认证方法的优势包括:适应CAN总线的广播特点,支持点对点、点对多点通信的认证,提高通信效率;适应车内实时通信要求,发送和接收数据帧延时短;消息认证码(MAC,message authentication code)序列是完全随机的,攻击者无法获得任何关于MAC的信息.
1 CAN协议1.1 主要特点CAN总线通信的特点总结如下[9].
1) 多主工作方式.所有电子控制单元(ECU,electronic control unit)连接到总线上,它们是独立的,能够直接向总线发送信息帧.
2) 广播信道.每个节点能够监测信道,依据标识符判断是否接收信息,实现点对点、点对多点和全播通信.
3) 非加密信道. CAN数据帧不包含源地址和目的地址,也没有加密和认证机制,无法保证信息帧的完整性.
4) 基于标识符的仲裁.如果多个ECU同时向总线发送信息,标识符小的帧有更高的优先级.
1.2 安全分析根据CAN总线的通信特点,笔者认为它易受几种不同的攻击,包括窃听、伪造、重放、拒绝服务.由于总线是广播信道且不加密,能够访问总线的攻击者可以窃听信息;由于没有地址信息或身份认证机制,攻击者很容易伪装为合法ECU,发送伪造的信息;攻击者可以在接收信息后进行重放攻击;基于标识符的仲裁方式使得攻击者可以通过持续发送高优先级的数据帧阻塞总线.研究难点如下.
第一,数据帧的长度很小,限制了MAC的长度. MAC的长度与漏检率有关,长度越长,漏检率越低,攻击者试错攻击成功的概率越小.然而,数据域最大长度是8个字节,在长度受限时,应确保攻击者无法获得关于MAC的任何信息.
第二,ECU有限的计算能力和存储资源以及车内通信的实时性,要求算法复杂度低[5].
2 认证算法2.1 攻击模型汽车电子系统的结构如图 1所示. ECU和车内网关连接在总线上,网关连接CAN子网和其他的通信网络,没有对外通信的接口,是可信的;部分ECU被攻击者控制;认证目标是所有正常的ECU能够认证CAN总线中传送的每个数据帧,避免被攻击者控制.
1) 汽车启动,开始对所有ECU的完整性认证,认证方法可参考相关研究[6].为通过认证的网关和ECU分配种子密钥.
2) 网关利用种子密钥加密LT bit随机序列,并广播发送到所有ECU,广播帧应有较高的优先级.正常的ECU解密序列,建立MAC表和同步计数器,计数器范围是[0, T-1].
3) ECU发送数据帧,将计数器值对应的MAC附到数据域.附到每个数据帧的MAC序列长为L bit,1次建立的MAC表能够满足T个数据帧的需求.网关和其他ECU比较接收帧中的MAC和MAC表.如果相同,判断帧正常.
4) 不论接收帧是否认证通过,所有正常ECU的计数器值增1,指向下一个MAC序列.如果新计数器值是T-1,这一帧传输结束后网关广播MAC表.重复步骤2)~4),直到汽车熄火.
3 系统结构MAC表在ECU之间同步更新是算法实现的关键.笔者设计了一个安全的认证系统,选择用序列密码加密,因为序列加密不需要批处理,对信息逐位加密,计算复杂度低于分组密码和非对称加密.
3.1 基本系统图 2描述了认证系统的发送端,图 3描述了认证系统的接收端.网关和所有正常的ECU共享2个预先分配的种子密钥k1、k2和伪随机序列生成器g1、g2.伪随机序列生成器可以通过线性反馈移位寄存器实现. k1是g1的初始状态,生成伪随机序列p1;k2是g2的初始状态,生成伪随机序列p2.网关广播随机序列r和伪随机序列p1异或生成R1.所有正常的ECU接收R1,进一步处理后得到MAC表.
这一同步方式容易受到攻击.假设g1有m1个寄存器,g2有m2个寄存器,那么p1和p2的周期分别是21m-1和22m-1.因此,与R1异或的接收端序列的周期是(21m-1)(22m-1),只有最初发送的(21m-1)(22m-1)/L帧可被认证.然后攻击者无须k1、k2就能建立起MAC表.假设R11、R12分别代表第1、2组长为(21m-1)(22m-1) bit的广播序列,R21和R22代表相应接收序列,则
(1) |
图 4描述了改进系统的接收端.在发送端没有变化,接收端r可调整g2的状态.具体规则为:如果r中正在加密的位与前一位相同,那么g2中的状态值增1,否则,g2的状态值不变.由于r是随机的,g2的状态变化也是随机的,避免了周期性问题.攻击者必须破解密钥k1、k2,才能威胁CAN总线安全.
算法的安全性取决于k1、k2的长度.不考虑相同长度的线性反馈移位寄存器(LFSR,linear feedback shift register)的种类,攻击者平均需要尝试2m1+m2-2次才能确定密钥.如果m1和m2足够长,在1个行驶周期内很难破解密钥.假设m1=40,m2=41,最大行驶周期为24 h,那么为破解密钥需要在1 μs内完成6.9×1012次尝试,不可能实现[8].因此,密钥是安全的.
4.2 漏检率攻击者可能会发动试错攻击,攻击成功的概率是1/2L.在不可靠的传输环境中,Pv和Pa分别代表正常ECU和攻击者访问总线发送数据帧的概率,P0表示1个攻击帧认证通过的概率,即漏检率,PM表示n个认证通过的连续帧的漏检率. 图 5描述了n和Pa对PM的影响.
假设没有传输错误,可得
(2) |
(3) |
而如果采用Hazem A等[8]提出的利用哈希链的方式建立MAC表,尾端恶化使得防御性能不如笔者提出的新算法.
4.3 开销和延时算法的开销和延时分析如下.
1) 数据帧发送和接收延时小.共享MAC表后,ECU在发送数据帧时,只需将相应的MAC序列插入数据域,没有延时;在接收数据帧时,只需将收到的MAC序列与MAC表作比较运算,延时可忽略不计.而根据Hazem A等[8]的实验,利用16 bit的密钥,在64 MHz的MPC5604B中用哈希函数生成一个MAC至少需要86 μs,相当于500 kbit/s的CAN总线中延时43位.
2) 存储空间可控. MAC表需要LT bit的存储空间,是算法的主要存储开销,通过调整L和T可控制存储资源需求.
3) 硬件复杂度低.所有的ECU只需配置2个LFSR,结构简单.
4) 总线负载周期性上升.总线每传输T个数据帧就要进行1次MAC广播,更新MAC表,使总线负载上升,但这种上升是短暂的、周期性的,只集中在MAC广播阶段,广播结束后不影响ECU通信的实时性. LB表示1次集中广播发送的广播帧的数目,可得
(4) |
假设CAN总线传输速率为500 kbit/s,标准数据帧的最大长度为134 bit[10],加上3 bit的帧间空间,1个广播帧占用总线的最大时间为
(5) |
用TC表示MAC表的广播占用总线时间,有
(6) |
图 6描述了MAC表1次广播占用的总线时间随T的变化规律.当L=8,T=300时,广播占用时间还不到11 ms,减少L和T的值会使总线占用时间更小,可将广播对总线通信的影响控制在允许范围内,需要在将来的汽车实验中测试;如果将广播时间平均到传输的每个数据帧上,当L=8时,每帧产生的延时仅为T0/(64/L)=33.5 μs.
分析了CAN协议的漏洞,提出了一个广播认证算法,提供了MAC表同步更新的方法和认证系统的结构.性能分析表明,算法适应CAN总线的广播特性,能保证CAN总线上数据帧的完整性,算法复杂度低.下一步有必要在特定汽车上进行算法测试,分析攻击实验下算法的性能.另外,要进一步研究减少广播时间和总线负载的方法,还可考虑采用分散广播的方式避免总线出现拥塞.
[1] | Koscher K, Czeskis A, Roesner F, et al. Experimental security analysis of a modern automobile[C]//IEEE Symposium. Security and Privacy (SP). Oakland: IEEE, 2010: 447-462. |
[2] | Ishtiaq R R M, Mustafaa H, Travis T S O, et al. Security and privacy vulnerabilities of in-car wireless networks: a tire pressure monitoring system case study[C]//19th USENIX Security Symposium. Washington DC: USENIX, 2010: 11-13. |
[3] | Checkoway S, Mccoy D, Kantor B, et al. Comprehensive experimental analyses of automotive attack surfaces[C]//20th USENIX Security Symposium. San Francisco: USENIX, 2011: 1-16. |
[4] | Kammerer R, Fromel B, Wasicek A. Enhancing security in CAN systems using a star coupling router[C]//7th IEEE International Symposium. Industrial Embedded Systems(SIES). Karlsruhe: IEEE, 2012: 237-246. |
[5] | Nilsson D K, Larson U E, Jonsson E. Efficient in-vehicle delayed data authentication based on compound message authentication codes[C]//Vehicular Technology Conference. VTC 2008-Fall. Calgary: IEEE, 2008: 1-5. |
[6] | Oguma H, Yoshioka A, Nishikawa M, et al. New attestation based security architecture for in-vehicle communication[C]//Global Telecommunications Conference. IEEE GLOBECOM 2008. New Orleans: IEEE, 2008: 1-6. |
[7] | Han K, Divya P S, Shin K G. On authentication in a connected vehicle: secure integration of mobile devices with vehicular networks[C]//2013 ACM/IEEE International Conference. Cyber-Physical Systems(ICCPS). Philadelphia: IEEE, 2013: 160-169. |
[8] | Hazem A, Fahmy H A H. LCAP-a lightweight CAN authentication protocol for securing in-vehicle networks[C]//10th Escar Embedded Security in Cars Conference. Berlin: Escar, 2012: 1-10. |
[9] | Robert B G. Version 2.0-1991. CAN specification[S]. Stuttgart: Bosch, 1991: 1-73. |
[10] | Lin C W, Sangiovanni-Vincentelli A. Cyber-security for the controller area network(CAN) communication protocol[C]//2012 International Conference. Cyber Security(CyberSecurity). Washington DC: IEEE, 2012: 1-7. |