虚拟圆桌会议Part 1——嵌入式系统信息安全

本秂侑毒 提交于 2020-11-30 12:05:30

作者:JEFF SHEPARD   翻译:BMR技术部

嵌入式系统安全包含功能安全(Functional Safety)和信息安全(Security)。EE World组织了这次“虚拟圆桌会议”,该会议由Jeff Shepard(JS)主持,小组成员包括IAR Systems嵌入式安全解决方案总经理Haydn Povey(HP)Silicon Labs物联网安全高级产品经理Mike Dow(MD)LDRA Technology销售和市场副总裁Jim McElroy(JM)HCC Embedded创始人及首席执行官Dave Hughes(DH)

让我们看看国外大咖们关于嵌入式系统信息安全是怎么说的?

当嵌入式开发人员首次开始实现信息安全时,最具挑战性的学习方面是什么?

JS

HP

实现信息安全最具挑战性的方面是了解你要保护的内容,保护谁免受攻击,以及资产的价值或攻击可能导致的影响。对于任何机构来说,这些都是非常难以解答的问题,特别是其潜在的影响,因为参考点相对较少。例如,在最近的一系列攻击发生之前,保护操作技术(Operational Technology-OT)免受恶意软件攻击的必要性被各机构认为是相对低优先级的事项,但许多攻击导致了数千万美元的损失。解决方法是采用一个标准,例如用于消费电子的EN 606345或用于工控和智慧城市应用的IEC 62443。这些标准概述了信息安全的基本要求,例如无固定密码和找到正确的加密身份;公开需要版本管理和代码签名的漏洞;以及需要一个可靠的安全启动过程实现设备更新,保证设备可信并解决缺陷。还有许多其他要求,如安全的通信,但一旦设备有了坚实的安全基础,这些要求很容易实现。

MD

通常,对于信息安全开发的新人来说,最具挑战性的方面是理解信息安全的基本原理。信息安全技术与其他技术一样,你必须了解技术的工作原理才能实现它。我认为很多工程师过度关注密码学,这会吓到他们。如果他们可以从系统工程师的角度思考,并将算法视为一个带有输入和输出功能的黑匣子,这样就简化了过程,使基本概念更容易掌握。事实是,如果你不知道非对称加密和对称加密之间的区别—或者哈希函数的作用—你就会不知所措,不太可能实现安全,或者安全性很差。

JM

对于嵌入式软件开发人员来说,学习面临的最大挑战可能集中在理解信息安全需要考虑的内容:安全硬件、安全通信协议、安全操作系统、安全启动、加密、静态和传输中的数据安全、消除安全漏洞的安全编码实践、健壮性测试等。考虑的内容很多,开发一个健壮和安全的嵌入式系统的成本往往也是一个主要考虑因素,需要根据被开发系统的预期风险做出决定。

DH

所有嵌入式开发都具有挑战性,信息安全需求增加了挑战,而挑战程度取决于目标系统特定的安全需求。起点是对你所构建系统的风险进行详细评估,减轻每个风险,同时始终注意风险的混合复杂性。

为了增强嵌入式系统和设备的安全性,设计者可以做的最简单的事情?

JS

DH

设计者需要对他们的设备应该防范的风险进行正确的评估,这是构建安全案例的核心,并确保最终的设计专注于产品的实际需求,避免不必要的复杂性,减少攻击面!

JM

设计者所能做的最简单的事情是应用自动静态分析,利用最新的安全编码标准,如MISRA和CERT,确保安全编码实践和消除安全漏洞。对于嵌入式软件,最佳实践认识到需要从一开始就考虑安全性。在系统建立后,增加安全既不划算,也不起作用。安全编码实践需要在整个组织机构中应用、检查和标准化。实现这一目标的最简单和高效的方法是遵从自动化标准,这也大大提高了嵌入式系统的整体安全性。

MD

在交付产品之前锁定调试端口,这听起来很简单,但你会惊讶有多少次没有这样做。另一个最基本的任务是基于不可变的信任根进行安全启动,安全启动是对抗各种攻击矢量的最有效工具之一。

HP

设计者能做的最简单的事情就是使用正确的工具。安全的实现有许多细微之处和挑战,不能期望每一位工程师都能成为密码学专家。使用正确的工具可以将安全从复杂的工程挑战过渡到每个团队都可以实现的东西。同时也需要与设计师的CISO(信息安全管理员)团队合作。产品标识、漏洞披露和修补方法等方面都是CISO每天在其IT系统上使用的技术,将正确的技术运用到产品中,我们可以确保安全和可用性的平衡。

一般来说,嵌入式设备的安全维护和更新实施情况如何?

JS

JM

大多数嵌入式设备,一旦部署后,就会独立运行,仅在识别到安全漏洞时被“修补”。一旦发现漏洞,往往为时已晚,有价值的信息可能已经被窃取;或者系统已被恶意软件渗透,等待合适的时机执行操作。对这些系统的更新可能需要将系统连接到网络,或者打开设备进行OTA更新。这种修补也需要安全的通信。

MD

不幸的是,安全地OTA更新并不简单;您需要一个安全的启动加载程序和大量的示例代码和文档。在选择供应商时,询问他们对该功能的支持情况非常重要。

HP

通常,许多更新和维护方案都不是很好。没有使用签名来保护代码,从而使恶意软件能够被部署,应用中的许多操作处于较高的等级,显然需要假定系统的所有方面都可能受到损害。事实上,更新的首要原则应该是每个设备都可能受到威胁,因此每个设备都需要一个安全的地方来恢复和补救。在我们的解决方案中,我们专注于自动创建一个健壮、安全的启动管理器,它完成所有裸机工作,以确保设备引导到一个干净安全的空间,然后在那里检查正确的格式化、签名和加密的更新。这种多级方法假定在产品的生命周期内会有许多软件版本,因此,还必须集成版本控制和反滚机制。

DH

 我认为对这样一个问题没有普遍的答案,因为每个设备都有不同的风险。你必须根据设备的目标进行评估。如果数据不是一个安全风险,为什么要保护它?进行正确的风险评估,根据评估建立缓解措施的公司将对其解决方案有很高的信心,不这样做的人无法提出任何有意义的主张。

大多数嵌入式设计人员是否理解安全启动配置的重要性,以及如何和何时使用安全启动来增强嵌入式系统的安全性?

JS

MD

在过去的五年时间里,运行Linux的微处理器中的安全启动里得到了很好的理解和广泛的使用。对于内置闪存的微控制器来说,安全启动仍然是一个非常新的概念,很多工程师没有尝试过。来自ETSI和NIST的IoT新需求,在运行之前对代码进行身份验证,推动了微控制器(MCU)的安全启动需求。

DH

大多数嵌入式开发人员的工作与安全启动配置无关。如果系统设计人员的风险评估要求安全启动,那么相关专家会实现这一点。

JM

在设备被攻击的风险较高的行业(例如航空电子系统、自动车辆控制系统、医疗输液泵),对安全启动重要性的了解更为普遍。这些系统需要最高的信息安全和安全保证等级,因为设备操作人员、乘客或病人的生命和安全可能因设备操作不当而受到不利影响。在松散连接或独立设备中,安全启动配置经常被忽略。

HP

大多数嵌入式开发人员都知道安全启动管理器很重要,然而,即使有了ARM TF-M(Trusted Firmware-M)等技术,安全系统的构建和支持也是一个长期工作。全球网络安全专家缺口约350万,这些需求并不奇怪,很少有工程师有足够的知识来理解他们正在保护什么,在保护谁,以及如何更好地实施解决方案。事实上,EN303645规范要求所有消费类嵌入式系统都有一个安全的启动框架,IEC62443工业物联网在工业领域也是如此。实际上,没有连接的设备不需要安全的启动管理器。

感谢我们的小组成员分享他们的见解和经验!请继续关注虚拟圆桌会议Part 2—— “嵌入式系统的功能安全”!

JS


1.从嵌入式角度分析“可解释性”对人工智能的影响!

2.【MCU】寄存器、标准库、HAL库、LL库,这么多库!你叫我怎么选?

3.用Linux开发嵌入式项目拢共分几步?

4.程序本身如何知道自身大小?这是鸡生蛋还是蛋生鸡的问题!

5.国产集成开发环境助力国产RISC-V打破国外巨头在芯片技术上的垄断

6.做嵌入式开发时,你是怎么实现LCD显示的?

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!