我正在设置一些具有全盘加密功能的安全 Ubuntu 服务器。它们有一个小型启动分区和一个大型 LUKS 加密磁盘,其中 LVM 提供其余分区。目前,它们配置为在启动时需要密码。但是,我想知道是否有办法让它们从 TFTP 服务器、NFS 共享或类似服务器获取解密密钥,这将允许我重新启动服务器而无需控制台访问。我仍然会加密密钥服务器并需要控制台访问和密码来启动它,但我只需要输入一个盒子的密码,而不是可能变成 20 个加密服务器。
由于这一切都是在虚拟环境中进行的,我将为关键流量创建一个完全独立的网络,该网络与我的网络的其余部分没有任何联系。是的,这仍然有风险,但主要目标是使对我的服务器的物理扣押毫无意义,因为无论如何,来自我的 WAN 的外部入侵不是磁盘加密可以提供帮助的。
有办法实现这个吗?我尝试做的事情有意义吗?
答案1
如果您的服务器会向任何请求解密密钥的人发送解密密钥,那么使用磁盘加密就没有什么意义了。您无法对尚未启动的客户端进行任何有意义的身份验证;您能做的最好的事情就是检查其 MAC 地址,而攻击者可以很容易地伪造该地址。
答案2
从 grub 启动?是的,理论上是可以的。但目前还没有实现。您必须编写(或者说修改)一个或两个 GRUB 模块才能启动它。
如果您不介意下载代码是否在 initrd 中,那么它实际上非常简单 - “keyscript” 是一个返回密钥的脚本。请参阅“man crypttab”。它将自动包含在 initramfs 中,但您必须编写一个“initramfs-tools” “hook” 脚本来包含您在启动时需要调用的任何二进制文件。(即您的 TFTP 程序)
不过,这听起来像是一件值得做的事情。我一直在想“用电池供电的小型计算机,密钥位于 RAM 中,并被编程为在拔掉网络电缆时删除该密钥。”这样,如果有人真的偷了你的电脑,他们就得不到任何数据。它不像每次在每台电脑上输入密码那样安全,但它比你随身携带的 USB 密钥(可能被盗)更安全,而且使用起来也容易得多。
如果您还确保另一个密钥只为不同司法管辖区的人所知,那么您在某种程度上也可以防范警察。他们可以拿走计算机,但他们无法解密,也不能传唤任何解密的人。(例如,像您。)