每个安全微控制器的三种必要特性

多年来,嵌入式开发人员总是能够忽视安全性。嵌入式系统曾是断开连接的独立系统,只需要关注物理篡改问题。物联网 (IoT) 让这种“优越感”荡然无存。对于几乎所有已接入设备而言,安全性现在是最关心的问题。为了正确保护设备安全,开发人员必须寻求三个关键的微控制器单元 (MCU) 特性 - 基于硬件的隔离、内存保护单元 (MPU) 和加密加速器。让我们一起探索这三个关键特性。

安全 MCU 特性 #1:安全的处理环境

为确保嵌入式系统的安全,一个关键概念是采用隔离设计。对于一起运行以实现共同目标的内存、元器件和功能来说,隔离提供了一种边界或栅栏。如果攻击者能够利用系统的某个区域,隔离屏障就会保护第二个区域,使攻击者无法立即访问它。

嵌入式系统通常隔离为两个主要区域:非安全处理环境 (NSPE) 和安全处理环境 (SPE)。要实现这两种执行环境,最佳方式是使用基于硬件的隔离。这种隔离有两种实现方法 - 使用多核 MCU 或带有 Arm TrustZone 的单核 MCU。

在多核解决方案中,一个处理器专用于 SPE,另一个则专用于 NSPE 中的多特性处理器。两个内核在物理上相互隔离,仅通过共享 RAM 和进程间通信 (IPC) 进行通信。如果 NSPE 遭到黑客攻击,安全核心中的任何隔离数据、内存和功能仍将被隔离和保护。攻击者必须找到一种方法来破解安全核心。Infineon Technologies 的 PSoC 64 是使用多核方法的 MCU 示例。

PSoC 64 带有用于多应用 NSPE 的 Arm Cortex-M4 处理器和用于 SPE 的 Arm Cortex-M0+ 安全内核。两个内核可以通过 IPC 进行通信。要尝试多核安全解决方案,CY8CKIT-064S0S2-4343W 这款支持 Wi-Fi 和蓝牙的 PSoC 64 Pioneer 套件,便是一个值得关注的入门开发板(图 1)。

图 1:CY8CKIT-064S0S2-4343W Pioneer 套件提供了一个安全开发平台,可供开发人员使用多核安全解决方案。(图片来源:Infineon Technologies)

TrustZone 解决方案与多核隔离模型的不同之处在于它使用单个处理核心,但处理过程仍分为 NSPE 和 SPE。需要执行安全功能时,处理器以确定性方式从 NSPE 切换到 SPE,这种方式通常需要三个时钟周期或更短。一个支持 TrustZone 的 MCU 示例是 STMicroelectronicsSTM32L562CET6

基于硬件的隔离是开发人员在安全 MCU 中寻求的第一个功能。下一个特性是 MPU。

安全 MCU 特性 #2:MPU

MPU 是用于保护内存的硬件外设。嵌入式开发人员需要 MPU,其能让他们在应用程序代码中进一步创建基于硬件的隔离区域。例如,虽然开发人员可能会利用 SPE,但 SPE 还可使用 MPU 进一步分解为多个隔离区域。如果攻击者攻破 SPE,他们仍需要设法进入 MPU 所保护的每个隔离内存区域。

MPU 可以被认为是一个精简的内存管理单元 (MMU),让开发人员能够将软件分解为多个隔离进程。MPU 可用于任何存储位置,包括闪存、RAM 和外设。MPU 用于设置执行和访问权限。同样,如果攻击者可以访问一个进程,他们将受限于基于 MPU 设置的访问权限。如果尝试访问 MPU 设置之外的内存区域,MPU 将引发错误。然后系统可以尝试恢复或重置。因此,MPU 就成为开发人员保护系统所需的关键特性。

安全 MCU 特性 #3:加密加速器

开发人员需要在安全 MCU 中寻求的第三个特性是加密加速器。加密加速器用于加速复杂计算,否则 CPU 将花费较长时间来处理这些计算。CPU 可以将工作卸载到加速器,这样就能并行处理其他问题。结果是缩短了加密操作花费的时间,节省了 CPU 周期,甚至可能会节省电池供电设备的能耗。

开发人员可以使用加密加速器执行多种操作。首先,可用于加密通信或数据。常用加密方案是 AES-256,但也能根据 MCU 支持其他加密方案。另一个应用是计算数据集哈希值。这在验证应用程序代码或一段数据的完整性时非常有用。

加密加速器很容易被忽视,但任何完备的安全 MCU 都带有加密加速器。开发人员的诀窍是检查所支持的内容,并确保其具有应用程序预期生命周期所需的功能。

总结

安全性并非开发人员在开发周期结束时才加入系统中。他们必须尽早关注系统面临的威胁,并选择包含保护系统所需的所有硬件功能的 MCU。

关于此作者

Image of Jacob Beningo

Jacob Beningo 是一位嵌入式软件顾问,目前与十几个国家的客户保持合作,通过帮助客户改善产品质量、降低成本和加快上市时间来大幅改变他们的业务。Jacob 先后发表了 200 多篇关于嵌入式软件开发技术的文章,是一位广受欢迎的演讲者和技术培训师。他拥有三个学位,其中包括密歇根大学的工程硕士学位。如有需要,欢迎随时通过 jacob@beningo.com 与其联系,也可访问其网站 www.beningo.com,并订阅其月度 Embedded Bytes Newsletter

More posts by Jacob Beningo
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum