使用适用于v8-M的ARM信任区保护边缘

描述

  随着基于 v8-M 的芯片进入市场,开发人员必须了解架构、它提供的新功能,以及如何在设计构成安全端到端系统基础的连接边缘设备中实现它。

  物联网 (IoT) 安全问题通常是由于对连接系统边缘的设备保护不足造成的。这些往往是低功耗,廉价的基于微控制器的设备,执行单一功能,如温度监控。缺乏处理能力,内存,当然还有成本,经常被引用为无法正确保护这些资产的原因,黑客越来越多地利用这些资产作为连接到同一网络的更高价值资产的蹦床。为了保护知识产权、客户数据、用户安全和品牌声誉免受此类威胁,设备制造商已经研究了各种技术来保护易受攻击的端点,包括使用多个MCU,其中一个或多个专门用于执行加密和身份验证等安全功能。这当然会增加复杂性和成本,并向物料清单 (BOM) 添加另一个行项目。

  然而,幸运的是,对于基于MCU的设备来说,这种情况将会改变。2015年,ARM宣布其基于硬件的安全技术TrustZone将凭借新的v8-M架构在Cortex-M M MCU上提供。ARMv8-M 的安全功能类似于在 Cortex-A 应用程序处理器中广泛部署的功能,可为 Cortex-M 设备带来基础安全性,并能够创建端到端安全的物联网系统。

  适用于 ARMv8-M 的信任区扩展:增强的安全体系结构

  ARMv8-M 架构是一种 32 位架构,它保持了与 ARMv6-M 和 ARMv7-M 的兼容性,以简化 Cortex-M 系列中的软件迁移,同时还集成了许多增强功能和新功能,尤其是在安全性方面。安全增强功能包括对受保护内存系统体系结构的改进以及前面提到的 TrustZone 安全扩展,后者允许建立安全和非安全状态,以便单个 Cortex-M 设备中可以存在多个安全域。

  片上系统(SoC)通常包括多个微处理器,每个微处理器用于卸载系统管理或其他任务(例如I / O)。在此体系结构中,一个处理器通常以特权状态运行,另一个处理器在非特权状态下运行。虽然基于MCU的系统也能够通过使用内存保护单元(MPU)或内存管理单元(MMU)一段时间来建立特权和非特权状态,但v8-M TrustZone扩展提供了额外的安全级别和更有效的资源利用率,从而降低了系统设计的复杂性,从而降低了成本。

  它是如何运作的

  从概念上讲,v8-M 的信任区的工作方式类似于 Cortex-A 处理器的信任区。然而,与适用于 Cortex-A 级处理器的 TrustZone 技术不同,它没有安全监视器来管理两种状态之间的转换。相反,安全和非安全状态是基于内存映射的,这消除了切换开销,并有效地满足了边缘设备的能效要求。

  对于 v8-M 的 TrustZone 扩展,MCU 中安全和非安全区域的定义由芯片设计人员自行决定。这是使用称为安全归因单元(SAU)的新功能完成的,SAU是一种用于定义安全和非安全内存区域的软件技术。或者,可以使用与处理器的特殊实现定义归因单元(IDAU)接口相关联的设备或系统特定控制器逻辑来实现相同的目的。两者之间的主要区别在于SAU在安全状态下是可编程的,而IDAU则创建固定的内存映射。

  处理器状态取决于访问的内存区域(安全或不安全)。如果代码在安全内存区域中运行,则处理器状态是安全的,并且与传统的 TrustZone 技术类似,在安全内存区域中执行的代码可以访问非安全区域,但不能访问非安全区域。但是,适用于 v8-M 的 TrustZone 在安全区域中引入了一种称为非安全可调用 (NSC) 的其他内存类型,该类型充当在非安全内存区域中运行的代码的入口点,以访问安全区域中的服务、函数或数据。因此,存储器的NSC部分增加了安全和非安全存储器区域之间的一定程度的分离,同时促进了对安全功能的访问。需要使用 NSC 内存的应用程序开发人员必须使用 v8 体系结构中引入的新指令(称为安全网关 (SG))来执行此操作。SG 指令必须驻留在 NSC 内存中,并且必须是 API 中访问安全函数的第一条指令。任何在没有有效SG指令的情况下访问安全存储器的尝试都会导致硬故障。

  此外,ARM 还增强了被定义为 AMBA 3.0 互连规范一部分的 AHB-Lite。现在,更新后的规范 AMBA 5 AHB5 添加了一条特殊指令来标记安全和非安全总线事务,允许具有 ARM v8-M 的信任区的系统与 Cortex-A 设备上的信任区进行互操作。此功能对于支持设计可扩展性和端到端的系统范围安全性至关重要。

  边缘保护方案

  ARMv8-M 的新信任区扩展启用了许多安全应用程序,包括:

  知识产权保护:知识产权,如专有算法,与公司的内在价值直接相关。设备制造商可以使用 ARMv8-M 的 TrustZone 将知识产权存储在安全内存中,同时仍允许不安全的应用程序通过 API 访问它。

  关键信息的安全存储:将用户数据、身份信息和安全密钥与系统其余部分分开,可确保机密性。

  信任根实现:信任根实现为许多不同的应用程序(如安全无线 (OTA) 固件更新)提供了安全的基础。这种信任基础对于在系统中的设备之间启用相互身份验证也至关重要。

  认证软件的沙盒:软件认证是一个昂贵的过程。例如,使用经过认证的加密软件,使设备制造商能够进入要求这些要求的新市场。ARMv8-M 的信任区允许将此类代码保存在安全的内存区域中,同时允许通过 NSC 内存区域中的 API 访问应用程序。

  通过处理器整合降低成本:在复杂的 SoC 中,一个处理器可能专用于执行安全功能,用于 ARMv8-M 的 TrustZone 可以实现与专用处理器相同的安全功能,从而降低成本和复杂性。

  端到端安全示例

  让我们举一个简单的门锁示例来演示适用于 ARM v8-M 的 TrustZone 在实现端到端安全性方面的实用性。该系统由四个部分组成 : 门锁、基于 Cortex-M MCU 的摄像头单元(带有用于控制锁的 ARMv8-M 的信任区扩展)、基于 Cortex-A 微处理器的网关(采用 TrustZone 技术)和智能手机。当有人来到门口时,相机会拍摄图像并将其发送到网关,网关会将图像中继到手机应用程序。查看图像后,用户单击应用程序中的按钮以打开门。

  在此示例中,边缘节点从 ARMv8-M 的 TrustZone 获得其信任根,这将成为向网关验证自身的基础。网关还通过 Cortex-A MPU 上的信任区向移动电话验证自身身份。当用户在手机上选择“打开门”命令时,电话会将其中继到网关,网关又将其中继到边缘节点以打开门。作为过程的一部分,在每个步骤中都会验证设备之间中继的命令,从而确保系统范围的完整性。

  ARMv8-M 的 TrustZone 支持智能公用事业和智能城市等市场中的节能设备,如可穿戴设备或电池供电的边缘节点。TrustZone 扩展不仅能够保护边缘,而且通过降低复杂性和消除专用于执行安全功能的其他部件来改变安全经济性。虽然支持ARMv8-M的芯片的TrustZone尚未上市,但包括快速逻辑,绿山软件,IAR系统,IBM,导师图形,Micrium,实时工程师,赛门铁克和Trustonic在内的几家软件公司已宣布打算支持它。

  最终,利用 ARMv8-M 功能的选择取决于设备制造商,因为 v8-M 的 TrustZone 将要求开发人员改变应用程序开发实践。将 TrustZone 用于 ARMv8-M 可以强制对需要保护哪些信息进行有纪律的思考,并且可能会导致短期学习曲线,从而影响开发过程。但是,考虑到发布不安全产品的成本,决定很简单 - ARMv8-M的TrustZone填补了物联网系统范围安全道路上的直接空白。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分