概述

概述

我有一个系统,它使用覆盖层显示来自摄像头的视频,并且必须在没有任何用户干预的情况下启动(越快越好)。但是,这些系统将交到客户手中,因此我们担心逆向工程。

操作系统 (Linux)、软件和日志存储在 mSATA SSD 上。CPU 是第四代 Core i3,配备 4GB RAM。

基本上,我们如何才能防止任何不道德的客户或竞争对手简单地移除 SSD 并窃取我们的应用程序代码?显而易见的答案是加密驱动器,但它需要无人值守启动。下一个合乎逻辑的步骤是在运行时解密软件,但您仍然需要将解密密钥以明文形式存储在某个地方,对吗?

板载有一个 TPM 模块,这可能是一个解决方案,但我找不到任何关于使用它的良好文档。

我愿意接受任何和所有的建议。

答案1

概述

  1. 加密磁盘
    • 使用dm-cryptLUKS
  2. sealTPM 的密钥并根据众所周知的PCR设置使用访问限制。
  3. 使用安全启动
    • 英特尔® TXT启动能够安全地启动 Linux 内核。您必须检查您的 CPU 和芯片组是否支持 TXT。

安全

  • 如果没有安全启动,阻止 TPM 向所有人泄露密钥的唯一方法就是使用密码——但如果需要无人值守操作,则不可行。

  • 只能在具有特定 TPM 的机器上解密磁盘。

  • 密钥仅在安全启动后才释放。因此,只有您批准的软件才能访问磁盘。但是,您必须设计适当的更新策略才能更新系统。(如果更新是一个问题)

  • 低成本 (< 100 欧元) 可以欺骗 TPM硬件攻击。这需要一些技巧,但是完全可行。

  • 仍然可以通过移除 RAM 并使用特殊设备读取来获取密钥。但在 Intel TXT 重置平台期间,密钥将被擦除。

  • 备份始终是个问题。如果可以轻松访问备份中的宝贵数据,那么您的所有平台保护都将毫无意义。如果您将备份存储在同一系统上,那么它就不是备份。

  • 运行时行为!如果您的客户可以在正在运行的系统上进行访问(SSH、HTTP 等),则磁盘将被安装并且所有数据都可以访问。

链接

几年前发布了一个原型研究项目,您可能也会在那里找到一些信息:IAIK acTvSM 平台

相关内容