APP下载

基于Trustzone的汽车ECU安全OTA系统设计

2019-12-10赵国开

科技创新导报 2019年21期
关键词:双系统

赵国开

摘   要:汽车已经成为黑客攻击的一个新领域,因此就会有不断的攻防的技术演进,旧的防御技术被攻破,新的防御技术被研制出来。这其中就涉及升级的过程,虽然已有OTA技术被应用在汽車ECU升级上,但整个升级过程并未对安全威胁做过多的设计。本文基于ARM架构的trustzone技术重新设计整个升级汽车ECU的OTA系统,以双系统进行分别处理不同下载服务,实现对汽车ECU升级安全性的保障。

关键词:Trustzone  双系统  安全OTA  汽车ECU升级

中图分类号:TP39                                   文献标识码:A                        文章编号:1674-098X(2019)07(c)-0094-03

Abstract: Cars have become a new field of hacker attacks, so there will be a continuous evolution of offensive and defensive technology, old defense techniques are broken, and new defense technologies are being developed. This involves the upgrade process. Although the existing OTA technology has been applied to the upgrade of the automotive ECU, the entire upgrade process has not been too much design for the security threat. Based on the ARM architecture trustzone technology, this paper redesigns the OTA system of the entire upgraded car ECU, and handles different download services separately by the dual system to ensure the security of the car ECU upgrade.

Key  Words: Trustzone; Dual system; Secure OTA; Automotive ECU upgrade

近年来汽车信息安全事件频发,汽车上的信息安全备受关注。汽车ECU上的安全漏洞,一方面直接威胁到汽车驾驶人员及车上人员的人身安全,另一方面汽车厂商按传统的方式对存在安全漏洞的汽车进行召回也需要支出巨额的成本。现在也有厂商通过OTA(空中下载技术)来进行ECU软件升级来修复漏洞,OTA虽然能够实现运程升级,解决漏洞修复和汽车厂家召回的问题,但基本只是满足基本远程升级功能,并未对升级过程中的潜在威胁考虑进去[1]。在整个升级流程中依然存在诸多安全威胁,比如对升级包在发送过程中是否被恶意攻击和篡改,对数据传输的协议使用明文容易被监听,未对发送者进行身份认证,没有在安全的区域进行隔离升级等等。本文基于现有的OTA升级存在的安全隐患,提出了一种更安全的基于trustzone[2]进行安全隔离升级ECU的方法以提高整个升级过程的安全性。

1  安全OTA设计

整个安全OTA主体架构如图1所示,包括OTA云服务,车载设备(比如汽车网关或者T-box之类)及连接到汽车总线上的ECU(汽车电控单元)。

1.1 OTA云服务设计

OTA云服务可以存储要升级的ECU升级包,注册要连接到该OTA云服务的车载设备,并维护已注册的车载设备对应的ECU升级的状态信息(通过车载设备一级下载服务,来获得ECU升级的反馈信息,包括当前ECU版本号,对应的ECU升级包是否已经下载,对应的ECU升级包是否已经更新成功或者失败/异常等),同时OTA云服务通过TLS[3](安全传输层协议)和连接上来的已注册车载设备进行信息交互(包括身份认证,ECU升级包数据传输,ECU升级状态反馈等等)。

1.2 一级下载服务

车载设备使用的硬件平台基于带ARM trustzone硬件架构的CPU核,在该CPU核上运行两个操作系统[4],分别为Trusted OS[5](运行在trustzone上),Rich OS(运行在普通区域)。在Rich OS[5]上的一级下载服务负责和OTA云服务进行交互通信(使用TLS进行双向认证和数据加密通信)。一级下载服务通过定期查询OTA云服务或者事件触发向OTA云服务查询是否有最新版本的ECU软件待升级,如果有最新版本的ECU软件待升级的话就通过相应的文件传输协议(文件传输协议封装在TLS内)把对应的ECU升级包下载到Rich OS的存储区域。一级下载服务完成下载后,通知OTA云服务完成对应ECU升级包的下载,同时通知Trusted OS中的二级下载服务更新对应存储区域的ECU升级包。

1.3 二级下载服务

Trusted OS运行在trustzone上是一个相对Rich OS的隔离安全操作区域,配置了独立的存储区域及对ECU进行通信的硬件接口,这些对Rich OS都是不可见的,从而确保在Trusted OS上操作的安全性。二级下载服务运行在Trusted OS上,主要实现对从一级下载服务下载下来的ECU升级包进行签名验证,数据解密,ECU下载管理,并反馈ECU相关的升级状态信息给Rich OS上的一级下载服务。二级下载服务收到一级下载服务的更新ECU升级包通知时,把Rich OS的存储区域中的对应ECU升级包拷贝到Trusted OS对应的存储区域(该存储区域Rich OS无法访问和读写,确保了ECU升级数据包的安全)。二级下载服务会对ECU升级包进行签名验证,确认升级包是否有被篡改过,如果验证异常则删除该ECU升级包,不做后续处理。如果校验通过,需确认升级包是否加密,如果有加密需要进一步进行解密处理,之后提取升级包的版本,和二级下载服务维护的一张ECU升级表(大致内容如表1所示)进行确认,确认对应的ECU当前版本是否小于下载的升级包版本,如果是则更新ECU升级表中对应的字段(ECU最新版本设置为当前下载的最新版本,已更新设置为FALSE,异常设置为FALSE)。

连接到车载设备的ECU如果需要升级只能通过Trusted OS中的二级下载服务进行下载管理,ECU和二级下载服务通过UDS进行交互,ECU根据自己的运行状态(比如汽車在停车熄火状态时[6])决定何时向二级下载服务查询是否有待更新的升级包需要升级。如果确认需要升级,即二级下载服务维护的ECU升级表中对应字段异常和已更新都为FALSE(如果异常为TRUE表示之前更新失败,不再重复更新或者已更新为TRUE表示已经更新成功不再更新),则ECU通过UDS(Unified Diagnostic Services,统一诊断服务[7])和二级下载服务完成ECU升级包的下载,ECU完成软件的升级并确认运行正常之后,通知二级下载服务完成升级。二级下载服务收到对应ECU升级成功的通知后,更新ECU升级表对应的字段(已更新设置为TRUE,更新ECU当前版本为ECU最新版本),并通知一级下载服务表示对应的ECU完成升级,一级下载服务在通知OTA云服务报告完成对应的ECU升级过程。当然如果ECU在升级的整个过程中,出现升级错误则二级下载服务也会更新ECU升级表对应的字段(异常设置为TRUE),同时通过一级下载服务通知OTA云服务表示对应的ECU升级异常。

1.3.1 ECU升级表

ECU升级表用来辅助二级下载服务对ECU下载进行管理。ECU升级表抽象出来的一个结构如图2所示,每行记录表示每一个连接到二级下载服务的ECU的升级状态信息。其中的状态信息包括ECU ID(相当于ECU的身份标识,能够在这个系统中唯一定位到该ECU),ECU当前版本(当前ECU正在使用的软件版本),ECU最新版本(从OTA云服务下载下来的最新软件版本,高于或等于当前的版本),已更新(TRUE表示从OTA云服务下载下来的最新软件版本已经更新成功到对应的ECU,FALSE则表示还未更新),异常(TRUE表示从OTA云服务下载下来的最新软件版本在对应的ECU更新失败,FALSE则表示还未出现更新异常)。车载设备出厂设置/恢复出厂设置时ECU升级表为空表即不包含对应的ECU升级状态记录,当对应的ECU发送查询消息(包含ECU ID和当前ECU版本号)给二级下载服务查询是否有待更新的升级包需要升级时,二级下载服务如果未查询到该ECU的升级状态记录则会初次建立该ECU的记录,包括ECU ID,ECU当前版本和ECU最新版本设置成一样,已更新设置为TRUE,异常设置为FALSE,同时通过一级下载服务告知OTA云服务对应ECU ID的当前版本。

1.3.2 ECU升级包管理

放入OTA云服务的ECU升级包,先需使用相关的打包工具对ECU原始升级数据进行封装打包成对应的格式。ECU升级包的封装格式大致如图2所示,包括数据包签名(是对后面五个字段数据用SHA3算法算出的值,再用私钥进行计算之后的签名数据[8]),ECU ID(该ECU的身份标识),加密随机数(和对称工作密钥一起用来对后面的三个字段进行数据加密,如果未加密处理则该字段全部填充为空值比如0值),ECU版本号(该ECU升级数据对应的版本),ECU原始升级数据长度(后一个字段ECU升级数据的长度),ECU原始升级数据(ECU的实际需要的升级数据)。二级下载服务对整个ECU升级包解包的过程大致这样,先使用SHA3算法对数据包签名后面五个字段数据进行计算出散列值1,并用存储在车载设备密钥存储区(出厂配置好的,并且只有在Trusted OS中才能访问)的公钥对数据包签名进行解密同样获得一个散列值2,把散列值1和散列值2进行比较如果一样则签名验证通过,否则则验证失败。验证通过之后,如果加密随机值为空值则不进行解密操作,如果不为空值则用该加密随机值和存储在车载设备密钥存储区的工作密钥对ECU版本号,ECU原始升级数据长度,ECU原始升级数据进行解密,以获取ECU版本号,ECU原始升级数据。

2  结语

本文基于现有的OTA升级存在的安全隐患,提出了一种更安全的基于trustzone进行安全隔离升级ECU的方法以提高整个升级过程的安全性。基于trustzone技术来重新对整个OTA流程进行设计以达到高安全的实用效果,在空中通信使用TLS进行身份认证,通信加密,车载设备使用trustzone进行分层隔离,一级下载服务和OTA云代理使用TLS进行通信交互和ECU升级包下载,二级下载代理完成安全性较高的操作包括升级包签名验证,解密,使用UDS对ECU进行最终升级。确保升级数据的完整性,升级过程不会受到恶意软件攻击,最大限度的保证ECU升级过程的安全。对比现有的OTA技术在安全这方面有非常显著的提升。

参考文献

[1] 安徽江淮汽车股份有限公司.一种汽车控制器软件远程升级方法及车联网系统[P].中国:CN105208112A.20151230.

[2] ARM Limited.ARM Security Technology Building a Secure System using TrustZone Technology[EB/OL].http://www.arm.com,2009.

[3] 百度百科.TLS[EB/OL].https://baike.baidu.com/item/TLS,2019-06-25.

[4] 包依勤.TrustZone技术在Android系统中的安全性研究[J].物联网技术,2015(10):70-73.

[5] GlobalPlatform.GP_WhitePaper_TEE_2015_chinese[EB/OL].  www.globalplatform.org,2015.

[6] 李广鑫.CAN 总线网关的设计与实现[J].吉 林 大 学 学 报,2010,28(2):166-171.

[7] 百度百科.UDS协议[EB/OL].https://baike.baidu.com/item/UDS协议/19843846,2019-06-25.

[8] 结城浩.图解密码技术[M].第1版.北京:人民邮电出版社,2015.

猜你喜欢

双系统
BDS/GPS双系统PPP精度分析
区域实时双系统精密卫星钟差估计及PPP精度分析
汽车双空调系统油循环率的测定研究
瑞丽江一级水电站设计新技术
北斗/GPS双系统单频RTK模糊度解算性能分析