zkey: Add support to store LUKS2 dummy passphrase in key repository

Extend zkey to allow to store a (dummy) LUKS2 passphrase together with a
secure key, for use with LUKS2 volumes. That way, when the repository is
backed up, or archived, also the passphrases of the associated LUKS2
volumes are backed up, or archived, and thus can not be forgotten.
This passphrase is then used in generated commands to format and open
the LUKS2 volumes.

Because of the use of secure keys to encrypt the volumes, the LUKS2
passphrase is of no or less relevance for security. It is therefore OK to
store the passphrase in clear text in the key repository, and also use
them in /etc/crypttab. Therefore, the passphrase could actually be a
trivial passphrase, or a dummy passphrase.

Note: Such a dummy passphrase is NOT considered a secret that needs to
be protected. If for a certain usage the passphrase is of relevance for
security, then the zkey dummy passphrase option must not be used to store
the passphrase.

Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Ingo Franzki
2020-11-23 16:35:21 +01:00
committed by Jan Höppner
parent c239d99379
commit 7c47ea8e09
8 changed files with 954 additions and 52 deletions
+7
View File
@@ -77,4 +77,11 @@ bool prompt_for_yes(bool verbose);
char *printable_mkvp(enum card_type cardtype, u8 *mkvp);
int copy_file(const char *in_file_name, const char *out_file_name,
size_t num_bytes);
char *read_passphrase_as_base64(const char *filename, bool verbose);
int store_passphrase_from_base64(const char *hex_string, const char *filename,
bool verbose);
#endif