前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第12篇技术报告,题目为:
“基于zephyr加载程序和mcuboot相结合的系统安全性能提升”
作者简介
Afzal Hasan是三星半导体印度研发中心高级工程师,拥有8年以上的开发经验,主要从事引导程序、各种设备驱动程序和内核内部的工作。
Priya Dixit是三星半导体印度研发中心副高级工程师,负责嵌入式Linux和裸机环境下的设备驱动和系统架构开发工作。
此次分享将介绍如何通过集成Zephyr Bootloader和MCUboot来增强系统安全性。内容包括Zephyr Bootloader的定义以及它在系统安全中的作用,使用Zephyr Bootloader增强系统安全性的好处,实现安全引导加载程序的技术。还将介绍MCUboot,包括MCUboot的特性,集成MCUboot的优势,使用MCUboot实现安全引导加载程序的技术。文中将探讨如何将Zephyr Bootloader和MCUboot结合起来实现系统安全。讨论Zephyr Bootloader和MCUboot之间的协同效应,结合这两种技术在系统安全方面的好处,以及在实施Zephyr Bootloader和MCUboot集成的最佳实践和成功案例。最后,总结关键要点,强调在固件开发中增强系统安全性的重要性,总结面临的挑战。
系统安全常见防护措施
安全引导(Secure Boot):通过验证和授权引导加载程序和固件,确保只有经过认证和受信任的代码可以在系统中执行。
固件安全:采取措施保护固件免受未经授权的访问、篡改或恶意修改,例如使用数字签名、加密和完整性校验等技术。
通信安全:采用加密、身份验证和数据完整性保护等措施,保护系统内部和外部通信的机密性和安全性。
访问控制和内存保护:通过权限管理、访问控制列表和内存隔离等机制,限制对系统资源和数据的访问,并防止越权访问和内存漏洞的利用。
安全更新:及时应用安全补丁和固件更新,修复已知漏洞和弥补系统安全性的缺陷。
物理安全:采取物理措施,如访问控制、硬件封装和防篡改技术,保护设备和系统免受物理攻击和非授权访问。
供应链安全:确保从供应链环节到部署和维护过程中的硬件和软件的安全性,防止恶意注入、假冒和篡改等供应链攻击。
安全测试和漏洞管理:进行系统的安全测试和漏洞扫描,及时发现和修复安全漏洞,确保系统的健壮性和防御能力。
合规性和标准:遵循相关的安全合规性要求和标准,如ISO 27001、NIST等,确保系统安全性符合行业和法规的要求。
Zephyr bootloader和mcuboot结合的概念
结合这两种引导加载程序为基于MCU的设备使用Zephyr RTOS提供了一个强大而安全的固件更新解决方案。通过利用MCU Boot的灵活性和安全特性,开发人员可以确保可靠且经过身份验证的固件更新。在Zephyr RTOS环境中提供统一的框架来管理固件更新,集成简化了开发过程。
Zephyr加载程序特征
主要包括轻量级设计,固件更新支持,加密验证,灵活配置,错误处理和恢复,兼容性。
Zephyr加载程序实现过程
MCU Boot特征
安全引导过程,固件更新支持,密码学验证,灵活配置,错误处理与恢复,防篡改能力,兼容性以及可集成性。
MCUBoot程序实现过程
集成工作进程
将MCUboot作为Zephyr项目子模块添加
修改Zephyr项目'CMakeLists.txt'文件以包含MCUboot
自定义MCUboot配置
Zephyr项目实现特定硬件板的板级支持包
调试运行
基于二者的共性,集成后将会具有更准确的安全引导,更稳定的固件更新,更完善的密码验证,以及更高的用户可信任度。
Zephyr和MCUBoot集成后的安全模块流程图
MCUBoot安全防护举例
嵌入式系统中,常常面临资源有限的挑战,如处理能力、存储容量和内存大小。这可能对实施高级安全功能造成限制,需要权衡安全措施与系统资源之间的平衡。在增强系统安全时,确保与现有硬件和软件的兼容性是一个重要问题。安全功能的实施应考虑到系统的特定要求,并尽可能保持可移植性,以便在不同平台和环境中复用。有效的密钥管理对于实施安全功能至关重要。这包括生成、分发、存储和更新密钥的安全性。密钥的保护和管理需要综合考虑硬件和软件层面的安全措施。实施安全的固件更新过程是确保系统长期安全性的关键步骤。这包括确保固件的完整性、真实性和安全性。安全的固件更新涉及加密验证、安全通信通道和防止中断更新过程等方面。对增强的安全功能进行充分的测试和验证是确保其有效性和可靠性的重要步骤。这包括安全漏洞评估、功能测试、性能测试和安全性评估等。遵循行业标准和合规性要求对于确保系统安全性至关重要。这包括符合相关的安全标准、认证要求和隐私法规。了解并满足适用的标准和合规性要求,可以提供对系统安全性的信任和认可。
在处理这些问题时,需要综合考虑系统需求、资源限制和威胁模型。与安全专家和行业组织合作,遵循最佳实践和指南,可以帮助应对这些挑战,并最大限度地提高嵌入式系统的安全性。