最近有收到微信群的反馈说PSA文档比较多,为了方便大家理解,我们把PSA资料进行了汇总,后续会持续更新。PSA分为四个关键阶段:分析、架构、实施和认证。
第一个阶段是分析,根据潜在的攻击风险,梳理具体的设备安全需求,Arm提供三个威胁模型和安全分析的例子,分别是
- Asset Tracker的威胁模型和安全分析文档:Asset Tracker TMSA
- 智能水表的威胁模型和安全分析文档:Smart Water Meter TMSA
- 网络摄像头的威胁模型和安全分析文档:Network Camera TMSA
第二个阶段是架构,Arm提供了硬件和固件的相关文档,包含设计安全设备的所必需的安全需求,Arm系统了一些列的文档,分别是:
- 安全模型,概述了安全设备的安全需求,以及设计的关键安全目标,Security Model (PSA-SM)
- PSA固件框架,概述了PSA的软件框架和信任根,例如普通执行环境和安全执行环境,三个隔离的级别,以及安全分区,安全分区服务和相关的API,Firmware Framework (PSA-FF)
- 可信启动和固件升级,概述了可信启动和固件升级的系统要求,例如启动的流程,要支持的加解密算法,强度,密钥存储,升级的流程,防回滚攻击等,Trusted Boot and Firmware Update (PSA-TBFU)
- 可信系统架构,概述了安全设备的硬件要求,也是我们PSA非常重要的一部分,硬件要求可以由不同的实现方式,例如可以用Armv8-M TrustZone技术或者是双核CPU(如M4和M0+)的方式来实现隔离环境,基本上包含了可信的CPU,安全中断,安全调试,划分内存的安全属性,外设的安全管理,加解密引擎,密钥管理,生命周期管理等等,Trusted Base System Architecture for M
第三个阶段是实施,Arm提供了运行再安全区域的开源参考固件代码
- TF-M是符合PSA安全规范,支持Cortex-M系列CPU设备的固件代码,是一个开源的参考实现,https://git.trustedfirmware.org/trusted-firmware-m.git/
- 同时第三方也有提供商业化的版本
第四个阶段是PSA认证,今年二月PSA认证网站(https://www.psacertified.org/)已经上线,用户可以非常方便的查看哪些芯片,RTOS,以及产品通过了PSA认证,以及安全认证的要求和流程等,PSA认证包含两部分:
- 功能API认证——确保正确实现PSA API,帮助建立可信硬件以及软件服务的统一接口。设备制造商、RTOS供应商和芯片供应商可以运行测试用例,检验是否兼容API以及安全功能。目前API主要包含三部分,分别是:PSA Cryptography API,PSA Secure Storage API,PSA Attestation API,同时也提供了相应的Test Suite
安全认证——提供三个安全级别认证,以满足不同场景的安全需求。可以为芯片,RTOS和设备制造商进行认证
- PSA Level 1 的安全要求主要是提供一个check list,让企业填写是否实现这些安全要求,以及如何实现的,并把问题表提供给安全实验室进行评估:PSA Certified Level 1 questionnaire
- PSA Level 2是一个白盒测试,包含提交安全设计文档,源代码,和ToE文档,实验室对文档和代码进行审核,并进行测试。PSA Level 2 Certified Protection Profile
- PSA Level 3的安全要求正在制定中
本文会持续更新,如果有误,欢迎随时指正