无线 (OTA) 更新的4个绝佳实践

  OTA 更新对于连接设备的开发人员来说至关重要。在今天的文章中,我们将探讨嵌入式开发人员在实施其 OTA 解决方案时应牢记的几个最佳实践。尽管我将指出一些特定于 AWS 的最佳实践,但其中大部分都是通用的。

  最佳实践1 – 加密你的固件更新

  创建和测试非常耗时,并且会消耗很大一部分开发预算。软件虽然也驱动产品中的大多数功能,并且可以显着改变产品,该软件是值得通过加密保护的知识产权。

  加密固件映像有几个好处。首先,它可以将你的固件二进制文件转换为看似随机或无意义的形式。这是理想的,因为开发人员不希望他们的二进制图像容易被研究、调查或逆向工程。这使某人更难窃取知识产权,并且对可能对攻击系统感兴趣的人来说更难理解。其次,加密图像意味着发送者必须拥有与解密图像的设备相匹配的某种密钥或凭证。这可以看一个简单的源来帮助验证源,尽管应该做更多的工作而不只是加密来完全验证和验证完整性,例如签署图像。

  最佳实践2 – 不支持固件回滚

  最佳实践3 – 保护你的引导加载程序

  无线更新固件需要多个组件来确保安全且成功地完成。通常,重点是将新图像发送到设备并对其进行解密。然而,就像在传统固件更新中一样,引导加载程序仍然是更新过程的关键部分,在 OTA 更新中,引导加载程序不仅是你的传统风格,而且必须是安全的。

  有很多方法可以与板载引导加载程序一起使用,但无论使用哪种方法,引导加载程序都必须是安全的。安全引导加载程序需要能够在加载之前验证固件的真实性和完整性。一些系统将使用应用程序代码来验证固件并将其安装到新的应用程序插槽中,而其他系统则完全依赖引导加载程序。在任何一种情况下,安全引导加载程序都需要能够在接受新固件映像之前验证固件的真实性和完整性。

  嵌入式开发人员确保在信任链中引导加载程序内置,并且不轻易修改或更新也是一个好主意。安全引导加载程序是确保系统安全所必需的信任链中的关键组件。

  最佳实践4 — 建立信任链

  该序列创建了一个信任链,固件 OTA 更新需要和使用该链。当发出新固件请求时,应用程序必须解密图像并验证新固件的真实性和完整性是否完好无损。只有当信任链能够成功通过链中的每个环节时,才能使用新固件。最重要的是,开发人员和最终用户知道,当系统成功启动时,新固件是合法的。

  结论

  OTA 更新是几乎所有嵌入式开发设备的关键基础设施组件。当然,有些系统一旦部署就永远不会更新,但是,这些可能只是系统的一小部分。 OTA 更新是现场更新固件的首选机制。

经验分享 程序员 微信小程序 职场和发展