首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

NetBSD 上的磁盘加密 – 实现保密

2026-11-15 1 阅读 约5分钟阅读 jaypatelani
分享:
字号:
安装后设置(磁盘标签) 以下是两种威胁模型,磁盘加密就是解决方案: 设备被盗或丢失,其内容必须保密。该设备已被篡改,所有篡改尝试都必须使其无法使用。现在,我们将重点关注第一个威胁模型。构建防篡改系统非常困难,您需要担心硬件的防篡改问题,具体取决于哪种行为者是现实的威胁。如果我们想要对系统上的数据保密,我们首先必须考虑哪些数据值得保护。在 NetBSD 系统上,我们的数据可以分为两大类: 系统文件(开源软件) 用户修改的文件 从 NetBSD FTP 服务器下载的 /bin/sh 可执行文件是否包含任何敏感信息?在 BSD 系统上,由于基础系统和软件包的分离,许多根文件系统目录在升级之外大多未修改。在正确配置的系统中,几乎所有系统守护进程和用户应用程序都不会以 root 身份运行,因此无权在 /bin 中修改或创建文件。我们可以合理地假设 /bin/sh 与每个其他 NetBSD 用户正在运行的二进制文件相同。用户甚至可以选择将包含此类系统文件的目录设置为只读。操作系统需要能够加载文件来启动。 [需要引用]这使得在没有专门硬件的情况下很难实现“真正的”全盘加密,因为用户需要某种方式来输入密码或加密密钥,并且如果没有在计算机上运行某种形式的软件就无法做到这一点。 NetBSD 还需要在磁盘上存储一些有关加密分区的元数据,例如有关如何从 24 个字符的密码生成安全的 256 位密钥的信息。 Unix 系统通常使用共享库,这些库由程序加载来访问系统功能。如果这些变得不可用,例如 /usr/lib 丢失,那么使用系统就会变得更加困难。熟悉 /rescue 中的标准实用程序,这些实用程序不需要工作共享库即可使用。由美国政府标准化的密码算法在软件中实施时往往很慢。这会带来性能损失。因此,许多现代 CPU 都在硬件中包含了 AES 等密码的实现。对于那些不这样做的人,还有其他密码,例如 Adiantum 。操作系统加载需要哪些?在普通的 NetBSD 系统上,几个目录在系统操作期间很有可能被修改: /home - 用户特定的文件 /var - 日志文件、系统范围的数据库(例如邮件通知)、故障转储... /root - 与 root 用户帐户相关的配置文件 /usr/pkg 和 /usr/local - 安装第三方软件的位置 /etc - 初始化脚本、基本系统的系统范围配置 一个简单的方法可能是加密 /home 。然而,这对于某些用户来说可能还不够。尽管可以使用 sysctl 轻松更改崩溃目录,但崩溃转储包含可能敏感的系统内存快照。如果系统上运行过任何服务器,则日志文件可能是敏感的。发送给用户的邮件(例如有关中断的 vi 会话和相关备份的邮件)可能会泄露敏感文件名。一些用户选择 cgdroot 方法,该方法仅使用小型未加密的 ramdisk 来转向加密的文件系统。然而,这会显着修改系统启动例程,并可能使某些救援选项变得更加困难。因此,值得一问的是是否有一种介于两者之间的方法,并且仍然使用标准的 NetBSD 安装和引导过程。许多 BSD 系统对 /usr 和 /var 使用单独的文件系统分区,这是 NetBSD 安装程序支持的标准配置。 /etc 是一个更难解决的问题,因为它包含引导系统所需的文件。然而,在典型的桌面系统上,/etc 中的许多文件保持不变。 /etc 中的密码通常仅以哈希形式存储,Wi-Fi 接入点和某些 VPN 配置除外(尽管很容易重新配置 wpa_supplicant_flags 以使用与 /etc 中默认配置文件不同的配置文件)。许多配置文件仅在引导过程的后期(/usr 已挂载之后)才加载,并且可以轻松地替换为另一个文件系统上文件的符号链接。 NetBSD 安装程序具有基本功能,但可以快速完成工作。在此配置中,我们将把 NetBSD 安装到一个小型的未加密根文件系统。当您开始忽略 /usr 、 /var 和 /home 中可能发生的增长时,即使包含开发工具的完整 NetBSD 安装也是很小的。 4 GB 应该绰绰有余。出于示例目的,我将使用 sparc64 虚拟机,但对于 amd64 等更主流的 CPU 架构,该过程基本相同。安装程序
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱