2022-11-04 14:35 千家网
如今,物联网(IoT)设备无处不在,增加了巨大的价值,但不幸的是,也代表着前所未有的开发风险。任何连接到互联网的东西都有可能被黑客入侵。保护联网设备是一项挑战,也是电子产品制造商最关心的问题,因为都希望避免设备被黑客入侵的尴尬。
物联网安全的主题是复杂的,本文提供了一些久经考验的安全解决方案的高级总结,可用于构建更安全的物联网设备。
通常,连接的设备包含大量的信息,攻击者对此非常感兴趣。众所周知,电子邮件和密码等设备上的个人信息的价值,但攻击者也对大量其他信息感兴趣。攻击者可能想要禁止对设备功能的访问,或获得对设备本身数据的访问,从而发动勒索软件攻击。他们可能使用设备作为中转点,以访问该设备所连接的网络。然后可以使用此中转点来攻击更多的安全敏感设备。攻击者还可能对特定设备所代表的处理器资源或网络带宽感兴趣。如果他们设法控制大量设备,那么这些资源就可以用于拒绝服务攻击。最后,使用执行器或传感器的设备(例如开门或断电)可能会受到攻击,使家庭或工作场所的关键功能容易受到攻击。
那么,可以通过哪些方式来保护设备呢?
一种方法是实施经过现场验证的安全启动机制,以确保只有受信任的软件才能在设备上运行。这可以使用基于ROM的代码机制来验证软件,使用攻击者无法修改的密钥材料。然而,使用信任根模块来启动设备可以进一步加强启动过程,并支持其他安全敏感功能的安全实现,如固件/软件更新、安全调试访问控制和启动映像机密性。使用加密来保护软件的机密性会使攻击者更难发现潜在的漏洞,但也确实要求用于解密软件的密钥材料保持机密。在运行大量复杂软件(易受逻辑攻击)的设备中,攻击者可以在设备启动后获得代码执行,这意味着永远不能从设备读取固件解密密钥,且其使用必须仅限于设备初始化。
其次,良好的安全性需要良好的随机数。可预测的随机数据会立即导致安全漏洞。生成随机数需要访问一个或多个“不可预测的数据”来源,这些数据可以在典型的熵池中收集。如果攻击者无法猜测熵池的状态,则使用该池中的数据生成的随机数将是不可预测的。大型设备,例如基于linux的计算机,可以访问许多不同来源的不可预测的数据,例如敲击键盘之间的时间间隔和许多其他来源。通过访问多个不可预测数据来源,设备可以快速填充其熵池,并生成高质量的随机数据。
另一方面,物联网设备很小,没有足够多的来源来填充其熵池以播种随机数。拥有一个“空”池,会提供一个可预测的随机数,这显然不利于安全性。对于物联网设备的用例来说,等待设备在没有太多不可预测输入的情况下产生足够的熵可能需要很长时间。为了解决这个问题,可以在设备的芯片中构建一个专用的随机数生成器,这能够快速填充熵池。在这种情况下,通过FIPS、SESIP或Common Criteria认证的解决方案是最佳选择,因为这意味着能从一个经过尝试、测试和认证的来源获得随机数生成器。
第三,可以对进出设备的数据进行加密和认证,以防止某些攻击。保证云、后端和设备之间的通信安全。实现这些通信安全协议的软件栈是抵御远程/逻辑攻击的第一道防线。软件需要来自可信的来源,以确保其不包含bug或后门。理想情况下,与随机数生成器一样,其应该来自经过测试和认证的来源。
在许多情况下,设备的功能要求需要大量软件才能在系统的主机处理器上运行。这个软件专注于让设备做其应该做的事情。其直接重点不是保护设备免受逻辑和物理攻击,这可能会使其变得易受攻击。如果发生攻击,限制攻击者行为的能力,以及确保设备能够安全恢复的能力是至关重要的。同样,信任根核心可以在这种情况下发挥作用,从物理上将安全关键软件和数据与不受信任的软件组件分离开来。其还可以防止密钥材料离开设备的安全边界,防止攻击者对安全架构进行永久性更改。