https://community.arm.com/arm...
作者:Nicolas Devillard 2023年1月10日
Arm在GitHub上为PSA认证的API提供了贡献:一系列嵌入式软件API,旨在简化围绕最佳实践和软件标准的行业协作。这些API针对的是在超受限设备上运行的数十亿物联网应用程序的安全集成,这些设备通常内置Arm MCU处理器,并为更安全的软件开发提供开放标准。他们得到了PSA认证的支持,这是一个在整个行业中认证芯片、软件和设备的安全框架。
这项工作也是Arm Centauri项目(https://www.arm.com/solutions/iot/project-centauri)的一部分,该项目是最近一项使物联网开发更容易、更快的计划。该项目构建了与体系结构无关的标准,使软件开发人员能够在全系列低功耗Arm设备上实现互操作性和快速实现最佳实践。Centauri依靠PSA认证的API来实现与安全相关的所有功能,并为通用硬件的API标准化提供应用。
创建超受限设备的开发人员有许多系统软件选项。有数百种实时操作系统、库和外围设备可供选择。
虽然多样性对软件有好处,但在围绕安全建立共同的最佳实践时,碎片化并没有帮助。Arm通过PSA认证API的举措是通过提供一组通用的底层标准API,帮助在这些设备上实现安全操作,从而为可信根(Roots of Trust)的集成奠定基础。
PSA认证的API在C语言中定义了一组函数和符号,无论底层硬件如何,都为嵌入式系统提供通用服务。这些API集分为4个部分:
. 加密API定义了如何实现基本的加密操作。
. 认证API定义了认证令牌和生成函数。
. 存储API定义了一组get和set函数来安全地存储数据。
. 固件更新API定义了安全更新固件的流程。
Arm于2018年开始致力于API的定义,收集合作伙伴的意见,以确保正确涵盖所有主题,并可以在软件和/或硬件中实现。API规范已经公开几年了。今天,我们很自豪地在github.com上向任何希望贡献、纠正错误、建议新功能或解决超受限设备安全问题的人开放它们。
文档链接:https://arm-software.github.io/psa-api/
GitHub存储库位于:https://github.com/ARM-software/psa-api
提醒一下:API不是特定于体系结构的,它们可以在任何微控制器上实现。我们已经在Mbed TLS项目(https://github.com/Mbed-TLS/mbedtls)和TF-M(https://www.trustedfirmware.org/projects/tf-m/)中的所有PSA认证API中使用了加密API的参考实现。
在API背后实施自己的解决方案的合作伙伴可以通过运行我们的PSA认证API合规套件(可从GitHub获得:https://github.com/ARM-software/psa-arch-tests )来验证他们是否符合规范。PSA 认证并提供合规证书(https://www.psacertified.org/getting-certified/functional-api-certification/),可通过在产品网站上显示徽标来展示您的产品。
PSA认证API定义了寻求使用安全服务的开发人员与安全解决方案供应商之间的约定。请看一下这些规范,并帮助我们引导他们走向将改变安全固件开发方式的方向。
在更强大的A级(A-class)系统上工作的开发人员可能有兴趣知道,PSA认证加密API已经作为在用户空间中运行的Linux微服务提供。类似的开源计划PARSEC(https://parsec.community/),已在Rust中完全实现,使Rust和其他各种编程语言中都可以使用相同的API。加密服务被移交给加密功能提供者,比如TPM、安全元素、在可信执行环境中运行的分区,或者仅仅是在用户空间中运行的加密软件库。
这对于曾经不得不处理痛苦的加密集成的人来说是个好消息。这些API不仅仅是一个标准,它们旨在从根本上解决困扰安全开发人员20多年的加密API问题。