在FreeRTOS 项目开发中,信息安全(security)和功能安全一直非常重要。FreeRTOS不断提升包括内存安全在内各种安全技术。最近,FreeRTOS已通过物联网平台安全评估标准 (SESIP) 的2级和平台安全架构规范(PSA)的1级认证。
下面我们来了解一下FreeRTOS针对IoT安全应用提供的机制。
SESIP认证SESIP 指物联网平台安全评估标准,源自计算机安全认证的国际标准 (ISO/IEC 15408)。SESIP 认证包含五个保证级别。随着保证级别的增加,测试的复杂性和严格性也会增加。GlobalPlatform 管理五个 SESIP 保证级别,测试合作伙伴执行测试。
FreeRTOS的SESIP 项目,配置了FreeRTOS 202012.00 LTS 库,用于认证测试。FreeRTOS基于SESIP 级别2进行了测试,其中包括为期两周的黑盒渗透测试。
当应用程序需通过 SESIP 认证时,选择通过SESIP 认证的硬件和软件开发后,仅需验证应用程序,技术原理见下图所示。
PSA认证
PSA是ARM在2017年推出的平台安全架构,主要目的是实现成本可控,易于实施,低风险的物联网安全基础平台。
PSA认证是Arm平台安全架构(PSA)框架的最新部分,为物联网(IOT)芯片、软件和设备提供独立的测试和认证。PSA安全认证建立了从威胁模型和安全需求分析、硬件和固件的架构设计、安全系统的产品实现到安全测试与认证的闭环,旨在确保IoT产品从设计到实际应用的安全性。
PSA认证分为Level 1 、Level 2和Level 3三个安全等级。FreeRTOS通过了PSA的1级认证。
TF-M微控制器的安全一直是一项挑战,部分原因是缺乏硬件强制的安全域。创建两个安全域通常需要两个微处理器,每个微处理器都有一个单独的内存保护单元(MPU)。Armv8-M架构中的TrustZone机制在单个Cortex-M处理器上启用了两个安全处理环境,为安全实现提供硬件基础。
TF-M的全称是Trusted Firmware for M,是一个开源的符合PSA认证指南的PSA参考实现,为ARMv8-M架构(例如Cortex-M55、Cortex-M33和Cortex-M23处理器)和双核Cortex-M设备实施安全处理环境(SPE) ,使芯片、实时操作系统和设备能够通过PSA认证。
TF-M实现了非安全区域和安全区域的隔离,同时在安全区域实现了APP RoT和PSA RoT之间的隔离。
在ARMv8-M设备上,TF-M使用ARM TrustZone技术隔离NSPE和安全处理环境(SPE)的代码和数据。在Cortex-M设备上运行的应用程序可以利用TF-M服务来确保与边缘网关和物联网云服务的安全连接。
TF-M已完成与FreeRTOS的初步集成,这使在Cortex-M设备上运行FreeRTOS的应用程序能够通过PSA功能API,利用TF-M提供的安全服务, TF-M 技术架构见下面所示:
FreeRTOS内核在NSPE中运行,而TF-M在SPE中运行。FreeRTOS任务可以通过PSA功能API利用使用TF-M安全服务(例如,加密,安全存储和证明)。非安全调度程序将PSA功能API调用从任务转发到TF-M。NSPE可以使用提供不同级别的安全性和隔离性的IPC或函数调用机制与TF-M通信。
FreeRTOS PKCS #11集成FreeRTOS 团队还与Arm Holdings合作, FreeRTOS实现了PKCS #11与TF-M的集成。,见下图所示。
FreeRTOS中使用PKCS#11 API来执行TLS客户端身份验证,并将TLS客户端证书和私钥导入设备。PKCS#11已使用thin shim与TF-M集成,并在Arm Musca-B1参考平台上进行了验证。