TBOX面临的安全威胁

车载终端TBOX(Telematics BOX),是具备数据输入输出、数据存储、计算处理以及通信等功能的车联网控制单元。TBOX与主机通过CAN总线通信,实现对车辆状态信息、控制指令、远程诊断和按键状态信息等的传递;以数据链路的方式通过后台TSP系统与PC端网页或移动端App实现双向通信。车机要联网必须有TBOX设备才能实现。

TBOX在车联网的位置:

TBOX通常采用MCU芯片上跑一个Android操作系统,搭配通信模块、GPS天线、4G天线、数据接口等外设、以及相关的应用软件。从TBOX的构成和作用,我们不难分析出其安全威胁主要来自于以下几个方面:

  • 操作系统安全威胁

类似Android这类操作系统被称为REE(富执行环境),由于本身的开放性,不具备secure boot和信任链条,注定其是非安全的操作系统。对于REE系统的文件和系统数据被窃取或篡改,用户敏感数据被窃取或篡改,操作系统的运行被非授权干扰或中断,各种攻击方式屡见不鲜。

  • 软件安全威胁

基于REE实现的App应用软件,不具有隔离性。应用软件源码或敏感数据极易被非授权访问,组件因为暴露在开放环境,很容易被攻击调用。应用软件的启动、升级和退出过程也都非常容易受到非授权干扰或中断。

  • 数据安全威胁

开放OS中,收集的数据没有基于硬件的防护,极易被拦截或篡改。数据在传输过程中被窃取或篡改,恶意数据在传输环节中被注入,在数据被用户删除后未彻底清除或未设置防回滚保护,导致数据被窃取作为攻击样本。

  • 通信安全威胁

数据通信没有信任链,总线数据和私有协议被非授权的攻击者读取,车载TBOX与TSP间通信被嗅探或攻击,使通信数据被窃取或篡改。

TEE是什么

TEE(Trusted Execution Environment 可信执行环境)最早出自于OMTP规范,ARM是TEE技术的主导者之一,其TrustZone即为是ARM公司的TEE的实现。TEE的目的增强移动设备的安全特性,从而研发的包括软件编程接口、硬件IP在内的一整套方案。芯片在软件和硬件上,有REE和TEE两个区域,分别对应富执行环境和可信执行环境。其主要思想就是在同一个CPU芯片上,通过硬件配置方式实现不同IP组件的访问控制,从而提供一个完全隔离的运行空间。ARM在芯片IP设计中已经全面支持了TEE,包括高通、联发科、三星、海思、NXP等芯片厂商都纷纷采用该架构,已经成为基于硬件安全的主流方案。

GlobalPlatform TEE 架构图:

</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
</&nsbp>
关于TEE的安全技术和实现,我们将会在后续有专门的章节说明,此处我们简单介绍一下TEE具备的特性。

  • 受硬件机制保护:TEE隔离于REE、只能通过特定的入口与TEE通信、并不规定某一种硬件实现方法,隔离更彻底。
  • 使用Trustzone硬件机制对外设、存储进行安全保护,且该机制仅能受控于TEE。
  • 高性能:TEE运行时使用CPU的全部性能(独占),算力足(支持国密)。
  • 快速通信机制:TEE可以访问REE的内存、REE无法访问受硬件保护的TEE内存,TEE的RAM充足。
  • TEE具有更高的特权等级。
  • TEE作为开放技术,适合标准化。目前已有GlobalPlatform(GP)标准化,可在多种平台上移植。
  • TEE擅长节点逻辑保护、外设保护、存储保护。
  • TEE中的可执行代码在执行前先要被验证(validate)。
  • 对于密钥使用安全存储机制:认证性、完整性和机密性。

基于TEE的TBOX安全方案

既然芯片上已经有了Trustzone安全设计,那么利用Trustzone上的TEE安全系统来保护TBOX,当然就会成为必然。实际上,基于TEE的TBOX安全方案已经被越来越多的OEM采用,一些TBOX相关的安全规范也正在制定中。相信随着车联网信息安全越来越受到关注,基于硬件隔离的TEE安全技术,将成为刚需。

让我们以豆荚科技公司基于TEE的TBOX安全方案为例,分析一下为什么有了TEE的TBOX更加安全。

我们可以看到,在方案中,基于TEE的安全操作系统的系统防御形成了一条安全信任链条。每一步处理都是基于这个信任链进行认证和校验,保证了系统、应用、业务、数据、通信的安全。

  • 系统安全启动

TEE的secure boot(安全启动)功能旨在保证设备软件(从硬件信任根直到系统分区)的完整性。在启动过程中,无论是在哪个阶段,都会在进入下一个阶段之前先验证下一个阶段的完整性和真实性。此过程需要绑定的信任根,也就是ROOT OF TRUST。确保BOOT ROM -> Preloader -> LK -> TEE -> BOOT启动流程安全可靠。只有具备了安全启动,安全的OTA才成为可能。

  • 应用安全

在TEE上运行的应用叫做可信应用TA(Trusted Application),TA之间实现完全的隔离,两个TA之间无法访问对方资源。而且TA的装载和调用都必须通过签名校验的过程,从而达到防篡改、防钓鱼、防重放攻击的目的。对于不同的应用来说,可以将需要安全处理的部分放在TA中执行,以此来保证应用的安全。

实际上在手机上的高安全应用如支付类应用(支付宝、微信)、生物识别应用以及DRM应用都是需要TEE的安全保护的,这在手机应用中已经成为标准。同理,在车联网的环境下,随着生物识别、支付、控车等应用场景的出现,TEE的保护无疑将成为高安全应用的最佳选择。

  • 硬件加解密功能

重要数据、敏感数据的保存需要加密,服务器和设备终端的信息传递需要验签名,安全应用(TA)镜像需要验证完整性和机密性。TEE基于芯片硬件的加解密算法,支持各类对称加密、非对称加密、国密算法、签名认证、HASH计算、MAC算法等,可利用芯片内置安全密钥,对数据做加解密处理。

  • 安全存储功能

重要数据(包括配置信息)保存需要加密安全存储,对于密钥等小型敏感数据,可通过TEE的安全存储功能保存在TEE安全端,确保密钥不出安全模块,REE侧无法访问,提高系统安全性。

对于较大的文件按可先经过TEE侧加密后,然后通过REE侧的文件系统,以文件形式保存,由于加密的密钥不出TEE,其安全级别大大提高。

  • 双向认证

云与端之间信息通信的安全,最重要的是服务器和终端设备之间的双向认证机制。如果终端密钥管理放在REE侧,那么是非常容易泄露的,端的安全就是无源之本。而TEE的出现,可以将端的唯一标识和相关密钥管理放在TEE侧作为安全存储,密钥不出TEE,确保整个验证流程安全可靠。

从车载终端设备安全考虑,TEE很好的解决了安全启动、安全更新、数据保护、密钥存储、身份识别、安全通讯等车载安全的主要问题。当然,汽车正在往电动化、智能化、网联化、共享化的方向快速发展,同时也面临着严峻的信息安全挑战。汽车系统安全问题无法通过单一技术方案解决,必须实施多位一体的安全方案,下一回我们将分析一下车载APP的安全,敬请关注。