安全性通常是开发人员在开发基于物联网的系统时最不想考虑的事情。理想情况下,他们希望为现有系统添加连接并完成它。然而,将安全性硬塞进设计中存在许多问题,当设备资源受限时,这些问题更具挑战性。
从头开始
根据阿特金斯的说法,开发有效的物联网安全的关键是首先考虑a)谁可能想要破坏你的系统,b)他们可能会获得什么,c)你需要保护什么。通过了解您的系统如何使用 - 并因此被滥用 - 您可以评估如果某人可以完全访问您的设备,他们可以做什么。
威胁模型汇集了系统可能受到威胁的所有方式。花时间预先创建此模型至关重要,因为如果您不知道要保护什么,则无法开发强大的安全性。尤其重要的是查看您没有考虑过的设备的使用方式。
通过考虑保护静态数据、动态数据和操作中的数据,可以简化安全性。系统必须保护的最重要的静态数据是其固件。理想情况下,这需要“安全启动”机制和可用于验证固件完整性的完整加密签名。固件可以分为多个部分,其中一个是受信任的引导加载程序。首先加载此引导加载程序并验证主系统代码。如果代码无效,系统将恢复到以前的良好版本,移动到安全模式,或根据应用程序自行关闭。在最高级别的安全性下,系统将定期确认其正在运行的软件未经过运行时修改。
为了保护动态数据,需要一个安全的通信通道。这可以是互连多个设备或系统的无线链路或系统总线。安全通信可以包括身份验证(您知道是谁发送的)、机密(您知道只有预期的接收者才能读取它)和完整性(您知道数据在传输过程中未被更改)。
保护运行中的数据是指了解某人如何尝试破坏系统。考虑一个门禁系统,当输入正确的密码时,它会无线解锁门。如果有人捕获了“打开”命令,如果稍后重播相同的命令,则门不应打开。
请注意,安全性需要超越软件,还需要物理考虑。并非每个工厂的访客都是可以信任的。您还必须确保有人无法取下塑料盖并访问控制系统的电线。
基于物联网的安全成本
许多 OEM 对实施安全性的成本持谨慎态度。通常,已为大型系统开发了安全性。这些算法针对宽总线、大量存储和扩展指令集进行了优化。一些原始设备制造商表示担心这些算法不仅会增加成本,还会降低系统速度,使其无法使用。
通常这是真的。但是,有越来越多的安全开发工具专门针对资源受限的系统而设计。这些算法不是试图压低大型系统的安全性,而是针对8位MCU的功能而设计的。这对所需的处理、存储和电力资源的效率产生了巨大影响。仍然有成本,但要低得多。
还有许多方法可以最大限度地降低安全成本。通常,安全性不是系统常规操作的一部分。许多嵌入式MCU提供硬件加速以确保安全。如果您没有发送大量数据,则可能不需要经常重新生成密钥,因为密钥漏洞更多地取决于发送的数据量,而不是密钥的使用时间。
从全面的威胁模型中,可以创建威胁矩阵。此矩阵将威胁映射到违规成本以及防止违规的成本。阿特金斯建议使用威胁矩阵来评估要实施的安全类型。某些功能比其他功能需要更多的保护。例如,门禁系统的对讲功能可能不需要验证完整性,而门执行器功能肯定需要验证。这种方法还可以更轻松地估计安全子系统随时间推移的实际功耗。
避免使用基于“机密”(例如,未发布)方法的安全算法。如果这些方法被暴露 - 记住DVD曾经是如何安全的 - 基于它们的系统将面临风险。已发布的算法具有许多眼睛分析它们漏洞的优势。
可能会有开发自己的加密算法的诱惑。简而言之,如果您不是专家,这可能是一个糟糕的计划。俗话说,设计一个你自己无法破坏的安全算法很容易。
当然,基于物联网的安全技术有增长空间。但是很多事情已经在原生完成,而不仅仅是从更大的系统移植过来的。可以这么说,没有必要重新发明加密轮。学习别人在你之前所做的事情。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !