首页 > 汽车技术 > 正文

整车OTA安全框架之Uptane(上)

2022-01-08 20:11:09·  来源:江苏省智能网联汽车创新中心  
 
以特斯拉为代表的新一代智能汽车快速发展,特斯拉软件定义汽车的模式对当代智能汽车产业的推动作用有目共睹。有人将当代智能汽车唤作新物种,那么整车OTA(Over-
以特斯拉为代表的新一代智能汽车快速发展,特斯拉软件定义汽车的模式对当代智能汽车产业的推动作用有目共睹。有人将当代智能汽车唤作新物种,那么整车OTA(Over-The-Air)就是这个物种可以持续、快速进化的阶梯。
我们熟知的OTA技术广泛应用于智能手机的软件升级,用于修复软件错误、网络安全问题以及增加新的特性或功能。由于其独特的优势,近年来该技术被逐步应用到汽车领域,从单个ECU(Electronic Control Unit)的升级到整车ECU的升级,从单纯的软件瑕疵的更新到新功能的添加,甚至整车性能的提升,以此催生了新的商业模式。是否具备整车OTA也成为消费者在选择座驾时的一个重要考量。试想自己的座驾可不断升级,即使再次掉入主机厂的商业套路,那也足够酷。
在使用这项技术时,网络安全的重要性被提上了前所未有的新高度。不管是来自车企及供应商争夺市场的源动力,还是各国、各组织相继出台的法规政策,一个安全的、稳定的整车OTA解决方案对车企来说至关重要。
由纽约大学Justin Cappos教授发起的Uptane项目旨在给出一个适用于整车OTA的安全框架,并宣称该框架可以很大程度上缓解APT(Advanced Persistent Threat)攻击。即使部分系统被破解,该框架也可以将攻击影响抑制在一个相对安全,亦可修复的范围内。Uptane框架为工业界提供了实现整车OTA网络安全的参考标准,越来越多的厂商尝试采用该框架所设定的技术规范。Uptane框架的提出很大程度上借鉴了TUF框架,TUF框架目前是CNCF(Cloud Native Computing Foundation)已毕业(CNCF有自己的项目成熟模型,毕业状态的项目简单上理解就是项目成熟度高,有应用,可持续)的项目。
P1
TUF
TUF(The Update framework)是软件安全升级的技术框架,由Linux金基会托管,同时也是CNCF的项目之一,于2019年毕业。Docker,Python,Haskell等项目逐步采用TUF框架。
TUF的目的并非抵御所有针对更新系统或更新过程的网络攻击,例如使用0day(指那些未被公开或无修复方案的网络安全漏洞)进行远程攻击,此类攻击需要企业或组织通过其他的方式(周期性风险评估与渗透测试是可选的方式之一)进行抵御。TUF的提出目的是为了最小化密钥(部分)被破解之后所产生的影响。它的核心思想非常朴素,即为系统设置不同角色,每个角色拥有多个加密密钥。比如为root角色分配多个密钥,也为完成某个特定目的设置角色并为赋予其多个密钥。需要注意的是TUF框架设计之初并没有依靠一个外部的PKI,例如类似SSL/TLS所用的公共证书认证机构。
TUF威胁分析是基于未破解或已破解了某个更新镜像时,该框架可以规避的一系列攻击方式:
表1 TUF威胁分析
编号
攻击方式
1
向客户端提供篡改的软件包。
2
欺骗客户端安装旧版本软件包。
3
使用过期数据冻结客户端的所有安装。
4
组合非法的软件包集合以阻止客户端升级,或升级之后导致系统不兼容而破坏客户端功能。
5
欺骗客户端安装不相关的依赖。
6
伪装合法供应商供应非授权软件包。
7
向客户端发送大量数据导致客户端存储资源崩溃。
8
利用已破解的镜像库阻止客户端向安全的镜像库获取软件包。
为此,TUF设立了多个角色,并为之赋予一个或多个密钥。TUF设置了4个基本密钥角色:

1、 Root角色:是整个系统的信任根,为其他各个角色的密钥进行签名。
2、 Snapshot角色:为软件包的索引进行签名,以保护元数据。
3、 Timestamp角色:为最新需要安全的软件包索引进行签名,确保用户更新的是最新的更新软件包。
4、 Targets角色:为单独的软件包进行签名,该角色不直接签名数据包本身,而是签名授权信息。授权信息包含哪个软件包由哪个授权的密钥签名。
所有角色使用一个或多个密钥及签名阈值(在该角色总共的密钥中至少需要多少个密钥进行签名)来签名所给出的元数据文件,以保证其真实性。Root角色密钥是系统最高级别的密钥,因此需要特别的保护措施,通常建议离线保护。
TUF框架的设计是针对桌面系统和服务器系统等硬件资源丰富,操作系统接口功能强大的计算环境,直接将其应用于汽车领域会面临诸多问题。最直观的就是汽车ECU通常都是异构的、硬件资源相对有限、操作系统相对简单甚至没有操作系统。为适应汽车整车电子电气环境,在TUF的基础上衍生出了Uptane框架。
P2
Uptane
Uptane框架是TUF在汽车整车领域的衍生品,由美国国土安全部支持,属于Linux基金会联合研发基金项目。逐步被整合进AGL(Automotive Grade Linux)、COVESA(Connected Vehicle Systems Alliance)等项目中去。为该框架做出贡献的除了纽约大学等以外有诸多知名厂商。
Uptane脱胎于TUF框架,并对汽车整车环境进行了适应。纵观TUF的设计,它包含了以下4个理念:信任分离、签名阈值、显式和隐式密钥废止机制以及关键密钥离线保护。在保留以上4个设计理念的基础上,Uptane增加了4项关键设计,以适应整车OTA过程中的客户端异构,资源有限及ECU之间无可信通信机制。
这四个关键设计是:
1.在TUF维护一个远程软件库的设计基础上,Uptane增加了一个库,并对原来的软件库责任进行的划分。Uptane的基础设计包含了Image Repository和Director Repository。Image Repository用于存放镜像及镜像元数据文件,Director Repository用于管理如何更新。这个改动的主要考虑是将TUF框架中客户端用以管理更新(解决依赖及冲突,以及收集可更新软件包等)这部分功能挪到的后端进行处理。
2.针对不同硬件资源的ECU可进行全部或部分元数据及镜像文件的验签。
3.为车载ECU划分主ECU和次ECU,主ECU直接与软件升级库通信,次ECU通过主ECU获取更新。
4.设置时间服务器,为无可靠时钟源的ECU提供时间。
Uptane的威胁分析及规避措施是基于以下前提:
  • 攻击者有能力干扰或修改网络通信数据:车外通信时,攻击者可操纵车辆与软件库之前的通信,通常是无线通信;车内通信时,攻击者可操纵一个或多个总线。
  • 攻击者有能力破解Director Repository或者Image Repository并偷取之上的密钥,但不是同时发生。
  • 破解主ECU或次ECU,但不同时发生。
可能会受到的攻击方式描述:
表2 Uptane威胁分析
编号
类型
攻击方式
1
读取更新
窃听攻击
2
拒绝更新
(1)阻止车外或车内网络通信(2)抑制更新速度,为进一步攻击争取时间(3)利用旧版本软件对ECU进行冻结攻击(4)仅使部分更新成功,导致整车无法更新完成(5)对软件库或者基础设施进行DOS攻击
3
干预ECU功能
(1)回滚攻击,欺骗ECU安装旧版本软件(2)发送大量数据消耗ECU存储资源甚是覆盖原始可用的数据和代码(3)单一软件包是合法的情况下,从过混合不兼容的软件版本导致ECU功能失效
沿用TUF的设计理念,以及针对汽车整车环境的适配,Uptane可以在更新过程被部分破解的情况下,最小化被入侵的范围和影响。
Uptane框架的基本架构如下图所示:

图1 Uptane架构
Uptane框架包含了一个时间服务器为无可靠时钟信号的ECU提供时间服务,主ECU与Image Repository及Director Repository交互,交互过程有签名验证、元数据验证及镜像下载。次ECU与主ECU交互,主ECU帮助次ECU做全部元数据验证。次ECU在条件有限的情况下做部分元数据验证。
Uptane的安全验证流程如下图所示:
图2 Uptane安全验证流程
P3总结
本文回顾了整车OTA框架Uptane的发展及核心思想,通过对Uptane的解读我们可以观察到一个完整面向整车的网络安全服务的安全设计思路与方法。对SOA开发模式的安全性有很好的借鉴意义。
本文是Uptane系列的第一篇文章,后续会进一步对Uptane进行解读。敬请期待,欢迎拍砖。
参考文献:
【1】TUF框架:https://theupdateframework.io/
【2】Uptane框架:https://uptane.github.io
【3】Understanding Automotive OTA (Over-the-Air Update)
【4】Improving Hackage security
【5】Uptane standard 1.2.0
(https://uptane.github.io/papers/uptane-standard.1.2.0.html)
【6】Uptane: Securing Software Updates for Automobiles
【7】Survivable Key Compromise in Software Update Systems
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号