dm-crypt

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

dm-crypt es un device-mapper[1] tal que provee cifrado transparente de dispositivos de bloque utilizando la nueva cryptoapi de Linux 2.6. Las escrituras a este dispositivo serán cifradas y las lecturas descifradas. Se podrá montar un sistema de archivos en el mismo de la manera habitual, pero no se podrán acceder los datos sin la clave.

Básicamente realiza lo mismo que cryptoloop, con la diferencia que tiene un código mucho más limpio, es más adecuado para satisfacer la necesidad de un dispositivo de bloque, y tiene una interfaz de configuración más flexible. El formato on-disk también es compatible.

En Microsoft Windows, los discos cifrados con dm-crypt pueden ser utilizados con FreeOTFE.

Instalación de Herramientas[editar]

dmsetup[editar]

Ejecutar el comando:

emerge cryptsetup

La instalación de este paquete creará los dispositivos de mapeo si es que no existen.

Verificar que "crypt target" esté soportado:

dmsetup targets
crypt            v1.0.0
striped          v1.0.1
linear           v1.0.1
error            v1.0.1

Si se utiliza un núcleo basado en módulos, será cargado cuando sea necesario.

cryptsetup[editar]

cryptsetup es una herramienta que facilita el uso de dm-crypt, eliminando las llamadas directas a dmsetup.

Cifrar una partición[editar]

Las siguientes instrucciones describen cómo utilizar dm-crypt para crear un sistema de archivos en una partición.

Para crear la partición cifrada, se deben ejecutar los siguientes pasos:

  1. Ejecutar cryptsetup en la partición, lo cual crea un dispositivo de mapeo con target crypt.
  2. Crear el sistema de archivos en el nuevo dispositivo.
  3. Montar del nuevo dispositivo.

En el siguiente ejemplo se transformará el volumen físico /dev/sda3z en el volumen lógico (cifrado) en /dev/mapper/privado (en este caso "privado" es la etiqueta del dispositivo descifrado) y se montará en /var/privado.

Para crear el volumen lógico con la librería cryptsetup:

cryptsetup -y create privado /dev/sda3

El parámetro "-y" fuerza al usuario a ingresar dos veces la clave a utilizar.

O crear el volumen lógico con el script cryptsetup que incluye en Debian el paquete hashalot http://packages.debian.org/unstable/utils/hashalot .

cryptsetup -c aes -h ripemd160 -s 32 create privado /dev/sda3

Para confirmar que se haya ejecutado correctamente:

dmsetup ls
privado (254, 0)

Crear el sistema de archivos:

mkfs.ext3 /dev/mapper/privado

Montar el sistema de archivos:

mount /dev/mapper/privado /var/privado

Uso diario[editar]

Cada vez que se reinicie el sistema operativo, se deberá re-ejecutar el comando cryptsetup e ingresar la misma clave. Si se ingresa una clave incorrecta, el dispositivo cifrado no podrá montarse y tendremos que destruirlo y crearlo otra vez. No hay que preocuparse ya que mientras no se formatee el dispositivo creado con la contraseña incorrecta, no se perderán datos.

Para que el montaje se realice en el arranque, se debe editar el fstab para tener /dev/mapper/privado montado en /var/privado. Esto solo funcionará si cryptsetup es ejecutado antes que las particiones sean leídas de fstab.

/etc/init.d/cryptinit:
if [ -b /dev/mapper/privado ]; then
  /usr/bin/cryptsetup remove privado
fi
/usr/bin/cryptsetup create privado /dev/sda3
 
cd/etc/rcS.d
ln -s../init.d/cryptinit S08cryptinit

Para hacer el montaje manualmente, se puede ejecutar el siguiente script:

if [ -b /dev/mapper/privado ]; then
  /usr/bin/cryptsetup remove privado
fi
/usr/bin/cryptsetup create privado /dev/sda3
mount /dev/mapper/privado /var/privado

Notas[editar]

  1. Device-mapper (mapeo de dispositivos) es una nueva infraestructura en el núcleo Linux 2.6, la cual provee una manera genérica de crear capas virtuales de dispositivos de bloques que puedan realizar diferentes tareas sobre dispositivos de bloques reales, como ser stripping, concatenación, espejado, etc. El device-mapper es utilizado por las herramientas LVM2 y EVMS 2.x.

Véase también[editar]

Enlaces externos[editar]