使用 PSoC 64 确保嵌入系统的安全
投稿人:DigiKey 北美编辑
2022-07-27
接入互联网的产品数量继续以指数级的速度增长。许多产品团队面临的问题是,嵌入软件开发人员的安全经验不足。缺乏经验会导致忽视安全要求、安全漏洞和实施不良。从而导致接入系统、设备和用户数据得不到充分保护,容易被窃取知识产权。
基于微控制器的系统的设计人员可以选择多种解决方案,以简化安全应用的实现,并提供有助于成功实现的工具。例如,单核微控制器可以使用 Armv8-M 架构(及以上)的 Arm TrustZone。也有采用多核微控制器的解决方案。
本文介绍了开发人员如何使用多核处理器来确保其嵌入解决方案的安全。具体而言,本文研究了 Cypress 的 PSoC 64 安全微控制器及其提供的用于实现安全解决方案的工具。
嵌入安全基本原理
设计安全产品的核心基本原理之一是利用基于硬件的隔离。这种隔离可以有多种形式,如隔离的执行环境,或基于内存保护单元 (MPU) 的隔离内存。在最高级别,微控制器需要能将其执行环境分离成安全处理环境 (SPE) 和非安全处理环境 (NSPE)。
SPE 是隔离的执行环境,其中内存、元器件和应用代码与 NSPE 分离。SPE 可以看作一个安全处理器。SPE 运行安全代码和操作,如安全操作系统和/或信任根 (RoT)。SPE 还将执行可信服务,如加密、安全存储、认证和安全记录。与安全操作相关的少数可信应用会在 SPE 中运行。
至于 NSPE,则可被视为功能多样的执行环境,可以运行除安全操作以外的各种操作。实际上,大多数嵌入系统开发人员确实熟悉 NSPE 编程模型,其中有 RTOS 和大多数应用的元器件。
基于硬件的隔离是 Arm® 平台安全架构 (PSA) 为构建安全系统提供的核心租户或最佳实践之一。图 1 以 PSoC 64 为例展示了我们刚才探讨的不同隔离层的实现。本例中,SPE 和 NSPE (1) 的运行时环境位于不同的处理器上,由此形成硬件隔离。除了运行时分离,RoT 和可信服务也被进一步隔离 (2)。最后,SPE 中的每个可信应用还利用可信分区和 MPU (3) 等工具进行隔离。
图 1:安全应用采用基于硬件的隔离来分离执行环境。1) NSPE 和 SPE 是隔离的 2) RoT 和可信服务是隔离的 3) 可信应用是隔离的。(图片来源:Arm/Cypress)
PSoC 64 是双核微控制器,其中 NSPE 在 Arm Cortex®-M4 处理器上执行,而 SPE 在 Arm Cortex-M0+ 处理器上执行。Arm Cortex-M0+ 运行所有的安全功能,并可通过处理器间通信 (IPC) 总线与 Cortex-M4 通信。该架构限制访问 SPE,SPE 为硬件隔离。
开始使用 PSoC 64 之前,开发人员需查看 PSoC 64 Secure Boot Pioneer Kit。
PSoC 64 Secure Boot Pioneer Kit
PSoC 64 Secure Boot Pioneer Kit(图 2)包含开发人员为确保应用安全所需的一切。首先,它有一个 PSoC 64 模块,其中有 PSoC 64 微控制器、外部存储器和各种支持电路(图示红色部分)。外部存储器可用于存储应用代码,或用于新固件映像,以实现安全的固件线上更新 (FOTA)。
图 2:PSoC 64 Secure Boot Pioneer Kit 包含开发人员为开发安全的物联网应用所需的一切。(图片来源:Cypress)
其次,带有 Wi-Fi 模块,开发人员可以通过该模块将电路板接入网络。Wi-Fi 模块对物联网应用特别有用,因为其中的电路板会连接到 AWS 或 Azure 等云服务。该开发板支持 Amazon FreeRTOS,我们将在接下来的部分进行讨论。
最后,Pioneer Kit 支持广泛的扩展功能,如排针、Arduino 针座和各种传感器。开发人员可以使用板载触摸滑块和触摸按钮、按钮、电位计等。电路板的设置也使定制相当容易,几乎可针对任何应用进行定制。
PSoC 64 Secure Software Suite
设计安全的嵌入应用可能会耗时费力。开发人员应该寻找有助于降低成本和加快上市的解决方案,同时还要确保应用的安全性。为帮助实现此目标,PSoC 64 提供了大量的软件,使开发人员能够快速构建安全的应用。
例如,CySecureTools 为开发人员提供了创建密钥和证书的工具集,以及签署用户应用和配置 Cypress 微控制器的工具。该工具允许开发人员转移 Cypress RoT,然后注入自己的安全资产。关于如何设置和使用 CySecureTools 的信息可以在 github 资源库 README 文件中找到。
对于物联网开发人员有用的工具可支持 使用 FreeRTOS 的 AWS。Github 资源库包含了在 PSoC 64 上使用 FreeRTOS 和 AWS 的有用示例。开发人员会感兴趣的第一个示例是“Hello World”应用,它将 MQTT 消息从 PSoC 64 传输到 AWS 云。此示例可以让开发人员浏览配置过程、密钥生成和部署阶段。在此示例的最后,开发人员有一个安全的嵌入设备连接到 AWS。关于如何开始的信息详见 CY8CKIT-064S0S204343 套件入门指南。
用 Trusted Firmware-M (TF-M) 确保应用安全
PSoC 64 为开发人员提供了开箱即用的安全框架,可以根据应用轻松定制。开发人员可能会发现,从软件的角度了解基础知识非常有用。具体来说,PSoC 64 固件利用 Trusted Firmware-M(或 TF-M)开源基准安全框架。
TF-M 是 Arm PSA 物联网安全框架的一个基准实现。它为开发人员提供了有用的安全工具,如设备认证、固件验证、加密服务、设备秘钥管理和安全分区等。Cypress 利用 TF-M 来构建其安全框架,以便开发人员可以在自己的应用中使用该框架。
开发人员可以通过添加自己的代码、添加安全配置文件等方式修改其安全框架。但要切记,SPE 软件被修改得越多,漏洞增加的几率就越大。开发人员需要认真权衡与变更、增加或减少基线固件相关的风险。
确保嵌入应用安全的技巧和诀窍
首次想要确保其嵌入应用安全的开发人员需要考虑诸多问题。下面有几个“技巧和窍门”,可以简化和加速开发:
- 在开发早期进行威胁模型和安全分析 (TMSA)。
- 使用开发板来测试设备 RoT、安全引导程序、设备配置过程和固件更新。
- 不要单独实施安全!利用现有的开源安全固件堆栈,以尽量减少返工。
- 务必考虑设备的生命周期,包括如何安全停用。
- 了解 CySecureTools 等工具,这些工具可提供安全模板、软件和示例。
- 在复制 FreeRTOS github 资源库时,选择最新的标记版本。复制活跃的主线,往往会导致工具不兼容和漏洞依然存在。
- 开始项目时,先浏览 Cypress CY8CKIT-064S0S2-4343W 套件入门指南。指南中提供了运行基线应用的所有必要信息,然后可以针对具体产品目的进行修改。
遵循这些“技巧和窍门”,可以帮助开发人员节省更多的时间,减少更多的麻烦。
总结
安全问题并非难以处理。嵌入系统开发人员应该专注于他们产品的差异化,即他们的秘诀。多数情况下,这并不涉及安全问题。本文探讨了 PSoC 64 如何通过同时提供基于硬件的隔离环境和软件工具框架,来帮助开发人员快速确保其应用的安全。这些硬件和软件解决方案结合,加快了开发人员的安全开发周期。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。