明天要买一台带 SSD 的新笔记本电脑。我需要了解 dm-crypt 和 TRIM 的当前状态。我看到了几个相互矛盾的报告,而且围绕这个问题的大多数活动似乎已有 1 年多了。有人说 dm-crypt TRIM 直通功能已包含在多个最近的内核版本中(这对我来说不是问题,因为我使用 Arch)。有人说这种支持仍然不存在。我能否得到关于 dm-crypt TRIM 支持状态的明确、来源可靠的答案?提及此功能的 git 提交或邮件列表公告将是理想的选择。
这个问题的答案可能会对我设计新笔记本电脑磁盘的方式产生很大影响。希望这个答案对其他人有用,因为它是最新的。
答案1
根据记录,此功能确实不是当我第一次发布这个问题时,它就存在了。我在邮件列表中询问,米兰·布罗兹告诉我,dm-crypt 目标的丢弃直通仍未实现。米兰表示他打算在某个时候实现这一点,但没有说明具体时间。
在 dm-crypt.c 和相关文件中研究了一段时间后,我发现 TRIM 支持似乎很容易添加。我写了一封邮件,询问他们对这项任务的总体建议,然后才开始着手。第二天,Milan 提交了一个补丁,在 dm-crypt 上实现了 TRIM 直通,这个补丁已经进入了 linux-next。它应该包含在 Linux 3.1 内核中。
必须明确启用 TRIM 直通。在 dm-crypt 设备上使用 TRIM 存在潜在的安全问题,因为 TRIM 会将有关块使用情况的信息发送到设备上的固件,然后将最近释放的区域标记为可用(无论如何,据我所知)。这意味着感兴趣的一方可以获取有关磁盘使用模式的信息。例如,据推测攻击者几乎肯定可以通过这些数据了解加密介质上使用的文件系统。攻击者还可以了解更多有用的信息,例如您最近保存了大量大文件(大的连续 TRIM 块)。
请参阅这些主题以供参考:
http://www.redhat.com/archives/dm-devel/2011-June/msg00093.html
http://www.redhat.com/archives/dm-devel/2011-July/msg00042.html
http://www.redhat.com/archives/dm-devel/2011-July/msg00088.html
tl;dr:Linux >= 3.1 中将存在对 dm-crypt 目标的 TRIM 直通支持,但必须通过 cryptsetup 和/或 dmsetup 手动启用,因为数据泄漏可能允许基于磁盘使用模式进行分析。
答案2
从内核 3.2.x 开始,dm-crypt + brtfs 应该是安全的。请参阅 Chris Mason 对我的问题的回复:
http://permalink.gmane.org/gmane.comp.file-systems.btrfs/15554 和 http://permalink.gmane.org/gmane.comp.file-systems.btrfs/15564
答案3
根据这个帖子...
我的问题是:如果文件系统和实际块设备之间有一个 dm-crypt-layer,会发生什么情况?修剪部分会被传递下去,还是会被丢弃?
我猜它会被传递。我在使用 LUKS/dmcrypt 加密的 SSD 上使用 btrfs,效果很好。Btrfs 使用 ata trim 很长一段时间。
您可能还需要discard
文件系统的挂载选项。
答案4
嗯,有这个帖子
https://bbs.archlinux.org/viewtopic.php?id=114924
和这个工具
http://sourceforge.net/tracker/index.php?func=detail&aid=2997551&group_id=136732&atid=736684
我还没有用过,但是我也对这个问题感兴趣。