凯利讯半导体的个人空间 https://www.eechina.com/space-uid-142497.html [收藏] [复制] [RSS]

博客

保护您的MCU设计不受复制和逆向工程的影响

已有 1314 次阅读2018-4-24 11:22 |个人分类:电子技术| MCU设计, 工程

        MCU被用作几乎所有可想象的应用程序的主要控制元件。它们的力量和灵活性使它们成为大多数设计的核心部件。因为重要的是要确保您的设计不容易复制、反向设计或篡改,现代MCU现在提供了几个不同的选项来保护您的设计;对能力和权衡的良好理解是重要的,以确定哪种方法是对于给定的设计最好。

  本文将回顾一些常见的设计保护方法,例如使MCU无法从外部世界读取,使用片上功能来验证要执行的代码未被修改,并使用外部组件来提供更高级的安全能力。还将描述用于篡改检测的板上技术和可能应用的可能的“惩罚”。


  保护你的设计

  你可能没有太多的考虑到复制你的设计是多么容易,但是经历过设计盗窃的工程师会告诉你,一旦它发生了,你就不希望它再次发生。例如,如果你的MCU设计的片上代码可以由竞争对手或者甚至是一个不道德的合同制造商读出,你的整个设计可以很容易地被复制和转售——或者是在不同的品牌下,或者甚至是在黑市上使用你的品牌。超过了产品容量的流行设计已经成熟了,如果卖方不能从你们那里得到产品,他们可能会进入黑市以满足他们的客户需求。

  同样脆弱的是实际设计或算法隐藏在你的MCU代码的心脏。也许你有一个创新的方法来分析传感器数据,大大降低了电力或处理时间所需的。你想让竞争对手能够复制你的代码并逆向设计你的算法吗?甚至还有软件工具,可以采取二进制和再生合理的“C”代码,使算法细节更容易破译。即使是像登机测试程序那样平凡的事情,也可能需要几个月才刚刚好。你想让竞争对手得到与基础设施相关的代码的捷径,从而大幅降低开发成本,这样他们就可以不公平地降低其市场价格来赢得你的生意吗?

  保护的另一个方面与硬件认证有关。通常,设计将允许外围设备或附加卡,从而可以升级或增强基础设计。如果设计不包括一些检测附加模块硬件被授权的能力,则其他厂商可能会创建较低成本的模块来竞争附加业务。打印机墨盒可能是最常见的硬件认证应用程序,以确保您购买制造商的品牌墨盒。通常打印机打折出售,墨盒价格膨胀,以弥补打印机寿命的折扣。一个竞争对手可以以较低的价格出售一个墨盒,因为它不需要收回打印机的折扣,并且仍然能获得可观的利润。

  因此,现在应该清楚的是,在很多情况下,重要的是能够保护您的硬件免受复制、逆向工程和伪造。此外,在没有安全硬件作为起点的情况下,不可能在连接家庭(如图1)等应用程序中创建各种安全设备。

  德克萨斯仪器在连接家庭中的安全设备

article-2014december-protect-your-mcu-design-fig1.jpg

  图1:连接家庭中安全设备的常见示例。

  随着时间的推移,一些技术已经发展,其中许多使用标准化的安全算法来保护和认证存储在MCU或MCU外围存储器中的代码。让我们来看看一些最常用的保护技术和安全标准以及它们的用途。然后我们将能够查看支持这些标准的MCU和外设的各种类型,并可以用来保护您的设计。


  保护技术与通用安全标准

  也许保护硬件免于复制的最常见的技术是在一个时间可编程(OTP)模式中编程MCU,其中编程的数据不能从设备外部访问。JTAG和调试设备必须关闭,使得数据不能使用调试“后门”访问。现代设计发现OTP方法非常限制,因为调试是故障分析和现场测试中的一个有用的特征。OTP方法消除的另一个重要能力是对片上MCU代码的远程更新,用于升级、bug修复和其他类似的更改,以提高操作完整性或服务质量。理想情况下,我们希望保护我们的代码不受逆向工程和复制,但仍然能够轻松地进行更新和更改。

  一些MCU为访问片上存储器提供了一种安全的方法。德克萨斯仪器,其MSP430FR MCU系列,提供了一种方法,通过密码来保护JTAG端口,或者通过编程一个片上禁用的熔丝签名来完全禁用JTAG端口。当JTAG被禁用时,只允许通过引导加载程序使用密码来访问设备。提供不正确的密码会导致整个代码存储区被大量擦除。

  TI还提供了一种在MSP430FR内存空间内创建安全区域和非安全区域的方法。安全代码可以通过将安全代码存储在第一个上电周期后映射到启动代码区域的特殊存储区域中来封装(通过IP封装或IPE)。IPE区域不能被JTAG、BSL或甚至在系统读取中访问,因此它对于设备的生存期保持安全。安全区域内的代码可以访问安全区域内的数据,因此安全算法和密钥都可以共存于安全区域内。

  保护IP的最常用的安全算法用于加密和/或解密安全数据或验证数据,以证明它来自已知和可信的源。MCU可以提供专用的硬件来实现通用的工业标准,而微芯片PIC32 MZ单片机家族就是其中一个例子。PIC32 MZ设备包括硬件加密引擎,它实现通用的批量加密解密“密码”,如AES、DES和三重DES。这些功能被用来通过加密来保护安全数据,使用一个秘密密钥,使得只有一个“知道”密钥的进程可以解密数据。认证由SHA-1、SHA256、MD—5、AES-GCM和HMAC—所有硬件实现。在图2中示出了密码引擎硬件结构和由此产生的性能(在输入时钟的MbPS/MHz和100 MHz时钟的Mbps中)。性能值远优于软件实现,并且表明如果大量数据需要频繁地处理(也许在高速数据传输期间)或在时间关键事件期间(例如在引导过程中),硬件加密引擎的使用可能是关键的。满足系统要求。

  微芯片PIC32 MZ MCU加密引擎的图像及性能指标

article-2014december-protect-your-mcu-design-fig2.jpg

  图2:微芯片PIC32 MZ MCU加密引擎和性能指标。


  双核MCU

  在更复杂的系统中实现安全的另一种方法是使用双核MCU。其中一个MCU内核可以专门用于实现安全功能,而另一个内核可以用于更标准的操作。NXP半导体LPC4370双核MCU(图3)有两个CPU核心,一个是ARM CORTEX-M4,另一个是ARM CORTEX-M0。CORTEX-M4内核可以用于应用程序的“重载”部分,而CORTEX-M0内核可以用于实现与安全相关的功能和通用外围功能——也许管理以太网和USB端口,配置各种端口,并管理任何端口。F芯片资源。

  NXP LPC43XX双核MCU的图像

article-2014december-protect-your-mcu-design-fig3.jpg

  图3:NXP LPC43XX双核心MCU可以用来保护您的设计。

  对于更高级的安全设计,可在LPC43Sxx设备上提供的可选AES加密和解密引擎可用于加速标准密码功能,如AES、CMAC和随机数生成。AES密钥可以安全地存储在片上一次性可编程(OTP)存储器中,并且可选地加密以进行额外的保护。AES硬件甚至可以用来实现安全引导能力(确保引导代码未被篡改——黑客用来攻击嵌入式系统安全性的共同目标)从加密图像中进一步保护设计IP。


  安全外围设备

  如果你想增加一个现有的MCU与一些额外的安全功能,您可能能够添加一个安全外设,以获得您需要的安全能力。例如,ATMEL ATHA204A设备提供防篡改的安全密钥存储和认证。EEPROM安全存储器的片上4.5 kb可以用来存储多个密钥,执行读写来管理密码或秘密数据。内存可以组织、配置,然后锁定以防止更改。每个设备具有唯一的72位序列号,并支持常见的密码算法(带有消息认证码的SHA 256和基于哈希的消息认证码选项)和高质量的随机数生成器。I/C接口使设备易于连接到标准MCU。ATHA204A通常与主机MCU一起使用挑战和响应事务,如下面的图4所示。

  Atmel ATHA204认证图像

article-2014december-protect-your-mcu-design-fig4.jpg

  图4:使用Atmel ATHA204认证和保护设计的IP。

  使用存储的秘密和消息认证码(MAC)命令,由ATAH204处理MCU挑战,以创建发送回主机的响应。主机可以通过执行相同的MAC命令来验证响应是否正确。事务的观察员从不看到秘密密钥,因此实际上不可能确定复制设计所需的密钥或确定存储在ATAH204中的任何秘密信息。ATSH204可以用来防止复制的设计,在执行之前验证它(例如安全引导),保护和存储固件或媒体,存储和管理由主机MCU使用的会话密钥,用于保密通信、存储秘密配置、校准或消耗数据,或用于有效。处理用户密码。Atmel还为ATAH204工程师提供了一个密码认证产品培训模块。

  总之,在使用现代MCU和各种支持设备的高级安全能力时,保护您的设计免受逆向工程和黑客攻击是可能的。保护网络化嵌入式系统是至关重要的,因为基于网络的攻击对嵌入式系统的持续增长。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部