15

啥都吃的豆芽 · 2020年07月22日

Arm与FreeRTOS如何保障IoT的安全性

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服务来确保与边缘网关和物联网云服务的安全连接。它还保护平台上的关键安全资产,如敏感数据、密钥和证书。

image.png

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进行通信。

image.png

与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的平台使用此垫片层。

image.png

表1显示了FreeRTOS中使用的PKCS#11 API和在提供密钥和证书以及TLS客户端认证期间调用的PSA功能API的映射。

image.png

下一步

下一步是将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填充程序

image.png

推荐阅读
关注数
4548
内容数
127
Arm发布的PSA旨在为物联网安全提供一套全面的安全指导方针,使从芯片制造商到设备开发商等价值链中的每位成员都能成功实现安全运行。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息