车联网安全之基于TEE 的TBOX 安全技术
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 ExecutionEnvironment 可信执行环境)最早出自于OMTP 规范,ARM 是TEE 技术的主导者之一,其TrustZone 即为是ARM 公司的TEE 的实现。
TEE 的目的增强移动设备的安全特性,从而研发的包括软件编程接口、硬件IP 在内的一整套方案。
芯片在软件和硬件上,有REE 和TEE 两个区域,分别对应富执行环境和可信执行环境。
其主要思想就是在同一个CPU 芯片上,通过硬件配置方式实现不同IP 组件的访问控制,从而提供一个完全隔离的运行空间。
ARM 在芯片IP 设计中已经全面支持了TEE,包括高通、联发科、三星、海思、NXP 等芯片厂商都纷纷采用该架构,已经成为基于硬件安全的主流方案。
GlobalPlatform TEE 架构图:
关于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 很好的解决了安全启动、安全更新、数据保护、密钥存储、身份识别、安全通讯等车载安全的主要问题。
当然,汽车正在往电动化、智能化、网联化、共享化的方向快速发展,同时也面临着严峻的信息安全挑战。
汽车系统安全问题无法通过单一技术方案解决,必须实施多位一体的安全方案。