自动化和全盘encryption

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

如果我find一种方法来运行一个“非常安全的”服务器,它作为LUKS文件系统解密密钥的关键服务器,而所有其他服务器只是做了某种networking启动,在这种networking启动中,他们伸出了这个“真正安全的“服务器的密钥,我可以实现这些机器上的全自动化? 因为我必须假设亚马逊可以(如果他们想要的话)轻易地提取encryption密钥,那么我是否真的失去了这种安装的安全性? 通过全自动化,我的意思是能够随意添加和删除机器,而不需要人工干预或物理访问。 此外,机器应该能够自行重新启动,而不是等待解密密码短语。

另外,这可能吗? 我以为有办法做这样的事情,但是现在我对这个话题有点朦胧。

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

请注意,在这种使用情况下,为FDE使用空密码不是不安全的(为了使驱动器擦除更容易)。 密码会encryption驱动器encryption密钥,然后encryption驱动器。 这是为了能够更改密码而不必重新encryption整个驱动器。 因此,即使驱动器encryption密钥没有被encryption或保护,当该驱动器encryption密钥被安全地擦除时,内容仍将被保护。

当它停止服务器的时候,你只需擦除几个包含引导加载程序的第一兆字节,然后validation引导加载程序已经消失了。

另一个用例是将引导程序放在另一个比HDD更容易被破坏的设备/介质上。 当它停止服务器的时候,你要么保留启动媒体或销毁它。

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

一些驱动器也使用内置的这个function,它会生成一个随机encryption密钥,将它存储在闪存或磁盘上,然后encryption整个驱动器。 当您提供ATA安全擦除命令时,它将安全地擦除encryption密钥,使整个驱动器不可读。

也许我没有得到你的答案,或者我是一个n00b,但你不能让一个已经有encryption,然后部署使用零接触的黄金形象? 使用像Puppet或SCCM这样的东西进行pipe理,但我发现无用的是,你想要自动input密码短语(一些代码肯定可以做到这一点),但是,这使得服务器不太安全,并打败了目的encryption。

可以使用FDE(全盘encryption)自动化VM,除了/ boot分区。

这里有几个选项,都是在Linux上使用标准的LUKSencryption。

  1. 硬编码initramfs中的luks口令。 (黄金形象)
    • 这可以在部署之后进行更改,然后在每次重新启动后使用KVM进行更改。
  2. 安装initramfs ssh服务器,例如dropbear
    • 在完全启动之前,需要sshlogin和密钥input。 可以自动化。
  3. 使用客户端服务器设置来传递密钥,例如Mandos