论文部分内容阅读
CAN总线是汽车中应用最广泛的内部控制网络。长久以来,车载CAN总线通信网络一直被视为是一个相对安全的封闭网络系统。但是,随着网联汽车和自动驾驶技术的发展,汽车内部控制网络的封闭性逐渐被打破,其安全问题也越来越多的被暴露出来。已经有大量的研究表明,现代汽车上数目庞大的微控制单元很容易被攻击者利用。要解决这些安全问题,一方面要提高汽车内部元件与外部网络通信时的安全性,更重要的是设法保证汽车内部控制网络通信的安全。本文通过分析CAN总线通信协议的原理和现有针对车载CAN总线的攻击方法,明确车载CAN总线主要的安全漏洞,然后在此基础上设计一套消息认证系统。车载CAN总线消息认证系统使用两条报文进行消息认证,来保证车载CAN总线上关键元件执行的消息来自于真正的发送者。整套系统在保证能抵抗现有常见的攻击方式的同时,尽量降低总线的负载和系统延时。硬件实现的HMAC计算模块是本系统中降低系统延时的关键。本设计中使用SHA-3算法作为HMAC计算模块的内嵌哈希函数,实现了输出64 bit、224 bit、256 bit、384 bit和512 bit等五种长度的消息认证码,并且有计算哈希值和消息认证码两种功能。其中,输出64 bit的消息认证码能满足CAN总线通信协议的要求,可以被应用于车载CAN总线消息认证系统中。在此基础上,为了降低计算时钟周期,提高整个模块的吞吐量,使用两个SHA-3计算单元协同工作的方法来进行优化设计。优化后,HMAC计算模块在计算输出长度为224 bit的消息认证码时最短只需52个时钟周期,吞吐量达到2.3Gbps。最后,设计实现了车载CAN总线消息认证系统中的主要软件功能和HMAC计算模块与MCU之间进行信息交互的模块。在实现两个节点之间进行CAN总线通信的基础上,实现了两条报文的比对、发送者标识符监控和消息认证超时报警等功能。信息交互模块实现了HMAC计算模块与MCU的协同工作,包括将消息、随机数和标识符发送给HMAC计算模块以及MCU进行消息认证码的接收。整个系统实现一次消息认证使用的计算和数据传输时间为0.14ms,系统延时仅增加40%。