Jas*_*per 5 linux encryption data-integrity device-mapper luks
阅读 dm-crypt 和 LUKS 的文档,我了解到 LUKS 是一种允许 FDE 的格式规范,而 dm-crypt 是一个 dm 目标,允许对块设备的写入/读取进行加密/解密。
但是,我不确定这些现在到底提供什么(即职责是什么)。在作者(Milan Broz)制作的幻灯片中,提到LUKS2还可以提供完整性保护(从而使加密得到验证)。由此看来,并阅读了LUKS1规范,我认为这在 LUKS1 中是不可能的。然而,稍后在幻灯片中它讨论了 dm-crypt 如何允许经过身份验证的加密。这就是我困惑的地方;我们假设我们使用 LUKS2 吗?
我觉得我并没有真正掌握 LUKS 和 dm-crypt 的主要功能和职责。
谢谢!
Voj*_*fny 10
让我们从内核部分开始:
现在是用户空间级别:
您可以直接使用设备映射器,但它不太用户友好。假设您想直接使用 dm-crypt - 要访问数据,您需要知道加密算法、使用的 IV,当然还有密钥(不短且不易记住)。在启动期间询问这些信息不太实际。
这就是 LUKS 的用武之地。它提供了两件事:标头和存储(和管理)密钥的方式。标头允许系统将设备识别为 LUKS,并包含使用该设备所需的所有元数据。密钥管理允许您将加密密钥安全地存储在磁盘上,并通过易于记住的密码(或密钥文件、TPM、FIDO 令牌等)进行保护。
因此,LUKS 格式仅向系统提供正确设置设备映射器设备所需的所有信息。您很可能会使用 cryptsetup 来实现此目的 - 可以读取 LUKS 元数据、解密其中存储的密钥并正确创建 DM 设备的工具和库。
LUKSv1 和 LUKSv2 之间的区别在于元数据的格式。LUKSv2 添加了一些功能,其中之一是经过身份验证的加密,它是 dm-crypt 和 dm-integrity 的组合 - 完整性提供校验和,而 crypt 确保校验和也被加密,因此不可能简单地更改这两个数据以及隐藏更改的校验和(普通完整性不能防止这种情况,它只能用于保护随机数据更改,例如位腐烂)。因此,通过将两种技术与 LUKSv2 相结合来提供经过身份验证的加密 - LUKSv2 标头中的元数据告诉需要如何配置和组合两个设备映射器目标才能获取数据。
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |