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 destinada a Linux .

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

Descripción

LUKS se utiliza para cifrar un dispositivo de bloque . 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 clave. [3] [4]

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

El cifrado se realiza con un enfoque multicapa. Primero, el dispositivo de bloque se cifra mediante 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 multicapa permite a los usuarios cambiar su frase de contraseña sin volver a cifrar todo el dispositivo de bloque. Las ranuras de claves pueden contener información para verificar frases de contraseña de usuario u otros tipos de claves.

Hay 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 forma predeterminada, mientras que LUKS1 usa PBKDF2 . [9] La conversión entre ambas versiones de LUKS es posible en determinadas situaciones, pero es posible que algunas funciones no estén disponibles con LUKS1, como Argon2. [3] LUKS2 utiliza JSON como formato de metadatos. [3] [10]

Los algoritmos criptográficos disponibles dependen del soporte individual del kernel del host. Libgcrypt se puede utilizar como backend para hash, que admite todos sus algoritmos. [11] Depende del proveedor del sistema operativo elegir el algoritmo predeterminado. [12] LUKS1 utiliza una técnica antiforense 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 única clave. Esto es similar a dividir un contenedor LUKS en múltiples 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 descifrar los volúmenes cifrados. [dieciséis]

Cifrado de disco completo

Debian-Installer que muestra una opción para la partición automatizada con LVM en LUKS

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

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

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

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

Soporte del sistema operativo

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 motor 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 es compatible con LUKS. [22]

Soporte del instalador

Varias distribuciones de Linux permiten cifrar el dispositivo raíz durante la instalación del 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 verificació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( segmentsdescribe áreas cifradas en el disco) y tokenscontiene metadatos adicionales. [10]

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

Ejemplos

Cryptsetup es la implementación de referencia de la interfaz 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

Volver a cifrar

Se puede volver a cifrar un contenedor LUKS con la cryptsetuppropia herramienta o con una herramienta heredada llamada cryptsetup-reencrypt. Estas herramientas también se pueden utilizar para agregar cifrado a un sistema de archivos no cifrado existente o eliminar el cifrado de un dispositivo de bloque. [11] [27]

Ambos métodos tienen una sintaxis similar:

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

Ver 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 el disco duro (partición) usando LUKS en Linux". 27 de febrero de 2019.
  5. ^ "Cómo cifrar sus datos con dm-crypt". Linodo .
  6. ^ Bossi, Simone; Visconti, Andrea (2015). "Lo que los usuarios deben saber sobre el cifrado completo de disco basado en LUKS" (PDF) . {{cite journal}}: Citar diario requiere |journal=( ayuda )
  7. ^ "systemd-cryptenroll - ArchWiki". wiki.archlinux.org . Consultado el 22 de noviembre de 2023 .
  8. ^ "Cómo cifrar un contenedor LUKS mediante una tarjeta inteligente o un token". 20 de abril de 2014.
  9. ^ "Cómo funciona LUKS con Full Disk Encryption en Linux". 25 de septiembre de 2021.
  10. ^ abc "formato-en-disco-luks2.pdf" (PDF) .
  11. ^ ab cryptsetup(8) -  Manual de administración de Linux y comandos privilegiados
  12. ^ "Romper el cifrado LUKS". eForense . 21 de agosto de 2020.
  13. ^ "Divisor de AF".
  14. ^ abc "dm-crypt/Cifrar 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". sistemad .
  18. ^ "Servicio del subsistema de Windows para Linux (WSL) 2 Kernel de Linux". Blogs de desarrolladores de Microsoft . 16 de abril de 2021.
  19. ^ "LibreCrypt". GitHub . 27 de julio de 2022.
  20. ^ "Un fallo en el controlador permite la escalada de privilegios. Se buscan comentarios · Número 38 · tdk/LibreCrypt". GitHub . 30 de septiembre de 2015.
  21. ^ "El controlador permite escribir en dispositivos arbitrarios · Número 39 · tdk/LibreCrypt". GitHub . 7 de octubre de 2015.
  22. ^ "Lista de funciones principales de DragonFly" . Consultado el 6 de mayo de 2022 .
  23. ^ Michael Larabel (8 de mayo de 2016). "El instalador de Calamares agrega soporte de cifrado LUKS". Forónix .
  24. ^ "Cómo cifrar su disco duro en Ubuntu". Facilite la tecnología . 13 de enero de 2017.
  25. ^ "PartmanCrypto". WikiDebian . 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