Dm-crypt/es

dm-crypt es un sistema de cifrado de discos que utiliza el marco API de cifrado del núcleo y el subsistema mapeador de dispositivos. Con dm-crypt, los administradores no solo pueden cifrar discos enteros, volúmenes lógicos o particiones, sino también ficheros individuales.

El subsistema de dm-crypt da soporte a la estructura Linux Unified Key Setup (LUKS), lo que permite usar múltiples claves para acceder a los datos cifrados, así como manipular las claves (esto es, cambiar las claves, añadir frases de acceso adicionales, etc.). A pesar de que dm-crypt soporta configuraciones no solo para LUKS, este artículo se centrará en la funcionalidad de LUKS, sobre todo debido a su flexibilidad, capacidad de gestión, así como por su amplio apoyo por parte de la comunidad.

Configuración
Hay dos requisitos previos antes de poder comenzar a usar dm-crypt:


 * 1) Configurar el núcleo de Línux.
 * 2) Instalar el paquete.

Configurar el núcleo
Para usar dm-crypt hay una serie de entradas de configuración que deben quedar definidas.

En primer lugar, se debe incluir soporte para la infraestructura del mapeador de dispositivos así como para el objetivo a cifrar:

Luego, el núcleo de Línux necesita tener soporte para el conjunto de las API criptográficas que el administrador desee utilizar para el cifrado. Este se puede encontrar en la sección Cryptographic API:

Si se ha cifrado el sistema de ficheros root, entonces se debe crear un sistema de ficheros RAM inicial en el que el sistema de ficheros root sea descifrado antes de montarlo. Por lo tanto, esto requiere soporte para initramfs:

Instalar cryptsetup
The package provides the  command, which is used to open or close the encrypted storage as well as manage the passphrases or keys associated with it.

Fichero de claves o frase de acceso
In order to start with encrypted storage, the administrator will need to decide which method to use for the encryption key. With the choice is either a passphrase or a keyfile. In case of a keyfile, this can be any file, but it is recommended to use a file with random data which is properly protected (considering that access to this keyfile will mean access to the encrypted data).

To create a keyfile, one can use the command:

En las siguientes secciones, mostraremos todas las órdenes para ambas situaciones —frase de acceso y fichero de claves—. Por supuesto, solo un método es necesario.

Crear una plataforma de almacenamiento encriptada
In order to create an encrypted storage platform (which can be a disk, partition, file, ...) use the command with the   action.

Por ejemplo, para tener como medio de almacenamiento para albergar los datos cifrados:

Para utilizar un fichero de claves, en lugar de una frase de acceso:

The  tells  which keylength to use for the real encryption key (unlike the passphrase or keyfile, which are used to access this real encryption key).

Abrir el almacenamiento encriptado
In order to open up the encrypted storage (i.e. make the real data accessible through transparent decryption), use the  action.

Si se utiliza un fichero de claves, la orden se vería así:

When the command finishes successfully, then a new device file called will be made available. This device file can then be mounted as a regular storage location:

Cerrar el almacenamiento encriptado
In order to close the encrypted storage (i.e. ensure that the real data is no longer accessible through transparent decryption), use the  action:

Por supuesto, asegúrese de que el dispositivo ya no está en uso.

Manipular las claves de LUKS
Las claves de LUKS se utilizan para acceder a la clave de cifrado real. Se almacenan en ranuras (slots) en la cabecera de la de partición (cifrada), disco o fichero.

Listar los slots
With the  action, information about the encrypted partition, disk or file can be shown. This includes the slots:

In the above example, two slots are used. Note that  does not give away anything sensitive - it is merely displaying the LUKS header content. No decryption key has to be provided in order to call.

Añadir un fichero de claves o frase de acceso
In order to add an additional keyfile or passphrase to access the encrypted storage, use the  action:

Para utilizar un fichero de claves para desbloquear la clave (pero aún así, teniendo que añadir una frase de acceso):

If a keyfile is to be added (say ):

O, para usar el primer fichero de claves para desbloquear la clave principal:

Eliminar un fichero de claves o frase de acceso
With the  action, a keyfile or passphrase can be removed (so they can no longer be used to decrypt the storage):

O así, para eliminar un fichero de claves:

Asegúrese de que, al menos, quede un método disponible para acceder a los datos. Una vez que se elimina una frase de acceso o fichero de claves para su uso, este no se puede recuperar de nuevo.

Vaciar un slot
Supongamos que la frase de acceso o fichero de claves ya no se recuerda, entonces la ranura puede ser liberada. Por supuesto, esto requiere un conozcamos previamente cúal es la ranura en la que la frase de acceso o fichero de claves estaba almacenada.

Por ejemplo, para vaciar la ranura 2 (que es la tercera de las ranuras, dado que se enumeran a partir de 0):

Esta orden le pedirá una contraseña válida antes de continuar. O, se puede indicar el fichero de claves que se debe utilizar:

Recursos adicionales

 * Dm-crypt full disk encryption on the Gentoo Wiki provides supplementary information on using encrypted file systems for Gentoo Linux installations
 * The cryptsetup FAQ hosted on gitlab covers a wide range of frequently asked questions.