嵌入式系统是许多工业应用程序的核心,这些应用程序需要较长的产品生命周期,同时响应功能更新和错误修复。特别是安全问题可以推动频繁代码更新的要求,以保持领先于黑客和恶意入侵者。包括远程更新设施 - 如果它可以被保护 - 可以显着延长几乎所有嵌入式系统的使用寿命。
本文将通过展示几种不同的要求和方法,探讨当代嵌入式系统中使用的各种远程系统更新。还将讨论对响应速度更快的嵌入式系统的未来要求,以及可以确定未来增强方向的MCU功能的最新创新。
保护嵌入式系统更新
嵌入式系统通常连接到网络,以便将信息从“边缘”设备传输到中央控制器。中央控制器又连接到存储单元,网关和流量聚合单元,所有这些都使用网络连接。为了简化代码更新和错误修复的安装,互连网络还用于将更新下载到可编程设备。这些更新可以简单地成为适应环境变化的新参数,也可以是提供新功能的完整代码“替换”。
更新需要以安全的方式完成,否则攻击者可能会劫持更新过程,用自己的程序替换可靠的代码。这些攻击通常会留下在未来更新之前执行的启动代码,以便即使在尝试更新“受感染”系统之后插入的代码也可以保留。有几种方法用于保护远程更新,它们的复杂程度各不相同,具体取决于系统作为黑客攻击目标的价值。显然,处理财务数据的系统显然需要保护,但即使是您可能不认为易受攻击的系统,也可能需要提高安全性。通常它是一个更复杂系统外围的元素,为攻击者提供了一个简单的路上。例如,智能恒温器或建筑物控制系统可以允许攻击者轻松地进入数据聚合子系统,然后进入金融机构的中央控制器。
远程更新的安全方法
在嵌入式系统中保护数据的最常用方法之一是使用加密和解密来保护敏感数据。标准加密函数和安全关键字通常用于安全算法,嵌入式系统需要提供这些功能才能发送和接收安全数据。诸如AES(高级加密标准)和DES(数据加密标准)之类的安全算法是您应该寻求支持安全通信的最常见功能。
边缘节点越来越频繁地使用无线通信最大限度地降低安装成本并提高部署灵活性。这些设备还可以使用安全的远程更新功能,甚至可以安全地传输常规数据。具有支持通用加密标准和无线连接的嵌入式硬件的设备将非常适合这些应用。
具有这些特性的基于MCU的设备的一个示例是Atmel SMART SAM R21无线MCU。器件的框图如图1所示。图的左侧是完整器件,无线部分显示在顶部,MCU部分显示在底部。在图的右侧是MCU部分的更详细视图,显示了处理器和所有外设模块。这两个部分(实际上是独立的设备)使用SPI端口连接,使通信非常简单。
图1:Atmel SAMR21无线MCU框图。 (由Atmel提供)
MCU可用于管理无线通信,并使用内置于无线设备中的安全算法(所有数据通信均支持AES)安全远程更新和安全数据通信可无缝实施。在一些系统中,可以使用片外存储器来维护多个“引导”图像。在这些情况下,外部图像也会被加密,因此黑客无法轻易地复制(甚至替换)具有硬件访问权限的系统。
以太网连接:主干线
无线连接非常适合边缘节点设备,但一旦数据聚合,以太网通常用于实现骨干网络以承载更高带宽的流量。实现多个以太网连接的MCU(主要支持IEEE1588的工业以太网)对这些类型的系统最有用。当需要在本地控制或监控这些系统时,通常需要大量的片外存储器,各种串行接口和高级人机界面(HMI)。
几个现代MCU系列支持这些关键功能,飞思卡尔VF6xx MCU系列提供了一个很好的说明性示例(图2)。这些器件具有基于ARM Cortex-M4和Cortex-A5架构的双CPU。这些处理器提供了适用于管理高带宽通信,数据聚合,数据存储和HMI控制的重要处理能力,可满足最高级的应用要求。 ARM处理器支持标准的ARM TrustZone安全功能,可以轻松保护和授权机密数据和进程。
图2:飞思卡尔VF6xx MCU框图。 (由飞思卡尔提供)
在最安全的应用中,VF6xx上可用的双处理器可用于将安全相关功能与非安全相关功能分开。通过仅使用指定处理器使用可信内存位置和加密强大的安全进程,远程攻击成功就变得更加困难。 VF6xx还具有先进的篡改检测功能,可用于关闭以未经授权的方式访问硬件的尝试。实现多层安全性是保护嵌入式系统免受最具攻击性攻击的最佳方法之一。当您需要强大的实施时,请查找具有多层安全性的设备。
其他重要功能
为嵌入式应用选择MCU时,考虑支持目标应用所需的其他功能仍然很重要 - 而不仅仅是与远程更新相关的功能。事实上,许多现代MCU现在支持相当强大的远程功能,您通常可以开始搜索,假设中高端MCU将包含基线远程更新功能。
例如,让我们考虑一个需要大量模拟接口功能的健康和保健应用程序。 STMicroelectronics STM32F3x系列MCU支持多种模拟功能,包括16通道12位ADC,9通道基于差分通道sigma-delta转换器的ADC,3通道12位DAC和2个通用比较器。这些资源适用于各种医疗和健康应用,其中需要模拟传感器来测量心率,血液氧合和呼吸(仅举几例)。
STM32F3x具有一个有用的启动配置模式选择功能,如下面的图3所示,它可以使用闪存,系统内存或嵌入式SRAM作为启动位置。此工具与片上存储的嵌入式配置引导加载程序(在生产期间由ST编程)配合使用,以简化远程更新。
图3:STMicroelectronics STM32F373启动选项。 (由STMicroelectronics提供)
随着远程更新变得越来越流行,许多MCU支持引导加载器功能,该功能采用片外映像(通常通过串行接口提供),然后将映像编程到闪存中。 STM32F3x可以使用USART端口或USB端口作为数据源。这大大简化了远程更新过程,并且无需自己编写此类代码。可以实现额外的安全层(在STM32F内部或使用外部安全存储器设备),具体取决于目标应用的要求。
并非每个MCU都具有基于硬件的安全性
在查看低端MCU时,支持高级硬件加密功能并不常见。这并不意味着当远程更新功能很重要时我们无法使用这些设备。通常,低端MCU与其他设备结合使用,可能作为控制或监控较大系统的环境方面的智能外围设备。在这些情况下,可能存在一种通信和控制低端MCU的高端设备。高端设备可以提供与安全相关的功能,并且可以在其他几个设备上使用。这可以更具成本效益,并且可以简化远程更新的实施和管理。
举个例子,我们来看一个需要一个功耗极低的智能外设的应用,它可以测量通信机架中的气流,温度和电压。像Renesas RL78/G14这样的MCU(如下图4所示)具有定期测量,收集和存储记录数据以及在测量超出范围时与中央控制器通信所需的资源。控制器可以使用串行接口来更新配置信息,可能是为了简单的错误修复“补丁”,甚至是片上程序的完整更新。
图4:瑞萨RL78 MCU的框图。 (由Renesas提供)
在RL78/G14上,片上数据闪存可用于存储记录的数据以及代码更新,补丁或配置信息的更改。数据闪存通常更容易编写,使其成为永久存储更新信息或更新代码存储器之前的阶段的有效位置,这需要更长时间并且更复杂。寻找机会使用数据闪存来简化远程更新,作为暂存区域或修补程序位置,以便进行简单的错误修复。
结论
远程更新,无论是简单还是复杂,都可以显着延长嵌入式系统的寿命。不要忽视实施各种分层安全功能以保护远程更新免受恶意实体干扰的需要。现代MCU正在添加新功能,以帮助简化嵌入式系统的远程更新,因此请确保您了解目标MCU上可用的功能。
全部0条评论
快来发表一下你的评论吧 !