首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用LUKS1或LUKS2来进行分区加密吗?

我应该使用LUKS1或LUKS2来进行分区加密吗?
EN

Ask Ubuntu用户
提问于 2018-05-05 21:32:00
回答 4查看 57.5K关注 0票数 20

在我的Ubuntu分区上设置LUKS加密的过程中,我在密码设置手册页中遇到了--type luks2选项。据我所读,似乎没有任何理由不使用LUKS2,但是密码设置仍然默认使用LUKS1。

我有什么理由不使用LUKS2吗?

谢谢。

EN

回答 4

Ask Ubuntu用户

发布于 2020-07-15 21:08:38

只要有可能,一定要使用LUKS2。它是较新的头格式,克服了(遗留的) LUKS1头的限制。这是自加密版本2.1以来的默认设置,但这本身并不能说明什么。基于密码的密钥派生函数(PBKDF)是一个很大的变化.

如果使用PBKDF2算法,那么是否有一个LUKS1或LUKS2头并不重要(尽管LUKS2具有更强的弹性,因为它有一个关键数据的备份副本)。加密版本2.0引入的更新的Argon2i或Argon2id算法占用了更多的空间,这就是为什么Argon2不适合更小的LUKS1头的原因。

而且,由于Argon2是一种较新的算法,它可能比PBKDF2更安全,但它的代价是消耗更多内存,同时也需要LUKS2报头。

来自cryptsetup.8手册:

对于PBKDF2,只适用时间成本(迭代次数)。对于Argon2i/id,还有内存开销(密钥派生过程中所需的内存)和并行成本(在密钥派生期间并行运行的线程数)。

由于密码设置2.1默认为较大的LUKS2头,所以它似乎也默认为Argon2i而不是PBKDF2。最近,我在我的Debian上手动创建了一个LUKS分区,当前稳定的10.4 (在本文编写时;在我创建LUKS分区时可能是10.2或10.3 ),并且它被设置为LUKS2 with Argon2i。

问题是,在大多数发行版上,GRUB2都不支持LUKS2 (在本文撰写之时),因此默认安装将(必须)默认为LUKS1,至少如果/boot受到影响,否则无法启动。关于如何在Debian 10 "Buster“上正确地做到这一点,有本指南。Ubuntu最初是基于Debian的,所以它可能类似。诀窍是拥有一个单独的LUKS分区和一个/boot分区,并将这个分区转换回LUKS1 for GRUB2,以找到Linux内核和initramfs。或者,如果根分区包含/boot,并且是LUKS2,则可以将其转换为完整的LUKS1。在这两种情况下,为一个额外的LUKS键槽添加一个keyfile并将这个密钥文件复制到initramfs中(或者配置initramfs以找到密钥文件)是一个好主意。GRUB2将请求/boot的密码,但是当启动内核和initramfs时,必须再次输入密码--如果/boot位于根分区(如果/boot与/boot分区不同,则为/输入相同的密码)。如果initramfs使用密钥文件,则可以避免这种情况,因为密钥文件无论如何都安全地存储在加密的/boot上。

同样值得注意的是:在2020年1月,GRUB2 有补丁能够处理LUKS2头,但只能使用遗留的PBKDF2算法。这里有两个问题。第一种情况是,这样的补丁在发布版本之前需要时间,而在发布之前则需要更多的时间。例如,Debian10.4(稳定分支)仍然有一个旧版本的GRUB2,它无法处理LUKS2。其次,即使使用前面提到的初始LUKS2 2-补丁,Argon2也不受GRUB2的支持。

如果要创建LUKS2 /boot分区,则很有可能默认为Argon2i。对于/boot,您必须在为GRUB2 (使用LUKS-修补程序)创建一个新的键槽时指定--pbkdf pbkdf2以使其工作。

cryptsetup luksAddKey --pbkdf pbkdf2 /dev/<device>

我强烈建议阅读Arch Wiki页面,以获得有关如何使用加密设置和LUKS卷的更多信息。

票数 14
EN

Ask Ubuntu用户

发布于 2018-08-06 01:53:56

根据文件正式草案

LUKS2是用于磁盘存储管理的设置的第二个版本。它是对LUKS1 1,2格式的后续,它扩展了磁盘上格式的功能,并消除了一些已知的问题和缺陷。LUKS1的大部分基本概念仍然按照克莱门斯·弗鲁维思在硬盘加密2中的新方法设计。LUKS在磁盘上的专用区域上提供了一个通用密钥存储,可以使用多个密码短语1来解锁存储的密钥。LUKS2扩展了这一概念,用于更灵活地存储元数据、冗余信息以在元数据区域发生损坏时提供恢复,以及用于存储外部管理的元数据以与其他工具集成的接口。虽然LUKS2的实现将用于基于Linux的dm-crypt 3.磁盘加密,但它是一种通用格式。

基本上,尽管它已经可用,但从用户/定义标准来看,它是一种正在进行的工作格式。进一步的引用2.0.0版本的密码设置官方发行说明,仅仅6个月前(强调我的):

Cryptset2.0.0发行带有实验特性的Notes稳定发行版。此版本引入了一种新的磁盘上LUKS2格式.传统的LUKS (被引用为LUKS1)将永远被完全支持,以及一个传统的、完全向后兼容的格式。注意:这个版本改变了libcryptsetup库的名称,并增加了所有公共符号的主版本。大多数旧函数完全向后兼容,因此只需要重新编译程序。请注意,通过身份验证的磁盘加密、非加密数据完整性保护(dm-完整性)、使用基于Argon2密码的密钥派生功能和LUKS2磁盘上格式本身都是新特性,可能包含一些缺陷。为了提供经过验证的加密的所有安全特性,我们需要内核中更好的当前抗重用算法(请参见下面的说明)。现在,请使用认证加密作为实验特性。如果没有正确配置的备份或需要与旧系统兼容的生产系统,请不要使用LUKS2。

因此,除非您需要新特性之一,否则最好的和最安全的选项是默认/稳定的LUKS1。另一方面,如果您不介意对设置进行一些测试或出现问题,则可以使用LUKS2选项并向密码设置问题跟踪器报告发现的任何问题。

票数 13
EN

Ask Ubuntu用户

发布于 2020-01-22 16:08:02

因此,如果您使用GRUB来解锁到2020年1月10日,GRUB支持LUKS2 2分区或加密的磁盘- GRUB,您就可以使用GRUB。关于特性,请参阅利奥答案

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1032546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档