通过 DHCP 进行全盘解密

通过 DHCP 进行全盘解密

我想在所有客户端上实施全盘加密。但为了避免人们在启动时输入 FDE 访问代码,我想知道访问代码是否可以通过 DHCP 或类似方式分发。

我们的想法是,FDE 应该在笔记本电脑被盗或在公司外部时保护笔记本电脑,但如果在公司网络上使用它,我们假设它没有被盗。

理想情况下,我希望访问代码是一次性访问代码,因此如果有人嗅探 DHCP 答案,他们通常将无法解密笔记本电脑。

答案1

由于这可能涉及编写自定义 Initramfs,或者至少是一个钩子,您可能会发现这些资源很有趣(忽略 Gentoo 特定位):

自解密服务器示例生成如下加密密钥:

( 
    # CPU:
    grep -vE '(MHz|bogomips)' /proc/cpuinfo
    # RAM:
    tail /proc/iomem
    # MAC-Address: (requires network drivers)
    cat /sys/class/net/*/address
    # Block devices and partitions (ignore optional CD drive):
    grep -v sr0 /proc/partitions
    # Random file:
    cat /root/secret
) | sha512sum | xargs echo -n > /root/key

这是为了防止有人走过你的服务器并弹出硬盘; HDD 本身不知道服务器的 CPU、RAM、MAC 地址,因此它无法在其所属的盒子之外解密自身。

如果是笔记本电脑(整个设备被盗),这没有什么帮助,因为小偷会拥有所有这些数据,因此您必须将其替换为 DHCP 数据。

因此,当您通过 DHCP 获得 IP 地址等后,它可能类似于:

(
    cat /sys/class/net/*/address
    ip addr show
    ip route show
    cat /etc/resolv.conf
) | sha512sum | xargs echo -n > /root/key

这将根据您的 MAC 地址、IP 地址和路由以及 DNS 服务器等为您提供哈希/密码。

只要 DHCP 始终以相同的方式设置笔记本电脑,它就可以工作,因此 DHCP 服务器必须永远记住笔记本电脑的配置,否则笔记本电脑将停止启动。

这样的解决方案总是有点不稳定,因此请确保使用支持多个密码短语的 LUKS,并准备好备用密码短语,以防 DHCP 密码被破坏。

它也不是很安全;这个 DHCP 信息是公开的(对于使用笔记本电脑的人来说),并且可能不难猜测(对于在同一环境中使用不同笔记本电脑的任何人来说),因此它可以防止普通小偷,但不能防止稍微精通技术的同事 - 来自 -地狱。

相关内容