我的代码在ARM Cortex-M中的安全性如何?黑客拉威胁的威胁?需要MPU吗?

时间:2015-09-03 21:37:36

标签: arm protection

我的旧产品是Microchip PIC 18F。它在中国被淘汰了。克隆是硬件的廉价副本,但是1:1软件。它显然是我的代码。代码在初始设备组装时编程,并且从不再次编程(没有更新,没有引导加载程序等)。所以这种情况发生的唯一方法就是如果他们击败了PIC 18F上的读取保护。考虑到年龄和我对该芯片的印象导致我在引起我注意之前切断它们,我不认为这是不合理的。

由于其他原因,我已将所有新项目迁移到ARM(M0 +,M3,M4)。现在,这对我的旧代码没有任何作用。我希望ARM Cortex芯片(NXP,ST,Freesale,Ti等)的保护效果更好。我几乎找不到有关其工作原理的信息。

  1. 是否有可能在ARM上取消芯片读取保护?假设完整的JTAG,SerialWireDebug,无论如何。即使你把芯片去掉以露出芯片?即使你真的知道你在做什么?它有多安全?因为...... 8位PIC显然非常不安全。

  2. 我想到在新项目中我可能需要连接到我们的服务器,在那里我将记录唯一ID(96-128bit)并从那里授权设备。克隆ID不会被识别。这是一个后勤混乱,因为我将拥有汇编程序的主列表,它将在线,用户的设备代码必须通过固件下载发送和授权......是一些欺骗和滥用的地方。这在很多层面上都很麻烦。是否有比这更简单的方法来确保保护:

    • 我们在制造时记录唯一ID
    • 用户将其姓名/信息/唯一号码锁定到部分
    • 用户插入USB
    • 我们的web / java软件与模块进行对话
    • 我们存储芯片的唯一ID及其独特信息
    • 如果芯片未被识别(ID不在列表中),请停止
    • 如果芯片已经链接到其他用户的信息(欺骗ID),请停止
    • 如果它是新的或已经过验证的模块,请允许用户使用它
  3. 以上是假设ARM中内置的唯一ID并且永远无法写入。似乎很可能。但是每个制造商似乎必须采用不同的系统,这似乎是一个外围功能而不是核心部分(一些STM芯片是96位,一些是飞思卡尔的128位)。我认为这主要是唯一的ID,序列化和加密方案。

  4. (注意:我讨厌DRM。而且这并不是我想要做的事情,但这个产品是系统的一部分,可能间接地对人们的生活负责。我们由于很多原因,我不能从中国那里获得廉价的仿制品,即使我的软件,我们也无法验证他们的廉价硬件。)

1 个答案:

答案 0 :(得分:0)

我会推荐以下内容:

  1. 查看具有TrustZone和加密功能的ARM芯片。有些具有每个外设键锁定。

  2. 如果您想要绝对的安全性,那么购买arm IP并设计一个硅芯片,其代码嵌入在硬件中,无法读/写。使其成为硅逻辑或片上ROM的一部分。