2022-01-20 13:52:15|已浏览:5079次

安全启动是在使用之前针对硬件验证代码和图像的过程。这个想法是系统不应该信任任何代码或图像,直到它被验证为真实并且其完整性得到确认。如前所述,系统应该使用基于硬件的信任根 (RoT) 来验证代码。
我在职业生涯中遇到的许多系统只是假设其闪存中的代码是正确的,并在处理器启动的那一刻开始执行它,几乎没有检查(如果有的话)。如果嵌入式开发人员想要保护他们的系统,这是一种可以长期遵循的做法。系统需要安全启动并验证将要加载和执行的所有代码。
从信任根引导安全启动可能是我们一直在讨论的第一个使用基于硬件的隔离和 RoT 的元素。在第一阶段,建立 RoT 的 ROM 代码用于计算引导代码内容的哈希值并验证其内容。计算出的散列通常与不可变的散列进行比较,并且在制造过程中已“烧录”到闪存中。
初始安全启动阶段将内置配置信息,然后允许启动序列验证后续启动阶段。例如,该阶段可能会经过并计算引导加载程序上的散列,并将该散列与存储在闪存中的另一个散列进行比较,以帮助在该阶段建立信任。然后可以验证和执行引导加载程序,然后在运行应用程序之前通过并验证其应用程序映像。
安全启动阶段在隔离环境中使用安全启动时,安全处理区域通常最先开始执行。换句话说,安全启动操作是从安全执行环境中执行的,这是有道理的。一旦安全环境启动并运行,将在应用程序丰富的代码上计算另一个哈希值,以确保其完整性和真实性。通过此检查后,安全执行环境将允许该代码运行。在启动序列中的每个点,安全启动都必须验证下一个将要执行的代码或映像并验证其完整性。从 RoT 开始,然后通过引导加载程序进入执行映像。在多核系统中,甚至可能有多个图像需要跨多个处理器进行验证。
安全启动不仅仅是简单地向系统添加一个软件。安全启动需要嵌入式开发人员仔细考虑启动顺序并开发源自信任根的信任链。在系统启动时,每个映像和代码都经过验证,然后才允许在系统上执行。如果检测到问题,系统可以停止引导序列,甚至可以恢复到早期已知的工作代码版本。为了恢复代码或将其更新到新版本,这需要系统具有安全的引导加载程序。注:尊重原创文章,转载请注明出处和链接 https://www.pxwy.cn/news-id-16913.html 违者必究!部分文章来源于网络由培训无忧网编辑部人员整理发布,内容真实性请自行核实或联系我们,了解更多相关资讯请关注嵌入式开发频道查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注官方微信了解更多:150 3333 6050