mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zkey: use default benchmarked Argon2i with LUKS2.
cryptsetup 2.1.0 requires excessive amount of RAM (1GB) to luksOpen encrypted drives (LP: #1820049). LUKS2 introduced support for Argon2i and Argon2id as a Password-Based Key Derivation Function (PBKDF). Argon2 is the winner of Password Hashing Competition and is now officially recommended by RFC 9106. PBKDF2 is currently used in zkey to mitigate out-of-memory errors when multiple LUKS2 volumes are opened automatically via /etc/crypttab. This patch is to use Argon2i (the deflaut algorithm) as key derivation function for LUKS2 volumes, but with options for low memory and time requirements. Using the default Argon2i options might still cause out-of-memory errors. Link: https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/1820049 Closes: https://github.com/ibm-s390-linux/s390-tools/pull/138 Signed-off-by: Frank Heimes <frank.heimes@canonical.com> Acked-by: Ingo Franzki ifranzki@linux.ibm.com [hoeppner@linux.ibm.com: fix whitespace, line break, and commit message] Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
e9d0e267c5
commit
51b9504720
@@ -4312,15 +4312,17 @@ static int _keystore_process_cryptsetup(struct keystore *keystore,
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Use PBKDF2 as key derivation function for LUKS2
|
||||
* volumes. LUKS2 uses Argon2i as default, but this
|
||||
* might cause out-of-memory errors when multiple LUKS2
|
||||
* volumes are opened automatically via /etc/crypttab
|
||||
* Use Argon2i as key derivation function for LUKS2
|
||||
* volumes, but with options for low memory and time requirements.
|
||||
* Using the default Argon2i options might cause out-of-memory
|
||||
* errors when multiple LUKS2 volumes are opened automatically
|
||||
* via /etc/crypttab
|
||||
*/
|
||||
util_asprintf(&cmd,
|
||||
"cryptsetup luksFormat %s%s--type luks2 "
|
||||
"--master-key-file '%s' --key-size %lu "
|
||||
"--cipher %s --pbkdf pbkdf2 %s%s%s",
|
||||
"--cipher %s --pbkdf argon2i --pbkdf-memory 32 "
|
||||
"--pbkdf-force-iterations 4 %s%s%s",
|
||||
info->batch_mode ? "-q " : "",
|
||||
keystore->verbose ? "-v " : "",
|
||||
key_file_name, key_file_size * 8,
|
||||
|
||||
13
zkey/zkey.1
13
zkey/zkey.1
@@ -734,13 +734,12 @@ type, this is the default. If specified for the plain volume type, then no
|
||||
command is generated.
|
||||
.P
|
||||
For LUKS2 volumes, the generated \fBcryptsetup luksFormat\fP contains
|
||||
option \fB\-\-pbkdf pbkdf2\fP to set \fBPBKDF2\fP as password based key
|
||||
derivation function. LUKS2 volumes typically default to \fBArgon2i\fP as
|
||||
password based key derivation function, but this might cause out-of-memory
|
||||
errors when multiple encrypted volumes are unlocked automatically at boot
|
||||
through /etc/crypttab. Because PAES uses secure AES keys as volume keys, the
|
||||
security of the key derivation function used to encrypt the volume key in the
|
||||
LUKS key slots is of less relevance.
|
||||
options \fB-\-pbkdf argon2i \-\-pbkdf\-memory 32 \-\-pbkdf\-force\-iterations 4
|
||||
\fP for low memory and time requirements. Using the default \fBArgon2i\fP
|
||||
options might cause out-of-memory errors when multiple encrypted volumes are
|
||||
unlocked automatically at boot through /etc/crypttab. Because PAES uses secure
|
||||
AES keys as volume keys, the security of the key derivation function used to encrypt
|
||||
the volume key in the LUKS key slots is of less relevance.
|
||||
.P
|
||||
For LUKS2 volumes, a passphrase is required. You are prompted for the
|
||||
passphrase when running the generated commands, unless option
|
||||
|
||||
Reference in New Issue
Block a user