ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于Arm PSA TF-M与PSoC 6的物联网安全开发实战指南

基于Arm PSA TF-M与PSoC 6的物联网安全开发实战指南 1. 从“能用”到“敢用”物联网安全设计的现实困境最近和几个做智能家居和工业物联网的朋友聊天大家普遍有个感觉项目前期功能实现是头等大事传感器数据能不能采上来指令能不能发下去网络能不能连上这些占据了绝大部分精力。等到产品要上市了或者客户开始做安全审计了安全才被提上日程。这时候往往发现从头构建一套可靠的安全框架无论是时间成本还是技术门槛都高得吓人。这就像盖房子主体结构都封顶了才想起来要设计一套复杂的安防系统不仅施工困难还可能破坏原有的结构。这正是当前许多物联网设备开发面临的真实写照。我们手头有性能不错的MCU比如赛普拉斯现属于英飞凌的PSoC 6系列它基于Arm Cortex-M架构双核设计性能功耗比很优秀做产品原型、实现核心功能绰绰有余。但一涉及到“安全”很多团队就犯了难如何安全地存储密钥如何实现安全的固件升级OTA如何防止设备被克隆或固件被篡改这些需求不再是“锦上添花”而是产品能否进入关键市场如支付、医疗、工业控制的“入场券”。Arm推出的平台安全架构Platform Security Architecture简称PSA及其参考实现Trusted Firmware-MTF-M就是为了解决这个“后期填坑”的难题。它提供了一套从威胁模型分析、安全规范到开源参考代码的完整框架。而赛普拉斯宣布其ModusToolbox软件和PSoC 6 MCU对PSA TF-M的全面支持相当于为开发者提供了一套已经打好地基、水电管线预埋好的“精装安全毛坯房”。开发者不需要从零开始研究密码学、安全启动和可信执行环境TEE而是可以基于这个经过行业验证的框架快速集成安全功能把精力更多地聚焦在自己的应用创新上。这对于加快产品上市速度、降低安全合规风险的意义是不言而喻的。2. 拆解PSA与TF-MArm为物联网安全铺就的“标准公路”要理解赛普拉斯这一动作的价值我们得先弄明白PSA和TF-M到底是什么以及它们是如何工作的。你可以把PSA理解为一套完整的“物联网安全交通法规和道路建设标准”。PSA不是一个具体的软件而是一个分层框架它包含了分析提供了一套方法论和文档帮助开发者分析自己设备面临的安全威胁明确需要保护什么。架构定义了一系列安全规范比如如何实现安全启动、安全存储、加密服务、设备认证等。它规定了这些功能应该长什么样、有什么接口。实现这就是TF-M的角色了。TF-M是Arm提供的、符合PSA规范的开源参考实现。你可以把它看作按照“PSA标准”修建好的一段“示范高速公路”。那么TF-M具体在MCU里扮演什么角色呢对于像PSoC 6这类基于Arm Cortex-M33/M23支持Arm TrustZone技术的芯片TF-M的核心是创建一个安全处理环境SPE也就是我们常说的可信执行环境TEE。通过芯片硬件支持的TrustZone技术将处理器资源内存、外设、中断等在硬件层面划分为“安全世界”和“非安全世界”。安全世界TF-M运行于此这是一个受硬件隔离保护的区域。在这里运行着最核心、最敏感的安全服务例如密码服务真随机数生成TRNG、AES加解密、哈希算法SHA、非对称加密RSA/ECC的运算。安全存储用于保存设备唯一身份密钥、认证证书等绝密信息的存储区非安全世界的应用无法直接访问。安全启动验证应用程序固件完整性和真实性的第一道关卡。设备认证实现基于PSA认证令牌或X.509证书的设备身份认证流程。非安全世界你的应用程序运行于此这就是我们平常编写业务逻辑代码的地方。你的应用需要加解密数据、访问密钥时不能直接操作硬件而是必须通过一套标准的APIPSA Certified Crypto API, PSA Firmware Framework API向安全世界“发起申请”。这个过程可以类比为在操作系统上开发应用。你的应用程序非安全世界想读写文件敏感操作不能直接操作硬盘必须通过系统调用API请求内核安全世界来完成。内核会检查你的权限然后代表你执行操作。TF-M就是那个运行在安全世界的“微内核”管理着所有关键的安全资源。为什么这种架构是重要的隔离与防护即使你的应用程序被攻破攻击者也无法直接获取存储在安全世界的密钥或篡改安全服务代码因为硬件隔离墙存在。标准化PSA定义的标准API意味着你的应用代码在移植到不同厂商、但同样支持PSA的MCU时安全服务的调用方式几乎不变大幅降低了移植成本。降低开发门槛开发者无需深究密码学硬件加速器的寄存器如何配置也无需自己编写脆弱的安全启动链代码直接调用psa_cryptoAPIs即可TF-M底层会处理好与硬件的交互。赛普拉斯的支持正是将TF-M这套“示范高速公路”完美地铺设到了其PSoC 6芯片和ModusToolbox开发环境中让开发者可以开箱即用。3. 赛普拉斯PSoC 6与ModusToolbox软硬件一体的安全启动方案光有标准还不够需要芯片硬件和软件工具的深度适配才能发挥威力。赛普拉斯的PSoC 6 MCU本身就是为物联网安全而生的产品其对PSA TF-M的支持是水到渠成。硬件基础PSoC 6的安全基因PSoC 6采用Arm Cortex-M4非安全和Cortex-M0安全的双核架构或者高性能的Cortex-M4非安全与Cortex-M33支持TrustZone组合。它内置了多项硬件安全特性这些特性正是TF-M能够高效运行的基石集成硬件加密加速器支持AES、SHA、TRNG、ECC等算法加解密运算速度快、功耗低且关键操作在硬件中完成比软件实现更安全、更高效。TF-M的安全服务可以无缝调用这些硬件加速器。受保护的内存和外设通过TrustZone或双核隔离可以将存放密钥的Flash区域、加密引擎、真随机数发生器等关键资源划归安全世界专属从物理访问路径上隔绝非安全应用的窥探。唯一设备标识符每片PSoC 6在出厂时都有一个唯一的、不可更改的标识符这是构建设备身份根信任的起点可用于派生设备独有的密钥。软件工具链ModusToolbox的集成之道赛普拉斯的ModusToolbox是一个基于Eclipse和CMake的现代化开发环境。其对TF-M的支持不是简单的代码包提供而是深度集成项目创建向导在ModusToolbox中新建项目时可以选择“PSA Trusted Firmware-M”作为基础软件框架。工具会自动为你生成一个包含安全世界TF-M和非安全世界Application的双区工程结构。图形化配置工具通过Device Configurator和Middleware Configurator你可以直观地配置内存映射划分安全和非安全Flash/RAM的边界。外设分配决定哪些外设如UART, I2C, Crypto Block归安全世界独占、共享或完全归非安全世界。TF-M模块选择勾选你需要启用的TF-M服务模块如初始认证Initial Attestation、安全存储Internal Trusted Storage、加密Crypto、固件更新Firmware Update等。配置工具会自动生成对应的宏定义和链接脚本。一键构建与签名项目配置好后一个构建命令make会同时编译安全固件和非安全应用固件。更重要的是ModusToolbox集成了imgtool等实用工具可以方便地为你的应用固件生成签名并打包成支持安全启动的完整镜像。调试支持虽然安全世界的代码调试通常受限但工具链仍提供了必要的支持帮助开发者理解安全与非安全世界的交互流程。一个典型的安全启动流程示例假设我们要为一个智能门锁设计固件升级功能。利用PSoC 6 TF-M流程会是这样出厂预置在芯片生产时将TF-M安全固件和芯片公钥哈希或厂商根证书烧录到受保护的安全Flash中。这是信任根。生成升级包开发端使用私钥对新版本的应用固件进行签名然后将“固件签名”打包。设备下载门锁通过OTA下载升级包。安全验证TF-M负责设备重启进入Bootloader可能是TF-M的一部分。Bootloader使用预置在安全区的公钥验证新固件的签名。如果验证通过说明固件来自可信源且未被篡改。移交执行验证成功后将控制权移交给新的应用固件升级完成。如果验证失败则启动失败或回滚到旧版本。整个过程你的应用代码无需处理复杂的签名验证算法只需要调用TF-M提供的Firmware Update Service API来触发更新流程即可安全验证的脏活累活都由安全世界默默完成了。4. 实战指南在ModusToolbox中从零构建一个TF-M应用理论说得再多不如动手一试。下面我们就在ModusToolbox环境下为一块PSoC 6开发板创建一个最简单的、包含TF-M的“Hello World”项目并实现一个从非安全应用调用安全世界加密服务的基本操作。4.1 环境准备与项目创建首先确保你已安装最新版本的ModusToolbox IDE。打开IDE后通过“File - New - ModusToolbox Application”打开项目创建向导。选择开发板BSP在“Target Board”列表中选择你所使用的PSoC 6开发板例如CY8CPROTO-062-4343W。选择应用模板关键步骤来了。在应用模板列表中滚动查找或搜索“Trusted Firmware-M”。你会看到类似“Empty Psa Trusted Firmware-M (psoc6)”的选项。选中它这意味着IDE将以TF-M为基础框架创建项目。命名项目为你的项目取个名字例如“tf_m_hello_world”然后点击Finish。IDE会自动生成一个包含两个子项目的工程结构tf_m_hello_world这是你的非安全世界应用项目你主要的业务代码写在这里。tf_m_hello_world_psoc6_secure这是安全世界TF-M固件项目。通常你不需要修改它除非有高级定制需求。4.2 配置安全属性双击打开工程中的design.modus文件启动Device Configurator。系统内存布局切换到“System”标签页下的“Memory”部分。这里清晰地显示了Flash和RAM如何被划分为安全Secure和非安全Non-Secure区域。对于初学者可以保持默认设置这是由BSP根据芯片型号预配置好的合理划分。外设分配切换到“Peripherals”标签页。你会看到所有外设如UART, I2C, Crypto等旁边都有“Security”属性可以设置为Secure仅安全世界访问、Non-Secure仅非安全世界访问或Privileged由软件动态管理。例如我们将用于调试打印的UARTSCB5设置为Non-Secure让应用可以直接使用。而Crypto硬件加速器块则必须设置为Secure因为TF-M的安全服务要独占使用它。配置完成后点击“Save”并关闭配置工具。ModusToolbox会自动根据你的配置更新链接脚本.ld文件和代码中的宏定义。4.3 编写非安全世界应用代码现在打开主应用项目tf_m_hello_world下的main.c文件。我们将编写代码通过PSA Crypto API计算一段数据的SHA-256哈希值。#include cyhal.h #include cybsp.h #include cy_retarget_io.h #include psa/crypto.h // 引入PSA Crypto API头文件 int main(void) { cy_rslt_t result; psa_status_t status; /* 初始化板级支持包和重定向IO用于打印 */ result cybsp_init(); CY_ASSERT(result CY_RSLT_SUCCESS); __enable_irq(); cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, 115200); printf( PSA Crypto API Demo Started \r\n); /* 步骤1: 初始化PSA Crypto库 */ status psa_crypto_init(); if (status ! PSA_SUCCESS) { printf(Failed to initialize PSA Crypto! Error: %ld\r\n, status); for(;;); } printf(PSA Crypto initialized.\r\n); /* 步骤2: 准备待哈希的数据 */ const uint8_t input_data[] Hello, Secure World!; size_t input_length sizeof(input_data) - 1; // 去掉字符串结尾的\0 uint8_t hash_output[32]; // SHA-256输出为32字节 size_t hash_length; /* 步骤3: 计算哈希 */ status psa_hash_compute(PSA_ALG_SHA_256, // 指定算法为SHA-256 input_data, input_length, hash_output, sizeof(hash_output), hash_length); if (status ! PSA_SUCCESS) { printf(Hash computation failed! Error: %ld\r\n, status); for(;;); } /* 步骤4: 打印结果 */ printf(Input: %s\r\n, input_data); printf(SHA-256 Hash: ); for (size_t i 0; i hash_length; i) { printf(%02x, hash_output[i]); } printf(\r\n); printf( Demo Finished \r\n); for(;;); }这段代码的逻辑非常清晰初始化硬件和PSA Crypto。定义输入数据和输出缓冲区。调用psa_hash_compute这个标准API计算SHA-256。注意这个调用会触发一次“世界切换”。CPU会从非安全模式陷入Trap到安全模式由运行在安全世界的TF-M Crypto服务来实际执行哈希计算很可能调用PSoC 6的硬件SHA加速器计算完成后再返回结果到非安全世界。这个过程对应用开发者是透明的。打印出哈希值。4.4 构建、签名与烧录构建在Project Explorer中右键点击主应用项目tf_m_hello_world选择“Build Project”。ModusToolbox会先自动构建安全项目再构建非安全应用项目并将两者合并处理。关于签名对于真正的安全启动你需要使用imgtool等工具用你的私钥对生成的应用镜像进行签名并可能将公钥信息集成到TF-M的启动配置中。在ModusToolbox的示例中通常提供了一个预配置的测试密钥对用于演示。你可以在项目生成的“build”目录下找到最终的可烧录文件如.hex或.cyacd。烧录与调试使用KitProg3等编程器通过“Debug As - ModusToolbox Application”即可将程序烧录到板子并开始调试。在串口终端如Tera Term或PuTTY中你应该能看到程序打印出的初始化信息和计算得到的SHA-256哈希值。注意首次运行TF-M项目时可能会遇到链接错误提示找不到psa_*函数的实现。这通常是因为没有正确链接TF-M的库。请确保在项目的Makefile或CMakeLists.txt中已经添加了对TF-M中间件“psoc6/psoc6-psa”的依赖。ModusToolbox模板通常已配置好但如果自己移植项目这是需要检查的关键点。通过这个简单的例子你可以直观地感受到在PSA TF-M的框架下使用高级别的、标准化的安全API是多么简单。你不再需要去查阅芯片数据手册中加密模块那复杂无比的寄存器列表只需要关注业务逻辑本身。5. 深入TF-M服务模块超越加密构建全面安全能力PSA TF-M不仅仅提供加密API它是一套完整的服务框架。理解其核心服务模块能帮助你设计出更健壮的物联网设备。除了基础的Crypto服务以下几个模块在实战中尤为重要5.1 初始认证服务Initial Attestation Service这是实现设备身份“可信”的关键。想象一下你的设备接入云端云端怎么确信“它就是它声称的那个设备”而不是一个克隆体或模拟器工作原理TF-M的认证服务基于设备唯一的硬件标识符如PSoC 6的Unique ID和一个存储在安全区的初始认证密钥IAK可以生成一个“认证令牌”。这个令牌包含了设备的唯一身份信息并且由IAK私钥签名不可伪造。实战应用设备上电后应用层可以调用psa_initial_attest_get_token()API获取这个令牌。在连接到物联网平台时将此令牌作为设备身份凭证的一部分发送给云端。云端使用对应的公钥验证令牌签名并提取其中的设备身份信息完成强设备认证。这比单纯使用烧录在Flash中的序列号或预置密钥要安全得多因为令牌是动态生成的且根密钥永不离开安全世界。5.2 安全存储服务Internal Trusted Storage, ITS密钥和证书放在哪里最安全明文存放在应用Flash中是绝对的大忌。TF-M的ITS服务提供了解决方案。工作原理ITS在安全世界划出一块受保护的存储区域可以是Flash的一部分。应用通过PSA ITS API如psa_its_set(),psa_its_get()来存储和读取数据。所有存入ITS的数据在写入前会被自动加密密钥由TF-M在安全世界管理完整性受保护。即使有人物理读取Flash芯片得到的也是密文。实战应用你可以将设备从云端获取的会话密钥、用于OTA的验证公钥、或用户的关键隐私数据通过ITS API存储起来。代码示例如下#define MY_KEY_ID 1 static const uint8_t secret_data[] {0x01, 0x02, 0x03, 0x04}; psa_status_t status; // 将秘密数据安全存储 psa_storage_uid_t uid MY_KEY_ID; status psa_its_set(uid, sizeof(secret_data), secret_data, PSA_STORAGE_FLAG_NONE); // ... 错误处理 // 在需要时安全读取 uint8_t read_back_data[10]; size_t data_length; status psa_its_get(uid, 0, sizeof(read_back_data), read_back_data, data_length); // ... 错误处理你的应用代码完全看不到加密解密的过程也接触不到加密密钥这一切都在安全世界完成。5.3 固件更新服务Firmware Update Service安全的OTA是物联网设备的生命线。TF-M的固件更新服务与安全启动紧密集成提供了一个标准化的更新框架。工作原理该服务管理着非安全世界应用的安装、升级和回滚。它定义了固件镜像的格式、验证流程和状态机。通常它会与Bootloader配合Bootloader负责验证TF-M自身和最初的应用镜像而后的OTA更新则由运行中的TF-M固件更新服务来处理。下载的新固件镜像会被存放在临时区域由更新服务验证其签名和版本。验证通过后服务会安全地切换引导指针或更新镜像并在下一次重启时生效。实战价值使用该服务你可以实现A/B分区无缝更新、版本回滚、更新状态报告等高级功能而无需自己设计复杂的、容易出错的更新状态管理和恢复逻辑。它确保了更新过程本身的安全性防止恶意固件被刷入。5.4 平台服务与隔离管理TF-M还负责管理安全与非安全世界之间的通信通过PSA FF-M定义的IPC机制和资源隔离。这包括中断的分配、内存区域的保护设置等。在ModusToolbox的图形化配置中你所做的“外设安全属性”分配最终就是由TF-M的平台代码在启动时根据配置信息通过编程芯片的TrustZone保护控制器SAU/IDAU来实现的。将这些服务组合使用就能构建一个立体的安全防御体系设备凭初始认证可信地接入云端敏感数据由安全存储保护所有加密操作通过Crypto服务在硬件加速下完成固件升级通过更新服务确保完整性与真实性。赛普拉斯的支持让在PSoC 6上集成这套体系从“可能”变成了“简单”。6. 开发中的常见挑战与调试技巧即便有了强大的工具和框架在实际开发中依然会遇到各种挑战。以下是一些基于PSoC 6和TF-M开发时可能遇到的典型问题及解决思路。6.1 内存划分冲突链接错误与运行时故障这是最常遇到的问题之一。TF-M安全世界和非安全世界需要严格划分内存Flash和RAM。如果划分不当轻则导致链接失败重则运行时发生硬件错误HardFault。症状编译链接阶段报错提示section.text‘ will not fit in regionFLASH_SECURE’或类似信息说明安全世界的代码或数据超出了你分配的安全Flash区域。程序运行时突然进入HardFault特别是当非安全应用尝试访问某个外设或内存地址时。排查与解决核对配置首先回到ModusToolbox的Device Configurator仔细检查“Memory”配置页。确保为安全世界分配的Flash和RAM大小足以容纳编译出的TF-M固件镜像查看tf_m_hello_world_psoc6_secure/Debug/size.txt文件获取其实际大小。通常需要留出20%-30%的余量。检查链接脚本理解自动生成的链接脚本.ld文件。确保FLASH_NS非安全Flash和RAM_NS非安全RAM的起始地址和大小与配置工具中的设置一致。非安全应用的代码和数据必须完全位于NS区域。外设访问冲突如果非安全应用在访问一个外设如GPIO、Timer时崩溃检查该外设在Device Configurator中是否被错误地配置为“Secure”。非安全世界无法直接访问安全外设。6.2 PSA API调用失败返回错误码解析当调用psa_xxx()函数返回非PSA_SUCCESS错误时需要学会解读。常见错误PSA_ERROR_NOT_SUPPORTED: 请求的操作或算法不被底层硬件或TF-M配置支持。例如你的芯片没有ECC硬件加速但你调用了psa_asymmetric_encrypt使用ECC算法。PSA_ERROR_INVALID_ARGUMENT: 传入的参数无效比如密钥句柄错误、缓冲区长度不足。PSA_ERROR_INSUFFICIENT_MEMORY: 安全世界内存不足。这可能是因为安全堆Secure Heap配置得太小。需要在TF-M的配置文件中调整CONFIG_TFM_HEAP_SIZE等宏。PSA_ERROR_COMMUNICATION_FAILURE: 安全世界与非安全世界之间的IPC调用失败。这通常是更底层的框架问题。调试方法启用TF-M日志TF-M本身可以输出调试日志。你可以在TF-M安全项目的配置文件中如config.cmake或特定的头文件打开日志宏如TFM_LOG_LEVEL_INFO。但请注意安全世界的日志输出可能需要重定向到非安全世界才能看到配置较为复杂初期建议先专注于应用侧排查。简化测试如果复杂的加密操作失败先尝试最基本的操作如psa_hash_compute使用SHA-256。确保基础通信通路是正常的。查阅TF-M源码对于不清晰的错误直接查看TF-M源码中对应API的实现是理解其前置条件和失败原因的最佳途径。源码位于ModusToolbox的库目录中。6.3 安全与非安全世界的数据传递两个世界之间的内存是隔离的。不能简单地传递一个指向非安全世界数据的指针给安全世界的函数反之亦然。正确做法使用PSA API定义的机制。对于需要传递的数据块如待加密的数据通常的范式是在非安全世界准备好数据缓冲区。调用PSA API时将数据缓冲区的指针和长度作为参数传入。PSA驱动底层TF-M会通过世界切换机制在调用前后安全地复制或映射这些数据。对于PSoC 6由于内存统一编址且通过SAU进行区域保护TF-M可能会在验证指针属于非安全区域后直接访问但这仍然是在严格管控下的。绝对禁止切勿尝试让安全世界的函数直接持有并长期引用非安全世界数据的指针。当世界切换发生后该指针的上下文可能失效或指向非法区域。6.4 性能考量与优化虽然硬件加密加速器很快但世界切换Context Switch本身是有开销的。频繁地调用细粒度的PSA API如每次加密一个字节都调用一次会带来显著的性能损失。优化建议批量操作尽可能将数据组合成较大的数据块再进行加密、哈希等操作。PSA API支持流式操作如哈希更新psa_hash_update对于大数据可以分片处理但应避免为每个小分片都发起一次独立的世界切换调用。密钥生命周期管理对于需要重复使用的密钥不要每次使用时都导入psa_import_key然后使用后销毁。应该导入一次获取一个密钥句柄psa_key_handle_t之后一直使用这个句柄进行操作直到不再需要时才销毁。密钥材料始终安全地存储在TF-M内部。评估非安全世界软件实现对于一些性能极其敏感、但对安全性要求相对较低的操作如计算CRC校验可以考虑在非安全世界用软件实现避免世界切换的开销。但这需要仔细权衡安全与性能的边界。调试一个双世界系统比单一应用复杂。一个有效的策略是先确保非安全世界的基础应用如串口打印、点灯能稳定运行然后逐步添加最简单的PSA API调用如计算哈希最后再集成更复杂的服务如安全存储、认证。分阶段验证可以快速定位问题发生的环节。7. 面向未来PSA Certified认证与更广阔的应用场景采用PSA TF-M不仅仅是为了方便开发它更是产品通向更高安全等级和广阔市场的桥梁。其中PSA Certified认证是一个值得关注的目标。PSA Certified是什么这是一个由Arm发起的、独立的物联网安全认证体系。它提供从Level 1到Level 3的不同认证等级Level 1基于PSA安全模型进行自我认证表明产品具备了基础的安全意识。Level 2由实验室进行漏洞评估验证芯片和基础软件如TF-M实现了PSA定义的核心安全要求。Level 3最高级别涉及对物理攻击的抵抗性评估适用于对安全性要求极高的场景。赛普拉斯英飞凌推动其平台支持TF-M一个重要的方向就是帮助客户的产品更容易地达到PSA Certified特别是Level 2的认证。因为使用了经过PSA Certified评测的TF-M代码作为基础可以大幅减少产品在基础安全功能上的评估时间和成本。更广阔的应用场景基于PSoC 6和TF-M构建的安全能力可以解锁许多过去在资源受限的MCU上难以实现或实现成本很高的应用智能门锁与安防实现真正的端到端安全通信保护开锁指令安全存储用户指纹、密码等生物特征模板支持防克隆、防重放攻击的安全OTA。工业传感器与控制器保障工业现场数据采集的真实性与机密性实现设备与工业云平台之间的双向认证防止恶意固件对生产线的破坏。医疗可穿戴设备安全地采集和预处理用户的健康数据如心率、血糖在数据上传前进行本地加密满足医疗隐私法规如HIPAA的要求。消费电子与配件为无线耳机、智能手表等设备提供安全的蓝牙配对例如使用基于PSA Crypto的LE Secure Connections防止配件被第三方克隆保护品牌价值。在我个人看来赛普拉斯对PSA TF-M的支持其意义在于将“物联网安全”从一个昂贵的、只有大公司才能玩的“选配项”变成了每个开发者都能在项目早期就轻松集成的“标配项”。它降低了安全门槛但并没有降低安全标准。这就像为每一位物联网开发者配备了一位经验丰富的“安全架构师”让我们能更专注于创造产品本身的价值而将底层复杂且关键的安全堡垒交给经过千锤百炼的行业标准框架来构筑。随着PSA生态的日益成熟支持TF-M很可能成为未来主流物联网MCU的准入条件之一。现在开始熟悉并应用它无疑是为未来的项目积累宝贵的技术储备。
返回列表