加密嵌入式系统中的文件(私钥等)

奥利维尔

我正在Linux上运行的嵌入式设备上工作。该设备与服务器通信,并使用证书和私钥向服务器发送数据。

分发设备时,恐怕某些邪恶的人可能会通过侵入嵌入式设备的文件系统来窃取该私钥,并试图篡改服务器上的数据。

即使我对该私钥进行了加密,由于正在运行的程序需要解密该密钥,因此他们仍然可以在文件系统上的某处找到解密密钥。

更改文件的权限不是解决方案,因为我们必须固有地分发设备,因此任何人都可以对其进行物理访问。

我很高兴听到关于保护私钥而不阻止正在运行的程序使用私钥的任何建议。谢谢你。

编辑:我们使用在英特尔Edison上运行的Yocto。

吉勒斯“别再邪恶了”

如果您的硬件在物理上不是安全的,那么在软件中进行的任何操作都不会为您提供物理安全性。

除非您有单独的密钥安全位置,否则不要打扰加密当有人在启动时键入(密码以导出)密钥时,计算机上的全盘加密很有用。如果密钥位于单独的,受物理保护的存储区域(例如TPM或智能卡)上,则也可以完成全盘加密。

据我所知,英特尔Edison没有这样的独立存储区域。此外,可以通过SD卡或USB记忆棒来启动Edison板,因此任何可以物理访问USB端口的人都可以从eMMC中提取所有数据。

USB引导似乎依赖于U-Boot,因此,用禁用USB的自定义映像替换正式的U-Boot映像可能会强制从eMMC上的操作系统引导。我实际上不知道这是否有可能,我只是没有足够的信息来驳斥它。

即使使用自定义的引导加载程序,也可以通过USB连接刷新板。至少在闪存中断的情况下,这会覆盖部分eMMC,但不会覆盖整个内容。无论您尝试将密钥放在eMMC上的哪个位置,小心的攻击者都可以避免覆盖它。

如果您的服务器需要信任来自设备的数据,则您要查找的功能称为“安全启动”(或“受信任的启动”或“已验证的启动”或其他一些名称,术语未标准化)。对于英特尔处理器,这是通过TPM实现的(但嵌入式主板很少有TPM)。对于ARM处理器,这可以通过TrustZone以及一些与制造商有关的工具来实现。两种技术都不能证明对手可以花很多钱,但是要打破对手,至少要用烙铁,而不仅仅是USB棒。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章