前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第64篇技术报告,由张国栋整理,题目为:
“Zephyr RTOS的CA证书存储”
Jared Baumann
Jared Baumann是一名软件工程师,于2021年夏天以实习生的身份加入T-Mobile。主要参与了DevEdge物联网的工作,并广泛使用Zephyr RTOS及其子系统。他积极参与网络方向的工作,开发了调制解调器和WiFi解决方案。
本文介绍了Zephyr RTOS的CA证书存储。Zephyr的这一新增功能允许在Zephyr中使用大量CA证书,而无需手动管理,从而大大改善了物联网应用的开发过程。这种系统的效用是显而易见的,因为它允许在需要时存储许多证书,就像许多现代操作系统一样。大大改善进入Zephyr生态系统的新开发人员的开发人员体验,特别是那些对物联网应用程序感兴趣的开发人员。
背景
基于 TLS 的应用程序需要使用多个 CA 证书进行验证,以确保与各种信任的证书颁发机构建立安全的通信连接。
目前,所有必需的证书加载仍然需要手动进行,这包括验证服务器的身份和确保通信的加密性。这一过程需要用户或开发者亲自配置并加载相应的证书。
集成的证书存储允许预加载许多证书以供随时使用。
集成的证书存储系统支持自动选择功能,使应用程序能够动态地从存储中选择适当的证书,而无需手动介入。
研究现状
Zephyr RTOS 中没有证书存储,需要时必须手动加载证书,证书是程序本身的一部分。
可以将证书存储在闪存文件系统中,但管理将完全取决于应用程序。除非所有证书都在内存中,否则不可能自动选择证书。处理几个证书是可行的,但在2KB的情况下,很容易出现问题。全套CA证书可能需要约150KB。
基本界面的用户功能包括:存储、删除、加载。存储功能包括获取证书并将其存储在基于闪存的证书存储中,只需提供想要的存储信息即可。删除功能包括从闪存存储中删除文件,提供指纹来查找证书,从存储中删除文件证书过后代码将消失。加载功能包括按需从闪存加载给定证书。具体如下图所示。
未来的计划
自动选择证书,存在某种机制可用于自动加载验证所需的 CA。
使用 mbedTLS 中现有的验证回调,类似的回调也存在于一些卸载驱动程序中,并且将大大简化 TLS 应用程序的开发。
消除手动证书管理的期望。
可以预制一组安全、可信的 CA。基于现有的、受信任的 CA 数据集。