安全启动Secure Boot流程

描述

安全启动-Secure Boot

除了NSPE和SPE两个环境的沟通流程之外,secure boot也是Trusted Firmware很重要的设计环节。

Secure boot最主要的目的就是防止系统使用到恶意的固件程序或操作系统,在开机流程中,boot
code会先透过密码学(cryptography)算法验证是否为可信任的的程序,如果验证成功即会开始执行,否则中止流程。

在Trusted Firmware-M的secure boot流程如下:

ARM

secure boot流程

Boot loader stage 1(BL1)

此阶段主要是必要的硬件初始化或是设定,因此BL1 boot code必须要是可信任且不可被窜改。在执行完初始化后,就会跳到BL2的entry point继续执行BL2。

The bootloader code must be stored and executed from ROM or such part of
flash memory which supports write protection.

Boot loader stage 2(BL2)

BL2负责其他需要的初始化操作,例如启动MCUboot前所需的设定或检查,接着就会把执行移交给MCUboot。

MCUboot

MCUboot是针对32-bit microcontroller所设计的secure bootloader,其中包含完整的程序验证流程,因此也是Trusted Firmware-M secure boot流程的核心。

而MCUboot本身是独立的open source project,因此也能应用在其他项目上。

TF-M

TF-M会依据memory layout放置在指定的內存位置,而MCUboot会先去该位置取得TF-M binary
code,并且进行相关验证确认,如果TF-M已被加密,也会在这阶段进行解密。在确认完TF-M是正确且可信任后,就会加载TF-M。

要注意的是,Trusted Firmware-M手册中有提到,验证和解密所需key建议放在OTP memory中,以确保不可修改。

ROTPK(root of trust public key)can be stored in a one-time-programmable(OTP)memory.

此外,由于需要在加载TF-M前就对TF-M binary进行验证,因此上一个段落提到的crypto流程不适用在这里,我们需要额外的crypto API来处理验证与加解密。

一般这个时候使用的驱动和接口会封装在BL2。

RTOS

最后阶段就是加载RTOS以及应用程序。这阶段的流程和上一个阶段相似,同样要先验证确认且解密,确认无误后再加载并执行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分