管理程序会保护我们吗?

它们可能不是灵丹妙药,但在保护汽车和物联网安全方面,它们是良好的第一步。当人们认为工作已经完成时,问题就开始了。

受欢迎程度

一天又一天,又有一辆汽车被黑客攻击,又有一份数据泄露的报告。电子系统缺乏安全保障,使其成为犯罪世界的游乐场,该行业必须开始通过增加越来越复杂的保护层来提高响应能力。本文是由两部分组成的系列文章的第一部分,在本文中,《半导体工程》将探讨管理程序是如何进入嵌入式领域的。

,首席执行官治之,阐述了考虑基于硬件设计变化的管理程序的原因。“在过去,如果我想让单独的任务运行,我可能会设计成一个在左边,一个在右边,每个在不同的处理器子系统上运行,两者永远不会接触。我将数据从一个管道传输到另一个。他们本质上是分开的,除了他们共享的信息。向现代硬件的转变,即你拥有多核处理器或一群机器,意味着一切都是相连的。然而,你仍然要确保它们不会相互影响——这些工作不会相互侵犯。”

hypervisor的作用就是实现这种分离。它的主要功能是创建和管理虚拟机,其中软件认为它在自己的专用机器上运行。它完全不知道可能在另一个虚拟机上运行的其他软件,即使两者都运行在相同的硬件上。

虚拟化已经成为数据中心的主要内容,并提供了许多优势,例如CPU整合、容错和作业隔离。但是深度嵌入式系统不像服务器群那样有规律,而且优先级也不同。嵌入式系统往往是异构的,包含不同的内存架构。此外,它们包含多种类型的处理引擎,包括cpu、gpu和可能的FPGA年代。

管理程序在需求最迫切的地方得到了应用。“管理程序的使用是一种趋势,但不是一场革命,”FentISS总经理Vicent Brocal说。“我们一直在与飞机制造商合作,监控程序是他们的关键技术。这项技术经历了自然的演变。这是一项使能技术。它为行业的不同部门提供了一个机会,最近在汽车行业,他们正在寻找如何将其应用于他们的特定需求。”

所有关注管理程序的部门都有一个共同点。“对虚拟机管理程序的兴趣是由联网设备的爆炸式增长引起的,”思科首席安全策略师切萨雷•加拉蒂(Cesare Garlati)表示Prpl基金会.“这使得安全问题成为主流。”

安全问题正在改变游戏规则。Seltech Corp.总裁兼首席执行官Shoi Egawa表示:“管理程序市场主要用于工厂自动化或汽车市场物联网因为他们需要安全。这是一个变化,因为工厂和汽车不是关于安全的。它们是基于功能安全的。控制系统通常使用实时操作系统(RTOS)来实现,但他们希望在Linux或Android之上运行图形丰富的内容。工厂自动化是类似的,有实时控制和Windows或Linux之上。在汽车行业,人们希望将信息娱乐系统与控制系统分离开来。管理程序可以做到这一点。”

但是还有其他重要的变化。“大多数嵌入式系统都是连接的,”公司细分市场总监马吉德·贝曼尼安(Majid Bemanian)指出想象力的技术.“大多数手机上还运行着第三方应用程序。面对这种复杂性,大多数玩家都关心如何在各种挑战中保护自己。一台电视机现在可以有多个不同的流。你有4K内容,你可以在屏幕上购物,你可以检查前门的安全监视器,玩游戏——所有这些都可能同时发生。”

这些担忧在其他市场得到了放大。“媒体显示器可以是家里的大电视,也可以是汽车的后座,”Bemanian说。“他们现在都有这种多样化的概念,而且往往是正交的能力。挑战在于,从认证或遵从性的角度来看,它们有不同的需求,必须把它们都放在同一个屋檐下,这是一个挑战。他们需要多个可以隔离和强制执行的环境。”

虽然存在差异,但也有很多相似之处。“例如,汽车上的许多核心系统可能看起来像不同的动物,但实际上它们是非常相似的,”ibm的嵌入式软件技术专家科林•沃尔斯(Colin Walls)表示Mentor Graphics的嵌入式软件部门.“由于各种原因,优先级不同,但对安全性、用户界面、模块之间的通信等方面的需求是相同的。”

混合操作系统
运行管理程序的嵌入式系统的一个共同特征是实时功能和运行特定操作环境中可用的遗留软件堆栈的需要的结合。这必须以一种安全和有效的方式来完成。“很多时候,关键组件是实时的,有严格的时间限制,”FentISS的Brocal说。“在虚拟机管理程序中,我们有固定的资源分配,因此我们可以保证应用程序具有适当的CPU处理分配和其他可能在Linux环境中运行的不太关键的功能。”

Imagination的Bemanian描绘了一幅类似的画面。“在GPU上运行,你可能会让仪表板和信息娱乐系统都使用同一个子系统。问题是您需要确保指示板的滴答时间为60mS。当车速从每小时60英里增加到每小时80英里时,你必须对速度计做出反应,或者确保速度被正确地反映出来。这是一个安全问题。之后,你可以回到导航或娱乐。”

但是实时的概念正在改变。Mentor’s Walls指出:“过去我们讨论的是硬实时和软实时,有些应用程序仍然存在这种情况,但通常情况下,我们现在有如此多的CPU功率,我们更关注提供足够的功率来完成工作,而不是时间分配的细节。”“现在我们提供的产品使您能够控制时间的使用方式,但实际上,曾经被认为是实时的应用程序是使用Linux等产品可靠地实现的,这些产品本质上没有任何实时特性。但这个系统非常快,这真的无关紧要。”

同样重要的是,它几乎不会对硅面积或功率产生影响。“这两者之间有一个平衡,很难说有多少,”贝曼尼安说。“如果您使用的CPU不为管理程序提供大量支持,那么您将看到大约10%到15%的开销,但根据工作负载,在硬件支持下,这将下降到不到1%到2%。就硅的影响而言,它是噪音水平。我们说的是几百万个门中的10万个门。”

硬件支持
如果没有硬件支持,这一切都无法实现。Egawa说:“如果不提供硬件支持,管理程序的开销就会变得相当大,一般来说这是没有意义的。”“硬件虚拟化、信任区域或其他几个即将出现的想法,每个都可以提高管理程序的性能。我们只使用了1%的CPU性能。目标不仅是大型cpu,而且是物联网市场,这需要使用微控制器。它们的内存非常有限,所以我们必须使管理程序更小、更紧凑。”

并非所有人都同意这种观点。沃尔斯说:“人们经常询问RTOS的管理费用,这有点像询问劳斯莱斯的价格。“如果你需要问,说明你负担不起。如果头顶是一个大问题,那么你可能航行太接近风向,你应该考虑系统重新设计。现代实时操作系统的开销很低,管理程序的开销也很低——不是零,但你不会在一个至少没有合理容量来弥补空闲的系统中使用它。”

所有系统都需要一些基本服务。“要使管理程序工作,我们需要硬件提供一些功能,包括内存保护和一些能够强制时间隔离的计时器,”Brocal说。“我们还需要一些机制来保护某些只能由管理程序使用的处理器指令。”

但除此之外,事情可能会变得棘手。Garlati说:“你分离的是内核及其寄存器和堆栈,每次你切换上下文时,这些寄存器和堆栈都会切换。”这同样适用于MMU。您切换到不同的内存管理,并且一个进程无法在内存或处理器方面造成损害或弥合分歧。但是困难的是I/O,包括DMA和处理异构环境。这就是为什么你需要在硬件层面上有一些特定的东西。”

Bemanian对此做了进一步阐述。“我们不会分割CPU,创建一个可信的环境,然后说我是安全的定义。这样做的挑战在实现上变得非常复杂,并且只考虑以CPU为中心的隔离SoC.如果有GPU,那么让我们确保它能够支持硬件虚拟化和管理程序——结构、连接设备等。你必须采取一种整体的方法,因此我们根据流程对其进行分割。所以你有一个DRM流程,一个付费流程,一个游戏流程。流可以触及系统的每个元素,解码器,编码,压缩引擎,CPU, GPU。所有这些元素都被触及,并与多个流并发。所以仅仅保护好CPU是不够的。”

Egawa还添加了一个需要硬件支持的新领域。“机器学习正在成为管理程序感兴趣的一个领域。因此,我们认为有必要为包含人工智能组件的系统构建安全域的概念。”

当一个系统变成多核时,它增加了一层复杂性。“当只有一个核心时,我们可以通过系统总线控制一切,因此我们可以控制每个进程如何使用内存,”Brocal说。“但是当许多核心使用相同的内存和总线时,核心之间就会产生干扰。多个内核可能同时尝试访问总线,因此我们得到总线争用。这会影响到时间域的隔离。如果硬件能够提供额外的功能来限制或动态调整某些cpu的带宽,这将是非常有用的。这应该在基于临界性的管理程序的控制之下。”

在考虑安全性和安全性时,您必须考虑系统可能受到损害的所有可能方式。“如果应用程序攻击DDR会发生什么?”Bemanian问道。“它可以对DDR发起拒绝服务攻击。它不是直接攻击关键功能,而是攻击它所需的资源。你可以达到违反安全要求的地步。所以我们今天必须在GPU中寻找服务监管的质量。这样我们就能确保事情不会超出预期。”

对嵌入式管理程序的需求在不断发展。我们不仅需要隔离,还需要保证健壮性和安全性。与此同时,硬件也变得越来越多样化和复杂。

第二部分在本文中,我们将研究管理程序对认证、安全性、调试和测试的影响,以及与选择开源或专有管理程序有关的问题。



2的评论

德里克·科克兰 说:

这是一个非常有趣的概念,也是汽车制造商真正需要做的事情,以说服他们的客户,无论是在驾驶员辅助下,还是在无人驾驶汽车上,车辆都是安全的。我认为,拥有更强大的处理器或甚至多个系统来处理故障的成本,将是增加总成本的一个小成本。安全和保障应该是最重要的(这是宣传的关键优势之一——减少事故和死亡),否则有什么好处呢?

Hellmut Kohlsdorf 说:

我刚刚开始处理管理程序,并专注于类型1的管理程序。我的印象是,没有任何资源可以“理解管理程序”和“虚拟化”,以及它为什么和如何发挥作用!这篇由两部分组成的文章是我找到的第一篇。谢谢。

留言回复


(注:此名称将公开显示)

Baidu