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

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

3天内不再提示

如何保护MCU设计不被复制、反向设计或篡改

电子设计 来源:郭婷 作者:电子设计 2019-03-20 08:27 次阅读

MCU在几乎所有可以想象的应用中都被用作主要控制元素。它们的强大功能和灵活性使它们成为大多数设计核心的首选组件。由于确保您的设计不易被复制,反向设计或篡改非常重要,现代MCU现在提供了一些保护您设计的不同选项;为了确定哪种方法最适合给定的设计,对功能和权衡的理解非常重要。本文将回顾一些常见的设计保护方法,例如使您的MCU无法从外部读取世界,使用片上功能来验证要执行的代码是否未经修改,并使用外部组件提供更高级的安全功能。还将描述用于篡改检测的机载技术和可能应用的可能的“惩罚”。

保护您的设计

您可能没有太多考虑复制您的设计是多么容易,但是工程师们有经验的设计盗窃会告诉你,一旦它发生了,你永远不希望它再次发生!例如,如果您的MCU设计的片上代码可以由竞争对手,甚至是不道德的合同制造商读出,您的整个设计可以轻松复制和转售 - 或者使用不同的品牌或甚至使用您的品牌在黑市上。超出产品容量的流行设计对于这种类型的处理已经成熟,如果卖家无法从您那里获得产品,他们可能会进入黑市以满足他们的客户需求。

同样脆弱的是隐藏在其中的实际设计或算法MCU代码的核心。也许您有一种创新的方法来分析传感器数据,从而大大减少所需的功率或处理时间。您是否希望竞争对手能够复制您的代码并对您的算法进行反向工程?甚至有一些软件工具可以采用二进制并重新生成合理的“C”代码,这样算法细节甚至更容易破译。即使是像车载测试例程那样平凡的事情可能需要花费数月才能做到正确 - 您是否希望竞争对手能够快速获得与基础架构相关的代码,从而大幅降低开发成本,从而不公平地削减市场赢得业务的价格?

保护的另一个方面与硬件认证有关。通常,设计将允许外围设备或附加卡,因此可以升级或增强基础设计。如果设计不包含某些检测附加模块硬件授权的功能,则其他供应商可以创建成本较低的模块来竞争附加业务。打印机墨盒可能是最熟悉的硬件认证应用程序,以确保您购买制造商的品牌墨盒。通常打印机以折扣价出售,并且墨盒价格被夸大以覆盖打印机使用寿命期间的折扣。竞争对手可以以较低的价格出售墨盒,因为它不需要收回打印机折扣,并且仍能获得健康的利润。

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

图1:安全设备的常见示例在连通的家中。 (德州仪器公司提供)

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

保护技术和通用安全标准

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

某些MCU提供了一种访问片上存储器的安全方法。德州仪器(TI)及其MSP430FR MCU系列提供了一种通过密码保护JTAG端口的方法,或通过编程片上禁用熔丝特征来完全禁用它。禁用JTAG时,只允许使用密码通过引导加载程序访问设备。提供错误的密码可能会导致整个代码存储区被大量擦除。

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

保护IP所需的最常见安全算法用于加密和/或解密安全数据或验证数据,以证明它来自已知且受信任的来源。 MCU可以提供专用硬件来实现通用的行业标准,而Microchip PIC32MZ MCU系列就是这样的一个例子。 PIC32MZ器件包括一个硬件加密引擎,可实现常见的批量加密解密“密码”,如AES,DES和Triple DES。这些功能用于通过使用密钥加密来保护安全数据,以便只有“知道”密钥的进程才能解密数据。身份验证由SHA-1,SHA-256,MD-5,AES-GCM和HMAC提供 - 所有这些都在硬件中实现。加密引擎硬件架构和最终性能(输入时钟的Mbps/MHz和100 MHz时钟的Mbps)如图2所示。性能值远远优于软件实现,并表明如果大量数据需要经常处理(可能在高速数据传输期间)或在时间关键事件期间(例如在启动过程中),使用硬件加密引擎对满足系统要求至关重要。

如何保护MCU设计不被复制、反向设计或篡改

图2:Microchip PIC32MZ MCU加密引擎和性能指标。 (由Microchip提供)

双核MCU

在更复杂的系统中实现安全性的另一种方法是使用双核MCU。其中一个MCU内核可专用于实现安全功能,而另一个内核可用于更标准的操作。恩智浦半导体LPC4370双核MCU(图3)有两个CPU内核,一个是ARM Cortex-M4,另一个是ARM Cortex-M0。 Cortex-M4内核可用于应用程序的“繁重”部分,而Cortex-M0内核可用于实现安全相关功能和通用外设功能 - 可能管理以太网USB端口,配置各种端口,以及管理任何片外资源。

如何保护MCU设计不被复制、反向设计或篡改

图3:恩智浦LPC43xx双核MCU可用于保护您的设计。 (由恩智浦提供)

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

安全外围设备

如果您想通过一些额外的安全功能扩充现有MCU,您可以添加安全外设以获得所需的安全功能。例如,Atmel ATSHA204A设备提供防篡改的安全密钥存储和身份验证。片上4.5 Kb的EEPROM安全存储器可用于存储多个密钥,执行读写操作以管理密码或机密数据。可以组织,配置和锁定内存以防止更改。每个设备都有一个唯一的72位序列号,并支持常见的加密算法(带有消息验证码和基于哈希的消息验证码选项的SHA-256)和高质量的随机数发生器。 I²C接口使设备可以轻松连接到标准MCU。 ATSHA204A通常用于与主机MCU的质询和响应事务,如下面的图4所示。

如何保护MCU设计不被复制、反向设计或篡改

图4:使用Atmel ATSHA204验证和保护设计的IP。 (由Atmel提供)

ATSHA204使用存储的密钥和消息认证码(MAC)命令处理MCU质询,以创建发送回主机的响应。主机可以通过执行相同的MAC命令来验证响应是否正确。事务的观察者永远不会看到密钥,因此实际上不可能确定复制设计或确定存储在ATSHA204中的任何秘密信息所需的密钥。 ATSHA204可用于防止复制设计,通过在执行前验证固件或介质(例如安全启动)来保护固件或介质,存储和管理主机MCU用于安全通信,存储密钥配置,校准或消耗的会话密钥数据,或用于验证用户密码。 Atmel还为工程师提供ATSHA204的加密认证产品培训模块。总之,当使用现代MCU和各种支持设备可用的高级安全功能时,现在可以保护您的设计免受逆向工程和黑客攻击。随着针对嵌入式系统的基于网络的攻击的发生持续增长,保护网络嵌入式系统尤其重要。

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

    关注

    146

    文章

    16022

    浏览量

    343698
  • 存储器
    +关注

    关注

    38

    文章

    7151

    浏览量

    162016
收藏 人收藏

    评论

    相关推荐

    如何保证储存密钥和信息数据,不被非法读取与篡改

    加密芯片内部集成了什么算法?自身安全等级如何?如何保证内部储存的密钥和信息数据不被非法读取与篡改
    的头像 发表于 07-24 09:40 1.2w次阅读
    如何保证储存密钥和信息数据,<b class='flag-5'>不被</b>非法读取与<b class='flag-5'>篡改</b>?

    [原创]宝界网页防篡改系统V2.3发布

    确定该请求有攻击性质,则丢弃。这样就可以有效防御诸如SQL注入、跨站脚本漏洞、CGI等流行攻击,利用文件过滤驱动技术保护网页和动态脚本不被非法篡改,从而从源头上杜绝各类非法篡改行为,从
    发表于 12-02 10:54

    智能电表怎么采用篡改检测和保护

    检测功能。例如,实时时钟等意法半导体m41st87w可以记录篡改事件。能够留住他们的内容在电池供电的情况下,这些设备提供了一个相对简单的防篡改方法仍然相对免疫意外故意断电。随着通过加密技术
    发表于 02-24 18:22

    请问图中的D1 D2 起到什么作用,像控制继电器一样保护mos不被反向击穿吗?

    请问图中的D1 D2 起到什么作用,像控制继电器一样保护mos不被反向击穿吗?
    发表于 12-14 12:46

    保护算法的MCU芯片

    安全加密MCU保护算法不被拷贝,保护知识产权
    发表于 04-08 14:55

    怎么保护嵌入式软件和电子设备产品不被抄袭

    在物联网和智能设备飞速发展的今天,嵌入式软件已经成为电子设备核心的知识产权,很多关键创意或者算法都体现在其中,而怎么保护嵌入式软件和电子设备产品不被抄袭入侵成为很多开发者头疼的问题,一般来讲如果
    发表于 07-22 09:20

    使用MMU进行多用户场景下的FLASH分区保护

    修改其它用户区的FLASH内容。我们可以使用国民技术MCU内置的MMU,将FLASH主存储区的区域进行划分和设置访问权限,同时可保护各个应用存储区域内的代码与数据不被非法访问及
    发表于 11-02 06:45

    有没有办法从MCU访问篡改备份寄存器备份sram?

    有没有办法从 MCU 访问篡改备份寄存器备份 sram?或者在身体上不可能这样做?编辑:我仍在寻找答案,我刚刚在 RCC 寄存器中看到我可以启用 BKPSRAM 位来:启用 MP
    发表于 12-06 06:00

    程序放在外部flash中如何防止被复制

    程序放在外部flash中如何防止被复制
    发表于 11-02 06:54

    采用量化离散余弦变换系数检测视频单帧连续多次复制粘贴篡改

    目前大多数时域视频帧复制粘贴篡改检测算法都是针对至少20帧以上的视频子序列的复制粘贴篡改,而对单帧复制粘贴
    发表于 12-19 13:36 0次下载
    采用量化离散余弦变换系数检测视频单帧连续多次<b class='flag-5'>复制</b>粘贴<b class='flag-5'>篡改</b>

    基于GMD和SSIM的同源视频复制粘贴篡改检测及恢复

    针对现有方法中篡改检测效率不高、定位不精确的问题,提出了一种基于几何均值分解( GMD)和结构相似度( SSIM)的同源视频复制一粘贴快速篡改检测及恢复的方法。首先,将视频转换为灰度图像序列。其次
    发表于 01-15 11:25 1次下载
    基于GMD和SSIM的同源视频<b class='flag-5'>复制</b>粘贴<b class='flag-5'>篡改</b>检测及恢复

    如何防止PIC微控制器代码被复制

    一个伟大的我的工程职业生涯的一部分涉及使用PIC微控制器进行设计。在我开始设计业务之前,保护我的代码不被复制并不是优先事项。在PCB设计和制造过程中有太多的东西让我担心这个过程的一部分受到损害。但是,在我听到一些电子企业因盗版问题遭受巨大损失的恐怖故事之后,我说并且开始采
    的头像 发表于 07-26 09:02 2914次阅读

    eFuse 反向电压保护

    eFuse 反向电压保护
    发表于 11-14 21:08 7次下载
    eFuse <b class='flag-5'>反向</b>电压<b class='flag-5'>保护</b>

    python如何通过_X和all隐藏模块数据

    python的_X指出不被复制的变量,**all**指出要复制的变量。
    的头像 发表于 02-21 11:29 410次阅读

    复制保护您的MCU设计和逆向工程

    本文将回顾一些常见的方法来设计保护,如使从外面的世界,你的MCU读取,使用片上的功能来验证要执行的代码修改,并使用外部元件来提供更先进的安全功能。板上技术篡改检测和可能的“惩罚”是也可以应用进行说明。
    的头像 发表于 11-03 15:06 221次阅读