Diferencia entre revisiones de «Dm-crypt»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
m Revertidos los cambios de 190.188.247.237 (disc.) a la última edición de 2008Carlos
Línea 159: Línea 159:
* [http://www.saout.de/misc/dm-crypt/ Página oficial]
* [http://www.saout.de/misc/dm-crypt/ Página oficial]


[[Categoría:Núcleo Linux]]
[[Categoría:Núcleo de Linux]]
[[Categoría:Criptografía]]
[[Categoría:Criptografía]]
[[Categoría:Seguridad informática]]
[[Categoría:Seguridad informática]]

Revisión del 03:15 8 jun 2009

Dm-crypt es un device-mapper[1]​ tal que provee cifrado transparente de dispositivos de bloque utilizando la nueva cryptoapi de GNU/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.

Configuración del núcleo

Las imágenes estándar del núcleo 2.6 parecen funcionar correctamente. En caso de estar compilando uno propio, estas son las opciones a tomar:

Code maturity level options --->

* on: Prompt for development and/or incomplete code/drivers 

General setup --->

* on: Support for hot-pluggable devices

Device Drivers > Multi-device support (RAID and LVM).

* on: Device mapper support
* on: Crypt target support

Cryptographic options --->

* on: AES cipher algorithms

Los controladores de desarrollo deben estar activados, o no se podrá habilitar el soporte de crypt target para el device-mapper. Habilitar el soporte para dispositivos hot-pluggable construye "udev" en el núcleo, lo cual facilita las tareas. Si se habilita udev, se debe asegurar de no habilitar devfs.

Para asegurarse de que el device-mapper existe, se debe ejecutar la siguiente línea de comando:

ls -L /dev/mapper/control

Si no está el dispositivo mapeado, el mismo será creado al instalar el paquete dmsetup (ver Instalación de Herramientas).

También se debe verificar que se tiene soporte para AES (o cualquiera sea el cifrado que se utilice):

cat /proc/crypto

que debería devolver:

name         : aes
module       : aes
type         : cipher
blocksize    : 16
min keysize  : 16
max keysize  : 32 

Si se está corriendo crypto como módulos, entonces no se verá nada cuando se haga "cat /proc/crypto" hasta que ese módulo sea cargado. cryptsetup es responsable de cargar los módulos necesarios para su ejecución. Si se desea cargar un módulo manualmente, se utiliza el comando:

insmod /lib/modules/2.6.7-1-386/kernel/crypto/aes.ko

o simplemente:

modprobe aes

Instalación de Herramientas

dmsetup

Ejecutar el comando:

apt-get install dmsetup

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

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

apt-get install cryptsetup

Cifrar una partición

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

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 booteo, 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

  1. Device-mapper (mapeo de dispositivos) es una nueva infraestructura en el núcleo de 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

Enlaces externos