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

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

3天内不再提示

采用MCU实现先进的诊断和便利功能及软件IP的安全性

电子设计 来源:郭婷 作者:电子设计 2019-01-22 08:11 次阅读

许多设计人员仍然认为,通过禁止对MCU的调试访问,他们可以实现“非常好”的IP安全性。在开发周期之后,使用用户可配置的设置阻止调试路径(JTAG或SWD)。然而,对于想要对产品进行逆向工程的中等技术知识产权盗版者而言,这种方法实际上并没有太大的威慑力。

简单地阻止调试访问并不会阻止从包含关键位置的位置读取设备内存软件IP。虽然有几种方法可以解决这个问题,但最有效的方法之一是通过创建内部硬件和软件进入障碍来隔离关键IP。

然而,在描述两种解决方案之前,值得列举使嵌入式空间越来越危险的发展。

洗碗机,冰箱和家庭自动化系统等设备正在使用越来越强大的MCU实现先进的诊断和便利功能。实现这些功能的软件IP需要花费时间和金钱来开发,这意味着需要采取有效措施来防止竞争对手盗窃。

当设备或设备或多或少地自主运行时,保护产品IP要容易得多。 “大数据”趋势 - 收集可用于营销目的的数TB信息 - 使嵌入式系统成为发起数据并通过物联网IoT)连接传输数据的关键任务。互联性的这种重大转变增加了保护的必要性。

第三个趋势 - 一个不经常提到的 - 是开源软件的广泛采用。工程师喜欢开源,因为它通常成本较低,易于使用,并缩短了设计周期。例如,Linux在许多行业领域中被广泛使用,但开源软件还包括诸如通信栈之类的代码。尽管有其优势,但开源软件比专有系统更容易受到攻击,因为任何人 - 包括IP盗版者 - 都可以获取源代码,分析和修改它。

硬件安全性

实施安全性的经过时间考验的方法是包括一个单独的安全处理器 - 通常是一个MCU - 具有自己精心控制的访问和执行环境。例如,安全子系统可以是加密引擎。除了增加安全性之外,引擎还将主MCU从软件中执行加密算法的任务中卸载。在该方法中,通常采用基于内部描述符的DMA来有效地编程安全关联数据和分组指针。智能状态机基于协议选择和分组边界来调度加密引擎。

虽然高度安全,但使用额外的处理器存在缺点。三个最突出的是:1)额外的物料清单(BOM)成本; 2)降低整个系统的性能; 3)缺乏可编程性。其他选项在概念上与此方法类似。

ARM TrustZone

对于32位设计,ARM Holdings Ltd.开发了一项名为TrustZone的技术,该技术有很长的路要走减轻这些缺点。 TrustZone是指可以在许多ARM内核中实现的安全扩展 - 并且紧密集成到其Cortex-A处理器中。

ARM的系统级安全方法始于执行环境,并使用特定于公司AMBA总线和AXI总线的特定TrustZone IP块进行扩展。系统方法可以保护外围设备,如内存和加密块。

TrustZone架构基本上通过定义处理器,外围设备,内存地址甚至缓存区域来隔离基于ARM内核的MCU的硬件子集,以作为“安全”或“非安全”硬件运行。 TrustZone技术可以动态地将整个MCU暴露给安全软件,或者将该MCU的一部分动态暴露给普通软件。

TrustZone通过将处理器内核分成两个虚拟内核来实现这一目标,一个在正常环境中运行,其他在安全的世界中工作(图1)。除了传统的用户和内核模式划分之外,这种机制实质上创建了一个新级别的执行权限。监控模式软件可以仔细控制两个世界之间的转换。

采用MCU实现先进的诊断和便利功能及软件IP的安全性

图1:ARM的TrustZone架构在概念上基于创建虚拟核心。 (由Texas Instruments提供)

任何具有基于ARM的产品的MCU供应商都可以选择实施TrustZone。德州仪器TI)通过其KeyStone II片上系统(SoC)架构为支持TrustZone的应用提供支持,该架构具有集成的ARM Cortex-A15集群。由于TrustZone集成在ARM的Cortex-A处理器中,TI更经济的Sitara系列(基于A8内核)的成员都支持TrustZone,包括AM3352ZCE27。

其他支持TrustZone的产品包括Atmel的SAMA5D4系列32位MCU,包括ATSAMA5D41A-CU和飞思卡尔半导体的i.MX6系列,包括MCIMX6X1CVK08AB。

由于它是基于硬件的,因此TrustZone为上层提供了坚实的基础。可以构建安全软件。创建受TrustZone保护的应用程序涉及三个基础元素。

可信执行环境(TEE) - 在安全领域内运行的软件堆栈,以及启用安全世界所需的通信功能与普通世界软件交互的软件。 TEE软件通常包含一个小型微内核和API,允许安全软件与更大的以用户为中心的软件进行通信。

安全感知应用程序和安全服务,或受信任的应用程序(TA)

安全监视器,充当控制域之间迁移的虚拟网守。

物理核心通过调用称为监控模式的新处理器模式在两个虚拟核心之间切换。可以通过激活ARM的安全监视器调用(SMC)指令或硬件异常机制的子集,从正常模式进入监视模式。配置IRQ,FIQ,外部数据中止和外部预取中止异常都可以使处理器切换到监控模式。这些中断也可以被分配更高的优先级来保护安全世界的软件免受拒绝服务攻击。

TrustZone软件

TrustZone硬件由实现类似分区的软件架构补充。在这种架构中,所有与安全相关的功能,包括与安全外围设备的接口,都是安全世界的范畴,而普通世界则处理其他任务。

在监控模式下执行的软件通常会保存当前世界的软件映像,并将该状态恢复到其切换的位置。然后,它执行从异常返回命令以在恢复的世界中重新启动处理。

安全世界托管所有安全应用程序,并通过监视器代码向正常世界中的客户端提供经过精心编排的服务。安全世界只能运行经过大量审查的代码。图2显示了TrustZone的软件架构。

采用MCU实现先进的诊断和便利功能及软件IP的安全性

图2:TrustZone软件架构。 (由ARM有限公司提供)

没有必要开发复杂的软件来为TrustZone提供有意义的安全性。实际上,有时编写复杂的软件会通过引入和隐藏其他漏洞来破坏安全目标。实现的选择取决于使用场景,可以从复杂的完全可抢占的操作系统到为普通世界提供按需服务的一组被动库。 TrustZone架构提供安全定时器和安全感知中断控制器,用于构建可抢占的安全操作系统。

安全启动对于保护IP至关重要,因为当所有组件都加载时,MCU处于相对受损的环境中。片上ROM代码在TrustZone引导过程中起着关键作用。它的作用是存储使用OEM私钥签名的可信软件映像。 OEM的私钥的公共对应物在制造期间仅被编程到MCU中一次。

受信任的OEM软件映像引导辅助引导加载程序,后者又引导高级操作系统。此过程建立完整的信任链,因为第一级组件可以使用另一个嵌入式公钥来验证它尝试加载的下一级组件,依此类推。这种安全的信任链可以一直扩展到加载安全应用程序。

16位处理器的解决方案

虽然TrustZone特定于基于ARM的产品,但具有16位和自己的32位MCU的MCU供应商面临着相同的安全问题。

他们面临的一个知识产权保护问题源于设计和支持生态系统的普及,其中多家公司参与了系统级产品的开发过程。每个合作公司都有自己的IP保护。在前面描述的传统方法中,该IP通常存储在其自己的专用代码保护MCU的闪存中的固件中(图3)。

意外结果是一个相当昂贵的系统级产品,因为拥有多个MCU可以增加BOM成本和设计时间。除了增加系统成本之外,这种做法还使采购部门更难以管理库存和交货时间。

采用MCU实现先进的诊断和便利功能及软件IP的安全性

图3:设计生态系统创造了一个特殊的知识产权保护挑战。 (由Microchip Technology提供)

Microchip Technology的解决方案是其CodeGuard安全技术,允许多家公司安全地共享单个MCU的资源。多个安全处理器可以集成到单个16位Microchip MCU或数字信号控制器(DSC)中。

所有Microchip Technology的16位产品均提供CodeGuard。可以启用基本,中间或高级安全功能的程度主要取决于MCU中嵌入的闪存量。例如,所有PIC24F器件(例如PIC24FJ16GA002-I/SS)都可以实现基本的安全功能。具有64 KB片上闪存和更高容量的PIC24H器件(如PIC24HJ12GP202-I/SS)可实现高级安全功能。中间级安全性可以在DSPIC30F1010设备上实现,例如DSPIC30F1010-30I/SP。

CodeGuard是一种多功能且强大的技术,可实现以下功能和流程:

内存分段和访问权限

段擦除/编程选项支持安全启动加载程序/内核

安全中断处理

安全开发和调试

每个应用程序都有自己的定义和实现。然而,一个关键特性是内存分段和访问权限,如图4所示。

采用MCU实现先进的诊断和便利功能及软件IP的安全性

图4:CodeGuard内存分段和访问权限。 (由Microchip Technology提供)

程序闪存,RAM和EEPROM可以分为三个受保护的闪存段:

引导段具有最高的访问权限和可配置多种尺寸。简单但高度安全的引导加载程序需要一个小的内存空间,而复杂的操作系统需要更大的空间。引导段可以被赋予读或写权限(如在Flash更新中)。无论其他段是否受代码保护,它都可以调用例程或跳转到任何其他段。它还可以重写自己的位置,这一功能使其能够存储和更新加密密钥。如果虚假写入是开发团队的问题,则可以完全禁用对引导段的所有Flash写入。可以严格限制从其他段访问引导段或保持相对开放。引导段还可以保护片上数据Flash的一部分以禁止从其他段访问。

安全段主要用于存储面向应用的IP,如电机控制软件,声学算法和噪声 - 抑制算法。它有许多大小选项,可以限制其他两个部分(引导和一般)的访问。安全段可以保护片上RAM和片上数据EEPROM的部分。当安全段配置为“标准安全性”时,可以为引导段提供对安全段的不受限制的访问。但是,当安全段配置为“高安全性”时,安全段和引导段具有相同的权限。

通用段是用户应用程序的指定区域,例如外围驱动程序,中断服务例程(ISR)和大型查找表。其大小基本上是片上闪存减去引导和安全段的大小,为256 KB。

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

    关注

    145

    文章

    15885

    浏览量

    342777
  • 监视器
    +关注

    关注

    0

    文章

    758

    浏览量

    32818
  • IP
    IP
    +关注

    关注

    5

    文章

    1385

    浏览量

    148236
收藏 人收藏

    评论

    相关推荐

    如何保证汽车远程信息系统的安全性

    程师面对并解决范围广阔的技术安全和可靠性问题。目前,许多设备都具有联网的功能,联网设备易受攻击的特性已经成为必须面对的挑战。在开放的网络环境中工作的嵌入式设备越多,安全性就越来越成为事实上每一个嵌入式
    发表于 08-28 12:38

    基于FRAM的MCU将低功耗应用的安全性提升到新高度

    通信通道安全的加密数据(如安全密钥及密码等)等。最新低功耗微处理器(MCU)集成降低安全应用成本与功耗所需的高性能以及各种特性,可帮助开发人员为低功耗应用提高
    发表于 09-01 17:44

    如何支持物联网安全性和低功耗要求设计

    不仅需要满足技术要求,而且还要以对用户直观的方式实现。复杂的水龙头序列或需要连接硬件加密狗以管理安全性,损害用户体验并最终损害制造商的收入流。但是,使用MCU和专用IC中的安全功能,开
    发表于 12-26 16:30

    各国汽车安全性怎么测试

    /h侧面对直径254mm柱子的碰撞。儿童安全测试是对安全座椅的使用便利性,冲撞时的安全性进行评价。行人安全碰撞是对行人的头部,腿部的损伤进行
    发表于 05-16 06:11

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

    传送信息。密钥存储在Flash或RAM中,并且通常使用软件技术进行保护。但是,与由硬件加速的AES实施相比,软件实现的AES算法在安全性上还是略逊一筹。  图2同时列出了将运行
    发表于 06-30 11:05

    如何在物联网设备中实现基于硬件的集成安全性

    了解集成到MCU中的片上硬件安全性如何避免与将安全功能隔离到辅助芯片上的体系结构相关的弱点。尽管许多微控制器供应商专注于将安全性提取和隔离到通常称为
    发表于 09-28 19:24

    实现更强大IoT设备安全性的步骤

    本文将讨论实现更强大IoT设备安全性的步骤,并解释嵌入式安全性背后的不同概念,以及如何针对嵌入式设备安全性实施一致且包罗万象的方法。发现设备漏洞
    发表于 02-22 06:26

    为什么基于硬件的安全性更有效?

    我们一直认为这些都是非常安全的产品。例如婴儿监视器、玩具、安全摄像头(非常讽刺),甚至医疗设备。已经快速采用IoT技术的领域将是最脆弱环节 ;设备越智能则越不安全对于其它许多行业而言,
    发表于 03-05 07:18

    如何采用Zynq SoC实现Power-Fingerprinting网络安全性

    如何采用Zynq SoC实现Power-Fingerprinting网络安全性
    发表于 05-21 07:04

    实现功能安全性冗余CAN参考设计

    描述该参考设计展示了如何在物理层实施冗余(并行)CAN 以实现功能安全性。其中包括两个 SN65HVD257 CAN 收发器以及可确保两个收发器收到相同数据的额外逻辑。特性较短的传播延迟和快速的循环
    发表于 09-23 07:09

    基于C2000系列芯片的RAM在线诊断实现方法

    随着越来越多的工业应用对产品的可靠安全性要求越来越高,我们在做产品设计的时候不仅要正确的实现产品功能,同时也需要通过一些功能
    发表于 11-08 07:12

    助力采用MCU的自主系统实现自主安全性

    情况,需要适当的处理。具有这些功能MCU可为完整的FuSa层奠定基础。随着基于AI/ML的自动化将关注重点从系统生产和维护成本节约转向用户体验的安全性便利性,FuSa层的重要
    发表于 03-29 15:09

    STM32H5 MCU系列提升性能与信息安全性

    强大的Arm® Cortex®-M33 MCU运行频率高达250 MHz的Arm®Cortex®-M33内核32位MCU满足绝大多数工业应用的需求安全性可扩展,满足各类需求从基本的安全
    发表于 09-06 06:29

    Jacinto 7 SoC 系列中内置的安全诊断功能介绍

    软件实现产品总体安全目标的重要元素。Jacinto 7 软件安全性包括以下两个方面:安全路径
    的头像 发表于 12-03 14:35 1646次阅读

    MCU如何实现功能安全

    功能安全软件以确保设备硬件和软件安全运行,或在发生故障时使系统进入安全模式对控制器来说至关重要
    的头像 发表于 04-06 09:50 1596次阅读
    <b class='flag-5'>MCU</b>如何<b class='flag-5'>实现</b><b class='flag-5'>功能</b><b class='flag-5'>安全</b>