NetBSD 磁盘加密:只加密该加密的地方,而不是整块盘
来源:netbsd.org — 2026-11-15
📋 概述
Nia 的文章先列出磁盘加密针对的两个威胁模型:设备丢失或被窃后内容必须保密;设备被篡改后一切篡改尝试都应让它不可用。本文只处理第一个,因为做防篡改系统极难,还得考虑硬件层面的对手。接着重新定义「什么数据值得保护」:系统文件来自开源软件,理论上人人相同,甚至可以设成只读;真正敏感的是用户修改过的文件。难点在于操作系统启动时就必须能读文件,这让真正的全盘加密离不开专门硬件;NetBSD 还需要在盘上存元数据,说明如何从 24 字符口令派生出 256 位密钥;共享库缺失(例如 /usr/lib 不在)会让系统几乎不可用,/rescue 里的工具则不依赖共享库。文章最后梳理敏感目录与折中方案。
🔑 核心要点
- 分类先行:系统文件(开源软件)与用户修改的文件敏感度完全不同,前者可假定与他人机器一致。
- 启动悖论是全盘加密的根本障碍:OS 必须先读到文件才能启动,所以离不开专门硬件或一段未加密的引导区。
- 敏感目录清单:/home、/var、/root、/usr/pkg、/usr/local、/etc;只加密 /home 往往不够。
- 被忽视的泄露源:崩溃转储里是内存快照(可用 sysctl 改路径)、服务日志、以及中断 vi 会话的邮件备份都可能暴露文件名与内容。
- AES 软实现偏慢,现代 CPU 有硬件加速;没有加速时可换 Adiantum;cgdroot 用小 ramdisk 转向加密根,但会显著改动启动流程、增加救援难度。
💡 金句
We can reasonably assume that /bin/sh is the same binary that every other NetBSD user is running.
← 返回 Lobsters 首页
👍 0
👎 0