Shebu Varghese Kuriakose
2020年7月17日
微控制器的安全性一直是一项挑战,部分原因是缺乏硬件强制的安全域。创建两个安全域通常需要两个微处理器,每个微处理器都有一个单独的内存保护单元(MPU)。与Armv8-M架构一起引入的Arm TrustZone在单个Cortex-M处理器上启用了两个安全处理环境(请参阅Using FreeRTOS on Armv8-M Microcontrollers)。一旦区分了单独的安全和非安全处理环境,您应该如何处理它们呢?
Trusted Firmware-M
安全固件Trusted Firmware-M(TF-M)为ARMv8-M架构(例如,Cortex-M55、Cortex-M33和Cortex-M23处理器)和双核Cortex-M设备实施安全处理环境(SPE)。它是符合PSA认证指南的PSA参考实施,使芯片、实时操作系统和设备能够通过PSA认证。作为在安全固件开放治理社区项目托管的BSD-3条款许可下分发的开放源码项目,它受多种基于Cortex-M的微控制器支持,例如恩智浦LPC55S69、ST STM32L5和Cypress PSoC 64。FreeRTOS使用TF-M获得了PSA功能API认证。
TF-M提供一套安全服务--加密、认证和安全存储。它还通过基于mcuboot的第二阶段引导加载程序提供安全引导,用于验证运行时映像和平台更新。非安全处理环境(NSPE)中的应用程序和库可以通过一组标准化的PSA功能API来利用这些安全服务。在ARMv8-M设备上,TF-M使用ARM TrustZone技术隔离NSPE和安全处理环境(SPE)代码和数据。在Cortex-M设备上运行的应用程序可以利用TF-M服务来确保与边缘网关和物联网云服务的安全连接。它还保护平台上的关键安全资产,如敏感数据、密钥和证书。
TF-M已完成与FreeRTOS的初步集成。这使在Cortex-M设备上运行FreeRTOS的应用程序能够通过PSA功能API利用TF-M提供的安全服务。集成已在Arm Musca-B1参考平台上进行了验证,并有望在带有TF-M的多个Cortex-M平台上使用。
与FreeRTOS内核集成
如下图所示,FreeRTOS内核在NSPE中运行,而TF-M在SPE中运行。FreeRTOS任务可以通过PSA功能API利用任何TF-M安全服务(例如,加密,安全存储和证明)。非安全调度程序将PSA功能API调用从任务转发到TF-M。在Github上可以找到示例集成。NSPE可以使用提供不同级别的安全性和隔离性的IPC或函数调用机制与TF-M通信。FreeRTOS可以根据应用需求使用这些机制中的任何一种与TF-M进行通信。
与PKCS#11集成
FreeRTOS的参考物联网集成提供了各种库和API,例如安全套接字,TLS,OTA代理和PKCS#11(公钥密码标准11),以提高应用程序的安全性。
PKCS#11FreeRTOS中使用API来执行TLS客户端身份验证,并将TLS客户端证书和私钥导入设备。PKCS#11已使用thin shim与TF-M集成,并在Arm Musca-B1参考平台上进行了验证。在集成中,PKCS#11 API通过填充程序调用适当的PSA功能安全存储API或加密API。这样可确保密钥和证书受到保护,并且加密操作在TF-M的SPE中安全地执行,并且与非安全处理环境中的内核,库和应用程序隔离。密钥和证书分别安全地存储在芯片存储和外部闪存中。这是通过TF-M的内部可信存储(ITS)和受保护的存储(PS)服务来启用的。TLS客户端身份验证期间的签名是由TF-M的Crypto服务执行的。可以找到如下图所示的Arm Musca-B1参考平台上的示例集成这里还有自述文件。PSA Functional API Shim可在FreeRTOS项目的psa文件夹下找到,允许启用TF-M的平台使用此垫片层。
表1显示了FreeRTOS中使用的PKCS#11 API和在提供密钥和证书以及TLS客户端认证期间调用的PSA功能API的映射。
下一步
下一步是将FreeRTOS安全组件与TF-M的集成扩展到PKCS#11接口之外。FreeRTOS OTA代理允许应用程序在平台上接收,验证和部署新映像。通过将OTA代理与TF-M的安全启动相集成,FreeRTOS可以利用平台提供的所有安全功能来缓解SPE中的新映像,从而缓解任何映像更新漏洞。当Mbed TLS项目开始使用PSA Functional Crypto API进行加密操作时,由FreeRTOS发起的所有TLS操作都将通过PSA Functional Crypto API调用TF-M Crypto Service。当前的集成和这些增强功能将在支持TF-M的各种Cortex-M设备上提供,从而简化了基于FreeRTOS的应用程序开发人员的安全性。
访问Trusted Firmware项目以了解有关TF-M和Github的更多信息,以访问Musca-B1上的FreeRTOS集成。FreeRTOS和启用TF-M的平台可以利用psa文件夹中的PSA Functional API填充程序