0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统的完整性

星星科技指导员 来源:militaryembedded 作者:RUSSELL DOTY 2022-11-15 17:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

能够验证军事和其他应用中使用的系统的完整性以确保它们没有被修改或损坏至关重要。当然,最好防止系统被篡改。如果无法做到这一点,则检测篡改至关重要。在许多情况下,如果您不能确定系统未被修改,最好阻止系统运行。在所有情况下,保护系统上的信息,尤其是加密密钥等关键机密至关重要。

操作系统级别的各种工具有助于确保软件的完整性。其中包括存储加密、软件包的加密签名、文件的校验和以及用于检查系统的工具。但是,可以做些什么来确保底层系统没有受到损害 - 验证硬件,BIOS和其他固件以及引导加载程序?如果检测到问题,该怎么办?

让我们考虑一下使用硬件信任根可以做什么,以及 Linux 操作系统中的最新发展,这些开发提供了底层系统完整性的视图。

第一个因素是LUKS,这是Linux内置的强大而安全的存储加密功能。LUKS 对从磁盘驱动器USB 驱动器、SD 卡甚至网络存储的所有内容进行加密。LUKS 在卷级别加密,Linux 系统可以配置为单个卷或单个驱动器上的多个独立卷。这为配置和保护嵌入式系统上的信息提供了相当大的灵活性和功能。

LUKS 的用例之一是加密系统驱动器。完成此操作后,必须提供LUKS密码才能引导系统。对于笔记本电脑等系统,这通常通过输入密码来完成。网络绑定磁盘加密 (NBDE) 是一种新的 Linux 软件包,它使用网络服务或硬件信任根来提供 LUKS 密钥来引导系统。

NBDE 是一个灵活的加密框架,它使用各种引脚或加密引擎来加密和解密 LUKS 密钥等机密。NBDE 旨在扩展,目前支持两个引脚:网络唐服务器和 TPM 2.0 硬件信任根。可以开发其他引脚,例如系统集成商可能会实现支持 CAC 卡的 NBDE 引脚。(作为旁注,开源Linux社区欢迎提交NBDE的其他引脚。NBDE 还实施了允许组合多个引脚的策略。

带有 TPM2 的 NBDE 是没有安全网络连接的远程位置嵌入式系统的不错选择。这可确保仅当操作系统磁盘位于具有正确配置的 TPM2 模块的系统中并且已绑定到该 TPM2 模块时,系统才会启动。

下一个要考虑的元素是安全启动。这是在 UEFI 固件中实现的,并要求引导加载程序和操作系统使用已知且批准的软件密钥进行签名,然后才能允许系统引导。安全启动是确保操作系统有效的好工具。行业标准安全启动密钥通常安装在出厂时的 UEFI 固件中。这些键可以按原样使用,可以添加自定义键,也可以删除标准键,并且仅使用自定义键。

安全启动是一种有效的工具,应使用。但是,安全启动无法验证底层硬件、固件或安全启动本身是否正在运行。这就是 TPM2 和测量启动发挥作用的地方。测量的引导有时称为受信任的引导。

测量的引导在多个级别工作。TPM2 模块包含一组 24 个平台配置寄存器或 PCR。 软件(如 UEFI 固件)使用 SHA-256 等算法进行哈希处理,哈希存储在 PCR 中。但是,哈希不会直接写入 PCR。相反,哈希使用 TPM2 中的加密操作扩展到 PCR 中。多个测量可以组合成一个PCR。PCR中的最终值取决于每个文件的哈希值和文件的评估顺序。这个过程是确定性的,给定一组文件和一个测量顺序,你每次都会得到相同的结果。这些测量和扩展操作可以在 TPM 外部复制 - 您可以提前确定 PCR 中的最终值应该是多少。

测量启动按一系列操作更新 PCR:一个非常低级别的软件例程(本质上是硬件的一部分)测量 UEFI 固件和选项 rom,例如 NIC 和存储控制器。UEFI 固件测量主引导记录和引导加载程序。引导加载程序测量内核和相关文件。然后,其他工具(如 Linux 完整性测量体系结构 (IMA))可以测量系统的其余部分。测量可以包括文件和配置。其中 8 个 PCR 寄存器已预定义供系统使用,8 个寄存器可供应用定制使用。

TPM和PCR模型旨在使未经检测就无法修改PCR测量,并且在不检测的情况下很难干扰测量过程。

PCR测量可用于多种目的,包括系统完整性的本地和远程证明。它们还可用于 TPM 内部的密封操作。在 TPM 密封中,TPM 保护的机密进一步受到 TPM 策略的保护,该策略在解密机密之前根据批准的值检查 PCR 值。

举个具体的例子,使用 NBDE,您可以根据 PCR 0、2 和 7 密封 LUKS 密码。这将测量 UEFI BIOS (PCR0)、系统中其他设备上的固件 (PCR2) 和安全启动 (PCR7)。仅当 UEFI 固件未修改、其他设备固件未修改且仍启用安全启动时,才会提供 LUKS 密码。请注意,这些检查是在 TPM 内部完成的。这些测量可确保固件未损坏,并且未添加任何 rootkit。虽然不是绝对的保护,但它显着提高了系统的完整性。

在此示例中,无需接触 TPM 即可轻松更新操作系统和应用程序。固件仍然可以更新 - 这需要使用新值重新密封 TPM。

不应在仓库甚至工厂级维护之外更改的安全军事系统可以更严格地锁定,也许使用多个PCR和其他因素,例如连接到网络服务;传感器阵列必须通信才能有用,因此这可能是一种合理的方法。

可以使用此处描述的方法保护任何机密。加密密钥可以直接从 TPM2 加载到内存中,然后在不再需要时立即擦除;它们没有理由保留在磁盘上。并且可以通过发出TPM_reset命令立即擦除整个TPM。

审核编辑:郭婷

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

    关注

    5209

    文章

    20664

    浏览量

    337115
  • Linux
    +关注

    关注

    88

    文章

    11817

    浏览量

    219557
  • 操作系统
    +关注

    关注

    37

    文章

    7439

    浏览量

    129621
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知识分享-嵌入式系统可靠模型

    嵌入式系统可靠设计技术及案例解析1.3嵌入式系统可靠模型
    的头像 发表于 03-11 16:43 393次阅读
    知识分享-<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>可靠<b class='flag-5'>性</b>模型

    什么是嵌入式应用开发?

    系统中,用于控制、监测或通信等特定用途。与一般计算机系统不同,嵌入式系统通常具有较小的存储容量、处理能力和功耗,且需要满足特定的实时、可靠
    发表于 01-12 16:13

    从小白到大牛:Linux嵌入式系统开发的完整指南

    从小白到大牛:Linux嵌入式系统开发的完整指南 一、小白入门:搭建 Linux 嵌入式开发的认知地基​ 对于零基础学习者,首先要打破 “嵌入式
    发表于 12-16 10:42

    嵌入式系统的定义和应用领域

    应用系统在功能、可靠、成本、体积和功耗等方面的严格要求的专用计算机系统。 那么,嵌入式系统具体应用在哪些领域呢?事实上,它们的应用非常
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们在资源利用、可靠、可预测
    发表于 11-13 06:30

    嵌入式软件测试与专业测试工具的必要深度解析

    资源管理、环境描述、接口协议定义、用例设计、实时数据监控等完整功能。该平台具备微秒级强实时,特别适合军工领域应用。 ‌通用嵌入式系统自动化测试平台‌:集成测试资源管理、协议脚本开发
    发表于 09-28 17:42

    【干货速递】嵌入式数据可靠,软件设计的这些细节不能忽视!

    问题。软件设计软件设计在嵌入式数据存储可靠中扮演着至关重要的角色。它不仅包括系统驱动的开发,还涉及应用层面的优化。一个精心设计的软件系统可以显著提高数据的
    的头像 发表于 07-31 11:34 678次阅读
    【干货速递】<b class='flag-5'>嵌入式</b>数据可靠<b class='flag-5'>性</b>,软件设计的这些细节不能忽视!

    【深度解析】硬件电路设计:如何确保嵌入式数据可靠

    嵌入式系统开发中,硬件电路设计是确保数据可靠的关键环节。本期我们将重点探讨硬件设计中的两个重要方面:数据读写保护和掉电保护。硬件电路设计在嵌入式
    的头像 发表于 07-30 11:35 869次阅读
    【深度解析】硬件电路设计:如何确保<b class='flag-5'>嵌入式</b>数据可靠<b class='flag-5'>性</b>?

    什么是信号完整性

    电子发烧友网站提供《什么是信号完整性?.pdf》资料免费下载
    发表于 07-09 15:10 1次下载

    Linux嵌入式和单片机嵌入式的区别?

    ,开发工具包括GCC、Makefile等。 3.操作系统 : 单片机嵌入式 :一般不使用完整的操作系统,或者使用简单的实时操作系统(RT
    发表于 06-20 09:46

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps
    的头像 发表于 06-18 09:53 1064次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    了解信号完整性的基本原理

    作者:Cece Chen 投稿人:DigiKey 北美编辑 随着支持人工智能 (AI) 的高性能数据中心的兴起,信号完整性 (SI) 变得至关重要,这样才能以更高的速度传输海量数据。为确保信号完整性
    的头像 发表于 05-25 11:54 1606次阅读
    了解信号<b class='flag-5'>完整性</b>的基本原理

    Samtec虎家大咖说 | 浅谈信号完整性以及电源完整性

    前言 在这一期的Samtec虎家大咖说节目中,Samtec信号完整性(SI)和电源完整性(PI)专家Scott McMorrow、Rich Mellitz和Istvan Novak回答了观众的提问
    发表于 05-14 14:52 1245次阅读
    Samtec虎家大咖说 | 浅谈信号<b class='flag-5'>完整性</b>以及电源<b class='flag-5'>完整性</b>

    嵌入式适合自学吗?

    基础。对于初学者来说,很难在短时间内建立起完整的知识体系。 2)学习曲线陡峭:嵌入式开发需要掌握多种编程语言、硬件知识、操作系统原理等,学习曲线非常陡峭。例如,学习STM32微控制器时,需要理解其基本架
    发表于 04-27 09:54