前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第69篇技术报告,由胡宇昊整理,题目为:
“Zephyr中的资源调配”
Jared Wolff
工程师,Circuit Dojo LLC
Jared是一位出色的制作者和开发者,他热衷于使用新技术,并通过对开源项目的贡献与他人分享自己的知识。他是nRF9160 Feather的创建者,nRF9160 Feather是nRF9160系统级封装 (SiP) 的开源开发板。Jared还是Zephyr实时操作系统的贡献者和倡导者,并通过YouTube上名为 "Zephyr 101"的直播课程分享他的知识和经验。
在部署产品之前,设备配置是需要完成的最重要的最后步骤之一。幸运的是,Zephyr可以通过证书、预共享密钥等方式轻松完成设备设置。本篇工作主要将具体讨论如何在不同的客户项目中配置基于Nordic nRF9160的设备。还将讨论一些概念,如Zephyr的shell和设置API。还将讨论如何编写和运行与设备连接的实用程序。
配置设备
此处的主要想法是让设备易于设置和部署,主要包括如何确保安全、使其易于维护、并且尽可能在这个过程中节省时间等。因此我们将重点专注于:生成和配置设备证书、设备的具体配置、开源工具如何让工作更轻松、密码和重要的安全影响、不涉及 JITP。
证书CERTIFICATES
主要方法有:
1.如果使用AWS IoT,可以在AWS控制台上生成证书(如下图)。
2.使用openssl或 esa-rsa CLI(如下图) 以传统方式生成证书。
3.Pyrinas CLI可以直接签署和加载证书:
用Rcgen生成证书
用于写入UART/USB的Serialport生成器
优点:
能够保存每个设备的所有证书
可以生成服务器和 CA 证书,简化使用
便于通过控制台 shell 加载证书
唯一标识符:不可变且随机,对所有设备而言都是唯一的。
nRF Cloud提供了一种简单方法来生成证书,可生成证书的简易应用程序接口(API 在 nRF91 设备上轻松配置),每个nRF9160 Feather都有一组写入的 nRF云证书,通过CMNG AT命令写入。
重要注意事项:
证书存储
存储证书有三种方法:
对于 nRF9160
对于其他设备(没有安全密钥存储的设备),可以使用设置子系统
证书装载
子例程:得到加载的安全标记,确保写入正确:
放入设备:
从设备中加载并确保有效:
添加凭证:
在具有安全密钥存储功能的设备上,只需安全标签即可
自动处理加密/签名请求
在设置 TLS/DTLS 连接时使用
使用注意事项
安全标签以列表形式提供
提供给 (D)TLS 配置
然后连接和握手由底层传输/(D)TLS实现处理
设备配置
有很多方法可以解决这个问题
我们的流程:
编码(JSON/CBOR)
使用设置子系统存储
调用
解码并应用
实例:
从设置子系统读出时
我们设置了合理的默认值
解码配置
如果配置中缺少值,默认值会覆盖这些值
即使结构发生变化,也能保持不变
总结
关于证书CERTIFICATES生成的大量资源,我希望你能发现这些是有用的
提供大量的开源工具,希望能给你启发
一旦加载,许多困难的事情就被抽象掉了,你只需处理证书CERTIFICATES以及保证其安全
设备配置可以类似处理(像处理证书CERTIFICATES一样)