保护嵌入式设备中的敏感数据?

时间:2017-01-23 16:46:18

标签: security encryption embedded

在嵌入式设备上存储敏感数据最安全的方法是什么?

在我的工作中,我正在为消费者市场开发一款产品,它将拥有一张eMMC卡,其中包含非常有价值的数据。我想知道保护这些数据的最佳方法是什么,即让某人无法理解其内容。 (ps:这不是代码,这是一个实际的数据集)

我想象设计的方法是将数据放在eMMC上,用AES加密(128位密钥就够了吗?)。密钥将存储在MCU的闪存中。我使用的MCU提供了防止闪存读出和闪存覆盖的功能。但是,如果eMMC只是将eMMC硬连接到计算机,那么带有数据(但没有加密密钥)的eMMC将可供黑客使用。 因此,解密的数据只会暂时存在于系统的RAM中。

因此,如果我正确使用我的MCU的功能锁定闪存,它会安全吗?或者,如果受到保护,是否有其他方法可以获取闪存内容(嵌入到MCU中)?像硬件模块或类似的东西。或者即使我成功地将密钥隐藏在闪存中,也可以制作一些数据吗?

请避免像" ... 这样的答案。"我想知道最糟糕的情况。

作为参考,这里是我们使用的MCU的读出/写保护功能,但我的问题是通用的,不一定与一个MCU相关。 http://www.st.com/content/ccc/resource/technical/document/application_note/89/12/c5/e2/0d/0e/45/7f/DM00186528.pdf/files/DM00186528.pdf/jcr:content/translations/en.DM00186528.pdf

4 个答案:

答案 0 :(得分:3)

我曾与信用卡机器的开发合作,最常见的攻击是:

  1. 当工程师泄露敏感数据或向产品插入后门时,人力资源泄漏。这与你的问题无关,我不会扩展。
  2. 软件黑客,攻击者将尝试下载您的固件并尝试授予" root"访问利用JTAG,UART,以太网,USB和您的产品可能具有的任何其他端口。关键是多么安全并不重要,如果他们在其上运行JTAG,密钥应该很容易恢复。与通过串口的根控制台相同,或者如果他们能够下载,破解和重新编程您的闪存。
  3. 总线嗅探,攻击者会将间谍插入你的公共汽车(mmc,spi,uart等等......甚至在DDR3总线等内存上)以监视数据。如果将未加密的敏感数据传输到可以查看的总线,则存在安全漏洞。为了避免这种情况,你应该将你的公共汽车埋入PCB中并仅使用BGA,请在外层使用它。
  4. 加密所有内容。存在芯片孵化(物理上!)并且通过显微镜在视觉上读取位状态的攻击!
  5. 这是我所知道的最常见攻击的顺序。

    你可以随时使用安全芯片,安全引导程序和篡改陷阱来清除滥用行为。

答案 1 :(得分:2)

这完全取决于您设备的功能(或您的安全信息)。 通常,AES-128位加密足以实现嵌入式设备的合理安全等级。 但是将密钥存储在非受保护的存储器(处理器的闪存)中会导致严重的安全问题。有许多物理/逻辑方法可以从非易失性存储器中提取数据。

您可以将密钥存储在一般的SRAM内存中,并使用篡改检测密钥保护系统,或使用内置加密协处理器和安全密钥存储的MCU(例如lpc18s,lpc43s等)或使用外部密码学芯片像TPM或SAM一样可以提高您的安全级别。 但正如之前所说,你必须决定如何&什么时候你需要/解密 数据,是否需要在不安全的数据线中传输明文数据(解密信息)? 您可以在我刚才提到的以下链接中收到更多信息: https://electronics.stackexchange.com/questions/198274/storing-a-secure-key-in-an-embedded-devices-memory

答案 2 :(得分:1)

安全成本取决于它所保护的数据的价值。如果真的那么有价值的是Secure Cryptoprocessor防篡改。

基本上是设备以某种方式“破坏”事件物理篡改,并试图防止间接嗅探信号。

答案 3 :(得分:1)

这取决于您的数据的使用情况。

如果您的嵌入式设备还需要使用对称密钥所需的数据。

如果您只想存储数据,但设备本身不再需要阅读,则应使用不对称密钥。 然后,即使闪存的全部内容,也无法恢复数据 它并不是用一个好的库来实现这一点。

但是还有问题 在生成数据时仍然可以获取数据 如何避免这种情况取决于您的系统设计。