自动填写/绕过 SED 密码屏幕

自动填写/绕过 SED 密码屏幕

我想在嵌入式 Linux 应用程序中使用自加密驱动器,但由于它是嵌入式的(即没有显示器、键盘或鼠标),我无法在启动时输入密码。有没有办法将密码存储在这台计算机上,以便操作系统在连接到这组硬件时自动启动,但在另一组硬件上需要密码?也许可以使用存储密码的 USB 加密狗来实现?

谢谢!

答案1

有没有办法将密码存储在这台计算机上,以便连接到这组硬件时操作系统会自动启动,但在另一组硬件上却需要密码?

这通常是通过将密钥存储在安全硬件元件中来实现的——在标准 PC 中,这将是可信平台管理。您可以将加密密钥仅绑定到 TPM 本身,也可以将它们另外绑定到确切的启动状态 - 请参阅测量引导

Windows BitLocker 正是以这种方式使用 TPM(并且也适用于自加密 OPAL 驱动器)。同样可以应用于 Linux,无论是 LUKS 还是 SED。

许多嵌入式 SoC 都有自己的安全元件,可以存储与该特定芯片绑定的加密密钥,尽管它们不一定具有与 TPM 的“测量启动”相当的功能。

也许可以使用存储密码的 USB 加密狗来实现这一点?

可能不适用于任何现有产品。即使是“智能”USB 加密狗(例如 FIDO2 密钥或 PKCS#11 智能卡令牌)也无法确定硬件是否已更改。充其量,它们可以用另一个密码保护——但这样你就会回到你最初遇到的完全相同的问题(即需要存储或派生该密码)新的安全的方式输入密码)。

答案2

听起来您正在谈论类似 ATA 密码的东西,如果将其设置为启动驱动器,它可能会触发 x86 PC 上的 BIOS/UEFI 提示解锁。

如果是这种情况,您可能能够使用额外的驱动器(USB 或非 USB;只要它可以在平台上配置为启动驱动器)来执行分区/boot(即未加密的引导加载程序、内核和 initramfs),将其包含hdparm在 initramfs 中,并在安装“真实”根文件系统之前使用它来解锁驱动器。具体如何操作取决于您/发行版使用的早期初始化。

相关内容