APP下载

电动汽车信息安全网关的设计与实现

2017-04-14李逸瀚秦琳琳

计算机应用与软件 2017年3期
关键词:以太网网关数据包

唐 良 李逸瀚 石 春 秦琳琳 吴 刚

(中国科学技术大学信息科学技术学院自动化系 安徽 合肥 230026)

电动汽车信息安全网关的设计与实现

唐 良 李逸瀚 石 春 秦琳琳 吴 刚

(中国科学技术大学信息科学技术学院自动化系 安徽 合肥 230026)

车联网的应用和发展是汽车技术发展的趋势。车联网在提高车辆性能以及提供高效便利服务的同时也给汽车带来了信息安全隐患。针对车联网对汽车的信息安全带来的问题,分析车联网信息安全研究现状,设计电动汽车信息安全网关ISG(Information Security Gateway),实现了电动汽车的控制器局域网CAN(Controller Area Network)与以太网的互连。在IP层上移植了IPSec(Internet Protocol Security)协议,对进出CAN总线的数据信息进行协议转换、加/解密处理、完整性校验,防止攻击者窃听和篡改电动汽车与外界的通信信息,也防止攻击者通过入侵CAN总线来控制车辆的运行。实验测试表明,电动汽车信息安全网关从数据源认证、数据完整性、数据机密性三个方面保障电动汽车的信息安全。

车联网 信息安全 IPSec 完整性校验 机密性

0 引 言

车联网在政府的支持、汽车产商和科技公司的参与下发展迅猛,车联网的发展带来了许多新的汽车服务。电动汽车在联网的情况下,可以将车辆位置、车辆的基本数据以及运行参数实时地发送到远程数据服务中心,有利于跟踪电动汽车零部件的故障状态,为汽车用户提供及时的维修保养服务;有利于分析电动汽车零部件的故障原因以及下一代零部件产品的升级。随着汽车智能化的不断发展,车载软件重要性的不断提高,车载软件故障率也不断上升,高效的车载软件维护方案越来越受到汽车用户以及汽车产商的重视。由于车辆的分散性以及车载软件嵌入式的特点,车载软件的后期维护升级问题一直没有得到很好的解决[1]。然而远程软件维护更新可以很好地解决车载软件维护升级的问题。

车联网在提高车辆性能以及提供便利服务的同时也给车辆带来了信息安全隐患。攻击者可以窃取甚至篡改车载终端与远程服务器之间的通信数据,获取车主的隐私信息、偷取汽车产商的商业数据、将恶意的软件代码灌入车载电控单元中。汽车联网使得攻击者可以通过无线网络来攻击汽车,如K. Koscher等通过软件代码远程劫持汽车,完成控制刹车、篡改仪表板读数、开关空调、控制门锁等破坏性行为[2]。

车联网带来的信息安全问题严重阻碍了车联网的发展和应用,研究车联网环境下电动汽车的信息安全问题成为未来车联网发展的关键。张文博等提出了借助可信第三方,采用匿名认证过程,对通信双方的身份进行真实性的认证,对通信平台进行有效性认证,从而车联网云仅为经过认证的车辆提供通信服务[3];D.Wampler等针对分析了CAN节点在CAN总线上收发数据的特点,通过在CANopen之上建立安全协议栈,对部分重要CAN节点进行身份认证这种方式保护重要的CAN节点的通信[4];N.Ristanovic等通过构建自适应消息认证机制,分析并证明了在车联网环境下抵抗拒绝服务DoS攻击的有效性[5]。

关于车联网环境下信息安全问题的研究很多,但是并没有形成统一的安全通信标准,也没用成熟的信息安全产品,研发成熟车载信息安全产品对于在电动汽车上应用车联网来说刻不容缓。作为车载嵌入式产品,具有处理器性能偏低、存储空间偏小、散热供电能力不足的特点,因此嵌入式产品的软件代码量应尽量小,功耗尽量低[6]。μC/OS-II操作系统具有源码开发、内核代码小、可裁剪、移植简单、稳定性高等特点[7],非常适合移植在嵌入式产品中。在此基础上移植μC/TCP-IP协议,兼容性好,性能稳定。IPSec协议是在网络层实现信息安全的核心技术之一,它是一系列协议的一个集合,可以为IP层及上层协议提供完整性校验、数据内容的机密性、数据源认证以及抗重播攻击等服务[8]。

本文研究设计了电动汽车的信息安全网关,首先对电动汽车信息安全网关进行总体架构设计,然后研究了μC/OS-II操作系统、μC/TCP-IP协议、IPSec协议的裁剪与移植,最后搭建实验环境对信息安全网关进行功能测试,并分析测试结果。

1 信息安全网关总体设计

1.1 电动汽车信息安全架构设计

电动汽车的信息安全问题主要产生于3个方面:一是攻击者通过汽车的车载自动诊断系统OBD(On-Board Diagnostics)物理上直接连入CAN总线,直接对CAN总线的信息进行监听和破坏;二是攻击者通过无线局域网或者射频技术连入车载信息系统,然后通过车载信息系统窃听部分CAN信息或者破坏CAN总线;三是攻击者通过移动互联网窃听、截断、篡改电动汽车与远程服务器交互的信息。本文设计实现的电动汽车信息安全网关主要是针对后两种情况设计的。图1是电动汽车的信息安全架构。

电动汽车的信息安全网关位于车内CAN总线与车载信息系统之间。信息安全网关接收到电动汽车CAN总线上发来的CAN帧后,取出CAN帧的数据,将数据封装为以太网帧,通过以太网发送给车载信息系统,在数据从应用层传给MAC层的过程中,在IP层根据安全策略对数据进行加密处理或者仅仅进行完整性校验值计算。对从车载信息系统通过以太网发送给信息安全网关的数据,信息安全网关在IP层根据安全策略对数据进行解密或者完整性校验,最后在应用层得到数据后,将数据封装为CAN帧,在CAN总线上将数据发给电动汽车。通过在IP层的安全策略保障电动汽车的信息安全。

1.2 硬件架构设计

微控制器R5F562N8BDFP是瑞萨公司推出的144引脚的32位高性能MCU,拥有96 KB的RAM以及512 KB的ROM,内部集成了包括以太网控制器、SPI控制器、CAN控制器等多种通信控制器,功能强大。图2是电动汽车信息安全网关的硬件结构图。

图2 信息安全网关硬件结构图

电动汽车信息安全网关R5F562N8BDFP微控制器为核心,外扩了256 KB的SRAM,主要包括以太网模块、CAN模块、LCD模块。其中以太网模块和CAN模块是实现信息安全网关功能的基础,主要包括μC/OS-II操作系统、μC/TCP-IP协议的移植以及建立CAN帧接收任务。

2 信息安全网关软件设计

2.1 软件总体设计

嵌入式产品上移植操作系统是很多嵌入式产品发展的趋势,在嵌入式产品上移植操作系统有利于对嵌入式产品的资源进行更好的调度,有利于未来在已研发的嵌入式产品上实现新的功能。电动汽车信息安全网关以μC/OS-II操作系统为基础,实现嵌入式以太网通信功能以及CAN通信功能,在IP层上实现安全策略。软件总计架构如图3所示。

图3 信息安全网关软件架构

如图3所示,移植μC/OS-II操作系统主要针对R5F562N8BDFP微控制器实现操作系统提供的硬件接口,主要包括类型定义、中断处理、任务切换、任务栈初始化、定时处理等5个部分。

类型定义主要是针对具体的编译器定义数据类型;中断处理是指实现中断发生时保存上下文,进行中断函数处理,中断处理完成之后进行任务调度;任务切换主要是指任务级的任务调度功能,是通过一条软中断指令来实现任务切换;任务栈初始化时针对具体的MCU编写任务堆栈初始化函数OSTaskStkInit();定时处理主要是指设置时钟节拍以及实现汇编函数OSTickISR。

实现嵌入式以太网通信的功能主要是移植μC/TCP-IP协议,包括网络设备支持包的开发、MAC驱动程序的开发、PHY驱动程序的开发。网络设备支持包的开发主要是对net_bsp.*和net_isr.*的开发,包括初始化与以太网模块有关的引脚,用汇编语言编写以太网中断函数NetNIC_ISR。以太网控制器通过串行管理接口SMI(Serial Management Interface)读取和控制PHY控制器,从而获得PHY的状态以及控制PHY控制器[9]。

以太网帧的接收流程:以太网控制器辨认出以太网帧的目的地址是广播地址或者与自己的地址相同,产生接收中断。在中断处理函数中将释放接收以太网帧信号量来唤醒μC/OS-II操作系统中的以太网帧接收任务,接收任务根据以太网帧的大小申请合适大小的缓冲区从EDMAC接收缓冲区中取走以太网帧,然后将数据供上层处理。

2.2 CAN模块软件设计

CAN模块软件主要分为2部分,CAN驱动模块以及上层应用模块。

CAN驱动模块主要是初始化CAN模块,包括引脚配置、CAN模块使能、波特率设置、中断设置、信箱设置等。

上层应用是指CAN帧处理任务。CAN帧接收流程如图4所示。

图4 CAN帧接收流程

当产生CAN帧接收中断时,进入CAN帧中断处理函数(1);CAN帧中断处理函数调用ReadCanMessage()将CAN帧数据从邮箱中取出(2),然后将取出的CAN帧数据存入Buffer队列中(3),之后在中断处理函数中调用CANOS_PostRXSig()释放CAN帧接收信号量(4);上层应用调用CAN帧接收函数,在CAN帧接收函数中,首先调用CANOS_PendRXSig()等待CAN帧接收信号,如果CAN帧接收信号量有效,那么将CAN帧接收信号量减1(5),并从Buffer队列中读取CAN帧供上层应用处理(6)。

2.3 安全策略模块

安全策略模块是通过在IP层上移植IPSec协议实现。主要思想将IPSec作为一个“锲子”,插到IP层与数据链路层之间[10]。主要是通过ipsecdev_input()和ipsecdev_out()两个函数函数来实现。

图5是IPSec的体系结构。主要包括:AH(证头)、ESP(封装安全载荷)、IKE(Internet密钥交换)、ISKAMP/Oakley以及转码。IPSec包含2个数据库:一个是安全策略数据库SPD(Security Policy Database);一个是安全关联数据库SAD(Security Association Database)。IPSec模块对数据的处理分为ESP和AH两种。

图5 IPSec体系架构

SPD主要负责对进出IPSec模块的流量进行区分,指明为这些流量提供何种以及什么形式的服务[11],主要有APPLY(使用IPSec机制处理数据)、BYPASS(直接将数据报传给下层协议)、DISCARD(丢弃该流量数据)。SAD主要为对需要保护的流量提供具体的安全保护策略,是ESP协议还是AH协议以及用何种加密算法等。AH主要是为IP数据包提供数据源验证,数据完整性验证以及有限的、可选的抗重放服务。ESP主要是为IP数据包提供无连接的数据完整性、数据源验证、数据机密性以及有限的数据流机密性保护。

1) 发送数据

对于任何从IP层向数据链路层发送的流量,都会调用ipsecdev_out()对数据包进行处理,处理流程如图6所示。

图6 发送数据包处理流程

对于从IP层发往数据链路层的数据包,首先进行SPD查找,如果是BYPASS策略,那么直接将数据发往数据链路层。如果是DISCARD策略,那么丢弃该数据包;如果是APPLY策略,那么进行SAD查找,如果没有找到对于的SAD,直接丢弃该数据包;如果是应用ESP处理机制,那么根据SAD中的处理算法(3DES算法)、密钥、模式(使用隧道模式,整个IP包作为载荷进行加密)对数据包进行加密;如果是应用AH处理机制,那么根据SAD中的处理算法(HMAC-MD5-96)、密钥、模式(隧道模式)计算数据包的消息认证码(Message Authentication Code,MAC),并添加AH头部信息;最后将经过ESP或者AH机制处理过的数据包发送给数据链路层。

ESP封装数据包处理流程:

(1) 检查IP头部的TTL字段是否为0,如果为0,丢弃此数据包,并返回。

(2) 因为使用的是3DES[12]块加密算法,要求每一个加密块是64 bit,载荷数据长度必须为8字节的整数倍,这一步需要检查载荷数据长度,对于长度不足的数据需要在原有效载荷后面填充数据,并将填充的数据长度放在有效载荷后面,然后再添加下一个协议的协议号(由于使用隧道模式,下一个协议一定为IP协议,协议号为0x04)。

(3) 根据SA中设置的规则对载荷数据进行加密处理,之后将IV(初始化向量)值放到加密数据前面。

(4) 添加ESP头,包括SPI(Security Parameter Index,安全参数索引)和一个序列号。

(5) 根据SA查询是否要计算ICV(Integrity Checking Value,完整性校验值),如果要计算,进行完整性校验计算。

(6) 重构IP头,并返回重构IP数据包的首地址以及长度信息。

(7) 更新pbuf(用来存储从应用层到MAC层的数据)数据结构。

AH封装数据包处理流程:

(1) 构建AH头,包括下一个协议的协议号、载荷长度、SPI、序列号等参数。AH头和原IP数据包之间空留了12个字节,用来存放将要计算得到的ICV。

(2) 在AH头部前构建新的IP头,主要是设置版本、数据长度、ID号、源IP地址、目的IP地址、下一个协议等不变字段,其他在网络传输过程中会发生变化的IP头字段均初始化为0。

(3) 根据HMAC-MD5-96算法计算ICV值,并将其填入AH头和原IP头之间的验证数据区。

(4) 设置新IP头初始化为0的字段的信息,返回新IP包的首地址以及长度,更新pbuf数据结构。

2) 接收数据

对任何从数据链路层发往IP层的数据包,都会调用ipsecdev_input()函数对数据包进行处理。处理流程如图7所示。

图7 接收数据包处理流程图

(1) 通过IP头部的下一个协议号判断此数据包是否是ESP数据包或者AH数据包。

(2) 如果不是,进入SPD查找,查找结果为该流量是BYPASS策略,那么直接将数据包发往IP层;否则丢弃数据包。

(3) 如果是ESP数据包或者AH数据包,那么进行SAD查找。如果没有找到对应的SA,那么丢弃此数据包。如果成功查找到SA,进进行模式,协议的检查。

(4) 如果协议值为SA中确定的AH协议,那么对数据包进行AH检查;如果协议值为SA中确定的ESP协议,那么对数据包进行ESP解封。否则丢弃此数据包。

(5) 数据包经过AH或者ESP机制处理之后,需要处理之后的数据包进行SPD检查。

(6) 如果SPD的策略为APPLY且SPD中对的SA就是步骤(3)中的SA,那么修改pbuf数据结构之后将IP包发往IP层。否则,丢弃此数据包。

3 系统调试

3.1 测试环境搭建

测试所需硬件:2个嵌入式硬件平台、路由器一台、PC机一台、USBCAN一个。硬件物理连接图如图8所示。

图8 测试环境硬件连接图

2个嵌入式硬件平台:一个是要测试的电动汽车信息安全网关(图8中的嵌入式平台A),另一个模拟车载信息系统(图8中的嵌入式平台B)。

PC机用来模拟电动汽车,通过运行在PC机上的Ecantools软件给电动汽车信息安全网关发送CAN帧,以此来模拟电动汽车CAN总线往信息安全网关发送的CAN数据。

主要步骤:

(1) 如图8连接各硬件设备,运行2个嵌入式硬件平台,让其获得IP地址。

(2) 在PC机上运行Ecantools软件,向信息安全网关发送CAN帧。

(3) 在HEW开发环境中断点调试软件代码,观察数据包进入IPSEC模块前后的变化。

(4) 数据包传到车载信息系统,经过IPSEC模块在LCD屏上显示出来。

3.2 功能测试

以太网通信测试:

以太网通信功能是实现电动汽车信息安全的前提功能之一。图9和图10为信息安全网关与PC机进行以太网通信的测试结果。

图9 PC机通过TCP/IP助手发送的数据

图10 信息安全网关接收的数据

测试结果表明信息安全网关具备以太网通信功能。

CAN通信测试:

通过PC机上的Ecantools向信息安全网关发送CAN帧,然后信息安全网关将收到的CAN帧回送给PC机。测试结果如图11所示,结果表明信息安全网关具备CAN通信的功能。

图11 信息安全网关CAN通信测试图

AH测试:

AH协议为IP数据包提供数据源认证以及数据完整性验证。

PC机向信息安全网关发送CAN帧数据hello tangliang!。信息安全网关将CAN数据取出后,通过套接字将数据从应用层发往MAC层。图12和图13为应用AH协议处理前后的IP包。

图12 原IP包

图13 应用AH协议处理之后的IP包

可以看出,AH协议处理对IP进行了完整性校验,ICV数据为0x0E、0xF8、0xB5、0x6F、0x58、0x05、0x34、0x58、0xA9、0x0E、0x94、0x04、0x8B。

数据在传输过程中如果被篡改,那么接收方进行完整性校验的时候就会发现计算出的ICV与接收到的不一样,从而丢弃该数据包。

ICV值得计算需要数据载荷加上双方的密钥(通信之前手动协商的密钥)。如果攻击者想要假冒数据源,那么因为没有密钥就会被接收方识别。

通过测试分析可以看出,信息安全网关在与车载信息系统通信时进行了数据源认证以及数据完整性校验。

ESP测试:

ESP协议为IP包数据提供数据机密性性保护。

PC机向信息安全网关发送CAN帧数据CHTC TL!信息安全网关接收到CAN数据之后,将数据通过套接字传送到MAC层,在IP层进行ESP处理。图14和图15为经ESP处理前后IP包的变化。

图14 原IP包

图15 ESP处理之后的IP包

可以看出ESP协议将明文的IP包变成密文,即使攻击者截获数据包,也无法获知明文信息。只有到被信任的通信设备(即拥有密钥的设备)才能解密出正确的数据。

经过测试分析,电动汽车信息安全网关在与车载信息系统通信时保障了数据的机密性。

4 结 语

本文针对车联网环境下电动汽车信息安全问题设计并实现了电动汽车信息安全网关,介绍了硬件平台架构,重点阐述了软件的设计。以μC/OS-II操作系统为基础,移植μC/TCP-IP协议,编写网卡驱动以及PHY驱动,通过套接字编程实现了嵌入式以太网通信;编写CAN驱动,建立CAN帧处理任务,实现了CAN通信;在μC/TCP-IP源码的IP层移植IPSec协议,进行通信的数据源认证,数据机密性处理以及数据完整性校验。在安全策略的设计方面,在通信速率要求高时,可以只进行数据完整性校验;在通信数据安全性高时,可以进行数据机密性处理。在未来,会有越来越多的智能设备与电动汽车进行无线通信,在电动汽车信息安全网关上实现无线通信将是本文进一步的研究方向。

[1] 李树静,陈思国,刘衍珩,等.可信的车载软件远程修复框架及实现[J].计算机工程与设计,2011(3):1074-1078.

[2] Koscher K,Czeskis A,Roesner F,et al.Experimental security analysis of a modern automobile[C]//2010 IEEE Symposium on Security and Privacy. Piscataway,UAS:IEEE Computer Society,2010:447-462.

[3] 张文博,包振山,李健,等.基于可信计算的车联网云安全通信模型[J].华中科技大学学报(自然科学版),2014(11):102-105.

[4] Wampler D,Fu Huirong,Zhu Ye.Security threats and countermeasures for intra-vehicle networks[C]//5th International Conference on Information Assurance and Security.Piscataway,USA:IEEE Computer Society,2009:153-157.

[5] Ristanovic N,Papadimitratos P,Theodorakopoulos G,et al.Adaptive message authentication for multi-hop networks[C]//2011 8th International Conference on Wireless On-Demand Network Systems and Services.Piscataway,USA:IEEE,2011:96-103.

[6] 郭志红,石春,吴刚.嵌入式以太网通信系统设计与实现[J].小型微型计算机系统,2015(4):754-758.

[7] Jean J Labrosse.MicroC/OS-II,The Real-Time Kernel[M].2th ed.Weston,FL33326:Micriμm Press,2002-02.

[8] 张晗.基于无线通信下IPSec协议的研究与实现[D].西安电子科技大学,2009.

[9] Peng Hui,Jiang Wu.The design of embedded Ethernet control system based on the μC/OS-II[J].Control Engineering,2011,18(4):548-551.

[10] Christian Scheurer,Niklaus Schild.Implementing IPsec on a 16-bit microcontroller[J].Eetimes Com,2003(11):21-22.

[11] Christian Scheurer,Niklaus Schild.A Lightweight IPsec Implementation[D].Biel School of Engineering and Information Technology,2003.

[12] Cao Xiaoli.Based on DES Encryption Algorithm[J].Computer Knowledge and Technology,2011.

DESIGN AND IMPLEMENTATION OF INFORMATION SECURITYGATEWAY FOR ELECTRIC VEHICLE

Tang Liang Li Yihan Shi Chun Qin Linlin Wu Gang

(CollegeofInformationScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230026,Anhui,China)

The application and development of IOV(Internet of the vehicle) is the trend of the development of vehicle technology. While IOV has driven major advancement in vehicle performance and providing efficient and convenient services, it also brings potential information security risks to vehicles. In view of the problems that IOV brings, analysing the research status of its information security, we design the information security gateway(ISG) for electric vehicles. The ISG interconnects the controller area network(CAN) and the Ethernet, and migrates the IPSec protocol on IP layer. Aiming at the data in and out of CAN bus, it performs protocol conversion, data encrypt and decrypt, and data integrity check. It can prevent attackers from eavesdropping and tampering the communication information between electric vehicles and the outside world, as well as controlling the operation of these vehicles by infiltrating CAN bus. Experimental tests indicates that ISG ensures the information security of electric vehicles by providing data source authentication, data integrity and data confidentiality.

Internet of the vehicle Information security IPSec Integrity check Confidentiality

2015-12-16。国家新能源汽车产业技术创新工程支持项目。唐良,硕士生,主研领域:嵌入式车载以太网通信,车联网信息安全。李逸瀚,硕士生。石春,高工。秦琳琳,副教授。吴刚,教授。

TP393

A

10.3969/j.issn.1000-386x.2017.03.050

猜你喜欢

以太网网关数据包
基于FPGA的工业TSN融合网关设计
二维隐蔽时间信道构建的研究*
一种主从冗余网关的故障模式分析与处理
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
C#串口高效可靠的接收方案设计
天地一体化网络地面软网关技术及其应用
车联网网关架构的设计
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用