通过 dm-crypt/device-mapper 支持 TRIM

jef*_*150 9 ssd luks device-mapper

明天买一台带 SSD 的新笔记本电脑。我需要了解 dm-crypt 和 TRIM 的当前状态。我看过几个相互矛盾的报告,围绕这个问题的大多数活动似乎都 > 1 岁了。有人说 dm-crypt TRIM passthrough 已包含在多个最近的内核版本中(这对我来说不是问题,因为我使用的是 Arch)。有人说支持仍然不存在。我能否获得有关 dm-crypt TRIM 支持状态的明确、来源丰富的答案?提及此功能的 git commits 或邮件列表公告将是理想的。

这个问题的答案很可能会影响我设计新笔记本电脑磁盘的方式。希望有一个体面的、最新的答案对其他人有用。

jef*_*150 10

作为记录,当我第一次发布这个问题时,这个功能存在。我在邮件列表中询问,并从 Milan Broz 那里得知,dm-crypt 目标的丢弃直通仍未实现。米兰表示他打算在某个时候实施这一点,但没有说明何时实施。

在 dm-crypt.c 和相关文件中挖掘了一段时间后,似乎添加 TRIM 支持相当简单。在我加入之前,我写了一份清单,征求他们对这项任务的一般建议。第二天,米兰提交了一个补丁,该补丁在 dm-crypt 上实现了 TRIM 直通,这已被提交到 linux-next 中。它应该包含在 Linux 3.1 内核中。

必须显式启用 TRIM 直通。在 dm-crypt'd 设备上使用 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 手动启用。