TrustZone之安全启动与引导失败处理

发布时间:2023年12月22日

一、引导和信任链

        引导是任何TrustZone系统的关键部分。只有在引导流程中之前运行的所有软件组件都是可信的情况下,才能信任某个软件组件。这通常被称为信任链。下图显示了一个简化的信任链:

        在我们的示例中,首先运行的代码是boot ROM。我们必须隐式信任boot ROM,因为没有更早的引导阶段来验证其内容。由于它位于ROM中,可以防止对初始引导代码的重写。将初始引导代码保留在芯片上可以防止其被替换,因此我们可以隐式信任它。boot ROM代码通常很小且简单。其主要功能是从闪存加载和验证第二阶段的引导代码。

        第二阶段的引导代码执行平台的系统初始化,例如设置用于片外DRAM的内存控制器。此代码还负责加载和验证将在安全和非安全状态下运行的映像。示例包括在安全状态加载TEE和在非安全状态加载像UEFI这样的更高级别固件。

        之前我们介绍了System Control Processor (SCP)。SCP是许多现代SoC中执行低级系统控制的微控制器。在存在SCP或类似物的情况下,它也构成了信任链的一部分。下图显示了这一点:

二、启动失败

        在可信引导系统中,每个组件在加载之前都会验证下一个组件,形成一个信任链。现在让我

文章来源:https://blog.csdn.net/yuxiaochen99/article/details/135136527
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。