Recuperación de Datos de Discos Cifrados con LUKS en Linux

Resumen del artículo

Compartir:

Recuperación de Datos de Discos Cifrados con LUKS en Linux

LUKS (Linux Unified Key Setup) es el estándar de cifrado de disco completo en Linux, usado en Ubuntu, Debian, Fedora y la mayoría de distribuciones modernas. Cuando la cabecera LUKS se corrompe o el disco falla físicamente, los datos cifrados se vuelven inaccesibles incluso con la contraseña correcta. La recuperación requiere técnicas especializadas que combinan criptografía y recuperación forense.

Arquitectura de LUKS: cabecera, key slots y master key

Para entender cómo se recuperan datos de un disco LUKS, es imprescindible comprender su arquitectura interna. LUKS añade una capa de metadatos al inicio del dispositivo de bloque antes del área de datos cifrados.

La cabecera LUKS

La cabecera LUKS ocupa los primeros sectores del dispositivo (antes del área de datos). Contiene:

  • Magic bytes: La firma LUKS\xba\xbe que identifica el dispositivo como LUKS.
  • Versión: 1 o 2, que determina el formato completo de la cabecera.
  • UUID del dispositivo: Identificador único del volumen cifrado.
  • Algoritmo de cifrado: Por defecto aes-xts-plain64 en instalaciones modernas.
  • Función de derivación de clave (KDF): PBKDF2 en LUKS1, Argon2id en LUKS2 por defecto.
  • Master key (cifrada): La clave maestra que descifra los datos, almacenada cifrada en cada key slot activo.

Los key slots: cómo funciona el sistema de múltiples contraseñas

LUKS implementa un diseño ingenioso: los datos no se cifran directamente con la contraseña del usuario. En cambio:

  1. Se genera una master key aleatoria de 256-512 bits que cifra todos los datos del volumen.
  2. La master key se cifra con la contraseña del usuario mediante la KDF (para generar la KEK, Key Encryption Key).
  3. La master key cifrada se almacena en un key slot.

LUKS1 soporta hasta 8 key slots. LUKS2 soporta hasta 32 key slots. Cada key slot puede contener la master key cifrada con una contraseña diferente, lo que permite tener múltiples contraseñas o claves de recuperación para el mismo volumen.

Cuando introduces la contraseña, LUKS prueba todos los key slots activos hasta encontrar uno que descifre correctamente la master key. Una vez obtenida la master key, se descifran los datos independientemente de qué slot se haya usado.

LUKS1 vs LUKS2: diferencias críticas para la recuperación

CaracterísticaLUKS1LUKS2
Tamaño de cabecera~1 MB (fijo)Variable, por defecto 16 MB
Key slotsHasta 8Hasta 32
KDF por defectoPBKDF2 (SHA1/SHA256)Argon2id (resistente a GPU)
Copia de cabeceraNo (cabecera única)Sí (cabecera secundaria al final del área de metadatos)
Integridad de datosNoOpcional (dm-integrity)
Detección de manipulaciónNoSí (con integridad activada)
Soporte en kernels antiguosDesde kernel 2.6Desde kernel 4.12

La diferencia más importante para recuperación es que LUKS2 incluye una copia de seguridad de la cabecera dentro del propio dispositivo. Si la cabecera primaria (inicio del disco) se corrompe, LUKS2 puede usar la cabecera secundaria. LUKS1 no tiene esta protección: si la cabecera se pierde, los datos son criptográficamente irrecuperables sin una copia de seguridad externa.

La capa dm-crypt: cómo Linux gestiona el cifrado

LUKS no cifra los datos directamente: es la fachada de configuración sobre dm-crypt, el módulo de cifrado del kernel Linux. El flujo es:

  1. cryptsetup luksOpen lee la cabecera LUKS, verifica la contraseña y extrae la master key.
  2. Se crea un dispositivo de mapeado (/dev/mapper/nombre) que representa el volumen descifrado.
  3. Todas las lecturas/escrituras al dispositivo mapeado pasan por dm-crypt, que aplica el cifrado/descifrado al vuelo usando la master key en memoria RAM.
  4. El sistema de archivos (ext4, btrfs, XFS) se monta sobre el dispositivo mapeado.

Esto tiene una implicación importante: dm-crypt no añade ninguna cabecera propia a los datos. Sin la master key obtenida desde la cabecera LUKS, los datos del volumen son indistinguibles de ruido aleatorio.

Escenarios de fallo en discos LUKS

1. Cabecera LUKS corrupta — el escenario más crítico

La cabecera LUKS está ubicada en los primeros sectores del disco, que son los más propensos a corrupción por:

  • Instalación accidental de otro sistema operativo sobre el disco (MBR/GPT sobrescrito)
  • Uso de dd o herramientas de clonado que sobreescriben el inicio del disco
  • Redimensionamiento incorrecto de particiones que invade el espacio de la cabecera
  • Sectores dañados físicamente precisamente en el área de la cabecera

Si la cabecera LUKS1 se corrompe y no existe copia de seguridad (cryptsetup luksHeaderBackup), la recuperación es criptográficamente imposible. La master key está cifrada dentro de la cabecera; sin ella no hay forma de descifrar los datos aunque se conozca la contraseña. En LUKS2, la cabecera secundaria puede permitir la recuperación si está intacta.

2. Fallo físico del disco con cabecera intacta

Este es el escenario más favorable para la recuperación. Si el disco falla físicamente (sectores dañados en el área de datos, fallo mecánico parcial) pero la cabecera LUKS y los key slots están en sectores sanos:

  1. Se extrae la cabecera LUKS (cryptsetup luksHeaderBackup o copia manual de los primeros MB)
  2. Se realiza recuperación física del disco (limpieza de cabezas en sala limpia si es necesario)
  3. Se crea imagen sector a sector del disco averiado gestionando sectores ilegibles
  4. Se abre el contenedor LUKS sobre la imagen con la contraseña conocida
  5. Se recuperan los archivos del sistema de archivos interno usando herramientas de recuperación estándar

3. Passphrase olvidada o perdida

Si se pierde la contraseña y no existe ninguna copia de la master key, la recuperación mediante fuerza bruta es prácticamente inviable para contraseñas robustas, gracias precisamente al diseño de la KDF (PBKDF2 o Argon2id están diseñadas para ser lentas). Sin embargo, si la contraseña era débil o sigue un patrón conocido, el ataque de diccionario puede tener éxito. Esto no es algo que ofrezcamos como servicio, ya que aplicaría únicamente si el cliente es el legítimo propietario y puede acreditarlo.

4. Key slot agotamiento

LUKS1 tiene solo 8 key slots. Si todos están ocupados y el usuario intenta añadir una nueva contraseña (p. ej., para un key file de recuperación), recibe error. Si además olvida una contraseña de un slot que pensaba no usar, puede quedarse con acceso limitado. La solución es revocar slots no usados (cryptsetup luksKillSlot) mientras se tiene acceso.

Cómo hacer y restaurar copias de seguridad de cabecera LUKS

La operación más importante para la resiliencia de un volumen LUKS cifrado es mantener una copia de la cabecera:

Crear copia de seguridad

Para crear una copia de la cabecera LUKS en un archivo:

sudo cryptsetup luksHeaderBackup /dev/sdX --header-backup-file /ruta/segura/backup-luks-header.img

Este archivo contiene todos los key slots con la master key cifrada. Debe guardarse en un lugar seguro y separado del dispositivo cifrado (nunca en el mismo disco). Si el archivo cae en manos equivocadas junto con la contraseña, los datos pueden descifrarse.

Restaurar la cabecera

Si la cabecera se ha dañado pero existe una copia:

sudo cryptsetup luksHeaderRestore /dev/sdX --header-backup-file /ruta/backup-luks-header.img

Después de restaurar la cabecera, el volumen puede abrirse con la contraseña original como si nada hubiera ocurrido.

Recuperación con passphrase conocida pero disco dañado

Cuando el cliente conoce la contraseña pero el disco tiene daño físico, el proceso de recuperación combina técnicas de recuperación hardware con la criptografía LUKS:

  1. Evaluación del daño: Determinamos si la cabecera LUKS está en sectores legibles. Los primeros 16 MB del disco (para LUKS2) son críticos.
  2. Clonado con gestión de errores: Usamos herramientas especializadas (ddrescue, PC-3000) que intentan múltiples veces los sectores dañados y generan un mapa de sectores buenos/malos.
  3. Verificación de cabecera: Comprobamos que la imagen clonada contiene una cabecera LUKS válida con cryptsetup luksDump imagen.img.
  4. Apertura del contenedor: Si la cabecera está íntegra, abrimos el contenedor LUKS sobre la imagen con la contraseña proporcionada por el cliente.
  5. Recuperación del sistema de archivos: Sobre el dispositivo descifrado, aplicamos herramientas de recuperación estándar (TestDisk, ext4magic, photorec) para los sectores dañados dentro del volumen.

LUKS en instalaciones estándar de Ubuntu y Debian

Las instalaciones modernas de Ubuntu (desde 18.04) y Debian (desde Debian 10) ofrecen cifrado de disco completo con LUKS durante la instalación. La configuración típica crea:

  • Una partición /boot sin cifrar (necesaria para cargar el kernel y initramfs)
  • Un contenedor LUKS que engloba un grupo LVM (Logical Volume Manager)
  • Dentro del LVM: volumen lógico raíz (/) y volumen de swap cifrado

Esta arquitectura LUKS-on-LVM significa que la recuperación requiere dos pasos: primero abrir el contenedor LUKS para obtener el dispositivo descifrado, después activar el grupo LVM para acceder a los volúmenes lógicos individuales.

Limitaciones absolutas del cifrado LUKS

Es importante ser completamente transparentes sobre lo que es recuperable y lo que no:

  • Sin cabecera LUKS1 y sin copia de seguridad: Los datos son criptográficamente irrecuperables. Ningún laboratorio del mundo puede descifrar AES-256-XTS sin la master key.
  • Sin contraseña/key file y sin copia de master key: Igualmente irrecuperable para contraseñas robustas. El cifrado funciona exactamente como está diseñado: protegiendo los datos incluso del laboratorio de recuperación.
  • Con cabecera LUKS2 y disco físicamente dañado: La cabecera secundaria de LUKS2 puede permitir la recuperación si está en una zona del disco no dañada.
  • Con cabecera intacta y daño solo en datos: Alta probabilidad de recuperación parcial o total, dependiendo de la extensión del daño físico.

Recomendaciones previas para proteger un volumen LUKS

Las mejores prácticas que recomendamos a administradores Linux que usan LUKS:

  • Hacer copia de cabecera inmediatamente tras crear el volumen: cryptsetup luksHeaderBackup y guardar en lugar seguro y separado.
  • Usar LUKS2 en lugar de LUKS1: La cabecera secundaria integrada de LUKS2 proporciona una primera línea de defensa contra corrupción de cabecera.
  • Configurar un key slot de recuperación con key file: Un archivo de claves aleatorio guardado en un medio seguro separado permite recuperar el acceso si se olvida la contraseña.
  • No almacenar la copia de cabecera en el mismo disco cifrado: Es el error más común y hace inútil el backup.
  • Documentar la versión LUKS, el algoritmo y el UUID: Esta información es útil para acelerar la recuperación en caso de emergencia.

¿Necesitas recuperar datos?

Nuestro equipo técnico puede ayudarte. Diagnóstico gratuito en 4 horas, sin compromiso.

  • Precio: Desde 250€ + IVA — sin recuperación, sin coste
  • Plazo: 4–12 días laborables (urgente: 24–48 h)
  • Teléfono: 900 899 002
  • Certificación: ISO 9001 e ISO 27001 (AENOR)

Escrito por

Técnico Especialista

Técnico en Recuperación de Datos — RecuperaTusDatos

Técnico certificado con más de 12 años de experiencia en recuperación de datos de discos duros, SSD, RAID, memorias flash y dispositivos móviles. Laboratorio propio con sala limpia ISO Clase 5, sin intermediarios.

ISO 9001 ISO 27001 Certificado
Publicado: 17/01/2026 7 min de lectura

Servicio disponible en toda España — Recogida gratuita en 24h

Recibe consejos y alertas de recuperación de datos

Guías prácticas, novedades y consejos para proteger tus datos. Sin spam.

Entérate de todo lo nuevo

Técnica Ingeniería y Robótica Aplicada S.L. como responsable del tratamiento tratará tus datos con la finalidad de dar respuesta a tu consulta o petición. Puedes acceder, rectificar y suprimir tus datos, así como ejercer otros derechos consultando la información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.

Prometemos enviarte sólo información interesante.

Diagnóstico gratuito 900 899 002 WhatsApp WhatsApp
Llamar Te llamamos Diagnóstico

¿Necesitas recuperar datos?

Diagnóstico 100% gratuito y sin compromiso.
Si no recuperamos tus datos, no cobramos.

Solicitar diagnóstico gratuito