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

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

3天内不再提示

为嵌入式安全关键型应用创建可信平台

星星科技指导员 来源:嵌入式计算设计 作者:Richard Jaenicke,St 2022-11-09 15:44 次阅读

作者:Richard Jaenicke,Steve Edwards

安全关键型应用程序(如跨域解决方案 (CDS))需要一个安全、可信的平台来执行,涵盖软件、固件和硬件。应用程序直接与之交互的最低层是受信任的操作系统 (OS)。对操作系统的信任取决于两个因素:从安全角度来看,操作系统的稳健性,以及确保操作系统已正确加载和配置且永远不会被篡改。操作系统信任还部分取决于受信任的预操作系统功能,例如在操作系统之前执行的安全启动固件。

计算机硬件和软件平台的安全鲁棒性通常通过评估来指定“信息技术安全评估通用标准”(ISO/IEC 15408)1.通常,通用准则评估目标 (TOE) 是根据政府定义的保护配置文件进行评估的,其中包括功能和保证要求。评估可以针对不同的深度和严格性级别进行,称为评估保证级别 (EAL),EAL1 是最不严格的,EAL7 是最严格的。或者,可以通过安全认证实现一定程度的信任。尽管安全认证为完整性和可用性提供了一定程度的保证,但它们通常不直接涉及机密性或其他信任机制。

要信任已加载正确的操作系统 (OS) 代码,需要建立信任链,一直追溯到开机时建立的信任根 (RoT)。信任链中的每个环节都必须具有足够的安全保证功能,并且必须在执行信任链中的下一件软件之前对其进行身份验证。RoT 的稳健性是任何可信平台的关键起点。健壮性级别范围很广,从软件 RoT 到基于硬件中嵌入的物理不可克隆功能 (PUF) 的健壮性级别。

安全稳健性

在美国政府定义的保护配置文件中,稳健性是衡量 TOE 保护自身、数据和资源能力的指标。稳健性级别分为基本、中等或高2.TOE 所需的稳健性级别的特征是它所保护的数据的价值以及为其部署环境识别的威胁的函数。

基本健壮性环境定义为遇到由无意错误或随意淘气的用户引入的威胁的环境。通常,“最佳商业做法”足以在基本的健壮环境中保护信息3.中等健壮性环境就足够了,攻击者的动机被认为是“中等”的,并且攻击者至少具有中等水平的资源或专业知识2.一般来说,中等健壮性“适用于假定的非敌对和管理良好的用户社区,这些用户社区需要防止无意或随意尝试破坏系统安全的威胁。4

对于同时存在复杂威胁代理和高价值资源的环境,需要高稳健性 TOE,从而导致尝试安全入侵的可能性很高5.高鲁棒性需要 EAL6 或更高,适用于保护系统免受极其复杂和资金充足的威胁,例如来自民族国家和国家实验室的攻击。对于中高稳健性环境,通常需要要求将产品的某些硬件组件作为TOE的一部分进行评估。此要求使产品不太可能受到损害以及始终调用安全策略的置信度更高2.

信任链

为跨域解决方案 (CDS) 应用程序提供安全的计算环境部分取决于建立信任链,从硬件 RoT 开始,一直延伸到软件的每一层。链中每个环节的信任有两个组成部分:安全解决方案的稳健性和组件的真实性。真实性由加密签名确保,通常采用安全哈希算法的形式。身份验证可以保证加载的软件是预期的软件,而不是其他软件,但身份验证不解决安全功能,包括没有漏洞。

信任链的起点,RoT,可以基于软件,但硬件RoT更安全。硬件 RoT 的主要选择包括单独的可信平台模块 (TPM) 芯片、片上引导 ROM 代码和基于物理不可克隆功能 (PUF) 的片上安全性。

在基于英特尔处理器的系统上,英特尔可信执行技术 (TXT) 使用 TPM 为 BIOS 和虚拟机管理程序或操作系统内核的哈希存储已知良好的值。打开电源时,BIOS 的哈希值将与 TPM 中存储的值进行比较。如果匹配,则加载 BIOS,并计算和比较虚拟机管理程序或操作系统内核的哈希。请注意,CPU 的某些部分已经在运行以计算哈希,并且引导微码(这是 CPU 执行的第一个软件)已经由处理器本身进行了加密身份验证。

基于 FPGA 的 RoT

使用内置于自身芯片中的 RoT 的设备可以实现更高级别的安全性。此类器件的典型示例包括Microsemi PolarFire或SmartFusion2 SoC FPGA[现场可编程门阵列],Intel Stratix 10 FPGA和Xilinx Zynq UltraScale+ MPSoC [多处理器片上系统]。对于 Zynq MPSoC,金属屏蔽引导 ROM 代码与存储在硬件 eFUSE 中的 RSA 密钥哈希一起提供硬件 RoT。器件的配置安全单元 (CSU) 从片上金属屏蔽 ROM 启动并强制执行 RoT。它通过使用 SHA-3/384 引擎计算用户公钥的加密校验和来验证从外部存储器读取的用户公钥的完整性,然后将其与存储在 eFUSE 中的值进行比较。如果匹配,CSU 将加载并验证第一阶段引导加载程序 (FSBL)7.

引导过程的某些部分,例如加载FPGA比特流,除了真实性之外,可能还需要机密性。片上 PUF 可用于创建密钥加密密钥 (KEK),该密钥用于加密用于解密比特流的用户对称密钥。KEK 永远不会存储,而是在每次通电时基于 PUF 创建,PUF 在物理上是唯一的,无法复制。在某些设备上,可以采用相同的技术来生成用于验证引导 ROM 的初始密钥,而不是存储密钥 eFUSE,从而进一步增强安全性。

一旦 SoC 或 FPGA 安全启动,它就可以充当主处理器的 RoT。它可用于提供启动过程的硬件身份验证,并确保处理器仅执行受信任的代码8.

信任链中的漏洞

如上所述,尽管对信任链中的每个环节进行身份验证可确保只加载预期的软件,但身份验证并不能解决安全功能问题,包括免于漏洞。因此,应设计、测试和验证代码的每个部分,使其没有漏洞。此规则特别适用于金属屏蔽的引导 ROM 代码,如果以后发现漏洞,则无法轻松更新。

例如,最近发现的英特尔融合安全和管理引擎(CSME)启动ROM中存在一个在过去五年中未被发现的缺陷,该漏洞可以控制芯片组密钥的读取和所有其他加密密钥的生成。9.一旦攻击者获得此芯片组密钥,他们就可以解密使用英特尔平台信任技术 (PTT) 加密的任何数据,并伪造设备的增强型隐私 ID (EPID),用于远程证明受信任的系统。更重要的是,由于该漏洞位于金属掩蔽的引导ROM中,因此无法使用固件更新对其进行修补10.

米尔斯架构

一旦建立了可信的硬件平台,下一步就是软件架构的设计。为 CDS 应用程序构建可信软件环境最容易接受的途径是实现高健壮性的多独立安全级别 (MILS) 操作环境。MILS 将软件架构分为三层:分离内核、中间件和应用程序。每一层强制实施安全策略集的单独部分。分离内核是唯一以特权模式执行的层。应用程序可以实施自己的安全策略,启用特定于应用程序的策略,而不是依赖于整体内核中的广泛安全策略。每一层和每个应用程序都可以单独评估,而不会影响其他层/应用程序的评估,使CDS系统更易于实施、认证、维护和重新配置11.

分离内核12使用基于硬件的内存管理单元 (MMU) 将内存划分为多个分区,并且只允许在非内核分区之间仔细控制通信。此外,操作系统服务(如网络堆栈、文件系统和大多数设备驱动程序)在分区中执行,而不是在特权模式下的内核中执行(图 2)。由于分离内核依赖于硬件功能(如 MMU)来强制实施某些分离要求,因此必须信任硬件平台。

[图2 |使用分离内核,应用程序在隔离分区中运行,并通过多个单级安全性 (MSLS) 文件服务器或网络堆栈访问外部数据。

整洁的安全属性

分离内核强制实施数据隔离并控制分区之间的通信。这使得不同分类级别的不受信任的应用程序和数据对象驻留在单个处理器上。分离内核还使受信任的应用程序能够与受信任程度较低的应用程序在同一处理器上执行,同时确保受信任的应用程序不会受到受信任程度较低的应用程序以任何方式的损害或干扰。分离内核实施的安全策略是不可绕过的、始终被调用和防篡改的,因为它是唯一在处理器上以特权模式运行的软件13.此外,分离内核的小尺寸使其“可评估”。这四个属性 - 不可绕过,可评估,始终调用和防篡改 - 由首字母缩略词“NEAT”表示。

MILS操作环境中NEAT特性的保证使多级安全(MLS)系统能够设计为一组独立的系统级分区,具有跨域解决方案,可在这些分区之间以及与外部系统之间实现安全通信。利用在经过高健壮评估的分离内核中提供的 NEAT 安全策略实施,可以生成小型且紧密集中的跨域服务器、降级程序和防护装置。反过来,这一步使对这些跨域解决方案的高确定性评估变得实用、可实现且经济实惠。

隐蔽通道

实现高稳健性最具挑战性的要求之一是缓解隐蔽通道,这是一种意外或未经授权的通信路径,可用于以违反安全策略的方式传输信息15.隐蔽通道可以分为基于存储或基于定时,或者两者的混合。隐蔽存储通道通过一个应用程序在另一个应用程序可读的位置设置位来传输信息。隐蔽定时通道通过一段时间内调节系统行为的某些方面来传达信息,其方式可以被另一个应用程序观察到。

许多隐蔽渠道的识别和缓解极具挑战性。高鲁棒性分离内核必须证明已采用系统方法来识别和缓解各种可能的通信机制中的隐蔽信道。缓解技术包括关闭或阻止隐蔽信道,限制潜在隐蔽信道的带宽,使保证大于风险,并确保只有高度受信任的应用程序才能访问隐蔽信道。

扩展的安全功能

根据所需的安全健壮性级别,安全系统体系结构可能需要的其他功能包括审核日志记录、完整性测试和抽象计算机测试 (AMT)。审核日志记录记录分离内核执行期间的特定事件,以检测潜在的恶意代码行为。完整性测试可确保存储在易失性和非易失性 RAM 中的分离内核的可执行映像的完整性。完整性测试包括对分离内核在RAM中的活动可执行映像的连续测试以及一组上电测试。AMT 是确保实施硬件保护机制的持续测试;例如,那些尝试内存冲突和特权指令执行的测试,以确保在虚拟地址空间之间强制分离的硬件仍在运行。审核日志记录、完整性测试和 AMT 都需要满足高可靠性。

受信任的硬件和软件解决方案示例

Curtiss-Wright 的 CHAMP-XD1S 3U VPX 数字信号处理 (DSP) 模块采用英特尔至强 D 处理器、Xilinx Zynq UltraScale+ MPSoC FPGA 和基于闪存的美高森美 SmartFusion2 FPGA,可提供专为高性能嵌入式计算 (HPEC) 设计的安全处理器板。该模块的 FPGA 和软件安全功能具有 TrustedCOTS 增强型可信启动功能,包括基于 FPGA 的安全根,可防止恶意网络攻击、探测和逆向工程。CHAMP-XD1S 使用 TPM 2.0 安全芯片来支持英特尔 TXT 安全启动技术。该开发板还使用 Zynq UltraScale+ MPSoC 中的 PUF 来生成用于验证启动代码的加密密钥。该身份验证可用作 RoT,以将信任扩展到系统的其他部分。SmartFusion 2 FPGA 提供健康和管理功能,并可集成其他安全功能。

在软件领域,Green Hills Software的INTEGRITY-178 tuMP实时操作系统(RTOS)提供了一个基于分离微内核的MILS操作环境,该微内核能够托管MLS应用程序,包括跨域解决方案。RTOS 提供高鲁棒性分离内核所需的高级别数据隔离、信息流控制、资源清理和故障隔离。这些基础安全策略是不可绕过的、可评估的、始终调用的和防篡改的(再次,NEAT 首字母缩略词),提供了将 MLS 系统设计为一组独立的安全分区所需的高保证级别,具有跨域解决方案,可实现这些分区之间的安全通信。

2008年,INTEGRITY-178 RTOS成为第一个也是唯一一个通过美国国家安全局(NSA)信息保障局发布的“美国政府在需要高鲁棒性的环境中分离内核保护概况”(SKPP)认证的操作系统。SKPP的认证是高鲁棒性和EAL6+。

作为SKPP认证的一部分,RTOS经过了NSA的独立漏洞分析和渗透测试,以证明它能够抵抗具有高攻击潜力的攻击者,并且不允许具有高攻击潜力的攻击者违反安全策略。此外,它还接受了 NSA 的隐蔽信道分析,以证明它满足所有隐蔽信道缓解指标。

除了被批准为 MILS 分离内核之外,INTEGRITY-178 还提供了一套完整的 API,这些 API 也经过 NSA 评估,供安全分区内的 MLS 应用程序使用 – MLS 防护,这是跨域系统的基本要求。这些安全 API 包括对多线程的支持、多核上的并发执行以及配置文件级别的灵活核心分配,所有这些都在安全的 MILS 环境中进行。

审核编辑:郭婷

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

    关注

    5060

    文章

    18983

    浏览量

    302298
  • 计算机
    +关注

    关注

    19

    文章

    7385

    浏览量

    87645
  • 操作系统
    +关注

    关注

    37

    文章

    6703

    浏览量

    123151
收藏 人收藏

    评论

    相关推荐

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ Hypervisor应用场景调研

    Hypervisor有两个类型:I和II,其中I直接运行在硬件设备上,II运行在一个操作系统上,该操作系统运行在硬件设备上,也就是下图中的宿主操作系统。 而我所关心的
    发表于 10-14 11:21

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    领先地位。   AMD EPYC 嵌入式 8004 系列处理器专为计算密集嵌入式系统所设计,可为高需求工作负载提供卓越性能,同时以紧凑的尺寸规格最大限度空间和功率受限
    发表于 10-11 13:58 663次阅读

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    Hypervisor是一种在嵌入式系统中实现虚拟化技术的关键组件,它能够在同一硬件平台上并行运行多个操作系统或应用程序,提供资源隔离、管理和优化。通过引入时空域隔离的虚拟机,嵌入式Hy
    发表于 10-09 19:11

    七大嵌入式GUI盘点

    。 MiniGUI 一款国产GUI,一款面向嵌入式系统的高级窗口系统和图形用户界面(GUI)支持系统,由魏永明先生于1998年底开始开发。2002年,魏永明先生创建北京飞漫软件技术有限公司,MiniGUI
    发表于 09-02 10:58

    学习hypervisor嵌入式产品安全设计

    第一部分(第1~2章)介绍Hypervisor基础,涵盖虚拟化技术与实现、主流的嵌入式Hypervisor产品,以及基于分离内核的嵌入式Hypervisor等内容。第二部分(第3~12章)介绍嵌入式
    发表于 08-25 09:11

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从嵌入式平台的特点、深度学习算法的
    的头像 发表于 07-15 10:03 1117次阅读

    好事成双! 德承推出两款精简紧凑嵌入式电脑,效能升级,应用更广

    强固嵌入式电脑品牌 – Cincoze 德承,强势推出 Rugged Computing – DIAMOND 系列旗下两款新精简嵌入式电脑。
    的头像 发表于 06-03 15:28 170次阅读
    好事成双! 德承推出两款精简紧凑<b class='flag-5'>型</b><b class='flag-5'>嵌入式</b>电脑,效能升级,应用更广

    嵌入式会越来越卷吗?

    技术,如加密算法、防火墙等,嵌入式系统能够更好地保护数据和系统的安全。 融合与互联的趋势 嵌入式系统不再孤立存在,它们正在与其他技术和平台进行深度融合。云计算、边缘计算等技术的兴起,
    发表于 03-18 16:41

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被
    的头像 发表于 03-15 14:29 1170次阅读

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:
    发表于 02-02 15:24

    高端嵌入式实验平台

    一、整体概述 该嵌入式平台具有前沿性、专业性、高集成度、功能丰富等特点,平台涵盖嵌入式计算机技术、嵌入式硬件接口、
    的头像 发表于 01-29 09:55 482次阅读
    高端<b class='flag-5'>嵌入式</b>实验<b class='flag-5'>平台</b>

    基于功能安全的汽车嵌入式软件单元验证技术研究

    随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件的安全性提出了更高要求,基于功能安全嵌入式软件开发和测试已成为汽车行
    的头像 发表于 01-07 11:27 989次阅读
    基于功能<b class='flag-5'>安全</b>的汽车<b class='flag-5'>嵌入式</b>软件单元验证技术研究

    什么是嵌入式板卡?

    嵌入式板卡是配备处理器、各种集成电路、接口和其他关键组件的电路板,所有这些组件都组装起来以执行特定功能。如USB、Ethernet、串口、GPIO等,以便连接外部设备和传感器。它们还可能包括扩展插槽
    的头像 发表于 12-20 16:17 786次阅读
    什么是<b class='flag-5'>嵌入式</b>板卡?

    什么是嵌入式系统?嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2350次阅读

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    。搭建Linux平台交叉编译环境在上一篇文章我们介绍了使用AWTK开发简单的应用并在PC上模拟运行,本篇文章就来介绍一下怎么让应用程序运行在嵌入式Linux平台上。1
    的头像 发表于 12-07 12:08 655次阅读
    【从0开始<b class='flag-5'>创建</b>AWTK应用程序】编译应用到<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>平台</b>运行