论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
一文搞懂Secure Boot (安全启动)
一文搞懂Secure Boot (安全启动)
小小小幸运
金牌会员
|
2024-11-28 21:00:00
|
显示全部楼层
|
阅读模式
楼主
主题
769
|
帖子
769
|
积分
2307
作甚安全启动?
随着汽车新四化的发展,尤其是网联化及自动驾驶的推进,汽车网络信息安全显得越来越紧张。
随着高级驾驶辅助(ADAS)及自动驾驶的推出,车辆动力及制动控制需要部分或全部授权给智能驾驶体系,而车辆又暴露在互联网当中,此时如果智能驾驶体系被黑客攻破,后果将不堪假想。
黑客可能会篡改自动驾驶体系的软件控制体系,植入他们事先编制好的软件,从而实现非法控制车辆的目的。
自动驾驶体系开辟人员如何克制这种情况发生呢?这就是今天我们要讲的主题:安全启动。所谓安全启动,也就是只能让自动驾驶体系运行合法的软件(由零部件供应商开辟的软件),当软件被篡改时,整个自动驾驶体系将不会工作,如许就可以克制黑客利用车辆。
安全启动在TDA4上的实现
知道了什么是安全启动以及它的作用,我们一起来看一下它是如何实现的,介绍实现最好有具体的例子,如许方便大家理解。今天我们基于德州仪器的TDA4这款SoC来介绍一下安全启动的实现方案。
TDA4是德州仪器推出的一款高性能、超异构的多核SoC,拥有ARM Cortex-R5F、ARM
Cortex-A72、C66以及C71内核,可以摆设AUTOSAR
CP体系、HLOS(Linux或QNX)、图像处理惩罚以及深度学习等功能模块,从而满足ADAS对及时性、高运算本领、情况感知及深度学习等方面的需求。
TDA4的架构如下图,可以分为MAIN域、MCU域和WKUP域(DMSC)。
MAIN域集成了2个A72核,4个R5F核,2个C66核和1个C71核。情况感知(图像感知和超声感知),传感器融合(图像和超声信号融合),智能驾驶算法(路径规划),深度学习等会摆设到MAIN域,也就是智能驾驶的重要功能逻辑会摆设到MAIN域。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/fed2cbca14da44728582fab0e140f936.png)
信托链(Trust chain)和信托根(Trust root)
在我们的整个软件体系中存在多个软件组件,好比SBL(Second bootloader),FBL(Flash
bootloader)和Application,当体系启动时这些组件的运行是有一个确定的先后次序的(SBL->FBL->App),启动过程中需要按照启动次序依次对每个软件组件进行校验,校验通过后再启动该组件。
校验通过的组件被称为受信托的组件,当所有的软件组件校验通过,它们就组成了一个受信托的软件链条,即信托链(Trust
chain)。这条链条中最初被校验的组件(例子中的SBL),就是信托根(Trust root)。
信托根是整个信托链的根本,如果不对SBL进行校验大概校验被绕过试想会发生什么?如果SBL被黑客替换,黑客可以在自己的SBL中不去校验FBL,从而替换掉FBL,在非法的FBL中不对APP进行校验,从而替换掉APP,由此可见信托根(上面例子中的SBL)在安全启动过程中的紧张性。
软件镜像署名
体系在启动时如何判定将要运行的软件是否合法呢?我们需要给每一个软件组件的头上加上一个X509证书(X509
Certificate),X509是密码学里公钥证书的格式尺度,应用场景很广泛,感兴趣的可以自行搜索查阅。
TDA4软件组件的X509证书重要包含以下几个内容:
公钥-与加密用到的私钥对应
软件镜像的 SHA2-512 Hash值,通过SHA2-512算法计算得来
X509证书的数字署名
介绍证书校验的时候会阐明上面各个项目的作用。
下图展示了给软件镜像添加X509证书的过程:
此步骤的完成可以通过TI SDK里提供的脚本实现,可以在Makefile中调用,而署名用到的私钥和公钥则要自己天生并妥善保管,如果密钥被泄露secure
boot将会形同虚设。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/d8fe62a3ebd847ef9416936f15bda187.png)
启动时软件镜像署名的校验
启动时对软件组件的合法性校验由TDA4专门的一个控制器实现,该控制器叫DMSC(Device Management. & Security
Controller),该控制器重要负责装备管理(设置时钟、启动其他核等)及安全控制。上文提到的SBL是运行在MCU域的,和DMSC是相互独立的。我们在SBL中通过调用API(TISCI_MSG_PROC_AUTH_BOOT)请求DMSC对FBL和APP进行合法性校验,而对SBL的校验则是由Boot
ROM发起的,Boot ROM的介绍可以查阅之前发布的一篇文章:一文搞懂德州仪器TDA4 启动流程。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/848253b3d6c8418c9b6d90796845badb.png)
上图展示了体系在启动时对软件组件的校验过程,可分为五个步骤:
验证X509证书中的公钥是否是合法。对比X509证书中包含的公钥Hash和fuseROM中储存的公钥Hash,如果一致则进行第2步校验,失败的话将返回失败结果给校验发起者。fuseROM是SoC内部的一个ROM,这个ROM只能被烧录一次且内容只能被DMSC读出来,如许就可以包管公钥的安全性。fuseROM的烧录TI也提供了专门的工具:
key-writter,感兴趣的可以到TI官网查阅相干信息。
对X509证书的内容进行校验。对证书内容(除证书Signature以外)进行Hash运算,与证书Signature解密出来的Hash进行对比,如果一致则进行第3步校验,失败的话将返回失败结果给校验发起者。
校验软件镜像的一致性。根据软件镜像的数据内容计算Hash,并与证书中的镜像Hash对比,如果一致则进行第4步校验,失败的话将返回失败结果给校验发起者。
对镜像的数据内容进行解密,这一步是创建在软件镜像加署名时对镜像数据内容进行了加密。
对比解密后的软件镜像中Magic Number和证书中的Magic Number,这一步同样是创建在软件镜像加署名时对镜像数据内容进行了加密。
如果不对整个软件镜像内容进行加密,则第3步通过后将返回校验通过的结果给校验请求发起者(假设是SBL请求校验APP),反之则是第5步通过后将返回校验通过的结果给校验请求发起者。SBL收到校验通过的结果,将会加载并跳转到APP运行。
TDA4的软件体系包含的软件组件不止上面提到的SBL、FBL及APP,还有主域A72运行的软件(Linux或QNX),主域R5F核运行的软件,以及DSP核(C66,
C71等),这些软件镜像的校验过程和上面描述的是一样的。前文只是简化了软件组件,方便大家理解。
一篇文章很难完全阐明白Secure
boot,内容太多,难免挂一漏万,但是迈出第一步就是成功的一半。如果你觉得此文对你大概偕行们有一些代价,接待转发。如果对文中的任何内容有任何建议请不吝见教,如果想看到更多相干的感兴趣的内容,也接待私信接洽。
感兴趣的朋友可以关注微信公众号“日拱一卒不期而至”获取更多内容。
学习筹划安排
我一共分别了六个阶段,但并不是说你得学完全部才能上手工作,对于一些低级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零底子入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
小小小幸运
金牌会员
这个人很懒什么都没写!
楼主热帖
收藏:再谈软件定义存储发展及现状 ...
5.2 基于ROP漏洞挖掘与利用
Ubuntu如何安装Mysql+启用远程连接[完 ...
【.NET】控制台应用程序的各种交互玩法 ...
软件项目管理 7.4.5.进度计划编排-敏捷 ...
权限提升(1)
微信公众号模板消息源码实现,打破服务 ...
唯一/普通索引的选择?change buffer ...
京准电钟北斗时钟服务器,GPS网络时间服 ...
【Visual Leak Detector】QT 中 VLD 输 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表