secure-os.org

LUKS: cifrado de disco completo en Linux — guía completa (2026)

published 12 de junio de 2026 · #luks #cifrado #linux #dm-crypt

Diagrama de la estructura de partición LUKS2 con capa dm-crypt y comandos cryptsetup en terminal oscuro

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:

  1. 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.
  2. Ranuras de claves: cada ranura contiene una copia cifrada independientemente de la clave maestra.
  3. 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ísticaLUKS2VeraCryptBitLocker
PlataformaSolo LinuxLinux/Win/macOSSolo Windows
Volúmenes ocultosNoNo
Integración TPMSí (systemd-cryptenroll)NoSí (nativo)
Ranuras multi-clave32512Limitado
KDFArgon2id / PBKDF2PBKDF2 / Argon2PBKDF2

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.