Dispositivo virtual encriptado

Si queremos guardar datos por ejemplo en nuestro ordenador portatil (o quizás en un llavero USB) y esta información es personal, llevarla directamente en el disco duro sin ningún tipo de protección no es nada recomendable. A pesar de que tengamos nuestro sistema protegido por password, si algún atacante nos roba el protatil podrá extraer el disco duro y obtener la información desde otro ordenador.

En GNU/Linux existe la posibilidad de crear un archivo de tamaño fijo, por ejemplo de 100 MB:

dd if=/dev/zero of=/home/user/crloop bs=1M count=100

Entonces, podemos utilizar este archivo como si de una partición más del sistema se tratase y además hacer que la información que contenga se encuentre encriptada. Esta técnica se suele denominar crypto-loops.

Para conseguirlo en Ubuntu deberemos cargar los módulos:

modprobe loop
modprobe dm-crypt

Y además instalar una aplicación que nos facilitará la tarea:

apt-get install cryptsetup

A continuación podremos ligar nuestro archivo de 100 MB con el dispositivo “/dev/loop0”, indicar que queremos utilizarlo con encriptación (algoritmo AES) de forma transparente (esto hara que el dispositivo se mapee a /dev/mapper/crloop) y finalmente formateamos el contenido:

losetup /dev/loop0 /home/user/crloop
cryptsetup -c aes -y create crloop /dev/loop0
mkfs.ext3 /dev/mapper/crloop

A continuación podemos montar el dispositivo:

mkdir -p /media/cryptovolume
mount /dev/mapper/crloop /media/cryptovolume

En “/media/cryptovolume” tendremos acceso a los 100 MB del archivo y desde el sistema será visto como un directorio más donde poder copiar información. Ahi debemos copiar toda nuestra información sensible.

Para desmontar completamente el dispositivo:

umount /media/cryptovolume
cryptsetup remove crloop
losetup -d /dev/loop0

Y para volverlo a montar:

losetup /dev/loop0 /home/user/crloop
cryptsetup create crloop /dev/loop0
mount /dev/mapper/crloop /media/cryptovolume

Es posible montar estos dispositivos en el arranque especificando la configuración en ‘/etc/crypttab’ e iniciando ‘/etc/init.d/cryptdisks’.

Finalmente solo señalar que también es posible utilizar esta tecnica en particiones enteras, pero la versatilidad que ofrece tenerlo en un fichero es mayor ya que podemos traspasarlo entre ordenadores facilmente.

Leave a Reply

Your email address will not be published. Required fields are marked *