中国电子技术网

设为首页 网站地图 加入收藏

 
 

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

关键词:嵌入式安全 FPGA

时间:2022-11-11 09:30:42      来源:嵌入式计算设计

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

作者: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 环境中进行。

  • 分享到:

 

猜你喜欢

  • 主 题:英飞凌XMC4000支持EtherCAT®通讯的伺服/IO控制方案介绍
  • 时 间:2024.04.25
  • 公 司:英飞凌&骏龙科技

  • 主 题:安森美数字助听芯片的创新
  • 时 间:2024.05.09
  • 公 司:安森美

  • 主 题:IO-Link 技术介绍及相关设计解决方案
  • 时 间:2024.05.22
  • 公 司:ADI & Arrow