0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

保护连接的嵌入式设备上的数据

星星科技指导员 来源:嵌入式计算设计 作者:Warren Kurisu,Felix 2022-10-20 09:19 次阅读

保护互联嵌入式设备上的数据是当今软件开发人员和架构师的首要任务。似乎每周都会宣布另一个重大数据泄露事件。嵌入式软件开发人员正在迅速获得工具和技术,以设计更安全、更安全的连接设备。开发人员可以使用 ARM TrustZone 技术来保护其设计中的数据,此外还可以通过 Type 1 虚拟机管理程序进行嵌入式虚拟化,通过实时操作系统RTOS) 和开源软件将安全数据、连接和实时操作相结合,以充分利用新兴的多核和异构片上系统 (SoC) 架构。

连接设备的功能正在迅速增加,存储在这些设备上的信息或可通过这些设备访问的信息的价值也在迅速增加。我们今天使用的大多数设备都连接到至少一种类型的网络或服务。汽车通常通过蓝牙或移动数据网络连接到设备;便携式医疗设备相互连接,连接到医院网络,连接到云,甚至更远的地方;智能能源网络将电力公司连接到家庭内的众多消费设备。

在多个方面保护数据

在解决如何保护嵌入式连接设备时,首先考虑容易受到攻击的表面区域非常重要。攻击区域因设备而异,但通常,设备越复杂,攻击区域就越大。其次,重要的是要了解当今大多数威胁的目标数据不是为了数据,而是为了操纵数据的能力。第三,通过分层各种安全功能来设计和开发既健壮又安全的设备至关重要。

操作数据

操纵数据的一个例子可能是对算法的攻击,该算法会影响其所依赖的系统操作,例如ATM终端上的银行应用程序或控制设备在汽车内如何工作的参数。在保护数据方面,开发人员需要了解三个关键阶段:静态数据、使用中的数据和传输中的数据。

静态数据最好描述为设备断电时。此阶段的注意事项包括:

可启动映像存储在何处?

是否有用于通知设备是否被篡改的防篡改方法,以及防止其启动到易受攻击状态的方法?

可执行文件是否已加密,或者任何获得访问权限的人都可以删除 EEPROM、转储内存或尝试对应用程序进行反向工程?

使用中的数据是指设备正常运行并生成和处理数据。一些注意事项包括:

混淆方法是否已用于敏感数据?

设备是否在已验证状态下执行?是否建立了信任链?

传输中的数据描述进入或离开设备的数据。一个好的设计应该解决以下问题:

如果数据被劫持,如何保护数据?

加密或隧道协议是否到位?

是否已部署防火墙,拒绝服务攻击的策略是什么?

创建安全层

在保护设备中的层时,您可能会听到“深度防御”或“分层安全性”。无论术语如何,它归结为创建可以防御攻击的安全层,或者至少延迟攻击穿透后续层。分层安全模型可能包括:

策略和程序 – 管理设备访问和使用的规则

物理 - 从字面上看,物理屏障,如栅栏,警卫或锁门

网络 – 确保与外部世界的连接

应用程序 – 确保恶意应用程序不会危及系统

数据 – 确保系统中使用或存储的数据的完整性

在片上系统 (SoC) 中实施的 ARM 信任区技术可用于解决分层安全模型的网络、应用和数据方面问题。

ARM 信任区技术

ARM 信任区体系结构提供了一种解决方案,该解决方案能够划分或隔离完整 SoC 的硬件子集。它通过定义处理器、外设、内存地址,甚至L2缓存区域来做到这一点,以作为“安全”或“非安全”硬件运行。利用 TrustZone 技术的 SoC 能够动态地向安全软件公开完整的 SoC,或者向普通软件公开该 SoC 的子集(图 1)。

图 1:ARM 的信任区技术允许开发人员将 SoC 中的功能指定为“安全世界”或“正常世界”。

pYYBAGNQolaAcvDcAAMrL4hwxso418.png

由 TrustZone 创建和实施的正常世界(非安全世界)通常是 SoC 的已定义硬件子集。例如,普通世界硬件子集可能包括 UART以太网USB 接口,但不包括控制器局域网 (CAN) 访问。相反,CAN可能专用于安全世界,其中单独的RTOS或应用程序运行的唯一目的是管理CAN流量,独立于正常的世界软件堆栈。

与运行正常世界软件的硬件子集不同,在安全世界中运行的软件可以完全访问所有 SoC 硬件。因此,从安全软件执行的角度来看,系统的外观和行为与没有TrustZone的处理器上看到的几乎相同。这意味着安全软件可以访问与安全和正常世界相关的所有资源。

可信执行环境(TEE)是指在安全世界中运行的软件堆栈,以及允许安全软件与正常世界软件进行交互的通信。TEE软件通常由一个小型微内核和应用程序以及允许安全软件与更大的、以用户为中心的软件(例如Android)进行通信的API组成。其中一个规范定义了一个TEE产品,有些人可能称之为“典型的RTOS”API和功能,以及非常适合TEE用例的其他功能和API。

我们中的许多人经常使用安全世界和正常世界处理而没有意识到这一点。例如,在线购物通常需要用户名和密码。当系统提示输入此身份验证信息时,移动设备(Android 手机、Apple iPad 等)将切换到安全世界模式,在该模式下,数据在安全键盘上输入并在允许发生任何其他操作之前进行安全处理。银行应用程序本身可能完全在安全世界中运行,但设备也可以从安全世界切换到正常世界以访问其他应用程序,例如浏览器,电子邮件或执行其他非安全任务。

保护多核架构中的 SoC

单个基于 ARM 的核心可以执行正常的世界上下文或安全的世界上下文,但是在具有多个内核的 SoC 中会发生什么情况?开发人员可能会遇到多个内核访问同一安全应用程序的情况,这不仅扩展了攻击的表面,而且可能会使代码暴露于难以调试的令人讨厌的计时问题。为了纠正这一点,开发人员可以如图 2 所示配置其设备,其中只允许一个内核执行安全的世界内容。在此设计中,当在任何一个内核上运行的应用程序需要启动安全应用程序时,它必须连接到内核 0,在那里会发生向安全世界的过渡。这将使多核设计更简单、更稳健。

图 2:使用指定的核心 (CPU0) 在多核环境中执行安全的世界内容。

poYBAGNQohqAdnKsAAERQxCKt_o648.jpg

在正常世界中运行一个应用程序并在安全世界中隐藏安全密钥和算法确实很有意义,但不幸的是,它不是很实用。最近出现了一个趋势,即硅制造商正在出货更多的多核部件。在许多设计中,使用了多个操作系统 (OS),这就是 SoC 中的虚拟机管理程序模式和虚拟化扩展变得有用的地方。可以在包含对 ARM 信任区技术支持的虚拟机管理程序之上构建更完整的体系结构。然后,设计人员可以在虚拟机之间对应用程序和外围设备进行分区,同时在安全世界中保护密钥和专有算法。

将它们放在一起

例如,部署在 ARM Cortex-A15 设备上的设计如图 3 所示。在正常世界中,我们有虚拟机管理程序与两个虚拟机一起执行。在正常世界空间中运行虚拟机的两个 Linux 实例被设置为具有内核和驱动程序,以便在内核模式上下文中执行,而用户应用程序则映射到用户模式。TEE 和安全应用程序映射到安全世界空间。目前有许多基于 ARM 的 SoC 处理器围绕 Cortex-A15 架构构建,可以支持这种类型的配置。TI OMAP5 和哈辛托 6 参考平台就是两个例子。

图 3:将虚拟机管理程序整合到 ARM 的正常和安全世界中。

poYBAGNQohyAEYx_AADrxISCliA661.jpg

保护连接的设备

连接的嵌入式设备不仅在功能上,而且在它们生成和传输的数据方面都变得越来越丰富。随着这些设备无缝融入我们的日常生活,软件开发人员有责任设计每个新设备,将安全性作为首要关注点。通过使用 ARM 的 TrustZone 技术以及 Type 1 虚拟机管理程序,开发人员可以为 SoC 设计提供强大、强大且安全的基础,以满足我们不断扩展的互联世界的需求。

审核编辑:郭婷

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

    关注

    4983

    文章

    18295

    浏览量

    288594
  • soc
    soc
    +关注

    关注

    38

    文章

    3750

    浏览量

    215722
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118800
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式联网模块

    电路连接。一般来说联网模块要求体积小,这样系统PCB也可以相应减小体积有利于节约成本。 3.如何使用嵌入式联网模块进行联网使用联网模块进行嵌入式设备联网一般有以下步骤: 1) 使用者在
    发表于 08-13 16:02

    如何设计嵌入式系统掉电保护方案?

    嵌入式系统设计过程中,系统的掉电保护越来越受到重视。如何设计嵌入式系统掉电保护方案?这个问题急需解决。
    发表于 08-09 07:48

    基于组件的嵌入式移动数据库怎么实现?

    嵌入式技术已在人们生活中得到广泛应用,移动计算更是给人们的生活带来了极大的方便,由移动计算技术推动发展的新的数据库技术让人耳目一新。如嵌入式移动数据库就是随着各种移动
    发表于 10-11 06:44

    嵌入式设备如何提高安全性

      随着越来越多的嵌入式设备接入网络并成为物联网的一部分,网络黑客们开始利用这些连接,以达到自己不可告人的目的。因此,嵌入式设备必须提高安全
    发表于 06-30 11:05

    怎么保护嵌入式软件和电子设备产品不被抄袭

    在物联网和智能设备飞速发展的今天,嵌入式软件已经成为电子设备核心的知识产权,很多关键创意或者算法都体现在其中,而怎么保护嵌入式软件和电子
    发表于 07-22 09:20

    嵌入式数据库相关资料下载

    嵌入式数据库的名称来自其独特的运行模式。这种数据嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式
    发表于 10-27 07:53

    嵌入式设备挂载目录

    嵌入式设备配置4.1 Linux内核添加NFS支持4.2 嵌入式设备挂载目录1. 背景嵌入式Linux开发中,提到NFS,一般都是NFS整
    发表于 10-27 09:26

    基于蓝牙应用的嵌入式设备

    的发展.其中蓝牙技术就是一个典型的例子.它的无线通讯方式使得各类数据的传输和交换变得越来越便捷.以此同时,各类基于蓝牙应用的嵌入式设备迅速成为炙手可热的消费类电子产品.特别是蓝牙的音频技术——语音和立体声的...
    发表于 11-05 06:06

    嵌入式Linux存储设备包含什么

    /NandFlash分区)进行自动挂载。也实现模拟嵌入式Linux设备当成U盘设备插入电脑,即通过USB数据线连接电脑,可指定存储
    发表于 12-21 08:19

    嵌入式数据库的作用是什么

    随着嵌入式技术的发展,嵌入式数据库逐步走向应用。本质嵌入式数据库是由通用
    发表于 12-21 07:18

    如何解决嵌入式设备断电数据丢失问题?

    如何解决嵌入式设备断电数据丢失问题?
    发表于 12-23 09:18

    请问如何控制嵌入式设备的通信?

    如何控制嵌入式设备的通信?
    发表于 12-23 06:04

    请问嵌入式设备如何构建自己的数据库?

    请问嵌入式设备如何构建自己的数据库?
    发表于 12-23 08:17

    嵌入式设备SystemTap调试工具怎么使用?

    嵌入式设备SystemTap调试工具怎么使用?
    发表于 12-24 07:32

    什么是嵌入式嵌入式设备有哪些呢

    什么是嵌入式嵌入式设备有哪些呢?
    发表于 12-24 07:47