LUKS: cifrado de disco completo en Linux — guía completa (2026)
published 12 de junio de 2026 · #luks #cifrado #linux #dm-crypt
LUKS (Linux Unified Key Setup) es el formato de cifrado de disco estándar para Linux, construido sobre el módulo del kernel dm-crypt. Es la capa de cifrado utilizada por defecto cuando seleccionas “cifrar disco” durante la instalación en Fedora, Ubuntu, Debian y la mayoría de las distribuciones principales.
Esta guía cubre LUKS2, la versión de formato actual (introducida en cryptsetup 2.0.0, 2018). Las instalaciones nuevas siempre deben usar LUKS2.
Cómo funciona LUKS
LUKS crea una estructura en disco que consta de:
- Un encabezado con metadatos: el algoritmo de cifrado, la configuración de la función de derivación de claves (KDF), y hasta 32 ranuras de claves.
- Ranuras de claves: cada ranura contiene una copia cifrada independientemente de la clave maestra.
- El área de datos masivos: los datos cifrados reales.
La implicación crítica: el encabezado LUKS es el punto único de fallo para la recuperación de datos. Si el encabezado se corrompe o sobreescribe, los datos cifrados son irrecuperables. La copia de seguridad del encabezado no es opcional.
Crear un contenedor LUKS2
# Formatear una partición como LUKS2 con AES-XTS-512 y KDF Argon2id
sudo cryptsetup luksFormat --type luks2 \
--cipher aes-xts-plain64 \
--key-size 512 \
--hash sha256 \
--pbkdf argon2id \
--pbkdf-memory 1048576 \
--pbkdf-time 5000 \
/dev/sdX2
Abrir y usar el contenedor
sudo cryptsetup open /dev/sdX2 cryptdata
sudo mkfs.ext4 /dev/mapper/cryptdata
sudo mount /dev/mapper/cryptdata /mnt/data
Cerrar el contenedor
sudo umount /mnt/data
sudo cryptsetup close cryptdata
Crítico: copia de seguridad y restauración del encabezado
# Crear copia de seguridad del encabezado
sudo cryptsetup luksHeaderBackup /dev/sdX2 \
--header-backup-file luks-header-backup-$(date +%Y%m%d).bin
Almacena este archivo de copia de seguridad en al menos dos ubicaciones: una copia sin conexión y una copia en la nube con cifrado independiente.
Restaurar un encabezado dañado
sudo cryptsetup luksHeaderRestore /dev/sdX2 \
--header-backup-file luks-header-backup-20260612.bin
Gestión de ranuras de claves
# Añadir una nueva frase de contraseña
sudo cryptsetup luksAddKey /dev/sdX2
# Añadir un archivo de claves
sudo cryptsetup luksAddKey /dev/sdX2 /ruta/al/keyfile.bin
# Eliminar por frase de contraseña
sudo cryptsetup luksRemoveKey /dev/sdX2
# Ver ranuras activas
sudo cryptsetup luksDump /dev/sdX2 | grep -A3 "Keyslot"
Desbloqueo automático por TPM
En sistemas con un chip TPM2, configura el desbloqueo automático sin frase de contraseña en el arranque con systemd-cryptenroll:
sudo systemd-cryptenroll --tpm2-device=auto /dev/sdX2
# Opcionalmente vincular a valores PCR
sudo systemd-cryptenroll --tpm2-device=auto \
--tpm2-pcrs=0+7 \
/dev/sdX2
Benchmarks de rendimiento
En un SSD NVMe moderno con un procesador que soporta instrucciones hardware AES-NI, AES-XTS-512 a través de dm-crypt añade aproximadamente 2–8% de sobrecarga para cargas de trabajo secuenciales.
Prueba tu hardware específico:
sudo cryptsetup benchmark
LUKS2 vs VeraCrypt vs BitLocker
| Característica | LUKS2 | VeraCrypt | BitLocker |
|---|---|---|---|
| Plataforma | Solo Linux | Linux/Win/macOS | Solo Windows |
| Volúmenes ocultos | No | Sí | No |
| Integración TPM | Sí (systemd-cryptenroll) | No | Sí (nativo) |
| Ranuras multi-clave | 32 | 512 | Limitado |
| KDF | Argon2id / PBKDF2 | PBKDF2 / Argon2 | PBKDF2 |
Para una comparación detallada, consulta la guía de VeraCrypt. Para el marco de decisión más amplio, consulta la comparación Qubes vs Tails vs Whonix.
Preguntas frecuentes
P: Si olvido mi frase de contraseña LUKS, ¿son los datos irrecuperables? R: Sí — ese es el diseño. Si ninguna ranura de claves tiene una frase de contraseña válida, la clave maestra es inaccesible. Por eso mantener una ranura de clave de recuperación (con una segunda frase de contraseña robusta almacenada sin conexión) es esencial.
P: ¿Cómo añado cifrado LUKS a una partición existente sin cifrar sin pérdida de datos?
R: La herramienta cryptsetup-reencrypt soporta el cifrado en su lugar de datos existentes. Es estable desde cryptsetup 2.4.0 pero requiere una preparación cuidadosa: una copia de seguridad completa antes de comenzar.
P: ¿El cifrado LUKS protege un sistema Linux en hibernación? R: Parcialmente. Si la partición de intercambio también está cifrada con LUKS, la imagen de hibernación en disco está cifrada. Consulta la guía de hardening de Linux para la configuración del cifrado del intercambio.