连接到互联网的产品数量继续以指数速度增长。许多产品团队面临的问题是嵌入式软件开发人员没有足够的安全经验。缺乏经验会导致被忽视的安全要求、安全漏洞和糟糕的实施。结果是连接的系统受到的保护很差,并且很容易窃取知识产权以及设备和用户数据。
基于微控制器的系统的设计人员可以使用多种解决方案,这些解决方案可用于简化安全实施并为他们提供成功实现这一目标的工具。例如,单核微控制器可以使用Arm 的TrustZone,它是 Armv8-M 架构(及更高版本)的一部分。还有多核微控制器的解决方案。
本文展示了开发人员如何使用多核处理器来保护他们的嵌入式解决方案。具体来说,它检查了赛普拉斯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/赛普拉斯)
PSoC 64 是双核微控制器,其中 NSPE 在 Arm Cortex®-M4 处理器上执行,SPE 在 Arm Cortex-M0+ 处理器上执行。Arm Cortex-M0+ 运行所有安全功能,并可通过处理器间通信 (IPC) 总线与 Cortex-M4 通信。该架构限制了对硬件隔离的 SPE 的访问。
要开始使用 PSoC 64,开发人员需要查看PSoC 64 Secure Boot Pioneer Kit。
PSoC 64 安全启动先锋套件
PSoC 64 Secure Boot Pioneer 套件(图 2)具有开发人员开始保护其应用程序所需的一切。首先,它有一个 PSoC 64 模块,其中包含 PSoC 64 微控制器、外部存储器和所有支持电路(以红色显示)。外部存储器可用于存储应用程序代码或用于存储新固件映像以进行安全的无线固件 (FOTA) 更新。
图 2:PSoC 64 Secure Boot Pioneer 套件拥有开发人员开始开发安全物联网应用所需的一切。(图片来源:赛普拉斯)
接下来,它有一个 Wi-Fi 模块,允许开发人员将电路板连接到网络。Wi-Fi 模块对于板将连接到 AWS 或 Azure 等云服务的 IoT 应用程序特别有用。开发板支持 Amazon FreeRTOS,我们将在下一节讨论。
最后,Pioneer 套件支持广泛的扩展功能,例如引脚接头、Arduino接头和一系列传感器。开发人员可以利用板载触摸滑块和触摸按钮、按钮、电位器等。该板还设置为使几乎任何应用程序的定制都非常容易。
PSoC 64 安全软件套件
设计安全的嵌入式应用程序可能既耗时又具有挑战性。开发人员应该寻找有助于降低成本和缩短上市时间的解决方案,同时确保他们的应用程序是安全的。为此,PSoC 64 提供了广泛的软件,使开发人员能够快速构建安全的应用程序。
例如,CySecureTools为开发人员提供了用于创建密钥和证书的工具集,以及用于签署用户应用程序和配置赛普拉斯微控制器的工具。该工具允许开发人员转移 Cypress RoT,然后注入他们自己的安全资产。有关如何设置和使用 CySecureTools 的信息可以在 github 存储库 README 文件中找到。
物联网开发人员会发现一个有用的工具是使用 FreeRTOS支持AWS 。github 存储库包含将 FreeRTOS 和 AWS 与 PSoC 64 结合使用的有用示例。开发人员感兴趣的第一个示例是“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 IoT 安全框架的参考实现。它为开发人员提供了有用的安全工具,例如设备证明、固件验证、加密服务、设备机密管理和安全分区等。赛普拉斯利用 TF-M 构建其安全框架,以便开发人员可以在他们的应用程序中使用它。
开发人员可以通过添加自己的代码、添加安全配置文件等等来修改他们的安全框架。但是,重要的是要记住,修改 SPE 软件的次数越多,添加漏洞的可能性就越大。开发人员需要仔细权衡与更改、添加或减少基线固件相关的风险。
保护嵌入式应用程序的提示和技巧
首次希望保护其嵌入式应用程序的开发人员需要考虑很多事情。以下是一些可以简化和加速开发的“提示和技巧”:
在开发周期的早期执行威胁模型和安全分析 (TMSA)。
使用开发板测试设备 RoT、安全引导加载程序、设备配置过程和固件更新。
不要单独实施安全!利用现有的开源和安全固件堆栈来最大程度地减少返工。
请务必考虑设备的生命周期,包括如何安全退役。
探索 CySecureTools 等工具;此类工具附带示例安全模板、软件和示例。
克隆 FreeRTOS github 存储库时,克隆最新的标记版本。克隆活动主线通常会导致发现工具不兼容和仍在进行中的错误。
浏览 Cypress CY8CKIT-064S0S2-4343W 套件入门,开始一个项目。它提供了运行基线应用程序所需的所有必要信息,然后可以针对特定产品目的进行修改。
遵循这些“提示和技巧”的开发人员会发现他们节省了相当多的时间和痛苦。
结论
安全并不一定很难。嵌入式开发人员应该专注于他们产品的差异化,他们的秘诀。在大多数情况下,这不是安全性。本文探讨了 PSoC 64 如何帮助开发人员快速保护他们的应用程序,不仅提供基于硬件的隔离环境,还提供软件工具框架。硬件和软件解决方案共同为开发人员提供了加速的安全开发周期。
评论
查看更多