这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 实现确保微控制器的IP安全的两种解决方案介绍

共2条 1/1 1 跳转至

实现确保微控制器的IP安全的两种解决方案介绍

助工
2020-02-04 14:01:49     打赏

许多设计师仍然认为,他们可以通过禁止调试访问到MCU使“相当好”的IP安全。开发周期后,调试路径(JTAG或SWD)被阻止通过使用用户可配置设置。然而这种方法,实在是没有太大的威慑力给谁想要逆向工程的产物,甚至中等熟练的IP海盗。

简单地阻止调试访问不会阻止读取设备内存出包含关键软件IP的位置。虽然有几种方法来解决这个问题,其中最有效的一种是通过创建内部硬件和软件进入壁垒以分离关键IP在。

在描述两种解决方案,但是,它是值得枚举正在嵌入式领域越来越危险的事态发展。

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

保护产品的知识产权是很容易当设备或器件的工作或多或少自主。 “大数据”的趋势 - 收集TB级的可开采用于营销目的的信息 - 给嵌入式系统始发的数据,并在物联网(IOT)连接传输它的重要任务。在相互关联的这一重大变化增加了必要的保障。

第三个趋势 - 人们不经常提到的 - 是普遍采用的开放源代码软件。像开源工程师,因为它通常是获得更便宜,使用方便,并缩短了设计周期。 Linux的正在被广泛应用于许多工业领域,例如,但开源软件还包括代码,如通信协议栈。尽管它的优势,开源软件比专有系统更脆弱,因为任何人 - 包括IP海盗 - 可以获取源代码,分析它,并对其进行修改。

硬件安全

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

虽然高度安全的,使用一个附加的处理器有缺点。三个最突出的有:物料清单(BOM)成本1)的附加议案; 2)降低了整个系统的性能; 3)缺乏可编程性。其他选项是概念上类似于这种方法。

ARM的TrustZone

对于32位设计,ARM控股有限公司已经开发出云对缓解这些缺点很长的路叫的TrustZone技术。 TrustZone的指的是可以在若干ARM内核来实现安全性扩展 - 和紧密地集成到其的Cortex-甲处理器。

ARM的系统级的安全方法开始于执行环境,并延长与特定公司的AMBA总线和AXI总线特定的TrustZone IP模块。该系统的方法使得有可能以固定的外围设备,如存储器和密码块。

在TrustZone架构基本上偏析ARM的芯的MCU的一个子集,硬件通过定义处理器,外围设备,存储器地址,和高速缓存甚至地区为“安全”或“非安全”硬件上运行。 TrustZone技术可以动态暴露的完整的MCU来保护软件,或该MCU的正常软件的一个子集。

TrustZone的通过分割处理器内核成两个虚拟内核,一个在一个正常的世界操作和其他工作在安全的世界(图1)实现这一目的。这种机制主要是创建执行特权除了对用户和内核模式下的传统划分一个新的水平。这两个世界之间的转换由监控模式的软件都经过精心的控制。

任何MCU供应商与基于ARM的产品必须实现的TrustZone的选项。德州仪器(TI)提供的TrustZone功能的应用程序与它的KeyStone II系统级芯片(SoC)架构,其特点是集成了ARM的Cortex-A15群集支持。由于TrustZone的集成ARM的Cortex-A处理器,TI的更经济的Sitara系列,这是基于A8核心,所有的TrustZone的支持,包括AM3352ZCE27的成员。

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

因为它是基于硬件的,TrustZone的提供一个坚实的基础时,可建立在安全的软件的上层。有参与创建的TrustZone保护申请后3基础要素。

可信执行环境(TEE) - 一个软件堆栈的安全的世界中运行,再加上需要启用安全的世界的软件,与正常世界的软件交互的通信功能。 TEE软件通常由一个小的微内核和API,让安全软件与较大的,以用户为中心的软件进行通信。

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

的安全监控充当虚拟看门者控制所述域之间的迁移。

通过调用一个名为监控模式的新处理器模式的两个虚拟内核之间的物理核心交换机。监控模式可正常世界的模式,无论是通过激活ARM的安全监控调用(SMC)指令,或从硬件异常机制的子集来输入。在IRQ,FIQ,外部数据中断,和外部预取中止异常的结构都可以使所述处理器切换到监视模式。这些中断也可以被赋予较高的优先级,以防止拒绝服务攻击安全的世界的软件。

TrustZone软件

TrustZone硬件的补充,实现类似的分区软件架构。在这种架构中,所有与安全相关的功能,包括安全外围设备的接口是安全的世界的省和正常的世界处理其他任务。

该内部监控模式执行的软件通常保存当前世界的软件映像,并恢复该国的位置,它切换。然后执行返回从异常命令重新启动处理恢复的世界。

世界安全运行所有的安全应用程序,并提供了通过精心监控代码,在正常的世界,以促成客户提供服务。安全世界唯一只能运行已经通过广泛审查了代码。图2示出的TrustZone的软件架构。

这是没有必要开发复杂的软件,以提供有意义的安全和TrustZone。事实上,有时写复杂的软件可以通过引入和隐藏其他漏洞破坏安全的目标。实现的选择取决于使用的方案和范围可以从一个复杂的完全预empTIble操作系统的一组正常的世界提供按需服务被动库。该TrustZone架构提供了一个安全定时器和安全意识的中断控制器为建设预empTIble安全的操作系统。

安全引导是必不可少的保护知识产权,因为MCU处于当所有组件都加载一个相对妥协的环境。片上ROM代码起到了TrustZone的引导过程中的关键作用。它的作用是存储与OEM的私钥签名的可信软件映像。 OEM的私有密钥的公共对方是在制造期间编程到微控制器只有一次。

可信OEM软件映像启动次级引导加载程序从而引导高层次的操作系统。这个过程将设置完整的信任链,因为在第一级元件可以具有另一个嵌入公钥来验证下一级的部件,它试图加载等。信任的这样一个安全链可一路延伸到安全的应用程序的加载。

16位处理器解决方案

尽管TrustZone的是特定的基于ARM的产品,同样的安全问题与16位和自己的32位MCU所面临的MCU供应商。

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

的意外结果是一个相当昂贵的系统级的产品,因为材料成本和设计时间增加通过具有多个MCU。除了增加了系统的成本,这种做法也使得采购部门来管理库存和交货时间变得更加困难。

将Microchip技术知识产权保护的挑战图片

实现确保微控制器的IP安全的两种解决方案介绍

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

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

章CodeGuard适用于所有的Microchip Technology的16位产品。向其中可以启用初级,中级,或高级安全功能的程度主要取决于闪存嵌入在MCU的量。所有PIC24F器件,如PIC24FJ16GA002-I / SS,例如,可以实现基本安全功能。 64 KB的片上闪存和更大的PIC24H器件,如PIC24HJ12GP202-I / SS,可实现先进的安全功能。中间级安全可以在DSPIC30F1010设备诸如DSPIC30F1010-30I / SP来实现。

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

内存分割和访问权限

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

安全中断处理

安全开发和调试

每个应用程序都有自己的定义和实现。一个主要特点,但是,是存储器分割和访问特权,如图4。

将Microchip技术的CodeGuard内存分割图片

实现确保微控制器的IP安全的两种解决方案介绍

图4:章CodeGuard存储器分段和访问权限。 (Microchip的技术提供)

闪存程序存储器,RAM和EEPROM可以分为闪存三级保护段:

引导段具有最高的访问权限,可以在许多大小进行配置。一个小的内存空间是所有需要一个简单而高度安全的引导装载程序,而复杂的操作系统将需要更大的空间。引导段可以给予读或写权限(如在Flash更新)。它可以调用一个子程序或跳转到其他段不论其他段是否被代码保护。它也可以改写自己的位置,这一特点给它来存储和更新加密密钥的能力。如果误写是一个问题的开发团队,所有的Flash写入引导段可以完全禁用。从其他段访问引导段可能会严重限制或留下相对开放。引导段还可以在芯片上的数据闪存的安全部分,以禁止从其他部分的访问。

安全段主要是用于存储应用为导向的IP地址,如电机控制软件,声学算法和噪声抑制算法创建的。它有许多大小选项,并获得与其他两个部分(引导和普通)可以被限制。安全段可保护片上RAM区和片上数据EEPROM。当安全段被配置为“标准安全”的引导段可以给予不受限制地访问安全段。然而,安全段和引导段具有相同的权限,当安全段被配置为“高安全性”。

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




高工
2020-02-06 16:31:00     打赏
2楼

多谢楼主的分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]