Logotipo LUKS

Cómo añadir, cambiar o eliminar contraseña en discos cifrados con LUKS

 
 

Índice General

  1. Introducción
  2. Listar las particiones cifradas
  3. Añadir nuevas contraseñas
  4. Eliminar contraseñas
  5. Modificar contraseñas

 

  1. Introducción (Volver al índice General)
    El cifrado de la información es uno de los mecanismos más eficaces para proteger nuestros dispositivos de almacenamiento. Lo más sensato hoy día es cifrar la información de nuestro portátil, ya que en caso de perdida o robo no sabemos en que manos puede acabar. También es aplicable a todo tipo de dispositivos de almacenamiento como discos externos USB, memorias USB (pendrives), etc, que contengan información sensible. Deberían de estar cifrados para evitar que dicha información caiga en manos de personas malintencionadas.

    En este artículo, aprenderemos a gestionar las contraseñas en sistemas cifrados con LUKS. Aprenderemos a añadir nuevas contraseñas y el motivo de porqué es bueno añadirlas, a eliminar contraseñas existentes y como modificarlas. La gestión de contraseñas de dispositivos cifrados con LUKS, es bastante sencillo utilizando el comando cryptsetup.

    cryptsetup es la herramienta para la interfaz de línea de comandos utilizada para interactuar con dm-crypt, para crear, acceder y gestionar dispositivos cifrados. Dicha herramienta evolucionó para admitir diferentes tipos de cifrado que dependen de los módulos del kernel de Linux device-mapper y cryptographic. La evolución más importante fue para la extensión de configuración de clave unificada de Linux (Linux Unified Key Setup, LUKS), la cual almacena toda la información de configuración necesaria para dm-crypt en el propio disco y abstrae la partición y la gestión de contraseñas en un intento por mejorar la facilidad de uso.

  2.  

  3. Listar las particiones cifradas (Volver al índice General)
    Para gestionar las contraseñas, lo primero que tenemos que aprender es saber que particiones son las que llevan cifrado. Para listar las particiones cifradas existen varios comandos, nosotros utilizaremos lsblk.

    Al ejecutar este comando en mi sistema obtuve la siguiente salida:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    $ lsblk -p
    NAME                              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    /dev/sda                            8:0    0 931,5G  0 disk  
    ├─/dev/sda1                         8:1    0   512M  0 part  /boot/efi
    ├─/dev/sda2                         8:2    0   732M  0 part  /boot
    └─/dev/sda3                         8:3    0 930,3G  0 part  
      └─/dev/mapper/sda3_crypt        253:0    0 930,3G  0 crypt     ├─/dev/mapper/mint--vg-root   253:1    0 929,3G  0 lvm   /
        └─/dev/mapper/mint--vg-swap_1 253:2    0   976M  0 lvm   [SWAP]
    /dev/sr0

    En la línea 7 podemos ver que la partición cifrada de mi sistema es la /dev/sda3. Esta información será crucial para añadir, eliminar o modificar las contraseñas a las particiones cifradas.

  4.  

  5. Añadir nuevas contraseñas (Volver al índice General)
    Con LUKS es posible definir hasta 8 contraseñas diferentes por cada partición cifrada. Esto permite crear contraseñas de acceso para guardar una copia de respaldo. Es lo que se llama custodia de clave, una clave se usa para el uso diario y otra se mantiene en custodia para obtener acceso a la partición en caso de que se olvide la frase de contraseña diaria o se pierda o dañe un archivo de claves.
    También se podría usar una contraseña diferente para otorgar acceso temporal a una partición cifrada a un usuario, para luego, revocársela cuando ya no tenga que entrar en el sistema.

    Una vez que se ha creado una partición cifrada, se crea con ella (por defecto) la ranura de claves inicial 0. Las ranuras de claves adicionales están numeradas del 1 al 7. Las ranuras de claves utilizadas se pueden ver ejecutando el siguiente comando:

    1
    2
    3
    4
    5
    6
    7
    8
    
    $ sudo cryptsetup luksDump /dev/sda3 | grep BLED
    Key Slot 0: ENABLEDKey Slot 1: DISABLED
    Key Slot 2: DISABLED
    Key Slot 3: DISABLED
    Key Slot 4: DISABLED
    Key Slot 5: DISABLED
    Key Slot 6: DISABLED

    En la línea 2 podemos ver que la ranura de claves 0 (Key Slot 0) está en uso y es la que contiene la contraseña.

    Puede que la salida de cryptsetup con la acción luksDump sea distinta a la anterior debido a la versión. Si es el caso, podemos listar las ranuras de clave en uso con el siguiente comando:

    1
    2
    3
    
    $ sudo cryptsetup luksDump /dev/sda3 | grep luks2
    0: luks2
    1: luks2

    En este ejemplo, la salida nos indica que hay dos ranuras de claves habilitadas, la 0 y la 1.

    Añadiendo contraseñas
    En el caso de que queramos añadir una nueva contraseña, habrá que agregar nuevas ranuras de claves (keylot). Para agregarlas, utilizaremos el comando cryptsetup con la acción luksAddKey.
    Por razones de seguridad, se solicitará siempre una contraseña válida existente (any passphrase) antes de que se pueda añadir otra nueva.

    En nuestro ejemplo, para añadir una nueva contraseña a la partición /dev/sda3 ejecutaremos el siguiente comando:

    1
    2
    3
    4
    
    $ sudo cryptsetup luksAddKey /dev/sda3
    Escriba una frase de paso existente: Introduzca una contraseña nueva para la ranura de clave: 
    Verificar frase de paso:

    En la línea 2 nos pide que ingresemos una contraseña válida y a continuación, que introduzcamos la contraseña a añadir dos veces. En nuestro ejemplo, una contraseña válida sería la que creamos en el Key Slot 0. Si tras introducir la nueva contraseña el comando no muestra nada, significará que la contraseña se ha añadido satisfactoriamente.

    Si volvemos a listar las ranuras de claves, podremos ver que tras añadir la nueva contraseña, se ha habilitado la ranura de claves 1 (Key Slot 1):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    $ sudo cryptsetup luksDump /dev/sda3 | grep BLED
    Key Slot 0: ENABLED
    Key Slot 1: ENABLEDKey Slot 2: DISABLED
    Key Slot 3: DISABLED
    Key Slot 4: DISABLED
    Key Slot 5: DISABLED
    Key Slot 6: DISABLED
    Key Slot 7: DISABLED
  6.  

  7. Eliminar contraseñas (Volver al índice General)
    El comando cryptsetup posee tres acciones diferentes para eliminar contraseñas:

    • luksRemoveKey: se usa para eliminar una contraseña al especificar su contraseña/archivo de claves.
    • luksKillSlot: puede usarse para eliminar una clave de una ranura de clave específica usando otra clave. Obviamente, esto es muy útil si hemos olvidado una contraseña, perdimos un archivo de claves o no tenemos acceso a él, pero si conocemos la ranura de clave de la contraseña que queremos eliminar.
    • luksErase: se usa para eliminar rápidamente todas las claves activas.

    Atención: Todas las acciones anteriores pueden eliminar irrevocablemente la última contraseña activa para un dispositivo cifrado.
    La acción luksErase no pedirá una contraseña válida. Vacia todas las ranuras de claves de una vez y, por lo tanto, no podremos acceder a menos que tengamos una copia de seguridad válida del encabezado de LUKS.

     

    • Eliminar contraseñas con luksRemoveKey (Volver al índice General)
      Para eliminar una contraseña existente con la acción luksRemoveKey ejecutaremos el siguiente comando:

      1
      2
      
      $ sudo cryptsetup luksRemoveKey /dev/sda3
      Escriba palabra de frase a borrar:

      En nuestro ejemplo, el dispositivo cifrado es /dev/sda3. En la línea 2, se observa que el comando nos pide que ingresemos la contraseña a borrar.

      Nota: Si hubiéramos usado la misma contraseña para dos ranuras de claves, se borrará la primera ranura de claves. Solo ejecutándo de nuevo el comando eliminaremos la segunda.

    •  

    • Eliminar contraseñas con luksKillSlot (Volver al índice General)
      Con la acción luksKillSlot, podemos especificar la ranura de clave que queremos eliminar. En nuestro caso, eliminaremos la contraseña guardada en el Key Slot 1. Para hacerlo, ejecutaremos el siguiente comando

      $ sudo cryptsetup luksKillSlot /dev/sda3 1
      Introduzca cualquier frase contraseña que quede:
    •  

    • Eliminar contraseñas con luksErase (Volver al índice General)
      Como hemos indicado más arriba, con la acción luksErase se eliminarán todas las claves activas. Para hacerlo, ya que nuestra partición cifrada es /dev/sda3, ejecutaremos el siguiente comando:

      1
      2
      3
      4
      5
      6
      7
      8
      
      $ sudo cryptsetup luksErase /dev/sda3
       
      WARNING!
      ========
      Esta operación borrará todas las ranuras de claves en el dispositivo /dev/sda3.El dispositivo quedará inutilizable después de esta operación. 
      Are you sure? (Type uppercase yes):

      Con esta acción, se eliminarán todas las contraseñas de todas las ranuras. No es necesario introducir una contraseña válida, tan solo tendremos que escribir en mayúsculas YES.

      Atención: La orden luksErase no pedirá una contraseña válida, eliminará todas las ranuras de claves de una vez y por lo tanto, no podremos acceder a menos que tengamos una copia de seguridad válida del encabezado de LUKS.

      Si hemos optado por ejecutar esta acción, lamentablemente, no podremos acceder al dispositivo cifrado. Si lo que pretendías era que no accediese nadie incluido TÚ, !Lo has conseguido! Ahora es un dispositivo inaccesible.

  8.  

  9. Modificar contraseñas (Volver al índice General)
    Si nuestra intención es cambiar una contraseña existente, tendremos que utilizar la acción luksChangeKey. En nuestro ejemplo, para modificar una de las claves existentes, ejecutaremos el siguiente comando:

    1
    2
    3
    4
    
    $ sudo cryptsetup luksChangeKey /dev/sda3
    Introduzca la frase contraseña que hay que cambiar:Introduzca una nueva frase contraseña:Verifique la frase contraseña:

    En la línea 2 introducimos la contraseña existente que queremos modificar y en las líneas 3 y 4 introducimos la nueva contraseña.

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.