stringtranslate.com

Configuración de clave unificada de Linux

La configuración de clave unificada de Linux ( LUKS ) es una especificación de cifrado de disco creada por Clemens Fruhwirth en 2004 y originalmente pensada para Linux .

LUKS implementa un formato estándar en disco independiente de la plataforma para su uso en diversas herramientas. Esto facilita la compatibilidad e interoperabilidad entre diferentes programas y sistemas operativos, y garantiza que todos implementen la gestión de contraseñas de manera segura y documentada. [1]

Descripción

LUKS se utiliza para cifrar un dispositivo de bloques . El contenido del dispositivo cifrado es arbitrario y, por lo tanto, se puede cifrar cualquier sistema de archivos, incluidas las particiones de intercambio . [2] Hay un encabezado sin cifrar al comienzo de un volumen cifrado, que permite almacenar hasta 8 (LUKS1) o 32 (LUKS2) claves de cifrado junto con parámetros de cifrado como el tipo de cifrado y el tamaño de la clave. [3] [4]

La presencia de este encabezado es una diferencia importante entre LUKS y dm-crypt , ya que el encabezado permite utilizar varias frases de contraseña diferentes, con la posibilidad de cambiarlas y eliminarlas. Si el encabezado se pierde o se corrompe, el dispositivo ya no podrá descifrarse. [5]

El cifrado se realiza con un enfoque de múltiples capas. Primero, el dispositivo de bloque se cifra utilizando una clave maestra. Esta clave maestra se cifra con cada clave de usuario activa . [6] Las claves de usuario se derivan de frases de contraseña, claves de seguridad FIDO2 , TPM o tarjetas inteligentes . [7] [8] El enfoque de múltiples capas permite a los usuarios cambiar su frase de contraseña sin volver a cifrar todo el dispositivo de bloque. Las ranuras de clave pueden contener información para verificar las frases de contraseña del usuario u otros tipos de claves.

Existen dos versiones de LUKS: LUKS2 presenta resistencia a la corrupción de encabezados y utiliza la función de derivación de claves Argon2 de manera predeterminada, mientras que LUKS1 utiliza PBKDF2 . [9] La conversión entre ambas versiones de LUKS es posible en ciertas situaciones, pero algunas funciones pueden no estar disponibles con LUKS1, como Argon2. [3] LUKS2 utiliza JSON como formato de metadatos. [3] [10]

Los algoritmos criptográficos disponibles dependen del soporte del kernel individual del host. Libgcrypt se puede utilizar como backend para el hash, que admite todos sus algoritmos. [11] Depende del proveedor del sistema operativo elegir el algoritmo predeterminado. [12] LUKS1 utiliza una técnica anti-forense llamada AFsplitter, que permite el borrado y la protección seguros de los datos. [13]

LUKS con LVM

La gestión de volúmenes lógicos se puede utilizar junto con LUKS. [14]

LVM en LUKS
Cuando se utiliza LVM en un contenedor LUKS desbloqueado, todas las particiones subyacentes (que son volúmenes lógicos LVM) se pueden cifrar con una sola clave. Esto es similar a dividir un contenedor LUKS en varias particiones. La estructura LVM no es visible hasta que se descifra el disco. [15]
LUKS en LVM
Cuando se utiliza LUKS para cifrar volúmenes lógicos LVM, un volumen cifrado puede abarcar varios dispositivos. El grupo de volúmenes LVM subyacente es visible sin necesidad de descifrar los volúmenes cifrados. [16]

Cifrado de disco completo

Instalador de Debian que muestra una opción para particionar automáticamente con LVM en LUKS

Un uso común de LUKS es proporcionar cifrado de disco completo , lo que implica cifrar la partición raíz de una instalación de sistema operativo, lo que protege los archivos del sistema operativo de ser alterados o leídos por partes no autorizadas . [14]

En un sistema Linux, la partición de arranque ( /boot) puede estar cifrada si el propio gestor de arranque admite LUKS (por ejemplo, GRUB ). Esto se hace para evitar la manipulación del núcleo de Linux . Sin embargo, el gestor de arranque de primera etapa o una partición del sistema EFI no se pueden cifrar (consulte Cifrado de disco completo n.º El problema de la clave de arranque ). [14]

En sistemas Linux móviles, postmarketOS ha desarrollado osk-sdl para permitir que un sistema con disco completo cifrado se desbloquee mediante una pantalla táctil.

Para los sistemas que ejecutan systemd , el systemd-homedcomponente se puede utilizar para cifrar directorios de inicio individuales . [17]

Compatibilidad con sistemas operativos

La implementación de referencia para LUKS opera en Linux y se basa en una versión mejorada de cryptsetup , que utiliza dm-crypt como backend de cifrado de disco. En Microsoft Windows , los discos cifrados con LUKS se pueden utilizar a través del Subsistema de Windows para Linux . [18] (Anteriormente, esto era posible con LibreCrypt, [19] que actualmente tiene agujeros de seguridad fundamentales, [20] [21] y que sucedió a FreeOTFE , anteriormente DoxBox).

DragonFly BSD admite LUKS. [22]

Soporte de instalación

Varias distribuciones de Linux permiten cifrar el dispositivo raíz al instalar el sistema operativo. Estos instaladores incluyen Calamares , [23] Ubiquity , [24] Debian-Installer , [25] y más.

Formato en disco

Los encabezados LUKS son compatibles con versiones anteriores; las versiones más nuevas de LUKS pueden leer encabezados de versiones anteriores. [26]

LUKS1

LUKS2

Los dispositivos LUKS2 comienzan con un encabezado binario destinado a permitir el reconocimiento y la detección rápida por parte de blkid , que también contiene información como sumas de comprobación . Todas las cadenas utilizadas en un encabezado LUKS2 son cadenas terminadas en nulo . Directamente después del encabezado binario viene el área JSON, que contiene los objetos config(configuración), keyslots, digests, segments(describe áreas cifradas en el disco) y tokenscontiene metadatos adicionales. [10]

El formato binario de luks2las ranuras de claves regulares es en su mayor parte similar al de su predecesor, con la adición de diferentes algoritmos por ranura de clave. Existe otro tipo de clave para permitir redundancia en caso de que se interrumpa un proceso de reencriptación. [10]

Ejemplos

Cryptsetup es la implementación de referencia del frontend LUKS.

Para cifrar un dispositivo con la ruta /dev/sda1:

# cryptsetup  luksFormat  /dev/sda1

Para desbloquear un dispositivo cifrado, ¿dónde nameestá el nombre del dispositivo asignado ?

# cryptsetup  abre  /dev/sda1  nombre

Reencriptando

La recodificación de un contenedor LUKS se puede realizar con la cryptsetuppropia herramienta o con una herramienta heredada llamada cryptsetup-reencrypt. Estas herramientas también se pueden utilizar para agregar codificación a un sistema de archivos no codificado existente o eliminar la codificación de un dispositivo de bloque. [11] [27]

Ambos métodos tienen una sintaxis similar:

# cryptsetup  vuelve a cifrar  /dev/sda1
# cryptsetup-reencrypt  /dev/sda1

Véase también

Referencias

  1. ^ Fruhwirth, Clemens (20 de enero de 2018). "Especificación de formato en disco LUKS versión 1.2.3" (PDF) . Consultado el 23 de septiembre de 2021 .
  2. ^ "Cifrado de unidades mediante LUKS". Documentos de Fedora . Consultado el 6 de mayo de 2022 .
  3. ^ abc "Capítulo 12. Cifrado de dispositivos de bloque mediante LUKS". Portal del cliente de Red Hat .
  4. ^ "Cómo cifrar un disco duro (partición) usando LUKS en Linux". 27 de febrero de 2019.
  5. ^ "Cómo cifrar tus datos con dm-crypt". Linode . 22 de noviembre de 2022.
  6. ^ Bossi, Simone; Visconti, Andrea (2015). "Lo que los usuarios deben saber sobre el cifrado de disco completo basado en LUKS" (PDF) . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  7. ^ "systemd-cryptenroll - ArchWiki". wiki.archlinux.org . Consultado el 22 de noviembre de 2023 .
  8. ^ "Cómo cifrar un contenedor LUKS utilizando una tarjeta inteligente o un token". 20 de abril de 2014.
  9. ^ "Cómo funciona LUKS con el cifrado de disco completo en Linux". 25 de septiembre de 2021.
  10. ^ abc "on-disk-format-luks2.pdf" (PDF) . 7 de marzo de 2024.
  11. ^ ab cryptsetup(8) –  Manual de comandos privilegiados y administración de Linux
  12. ^ "Rompiendo el cifrado LUKS". eForensics . 21 de agosto de 2020.
  13. ^ "Divisor AF".
  14. ^ abc "dm-crypt/Cifrado de un sistema completo" . Consultado el 6 de mayo de 2022 .
  15. ^ "Arco con LVM en LUKS".
  16. ^ "LUKS en LVM: volúmenes lógicos cifrados y copias de seguridad seguras". 12 de septiembre de 2014.
  17. ^ "Directorios de inicio". systemd .
  18. ^ "Mantenimiento del subsistema de Windows para Linux (WSL) 2 del kernel de Linux". Blogs de desarrolladores de Microsoft . 16 de abril de 2021.
  19. ^ "LibreCrypt". GitHub . 27 de julio de 2022.
  20. ^ "Una falla en el controlador permite la escalada de privilegios. Se solicitan comentarios · Problema n.° 38 · tdk/LibreCrypt". GitHub . 30 de septiembre de 2015.
  21. ^ "El controlador permite escribir en dispositivos arbitrarios · Problema n.° 39 · tdk/LibreCrypt". GitHub . 7 de octubre de 2015.
  22. ^ "Lista de características principales de DragonFly" . Consultado el 6 de mayo de 2022 .
  23. ^ Michael Larabel (8 de mayo de 2016). "El instalador de Calamares agrega compatibilidad con cifrado LUKS". Phoronix .
  24. ^ "Cómo cifrar el disco duro en Ubuntu". Make Tech Easier . 13 de enero de 2017.
  25. ^ "PartmanCrypto". Wiki de Debian . Consultado el 6 de mayo de 2022 .
  26. ^ ab "Especificación de formato en disco LUKS" (PDF) .
  27. ^ "Página de manual CRYPTSETUP-REENCRYPT(8)". man7.org .

Enlaces externos