如何加密我的 SSD 但仍然无人值守启动 (linux)?

Chr*_*uma 5 linux encryption ssd data-protection tpm

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

操作系统 (linux)、软件和日志存储在 mSATA SSD 上。CPU 是具有 4GB RAM 的第 4 代 Core i3。

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

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

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

Sco*_*tus 4

概述

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

安全

\n\n
    \n
  • 如果没有安全启动,防止 TPM 将密钥释放给每个人的唯一方法是使用密码 - 如果需要无人值守操作,则不可行。

  • \n
  • 该磁盘只能在具有特定 TPM 的计算机上解密。

  • \n
  • 该密钥仅在安全启动后才会释放。因此,只有您认可的软件才可以访问该磁盘。但是,您必须设计适当的更新策略才能更新系统。(如果担心更新)

  • \n
  • TPM 可能会被低成本(< 100 \xe2\x82\xac)硬件攻击所欺骗。这需要一些技巧,但完全可行。

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

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

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

  • \n
\n\n

链接

\n\n

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

\n