目标:
对包含启动 CD 和机密信息的多启动 USB 驱动器进行完全加密
问题:
我一直在尝试 XBoot(https://sites.google.com/site/shamurxboot/download) 以便创建可以用于工作的多启动 USB 闪存驱动器(携带各种操作系统和启动 CD)。
对于不熟悉 XBoot 的人来说,它会将各种 ISO 复制到闪存驱动器,并在 Syslinux 或 Grub4dos 中创建一个引导加载程序作为前端。或者可以设置为不使用任何引导加载程序。
我希望能够随身携带一些可启动 CD,其中预装了公司信息并且驱动器上存储有文件。
由于涉及我携带的某些设备中存储的信息的原因,我希望对整个驱动器进行加密。
编辑:
ISO 文件以及存储数据的分区。
我研究过的可能的解决方案:
我了解 TrueCrypt (http://www.truecrypt.org/) 能够使用自己的引导加载程序在启动之前解密驱动器。我以前用过这个,理论上了解如何加密正在启动多个操作系统的驱动器。
编辑:我知道 TrueCrypt 不支持 EXT 文件系统,但驱动器将被格式化为 FAT32/NTFS,并且所有启动 CD 都以 ISO 形式存在
有什么方法可以将 TrueCrypt 安装到驱动器并将一个引导加载程序指向另一个引导加载程序(这不是最干净的方法,但在我看来,它最有可能起作用)?
有没有更清洁/更有效的方法来实现期望的结果?
编辑2:
理想情况下,我正在寻找软件解决方案而不是硬件解决方案。
编辑3:
我设法使用 TrueCrypt 加密了整个驱动器,但前端引导加载程序实际上并不像 grub 类型的菜单加载程序那样使用。有人有编辑菜单的经验吗?
编辑4:
我尝试使用其中一个响应者建议的另一个程序 Easy2Boot。从功能上讲,它的工作方式与 XBoot 非常相似,因为它只是为 ISO 文件创建了一个 grub4dos 启动菜单前端。我遇到了同样的问题,一旦设置完成,我就无法正确地将 truecrypt 引导加载程序指向此引导加载程序。那么我该如何实现呢?我知道这是可能的,因为即使从 Easy2Boot 启动,当我启动像 Hirens 这样的实时 CD 时,它也会从 Grub4DOS 引导加载程序转到 Hiren 的引导加载程序。
答案1
首先,使用可启动 CD 不需要多重启动,所以这是我不明白的部分。
其次,为什么不将所有敏感数据放在一个加密的 truecrypt 分区中,您可以从启动的任何操作系统打开该分区。
第三,如果你要保护的是公司数据,那么你也许可以购买硬件加密,例如Apricorn Aegis 安全密钥, 或者Imation Defender F200 生物识别闪存驱动器。
答案2
如果您想使用软件加密,如果 ISO 文件已加密,您将无法启动大多数 Linux ISO。在这种情况下,唯一可以启动的 ISO 是那些将所有内容加载到 initramfs 中的 ISO(一个例子是RIPLinux;不幸的是,它的开发似乎已经停止了),或者您修改过以向其 initramfs 中添加加密支持的版本。
问题在于 TrueCrypt(或任何其他软件加密程序)使用的引导加载程序可以设置 BIOS INT 13h 处理程序,以便下一个引导加载程序能够访问加密数据,但 Linux 内核启动后无法使用此 INT 13h 处理程序。但是,大多数 Linux ISO 需要在启动 Linux 后才能访问 ISO 内容,并且获得此类访问权限所需的一切都必须存在于 initramfs 映像中(引导加载程序在启动 Linux 内核之前使用 BIOS INT 13h 调用加载该映像)。当然,您不会在任何常见 Linux ISO 的 initramfs 中找到 TrueCrypt 支持。
事实上,即使让 Linux ISO 中的 initramfs 代码在从 USB 启动时找到 ISO 内容也需要一些技巧。如果你读过Easy2Boot 使用的 ISO 启动过程描述,您会注意到它会修改 USB 驱动器的分区表,以添加与 ISO 映像文件使用的扇区范围相对应的分区(该分区必须是连续的 — 即不碎片化);然后 initramfs 代码应挂载此分区以访问 ISO 内容。显然,如果 ISO 映像已加密,这将不起作用,除非修改 initramfs 代码以支持所使用的加密。
因此您有以下选择:
避免将任何敏感数据包含在 ISO 映像中。在 USB 驱动器上创建两个分区 — 一个用于敏感数据(使用 TrueCrypt 或您选择的任何方式加密),另一个用于启动(未加密)。
弄清楚如何在 TrueCrypt 分区内安装可用的引导加载程序,然后只使用基于 initramfs 的 ISO,或者修改 initramfs 映像以添加 TrueCrypt 支持。如果您选择这种方式,我建议您先尝试使用 SYSLINUX,因为与 GRUB 不同,它不会尝试安装到 MBR(并且您需要避免使用 MBR 和第一个分区之前的嵌入区域,因为 TrueCrypt 引导加载程序将安装在那里)。
购买具有硬件加密功能的 USB 驱动器,无需任何软件即可解锁 - 例如,其他答案。不过,购买前请仔细检查,否则你可能会遇到一些问题——例如,对于 Apricorn Aegis 安全密钥亚马逊上的一条评论说:
它似乎讨厌哪怕是最轻微的电源中断。如果我在启动操作系统之前连接它,在 Windows 或 Linux 启动过程中当它检测到 USB 设备时,它会由于 USB 连接的短暂中断而断开连接。我必须再次输入 PIN。
注意:这不是广告宣传的那种情况,但我可以在我之前的带密码键盘的 USB 驱动器上毫无问题地做到这一点……我在驱动器上安装了 Linux,以便可以启动,但当我尝试启动 Linux 时,它会在检测 USB 设备的阶段断开连接。如果我重新解锁驱动器,它会继续启动,但这很麻烦。
如果 Imation Defender F200 Biometric 驱动器在这种情况下也重置,则可能无法用于启动,并且在 BIOS 初始化期间解锁速度太慢。支持文章如果仅启用生物特征认证,则确认其与 Linux 兼容,因此有一定的成功机会,但是……
答案3
事实上,如果你有一个 USB 驱动器,并且你不打算使用硬件加密,那么你就不担心别人会将恶意软件注入你的 USB 驱动器。因此,没有理由加密启动分区。
除了数据分区外,其他所有分区均不加密。您可以随意加密数据分区,只要操作系统可以安装即可。
或者,使用 TrueCrypt 等软件加密来加密整个 USB 驱动器。这样做的主要问题是您必须启动某物解密驱动器,然后你在启动时就无法保持它处于活动状态其他东西。这就是为什么我选择硬件加密作为第一选择,数据分区加密作为第二选择。
答案4
关于您想要的软件解决方案,您可以使用 LVM 和 LUKS 以多种方式对驱动器进行分区和加密。
我通过单个 SanDisk Extreme 3.0(50Mb/s)运行 Tails 和 Kali,性能对我来说足够了。
我有三个逻辑卷(LV)Tails,Kali和共享。
对整个棒进行单一 LUKS 密码加密。
共享卷保存 Dropbox,用于 USB 上的任何内容之间或在其他地方访问的任何内容之间流动的数据。