如何保证物联网设计符合安全准则

随着非技术性大众对生活和商业中越来越多设备被连接而导致的黑客攻击危险的认识不断提高,政府参与监管的意愿也在提升。

比如,澳大利亚政府近期就公布了一份“物联网安全守则”草案,作为其 2020 年网络安全战略的一部分,旨在研究保证物联网安全的举措。这些原则与物联网安全基金会在其 物联网安全最佳实践指南 (IoT Security Best Practice Guides) 中公布的原则基本相似。这些免费提供的指南意在帮助物联网产品和服务开发商解决各种必须消除的安全问题,以提供一个安全、可靠、可信和成熟的最终产品。

物联网安全基金会表示,物联网产品和服务的创造者面临着确保他们提供的产品真正合规,并能得到客户信任的巨大压力。

该指南涵盖了从安全设备启动、操作系统、凭证管理和加密到安全软件和软件更新政策等所有内容。在最新发布的第二版指南中,除了审查和更新现有的 11 个指南外,还增加了三个主题:

  • 评估安全启动过程
  • 软件和更新签名
  • 侧信道攻击

安全启动过程指南

新的安全启动评估指南有助于确保启动过程的设计是安全的,由使用安全开发技术创建的软件来补充,并能抵御恶意攻击,无论是正常操作,还是调试、开发或分析。在关键要求下,它建议所有作为启动过程的一部分加载的代码,除非它是直接通过 ROM 运行,否则要经过验证以确保:

  • 代码是由预期的、授权的来源创建的
  • 代码自创建以来没有被修改过
  • 代码是为它要运行的芯片类型准备的

在这个代码被加载到 RAM 中后,需要对其进行验证,然后启动程序开始从 ROM 中运行,使用一个不可更改的根密钥来验证第一个被加载的代码。可以考虑用多个不可更改的根密钥来验证不同的启动阶段,生成派生的密钥,这样即使在后续被攻击时也能提供冗余。

只有在每个前一阶段被成功验证和启动之后,代码模块才会被逐步加载。任何目前安装在设备上的、将被用作启动配置一部分的现有数据,在启动过程中使用之前都要检查其长度、类型、范围等。在启动过程的每个阶段,只要有可能,启动软件都会检查硬件配置是否与该阶段的预期配置参数相符。

启动过程确保在这个过程的任何阶段发生错误,设备就会“适度故障”,进入一个安全状态,且 RAM 中的残余代码被清除。此外,适度故障也必须确保设备不会“变砖”,并且不能对底层系统、代码或数据进行未经授权的访问(例如,通过 U-Boot 提示)。

制造商实施一个安全的过程来生成密钥和证书。设备上的密钥和证书的配置、存储和使用是安全的。设备报废管理确保密钥和证书的安全性得到维护。

这些安全启动过程指南只是该指南的要素之一,但与所有章节一样,是确保物联网安全互联设备开发的重要部分。IAR Systems 通过其“从概念到安全”产品套件,让开发人员能够直接在整个开发、制造和产品管理过程中,按照安全指南的要求,建立适当的安全级别。

其独特的工具和服务集用于实现和定制嵌入式应用的安全性,以嵌入式信任 (Embedded Trust) 的形式提供安全开发环境,并使用 IAR Embedded Workbench 提供完整的开发工具链,其中包括安全开发工具 C-Trust 和静态分析工具 C-STAT。

We do no longer support Internet Explorer. To get the best experience of iar.com, we recommend upgrading to a modern browser such as Chrome or Edge.