-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TW] Use LUKS2 and offer TPM-auth in installer #1088
Comments
Please also see https://en.opensuse.org/SDB:Encrypted_root_file_system#Unattended_boot_with_TPM_2.0 for implementation-details of unattended boot with TPM. |
Are there any news, or do you need any additional information? |
We are working on adding TPM unlocking via fdetools to YaST. In the first version, it will only be available for AutoYaST for the very same reasons LUKS2 is hidden behind the So stay tuned for news. |
Thanks Ancor for the update! But after the TPM enablement is already in progress, it should be fine to wait till everything is in place, before moving it to the "regular" installer. |
Yes. But that could give users a false sense of security. Since LUKS2 with PBKDF2 is not really more secure than LUKS1. |
any news on this one? With systemd-boot, encryption can safely use luks2 with argon |
Given that luks2 metadata is precondition for many other features systemd brings such as TPM, FIDO2 and recovery keys, and grub2 argon support is still not there even after more than six months, maybe we need to reconsider. I'm not a huge fan of a non-default luks2 setup ie using it with pbkdf2 but luks1 is really getting in our way now. |
That is true but defaulting to LUKS2 always will help us to introduce the FDE based on systemd that we have for MicroOS / TW. The selection of using the default Argon2 or downgrade to PBKDF2 can be done later, when the user select systemd or grub based fde. In any case LUKS2 is an invariant. |
In Agama we are already going for LUKS2 with PBKDF2 (with TPM unlocking if possible and chosen by the user). See agama-project/agama#995 (still not merged). I guess the same (forcing PBKDF2) is acceptable for TW installed with YaST. |
So what's needed to move this forward? |
Ok. Time for next steps. Sorry for not being responsive, but I was busy with other stuff (Agama-related, mostly). Bringing TPM-auth to YaST would be quite some work. I will summarize below everything that is missing in case somebody wants to try. But unleashing LUKS2 in YaST for TW should not be much of a problem, so I think it's time to take the next steps. Introducing LUKS2 support
Using a role to adjust the configuration (both encryption method of the Guided Setup and default bootloader) is much preferred over #1109. Adding the password field to that hidden dialog and then passing it to the Guided Proposal is indirect and insecure. Introducing support for TPM-based unlockingAs mentioned above, I think this would need more work for the following reasons:
|
Could we just make luks2 with pbkdf the default? Roles are already used for desktop selection IIRC. So unless there are layers of roles we'd have to duplicate all of them to offer FDE. |
I guess we could. But I would also do this part then:
Right now, the default pbkdf2 is a setting of the storage proposal (a.k.a. Guided Setup). I would make the Expert Partitioner also honor that setting. |
Ok, sure. If there isn't one central place that sets the default kdf everywhere then lets change all places. |
(the sd-boot path would still need to switch to argon2) |
But then when and where should be the password input by the user ? |
I have tried to summaries the points: General
Details
I will start with 1. because we will need it anyway and it is not depending on the decision how we are going on. |
My own summary :-)
|
I actually had a
I kind of assumed that the default would be in native code that has some equivalent of a configure script. However looks like it's several places in Ruby. No idea how to do a proper build time default there. I really don't think this needs to be runtime configurable. LUKS1 is dead. The only reason for yast to keep it around is SLE15 compat. Going forward there is no need to give the user a choice for LUKS1. |
I fail to see the logic here. There are two kinds of FDE as now:
The user space encryption is agnostic of the bootloader: you can use grub2 (+bls patch) or systemd-boot. For user safety seems more logical to default to LUKS2 + argon2id unless the grub-base encryption is selected. Or what am I missing? |
The idea would be to start with the most simple and least intrusive change to get this issue moving at all finally. So first switch to the smallest common denominator of both setups, ie luks2+pbkdf2. Then we can improve the logic from there. |
Ok, I have tried to fulfill Ancors requirements of Lets see, if we are going the right way: @ancorgs it would be nice if you can check it. |
While the YaST-installer in Tumbleweed still uses LUKS1 for Full Disk Encryption as default (to enable LUKS2 you have to add "YAST_LUKS2_AVAILABLE=1" as kernel command line option), Agama on ALP already supports LUKS2 with the additional authentication mechanism via TPM2.0.
With the last SRs (sr#1090915 and sr#1090821) being accepted into Factory, the sources in ALP and Factory are finally in sync and IMHO it would be a good time to do the switch from LUKSv1 to v2 with the same defaults as we have in ALP.
While grub2 currently does not support Argon2, we are currently tied to use PBKDF2 as encryption-algorithms. Nevertheless, there are also plans to introduce Argon2 support.
Therefore, it would be nice if the functionality could be easily extended to select an Algorithm in the future.
Please let me know if you need any additional information.
The text was updated successfully, but these errors were encountered: