嵌入式教程:如何保护物联网基础设施的嵌入式设备
2021-11-15 09:35:46
101
0

  嵌入式设备很可能构成物联网基础设施的大部分低级别传感器和控制装置——比如运动传感器、环境监测和设备控制。在嵌入式教程中,嵌入式设备非常适合此角色,因为他们低功耗、低成本。


  所有这些嵌入式设备都有非常具体的安全要求。除了容易受到服务器、桌面和移动设备中常见的所有攻击(即保护我们的数据),嵌入式设备还容易受到更高级的硬件攻击。让我们来看看我们在构建物联网产品的嵌入式设备时可能面临的一些问题。


  有限的资源

  在嵌入式设备中保护数据与在服务器中保护数据非常相似,但需要注意一些事项。嵌入式设备的低功耗和低成本的结果当然是有限的计算资源。通常,嵌入式设备将具有有限的可用程序空间、CPU和RAM。这些约束将直接影响您的安全考虑,可能意味着您无法使用用于构建服务器端、集线器或移动设备功能的安全库。但如果您的嵌入式设备需要使用应用层加密,则必须访问加密库,这一要求可以通过使用专门为嵌入式设备设计的加密库来解决,例如wolfSSL或底层wolfCrypto。

  


嵌入式教程:如何保护物联网基础设施的嵌入式设备



  在嵌入式开发中,向嵌入式设备添加加密功能的另一个选项是使用加密协处理器;例如,Atmel的加密身份验证范围。这种协处理器将加密功能从应用程序处理器卸载到另一个专用处理器。


  固件空中传送

  “空中传送”(Over-the-air)或“固件空中传送”(FOTA)——从技术上讲,更新不是安全功能。事实上,可以说,如果实施不当,它们实际上可能导致安全漏洞。但是,如果正确实施,FOTA允许您在已经发货的设备上更新固件,更重要的是更新安全固件。

  


嵌入式教程:如何保护物联网基础设施的嵌入式设备



  保护您的FOTA系统的一个有用步骤是为您的设备提供公钥,该公钥可用于验证签名代码更新。使用此机制,您可以确保仅将正式签署的更新应用于您的设备。然而,值得注意的是,这个签名方法只与它的实现一样好。Trammell Hudson的ThunderTrike攻击利用Thunderbolt Option ROM中的漏洞绕过苹果EFI固件更新例程中的此类检查。该攻击允许将不受信任的代码闪存到启动ROM中,以及过度写入用于验证更新的公共RSA密钥。虽然最初的攻击需要物理访问计算机,但在嵌入式开发中,通过过度写入RSA密钥,可以远程实现未来的更新。


  高级攻击–侧通道攻击

  侧通道攻击是指任何依赖于物理信息的加密攻击。例如,功耗或电磁辐射。简单功率分析(SPA)和差分功率分析(DPA)就是此类攻击的示例。执行SPA或DPA攻击需要监控设备的功耗,这将随微处理器操作的不同而变化。功耗的变化允许有经验的攻击者提取有关加密的信息。理想情况下,攻击者希望获得加密密钥,因为这样他们就可以简单地监视传输并根据需要进行解码。

  


嵌入式教程:如何保护物联网基础设施的嵌入式设备



  显然,侧通道攻击需要正确的设备和专业知识。因此,它不太可能被一个没有经验的裂解工使用。但是,如果您的物联网产品具有较高的安全要求,并且可能会受到高级破解程序的攻击,则可能需要解决这一问题。


  高级攻击–易受攻击的接口

  稍微容易的硬件攻击向量是脆弱的接口。联合测试行动小组(JTAG)接口通常用于测试和调试嵌入式系统。它们显然对在原型阶段工作的嵌入式开发团队有巨大的好处。然而,当出现在生产阶段的设备中时,它们会成为一个巨大的安全风险。用JTAG接口传输设备,打开攻击向量,黑客会非常愿意利用它。作为一项规则,您应该从您提供的产品中删除JTAG接口——以及实际上并非绝对必要的任何其他调试接口。

  


嵌入式教程:如何保护物联网基础设施的嵌入式设备



  还值得注意的是,熔断丝或切割痕迹不足以作为拆除的技术。不要低估你的攻击者。在这种情况下,他们知道的足够多,可以访问您的调试界面。没有理由认为他们无法修复您的接口。


  高级攻击–物理I/O扫描攻击

  类似于IP端口扫描,这种类型的攻击涉及使用所有可能的输入组合探测输入引脚,然后监视输出。I/O扫描攻击可能会导致任意数量的意外结果。至少在某些情况下,这种类型的攻击很容易被发现。嵌入式开发人员可以利用嵌入式系统中未使用的输入引脚。监控这些引脚的输入将让应用程序知道有人试图以非预期的方式使用嵌入式设备,比如执行I/O扫描。一旦检测到这种非预期操作尝试,应用程序可以采取适当的对策,防止发生任何未经授权的活动。

  


嵌入式教程:如何保护物联网基础设施的嵌入式设备



  显然,与服务器端开发相比,嵌入式系统的安全性需要一些特殊的考虑。有限的资源需要优化的加密堆栈。可能暴露的硬件需要特定于硬件的安全措施。决定物联网系统的嵌入式设备需要哪些安全措施在很大程度上取决于平台,这些都是在我们学习嵌入式教程时应该注意的。


  本文原创 文章来源:好学谷 转载请标明出处:http://www.haoxuegu.com/

学习Java教程如何学好开发
Java教程如何进阶