许多设计人员仍然认为,通过禁止对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)。除了传统的用户和内核模式划分之外,这种机制实质上创建了一个新级别的执行权限。监控模式软件可以仔细控制两个世界之间的转换。
图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的软件架构。
图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成本和设计时间。除了增加系统成本之外,这种做法还使采购部门更难以管理库存和交货时间。
图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所示。
图4:CodeGuard内存分段和访问权限。 (由Microchip Technology提供)
程序闪存,RAM和EEPROM可以分为三个受保护的闪存段:
引导段具有最高的访问权限和可配置多种尺寸。简单但高度安全的引导加载程序需要一个小的内存空间,而复杂的操作系统需要更大的空间。引导段可以被赋予读或写权限(如在Flash更新中)。无论其他段是否受代码保护,它都可以调用例程或跳转到任何其他段。它还可以重写自己的位置,这一功能使其能够存储和更新加密密钥。如果虚假写入是开发团队的问题,则可以完全禁用对引导段的所有Flash写入。可以严格限制从其他段访问引导段或保持相对开放。引导段还可以保护片上数据Flash的一部分以禁止从其他段访问。
安全段主要用于存储面向应用的IP,如电机控制软件,声学算法和噪声 - 抑制算法。它有许多大小选项,可以限制其他两个部分(引导和一般)的访问。安全段可以保护片上RAM和片上数据EEPROM的部分。当安全段配置为“标准安全性”时,可以为引导段提供对安全段的不受限制的访问。但是,当安全段配置为“高安全性”时,安全段和引导段具有相同的权限。
通用段是用户应用程序的指定区域,例如外围驱动程序,中断服务例程(ISR)和大型查找表。其大小基本上是片上闪存减去引导和安全段的大小,为256 KB。
-
mcu
+关注
关注
146文章
16956浏览量
350131 -
监视器
+关注
关注
1文章
780浏览量
33089 -
IP
+关注
关注
5文章
1634浏览量
149304
发布评论请先 登录
相关推荐
评论