自动化和全盘加密

自动化和全盘加密

我知道标题似乎完全矛盾,但请允许我详细说明。阅读 Bruce Schneier 的最近关于数据删除的文章让我想到每个服务器都应该有全盘加密,仅仅因为知道rm file可以安全删除文件,并且只要它不在其他任何地方,它就永远消失了。

如果我找到一种方法,比如运行一台“非常安全”的服务器,该服务器充当 LUKS 文件系统解密密钥的密钥服务器,而所有其他服务器只需进行某种网络启动,即可联系到这台“非常安全”的服务器获取密钥,那么我能否在这些机器上实现全自动?由于我必须假设亚马逊可以(如果他们愿意)轻松提取加密密钥,那么这种设置是否会真正失去任何安全性?全自动的意思是,能够随意添加和删除机器,而无需我进行任何手动干预或物理访问。此外,机器应该能够自行重启,而不会因等待解密密码而停滞不前。

另外,这可能吗?我以为有办法做这样的事情,但目前我对这个问题有点模糊。

答案1

这是 FDE 的常见用例,您为 FDE 提供空白密码。然后您需要配置 FDE 引导加载程序以跳过密码查询,并使用空白密码启动计算机。如果使用 LUKS,您可能可以更改源代码并重新编译 LUKS 引导加载程序以跳过密码输入并继续使用空白密码。

请注意,使用 FDE 的空白密码不是在此用例中不安全(使驱动器擦除更容易)。密码加密驱动器加密密钥,进而加密驱动器。这样就可以更改密码而不必重新加密整个驱动器。因此,即使驱动器加密密钥未加密或未受保护,当此驱动器加密密钥被安全擦除时,内容仍将受到保护。

当需要退役服务器时,只需擦除包含引导加载程序的前几兆字节,然后验证引导加载程序是否消失。

另一个用例是将引导加载程序放在比硬盘更容易损坏的其他设备/介质上。当服务器需要退役时,您可以保留引导介质或将其销毁。

通过 PXE 启动也是一个可行的解决方案。然后,将整个引导加载程序放在 PXE 服务器上。您甚至可以刷新 iPXE(http://www.ipxe.org)插入主板/网卡芯片,然后就可以通过 HTTP/HTTPS 获取引导加载程序。

一些驱动器还内置了此功能,它会生成一个随机加密密钥,将其存储在闪存或磁盘盘片上,然后加密整个驱动器。当您提供 ATA 安全擦除命令时,它会安全地擦除加密密钥,使整个驱动器无法读取。

答案2

可以使用 FDE(全盘加密)自动化除 /boot 分区之外的虚拟机。

以下是一些选项,全部使用 Linux 上的标准 LUKS 加密:

  1. 在 initramfs 中对 LUKS 密码进行硬编码(黄金映像)
    • 部署后可以更改此设置,之后每次重启时都可以使用 KVM 输入该设置。
  2. 安装 initramfs ssh 服务器,例如 dropbear
    • 完全启动前需要 ssh 登录和密钥输入。可以自动化。
  3. 使用客户端/服务器设置传递密钥,例如曼陀罗

答案3

也许我没有得到您的答案,或者我是个新手,但您不能制作一个已经加密的黄金映像,然后使用零接触进行部署吗?使用 Puppet 或 SCCM 之类的东西进行管理,但我发现非常没用的是你希望自动输入密码(肯定可以为此编写一些代码),但这会使服务器不太安全,并违背了加密的目的。

相关内容