Frequently Asked Question

What is LUKS full-disk encryption and when do I need it?

LUKS, the Linux Unified Key Setup, is the standard on-disk format for block-device encryption on Linux, sitting on top of the kernel's dm-crypt driver. It encrypts a partition (or whole disk) using AES-XTS by default, derives the data-encryption key from a passphrase via a deliberately slow key-derivation function (Argon2id in LUKS2), and supports up to eight passphrase or keyfile slots so multiple admins can each have their own credential. The userland tool is cryptsetup.

The threat LUKS addresses is physical: a stolen laptop, a decommissioned server whose disks were not wiped, a phone left in a taxi. Once the machine is powered off, the data on disk is a meaningless block of ciphertext until someone supplies a valid key. What LUKS does not protect against is a running machine with the volume already unlocked, at that point the data is plaintext to the kernel, or an attacker who can coerce or capture the passphrase.

For laptops and any machine that physically leaves a controlled facility, encrypt the root volume during installation; every major distribution has a check-box for it. For servers in a datacentre, encrypt at least the volumes that hold private keys, customer data, and backups, and consider TPM-backed automatic unlocking (systemd-cryptenroll --tpm2-device=auto) so reboots do not require a human at the console.

Further reading and video