天天看点

防篡改保护您的宝贵的基于mcu的系统IP

  基于mcu的设计通过将算法编码到设备中,使得添加专门的和有区别的功能变得更加容易。旧算法或完全新方法的一个新变化可以使成功的产品和失败之间的区别。不幸的是,使用单片机也可以打开你的设计来逆向工程,一个竞争对手窃取了你的努力工作并从你的创新中获益。当然,律师可以介入,也许还会报复,但通常只是在损害完成之后。一种更好的方法是保护您的设计不受常见硬件的干扰,这些入侵被用来访问您的代码并窃取您的宝贵IP。

  本文将描述一些常用的硬件“黑客”来访问您的有价值的设计IP。新的MCUs包括几个关键的功能,可以用来设置一些困难的障碍,以防止硬件篡改。这些防篡改设计技术可以成为MCU设计人员技术“小包”的重要组成部分。

  芯片防篡改:管理模式

  MCUs最近的创新之一是包含了一个已经在标准cpu中使用了很多年的特性。最早期的防篡改功能之一,将用户操作模式与监督操作模式(通常与cpu的操作系统模式相关联)分离,在MCU设备中出现。这种功能允许监控软件在限制或取消访问权限较低的用户程序时获得受保护资源的特权访问。这使得黑客更难以通过用户软件代码缺陷来控制系统。即使用户bug可以用来获得对MCU的控制,它仍然会被困在用户模式中,而无法访问与配置、编程、调试和系统控制相关的最重要的系统元素。

  作为一个例证,Freescale Kinetis K60 MCU家族同时支持主管和用户模式。这允许系统保留对配置外围设备的控制,访问受保护的内存空间,限制对系统代码的重新编程,并限制对用于保护用户数据的加密函数的访问。许多关键的mcu系统资源需要一个监视模式来访问配置寄存器。例如,多用途时钟生成器(MCG)将对所有相关控制寄存器的写入权限限制为主管模式(图1)。这消除了未经授权篡改时钟设置的可能性,一个硬件黑客试图禁用系统操作的潜在攻击向量。此外,管理员模式可以防止用户代码在不经意间访问系统资源,并可能为攻击者提供方便的“后门”,以获取其他受保护的资源。

  Freescale Kinetis k60mcu多用途时钟发生器示意图。

防篡改保护您的宝贵的基于mcu的系统IP

  图1:Freescale Kinetis k60mcu多用途时钟发生器的特点是对敏感控制寄存器的写入访问

  许多其他外围设备和系统功能也有类似的访问保护。最敏感的元素,如闪存控制器,只限制对控制和数据寄存器的写入访问权限。闪存控制器中的缓存内存甚至可以防止未经授权的读取,这样黑客就不能“窥探”其他敏感数据。其他不那么敏感的元素的访问要求也不那么严格,但是即使是CAN总线控制寄存器也可以防止未经授权的写入,因为您不希望黑客能够控制您的汽车的刹车!

  篡改检测功能

  无论你在保护你的设计方面有多深入,仍然有可能发生篡改。篡改检测的几种方法是可能的,而且通常很容易实现。例如,为了检测板级的篡改事件(例如硬件探测、提升信号跟踪和电源变更),通常会在印刷电路板的内部层中放置特殊的隐藏篡改检测痕迹。如果攻击者试图钻电路板以获取关键信号,则可以检测到对隐藏痕迹的影响。另一种常见的方法是使用机械篡改检测覆盖,它可以检测攻击者试图访问封闭设备的尝试。

  大多数的篡改检测方法都可以产生一个篡改检测信号,然后由单片机来处理,通常会非常迅速,因此攻击者几乎没有时间进行恶作剧。当检测到篡改事件时,MCU可能采取的常见操作是快速记录事件,然后重新设置系统,关闭对关键部分的权限,甚至删除敏感信息。记录事件可以是逐步升级“惩罚”篡改生成的有效方法。如果篡改是一个重复发生的事件,那么使用更严重的响应可能是谨慎的,可能会擦除代码和敏感数据。如果这是第一次篡改事件,那么一个不那么严重的响应(可能只是一个系统重置)可能更合适。如果日志将用于确定升级过程,那么捕获篡改事件的时间戳非常重要。

  一些MCUs包括监视事件输入和生成用于日志记录的时间戳的功能。例如,德州仪器MSP430FR5739 MCU有一个实时时钟周边(RTC), RTC_C,类似于其他RTC外围设备,如图2所示。然而,RTC_C有一个额外的防篡改事件日志记录功能。

  德州仪器MSP430定时器/计数器资源图像。

防篡改保护您的宝贵的基于mcu的系统IP

  图2:德州仪器MSP430定时器/计数器资源

  事件/篡改检测时间戳可以监视两个MCU输入,并且当它变为活动时,会生成一个Tamper事件。这些输入可能来自于开关,用于检测是否移除防篡改保护罩、移除备用电池或任何数量的巧妙隐蔽的篡改检测方法。当一个tamper事件被激活时,实时时钟的值被捕获,它可以作为日志记录活动的一部分。该值可用于查看篡改事件是否发生频率增加,从而可以应用升级的惩罚。

  用事件监控记录器篡改报告

  为了简化捕获和记录篡改事件的过程,一些MCUs将更多的功能添加到tamper事件检测和时间戳捕获函数中。例如,NXP LPC1800 MCU有一个专用的事件监视器/记录外围设备,可以快速捕获、记录和响应tamper事件。如图3中的框图所示,NXP LPC1800监控了三个篡改事件输入,并能捕获事件的时间戳。时间戳存储在第一个tamper事件和最后一个tamper事件中,这样可以很容易地看到它们发生的时间。整个外围设备都是在备用电池电源领域运作的,RTC也是如此,这使得记录事件成为可能,即使它们发生在断电或断电的情况下——这是黑客用来试图绕过基于外壳的篡改检测方案的一种常见方法。

  NXP LPC1800 MCU家族的框图。

防篡改保护您的宝贵的基于mcu的系统IP

  图3:NXP LPC1800 MCU家庭事件监视器记录框图

  请注意,即使MCU处于低功率状态,也可以生成中断或唤醒事件。这就使得篡改事件可以快速响应,这样黑客就有了最少的时间来攻击系统,然后再使用惩罚。随着安全性和篡改检测和预防变得越来越重要,希望将更多的特性添加到专门的tamper外围设备中,这样设计就可以得到更少的开销保护。

  参考设计为您指明道路

  对于MCU设计,了解篡改检测和预防功能的最强大的方法之一是查看参考设计。许多MCU供应商为他们的产品提供参考设计,在某些情况下,他们展示了先进的特性,例如篡改检测和预防。仅举一个例子,微芯片有一个能量计的参考设计,它非常接近于一个基于PIC18F单片机的完整系统。部分设计包括电源反转、频率干扰、低电流、外部应用磁场检测、防篡改检测开关等。下面的图4显示了检测到篡改事件时记录的系统和篡改代码列表。

  微芯片电能表参考设计图像。

防篡改保护您的宝贵的基于mcu的系统IP

  图4:微芯片能量表参考设计和防篡改特性(由凯利讯半导体提供)

  硬件的布局、原理图和材料清单可以利用微晶片在参考设计中的大部分工作。该代码也是可用的,可以作为您自己的篡改检测和日志记录方案的起点,以获得Microchip PIC 18F基于mcu的设计。您还可以使用数字键参考设计库,并搜索“Tamper”,以便轻松地生成具有与Tamper相关的功能的参考设计列表。

  结论

  使用防篡改技术对于保护基于mcu系统的有价值的设计IP是至关重要的。在现代的MCU设备中有几种防篡改技术,它可以有效地阻碍甚至是最激进的硬件黑客。

继续阅读